diff --git a/web/gql-queries-generator/doc/queries.graphql b/web/gql-queries-generator/doc/queries.graphql index 8189d88b6..f8b32d672 100644 --- a/web/gql-queries-generator/doc/queries.graphql +++ b/web/gql-queries-generator/doc/queries.graphql @@ -1924,10 +1924,6 @@ mutation consoleDeleteAccountMembership($accountName: String!, $memberId: ID!) { accounts_removeAccountMembership(accountName: $accountName, memberId: $memberId) } -mutation consoleVerifyInviteCode($invitationCode: String!) { - auth_verifyInviteCode(invitationCode: $invitationCode) -} - query consoleGetCredToken($username: String!) { cr_getCredToken(username: $username) } @@ -6485,6 +6481,10 @@ mutation authVerifyEmail($token: String!) { } } +mutation authResendVerificationEmail { + auth_resendVerificationEmail +} + query authLoginPageInitUrls { githubLoginUrl: oAuth_requestLogin(provider: "github") gitlabLoginUrl: oAuth_requestLogin(provider: "gitlab") diff --git a/web/lib/server/helpers/minimal-auth.ts b/web/lib/server/helpers/minimal-auth.ts index 7809357a5..1cc2993e9 100644 --- a/web/lib/server/helpers/minimal-auth.ts +++ b/web/lib/server/helpers/minimal-auth.ts @@ -53,10 +53,6 @@ export const minimalAuth = async (ctx: IExtRemixCtx) => { return redirect(`${authBaseUrl}/verify-email`); } - if (whoAmI.data && !whoAmI.data.approved) { - return redirect(`${consoleBaseUrl}/invite-code`); - } - ctx.authProps = (props: MapType) => { return { ...props, diff --git a/web/package.json b/web/package.json index 027606336..619a19c82 100644 --- a/web/package.json +++ b/web/package.json @@ -26,7 +26,7 @@ "@jengaicons/react": "1.6.0", "@mdx-js/react": "^2.3.0", "@monaco-editor/react": "^4.6.0", - "@oshq/react-select": "^1.4.2", + "@oshq/react-select": "^1.4.4", "@radix-ui/primitive": "^1.0.1", "@radix-ui/react-alert-dialog": "1.0.4", "@radix-ui/react-checkbox": "^1.0.4", diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 275a7d09f..ba52b6d77 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -15,8 +15,8 @@ dependencies: specifier: ^4.6.0 version: 4.6.0(monaco-editor@0.49.0)(react-dom@18.3.1)(react@18.2.0) '@oshq/react-select': - specifier: ^1.4.2 - version: 1.4.2(@radix-ui/react-portal@1.0.4)(classnames@2.5.1)(framer-motion@11.2.9)(rc-virtual-list@3.14.2)(react@18.2.0) + specifier: ^1.4.4 + version: 1.4.4(@radix-ui/react-portal@1.0.4)(classnames@2.5.1)(framer-motion@11.2.9)(rc-virtual-list@3.14.2)(react@18.2.0) '@radix-ui/primitive': specifier: ^1.0.1 version: 1.0.1 @@ -2554,8 +2554,8 @@ packages: json-parse-even-better-errors: 2.3.1 dev: true - /@oshq/react-select@1.4.2(@radix-ui/react-portal@1.0.4)(classnames@2.5.1)(framer-motion@11.2.9)(rc-virtual-list@3.14.2)(react@18.2.0): - resolution: {integrity: sha512-yQwzBxFb5z2XwmuEZHLdJGmpzn1+Xo+zn5u/DV1FzvUKlRUWXo/ChQ73ZG62uN/mODTEJhsUW8SbPiP93G89iw==} + /@oshq/react-select@1.4.4(@radix-ui/react-portal@1.0.4)(classnames@2.5.1)(framer-motion@11.2.9)(rc-virtual-list@3.14.2)(react@18.2.0): + resolution: {integrity: sha512-jfMSnookesY0ge/q1amjpj16cmG09MU6YAjfHlpJ3GDxB5vjo/60I+cv9pWzTUcKNlZd1tuRZd9zKjggALz3IA==} peerDependencies: '@radix-ui/react-portal': ^1.0.4 classnames: ^2.3.2 diff --git a/web/src/apps/auth/routes/_main+/verify-email.tsx b/web/src/apps/auth/routes/_main+/verify-email.tsx index a1dcd8fb8..b4684551f 100644 --- a/web/src/apps/auth/routes/_main+/verify-email.tsx +++ b/web/src/apps/auth/routes/_main+/verify-email.tsx @@ -1,4 +1,3 @@ -import { useAPIClient } from '~/root/lib/client/hooks/api-provider'; import usePersistState from '~/root/lib/client/hooks/use-persist-state'; import { useEffect, useState } from 'react'; import { GQLServerHandler } from '~/auth/server/gql/saved-queries'; @@ -14,12 +13,13 @@ import { IRemixCtx } from '~/root/lib/types/common'; import { ArrowLeft } from '~/components/icons'; import { cn } from '~/components/utils'; import Container from '~/auth/components/container'; +import { useAuthApi } from '~/auth/server/gql/api-provider'; const VerifyEmail = () => { const { query, email } = useLoaderData(); const navigate = useNavigate(); const { token } = query; - const api = useAPIClient(); + const api = useAuthApi(); const [rateLimiter, setRateLimiter] = usePersistState('rateLimiter', {}); @@ -27,7 +27,7 @@ const VerifyEmail = () => { (async () => { try { if (!token) return; - const { _, errors } = await api.verifyEmail({ + const { errors } = await api.verifyEmail({ token, }); if (errors) { @@ -68,7 +68,7 @@ const VerifyEmail = () => { setSending(true); - const { errors } = await api.resendVerificationEmail({ email }); + const { errors } = await api.resendVerificationEmail(); setSending(false); diff --git a/web/src/apps/auth/server/gql/saved-queries.ts b/web/src/apps/auth/server/gql/saved-queries.ts index 6f2b15002..ccab30de7 100644 --- a/web/src/apps/auth/server/gql/saved-queries.ts +++ b/web/src/apps/auth/server/gql/saved-queries.ts @@ -25,6 +25,8 @@ import { AuthCheckOauthEnabledQueryVariables, AuthSetRemoteAuthHeaderMutation, AuthSetRemoteAuthHeaderMutationVariables, + AuthResendVerificationEmailMutation, + AuthResendVerificationEmailMutationVariables, } from '~/root/src/generated/gql/server'; import { cliQueries } from './cli-queries'; @@ -138,6 +140,19 @@ export const GQLServerHandler = ({ headers, cookies }: IGQLServerProps) => { } ), + resendVerificationEmail: executor( + gql` + mutation Mutation { + auth_resendVerificationEmail + } + `, + { + transformer: (data: AuthResendVerificationEmailMutation) => + data.auth_resendVerificationEmail, + vars(_: AuthResendVerificationEmailMutationVariables) {}, + } + ), + loginPageInitUrls: executor( gql` query Query { diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/_layout.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/_layout.tsx index a4e2a832c..2e94c38d7 100644 --- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/_layout.tsx +++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/_layout.tsx @@ -1,5 +1,5 @@ import { - BackingServices, + // BackingServices, CirclesFour, GearSix, // Plus, @@ -103,16 +103,16 @@ const tabs = [ to: '/cs/configs', value: '/cs', }, - { - label: ( - - - Managed resources - - ), - to: '/managed-resources', - value: '/managed-resources', - }, + // { + // label: ( + // + // + // Managed resources + // + // ), + // to: '/managed-resources', + // value: '/managed-resources', + // }, // { // label: 'Jobs & Crons', // to: '/jc/task', diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/config.$config/handle.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/config.$config/handle.tsx index 441a698d1..735a0b022 100644 --- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/config.$config/handle.tsx +++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/config.$config/handle.tsx @@ -4,6 +4,7 @@ import Popup from '~/components/molecule/popup'; import { IDialog, IModifiedItem } from '~/console/components/types.d'; import { ConsoleApiType } from '~/console/server/gql/saved-queries'; import { parseName } from '~/console/server/r-utils/common'; +import { constants } from '~/console/server/utils/constants'; import useForm from '~/lib/client/hooks/use-form'; import Yup from '~/lib/server/helpers/yup'; import { handleError } from '~/lib/utils/common'; @@ -75,6 +76,7 @@ const Handle = ({ validationSchema: Yup.object({ key: Yup.string() .required() + .matches(constants.keyFormatRegex, 'Invalid key format') .test('is-valid', 'Key already exists.', (value) => { if (isUpdate) { return true; diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/cs+/configs._index/handle-config.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/cs+/configs._index/handle-config.tsx index a4512e4ad..e973eabdc 100644 --- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/cs+/configs._index/handle-config.tsx +++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/cs+/configs._index/handle-config.tsx @@ -25,13 +25,13 @@ const HandleConfig = ({ show, setShow }: IDialog) => { name: Yup.string().required(), }), onSubmit: async (val) => { - if ( !environment) { + if (!environment) { throw new Error('Project and Environment is required!.'); } try { const { errors: e } = await api.createConfig({ envName: environment, - + config: { metadata: { name: val.name, diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/new-app/app-network.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/new-app/app-network.tsx index 207dd460f..e97badfb4 100644 --- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/new-app/app-network.tsx +++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/new-app/app-network.tsx @@ -162,6 +162,7 @@ const ExposedRoute = () => { // error={!!portError} // message={portError} disableWhileLoading + createLabel="Exposed Domains" /> ); @@ -219,6 +220,7 @@ export const ExposedPorts = () => { error={!!portError} message={portError} disableWhileLoading + createLabel="Exposed ports" /> diff --git a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/secret.$secret/handle.tsx b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/secret.$secret/handle.tsx index fcbacb710..c18f649ce 100644 --- a/web/src/apps/console/routes/_main+/$account+/env+/$environment+/secret.$secret/handle.tsx +++ b/web/src/apps/console/routes/_main+/$account+/env+/$environment+/secret.$secret/handle.tsx @@ -4,6 +4,7 @@ import Popup from '~/components/molecule/popup'; import { IDialog, IModifiedItem } from '~/console/components/types.d'; import { ConsoleApiType } from '~/console/server/gql/saved-queries'; import { parseName } from '~/console/server/r-utils/common'; +import { constants } from '~/console/server/utils/constants'; import useForm from '~/lib/client/hooks/use-form'; import Yup from '~/lib/server/helpers/yup'; import { handleError } from '~/lib/utils/common'; @@ -72,6 +73,7 @@ const Handle = ({ validationSchema: Yup.object({ key: Yup.string() .required() + .matches(constants.keyFormatRegex, 'Invalid key format') .test('is-valid', 'Key already exists.', (value) => { if (isUpdate) { return true; diff --git a/web/src/apps/console/routes/_main+/_index.tsx b/web/src/apps/console/routes/_main+/_index.tsx index da4852812..7c104e7ff 100644 --- a/web/src/apps/console/routes/_main+/_index.tsx +++ b/web/src/apps/console/routes/_main+/_index.tsx @@ -1,11 +1,5 @@ import { redirect } from '@remix-run/node'; -import { GQLServerHandler } from '~/root/lib/server/gql/saved-queries'; -import { IRemixCtx } from '~/root/lib/types/common'; -export const loader = async (ctx: IRemixCtx) => { - const { data } = await GQLServerHandler(ctx.request).whoAmI(); - if (data && !data.approved) { - return redirect(`/invite-code`); - } +export const loader = async () => { return redirect('/teams'); }; diff --git a/web/src/apps/console/routes/_main+/_layout/_layout.tsx b/web/src/apps/console/routes/_main+/_layout/_layout.tsx index 2f70a78cc..32bce5690 100644 --- a/web/src/apps/console/routes/_main+/_layout/_layout.tsx +++ b/web/src/apps/console/routes/_main+/_layout/_layout.tsx @@ -36,7 +36,7 @@ import { InfraAsCode, GearSix, Project, - BackingServices, + // BackingServices, BellFill, Sliders, } from '~/console/components/icons'; @@ -86,16 +86,16 @@ const AccountTabs = () => { to: '/environments', value: '/environments', }, - { - label: ( - - - Managed Services - - ), - to: '/managed-services', - value: '/managed-services', - }, + // { + // label: ( + // + // + // Managed Services + // + // ), + // to: '/managed-services', + // value: '/managed-services', + // }, { label: ( diff --git a/web/src/apps/console/routes/invite-code.tsx b/web/src/apps/console/routes/invite-code.tsx deleted file mode 100644 index fdf1aaf1d..000000000 --- a/web/src/apps/console/routes/invite-code.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { redirect } from '@remix-run/node'; -import { useNavigate } from '@remix-run/react'; -import { BrandLogo } from '~/components/branding/brand-logo'; -import { toast } from '~/components/molecule/toast'; -import { useConsoleApi } from '~/console/server/gql/api-provider'; -import useForm from '~/root/lib/client/hooks/use-form'; -import Yup from '~/root/lib/server/helpers/yup'; -import { IRemixCtx } from '~/root/lib/types/common'; -import { GQLServerHandler } from '~/lib/server/gql/saved-queries'; -import { Badge } from '~/components/atoms/badge'; -import TextInputLg from '~/console/components/text-input-lg'; - -const InviteCode = () => { - const api = useConsoleApi(); - const navigate = useNavigate(); - - const { values, handleChange, submit, handleSubmit } = useForm({ - initialValues: { - inviteCode: '', - }, - validationSchema: Yup.object({ - inviteCode: Yup.string().required('invite code is required'), - }), - onSubmit: async (v) => { - try { - const { errors } = await api.verifyInviteCode({ - invitationCode: v.inviteCode, - }); - if (errors) { - throw new Error(errors[0].message); - } - toast.success('Invitation code verification successful.'); - navigate('/teams'); - } catch (err) { - const errorMessage = - err instanceof Error - ? err.message - : 'An error occurred. Please try again.'; - toast.error(errorMessage); - } - }, - }); - - return ( -
- - - 🔥 Amazing curated{' '} - Open-Source{' '} - remote local envs - - - Unlock early access now! - - - Dont miss the chance to try our product. Enter your referral code now to - move up the waitlist and secure early access! - -
-
- -
-
-
- ); -}; - -export const loader = async (ctx: IRemixCtx) => { - const { data, errors } = await GQLServerHandler(ctx.request).whoAmI(); - - if (!data || errors) { - return redirect('/'); - } - - const { approved } = data || {}; - - if (approved) { - return redirect('/teams'); - } - - return {}; -}; - -export default InviteCode; diff --git a/web/src/apps/console/server/gql/queries/access-queries.ts b/web/src/apps/console/server/gql/queries/access-queries.ts index a92b83a1e..8256426dc 100644 --- a/web/src/apps/console/server/gql/queries/access-queries.ts +++ b/web/src/apps/console/server/gql/queries/access-queries.ts @@ -20,8 +20,6 @@ import { ConsoleRejectInvitationMutationVariables, ConsoleDeleteAccountMembershipMutation, ConsoleDeleteAccountMembershipMutationVariables, - ConsoleVerifyInviteCodeMutation, - ConsoleVerifyInviteCodeMutationVariables, } from '~/root/src/generated/gql/server'; export type IInvites = NN< @@ -210,17 +208,4 @@ export const accessQueries = (executor: IExecutor) => ({ vars(_: ConsoleDeleteAccountMembershipMutationVariables) {}, } ), - - verifyInviteCode: executor( - gql` - mutation Auth_verifyInviteCode($invitationCode: String!) { - auth_verifyInviteCode(invitationCode: $invitationCode) - } - `, - { - transformer: (data: ConsoleVerifyInviteCodeMutation) => - data.auth_verifyInviteCode, - vars(_: ConsoleVerifyInviteCodeMutationVariables) {}, - } - ), }); diff --git a/web/src/apps/console/server/gql/queries/config-queries.ts b/web/src/apps/console/server/gql/queries/config-queries.ts index 6e645e532..c130b1bf7 100644 --- a/web/src/apps/console/server/gql/queries/config-queries.ts +++ b/web/src/apps/console/server/gql/queries/config-queries.ts @@ -20,50 +20,32 @@ export type IConfigs = NN; export const configQueries = (executor: IExecutor) => ({ updateConfig: executor( gql` - mutation Core_updateConfig( - $envName: String! - $config: ConfigIn! - ) { - core_updateConfig( - envName: $envName - config: $config - ) { + mutation Core_updateConfig($envName: String!, $config: ConfigIn!) { + core_updateConfig(envName: $envName, config: $config) { id } } `, { transformer: (data: ConsoleUpdateConfigMutation) => data, - vars(_: ConsoleUpdateConfigMutationVariables) { }, + vars(_: ConsoleUpdateConfigMutationVariables) {}, } ), deleteConfig: executor( gql` - mutation Core_deleteConfig( - $envName: String! - $configName: String! - ) { - core_deleteConfig( - envName: $envName - configName: $configName - ) + mutation Core_deleteConfig($envName: String!, $configName: String!) { + core_deleteConfig(envName: $envName, configName: $configName) } `, { transformer: (data: ConsoleDeleteConfigMutation) => data, - vars(_: ConsoleDeleteConfigMutationVariables) { }, + vars(_: ConsoleDeleteConfigMutationVariables) {}, } ), getConfig: executor( gql` - query Core_getConfig( - $envName: String! - $name: String! - ) { - core_getConfig( - envName: $envName - name: $name - ) { + query Core_getConfig($envName: String!, $name: String!) { + core_getConfig(envName: $envName, name: $name) { binaryData data displayName @@ -83,7 +65,7 @@ export const configQueries = (executor: IExecutor) => ({ `, { transformer: (data: ConsoleGetConfigQuery) => data.core_getConfig, - vars(_: ConsoleGetConfigQueryVariables) { }, + vars(_: ConsoleGetConfigQueryVariables) {}, } ), listConfigs: executor( @@ -93,11 +75,7 @@ export const configQueries = (executor: IExecutor) => ({ $search: SearchConfigs $pq: CursorPaginationIn ) { - core_listConfigs( - envName: $envName - search: $search - pq: $pq - ) { + core_listConfigs(envName: $envName, search: $search, pq: $pq) { edges { cursor node { @@ -141,19 +119,13 @@ export const configQueries = (executor: IExecutor) => ({ `, { transformer: (data: ConsoleListConfigsQuery) => data.core_listConfigs, - vars(_: ConsoleListConfigsQueryVariables) { }, + vars(_: ConsoleListConfigsQueryVariables) {}, } ), createConfig: executor( gql` - mutation Core_createConfig( - $envName: String! - $config: ConfigIn! - ) { - core_createConfig( - envName: $envName - config: $config - ) { + mutation Core_createConfig($envName: String!, $config: ConfigIn!) { + core_createConfig(envName: $envName, config: $config) { id } } @@ -161,7 +133,7 @@ export const configQueries = (executor: IExecutor) => ({ { transformer: (data: ConsoleCreateConfigMutation) => data.core_createConfig, - vars(_: ConsoleCreateConfigMutationVariables) { }, + vars(_: ConsoleCreateConfigMutationVariables) {}, } ), }); diff --git a/web/src/apps/console/server/utils/constants.ts b/web/src/apps/console/server/utils/constants.ts index 0c7b19033..1a2bd8b69 100644 --- a/web/src/apps/console/server/utils/constants.ts +++ b/web/src/apps/console/server/utils/constants.ts @@ -10,4 +10,5 @@ export const constants = { metadot: '·', dockerImageFormatRegex: /^(([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-zA-Z]{2,}(:[0-9]+)?\/)?([a-z0-9]+(-[a-z0-9]+)*\/)*[a-z0-9]+([._-][a-z0-9]+)*(:[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}[a-zA-Z0-9])?(@[A-Za-z][A-Za-z0-9]*(?:[._-][A-Za-z0-9]+)?:[A-Fa-f0-9]{32,})?$/, + keyFormatRegex: /^[A-Za-z0-9_]+([./-][A-Za-z0-9_]+)*$/, }; diff --git a/web/src/generated/gql/sdl.graphql b/web/src/generated/gql/sdl.graphql index 2939e4473..0f1d6e720 100644 --- a/web/src/generated/gql/sdl.graphql +++ b/web/src/generated/gql/sdl.graphql @@ -2074,7 +2074,8 @@ type GlobalVPN { creationTime: Date! displayName: String! id: ID! - kloudliteDevice: GlobalVPNKloudliteDevice! + kloudliteClusterLocalDevice: GlobalVPNKloudliteClusterLocalDevice! + kloudliteGatewayDevice: GlobalVPNKloudliteGatewayDevice! lastUpdatedBy: Github__com___kloudlite___api___common__CreatedOrUpdatedBy! markedForDeletion: Boolean metadata: Metadata! @@ -2134,7 +2135,8 @@ input GlobalVPNIn { allocatableCIDRSuffix: Int! CIDR: String! displayName: String! - kloudliteDevice: GlobalVPNKloudliteDeviceIn! + kloudliteClusterLocalDevice: GlobalVPNKloudliteClusterLocalDeviceIn! + kloudliteGatewayDevice: GlobalVPNKloudliteGatewayDeviceIn! metadata: MetadataIn! nonClusterUseAllowedIPs: [String!]! numAllocatedClusterCIDRs: Int! @@ -2143,12 +2145,22 @@ input GlobalVPNIn { wgInterface: String! } -type GlobalVPNKloudliteDevice { +type GlobalVPNKloudliteClusterLocalDevice { ipAddr: String! name: String! } -input GlobalVPNKloudliteDeviceIn { +input GlobalVPNKloudliteClusterLocalDeviceIn { + ipAddr: String! + name: String! +} + +type GlobalVPNKloudliteGatewayDevice { + ipAddr: String! + name: String! +} + +input GlobalVPNKloudliteGatewayDeviceIn { ipAddr: String! name: String! } diff --git a/web/src/generated/gql/server.ts b/web/src/generated/gql/server.ts index a16dee36c..7be9e999a 100644 --- a/web/src/generated/gql/server.ts +++ b/web/src/generated/gql/server.ts @@ -1048,7 +1048,8 @@ export type GlobalVpnIn = { allocatableCIDRSuffix: Scalars['Int']['input']; CIDR: Scalars['String']['input']; displayName: Scalars['String']['input']; - kloudliteDevice: GlobalVpnKloudliteDeviceIn; + kloudliteClusterLocalDevice: GlobalVpnKloudliteClusterLocalDeviceIn; + kloudliteGatewayDevice: GlobalVpnKloudliteGatewayDeviceIn; metadata: MetadataIn; nonClusterUseAllowedIPs: Array; numAllocatedClusterCIDRs: Scalars['Int']['input']; @@ -1057,7 +1058,12 @@ export type GlobalVpnIn = { wgInterface: Scalars['String']['input']; }; -export type GlobalVpnKloudliteDeviceIn = { +export type GlobalVpnKloudliteClusterLocalDeviceIn = { + ipAddr: Scalars['String']['input']; + name: Scalars['String']['input']; +}; + +export type GlobalVpnKloudliteGatewayDeviceIn = { ipAddr: Scalars['String']['input']; name: Scalars['String']['input']; }; @@ -3627,14 +3633,6 @@ export type ConsoleDeleteAccountMembershipMutation = { accounts_removeAccountMembership: boolean; }; -export type ConsoleVerifyInviteCodeMutationVariables = Exact<{ - invitationCode: Scalars['String']['input']; -}>; - -export type ConsoleVerifyInviteCodeMutation = { - auth_verifyInviteCode: boolean; -}; - export type ConsoleGetCredTokenQueryVariables = Exact<{ username: Scalars['String']['input']; }>; @@ -8111,6 +8109,14 @@ export type AuthVerifyEmailMutationVariables = Exact<{ export type AuthVerifyEmailMutation = { auth_verifyEmail: { id: string } }; +export type AuthResendVerificationEmailMutationVariables = Exact<{ + [key: string]: never; +}>; + +export type AuthResendVerificationEmailMutation = { + auth_resendVerificationEmail: boolean; +}; + export type AuthLoginPageInitUrlsQueryVariables = Exact<{ [key: string]: never; }>;