@adonis-agora/authkit-react 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export type { AuthkitClient, AuthkitClientOptions, } from './src/client/client.j
4
4
  export { AuthkitClientError, createAuthkitClient, } from './src/client/client.js';
5
5
  export type { AuthkitClientProviderProps } from './src/client/context.js';
6
6
  export { AuthkitClientProvider, createAuthkitQueryClient, useAuthkitClient, } from './src/client/context.js';
7
- export type { AccountAppEntry, AccountAppsResult, AccountCapabilities, AccountLoginMethodsResult, AccountMe, AccountMfaStatus, AccountOrgDetail, AccountOrgEntry, AccountOrgInvitationsResult, AccountOrgsResult, AccountPasskeysResult, AccountSecurityOverview, AccountSessionEntry, AccountSessionsResult, AccountTokensResult, AdminClient, AdminClientListResult, AdminGrantEntry, AdminOrgDetail, AdminOrgEntry, AdminOrgInvitation, AdminOrgListResult, AdminOrgMember, AdminOverview, AdminSessionEntry, AdminUser, AdminUserListResult, ApiErrorBody, AuditEventEntry, AuditListParams, AuditListResult, ChangePasswordInput, CreateClientInput, CreatedClientResult, CreatedPatResult, CreateOrgInput, CreateRoleInput, CreateTokenInput, CreateUserInput, DailyPoint, EmailChangeResult, ImpersonationPanel, KeysRotateInput, KeysRotateResult, KeysStatus, ListMeta, ManagedKeyInfo, OkResult, PasskeySummaryEntry, PatEntry, RegenerateSecretResult, RemovePasskeyResult, RequestEmailChangeInput, RevokeAllResult, RevokeAppResult, RevokeOthersResult, RevokeSessionResult, RevokeSessionsResult, RevokeTokenResult, RoleCatalogEntry, RoleListResult, SettingEntry, SettingListResult, UpdateClientInput, UpdateLoginMethodsResult, UpdateOrgInput, UpdateProfileInput, UpdateProfileResult, UpdateRoleInput, UpdateUserInput, UserLoginMethodsInput, UserSessionsResult, } from './src/client/types.js';
7
+ export type { AcceptOrgInvitationResult, AccountAppEntry, AccountAppsResult, AccountCapabilities, AccountLoginMethodsResult, AccountMe, AccountMfaStatus, AccountOrgDetail, AccountOrgEntry, AccountOrgInvitationsResult, AccountOrgsResult, AccountPasskeysResult, AccountSecurityOverview, AccountSessionEntry, AccountSessionsResult, AccountTokensResult, ActivateOrgResult, AdminClient, AdminClientListResult, AdminGrantEntry, AdminOrgDetail, AdminOrgEntry, AdminOrgInvitation, AdminOrgListResult, AdminOrgMember, AdminOverview, AdminSessionEntry, AdminUser, AdminUserListResult, ApiErrorBody, AuditEventEntry, AuditListParams, AuditListResult, ChangePasswordInput, CreateAccountOrgInput, CreateClientInput, CreatedAccountOrgResult, CreatedClientResult, CreatedOrgInvitationResult, CreatedPatResult, CreateOrgInput, CreateRoleInput, CreateTokenInput, CreateUserInput, DailyPoint, DeactivateOrgResult, EmailChangeResult, ImpersonationPanel, InviteOrgMemberInput, KeysRotateInput, KeysRotateResult, KeysStatus, LeaveOrgResult, ListMeta, ManagedKeyInfo, MfaConfirmResult, MfaDisableResult, MfaEnrollResult, MfaRecoveryCodesResult, OkResult, PasskeyRegistrationOptions, PasskeySummaryEntry, PatEntry, RegenerateSecretResult, RemoveOrgMemberResult, RemovePasskeyResult, RequestEmailChangeInput, RevokeAllResult, RevokeAppResult, RevokeOrgInvitationResult, RevokeOthersResult, RevokeSessionResult, RevokeSessionsResult, RevokeTokenResult, RoleCatalogEntry, RoleListResult, SettingEntry, SettingListResult, UpdateClientInput, UpdateLoginMethodsResult, UpdateOrgInput, UpdateOrgMemberRoleResult, UpdateProfileInput, UpdateProfileResult, UpdateRoleInput, UpdateUserInput, UserLoginMethodsInput, UserSessionsResult, } from './src/client/types.js';
8
8
  export type { AuthenticatedProps, GuestProps, } from './src/components/authenticated.js';
9
9
  export { Authenticated, Guest } from './src/components/authenticated.js';
10
10
  export type { AuthorizedAppsProps } from './src/components/authorized_apps.js';
