@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
TypeScript
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 };