diff --git a/frontend/src/routeTree.gen.ts b/frontend/src/routeTree.gen.ts index 4fa8ad0f4..f9f2aa03a 100644 --- a/frontend/src/routeTree.gen.ts +++ b/frontend/src/routeTree.gen.ts @@ -8,292 +8,114 @@ // You should NOT make any changes in this file as it will be overwritten. // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. -// Import Routes +import type { CreateFileRoute, FileRoutesByPath } from '@tanstack/react-router' -import { Route as rootRoute } from './routes/__root' -import { Route as ResetCrossSigningImport } from './routes/reset-cross-signing' -import { Route as AccountImport } from './routes/_account' -import { Route as ResetCrossSigningIndexImport } from './routes/reset-cross-signing.index' -import { Route as AccountIndexImport } from './routes/_account.index' -import { Route as SessionsIdImport } from './routes/sessions.$id' -import { Route as ResetCrossSigningSuccessImport } from './routes/reset-cross-signing.success' -import { Route as ResetCrossSigningCancelledImport } from './routes/reset-cross-signing.cancelled' -import { Route as DevicesSplatImport } from './routes/devices.$' -import { Route as ClientsIdImport } from './routes/clients.$id' -import { Route as PasswordRecoveryIndexImport } from './routes/password.recovery.index' -import { Route as PasswordChangeIndexImport } from './routes/password.change.index' -import { Route as AccountSessionsIndexImport } from './routes/_account.sessions.index' -import { Route as AccountPlanIndexImport } from './routes/_account.plan.index' -import { Route as PasswordChangeSuccessImport } from './routes/password.change.success' -import { Route as EmailsIdVerifyImport } from './routes/emails.$id.verify' -import { Route as EmailsIdInUseImport } from './routes/emails.$id.in-use' -import { Route as AccountSessionsBrowsersImport } from './routes/_account.sessions.browsers' +import { Route as rootRouteImport } from './routes/__root' +import { Route as ResetCrossSigningRouteImport } from './routes/reset-cross-signing' +import { Route as AccountRouteImport } from './routes/_account' +import { Route as ResetCrossSigningIndexRouteImport } from './routes/reset-cross-signing.index' +import { Route as AccountIndexRouteImport } from './routes/_account.index' +import { Route as SessionsIdRouteImport } from './routes/sessions.$id' +import { Route as ResetCrossSigningSuccessRouteImport } from './routes/reset-cross-signing.success' +import { Route as ResetCrossSigningCancelledRouteImport } from './routes/reset-cross-signing.cancelled' +import { Route as DevicesSplatRouteImport } from './routes/devices.$' +import { Route as ClientsIdRouteImport } from './routes/clients.$id' +import { Route as PasswordRecoveryIndexRouteImport } from './routes/password.recovery.index' +import { Route as PasswordChangeIndexRouteImport } from './routes/password.change.index' +import { Route as AccountSessionsIndexRouteImport } from './routes/_account.sessions.index' +import { Route as AccountPlanIndexRouteImport } from './routes/_account.plan.index' +import { Route as PasswordChangeSuccessRouteImport } from './routes/password.change.success' +import { Route as EmailsIdVerifyRouteImport } from './routes/emails.$id.verify' +import { Route as EmailsIdInUseRouteImport } from './routes/emails.$id.in-use' +import { Route as AccountSessionsBrowsersRouteImport } from './routes/_account.sessions.browsers' -// Create/Update Routes - -const ResetCrossSigningRoute = ResetCrossSigningImport.update({ +const ResetCrossSigningRoute = ResetCrossSigningRouteImport.update({ id: '/reset-cross-signing', path: '/reset-cross-signing', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const AccountRoute = AccountImport.update({ +const AccountRoute = AccountRouteImport.update({ id: '/_account', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const ResetCrossSigningIndexRoute = ResetCrossSigningIndexImport.update({ +const ResetCrossSigningIndexRoute = ResetCrossSigningIndexRouteImport.update({ id: '/', path: '/', getParentRoute: () => ResetCrossSigningRoute, } as any) - -const AccountIndexRoute = AccountIndexImport.update({ +const AccountIndexRoute = AccountIndexRouteImport.update({ id: '/', path: '/', getParentRoute: () => AccountRoute, } as any) - -const SessionsIdRoute = SessionsIdImport.update({ +const SessionsIdRoute = SessionsIdRouteImport.update({ id: '/sessions/$id', path: '/sessions/$id', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const ResetCrossSigningSuccessRoute = ResetCrossSigningSuccessImport.update({ - id: '/success', - path: '/success', - getParentRoute: () => ResetCrossSigningRoute, -} as any) - -const ResetCrossSigningCancelledRoute = ResetCrossSigningCancelledImport.update( - { +const ResetCrossSigningSuccessRoute = + ResetCrossSigningSuccessRouteImport.update({ + id: '/success', + path: '/success', + getParentRoute: () => ResetCrossSigningRoute, + } as any) +const ResetCrossSigningCancelledRoute = + ResetCrossSigningCancelledRouteImport.update({ id: '/cancelled', path: '/cancelled', getParentRoute: () => ResetCrossSigningRoute, - } as any, -) - -const DevicesSplatRoute = DevicesSplatImport.update({ + } as any) +const DevicesSplatRoute = DevicesSplatRouteImport.update({ id: '/devices/$', path: '/devices/$', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const ClientsIdRoute = ClientsIdImport.update({ +const ClientsIdRoute = ClientsIdRouteImport.update({ id: '/clients/$id', path: '/clients/$id', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const PasswordRecoveryIndexRoute = PasswordRecoveryIndexImport.update({ +const PasswordRecoveryIndexRoute = PasswordRecoveryIndexRouteImport.update({ id: '/password/recovery/', path: '/password/recovery/', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const PasswordChangeIndexRoute = PasswordChangeIndexImport.update({ +const PasswordChangeIndexRoute = PasswordChangeIndexRouteImport.update({ id: '/password/change/', path: '/password/change/', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const AccountSessionsIndexRoute = AccountSessionsIndexImport.update({ +const AccountSessionsIndexRoute = AccountSessionsIndexRouteImport.update({ id: '/sessions/', path: '/sessions/', getParentRoute: () => AccountRoute, } as any) - -const AccountPlanIndexRoute = AccountPlanIndexImport.update({ +const AccountPlanIndexRoute = AccountPlanIndexRouteImport.update({ id: '/plan/', path: '/plan/', getParentRoute: () => AccountRoute, } as any) - -const PasswordChangeSuccessRoute = PasswordChangeSuccessImport.update({ +const PasswordChangeSuccessRoute = PasswordChangeSuccessRouteImport.update({ id: '/password/change/success', path: '/password/change/success', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const EmailsIdVerifyRoute = EmailsIdVerifyImport.update({ +const EmailsIdVerifyRoute = EmailsIdVerifyRouteImport.update({ id: '/emails/$id/verify', path: '/emails/$id/verify', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const EmailsIdInUseRoute = EmailsIdInUseImport.update({ +const EmailsIdInUseRoute = EmailsIdInUseRouteImport.update({ id: '/emails/$id/in-use', path: '/emails/$id/in-use', - getParentRoute: () => rootRoute, + getParentRoute: () => rootRouteImport, } as any) - -const AccountSessionsBrowsersRoute = AccountSessionsBrowsersImport.update({ +const AccountSessionsBrowsersRoute = AccountSessionsBrowsersRouteImport.update({ id: '/sessions/browsers', path: '/sessions/browsers', getParentRoute: () => AccountRoute, } as any) -// Populate the FileRoutesByPath interface - -declare module '@tanstack/react-router' { - interface FileRoutesByPath { - '/_account': { - id: '/_account' - path: '' - fullPath: '' - preLoaderRoute: typeof AccountImport - parentRoute: typeof rootRoute - } - '/reset-cross-signing': { - id: '/reset-cross-signing' - path: '/reset-cross-signing' - fullPath: '/reset-cross-signing' - preLoaderRoute: typeof ResetCrossSigningImport - parentRoute: typeof rootRoute - } - '/clients/$id': { - id: '/clients/$id' - path: '/clients/$id' - fullPath: '/clients/$id' - preLoaderRoute: typeof ClientsIdImport - parentRoute: typeof rootRoute - } - '/devices/$': { - id: '/devices/$' - path: '/devices/$' - fullPath: '/devices/$' - preLoaderRoute: typeof DevicesSplatImport - parentRoute: typeof rootRoute - } - '/reset-cross-signing/cancelled': { - id: '/reset-cross-signing/cancelled' - path: '/cancelled' - fullPath: '/reset-cross-signing/cancelled' - preLoaderRoute: typeof ResetCrossSigningCancelledImport - parentRoute: typeof ResetCrossSigningImport - } - '/reset-cross-signing/success': { - id: '/reset-cross-signing/success' - path: '/success' - fullPath: '/reset-cross-signing/success' - preLoaderRoute: typeof ResetCrossSigningSuccessImport - parentRoute: typeof ResetCrossSigningImport - } - '/sessions/$id': { - id: '/sessions/$id' - path: '/sessions/$id' - fullPath: '/sessions/$id' - preLoaderRoute: typeof SessionsIdImport - parentRoute: typeof rootRoute - } - '/_account/': { - id: '/_account/' - path: '/' - fullPath: '/' - preLoaderRoute: typeof AccountIndexImport - parentRoute: typeof AccountImport - } - '/reset-cross-signing/': { - id: '/reset-cross-signing/' - path: '/' - fullPath: '/reset-cross-signing/' - preLoaderRoute: typeof ResetCrossSigningIndexImport - parentRoute: typeof ResetCrossSigningImport - } - '/_account/sessions/browsers': { - id: '/_account/sessions/browsers' - path: '/sessions/browsers' - fullPath: '/sessions/browsers' - preLoaderRoute: typeof AccountSessionsBrowsersImport - parentRoute: typeof AccountImport - } - '/emails/$id/in-use': { - id: '/emails/$id/in-use' - path: '/emails/$id/in-use' - fullPath: '/emails/$id/in-use' - preLoaderRoute: typeof EmailsIdInUseImport - parentRoute: typeof rootRoute - } - '/emails/$id/verify': { - id: '/emails/$id/verify' - path: '/emails/$id/verify' - fullPath: '/emails/$id/verify' - preLoaderRoute: typeof EmailsIdVerifyImport - parentRoute: typeof rootRoute - } - '/password/change/success': { - id: '/password/change/success' - path: '/password/change/success' - fullPath: '/password/change/success' - preLoaderRoute: typeof PasswordChangeSuccessImport - parentRoute: typeof rootRoute - } - '/_account/plan/': { - id: '/_account/plan/' - path: '/plan' - fullPath: '/plan' - preLoaderRoute: typeof AccountPlanIndexImport - parentRoute: typeof AccountImport - } - '/_account/sessions/': { - id: '/_account/sessions/' - path: '/sessions' - fullPath: '/sessions' - preLoaderRoute: typeof AccountSessionsIndexImport - parentRoute: typeof AccountImport - } - '/password/change/': { - id: '/password/change/' - path: '/password/change' - fullPath: '/password/change' - preLoaderRoute: typeof PasswordChangeIndexImport - parentRoute: typeof rootRoute - } - '/password/recovery/': { - id: '/password/recovery/' - path: '/password/recovery' - fullPath: '/password/recovery' - preLoaderRoute: typeof PasswordRecoveryIndexImport - parentRoute: typeof rootRoute - } - } -} - -// Create and export the route tree - -interface AccountRouteChildren { - AccountIndexRoute: typeof AccountIndexRoute - AccountSessionsBrowsersRoute: typeof AccountSessionsBrowsersRoute - AccountPlanIndexRoute: typeof AccountPlanIndexRoute - AccountSessionsIndexRoute: typeof AccountSessionsIndexRoute -} - -const AccountRouteChildren: AccountRouteChildren = { - AccountIndexRoute: AccountIndexRoute, - AccountSessionsBrowsersRoute: AccountSessionsBrowsersRoute, - AccountPlanIndexRoute: AccountPlanIndexRoute, - AccountSessionsIndexRoute: AccountSessionsIndexRoute, -} - -const AccountRouteWithChildren = - AccountRoute._addFileChildren(AccountRouteChildren) - -interface ResetCrossSigningRouteChildren { - ResetCrossSigningCancelledRoute: typeof ResetCrossSigningCancelledRoute - ResetCrossSigningSuccessRoute: typeof ResetCrossSigningSuccessRoute - ResetCrossSigningIndexRoute: typeof ResetCrossSigningIndexRoute -} - -const ResetCrossSigningRouteChildren: ResetCrossSigningRouteChildren = { - ResetCrossSigningCancelledRoute: ResetCrossSigningCancelledRoute, - ResetCrossSigningSuccessRoute: ResetCrossSigningSuccessRoute, - ResetCrossSigningIndexRoute: ResetCrossSigningIndexRoute, -} - -const ResetCrossSigningRouteWithChildren = - ResetCrossSigningRoute._addFileChildren(ResetCrossSigningRouteChildren) - export interface FileRoutesByFullPath { '': typeof AccountRouteWithChildren '/reset-cross-signing': typeof ResetCrossSigningRouteWithChildren @@ -313,7 +135,6 @@ export interface FileRoutesByFullPath { '/password/change': typeof PasswordChangeIndexRoute '/password/recovery': typeof PasswordRecoveryIndexRoute } - export interface FileRoutesByTo { '/clients/$id': typeof ClientsIdRoute '/devices/$': typeof DevicesSplatRoute @@ -331,9 +152,8 @@ export interface FileRoutesByTo { '/password/change': typeof PasswordChangeIndexRoute '/password/recovery': typeof PasswordRecoveryIndexRoute } - export interface FileRoutesById { - __root__: typeof rootRoute + __root__: typeof rootRouteImport '/_account': typeof AccountRouteWithChildren '/reset-cross-signing': typeof ResetCrossSigningRouteWithChildren '/clients/$id': typeof ClientsIdRoute @@ -352,7 +172,6 @@ export interface FileRoutesById { '/password/change/': typeof PasswordChangeIndexRoute '/password/recovery/': typeof PasswordRecoveryIndexRoute } - export interface FileRouteTypes { fileRoutesByFullPath: FileRoutesByFullPath fullPaths: @@ -411,7 +230,6 @@ export interface FileRouteTypes { | '/password/recovery/' fileRoutesById: FileRoutesById } - export interface RootRouteChildren { AccountRoute: typeof AccountRouteWithChildren ResetCrossSigningRoute: typeof ResetCrossSigningRouteWithChildren @@ -425,6 +243,316 @@ export interface RootRouteChildren { PasswordRecoveryIndexRoute: typeof PasswordRecoveryIndexRoute } +declare module '@tanstack/react-router' { + interface FileRoutesByPath { + '/_account': { + id: '/_account' + path: '' + fullPath: '' + preLoaderRoute: typeof AccountRouteImport + parentRoute: typeof rootRouteImport + } + '/reset-cross-signing': { + id: '/reset-cross-signing' + path: '/reset-cross-signing' + fullPath: '/reset-cross-signing' + preLoaderRoute: typeof ResetCrossSigningRouteImport + parentRoute: typeof rootRouteImport + } + '/clients/$id': { + id: '/clients/$id' + path: '/clients/$id' + fullPath: '/clients/$id' + preLoaderRoute: typeof ClientsIdRouteImport + parentRoute: typeof rootRouteImport + } + '/devices/$': { + id: '/devices/$' + path: '/devices/$' + fullPath: '/devices/$' + preLoaderRoute: typeof DevicesSplatRouteImport + parentRoute: typeof rootRouteImport + } + '/reset-cross-signing/cancelled': { + id: '/reset-cross-signing/cancelled' + path: '/cancelled' + fullPath: '/reset-cross-signing/cancelled' + preLoaderRoute: typeof ResetCrossSigningCancelledRouteImport + parentRoute: typeof ResetCrossSigningRoute + } + '/reset-cross-signing/success': { + id: '/reset-cross-signing/success' + path: '/success' + fullPath: '/reset-cross-signing/success' + preLoaderRoute: typeof ResetCrossSigningSuccessRouteImport + parentRoute: typeof ResetCrossSigningRoute + } + '/sessions/$id': { + id: '/sessions/$id' + path: '/sessions/$id' + fullPath: '/sessions/$id' + preLoaderRoute: typeof SessionsIdRouteImport + parentRoute: typeof rootRouteImport + } + '/_account/': { + id: '/_account/' + path: '/' + fullPath: '/' + preLoaderRoute: typeof AccountIndexRouteImport + parentRoute: typeof AccountRoute + } + '/reset-cross-signing/': { + id: '/reset-cross-signing/' + path: '/' + fullPath: '/reset-cross-signing/' + preLoaderRoute: typeof ResetCrossSigningIndexRouteImport + parentRoute: typeof ResetCrossSigningRoute + } + '/_account/sessions/browsers': { + id: '/_account/sessions/browsers' + path: '/sessions/browsers' + fullPath: '/sessions/browsers' + preLoaderRoute: typeof AccountSessionsBrowsersRouteImport + parentRoute: typeof AccountRoute + } + '/emails/$id/in-use': { + id: '/emails/$id/in-use' + path: '/emails/$id/in-use' + fullPath: '/emails/$id/in-use' + preLoaderRoute: typeof EmailsIdInUseRouteImport + parentRoute: typeof rootRouteImport + } + '/emails/$id/verify': { + id: '/emails/$id/verify' + path: '/emails/$id/verify' + fullPath: '/emails/$id/verify' + preLoaderRoute: typeof EmailsIdVerifyRouteImport + parentRoute: typeof rootRouteImport + } + '/password/change/success': { + id: '/password/change/success' + path: '/password/change/success' + fullPath: '/password/change/success' + preLoaderRoute: typeof PasswordChangeSuccessRouteImport + parentRoute: typeof rootRouteImport + } + '/_account/plan/': { + id: '/_account/plan/' + path: '/plan' + fullPath: '/plan' + preLoaderRoute: typeof AccountPlanIndexRouteImport + parentRoute: typeof AccountRoute + } + '/_account/sessions/': { + id: '/_account/sessions/' + path: '/sessions' + fullPath: '/sessions' + preLoaderRoute: typeof AccountSessionsIndexRouteImport + parentRoute: typeof AccountRoute + } + '/password/change/': { + id: '/password/change/' + path: '/password/change' + fullPath: '/password/change' + preLoaderRoute: typeof PasswordChangeIndexRouteImport + parentRoute: typeof rootRouteImport + } + '/password/recovery/': { + id: '/password/recovery/' + path: '/password/recovery' + fullPath: '/password/recovery' + preLoaderRoute: typeof PasswordRecoveryIndexRouteImport + parentRoute: typeof rootRouteImport + } + } +} + +declare module './routes/_account' { + const createFileRoute: CreateFileRoute< + '/_account', + FileRoutesByPath['/_account']['parentRoute'], + FileRoutesByPath['/_account']['id'], + FileRoutesByPath['/_account']['path'], + FileRoutesByPath['/_account']['fullPath'] + > +} +declare module './routes/reset-cross-signing' { + const createFileRoute: CreateFileRoute< + '/reset-cross-signing', + FileRoutesByPath['/reset-cross-signing']['parentRoute'], + FileRoutesByPath['/reset-cross-signing']['id'], + FileRoutesByPath['/reset-cross-signing']['path'], + FileRoutesByPath['/reset-cross-signing']['fullPath'] + > +} +declare module './routes/clients.$id' { + const createFileRoute: CreateFileRoute< + '/clients/$id', + FileRoutesByPath['/clients/$id']['parentRoute'], + FileRoutesByPath['/clients/$id']['id'], + FileRoutesByPath['/clients/$id']['path'], + FileRoutesByPath['/clients/$id']['fullPath'] + > +} +declare module './routes/devices.$' { + const createFileRoute: CreateFileRoute< + '/devices/$', + FileRoutesByPath['/devices/$']['parentRoute'], + FileRoutesByPath['/devices/$']['id'], + FileRoutesByPath['/devices/$']['path'], + FileRoutesByPath['/devices/$']['fullPath'] + > +} +declare module './routes/reset-cross-signing.cancelled' { + const createFileRoute: CreateFileRoute< + '/reset-cross-signing/cancelled', + FileRoutesByPath['/reset-cross-signing/cancelled']['parentRoute'], + FileRoutesByPath['/reset-cross-signing/cancelled']['id'], + FileRoutesByPath['/reset-cross-signing/cancelled']['path'], + FileRoutesByPath['/reset-cross-signing/cancelled']['fullPath'] + > +} +declare module './routes/reset-cross-signing.success' { + const createFileRoute: CreateFileRoute< + '/reset-cross-signing/success', + FileRoutesByPath['/reset-cross-signing/success']['parentRoute'], + FileRoutesByPath['/reset-cross-signing/success']['id'], + FileRoutesByPath['/reset-cross-signing/success']['path'], + FileRoutesByPath['/reset-cross-signing/success']['fullPath'] + > +} +declare module './routes/sessions.$id' { + const createFileRoute: CreateFileRoute< + '/sessions/$id', + FileRoutesByPath['/sessions/$id']['parentRoute'], + FileRoutesByPath['/sessions/$id']['id'], + FileRoutesByPath['/sessions/$id']['path'], + FileRoutesByPath['/sessions/$id']['fullPath'] + > +} +declare module './routes/_account.index' { + const createFileRoute: CreateFileRoute< + '/_account/', + FileRoutesByPath['/_account/']['parentRoute'], + FileRoutesByPath['/_account/']['id'], + FileRoutesByPath['/_account/']['path'], + FileRoutesByPath['/_account/']['fullPath'] + > +} +declare module './routes/reset-cross-signing.index' { + const createFileRoute: CreateFileRoute< + '/reset-cross-signing/', + FileRoutesByPath['/reset-cross-signing/']['parentRoute'], + FileRoutesByPath['/reset-cross-signing/']['id'], + FileRoutesByPath['/reset-cross-signing/']['path'], + FileRoutesByPath['/reset-cross-signing/']['fullPath'] + > +} +declare module './routes/_account.sessions.browsers' { + const createFileRoute: CreateFileRoute< + '/_account/sessions/browsers', + FileRoutesByPath['/_account/sessions/browsers']['parentRoute'], + FileRoutesByPath['/_account/sessions/browsers']['id'], + FileRoutesByPath['/_account/sessions/browsers']['path'], + FileRoutesByPath['/_account/sessions/browsers']['fullPath'] + > +} +declare module './routes/emails.$id.in-use' { + const createFileRoute: CreateFileRoute< + '/emails/$id/in-use', + FileRoutesByPath['/emails/$id/in-use']['parentRoute'], + FileRoutesByPath['/emails/$id/in-use']['id'], + FileRoutesByPath['/emails/$id/in-use']['path'], + FileRoutesByPath['/emails/$id/in-use']['fullPath'] + > +} +declare module './routes/emails.$id.verify' { + const createFileRoute: CreateFileRoute< + '/emails/$id/verify', + FileRoutesByPath['/emails/$id/verify']['parentRoute'], + FileRoutesByPath['/emails/$id/verify']['id'], + FileRoutesByPath['/emails/$id/verify']['path'], + FileRoutesByPath['/emails/$id/verify']['fullPath'] + > +} +declare module './routes/password.change.success' { + const createFileRoute: CreateFileRoute< + '/password/change/success', + FileRoutesByPath['/password/change/success']['parentRoute'], + FileRoutesByPath['/password/change/success']['id'], + FileRoutesByPath['/password/change/success']['path'], + FileRoutesByPath['/password/change/success']['fullPath'] + > +} +declare module './routes/_account.plan.index' { + const createFileRoute: CreateFileRoute< + '/_account/plan/', + FileRoutesByPath['/_account/plan/']['parentRoute'], + FileRoutesByPath['/_account/plan/']['id'], + FileRoutesByPath['/_account/plan/']['path'], + FileRoutesByPath['/_account/plan/']['fullPath'] + > +} +declare module './routes/_account.sessions.index' { + const createFileRoute: CreateFileRoute< + '/_account/sessions/', + FileRoutesByPath['/_account/sessions/']['parentRoute'], + FileRoutesByPath['/_account/sessions/']['id'], + FileRoutesByPath['/_account/sessions/']['path'], + FileRoutesByPath['/_account/sessions/']['fullPath'] + > +} +declare module './routes/password.change.index' { + const createFileRoute: CreateFileRoute< + '/password/change/', + FileRoutesByPath['/password/change/']['parentRoute'], + FileRoutesByPath['/password/change/']['id'], + FileRoutesByPath['/password/change/']['path'], + FileRoutesByPath['/password/change/']['fullPath'] + > +} +declare module './routes/password.recovery.index' { + const createFileRoute: CreateFileRoute< + '/password/recovery/', + FileRoutesByPath['/password/recovery/']['parentRoute'], + FileRoutesByPath['/password/recovery/']['id'], + FileRoutesByPath['/password/recovery/']['path'], + FileRoutesByPath['/password/recovery/']['fullPath'] + > +} + +interface AccountRouteChildren { + AccountIndexRoute: typeof AccountIndexRoute + AccountSessionsBrowsersRoute: typeof AccountSessionsBrowsersRoute + AccountPlanIndexRoute: typeof AccountPlanIndexRoute + AccountSessionsIndexRoute: typeof AccountSessionsIndexRoute +} + +const AccountRouteChildren: AccountRouteChildren = { + AccountIndexRoute: AccountIndexRoute, + AccountSessionsBrowsersRoute: AccountSessionsBrowsersRoute, + AccountPlanIndexRoute: AccountPlanIndexRoute, + AccountSessionsIndexRoute: AccountSessionsIndexRoute, +} + +const AccountRouteWithChildren = + AccountRoute._addFileChildren(AccountRouteChildren) + +interface ResetCrossSigningRouteChildren { + ResetCrossSigningCancelledRoute: typeof ResetCrossSigningCancelledRoute + ResetCrossSigningSuccessRoute: typeof ResetCrossSigningSuccessRoute + ResetCrossSigningIndexRoute: typeof ResetCrossSigningIndexRoute +} + +const ResetCrossSigningRouteChildren: ResetCrossSigningRouteChildren = { + ResetCrossSigningCancelledRoute: ResetCrossSigningCancelledRoute, + ResetCrossSigningSuccessRoute: ResetCrossSigningSuccessRoute, + ResetCrossSigningIndexRoute: ResetCrossSigningIndexRoute, +} + +const ResetCrossSigningRouteWithChildren = + ResetCrossSigningRoute._addFileChildren(ResetCrossSigningRouteChildren) + const rootRouteChildren: RootRouteChildren = { AccountRoute: AccountRouteWithChildren, ResetCrossSigningRoute: ResetCrossSigningRouteWithChildren, @@ -437,98 +565,6 @@ const rootRouteChildren: RootRouteChildren = { PasswordChangeIndexRoute: PasswordChangeIndexRoute, PasswordRecoveryIndexRoute: PasswordRecoveryIndexRoute, } - -export const routeTree = rootRoute +export const routeTree = rootRouteImport ._addFileChildren(rootRouteChildren) ._addFileTypes() - -/* ROUTE_MANIFEST_START -{ - "routes": { - "__root__": { - "filePath": "__root.tsx", - "children": [ - "/_account", - "/reset-cross-signing", - "/clients/$id", - "/devices/$", - "/sessions/$id", - "/emails/$id/in-use", - "/emails/$id/verify", - "/password/change/success", - "/password/change/", - "/password/recovery/" - ] - }, - "/_account": { - "filePath": "_account.tsx", - "children": [ - "/_account/", - "/_account/sessions/browsers", - "/_account/plan/", - "/_account/sessions/" - ] - }, - "/reset-cross-signing": { - "filePath": "reset-cross-signing.tsx", - "children": [ - "/reset-cross-signing/cancelled", - "/reset-cross-signing/success", - "/reset-cross-signing/" - ] - }, - "/clients/$id": { - "filePath": "clients.$id.tsx" - }, - "/devices/$": { - "filePath": "devices.$.tsx" - }, - "/reset-cross-signing/cancelled": { - "filePath": "reset-cross-signing.cancelled.tsx", - "parent": "/reset-cross-signing" - }, - "/reset-cross-signing/success": { - "filePath": "reset-cross-signing.success.tsx", - "parent": "/reset-cross-signing" - }, - "/sessions/$id": { - "filePath": "sessions.$id.tsx" - }, - "/_account/": { - "filePath": "_account.index.tsx", - "parent": "/_account" - }, - "/reset-cross-signing/": { - "filePath": "reset-cross-signing.index.tsx", - "parent": "/reset-cross-signing" - }, - "/_account/sessions/browsers": { - "filePath": "_account.sessions.browsers.tsx", - "parent": "/_account" - }, - "/emails/$id/in-use": { - "filePath": "emails.$id.in-use.tsx" - }, - "/emails/$id/verify": { - "filePath": "emails.$id.verify.tsx" - }, - "/password/change/success": { - "filePath": "password.change.success.tsx" - }, - "/_account/plan/": { - "filePath": "_account.plan.index.tsx", - "parent": "/_account" - }, - "/_account/sessions/": { - "filePath": "_account.sessions.index.tsx", - "parent": "/_account" - }, - "/password/change/": { - "filePath": "password.change.index.tsx" - }, - "/password/recovery/": { - "filePath": "password.recovery.index.tsx" - } - } -} -ROUTE_MANIFEST_END */ diff --git a/frontend/src/routes/_account.index.tsx b/frontend/src/routes/_account.index.tsx index 1237cbd93..cb086e9df 100644 --- a/frontend/src/routes/_account.index.tsx +++ b/frontend/src/routes/_account.index.tsx @@ -5,12 +5,7 @@ // Please see LICENSE in the repository root for full details. import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; -import { - createFileRoute, - notFound, - redirect, - useNavigate, -} from "@tanstack/react-router"; +import { notFound, redirect, useNavigate } from "@tanstack/react-router"; import IconSignOut from "@vector-im/compound-design-tokens/assets/web/icons/sign-out"; import { Button, Text } from "@vector-im/compound-web"; import { useTranslation } from "react-i18next"; @@ -93,7 +88,7 @@ const actionSchema = v.variant("action", [ ), ]); -export const Route = createFileRoute("/_account/")({ +export const Route = createFileRoute({ validateSearch: actionSchema, beforeLoad({ search }) { diff --git a/frontend/src/routes/_account.plan.index.tsx b/frontend/src/routes/_account.plan.index.tsx index d4916bfaa..ff9fa0a0f 100644 --- a/frontend/src/routes/_account.plan.index.tsx +++ b/frontend/src/routes/_account.plan.index.tsx @@ -4,7 +4,7 @@ // Please see LICENSE in the repository root for full details. import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; -import { Navigate, createFileRoute, redirect } from "@tanstack/react-router"; +import { Navigate, redirect } from "@tanstack/react-router"; import { useCallback, useEffect, useMemo, useRef } from "react"; import { preload } from "react-dom"; import { graphql } from "../gql"; @@ -23,7 +23,7 @@ export const query = queryOptions({ queryFn: ({ signal }) => graphqlRequest({ query: QUERY, signal }), }); -export const Route = createFileRoute("/_account/plan/")({ +export const Route = createFileRoute({ loader: async ({ context }) => { const { siteConfig: { planManagementIframeUri }, diff --git a/frontend/src/routes/_account.sessions.browsers.tsx b/frontend/src/routes/_account.sessions.browsers.tsx index 2cb023d38..8eedfa8c9 100644 --- a/frontend/src/routes/_account.sessions.browsers.tsx +++ b/frontend/src/routes/_account.sessions.browsers.tsx @@ -5,7 +5,7 @@ // Please see LICENSE in the repository root for full details. import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; -import { createFileRoute, notFound } from "@tanstack/react-router"; +import { notFound } from "@tanstack/react-router"; import { H5 } from "@vector-im/compound-web"; import { useTranslation } from "react-i18next"; import * as v from "valibot"; @@ -93,7 +93,7 @@ const searchSchema = v.intersect([ anyPaginationSchema, ]); -export const Route = createFileRoute("/_account/sessions/browsers")({ +export const Route = createFileRoute({ validateSearch: searchSchema, loaderDeps: ({ search: { inactive, ...pagination } }) => ({ diff --git a/frontend/src/routes/_account.sessions.index.tsx b/frontend/src/routes/_account.sessions.index.tsx index 58d621a93..8b458200e 100644 --- a/frontend/src/routes/_account.sessions.index.tsx +++ b/frontend/src/routes/_account.sessions.index.tsx @@ -7,7 +7,6 @@ import { useSuspenseQuery } from "@tanstack/react-query"; import { queryOptions } from "@tanstack/react-query"; import { notFound } from "@tanstack/react-router"; -import { createFileRoute } from "@tanstack/react-router"; import { H3 } from "@vector-im/compound-web"; import { useTranslation } from "react-i18next"; import * as v from "valibot"; @@ -112,7 +111,7 @@ const searchSchema = v.intersect([ anyPaginationSchema, ]); -export const Route = createFileRoute("/_account/sessions/")({ +export const Route = createFileRoute({ validateSearch: searchSchema, loaderDeps: ({ search: { inactive, ...pagination } }) => ({ diff --git a/frontend/src/routes/_account.tsx b/frontend/src/routes/_account.tsx index 5bbe3037e..fd023af3b 100644 --- a/frontend/src/routes/_account.tsx +++ b/frontend/src/routes/_account.tsx @@ -5,7 +5,7 @@ // Please see LICENSE in the repository root for full details. import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; -import { Outlet, createFileRoute, notFound } from "@tanstack/react-router"; +import { Outlet, notFound } from "@tanstack/react-router"; import { Heading } from "@vector-im/compound-web"; import { useTranslation } from "react-i18next"; import Layout from "../components/Layout"; @@ -36,7 +36,7 @@ const query = queryOptions({ queryFn: ({ signal }) => graphqlRequest({ query: QUERY, signal }), }); -export const Route = createFileRoute("/_account")({ +export const Route = createFileRoute({ loader: ({ context }) => context.queryClient.ensureQueryData(query), component: Account, }); diff --git a/frontend/src/routes/clients.$id.tsx b/frontend/src/routes/clients.$id.tsx index 8115d7e10..2b7936381 100644 --- a/frontend/src/routes/clients.$id.tsx +++ b/frontend/src/routes/clients.$id.tsx @@ -7,7 +7,6 @@ import { useSuspenseQuery } from "@tanstack/react-query"; import { queryOptions } from "@tanstack/react-query"; import { notFound } from "@tanstack/react-router"; -import { createFileRoute } from "@tanstack/react-router"; import OAuth2ClientDetail from "../components/Client/OAuth2ClientDetail"; import Layout from "../components/Layout"; import { graphql } from "../gql"; @@ -28,7 +27,7 @@ const query = (id: string) => graphqlRequest({ query: QUERY, variables: { id }, signal }), }); -export const Route = createFileRoute("/clients/$id")({ +export const Route = createFileRoute({ loader: ({ context, params }) => context.queryClient.ensureQueryData(query(params.id)), component: ClientDetail, diff --git a/frontend/src/routes/devices.$.tsx b/frontend/src/routes/devices.$.tsx index 5930323b9..69c22a3c2 100644 --- a/frontend/src/routes/devices.$.tsx +++ b/frontend/src/routes/devices.$.tsx @@ -4,7 +4,7 @@ // SPDX-License-Identifier: AGPL-3.0-only // Please see LICENSE in the repository root for full details. -import { createFileRoute, notFound, redirect } from "@tanstack/react-router"; +import { notFound, redirect } from "@tanstack/react-router"; import { Alert } from "@vector-im/compound-web"; import { useTranslation } from "react-i18next"; @@ -56,7 +56,7 @@ const query = (deviceId: string, userId: string) => }), }); -export const Route = createFileRoute("/devices/$")({ +export const Route = createFileRoute({ async loader({ context, params }) { const data = await context.queryClient.fetchQuery(currentViewerQuery); if (data.viewer.__typename !== "User") diff --git a/frontend/src/routes/emails.$id.in-use.tsx b/frontend/src/routes/emails.$id.in-use.tsx index 5f6aa44db..c52848ff4 100644 --- a/frontend/src/routes/emails.$id.in-use.tsx +++ b/frontend/src/routes/emails.$id.in-use.tsx @@ -4,7 +4,7 @@ // Please see LICENSE in the repository root for full details. import { useSuspenseQuery } from "@tanstack/react-query"; -import { createFileRoute, notFound, redirect } from "@tanstack/react-router"; +import { notFound, redirect } from "@tanstack/react-router"; import IconArrowLeft from "@vector-im/compound-design-tokens/assets/web/icons/arrow-left"; import IconErrorSolid from "@vector-im/compound-design-tokens/assets/web/icons/error-solid"; import { useTranslation } from "react-i18next"; @@ -13,7 +13,7 @@ import Layout from "../components/Layout"; import PageHeading from "../components/PageHeading"; import { query } from "./emails.$id.verify"; -export const Route = createFileRoute("/emails/$id/in-use")({ +export const Route = createFileRoute({ async loader({ context, params }): Promise { const data = await context.queryClient.ensureQueryData(query(params.id)); if (!data.userEmailAuthentication) { diff --git a/frontend/src/routes/emails.$id.verify.tsx b/frontend/src/routes/emails.$id.verify.tsx index 6c03f19c3..ddee2d9dc 100644 --- a/frontend/src/routes/emails.$id.verify.tsx +++ b/frontend/src/routes/emails.$id.verify.tsx @@ -10,12 +10,7 @@ import { useQueryClient, useSuspenseQuery, } from "@tanstack/react-query"; -import { - createFileRoute, - notFound, - redirect, - useNavigate, -} from "@tanstack/react-router"; +import { notFound, redirect, useNavigate } from "@tanstack/react-router"; import IconArrowLeft from "@vector-im/compound-design-tokens/assets/web/icons/arrow-left"; import IconSend from "@vector-im/compound-design-tokens/assets/web/icons/send-solid"; import { Alert, Button, Form } from "@vector-im/compound-web"; @@ -61,7 +56,7 @@ export const query = (id: string) => graphqlRequest({ query: QUERY, signal, variables: { id } }), }); -export const Route = createFileRoute("/emails/$id/verify")({ +export const Route = createFileRoute({ async loader({ context, params }): Promise { const data = await context.queryClient.ensureQueryData(query(params.id)); if (!data.userEmailAuthentication) { diff --git a/frontend/src/routes/password.change.index.tsx b/frontend/src/routes/password.change.index.tsx index 749d0b90b..84073a7d9 100644 --- a/frontend/src/routes/password.change.index.tsx +++ b/frontend/src/routes/password.change.index.tsx @@ -9,7 +9,7 @@ import { useMutation, useSuspenseQuery, } from "@tanstack/react-query"; -import { createFileRoute, notFound, useRouter } from "@tanstack/react-router"; +import { notFound, useRouter } from "@tanstack/react-router"; import IconLockSolid from "@vector-im/compound-design-tokens/assets/web/icons/lock-solid"; import { Alert, Form } from "@vector-im/compound-web"; import { type FormEvent, useRef } from "react"; @@ -62,7 +62,7 @@ const query = queryOptions({ queryFn: ({ signal }) => graphqlRequest({ query: QUERY, signal }), }); -export const Route = createFileRoute("/password/change/")({ +export const Route = createFileRoute({ loader: ({ context }) => context.queryClient.ensureQueryData(query), component: ChangePassword, }); diff --git a/frontend/src/routes/password.change.success.tsx b/frontend/src/routes/password.change.success.tsx index 368ca9b22..72d50987c 100644 --- a/frontend/src/routes/password.change.success.tsx +++ b/frontend/src/routes/password.change.success.tsx @@ -4,14 +4,13 @@ // SPDX-License-Identifier: AGPL-3.0-only // Please see LICENSE in the repository root for full details. -import { createFileRoute } from "@tanstack/react-router"; import IconCheckCircle from "@vector-im/compound-design-tokens/assets/web/icons/check-circle-solid"; import { useTranslation } from "react-i18next"; import { ButtonLink } from "../components/ButtonLink"; import Layout from "../components/Layout"; import PageHeading from "../components/PageHeading"; -export const Route = createFileRoute("/password/change/success")({ +export const Route = createFileRoute({ component: ChangePasswordSuccess, }); diff --git a/frontend/src/routes/password.recovery.index.tsx b/frontend/src/routes/password.recovery.index.tsx index 87c4f9210..735825a05 100644 --- a/frontend/src/routes/password.recovery.index.tsx +++ b/frontend/src/routes/password.recovery.index.tsx @@ -7,7 +7,7 @@ import { useMutation, useSuspenseQuery } from "@tanstack/react-query"; import { queryOptions } from "@tanstack/react-query"; import { useNavigate, useSearch } from "@tanstack/react-router"; -import { createFileRoute, notFound } from "@tanstack/react-router"; +import { notFound } from "@tanstack/react-router"; import IconErrorSolid from "@vector-im/compound-design-tokens/assets/web/icons/error-solid"; import IconLockSolid from "@vector-im/compound-design-tokens/assets/web/icons/lock-solid"; import { Alert, Button, Form } from "@vector-im/compound-web"; @@ -80,7 +80,7 @@ const schema = v.object({ ticket: v.string(), }); -export const Route = createFileRoute("/password/recovery/")({ +export const Route = createFileRoute({ validateSearch: schema, loaderDeps: ({ search: { ticket } }) => ({ ticket }), diff --git a/frontend/src/routes/reset-cross-signing.cancelled.tsx b/frontend/src/routes/reset-cross-signing.cancelled.tsx index 16be2dc27..290d721ae 100644 --- a/frontend/src/routes/reset-cross-signing.cancelled.tsx +++ b/frontend/src/routes/reset-cross-signing.cancelled.tsx @@ -3,13 +3,12 @@ // SPDX-License-Identifier: AGPL-3.0-only // Please see LICENSE in the repository root for full details. -import { createFileRoute } from "@tanstack/react-router"; import IconKeyOffSolid from "@vector-im/compound-design-tokens/assets/web/icons/key-off-solid"; import { Text } from "@vector-im/compound-web"; import { useTranslation } from "react-i18next"; import PageHeading from "../components/PageHeading"; -export const Route = createFileRoute("/reset-cross-signing/cancelled")({ +export const Route = createFileRoute({ component: () => { const { t } = useTranslation(); return ( diff --git a/frontend/src/routes/reset-cross-signing.index.tsx b/frontend/src/routes/reset-cross-signing.index.tsx index 3badc9b32..ed9370e49 100644 --- a/frontend/src/routes/reset-cross-signing.index.tsx +++ b/frontend/src/routes/reset-cross-signing.index.tsx @@ -9,7 +9,7 @@ import { useMutation, useSuspenseQuery, } from "@tanstack/react-query"; -import { createFileRoute, notFound } from "@tanstack/react-router"; +import { notFound } from "@tanstack/react-router"; import IconCheck from "@vector-im/compound-design-tokens/assets/web/icons/check"; import IconErrorSolid from "@vector-im/compound-design-tokens/assets/web/icons/error-solid"; import IconInfo from "@vector-im/compound-design-tokens/assets/web/icons/info"; @@ -46,7 +46,7 @@ const currentViewerQuery = queryOptions({ }), }); -export const Route = createFileRoute("/reset-cross-signing/")({ +export const Route = createFileRoute({ loader: ({ context }) => context.queryClient.ensureQueryData(currentViewerQuery), diff --git a/frontend/src/routes/reset-cross-signing.success.tsx b/frontend/src/routes/reset-cross-signing.success.tsx index 0cbb153ab..eb0560ed8 100644 --- a/frontend/src/routes/reset-cross-signing.success.tsx +++ b/frontend/src/routes/reset-cross-signing.success.tsx @@ -3,7 +3,6 @@ // SPDX-License-Identifier: AGPL-3.0-only // Please see LICENSE in the repository root for full details. -import { createFileRoute } from "@tanstack/react-router"; import IconCheckCircleSolid from "@vector-im/compound-design-tokens/assets/web/icons/check-circle-solid"; import { Text } from "@vector-im/compound-web"; import { useTranslation } from "react-i18next"; @@ -13,7 +12,7 @@ import PageHeading from "../components/PageHeading"; // https://github.com/element-hq/synapse/blob/34b758644611721911a223814a7b35d8e14067e6/synapse/rest/admin/users.py#L1335 const CROSS_SIGNING_REPLACEMENT_PERIOD_MS = 10 * 60 * 1000; // 10 minutes -export const Route = createFileRoute("/reset-cross-signing/success")({ +export const Route = createFileRoute({ component: () => { const { t } = useTranslation(); return ( diff --git a/frontend/src/routes/reset-cross-signing.tsx b/frontend/src/routes/reset-cross-signing.tsx index e17a1cf32..c5a3469e2 100644 --- a/frontend/src/routes/reset-cross-signing.tsx +++ b/frontend/src/routes/reset-cross-signing.tsx @@ -3,11 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0-only // Please see LICENSE in the repository root for full details. -import { - type ErrorComponentProps, - Outlet, - createFileRoute, -} from "@tanstack/react-router"; +import { type ErrorComponentProps, Outlet } from "@tanstack/react-router"; import IconErrorSolid from "@vector-im/compound-design-tokens/assets/web/icons/error-solid"; import { Button, Text } from "@vector-im/compound-web"; import * as v from "valibot"; @@ -20,7 +16,7 @@ const searchSchema = v.object({ deepLink: v.optional(v.boolean()), }); -export const Route = createFileRoute("/reset-cross-signing")({ +export const Route = createFileRoute({ validateSearch: searchSchema, component: () => ( diff --git a/frontend/src/routes/sessions.$id.tsx b/frontend/src/routes/sessions.$id.tsx index 6db9ecd79..956516414 100644 --- a/frontend/src/routes/sessions.$id.tsx +++ b/frontend/src/routes/sessions.$id.tsx @@ -5,7 +5,7 @@ // Please see LICENSE in the repository root for full details. import { queryOptions, useSuspenseQuery } from "@tanstack/react-query"; -import { createFileRoute, notFound } from "@tanstack/react-router"; +import { notFound } from "@tanstack/react-router"; import { Alert } from "@vector-im/compound-web"; import { useTranslation } from "react-i18next"; import Layout from "../components/Layout"; @@ -41,7 +41,7 @@ const query = (id: string) => graphqlRequest({ query: QUERY, signal, variables: { id } }), }); -export const Route = createFileRoute("/sessions/$id")({ +export const Route = createFileRoute({ loader: ({ context, params }) => context.queryClient.ensureQueryData(query(params.id)), notFoundComponent: NotFound, diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 58e8b70cb..872cf1e66 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -8,7 +8,7 @@ import { readFile, writeFile } from "node:fs/promises"; import { resolve } from "node:path"; import { codecovVitePlugin } from "@codecov/vite-plugin"; -import { TanStackRouterVite as tanStackRouter } from "@tanstack/router-plugin/vite"; +import { tanstackRouter } from "@tanstack/router-plugin/vite"; import react from "@vitejs/plugin-react"; import browserslistToEsbuild from "browserslist-to-esbuild"; import type { Manifest, PluginOption } from "vite"; @@ -66,9 +66,10 @@ export default defineConfig((env) => ({ plugins: [ codegen(), - tanStackRouter({ + tanstackRouter({ target: "react", autoCodeSplitting: true, + verboseFileRoutes: false, }), react(),