@@ -79,11 +79,13 @@ export type { AuthenticatePasskeyOptions, PasskeyCeremonyDeps, PasskeyRegistrati
79
79
  export { authenticatePasskey, loadStartAuthentication, loadStartRegistration, registerPasskey, submitPasskeyVerification, } from './src/passkey/authenticate.js';
80
80
  export type { SubmitClassicFormDeps, SubmitClassicFormOptions, } from './src/passkey/classic_form.js';
81
81
  export { submitClassicForm } from './src/passkey/classic_form.js';
82
+ export type { RegisterPasskeyJsonDeps } from './src/passkey/json_registration.js';
83
+ export { registerPasskeyJson } from './src/passkey/json_registration.js';
82
84
  export type { RunPasskeyAssertionDeps, RunPasskeyFlowOptions, RunPasskeyRegistrationDeps, } from './src/passkey/sudo.js';
83
85
  export { runPasskeyAssertion, runPasskeyRegistration } from './src/passkey/sudo.js';
84
86
  export type { AuthProviderProps } from './src/provider.js';
85
87
  export { AuthContext, AuthProvider } from './src/provider.js';
86
- export { useAccountOrgInvitationsQueryOptions, useAccountOrgQueryOptions, useAccountOrgsQueryOptions, useAccountRevokeAllSessionsMutationOptions, useAccountSessionsQueryOptions, useAppsQueryOptions, useCancelEmailChangeMutationOptions, useChangePasswordMutationOptions, useCreateTokenMutationOptions, useEmailChangeMutationOptions, useLoginMethodsQueryOptions, useMeQueryOptions, useMfaQueryOptions, usePasskeysQueryOptions, useRemovePasskeyMutationOptions, useRevokeAppMutationOptions, useRevokeOtherSessionsMutationOptions, useRevokeSessionMutationOptions, useRevokeTokenMutationOptions, useSecurityQueryOptions, useTokensQueryOptions, useUpdateLoginMethodsMutationOptions, useUpdateProfileMutationOptions, } from './src/queries/account/index.js';
88
+ export { useAccountAcceptOrgInvitationMutationOptions, useAccountActivateOrgMutationOptions, useAccountCreateOrgMutationOptions, useAccountDeactivateOrgMutationOptions, useAccountInviteOrgMemberMutationOptions, useAccountLeaveOrgMutationOptions, useAccountOrgInvitationsQueryOptions, useAccountOrgQueryOptions, useAccountOrgsQueryOptions, useAccountRemoveOrgMemberMutationOptions, useAccountRevokeAllSessionsMutationOptions, useAccountRevokeOrgInvitationMutationOptions, useAccountSessionsQueryOptions, useAccountUpdateOrgMemberRoleMutationOptions, useAppsQueryOptions, useCancelEmailChangeMutationOptions, useChangePasswordMutationOptions, useConfirmTotpMutationOptions, useCreateTokenMutationOptions, useDisableTotpMutationOptions, useEmailChangeMutationOptions, useEnrollTotpMutationOptions, useLoginMethodsQueryOptions, useMeQueryOptions, useMfaQueryOptions, usePasskeysQueryOptions, useRegenerateRecoveryCodesMutationOptions, useRegisterPasskeyMutationOptions, useRemovePasskeyMutationOptions, useRevokeAppMutationOptions, useRevokeOtherSessionsMutationOptions, useRevokeSessionMutationOptions, useRevokeTokenMutationOptions, useSecurityQueryOptions, useTokensQueryOptions, useUpdateLoginMethodsMutationOptions, useUpdateProfileMutationOptions, } from './src/queries/account/index.js';
87
89
  export { useAddOrgMemberMutationOptions, useAuditQueryOptions, useClientQueryOptions, useClientsQueryOptions, useCreateClientMutationOptions, useCreateOrgInvitationMutationOptions, useCreateOrgMutationOptions, useCreateRoleMutationOptions, useCreateUserMutationOptions, useDeleteClientMutationOptions, useDeleteOrgMutationOptions, useDeleteRoleMutationOptions, useDeleteUserMutationOptions, useDisableUserMutationOptions, useEnableUserMutationOptions, useImpersonationQueryOptions, useKeysQueryOptions, useOrgQueryOptions, useOrgsQueryOptions, useOverviewQueryOptions, useRegenerateClientSecretMutationOptions, useRemoveOrgMemberMutationOptions, useRemoveSettingMutationOptions, useResetPasswordMutationOptions, useRevokeAllSessionsMutationOptions, useRevokeOrgInvitationMutationOptions, useRevokeUserSessionsMutationOptions, useRolesQueryOptions, useRotateKeysMutationOptions, useSessionsQueryOptions, useSetSettingMutationOptions, useSettingsQueryOptions, useUpdateClientMutationOptions, useUpdateOrgMemberRoleMutationOptions, useUpdateOrgMutationOptions, useUpdateRoleMutationOptions, useUpdateUserMutationOptions, useUserQueryOptions, useUserSessionsQueryOptions, useUsersQueryOptions, } from './src/queries/admin/index.js';
88
90
  export { authkitKeys } from './src/queries/keys.js';
89
91
  export { hasAllGlobalRoles, hasAnyGlobalRole, hasGlobalRole, } from './src/roles.js';
package/build/index.js CHANGED
@@ -38,9 +38,10 @@ export { useUser } from './src/hooks/use_user.js';
38
38
  export { interactionUrls, OTP_CODE_FIELD, oauthRedirectUrl } from './src/interaction/urls.js';
39
39
  export { authenticatePasskey, loadStartAuthentication, loadStartRegistration, registerPasskey, submitPasskeyVerification, } from './src/passkey/authenticate.js';
40
40
  export { submitClassicForm } from './src/passkey/classic_form.js';
41
+ export { registerPasskeyJson } from './src/passkey/json_registration.js';
41
42
  export { runPasskeyAssertion, runPasskeyRegistration } from './src/passkey/sudo.js';
42
43
  export { AuthContext, AuthProvider } from './src/provider.js';
43
- export { useAccountOrgInvitationsQueryOptions, useAccountOrgQueryOptions, useAccountOrgsQueryOptions, useAccountRevokeAllSessionsMutationOptions, useAccountSessionsQueryOptions, useAppsQueryOptions, useCancelEmailChangeMutationOptions, useChangePasswordMutationOptions, useCreateTokenMutationOptions, useEmailChangeMutationOptions, useLoginMethodsQueryOptions, useMeQueryOptions, useMfaQueryOptions, usePasskeysQueryOptions, useRemovePasskeyMutationOptions, useRevokeAppMutationOptions, useRevokeOtherSessionsMutationOptions, useRevokeSessionMutationOptions, useRevokeTokenMutationOptions, useSecurityQueryOptions, useTokensQueryOptions, useUpdateLoginMethodsMutationOptions, useUpdateProfileMutationOptions, } from './src/queries/account/index.js';
44
+ export { useAccountAcceptOrgInvitationMutationOptions, useAccountActivateOrgMutationOptions, useAccountCreateOrgMutationOptions, useAccountDeactivateOrgMutationOptions, useAccountInviteOrgMemberMutationOptions, useAccountLeaveOrgMutationOptions, useAccountOrgInvitationsQueryOptions, useAccountOrgQueryOptions, useAccountOrgsQueryOptions, useAccountRemoveOrgMemberMutationOptions, useAccountRevokeAllSessionsMutationOptions, useAccountRevokeOrgInvitationMutationOptions, useAccountSessionsQueryOptions, useAccountUpdateOrgMemberRoleMutationOptions, useAppsQueryOptions, useCancelEmailChangeMutationOptions, useChangePasswordMutationOptions, useConfirmTotpMutationOptions, useCreateTokenMutationOptions, useDisableTotpMutationOptions, useEmailChangeMutationOptions, useEnrollTotpMutationOptions, useLoginMethodsQueryOptions, useMeQueryOptions, useMfaQueryOptions, usePasskeysQueryOptions, useRegenerateRecoveryCodesMutationOptions, useRegisterPasskeyMutationOptions, useRemovePasskeyMutationOptions, useRevokeAppMutationOptions, useRevokeOtherSessionsMutationOptions, useRevokeSessionMutationOptions, useRevokeTokenMutationOptions, useSecurityQueryOptions, useTokensQueryOptions, useUpdateLoginMethodsMutationOptions, useUpdateProfileMutationOptions, } from './src/queries/account/index.js';
44
45
  export { useAddOrgMemberMutationOptions, useAuditQueryOptions, useClientQueryOptions, useClientsQueryOptions, useCreateClientMutationOptions, useCreateOrgInvitationMutationOptions, useCreateOrgMutationOptions, useCreateRoleMutationOptions, useCreateUserMutationOptions, useDeleteClientMutationOptions, useDeleteOrgMutationOptions, useDeleteRoleMutationOptions, useDeleteUserMutationOptions, useDisableUserMutationOptions, useEnableUserMutationOptions, useImpersonationQueryOptions, useKeysQueryOptions, useOrgQueryOptions, useOrgsQueryOptions, useOverviewQueryOptions, useRegenerateClientSecretMutationOptions, useRemoveOrgMemberMutationOptions, useRemoveSettingMutationOptions, useResetPasswordMutationOptions, useRevokeAllSessionsMutationOptions, useRevokeOrgInvitationMutationOptions, useRevokeUserSessionsMutationOptions, useRolesQueryOptions, useRotateKeysMutationOptions, useSessionsQueryOptions, useSetSettingMutationOptions, useSettingsQueryOptions, useUpdateClientMutationOptions, useUpdateOrgMemberRoleMutationOptions, useUpdateOrgMutationOptions, useUpdateRoleMutationOptions, useUpdateUserMutationOptions, useUserQueryOptions, useUserSessionsQueryOptions, useUsersQueryOptions, } from './src/queries/admin/index.js';
45
46
  export { authkitKeys } from './src/queries/keys.js';
46
47
  export { hasAllGlobalRoles, hasAnyGlobalRole, hasGlobalRole, } from './src/roles.js';
@@ -1,4 +1,4 @@
1
- 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';
1
+ import type { AcceptOrgInvitationResult, AccountAppsResult, AccountLoginMethodsResult, AccountMe, AccountMfaStatus, AccountOrgDetail, AccountOrgInvitationsResult, AccountOrgsResult, AccountPasskeysResult, AccountSecurityOverview, AccountSessionsResult, AccountTokensResult, ActivateOrgResult, AdminClient, AdminClientListResult, AdminOrgDetail, AdminOrgEntry, AdminOrgInvitation, AdminOrgListResult, AdminOverview, AdminUser, AdminUserListResult, AuditListParams, AuditListResult, ChangePasswordInput, CreateAccountOrgInput, CreateClientInput, CreatedAccountOrgResult, CreatedClientResult, CreatedOrgInvitationResult, CreatedPatResult, CreateOrgInput, CreateRoleInput, CreateTokenInput, CreateUserInput, DeactivateOrgResult, EmailChangeResult, ImpersonationPanel, InviteOrgMemberInput, KeysRotateInput, KeysRotateResult, KeysStatus, LeaveOrgResult, MfaConfirmResult, MfaDisableResult, MfaEnrollResult, MfaRecoveryCodesResult, OkResult, PasskeyRegistrationOptions, RegenerateSecretResult, RemoveOrgMemberResult, RemovePasskeyResult, RequestEmailChangeInput, RevokeAllResult, RevokeAppResult, RevokeOrgInvitationResult, RevokeOthersResult, RevokeSessionResult, RevokeSessionsResult, RevokeTokenResult, RoleCatalogEntry, RoleListResult, SettingEntry, SettingListResult, UpdateClientInput, UpdateLoginMethodsResult, UpdateOrgInput, UpdateOrgMemberRoleResult, UpdateProfileInput, UpdateProfileResult, UpdateRoleInput, UpdateUserInput, UserLoginMethodsInput, UserSessionsResult } from './types.js';
2
2
  export declare class AuthkitClientError extends Error {
3
3
  readonly status: number;
4
4
  readonly code?: string | undefined;
@@ -151,7 +151,16 @@ declare class AuthkitClient {
151
151
  readonly list: () => Promise<AccountAppsResult>;
152
152
  readonly revoke: (clientId: string) => Promise<RevokeAppResult>;
153
153
  };
154
- readonly mfa: () => Promise<AccountMfaStatus>;
154
+ readonly mfa: (() => Promise<AccountMfaStatus>) & {
155
+ enroll: () => Promise<MfaEnrollResult>;
156
+ confirm: (code: string) => Promise<MfaConfirmResult>;
157
+ disable: () => Promise<MfaDisableResult>;
158
+ regenerateRecoveryCodes: () => Promise<MfaRecoveryCodesResult>;
159
+ passkeys: {
160
+ options: () => Promise<PasskeyRegistrationOptions>;
161
+ verify: (response: unknown) => Promise<OkResult>;
162
+ };
163
+ };
155
164
  readonly loginMethods: {
156
165
  readonly get: () => Promise<AccountLoginMethodsResult>;
157
166
  readonly update: (data: {
@@ -171,6 +180,15 @@ declare class AuthkitClient {
171
180
  readonly list: () => Promise<AccountOrgsResult>;
172
181
  readonly invitations: () => Promise<AccountOrgInvitationsResult>;
173
182
  readonly get: (id: string) => Promise<AccountOrgDetail>;
183
+ readonly create: (data: CreateAccountOrgInput) => Promise<CreatedAccountOrgResult>;
184
+ readonly activate: (id: string) => Promise<ActivateOrgResult>;
185
+ readonly deactivate: () => Promise<DeactivateOrgResult>;
186
+ readonly leave: (id: string) => Promise<LeaveOrgResult>;
187
+ readonly invite: (orgId: string, data: InviteOrgMemberInput) => Promise<CreatedOrgInvitationResult>;
188
+ readonly revokeInvitation: (orgId: string, invitationId: string) => Promise<RevokeOrgInvitationResult>;
189
+ readonly updateMemberRole: (orgId: string, accountId: string, role: string) => Promise<UpdateOrgMemberRoleResult>;
190
+ readonly removeMember: (orgId: string, accountId: string) => Promise<RemoveOrgMemberResult>;
191
+ readonly acceptInvitation: (token: string) => Promise<AcceptOrgInvitationResult>;
174
192
  };
175
193
  };
176
194
  }
@@ -198,7 +198,16 @@ class AuthkitClient {
198
198
  list: () => this.get(this.a('/apps')),
199
199
  revoke: (clientId) => this.delete(this.a(`/apps/${encodeURIComponent(clientId)}`)),
200
200
  },
201
- mfa: () => this.get(this.a('/mfa')),
201
+ mfa: Object.assign(() => this.get(this.a('/mfa')), {
202
+ enroll: () => this.post(this.a('/mfa/totp/enroll')),
203
+ confirm: (code) => this.post(this.a('/mfa/totp/confirm'), { code }),
204
+ disable: () => this.post(this.a('/mfa/totp/disable')),
205
+ regenerateRecoveryCodes: () => this.post(this.a('/mfa/recovery-codes')),
206
+ passkeys: {
207
+ options: () => this.post(this.a('/mfa/passkeys/options')),
208
+ verify: (response) => this.post(this.a('/mfa/passkeys/verify'), { response }),
209
+ },
210
+ }),
202
211
  loginMethods: {
203
212
  get: () => this.get(this.a('/login-methods')),
204
213
  update: (data) => this.put(this.a('/login-methods'), data),
@@ -216,6 +225,15 @@ class AuthkitClient {
216
225
  list: () => this.get(this.a('/orgs')),
217
226
  invitations: () => this.get(this.a('/orgs/invitations')),
218
227
  get: (id) => this.get(this.a(`/orgs/${encodeURIComponent(id)}`)),
228
+ create: (data) => this.post(this.a('/orgs'), data),
229
+ activate: (id) => this.post(this.a(`/orgs/${encodeURIComponent(id)}/activate`)),
230
+ deactivate: () => this.post(this.a('/orgs/deactivate')),
231
+ leave: (id) => this.post(this.a(`/orgs/${encodeURIComponent(id)}/leave`)),
232
+ invite: (orgId, data) => this.post(this.a(`/orgs/${encodeURIComponent(orgId)}/invitations`), data),
233
+ revokeInvitation: (orgId, invitationId) => this.delete(this.a(`/orgs/${encodeURIComponent(orgId)}/invitations/${encodeURIComponent(invitationId)}`)),
234
+ updateMemberRole: (orgId, accountId, role) => this.patch(this.a(`/orgs/${encodeURIComponent(orgId)}/members/${encodeURIComponent(accountId)}`), { role }),
235
+ removeMember: (orgId, accountId) => this.delete(this.a(`/orgs/${encodeURIComponent(orgId)}/members/${encodeURIComponent(accountId)}`)),
236
+ acceptInvitation: (token) => this.post(this.a(`/orgs/invitations/${encodeURIComponent(token)}/accept`)),
219
237
  },
220
238
  };
221
239
  }
@@ -74,6 +74,7 @@ export interface AdminClient {
74
74
  redirectUris: string[];
75
75
  postLogoutRedirectUris: string[];
76
76
  tokenEndpointAuthMethod: string;
77
+ applicationType?: 'web' | 'native';
77
78
  backchannelLogoutUri: string | null;
78
79
  backchannelLogoutSessionRequired: boolean;
79
80
  }
@@ -95,6 +96,7 @@ export interface CreateClientInput {
95
96
  postLogoutRedirectUris?: string[];
96
97
  grantTypes?: string[];
97
98
  tokenEndpointAuthMethod?: string;
99
+ applicationType?: 'web' | 'native';
98
100
  backchannelLogoutUri?: string;
99
101
  backchannelLogoutSessionRequired?: boolean;
100
102
  }
@@ -333,8 +335,29 @@ export interface AccountMfaStatus {
333
335
  };
334
336
  recovery: {
335
337
  available: boolean;
338
+ remaining: number | null;
339
+ regenerable: boolean;
336
340
  };
337
341
  }
342
+ export interface MfaEnrollResult {
343
+ secret: string;
344
+ otpauthUri: string;
345
+ qrDataUrl: string;
346
+ }
347
+ export interface MfaConfirmResult {
348
+ ok: boolean;
349
+ enabled: boolean;
350
+ recoveryCodes: string[];
351
+ }
352
+ export interface MfaDisableResult {
353
+ ok: boolean;
354
+ enabled: boolean;
355
+ }
356
+ export interface MfaRecoveryCodesResult {
357
+ ok: boolean;
358
+ recoveryCodes: string[];
359
+ }
360
+ export type PasskeyRegistrationOptions = Record<string, unknown>;
338
361
  export interface AccountPasskeysResult {
339
362
  supported: boolean;
340
363
  passkeys: PasskeySummaryEntry[];
@@ -429,6 +452,63 @@ export interface AccountOrgInvitationsResult {
429
452
  createdAt: string;
430
453
  }>;
431
454
  }
455
+ export interface CreateAccountOrgInput {
456
+ name: string;
457
+ slug: string;
458
+ }
459
+ export interface CreatedAccountOrgResult {
460
+ id: string;
461
+ name: string;
462
+ slug: string;
463
+ logoUrl: string | null;
464
+ role: string;
465
+ }
466
+ export interface ActivateOrgResult {
467
+ ok: boolean;
468
+ activeOrgId: string;
469
+ slug: string;
470
+ role: string;
471
+ }
472
+ export interface DeactivateOrgResult {
473
+ ok: boolean;
474
+ activeOrgId: null;
475
+ }
476
+ export interface LeaveOrgResult {
477
+ ok: boolean;
478
+ orgId: string;
479
+ }
480
+ export interface InviteOrgMemberInput {
481
+ email: string;
482
+ role?: string;
483
+ }
484
+ export interface CreatedOrgInvitationResult {
485
+ id: string;
486
+ organizationId: string;
487
+ email: string;
488
+ role: string;
489
+ expiresAt: string | null;
490
+ createdAt: string | null;
491
+ }
492
+ export interface RevokeOrgInvitationResult {
493
+ ok: boolean;
494
+ revoked: string;
495
+ }
496
+ export interface UpdateOrgMemberRoleResult {
497
+ ok: boolean;
498
+ orgId: string;
499
+ accountId: string;
500
+ role: string;
501
+ }
502
+ export interface RemoveOrgMemberResult {
503
+ ok: boolean;
504
+ orgId: string;
505
+ accountId: string;
506
+ }
507
+ export interface AcceptOrgInvitationResult {
508
+ ok: boolean;
509
+ organizationId: string;
510
+ role: string;
511
+ }
432
512
  export interface ManagedKeyInfo {
433
513
  kid: string;
434
514
  alg: string;
@@ -0,0 +1,8 @@
1
+ import type { AuthkitClient } from '../client/client.js';
2
+ import { type StartRegistrationFn } from './authenticate.js';
3
+ export interface RegisterPasskeyJsonDeps {
4
+ loadStartRegistration?: () => Promise<StartRegistrationFn>;
5
+ }
6
+ export declare function registerPasskeyJson(client: AuthkitClient, deps?: RegisterPasskeyJsonDeps): Promise<{
7
+ ok: boolean;
8
+ }>;
@@ -0,0 +1,8 @@
1
+ import { loadStartRegistration } from './authenticate.js';
2
+ export async function registerPasskeyJson(client, deps = {}) {
3
+ const loadFn = deps.loadStartRegistration ?? loadStartRegistration;
4
+ const optionsJSON = await client.account.mfa.passkeys.options();
5
+ const startRegistration = await loadFn();
6
+ const attestation = await startRegistration({ optionsJSON });
7
+ return client.account.mfa.passkeys.verify(attestation);
8
+ }
@@ -1,4 +1,5 @@
1
- import type { AccountAppsResult, AccountLoginMethodsResult, AccountMe, AccountMfaStatus, AccountOrgDetail, AccountOrgInvitationsResult, AccountOrgsResult, AccountPasskeysResult, AccountSecurityOverview, AccountSessionsResult, AccountTokensResult, ChangePasswordInput, CreatedPatResult, CreateTokenInput, EmailChangeResult, OkResult, RemovePasskeyResult, RequestEmailChangeInput, RevokeAllResult, RevokeAppResult, RevokeOthersResult, RevokeSessionResult, RevokeTokenResult, UpdateLoginMethodsResult, UpdateProfileInput, UpdateProfileResult, UserLoginMethodsInput } from '../../client/types.js';
1
+ import type { AcceptOrgInvitationResult, AccountAppsResult, AccountLoginMethodsResult, AccountMe, AccountMfaStatus, AccountOrgDetail, AccountOrgInvitationsResult, AccountOrgsResult, AccountPasskeysResult, AccountSecurityOverview, AccountSessionsResult, AccountTokensResult, ActivateOrgResult, ChangePasswordInput, CreateAccountOrgInput, CreatedAccountOrgResult, CreatedOrgInvitationResult, CreatedPatResult, CreateTokenInput, DeactivateOrgResult, EmailChangeResult, LeaveOrgResult, MfaConfirmResult, MfaDisableResult, MfaEnrollResult, MfaRecoveryCodesResult, OkResult, RemoveOrgMemberResult, RemovePasskeyResult, RequestEmailChangeInput, RevokeAllResult, RevokeAppResult, RevokeOrgInvitationResult, RevokeOthersResult, RevokeSessionResult, RevokeTokenResult, UpdateLoginMethodsResult, UpdateOrgMemberRoleResult, UpdateProfileInput, UpdateProfileResult, UserLoginMethodsInput } from '../../client/types.js';
2
+ import { type RegisterPasskeyJsonDeps } from '../../passkey/json_registration.js';
2
3
  export declare function useMeQueryOptions(): {
3
4
  queryKey: readonly ["authkit", "account", "me"];
4
5
  queryFn: () => Promise<AccountMe>;
@@ -94,3 +95,75 @@ export declare function useAccountOrgInvitationsQueryOptions(): {
94
95
  queryKey: readonly ["authkit", "account", "orgs", "invitations"];
95
96
  queryFn: () => Promise<AccountOrgInvitationsResult>;
96
97
  };
98
+ export declare function useAccountCreateOrgMutationOptions(): {
99
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "create"];
100
+ mutationFn: (data: CreateAccountOrgInput) => Promise<CreatedAccountOrgResult>;
101
+ };
102
+ export declare function useAccountActivateOrgMutationOptions(): {
103
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "activate"];
104
+ mutationFn: (orgId: string) => Promise<ActivateOrgResult>;
105
+ };
106
+ export declare function useAccountDeactivateOrgMutationOptions(): {
107
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "deactivate"];
108
+ mutationFn: () => Promise<DeactivateOrgResult>;
109
+ };
110
+ export declare function useAccountLeaveOrgMutationOptions(): {
111
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "leave"];
112
+ mutationFn: (orgId: string) => Promise<LeaveOrgResult>;
113
+ };
114
+ export declare function useAccountInviteOrgMemberMutationOptions(): {
115
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "invite"];
116
+ mutationFn: (vars: {
117
+ orgId: string;
118
+ email: string;
119
+ role?: string;
120
+ }) => Promise<CreatedOrgInvitationResult>;
121
+ };
122
+ export declare function useAccountRevokeOrgInvitationMutationOptions(): {
123
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "revoke-invitation"];
124
+ mutationFn: (vars: {
125
+ orgId: string;
126
+ invitationId: string;
127
+ }) => Promise<RevokeOrgInvitationResult>;
128
+ };
129
+ export declare function useAccountUpdateOrgMemberRoleMutationOptions(): {
130
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "update-member-role"];
131
+ mutationFn: (vars: {
132
+ orgId: string;
133
+ accountId: string;
134
+ role: string;
135
+ }) => Promise<UpdateOrgMemberRoleResult>;
136
+ };
137
+ export declare function useAccountRemoveOrgMemberMutationOptions(): {
138
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "remove-member"];
139
+ mutationFn: (vars: {
140
+ orgId: string;
141
+ accountId: string;
142
+ }) => Promise<RemoveOrgMemberResult>;
143
+ };
144
+ export declare function useAccountAcceptOrgInvitationMutationOptions(): {
145
+ mutationKey: readonly ["authkit", "account", "orgs", "mutation", "accept-invitation"];
146
+ mutationFn: (token: string) => Promise<AcceptOrgInvitationResult>;
147
+ };
148
+ export declare function useEnrollTotpMutationOptions(): {
149
+ mutationKey: readonly ["authkit", "account", "mfa", "mutation", "totp-enroll"];
150
+ mutationFn: () => Promise<MfaEnrollResult>;
151
+ };
152
+ export declare function useConfirmTotpMutationOptions(): {
153
+ mutationKey: readonly ["authkit", "account", "mfa", "mutation", "totp-confirm"];
154
+ mutationFn: (code: string) => Promise<MfaConfirmResult>;
155
+ };
156
+ export declare function useDisableTotpMutationOptions(): {
157
+ mutationKey: readonly ["authkit", "account", "mfa", "mutation", "totp-disable"];
158
+ mutationFn: () => Promise<MfaDisableResult>;
159
+ };
160
+ export declare function useRegenerateRecoveryCodesMutationOptions(): {
161
+ mutationKey: readonly ["authkit", "account", "mfa", "mutation", "recovery-codes"];
162
+ mutationFn: () => Promise<MfaRecoveryCodesResult>;
163
+ };
164
+ export declare function useRegisterPasskeyMutationOptions(deps?: RegisterPasskeyJsonDeps): {
165
+ mutationKey: readonly ["authkit", "account", "mfa", "mutation", "passkey-register"];
166
+ mutationFn: () => Promise<{
167
+ ok: boolean;
168
+ }>;
169
+ };
@@ -1,4 +1,5 @@
1
1
  import { useAuthkitClient } from '../../client/context.js';
