27 lines
1.3 KiB
TypeScript
27 lines
1.3 KiB
TypeScript
import type { RouteLocationRaw } from '#vue-router'
|
|
import type { useAuthClient } from '~/composables/auth/useAuthClient'
|
|
|
|
export interface RuntimeAuthConfig {
|
|
redirectUserTo: RouteLocationRaw | string
|
|
redirectGuestTo: RouteLocationRaw | string
|
|
}
|
|
|
|
// Types can be found here: https://github.com/better-auth/better-auth/blob/3f574ec70bb15c155a78673d42c5e25f7376ced3/packages/better-auth/src/plugins/organization/routes/crud-invites.ts#L531
|
|
type Client = ReturnType<typeof useAuthClient>['client']
|
|
export type Session = Client['$Infer']['Session']
|
|
export type User = Session['user']
|
|
export type ActiveOrganization = Client['$Infer']['ActiveOrganization']
|
|
export type Organization = Client['$Infer']['Organization']
|
|
export type Invitation = Client['$Infer']['Invitation']
|
|
export type Member = Client['$Infer']['Member']
|
|
export type ListMembersOptions = Parameters<Client['organization']['listMembers']>[0]
|
|
export type ListMembersResponse = Awaited<ReturnType<Client['organization']['listMembers']>>['data']
|
|
export type ListMembersQuery = NonNullable<ListMembersOptions>['query']
|
|
// Extended invitation type with additional organization and inviter details
|
|
export type CustomInvitation =
|
|
| (Invitation & {
|
|
organizationName: string
|
|
organizationSlug: string
|
|
inviterEmail: string
|
|
})
|
|
| null |