UNPKG

@adonis-agora/authkit-react

Version:

Frontend ergonomics over AuthKit for AdonisJS + Inertia + React apps: a typed useAuth() hook, role-gating hooks and gating components.

179 lines (178 loc) 8.71 kB
import type { AccountAppsResult, AccountLoginMethodsResult, AccountMe, AccountMfaStatus, AccountOrgDetail, AccountOrgInvitationsResult, AccountOrgsResult, AccountPasskeysResult, AccountSecurityOverview, AccountSessionsResult, AccountTokensResult, AdminClient, AdminClientListResult, AdminOrgDetail, AdminOrgEntry, AdminOrgInvitation, AdminOrgListResult, AdminOverview, AdminUser, AdminUserListResult, AuditListParams, AuditListResult, ChangePasswordInput, CreateClientInput, CreatedClientResult, CreatedPatResult, CreateOrgInput, CreateRoleInput, CreateTokenInput, CreateUserInput, EmailChangeResult, ImpersonationPanel, KeysRotateInput, KeysRotateResult, KeysStatus, OkResult, RegenerateSecretResult, RemovePasskeyResult, RequestEmailChangeInput, RevokeAllResult, RevokeAppResult, RevokeOthersResult, RevokeSessionResult, RevokeSessionsResult, RevokeTokenResult, RoleCatalogEntry, RoleListResult, SettingEntry, SettingListResult, UpdateClientInput, UpdateLoginMethodsResult, UpdateOrgInput, UpdateProfileInput, UpdateProfileResult, UpdateRoleInput, UpdateUserInput, UserLoginMethodsInput, UserSessionsResult } from './types.js'; export declare class AuthkitClientError extends Error { readonly status: number; readonly code?: string | undefined; readonly body?: unknown; constructor(status: number, message: string, code?: string | undefined, body?: unknown); readonly isUnauthorized: boolean; } export interface AuthkitClientOptions { baseUrl?: string; accountBaseUrl?: string; csrfToken?: string; fetch?: typeof fetch; } declare class AuthkitClient { private readonly _baseUrl; private readonly _accountBaseUrl; private readonly _csrfToken; private readonly _fetch; constructor(opts?: AuthkitClientOptions); request<T>(method: string, url: string, body?: unknown, extraHeaders?: Record<string, string>): Promise<T>; private get; private post; private patch; private put; private delete; private b; private a; readonly admin: { readonly overview: () => Promise<AdminOverview>; readonly users: { readonly list: (params?: { search?: string; page?: number; size?: number; }) => Promise<AdminUserListResult>; readonly get: (id: string) => Promise<AdminUser>; readonly create: (data: CreateUserInput) => Promise<AdminUser & { invited?: boolean; }>; readonly update: (id: string, data: UpdateUserInput) => Promise<AdminUser>; readonly disable: (id: string) => Promise<{ id: string; disabled: true; }>; readonly enable: (id: string) => Promise<{ id: string; disabled: false; }>; readonly resetPassword: (id: string) => Promise<{ id: string; sent: boolean; }>; readonly remove: (id: string) => Promise<{ id: string; deleted: boolean; }>; readonly getSessions: (id: string) => Promise<UserSessionsResult>; readonly revokeSessions: (id: string) => Promise<RevokeSessionsResult>; }; readonly sessions: { readonly list: (accountId?: string) => Promise<UserSessionsResult>; readonly revokeAll: (accountId?: string) => Promise<RevokeSessionsResult>; }; readonly clients: { readonly list: () => Promise<AdminClientListResult>; readonly get: (id: string) => Promise<AdminClient>; readonly create: (data?: CreateClientInput) => Promise<CreatedClientResult>; readonly update: (id: string, data?: UpdateClientInput) => Promise<AdminClient>; readonly remove: (id: string) => Promise<{ clientId: string; deleted: boolean; }>; readonly regenerateSecret: (id: string) => Promise<RegenerateSecretResult>; }; readonly roles: { readonly list: () => Promise<RoleListResult>; readonly create: (data: CreateRoleInput) => Promise<RoleCatalogEntry>; readonly update: (name: string, data: UpdateRoleInput) => Promise<RoleCatalogEntry>; readonly remove: (name: string) => Promise<{ ok: boolean; deleted: string; }>; }; readonly orgs: { readonly list: () => Promise<AdminOrgListResult>; readonly create: (data: CreateOrgInput) => Promise<AdminOrgEntry>; readonly get: (id: string) => Promise<AdminOrgDetail>; readonly update: (id: string, data: UpdateOrgInput) => Promise<AdminOrgEntry>; readonly remove: (id: string) => Promise<{ id: string; deleted: boolean; }>; readonly addMember: (orgId: string, data: { accountId: string; role: string; }) => Promise<{ ok: boolean; }>; readonly removeMember: (orgId: string, accountId: string) => Promise<{ ok: boolean; }>; readonly updateMemberRole: (orgId: string, accountId: string, role: string) => Promise<{ ok: boolean; }>; readonly createInvitation: (orgId: string, data: { email: string; role: string; }) => Promise<{ ok: boolean; invitation: AdminOrgInvitation; }>; readonly revokeInvitation: (orgId: string, invitationId: string) => Promise<{ ok: boolean; }>; }; readonly audit: { readonly list: (params?: AuditListParams) => Promise<AuditListResult>; }; readonly settings: { readonly list: (orgId?: string | null) => Promise<SettingListResult>; readonly set: (key: string, value: unknown, orgId?: string | null) => Promise<SettingEntry>; readonly remove: (key: string, orgId?: string | null) => Promise<{ key: string; organizationId: string | null; deleted: boolean; }>; }; readonly impersonation: { readonly get: (userId: string) => Promise<ImpersonationPanel>; }; readonly keys: { readonly status: () => Promise<KeysStatus>; readonly rotate: (input?: KeysRotateInput) => Promise<KeysRotateResult>; }; }; readonly account: { readonly me: () => Promise<AccountMe>; readonly security: () => Promise<AccountSecurityOverview>; readonly updateProfile: (data: UpdateProfileInput) => Promise<UpdateProfileResult>; readonly changePassword: (data: ChangePasswordInput) => Promise<OkResult>; readonly emailChange: (data: RequestEmailChangeInput) => Promise<EmailChangeResult>; readonly cancelEmailChange: () => Promise<OkResult>; readonly sessions: { readonly list: () => Promise<AccountSessionsResult>; readonly revoke: (id: string) => Promise<RevokeSessionResult>; readonly revokeOthers: () => Promise<RevokeOthersResult>; readonly revokeAll: () => Promise<RevokeAllResult>; }; readonly apps: { readonly list: () => Promise<AccountAppsResult>; readonly revoke: (clientId: string) => Promise<RevokeAppResult>; }; readonly mfa: () => Promise<AccountMfaStatus>; readonly loginMethods: { readonly get: () => Promise<AccountLoginMethodsResult>; readonly update: (data: { methods: UserLoginMethodsInput; }) => Promise<UpdateLoginMethodsResult>; }; readonly passkeys: { readonly list: () => Promise<AccountPasskeysResult>; readonly remove: (id: string) => Promise<RemovePasskeyResult>; }; readonly tokens: { readonly list: () => Promise<AccountTokensResult>; readonly create: (data?: CreateTokenInput) => Promise<CreatedPatResult>; readonly remove: (id: string) => Promise<RevokeTokenResult>; }; readonly orgs: { readonly list: () => Promise<AccountOrgsResult>; readonly invitations: () => Promise<AccountOrgInvitationsResult>; readonly get: (id: string) => Promise<AccountOrgDetail>; }; }; } export declare function createAuthkitClient(opts?: AuthkitClientOptions): AuthkitClient; export type { AuthkitClient };