2
+ import { registerPasskeyJson, } from '../../passkey/json_registration.js';
2
3
  import { authkitKeys } from '../keys.js';
3
4
  export function useMeQueryOptions() {
4
5
  const client = useAuthkitClient();
@@ -162,3 +163,101 @@ export function useAccountOrgInvitationsQueryOptions() {
162
163
  queryFn: () => client.account.orgs.invitations(),
163
164
  };
164
165
  }
166
+ export function useAccountCreateOrgMutationOptions() {
167
+ const client = useAuthkitClient();
168
+ return {
169
+ mutationKey: authkitKeys.account.mutations.orgCreate(),
170
+ mutationFn: (data) => client.account.orgs.create(data),
171
+ };
172
+ }
173
+ export function useAccountActivateOrgMutationOptions() {
174
+ const client = useAuthkitClient();
175
+ return {
176
+ mutationKey: authkitKeys.account.mutations.orgActivate(),
177
+ mutationFn: (orgId) => client.account.orgs.activate(orgId),
178
+ };
179
+ }
180
+ export function useAccountDeactivateOrgMutationOptions() {
181
+ const client = useAuthkitClient();
182
+ return {
183
+ mutationKey: authkitKeys.account.mutations.orgDeactivate(),
184
+ mutationFn: () => client.account.orgs.deactivate(),
185
+ };
186
+ }
187
+ export function useAccountLeaveOrgMutationOptions() {
188
+ const client = useAuthkitClient();
189
+ return {
190
+ mutationKey: authkitKeys.account.mutations.orgLeave(),
191
+ mutationFn: (orgId) => client.account.orgs.leave(orgId),
192
+ };
193
+ }
194
+ export function useAccountInviteOrgMemberMutationOptions() {
195
+ const client = useAuthkitClient();
196
+ return {
197
+ mutationKey: authkitKeys.account.mutations.orgInvite(),
198
+ mutationFn: (vars) => client.account.orgs.invite(vars.orgId, { email: vars.email, role: vars.role }),
199
+ };
200
+ }
201
+ export function useAccountRevokeOrgInvitationMutationOptions() {
202
+ const client = useAuthkitClient();
203
+ return {
204
+ mutationKey: authkitKeys.account.mutations.orgRevokeInvitation(),
205
+ mutationFn: (vars) => client.account.orgs.revokeInvitation(vars.orgId, vars.invitationId),
206
+ };
207
+ }
208
+ export function useAccountUpdateOrgMemberRoleMutationOptions() {
209
+ const client = useAuthkitClient();
210
+ return {
211
+ mutationKey: authkitKeys.account.mutations.orgUpdateMemberRole(),
212
+ mutationFn: (vars) => client.account.orgs.updateMemberRole(vars.orgId, vars.accountId, vars.role),
213
+ };
214
+ }
215
+ export function useAccountRemoveOrgMemberMutationOptions() {
216
+ const client = useAuthkitClient();
217
+ return {
218
+ mutationKey: authkitKeys.account.mutations.orgRemoveMember(),
219
+ mutationFn: (vars) => client.account.orgs.removeMember(vars.orgId, vars.accountId),
220
+ };
221
+ }
222
+ export function useAccountAcceptOrgInvitationMutationOptions() {
223
+ const client = useAuthkitClient();
224
+ return {
225
+ mutationKey: authkitKeys.account.mutations.orgAcceptInvitation(),
226
+ mutationFn: (token) => client.account.orgs.acceptInvitation(token),
227
+ };
228
+ }
229
+ export function useEnrollTotpMutationOptions() {
230
+ const client = useAuthkitClient();
231
+ return {
232
+ mutationKey: authkitKeys.account.mutations.mfaEnroll(),
233
+ mutationFn: () => client.account.mfa.enroll(),
234
+ };
235
+ }
236
+ export function useConfirmTotpMutationOptions() {
237
+ const client = useAuthkitClient();
238
+ return {
239
+ mutationKey: authkitKeys.account.mutations.mfaConfirm(),
240
+ mutationFn: (code) => client.account.mfa.confirm(code),
241
+ };
242
+ }
243
+ export function useDisableTotpMutationOptions() {
244
+ const client = useAuthkitClient();
245
+ return {
246
+ mutationKey: authkitKeys.account.mutations.mfaDisable(),
247
+ mutationFn: () => client.account.mfa.disable(),
248
+ };
249
+ }
250
+ export function useRegenerateRecoveryCodesMutationOptions() {
251
+ const client = useAuthkitClient();
252
+ return {
253
+ mutationKey: authkitKeys.account.mutations.mfaRecoveryCodes(),
254
+ mutationFn: () => client.account.mfa.regenerateRecoveryCodes(),
255
+ };
256
+ }
257
+ export function useRegisterPasskeyMutationOptions(deps = {}) {
258
+ const client = useAuthkitClient();
259
+ return {
260
+ mutationKey: authkitKeys.account.mutations.passkeyRegister(),
261
+ mutationFn: () => registerPasskeyJson(client, deps),
262
+ };
263
+ }
@@ -47,5 +47,23 @@ export declare const authkitKeys: {
47
47
  readonly org: (id: string) => readonly ['authkit', 'account', 'orgs', string];
48
48
  readonly orgInvitations: () => readonly ['authkit', 'account', 'orgs', 'invitations'];
49
49
  readonly loginMethods: () => readonly ['authkit', 'account', 'login-methods'];
50
+ readonly mutations: {
51
+ readonly orgs: () => readonly ['authkit', 'account', 'orgs', 'mutation'];
52
+ readonly orgCreate: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'create'];
53
+ readonly orgActivate: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'activate'];
54
+ readonly orgDeactivate: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'deactivate'];
55
+ readonly orgLeave: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'leave'];
56
+ readonly orgInvite: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'invite'];
57
+ readonly orgRevokeInvitation: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'revoke-invitation'];
58
+ readonly orgAcceptInvitation: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'accept-invitation'];
59
+ readonly orgUpdateMemberRole: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'update-member-role'];
60
+ readonly orgRemoveMember: () => readonly ['authkit', 'account', 'orgs', 'mutation', 'remove-member'];
61
+ readonly mfa: () => readonly ['authkit', 'account', 'mfa', 'mutation'];
62
+ readonly mfaEnroll: () => readonly ['authkit', 'account', 'mfa', 'mutation', 'totp-enroll'];
63
+ readonly mfaConfirm: () => readonly ['authkit', 'account', 'mfa', 'mutation', 'totp-confirm'];
64
+ readonly mfaDisable: () => readonly ['authkit', 'account', 'mfa', 'mutation', 'totp-disable'];
65
+ readonly mfaRecoveryCodes: () => readonly ['authkit', 'account', 'mfa', 'mutation', 'recovery-codes'];
66
+ readonly passkeyRegister: () => readonly ['authkit', 'account', 'mfa', 'mutation', 'passkey-register'];
67
+ };
50
68
  };
