1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-07-29 22:01:14 +03:00

Bump frontend dependencies

Also properly exclude generated files from eslint
This commit is contained in:
Quentin Gliech
2023-05-03 18:50:43 +02:00
parent b56c2350a4
commit dfdfc25d00
6 changed files with 2116 additions and 957 deletions

View File

@ -20,6 +20,7 @@ module.exports = {
"**/__generated__/**", "**/__generated__/**",
"**/coverage/**", "**/coverage/**",
"!.storybook", "!.storybook",
"*/gql/*.ts",
], ],
overrides: [ overrides: [
// General rules for JS/TS files // General rules for JS/TS files

View File

@ -7,23 +7,9 @@ const config: CodegenConfig = {
generates: { generates: {
"./src/gql/": { "./src/gql/": {
preset: "client", preset: "client",
plugins: [
{
add: {
content: "/* eslint-disable */",
},
},
],
}, },
"./src/gql/schema.ts": { "./src/gql/schema.ts": {
plugins: [ plugins: ["urql-introspection"],
{
add: {
content: "/* eslint-disable */",
},
},
"urql-introspection",
],
}, },
}, },
hooks: { hooks: {

File diff suppressed because it is too large Load Diff

View File

@ -16,46 +16,46 @@
"build-storybook": "storybook build" "build-storybook": "storybook build"
}, },
"dependencies": { "dependencies": {
"@emotion/react": "^11.10.6", "@emotion/react": "^11.11.0",
"@urql/core": "^4.0.7", "@urql/core": "^4.0.7",
"@urql/devtools": "^2.0.3", "@urql/devtools": "^2.0.3",
"@urql/exchange-graphcache": "^6.0.3", "@urql/exchange-graphcache": "^6.0.4",
"@urql/exchange-refocus": "^1.0.2", "@urql/exchange-refocus": "^1.0.2",
"@urql/exchange-request-policy": "^1.0.2", "@urql/exchange-request-policy": "^1.0.2",
"date-fns": "^2.29.3", "@vector-im/compound-web": "https://github.com/vector-im/compound-web.git#5208d2d442587efb9938265841574f73ce97dff1",
"date-fns": "^2.30.0",
"graphql": "^16.6.0", "graphql": "^16.6.0",
"jotai": "^2.0.4", "jotai": "^2.1.0",
"jotai-devtools": "^0.4.0", "jotai-devtools": "^0.5.3",
"jotai-location": "^0.5.1", "jotai-location": "^0.5.1",
"jotai-urql": "^0.7.1", "jotai-urql": "^0.7.1",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0"
"@vector-im/compound-web": "https://github.com/vector-im/compound-web.git#quenting/packaging"
}, },
"devDependencies": { "devDependencies": {
"@graphql-codegen/cli": "^3.3.1", "@graphql-codegen/cli": "^4.0.0",
"@graphql-codegen/client-preset": "^3.0.1", "@graphql-codegen/client-preset": "^4.0.0",
"@graphql-codegen/urql-introspection": "^2.2.1", "@graphql-codegen/urql-introspection": "^2.2.1",
"@graphql-eslint/eslint-plugin": "^3.18.0", "@graphql-eslint/eslint-plugin": "^3.19.1",
"@storybook/addon-actions": "^7.0.7", "@storybook/addon-actions": "^7.0.17",
"@storybook/addon-backgrounds": "^7.0.7", "@storybook/addon-backgrounds": "^7.0.17",
"@storybook/addon-controls": "^7.0.7", "@storybook/addon-controls": "^7.0.17",
"@storybook/addon-docs": "^7.0.7", "@storybook/addon-docs": "^7.0.17",
"@storybook/addon-essentials": "^7.0.7", "@storybook/addon-essentials": "^7.0.17",
"@storybook/addon-measure": "^7.0.7", "@storybook/addon-measure": "^7.0.17",
"@storybook/addon-outline": "^7.0.7", "@storybook/addon-outline": "^7.0.17",
"@storybook/addon-toolbars": "^7.0.7", "@storybook/addon-toolbars": "^7.0.17",
"@storybook/addon-viewport": "^7.0.7", "@storybook/addon-viewport": "^7.0.17",
"@storybook/react": "^7.0.7", "@storybook/react": "^7.0.17",
"@storybook/react-vite": "^7.0.7", "@storybook/react-vite": "^7.0.17",
"@types/node": "^18.16.1", "@types/node": "^20.2.3",
"@types/react": "^18.2.0", "@types/react": "^18.2.7",
"@types/react-dom": "^18.2.1", "@types/react-dom": "^18.2.4",
"@types/react-test-renderer": "^18.0.0", "@types/react-test-renderer": "^18.0.0",
"@vitejs/plugin-react": "^4.0.0", "@vitejs/plugin-react": "^4.0.0",
"@vitest/coverage-c8": "^0.30.1", "@vitest/coverage-c8": "^0.31.1",
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.14",
"eslint": "^8.39.0", "eslint": "^8.41.0",
"eslint-config-prettier": "^8.8.0", "eslint-config-prettier": "^8.8.0",
"eslint-config-react-app": "^7.0.1", "eslint-config-react-app": "^7.0.1",
"eslint-import-resolver-typescript": "^3.5.5", "eslint-import-resolver-typescript": "^3.5.5",
@ -64,12 +64,12 @@
"postcss": "^8.4.23", "postcss": "^8.4.23",
"prettier": "^2.8.8", "prettier": "^2.8.8",
"react-test-renderer": "^18.2.0", "react-test-renderer": "^18.2.0",
"storybook": "^7.0.7", "storybook": "^7.0.17",
"tailwindcss": "^3.3.2", "tailwindcss": "^3.3.2",
"typescript": "^5.0.4", "typescript": "^5.0.4",
"vite": "^4.3.2", "vite": "^4.3.8",
"vite-plugin-eslint": "^1.8.1", "vite-plugin-eslint": "^1.8.1",
"vite-plugin-graphql-codegen": "^3.2.0", "vite-plugin-graphql-codegen": "^3.2.2",
"vitest": "^0.30.1" "vitest": "^0.31.1"
} }
} }

View File

@ -1,12 +1,15 @@
import { import {
ResultOf, ResultOf,
DocumentTypeDecoration, DocumentTypeDecoration,
TypedDocumentNode,
} from "@graphql-typed-document-node/core"; } from "@graphql-typed-document-node/core";
import { FragmentDefinitionNode } from "graphql";
import { Incremental } from "./graphql";
export type FragmentType< export type FragmentType<
TDocumentType extends DocumentTypeDecoration<any, any> TDocumentType extends DocumentTypeDecoration<any, any>
> = TDocumentType extends DocumentTypeDecoration<infer TType, any> > = TDocumentType extends DocumentTypeDecoration<infer TType, any>
? TType extends { " $fragmentName"?: infer TKey } ? [TType] extends [{ " $fragmentName"?: infer TKey }]
? TKey extends string ? TKey extends string
? { " $fragmentRefs"?: { [key in TKey]: TType } } ? { " $fragmentRefs"?: { [key in TKey]: TType } }
: never : never
@ -56,3 +59,27 @@ export function makeFragmentData<
>(data: FT, _fragment: F): FragmentType<F> { >(data: FT, _fragment: F): FragmentType<F> {
return data as FragmentType<F>; return data as FragmentType<F>;
} }
export function isFragmentReady<TQuery, TFrag>(
queryNode: DocumentTypeDecoration<TQuery, any>,
fragmentNode: TypedDocumentNode<TFrag>,
data:
| FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>
| null
| undefined
): data is FragmentType<typeof fragmentNode> {
const deferredFields = (
queryNode as {
__meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };
}
).__meta__?.deferredFields;
if (!deferredFields) return true;
const fragDef = fragmentNode.definitions[0] as
| FragmentDefinitionNode
| undefined;
const fragName = fragDef?.name?.value;
const fields = (fragName && deferredFields[fragName]) || [];
return fields.length > 0 && fields.every((field) => data && field in data);
}