51
69
  };
@@ -31,5 +31,23 @@ export const authkitKeys = {
31
31
  org: (id) => ['authkit', 'account', 'orgs', id],
32
32
  orgInvitations: () => ['authkit', 'account', 'orgs', 'invitations'],
33
33
  loginMethods: () => ['authkit', 'account', 'login-methods'],
34
+ mutations: {
35
+ orgs: () => ['authkit', 'account', 'orgs', 'mutation'],
36
+ orgCreate: () => ['authkit', 'account', 'orgs', 'mutation', 'create'],
37
+ orgActivate: () => ['authkit', 'account', 'orgs', 'mutation', 'activate'],
38
+ orgDeactivate: () => ['authkit', 'account', 'orgs', 'mutation', 'deactivate'],
39
+ orgLeave: () => ['authkit', 'account', 'orgs', 'mutation', 'leave'],
40
+ orgInvite: () => ['authkit', 'account', 'orgs', 'mutation', 'invite'],
41
+ orgRevokeInvitation: () => ['authkit', 'account', 'orgs', 'mutation', 'revoke-invitation'],
42
+ orgAcceptInvitation: () => ['authkit', 'account', 'orgs', 'mutation', 'accept-invitation'],
43
+ orgUpdateMemberRole: () => ['authkit', 'account', 'orgs', 'mutation', 'update-member-role'],
44
+ orgRemoveMember: () => ['authkit', 'account', 'orgs', 'mutation', 'remove-member'],
45
+ mfa: () => ['authkit', 'account', 'mfa', 'mutation'],
46
+ mfaEnroll: () => ['authkit', 'account', 'mfa', 'mutation', 'totp-enroll'],
47
+ mfaConfirm: () => ['authkit', 'account', 'mfa', 'mutation', 'totp-confirm'],
48
+ mfaDisable: () => ['authkit', 'account', 'mfa', 'mutation', 'totp-disable'],
49
+ mfaRecoveryCodes: () => ['authkit', 'account', 'mfa', 'mutation', 'recovery-codes'],
50
+ passkeyRegister: () => ['authkit', 'account', 'mfa', 'mutation', 'passkey-register'],
51
+ },
34
52
  },
35
53
  };
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@adonis-agora/authkit-react",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "description": "Frontend ergonomics over AuthKit for AdonisJS + Inertia + React apps: a typed useAuth() hook, role-gating hooks and gating components.",
5
5
  "license": "MIT",
6
6
  "author": "dudousxd",
7
- "homepage": "https://github.com/DavideCarvalho/adonis-agora-authkit/tree/main/packages/authkit-react#readme",
8
7
  "repository": {
9
8
  "type": "git",
10
9
  "url": "https://github.com/DavideCarvalho/adonis-agora-authkit.git",
11
10
  "directory": "packages/authkit-react"
12
11
  },
12
+ "homepage": "https://davidecarvalho.github.io/agora/docs/authkit",
13
13
  "bugs": {
14
14
  "url": "https://github.com/DavideCarvalho/adonis-agora-authkit/issues"
15
15
  },
@@ -40,11 +40,11 @@
40
40
  "./styles.css": "./styles.css"
41
41
  },
42
42
  "peerDependencies": {
43
- "@inertiajs/react": "^3.7.0",
44
- "@simplewebauthn/browser": "^13.3.0 || ^14.0.0",
45
- "@tanstack/react-query": "^5.102.8",
46
- "react": "^19.2.8",
47
- "react-dom": "^19.2.8"
43
+ "@inertiajs/react": "3.7.1",
44
+ "@simplewebauthn/browser": "14.0.0",
45
+ "@tanstack/react-query": "5.102.8",
46
+ "react": "19.3.0",
47
+ "react-dom": "19.3.0"
48
48
  },
49
49
  "peerDependenciesMeta": {
50
50
  "@simplewebauthn/browser": {
@@ -52,17 +52,17 @@
52
52
  }
53
53
  },
54
54
  "dependencies": {
55
- "@adonis-agora/authkit-core": "0.8.0"
55
+ "@adonis-agora/authkit-core": "0.9.0"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@adonisjs/tsconfig": "2.0.0",
59
- "@inertiajs/react": "3.7.0",
59
+ "@inertiajs/react": "3.7.1",
60
60
  "@japa/assert": "4.2.0",
61
61
  "@japa/runner": "5.3.0",
62
62
  "@poppinss/ts-exec": "1.4.4",
63
- "@tanstack/intent": "^0.4.0",
63
+ "@tanstack/intent": "0.4.0",
64
64
  "@tanstack/react-query": "5.102.8",
65
- "@types/node": "26.5.0",
65
+ "@types/node": "26.5.1",
66
66
  "@types/react": "19.2.18",
67
67
  "@types/react-dom": "19.2.7",
68
68
  "react": "19.2.8",