View File

@ -11,29 +11,38 @@ export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
[SubKey in K]: Maybe<T[SubKey]>; [SubKey in K]: Maybe<T[SubKey]>;
}; };
export type MakeEmpty<
T extends { [key: string]: unknown },
K extends keyof T
> = { [_ in K]?: never };
export type Incremental<T> =
| T
| {
[P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never;
};
/** All built-in and custom scalars, mapped to their actual values */ /** All built-in and custom scalars, mapped to their actual values */
export type Scalars = { export type Scalars = {
ID: string; ID: { input: string | number; output: string };
String: string; String: { input: string; output: string };
Boolean: boolean; Boolean: { input: boolean; output: boolean };
Int: number; Int: { input: number; output: number };
Float: number; Float: { input: number; output: number };
/** /**
* Implement the DateTime<Utc> scalar * Implement the DateTime<Utc> scalar
* *
* The input/output is a string in RFC3339 format. * The input/output is a string in RFC3339 format.
*/ */
DateTime: any; DateTime: { input: any; output: any };
/** URL is a String implementing the [URL Standard](http://url.spec.whatwg.org/) */ /** URL is a String implementing the [URL Standard](http://url.spec.whatwg.org/) */
Url: any; Url: { input: any; output: any };
}; };
/** The input for the `addEmail` mutation */ /** The input for the `addEmail` mutation */
export type AddEmailInput = { export type AddEmailInput = {
/** The email address to add */ /** The email address to add */
email: Scalars["String"]; email: Scalars["String"]["input"];
/** The ID of the user to add the email address to */ /** The ID of the user to add the email address to */
userId: Scalars["ID"]; userId: Scalars["ID"]["input"];
}; };
/** The payload of the `addEmail` mutation */ /** The payload of the `addEmail` mutation */
@ -59,7 +68,7 @@ export enum AddEmailStatus {
export type Anonymous = Node & { export type Anonymous = Node & {
__typename?: "Anonymous"; __typename?: "Anonymous";
id: Scalars["ID"]; id: Scalars["ID"]["output"];
}; };
/** /**
@ -70,9 +79,9 @@ export type Authentication = CreationEvent &
Node & { Node & {
__typename?: "Authentication"; __typename?: "Authentication";
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
}; };
/** A browser session represents a logged in user in a browser. */ /** A browser session represents a logged in user in a browser. */
@ -80,9 +89,9 @@ export type BrowserSession = CreationEvent &
Node & { Node & {
__typename?: "BrowserSession"; __typename?: "BrowserSession";
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
/** The most recent authentication of this session. */ /** The most recent authentication of this session. */
lastAuthentication?: Maybe<Authentication>; lastAuthentication?: Maybe<Authentication>;
/** The user logged in this session. */ /** The user logged in this session. */
@ -103,7 +112,7 @@ export type BrowserSessionConnection = {
export type BrowserSessionEdge = { export type BrowserSessionEdge = {
__typename?: "BrowserSessionEdge"; __typename?: "BrowserSessionEdge";
/** A cursor for use in pagination */ /** A cursor for use in pagination */
cursor: Scalars["String"]; cursor: Scalars["String"]["output"];
/** The item at the end of the edge */ /** The item at the end of the edge */
node: BrowserSession; node: BrowserSession;
}; };
@ -116,13 +125,13 @@ export type CompatSession = CreationEvent &
Node & { Node & {
__typename?: "CompatSession"; __typename?: "CompatSession";
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
/** The Matrix Device ID of this session. */ /** The Matrix Device ID of this session. */
deviceId: Scalars["String"]; deviceId: Scalars["String"]["output"];
/** When the session ended. */ /** When the session ended. */
finishedAt?: Maybe<Scalars["DateTime"]>; finishedAt?: Maybe<Scalars["DateTime"]["output"]>;
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
/** The user authorized for this session. */ /** The user authorized for this session. */
user: User; user: User;
}; };
@ -134,18 +143,18 @@ export type CompatSession = CreationEvent &
export type CompatSsoLogin = Node & { export type CompatSsoLogin = Node & {
__typename?: "CompatSsoLogin"; __typename?: "CompatSsoLogin";
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
/** When the client exchanged the login token sent during the redirection. */ /** When the client exchanged the login token sent during the redirection. */
exchangedAt?: Maybe<Scalars["DateTime"]>; exchangedAt?: Maybe<Scalars["DateTime"]["output"]>;
/** /**
* When the login was fulfilled, and the user was redirected back to the * When the login was fulfilled, and the user was redirected back to the
* client. * client.
*/ */
fulfilledAt?: Maybe<Scalars["DateTime"]>; fulfilledAt?: Maybe<Scalars["DateTime"]["output"]>;
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
/** The redirect URI used during the login. */ /** The redirect URI used during the login. */
redirectUri: Scalars["Url"]; redirectUri: Scalars["Url"]["output"];
/** The compat session which was started by this login. */ /** The compat session which was started by this login. */
session?: Maybe<CompatSession>; session?: Maybe<CompatSession>;
}; };
@ -164,7 +173,7 @@ export type CompatSsoLoginConnection = {
export type CompatSsoLoginEdge = { export type CompatSsoLoginEdge = {
__typename?: "CompatSsoLoginEdge"; __typename?: "CompatSsoLoginEdge";
/** A cursor for use in pagination */ /** A cursor for use in pagination */
cursor: Scalars["String"]; cursor: Scalars["String"]["output"];
/** The item at the end of the edge */ /** The item at the end of the edge */
node: CompatSsoLogin; node: CompatSsoLogin;
}; };
@ -172,13 +181,13 @@ export type CompatSsoLoginEdge = {
/** An object with a creation date. */ /** An object with a creation date. */
export type CreationEvent = { export type CreationEvent = {
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
}; };
/** The input of the `endCompatSession` mutation. */ /** The input of the `endCompatSession` mutation. */
export type EndCompatSessionInput = { export type EndCompatSessionInput = {
/** The ID of the session to end. */ /** The ID of the session to end. */
compatSessionId: Scalars["ID"]; compatSessionId: Scalars["ID"]["input"];
}; };
export type EndCompatSessionPayload = { export type EndCompatSessionPayload = {
@ -200,7 +209,7 @@ export enum EndCompatSessionStatus {
/** The input of the `endOauth2Session` mutation. */ /** The input of the `endOauth2Session` mutation. */
export type EndOAuth2SessionInput = { export type EndOAuth2SessionInput = {
/** The ID of the session to end. */ /** The ID of the session to end. */
oauth2SessionId: Scalars["ID"]; oauth2SessionId: Scalars["ID"]["input"];
}; };
export type EndOAuth2SessionPayload = { export type EndOAuth2SessionPayload = {
@ -274,26 +283,26 @@ export type MutationVerifyEmailArgs = {
/** An object with an ID. */ /** An object with an ID. */
export type Node = { export type Node = {
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
}; };
/** An OAuth 2.0 client */ /** An OAuth 2.0 client */
export type Oauth2Client = Node & { export type Oauth2Client = Node & {
__typename?: "Oauth2Client"; __typename?: "Oauth2Client";
/** OAuth 2.0 client ID */ /** OAuth 2.0 client ID */
clientId: Scalars["String"]; clientId: Scalars["String"]["output"];
/** Client name advertised by the client. */ /** Client name advertised by the client. */
clientName?: Maybe<Scalars["String"]>; clientName?: Maybe<Scalars["String"]["output"]>;
/** Client URI advertised by the client. */ /** Client URI advertised by the client. */
clientUri?: Maybe<Scalars["Url"]>; clientUri?: Maybe<Scalars["Url"]["output"]>;
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
/** Privacy policy URI advertised by the client. */ /** Privacy policy URI advertised by the client. */
policyUri?: Maybe<Scalars["Url"]>; policyUri?: Maybe<Scalars["Url"]["output"]>;
/** List of redirect URIs used for authorization grants by the client. */ /** List of redirect URIs used for authorization grants by the client. */
redirectUris: Array<Scalars["Url"]>; redirectUris: Array<Scalars["Url"]["output"]>;
/** Terms of services URI advertised by the client. */ /** Terms of services URI advertised by the client. */
tosUri?: Maybe<Scalars["Url"]>; tosUri?: Maybe<Scalars["Url"]["output"]>;
}; };
/** /**
@ -308,13 +317,13 @@ export type Oauth2Session = CreationEvent &
/** OAuth 2.0 client used by this session. */ /** OAuth 2.0 client used by this session. */
client: Oauth2Client; client: Oauth2Client;
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
/** When the session ended. */ /** When the session ended. */
finishedAt?: Maybe<Scalars["DateTime"]>; finishedAt?: Maybe<Scalars["DateTime"]["output"]>;
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
/** Scope granted for this session. */ /** Scope granted for this session. */
scope: Scalars["String"]; scope: Scalars["String"]["output"];
/** User authorized for this session. */ /** User authorized for this session. */
user: User; user: User;
}; };
@ -333,7 +342,7 @@ export type Oauth2SessionConnection = {
export type Oauth2SessionEdge = { export type Oauth2SessionEdge = {
__typename?: "Oauth2SessionEdge"; __typename?: "Oauth2SessionEdge";
/** A cursor for use in pagination */ /** A cursor for use in pagination */
cursor: Scalars["String"]; cursor: Scalars["String"]["output"];
/** The item at the end of the edge */ /** The item at the end of the edge */
node: Oauth2Session; node: Oauth2Session;
}; };
@ -342,13 +351,13 @@ export type Oauth2SessionEdge = {
export type PageInfo = { export type PageInfo = {
__typename?: "PageInfo"; __typename?: "PageInfo";
/** When paginating forwards, the cursor to continue. */ /** When paginating forwards, the cursor to continue. */
endCursor?: Maybe<Scalars["String"]>; endCursor?: Maybe<Scalars["String"]["output"]>;
/** When paginating forwards, are there more items? */ /** When paginating forwards, are there more items? */
hasNextPage: Scalars["Boolean"]; hasNextPage: Scalars["Boolean"]["output"];
/** When paginating backwards, are there more items? */ /** When paginating backwards, are there more items? */
hasPreviousPage: Scalars["Boolean"]; hasPreviousPage: Scalars["Boolean"]["output"];
/** When paginating backwards, the cursor to continue. */ /** When paginating backwards, the cursor to continue. */
startCursor?: Maybe<Scalars["String"]>; startCursor?: Maybe<Scalars["String"]["output"]>;
}; };
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
@ -388,51 +397,51 @@ export type Query = {
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
export type QueryBrowserSessionArgs = { export type QueryBrowserSessionArgs = {
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}; };
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
export type QueryNodeArgs = { export type QueryNodeArgs = {
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}; };
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
export type QueryOauth2ClientArgs = { export type QueryOauth2ClientArgs = {
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}; };
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
export type QueryUpstreamOauth2LinkArgs = { export type QueryUpstreamOauth2LinkArgs = {
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}; };
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
export type QueryUpstreamOauth2ProviderArgs = { export type QueryUpstreamOauth2ProviderArgs = {
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}; };
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
export type QueryUpstreamOauth2ProvidersArgs = { export type QueryUpstreamOauth2ProvidersArgs = {
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
}; };
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
export type QueryUserArgs = { export type QueryUserArgs = {
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}; };
/** The query root of the GraphQL interface. */ /** The query root of the GraphQL interface. */
export type QueryUserEmailArgs = { export type QueryUserEmailArgs = {
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}; };
/** The input for the `removeEmail` mutation */ /** The input for the `removeEmail` mutation */
export type RemoveEmailInput = { export type RemoveEmailInput = {
/** The ID of the email address to remove */ /** The ID of the email address to remove */
userEmailId: Scalars["ID"]; userEmailId: Scalars["ID"]["input"];
}; };
/** The payload of the `removeEmail` mutation */ /** The payload of the `removeEmail` mutation */
@ -459,7 +468,7 @@ export enum RemoveEmailStatus {
/** The input for the `sendVerificationEmail` mutation */ /** The input for the `sendVerificationEmail` mutation */
export type SendVerificationEmailInput = { export type SendVerificationEmailInput = {
/** The ID of the email address to verify */ /** The ID of the email address to verify */
userEmailId: Scalars["ID"]; userEmailId: Scalars["ID"]["input"];
}; };
/** The payload of the `sendVerificationEmail` mutation */ /** The payload of the `sendVerificationEmail` mutation */
@ -484,7 +493,7 @@ export enum SendVerificationEmailStatus {
/** The input for the `setPrimaryEmail` mutation */ /** The input for the `setPrimaryEmail` mutation */
export type SetPrimaryEmailInput = { export type SetPrimaryEmailInput = {
/** The ID of the email address to set as primary */ /** The ID of the email address to set as primary */
userEmailId: Scalars["ID"]; userEmailId: Scalars["ID"]["input"];
}; };
/** The payload of the `setPrimaryEmail` mutation */ /** The payload of the `setPrimaryEmail` mutation */
@ -509,13 +518,13 @@ export type UpstreamOAuth2Link = CreationEvent &
Node & { Node & {
__typename?: "UpstreamOAuth2Link"; __typename?: "UpstreamOAuth2Link";
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
/** The provider for which this link is. */ /** The provider for which this link is. */
provider: UpstreamOAuth2Provider; provider: UpstreamOAuth2Provider;
/** Subject used for linking */ /** Subject used for linking */
subject: Scalars["String"]; subject: Scalars["String"]["output"];
/** The user to which this link is associated. */ /** The user to which this link is associated. */
user?: Maybe<User>; user?: Maybe<User>;
}; };
@ -534,7 +543,7 @@ export type UpstreamOAuth2LinkConnection = {
export type UpstreamOAuth2LinkEdge = { export type UpstreamOAuth2LinkEdge = {
__typename?: "UpstreamOAuth2LinkEdge"; __typename?: "UpstreamOAuth2LinkEdge";
/** A cursor for use in pagination */ /** A cursor for use in pagination */
cursor: Scalars["String"]; cursor: Scalars["String"]["output"];
/** The item at the end of the edge */ /** The item at the end of the edge */
node: UpstreamOAuth2Link; node: UpstreamOAuth2Link;
}; };
@ -543,13 +552,13 @@ export type UpstreamOAuth2Provider = CreationEvent &
Node & { Node & {
__typename?: "UpstreamOAuth2Provider"; __typename?: "UpstreamOAuth2Provider";
/** Client ID used for this provider. */ /** Client ID used for this provider. */
clientId: Scalars["String"]; clientId: Scalars["String"]["output"];
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
/** OpenID Connect issuer URL. */ /** OpenID Connect issuer URL. */
issuer: Scalars["String"]; issuer: Scalars["String"]["output"];
}; };
export type UpstreamOAuth2ProviderConnection = { export type UpstreamOAuth2ProviderConnection = {
@ -566,7 +575,7 @@ export type UpstreamOAuth2ProviderConnection = {
export type UpstreamOAuth2ProviderEdge = { export type UpstreamOAuth2ProviderEdge = {
__typename?: "UpstreamOAuth2ProviderEdge"; __typename?: "UpstreamOAuth2ProviderEdge";
/** A cursor for use in pagination */ /** A cursor for use in pagination */
cursor: Scalars["String"]; cursor: Scalars["String"]["output"];
/** The item at the end of the edge */ /** The item at the end of the edge */
node: UpstreamOAuth2Provider; node: UpstreamOAuth2Provider;
}; };
@ -581,7 +590,7 @@ export type User = Node & {
/** Get the list of emails, chronologically sorted */ /** Get the list of emails, chronologically sorted */
emails: UserEmailConnection; emails: UserEmailConnection;
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
/** Get the list of OAuth 2.0 sessions, chronologically sorted */ /** Get the list of OAuth 2.0 sessions, chronologically sorted */
oauth2Sessions: Oauth2SessionConnection; oauth2Sessions: Oauth2SessionConnection;
/** Primary email address of the user. */ /** Primary email address of the user. */
@ -589,47 +598,47 @@ export type User = Node & {
/** Get the list of upstream OAuth 2.0 links */ /** Get the list of upstream OAuth 2.0 links */
upstreamOauth2Links: UpstreamOAuth2LinkConnection; upstreamOauth2Links: UpstreamOAuth2LinkConnection;
/** Username chosen by the user. */ /** Username chosen by the user. */
username: Scalars["String"]; username: Scalars["String"]["output"];
}; };
/** A user is an individual's account. */ /** A user is an individual's account. */
export type UserBrowserSessionsArgs = { export type UserBrowserSessionsArgs = {
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
}; };
/** A user is an individual's account. */ /** A user is an individual's account. */
export type UserCompatSsoLoginsArgs = { export type UserCompatSsoLoginsArgs = {
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
}; };
/** A user is an individual's account. */ /** A user is an individual's account. */
export type UserEmailsArgs = { export type UserEmailsArgs = {
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
}; };
/** A user is an individual's account. */ /** A user is an individual's account. */
export type UserOauth2SessionsArgs = { export type UserOauth2SessionsArgs = {
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
}; };
/** A user is an individual's account. */ /** A user is an individual's account. */
export type UserUpstreamOauth2LinksArgs = { export type UserUpstreamOauth2LinksArgs = {
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
}; };
/** A user email address */ /** A user email address */
@ -640,13 +649,13 @@ export type UserEmail = CreationEvent &
* When the email address was confirmed. Is `null` if the email was never * When the email address was confirmed. Is `null` if the email was never
* verified by the user. * verified by the user.
*/ */
confirmedAt?: Maybe<Scalars["DateTime"]>; confirmedAt?: Maybe<Scalars["DateTime"]["output"]>;
/** When the object was created. */ /** When the object was created. */
createdAt: Scalars["DateTime"]; createdAt: Scalars["DateTime"]["output"];
/** Email address */ /** Email address */
email: Scalars["String"]; email: Scalars["String"]["output"];
/** ID of the object. */ /** ID of the object. */
id: Scalars["ID"]; id: Scalars["ID"]["output"];
}; };
export type UserEmailConnection = { export type UserEmailConnection = {
@ -658,14 +667,14 @@ export type UserEmailConnection = {
/** Information to aid in pagination. */ /** Information to aid in pagination. */
pageInfo: PageInfo; pageInfo: PageInfo;
/** Identifies the total count of items in the connection. */ /** Identifies the total count of items in the connection. */
totalCount: Scalars["Int"]; totalCount: Scalars["Int"]["output"];
}; };
/** An edge in a connection. */ /** An edge in a connection. */
export type UserEmailEdge = { export type UserEmailEdge = {
__typename?: "UserEmailEdge"; __typename?: "UserEmailEdge";
/** A cursor for use in pagination */ /** A cursor for use in pagination */
cursor: Scalars["String"]; cursor: Scalars["String"]["output"];
/** The item at the end of the edge */ /** The item at the end of the edge */
node: UserEmail; node: UserEmail;
}; };
@ -673,9 +682,9 @@ export type UserEmailEdge = {
/** The input for the `verifyEmail` mutation */ /** The input for the `verifyEmail` mutation */
export type VerifyEmailInput = { export type VerifyEmailInput = {
/** The verification code */ /** The verification code */
code: Scalars["String"]; code: Scalars["String"]["input"];
/** The ID of the email address to verify */ /** The ID of the email address to verify */
userEmailId: Scalars["ID"]; userEmailId: Scalars["ID"]["input"];
}; };
/** The payload of the `verifyEmail` mutation */ /** The payload of the `verifyEmail` mutation */
@ -726,8 +735,8 @@ export type CurrentViewerSessionQueryQuery = {
}; };
export type AddEmailMutationVariables = Exact<{ export type AddEmailMutationVariables = Exact<{
userId: Scalars["ID"]; userId: Scalars["ID"]["input"];
email: Scalars["String"]; email: Scalars["String"]["input"];
}>; }>;
export type AddEmailMutation = { export type AddEmailMutation = {
@ -757,11 +766,11 @@ export type BrowserSession_SessionFragment = {
} & { " $fragmentName"?: "BrowserSession_SessionFragment" }; } & { " $fragmentName"?: "BrowserSession_SessionFragment" };
export type BrowserSessionListQueryVariables = Exact<{ export type BrowserSessionListQueryVariables = Exact<{
userId: Scalars["ID"]; userId: Scalars["ID"]["input"];
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
}>; }>;
export type BrowserSessionListQuery = { export type BrowserSessionListQuery = {
@ -820,7 +829,7 @@ export type CompatSsoLogin_SessionFragment = {
} & { " $fragmentName"?: "CompatSsoLogin_SessionFragment" }; } & { " $fragmentName"?: "CompatSsoLogin_SessionFragment" };
export type EndCompatSessionMutationVariables = Exact<{ export type EndCompatSessionMutationVariables = Exact<{
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}>; }>;
export type EndCompatSessionMutation = { export type EndCompatSessionMutation = {
@ -839,11 +848,11 @@ export type EndCompatSessionMutation = {
}; };
export type CompatSsoLoginListQueryVariables = Exact<{ export type CompatSsoLoginListQueryVariables = Exact<{
userId: Scalars["ID"]; userId: Scalars["ID"]["input"];
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
}>; }>;
export type CompatSsoLoginListQuery = { export type CompatSsoLoginListQuery = {
@ -888,7 +897,7 @@ export type OAuth2Session_SessionFragment = {
} & { " $fragmentName"?: "OAuth2Session_SessionFragment" }; } & { " $fragmentName"?: "OAuth2Session_SessionFragment" };
export type EndSessionMutationVariables = Exact<{ export type EndSessionMutationVariables = Exact<{
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}>; }>;
export type EndSessionMutation = { export type EndSessionMutation = {
@ -907,11 +916,11 @@ export type EndSessionMutation = {
}; };
export type OAuth2SessionListQueryQueryVariables = Exact<{ export type OAuth2SessionListQueryQueryVariables = Exact<{
userId: Scalars["ID"]; userId: Scalars["ID"]["input"];
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
}>; }>;
export type OAuth2SessionListQueryQuery = { export type OAuth2SessionListQueryQuery = {
@ -950,8 +959,8 @@ export type UserEmail_EmailFragment = {
} & { " $fragmentName"?: "UserEmail_EmailFragment" }; } & { " $fragmentName"?: "UserEmail_EmailFragment" };
export type VerifyEmailMutationVariables = Exact<{ export type VerifyEmailMutationVariables = Exact<{
id: Scalars["ID"]; id: Scalars["ID"]["input"];
code: Scalars["String"]; code: Scalars["String"]["input"];
}>; }>;
export type VerifyEmailMutation = { export type VerifyEmailMutation = {
@ -975,7 +984,7 @@ export type VerifyEmailMutation = {
}; };
export type ResendVerificationEmailMutationVariables = Exact<{ export type ResendVerificationEmailMutationVariables = Exact<{
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}>; }>;
export type ResendVerificationEmailMutation = { export type ResendVerificationEmailMutation = {
@ -995,7 +1004,7 @@ export type ResendVerificationEmailMutation = {
}; };
export type RemoveEmailMutationVariables = Exact<{ export type RemoveEmailMutationVariables = Exact<{
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}>; }>;
export type RemoveEmailMutation = { export type RemoveEmailMutation = {
@ -1008,7 +1017,7 @@ export type RemoveEmailMutation = {
}; };
export type SetPrimaryEmailMutationVariables = Exact<{ export type SetPrimaryEmailMutationVariables = Exact<{
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}>; }>;
export type SetPrimaryEmailMutation = { export type SetPrimaryEmailMutation = {
@ -1025,11 +1034,11 @@ export type SetPrimaryEmailMutation = {
}; };
export type UserEmailListQueryQueryVariables = Exact<{ export type UserEmailListQueryQueryVariables = Exact<{
userId: Scalars["ID"]; userId: Scalars["ID"]["input"];
first?: InputMaybe<Scalars["Int"]>; first?: InputMaybe<Scalars["Int"]["input"]>;
after?: InputMaybe<Scalars["String"]>; after?: InputMaybe<Scalars["String"]["input"]>;
last?: InputMaybe<Scalars["Int"]>; last?: InputMaybe<Scalars["Int"]["input"]>;
before?: InputMaybe<Scalars["String"]>; before?: InputMaybe<Scalars["String"]["input"]>;
}>; }>;
export type UserEmailListQueryQuery = { export type UserEmailListQueryQuery = {
@ -1061,7 +1070,7 @@ export type UserEmailListQueryQuery = {
}; };
export type UserPrimaryEmailQueryVariables = Exact<{ export type UserPrimaryEmailQueryVariables = Exact<{
userId: Scalars["ID"]; userId: Scalars["ID"]["input"];
}>; }>;
export type UserPrimaryEmailQuery = { export type UserPrimaryEmailQuery = {
@ -1074,7 +1083,7 @@ export type UserPrimaryEmailQuery = {
}; };
export type UserGreetingQueryVariables = Exact<{ export type UserGreetingQueryVariables = Exact<{
userId: Scalars["ID"]; userId: Scalars["ID"]["input"];
}>; }>;
export type UserGreetingQuery = { export type UserGreetingQuery = {
@ -1083,7 +1092,7 @@ export type UserGreetingQuery = {
}; };
export type BrowserSessionQueryQueryVariables = Exact<{ export type BrowserSessionQueryQueryVariables = Exact<{
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}>; }>;
export type BrowserSessionQueryQuery = { export type BrowserSessionQueryQuery = {
@ -1102,7 +1111,7 @@ export type BrowserSessionQueryQuery = {
}; };
export type OAuth2ClientQueryQueryVariables = Exact<{ export type OAuth2ClientQueryQueryVariables = Exact<{
id: Scalars["ID"]; id: Scalars["ID"]["input"];
}>; }>;
export type OAuth2ClientQueryQuery = { export type OAuth2ClientQueryQuery = {