@aurabase/auth 0.6.0 → 0.6.2

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/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { BaseService, AuraResponse, AdminUser, AdminCreateUserRequest, AdminUpdateUserRequest, GenerateLinkType, GenerateLinkResult, UserStats, IdentityInfo, AdminSessionInfo, AuditLogEntry, AuthSettings, AuthSettingsUpdate, EmailTemplateUpdate, AuraClientLike, AuthChangePayload, SignUpRequest, LoginResponse, SignInRequest, OAuthSignInOptions, MagicLinkRequest, TokenPair, Session, User, SessionInfo, GetClaimsResult, UpdateUserRequest, PasswordResetRequest, MfaEnrollResponse, MfaVerifyRequest, MfaChallenge } from '@aurabase/core';
1
+ import { BaseService, AuraResponse, AdminUser, AdminCreateUserRequest, AdminUpdateUserRequest, GenerateLinkType, GenerateLinkResult, UserStats, IdentityInfo, AdminSessionInfo, AuditLogEntry, AuthSettings, AuthSettingsUpdate, EmailTemplateUpdate, AuraClientLike, AuthChangePayload, SignUpRequest, LoginResponse, SignInRequest, OAuthSignInOptions, OAuthSignInObjectOptions, MagicLinkRequest, TokenPair, Session, User, SessionInfo, GetClaimsResult, UpdateUserRequest, PasswordResetRequest, MfaEnrollResponse, MfaVerifyRequest, MfaChallenge } from '@aurabase/core';
2
2
 
3
3
  declare class AuthAdminService extends BaseService {
4
4
  /**
@@ -7,31 +7,59 @@ declare class AuthAdminService extends BaseService {
7
7
  * `services/aura-gateway/src/middleware/project_subdomain.rs`).
8
8
  */
9
9
  private get prefix();
10
+ /**
11
+ * Liste les utilisateurs du projet, avec recherche (`search`) et pagination (`limit`, `offset`).
12
+ */
10
13
  listUsers(params?: {
11
14
  limit?: number;
12
15
  offset?: number;
13
16
  search?: string;
14
17
  }): Promise<AuraResponse<AdminUser[]>>;
18
+ /** Lit un utilisateur par son identifiant. */
15
19
  getUser(userId: string): Promise<AuraResponse<AdminUser>>;
20
+ /**
21
+ * Crée un utilisateur sans passer par l'inscription publique (e-mail, mot de passe, métadonnées, rôle).
22
+ */
16
23
  createUser(data: AdminCreateUserRequest): Promise<AuraResponse<AdminUser>>;
24
+ /** Met à jour un utilisateur : seuls les champs fournis changent. */
17
25
  updateUser(userId: string, data: AdminUpdateUserRequest): Promise<AuraResponse<AdminUser>>;
26
+ /** Supprime un utilisateur. */
18
27
  deleteUser(userId: string): Promise<AuraResponse<null>>;
28
+ /** Bannit un utilisateur : il ne peut plus se connecter. */
19
29
  banUser(userId: string): Promise<AuraResponse<null>>;
30
+ /** Lève le bannissement d'un utilisateur. */
20
31
  unbanUser(userId: string): Promise<AuraResponse<null>>;
32
+ /**
33
+ * Génère un lien à usage unique pour un utilisateur (`'magic'`, `'recovery'` ou `'invite'`) et renvoie `{ link, token }`.
34
+ */
21
35
  generateLink(userId: string, type: GenerateLinkType): Promise<AuraResponse<GenerateLinkResult>>;
36
+ /**
37
+ * Statistiques des utilisateurs : total, vérifiés, bannis, avec MFA et nouveaux sur 7 jours.
38
+ */
22
39
  getUserStats(): Promise<AuraResponse<UserStats>>;
40
+ /** Liste les identités liées à un utilisateur (fournisseurs OAuth, e-mail). */
23
41
  listUserIdentities(userId: string): Promise<AuraResponse<IdentityInfo[]>>;
42
+ /**
43
+ * Liste les sessions actives de tous les utilisateurs, filtrables par `userId`, avec pagination.
44
+ */
24
45
  listSessions(params?: {
25
46
  userId?: string;
26
47
  limit?: number;
27
48
  offset?: number;
28
49
  }): Promise<AuraResponse<AdminSessionInfo[]>>;
50
+ /** Révoque une session par son identifiant. */
29
51
  revokeSession(sessionId: string): Promise<AuraResponse<null>>;
52
+ /**
53
+ * Lit le journal d'audit (action, adresse IP, agent utilisateur, date), filtrable par `userId`, avec pagination.
54
+ */
30
55
  getAuditLog(params?: {
31
56
  userId?: string;
32
57
  limit?: number;
33
58
  offset?: number;
34
59
  }): Promise<AuraResponse<AuditLogEntry[]>>;
60
+ /**
61
+ * Lit les réglages d'authentification du projet. Les secrets (mot de passe SMTP, clés) ne sont jamais renvoyés.
62
+ */
35
63
  getSettings(): Promise<AuraResponse<AuthSettings>>;
36
64
  /**
37
65
  * Met à jour les réglages auth du projet (fusion partielle : seuls les champs fournis
@@ -49,12 +77,17 @@ declare class AuthAdminService extends BaseService {
49
77
  * renvoyez donc pas tel quel un objet lu par {@link getSettings}.
50
78
  */
51
79
  updateSettings(data: AuthSettingsUpdate): Promise<AuraResponse<AuthSettings>>;
80
+ /** Liste les modèles d'e-mail d'authentification du projet. */
52
81
  listEmailTemplates(): Promise<AuraResponse<Record<string, unknown>[]>>;
82
+ /** Lit le modèle d'e-mail d'un type donné (par exemple confirmation, récupération). */
53
83
  getEmailTemplate(type: string): Promise<AuraResponse<Record<string, unknown>>>;
84
+ /** Remplace le contenu du modèle d'e-mail d'un type donné. */
54
85
  updateEmailTemplate(type: string, data: EmailTemplateUpdate): Promise<AuraResponse<Record<string, unknown>>>;
86
+ /** Supprime le modèle personnalisé d'un type d'e-mail. */
55
87
  deleteEmailTemplate(type: string): Promise<AuraResponse<{
56
88
  message: string;
57
89
  }>>;
90
+ /** Envoie un e-mail de test avec le modèle d'un type à l'adresse `to_email`. */
58
91
  testEmailTemplate(type: string, body: {
59
92
  to_email: string;
60
93
  }): Promise<AuraResponse<null>>;
@@ -204,6 +237,10 @@ declare class AuthService extends BaseService {
204
237
  * sera jamais adopté.
205
238
  */
206
239
  private get _oauthInitiatedKey();
240
+ /**
241
+ * Écoute les changements d'état de la session (`SIGNED_IN`, `SIGNED_OUT`, `TOKEN_REFRESHED`, `USER_UPDATED`,
242
+ * `MFA_CHALLENGE`…). Renvoie de quoi se désabonner : `unsubscribe()` ou `data.subscription.unsubscribe()`.
243
+ */
207
244
  onAuthStateChange(callback: AuthStateCallback): {
208
245
  unsubscribe: () => void;
209
246
  data: {
@@ -213,12 +250,25 @@ declare class AuthService extends BaseService {
213
250
  };
214
251
  };
215
252
  private _emitEvent;
253
+ /**
254
+ * Crée un compte avec e-mail et mot de passe. Si le projet n'exige pas de confirmation et que le MFA n'est pas actif,
255
+ * la session est enregistrée et `SIGNED_IN` est émis ; sinon la réponse est un défi MFA (voir `isMfaChallenge`).
256
+ */
216
257
  signUp(req: SignUpRequest): Promise<AuraResponse<LoginResponse>>;
258
+ /**
259
+ * Connecte un utilisateur par e-mail et mot de passe. Enregistre la session et émet `SIGNED_IN` ;
260
+ * si le MFA est actif, renvoie un défi (`isMfaChallenge`) à compléter par `mfaVerify`.
261
+ */
217
262
  signInWithPassword(req: SignInRequest): Promise<AuraResponse<LoginResponse>>;
218
263
  /**
219
264
  * Démarre un flux OAuth : renvoie toujours `{ url }` (et redirige en plus le navigateur
220
265
  * si un `window` existe).
221
266
  *
267
+ * Accepte indifféremment la signature canonique :
268
+ * `signInWithOAuth('google', { redirectTo })`
269
+ * ou la signature objet compatible Supabase :
270
+ * `signInWithOAuth({ provider: 'google', options: { redirectTo } })`
271
+ *
222
272
  * ### `options.queryParams` — contrat (N22)
223
273
  *
224
274
  * Les clés listées par {@link OAUTH_FORWARDABLE_QUERY_PARAMS} — `prompt`, `login_hint`,
@@ -248,11 +298,27 @@ declare class AuthService extends BaseService {
248
298
  signInWithOAuth(provider: string, options?: OAuthSignInOptions): Promise<AuraResponse<{
249
299
  url: string;
250
300
  }>>;
301
+ signInWithOAuth(options: OAuthSignInObjectOptions): Promise<AuraResponse<{
302
+ url: string;
303
+ }>>;
304
+ /**
305
+ * Envoie un lien de connexion par e-mail (« magic link »). La session s'obtient ensuite par `verifyOtp({ type: 'magiclink' })`.
306
+ */
251
307
  signInWithMagicLink(req: MagicLinkRequest): Promise<AuraResponse<{
252
308
  message: string;
253
309
  }>>;
310
+ /**
311
+ * Crée une session anonyme (utilisateur sans e-mail), enregistrée et signalée par `SIGNED_IN`.
312
+ */
254
313
  signInAnonymously(): Promise<AuraResponse<TokenPair>>;
314
+ /**
315
+ * Déconnecte : révoque le jeton de rafraîchissement côté serveur s'il existe, vide la session locale et émet `SIGNED_OUT`.
316
+ */
255
317
  signOut(): Promise<AuraResponse<null>>;
318
+ /**
319
+ * Rafraîchit la session avec le jeton de rafraîchissement et émet `TOKEN_REFRESHED`.
320
+ * Les rafraîchissements concurrents sont fusionnés en un seul appel.
321
+ */
256
322
  refreshSession(): Promise<AuraResponse<TokenPair>>;
257
323
  /**
258
324
  * Session courante lue depuis le store (synchrone en pratique, pas d'appel réseau).
@@ -270,6 +336,10 @@ declare class AuthService extends BaseService {
270
336
  access_token: string | null;
271
337
  user: User | null;
272
338
  }>;
339
+ /**
340
+ * Installe une session à partir d'un jeton d'accès et d'un jeton de rafraîchissement existants (par exemple reçus d'un serveur).
341
+ * Un jeton d'accès expiré est rafraîchi ; une session invalide est refusée et l'état précédent est restauré.
342
+ */
273
343
  setSession(accessToken: string, refreshToken: string): Promise<AuraResponse<User>>;
274
344
  /**
275
345
  * Échange le code d'autorisation PKCE contre une session.
@@ -288,8 +358,15 @@ declare class AuthService extends BaseService {
288
358
  * récupération de mot de passe, `?code=…&type=recovery` — voir `_detectSessionInUrl`).
289
359
  */
290
360
  private _exchangeCode;
361
+ /**
362
+ * Liste les sessions de l'utilisateur connecté (appareil, adresse IP, dates) ; `is_current` repère la session courante.
363
+ */
291
364
  listSessions(): Promise<AuraResponse<SessionInfo[]>>;
365
+ /** Révoque une session de l'utilisateur connecté par son identifiant. */
292
366
  revokeSession(sessionId: string): Promise<AuraResponse<null>>;
367
+ /**
368
+ * Déconnecte l'utilisateur partout : révoque toutes ses sessions, vide la session locale et émet `SIGNED_OUT`.
369
+ */
293
370
  revokeAllSessions(): Promise<AuraResponse<{
294
371
  message: string;
295
372
  }>>;
@@ -304,7 +381,9 @@ declare class AuthService extends BaseService {
304
381
  * (`skipAuthRefresh`, aucun refresh ni retry-401 sur le store). Le backend
305
382
  * applique l'isolation projet native : un token d'un AUTRE projet → 403.
306
383
  */
307
- getUser(jwt?: string): Promise<AuraResponse<User>>;
384
+ getUser(jwt?: string): Promise<AuraResponse<User & {
385
+ user: User;
386
+ }>>;
308
387
  /**
309
388
  * Vérifie et décode les claims d'un JWT.
310
389
  *
@@ -335,17 +414,59 @@ declare class AuthService extends BaseService {
335
414
  issuer?: string;
336
415
  audience?: string;
337
416
  }): Promise<AuraResponse<GetClaimsResult>>;
417
+ /**
418
+ * Supprime le compte de l'utilisateur connecté après confirmation par son mot de passe, puis vide la session locale.
419
+ */
338
420
  deleteUser(password: string): Promise<AuraResponse<null>>;
421
+ /**
422
+ * Met à jour l'utilisateur connecté (métadonnées, mot de passe…) et émet `USER_UPDATED`. Un changement d'e-mail ne prend effet qu'après confirmation par `verifyOtp({ type: 'email_change' })`.
423
+ */
339
424
  updateUser(req: UpdateUserRequest): Promise<AuraResponse<User>>;
340
- resetPasswordForEmail(req: PasswordResetRequest): Promise<AuraResponse<{
425
+ /** Envoie un e-mail de réinitialisation du mot de passe (accepte un email sous forme de chaîne ou un objet PasswordResetRequest). */
426
+ resetPasswordForEmail(emailOrReq: string | PasswordResetRequest): Promise<AuraResponse<{
341
427
  message: string;
342
428
  }>>;
429
+ /**
430
+ * Change le mot de passe de l'utilisateur connecté. Le serveur révoque toutes ses sessions : le SDK vide la session locale et émet `SIGNED_OUT`.
431
+ */
343
432
  updatePassword(newPassword: string, currentPassword?: string): Promise<AuraResponse<User>>;
433
+ /**
434
+ * Façade unifiée pour les opérations MFA (TOTP).
435
+ * Permet d'appeler indifféremment `aura.auth.mfa.enroll()` ou `aura.auth.mfaEnroll()`.
436
+ */
437
+ get mfa(): {
438
+ enroll: (params?: {
439
+ factor_type?: 'totp';
440
+ factorType?: 'totp';
441
+ }) => Promise<AuraResponse<MfaEnrollResponse>>;
442
+ verifySetup: (codeOrParams: string | {
443
+ code: string;
444
+ }) => Promise<AuraResponse<{
445
+ recovery_codes: string[];
446
+ }>>;
447
+ verify: (req: MfaVerifyRequest) => Promise<AuraResponse<TokenPair>>;
448
+ unenroll: (passwordOrParams: string | {
449
+ password: string;
450
+ }) => Promise<AuraResponse<{
451
+ message: string;
452
+ }>>;
453
+ regenerateRecoveryCodes: (codeOrParams: string | {
454
+ code: string;
455
+ }) => Promise<AuraResponse<{
456
+ recovery_codes: string[];
457
+ }>>;
458
+ };
459
+ /** MFA : démarre l'enrôlement TOTP et renvoie le `secret` et l'URL `otpauth_url` à afficher en QR code. */
344
460
  mfaEnroll(): Promise<AuraResponse<MfaEnrollResponse>>;
461
+ /** MFA : confirme l'enrôlement avec un premier code et renvoie les codes de récupération. */
345
462
  mfaVerifySetup(code: string): Promise<AuraResponse<{
346
463
  recovery_codes: string[];
347
464
  }>>;
465
+ /**
466
+ * MFA : termine une connexion qui a renvoyé un défi (`mfa_token` et code TOTP). Enregistre la session et émet `SIGNED_IN`.
467
+ */
348
468
  mfaVerify(req: MfaVerifyRequest): Promise<AuraResponse<TokenPair>>;
469
+ /** MFA : désactive le MFA après confirmation par le mot de passe. */
349
470
  mfaUnenroll(password: string): Promise<AuraResponse<{
350
471
  message: string;
351
472
  }>>;
@@ -378,23 +499,34 @@ declare class AuthService extends BaseService {
378
499
  * l'endpoint, puis (succès) sauvegarde la session et émet `SIGNED_IN`.
379
500
  */
380
501
  private _verifyToTokenPair;
502
+ /** Renvoie l'e-mail de vérification, à `email` ou à l'adresse de l'utilisateur connecté. */
381
503
  resendVerificationEmail(email?: string): Promise<AuraResponse<{
382
504
  message: string;
383
505
  }>>;
506
+ /**
507
+ * Envoie un code à usage unique par e-mail ; à confirmer par `verifyOtp({ type: 'email' })`.
508
+ */
384
509
  signInWithEmailOtp(email: string): Promise<AuraResponse<{
385
510
  message: string;
386
511
  }>>;
512
+ /** Envoie un code à usage unique par SMS ; à confirmer par `verifyOtp({ type: 'sms' })`. */
387
513
  signInWithSmsOtp(phone: string): Promise<AuraResponse<{
388
514
  message: string;
389
515
  }>>;
516
+ /** Liste les identités (fournisseurs) liées à l'utilisateur connecté. */
390
517
  listIdentities(): Promise<AuraResponse<IdentityInfo[]>>;
518
+ /**
519
+ * Démarre la liaison d'un fournisseur OAuth au compte connecté et renvoie l'URL d'autorisation à ouvrir.
520
+ */
391
521
  linkIdentity(provider: string): Promise<AuraResponse<{
392
522
  url: string;
393
523
  provider: string;
394
524
  }>>;
525
+ /** Détache une identité du compte connecté par son identifiant. */
395
526
  unlinkIdentity(identityId: string): Promise<AuraResponse<{
396
527
  message: string;
397
528
  }>>;
529
+ /** MFA : régénère les codes de récupération après confirmation par un code TOTP. */
398
530
  regenerateRecoveryCodes(code: string): Promise<AuraResponse<{
399
531
  recovery_codes: string[];
400
532
  }>>;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BaseService, AuraResponse, AdminUser, AdminCreateUserRequest, AdminUpdateUserRequest, GenerateLinkType, GenerateLinkResult, UserStats, IdentityInfo, AdminSessionInfo, AuditLogEntry, AuthSettings, AuthSettingsUpdate, EmailTemplateUpdate, AuraClientLike, AuthChangePayload, SignUpRequest, LoginResponse, SignInRequest, OAuthSignInOptions, MagicLinkRequest, TokenPair, Session, User, SessionInfo, GetClaimsResult, UpdateUserRequest, PasswordResetRequest, MfaEnrollResponse, MfaVerifyRequest, MfaChallenge } from '@aurabase/core';
1
+ import { BaseService, AuraResponse, AdminUser, AdminCreateUserRequest, AdminUpdateUserRequest, GenerateLinkType, GenerateLinkResult, UserStats, IdentityInfo, AdminSessionInfo, AuditLogEntry, AuthSettings, AuthSettingsUpdate, EmailTemplateUpdate, AuraClientLike, AuthChangePayload, SignUpRequest, LoginResponse, SignInRequest, OAuthSignInOptions, OAuthSignInObjectOptions, MagicLinkRequest, TokenPair, Session, User, SessionInfo, GetClaimsResult, UpdateUserRequest, PasswordResetRequest, MfaEnrollResponse, MfaVerifyRequest, MfaChallenge } from '@aurabase/core';
2
2
 
3
3
  declare class AuthAdminService extends BaseService {
4
4
  /**
@@ -7,31 +7,59 @@ declare class AuthAdminService extends BaseService {
7
7
  * `services/aura-gateway/src/middleware/project_subdomain.rs`).
8
8
  */
9
9
  private get prefix();
10
+ /**
11
+ * Liste les utilisateurs du projet, avec recherche (`search`) et pagination (`limit`, `offset`).
12
+ */
10
13
  listUsers(params?: {
11
14
  limit?: number;
12
15
  offset?: number;
13
16
  search?: string;
14
17
  }): Promise<AuraResponse<AdminUser[]>>;
18
+ /** Lit un utilisateur par son identifiant. */
15
19
  getUser(userId: string): Promise<AuraResponse<AdminUser>>;
20
+ /**
21
+ * Crée un utilisateur sans passer par l'inscription publique (e-mail, mot de passe, métadonnées, rôle).
22
+ */
16
23
  createUser(data: AdminCreateUserRequest): Promise<AuraResponse<AdminUser>>;
24
+ /** Met à jour un utilisateur : seuls les champs fournis changent. */
17
25
  updateUser(userId: string, data: AdminUpdateUserRequest): Promise<AuraResponse<AdminUser>>;
26
+ /** Supprime un utilisateur. */
18
27
  deleteUser(userId: string): Promise<AuraResponse<null>>;
28
+ /** Bannit un utilisateur : il ne peut plus se connecter. */
19
29
  banUser(userId: string): Promise<AuraResponse<null>>;
30
+ /** Lève le bannissement d'un utilisateur. */
20
31
  unbanUser(userId: string): Promise<AuraResponse<null>>;
32
+ /**
33
+ * Génère un lien à usage unique pour un utilisateur (`'magic'`, `'recovery'` ou `'invite'`) et renvoie `{ link, token }`.
34
+ */
21
35
  generateLink(userId: string, type: GenerateLinkType): Promise<AuraResponse<GenerateLinkResult>>;
36
+ /**
37
+ * Statistiques des utilisateurs : total, vérifiés, bannis, avec MFA et nouveaux sur 7 jours.
38
+ */
22
39
  getUserStats(): Promise<AuraResponse<UserStats>>;
40
+ /** Liste les identités liées à un utilisateur (fournisseurs OAuth, e-mail). */
23
41
  listUserIdentities(userId: string): Promise<AuraResponse<IdentityInfo[]>>;
42
+ /**
43
+ * Liste les sessions actives de tous les utilisateurs, filtrables par `userId`, avec pagination.
44
+ */
24
45
  listSessions(params?: {
25
46
  userId?: string;
26
47
  limit?: number;
27
48
  offset?: number;
28
49
  }): Promise<AuraResponse<AdminSessionInfo[]>>;
50
+ /** Révoque une session par son identifiant. */
29
51
  revokeSession(sessionId: string): Promise<AuraResponse<null>>;
52
+ /**
53
+ * Lit le journal d'audit (action, adresse IP, agent utilisateur, date), filtrable par `userId`, avec pagination.
54
+ */
30
55
  getAuditLog(params?: {
31
56
  userId?: string;
32
57
  limit?: number;
33
58
  offset?: number;
34
59
  }): Promise<AuraResponse<AuditLogEntry[]>>;
60
+ /**
61
+ * Lit les réglages d'authentification du projet. Les secrets (mot de passe SMTP, clés) ne sont jamais renvoyés.
62
+ */
35
63
  getSettings(): Promise<AuraResponse<AuthSettings>>;
36
64
  /**
37
65
  * Met à jour les réglages auth du projet (fusion partielle : seuls les champs fournis
@@ -49,12 +77,17 @@ declare class AuthAdminService extends BaseService {
49
77
  * renvoyez donc pas tel quel un objet lu par {@link getSettings}.
50
78
  */
51
79
  updateSettings(data: AuthSettingsUpdate): Promise<AuraResponse<AuthSettings>>;
80
+ /** Liste les modèles d'e-mail d'authentification du projet. */
52
81
  listEmailTemplates(): Promise<AuraResponse<Record<string, unknown>[]>>;
82
+ /** Lit le modèle d'e-mail d'un type donné (par exemple confirmation, récupération). */
53
83
  getEmailTemplate(type: string): Promise<AuraResponse<Record<string, unknown>>>;
84
+ /** Remplace le contenu du modèle d'e-mail d'un type donné. */
54
85
  updateEmailTemplate(type: string, data: EmailTemplateUpdate): Promise<AuraResponse<Record<string, unknown>>>;
86
+ /** Supprime le modèle personnalisé d'un type d'e-mail. */
55
87
  deleteEmailTemplate(type: string): Promise<AuraResponse<{
56
88
  message: string;
57
89
  }>>;
90
+ /** Envoie un e-mail de test avec le modèle d'un type à l'adresse `to_email`. */
58
91
  testEmailTemplate(type: string, body: {
59
92
  to_email: string;
60
93
  }): Promise<AuraResponse<null>>;
@@ -204,6 +237,10 @@ declare class AuthService extends BaseService {
204
237
  * sera jamais adopté.
205
238
  */
206
239
  private get _oauthInitiatedKey();
240
+ /**
241
+ * Écoute les changements d'état de la session (`SIGNED_IN`, `SIGNED_OUT`, `TOKEN_REFRESHED`, `USER_UPDATED`,
242
+ * `MFA_CHALLENGE`…). Renvoie de quoi se désabonner : `unsubscribe()` ou `data.subscription.unsubscribe()`.
243
+ */
207
244
  onAuthStateChange(callback: AuthStateCallback): {
208
245
  unsubscribe: () => void;
209
246
  data: {
@@ -213,12 +250,25 @@ declare class AuthService extends BaseService {
213
250
  };
214
251
  };
215
252
  private _emitEvent;
253
+ /**
254
+ * Crée un compte avec e-mail et mot de passe. Si le projet n'exige pas de confirmation et que le MFA n'est pas actif,
255
+ * la session est enregistrée et `SIGNED_IN` est émis ; sinon la réponse est un défi MFA (voir `isMfaChallenge`).
256
+ */
216
257
  signUp(req: SignUpRequest): Promise<AuraResponse<LoginResponse>>;
258
+ /**
259
+ * Connecte un utilisateur par e-mail et mot de passe. Enregistre la session et émet `SIGNED_IN` ;
260
+ * si le MFA est actif, renvoie un défi (`isMfaChallenge`) à compléter par `mfaVerify`.
261
+ */
217
262
  signInWithPassword(req: SignInRequest): Promise<AuraResponse<LoginResponse>>;
218
263
  /**
219
264
  * Démarre un flux OAuth : renvoie toujours `{ url }` (et redirige en plus le navigateur
220
265
  * si un `window` existe).
221
266
  *
267
+ * Accepte indifféremment la signature canonique :
268
+ * `signInWithOAuth('google', { redirectTo })`
269
+ * ou la signature objet compatible Supabase :
270
+ * `signInWithOAuth({ provider: 'google', options: { redirectTo } })`
271
+ *
222
272
  * ### `options.queryParams` — contrat (N22)
223
273
  *
224
274
  * Les clés listées par {@link OAUTH_FORWARDABLE_QUERY_PARAMS} — `prompt`, `login_hint`,
@@ -248,11 +298,27 @@ declare class AuthService extends BaseService {
248
298
  signInWithOAuth(provider: string, options?: OAuthSignInOptions): Promise<AuraResponse<{
249
299
  url: string;
250
300
  }>>;
301
+ signInWithOAuth(options: OAuthSignInObjectOptions): Promise<AuraResponse<{
302
+ url: string;
303
+ }>>;
304
+ /**
305
+ * Envoie un lien de connexion par e-mail (« magic link »). La session s'obtient ensuite par `verifyOtp({ type: 'magiclink' })`.
306
+ */
251
307
  signInWithMagicLink(req: MagicLinkRequest): Promise<AuraResponse<{
252
308
  message: string;
253
309
  }>>;
310
+ /**
311
+ * Crée une session anonyme (utilisateur sans e-mail), enregistrée et signalée par `SIGNED_IN`.
312
+ */
254
313
  signInAnonymously(): Promise<AuraResponse<TokenPair>>;
314
+ /**
315
+ * Déconnecte : révoque le jeton de rafraîchissement côté serveur s'il existe, vide la session locale et émet `SIGNED_OUT`.
316
+ */
255
317
  signOut(): Promise<AuraResponse<null>>;
318
+ /**
319
+ * Rafraîchit la session avec le jeton de rafraîchissement et émet `TOKEN_REFRESHED`.
320
+ * Les rafraîchissements concurrents sont fusionnés en un seul appel.
321
+ */
256
322
  refreshSession(): Promise<AuraResponse<TokenPair>>;
257
323
  /**
258
324
  * Session courante lue depuis le store (synchrone en pratique, pas d'appel réseau).
@@ -270,6 +336,10 @@ declare class AuthService extends BaseService {
270
336
  access_token: string | null;
271
337
  user: User | null;
272
338
  }>;
339
+ /**
340
+ * Installe une session à partir d'un jeton d'accès et d'un jeton de rafraîchissement existants (par exemple reçus d'un serveur).
341
+ * Un jeton d'accès expiré est rafraîchi ; une session invalide est refusée et l'état précédent est restauré.
342
+ */
273
343
  setSession(accessToken: string, refreshToken: string): Promise<AuraResponse<User>>;
274
344
  /**
275
345
  * Échange le code d'autorisation PKCE contre une session.
@@ -288,8 +358,15 @@ declare class AuthService extends BaseService {
288
358
  * récupération de mot de passe, `?code=…&type=recovery` — voir `_detectSessionInUrl`).
289
359
  */
290
360
  private _exchangeCode;
361
+ /**
362
+ * Liste les sessions de l'utilisateur connecté (appareil, adresse IP, dates) ; `is_current` repère la session courante.
363
+ */
291
364
  listSessions(): Promise<AuraResponse<SessionInfo[]>>;
365
+ /** Révoque une session de l'utilisateur connecté par son identifiant. */
292
366
  revokeSession(sessionId: string): Promise<AuraResponse<null>>;
367
+ /**
368
+ * Déconnecte l'utilisateur partout : révoque toutes ses sessions, vide la session locale et émet `SIGNED_OUT`.
369
+ */
293
370
  revokeAllSessions(): Promise<AuraResponse<{
294
371
  message: string;
295
372
  }>>;
@@ -304,7 +381,9 @@ declare class AuthService extends BaseService {
304
381
  * (`skipAuthRefresh`, aucun refresh ni retry-401 sur le store). Le backend
305
382
  * applique l'isolation projet native : un token d'un AUTRE projet → 403.
306
383
  */
307
- getUser(jwt?: string): Promise<AuraResponse<User>>;
384
+ getUser(jwt?: string): Promise<AuraResponse<User & {
385
+ user: User;
386
+ }>>;
308
387
  /**
309
388
  * Vérifie et décode les claims d'un JWT.
310
389
  *
@@ -335,17 +414,59 @@ declare class AuthService extends BaseService {
335
414
  issuer?: string;
336
415
  audience?: string;
337
416
  }): Promise<AuraResponse<GetClaimsResult>>;
417
+ /**
418
+ * Supprime le compte de l'utilisateur connecté après confirmation par son mot de passe, puis vide la session locale.
419
+ */
338
420
  deleteUser(password: string): Promise<AuraResponse<null>>;
421
+ /**
422
+ * Met à jour l'utilisateur connecté (métadonnées, mot de passe…) et émet `USER_UPDATED`. Un changement d'e-mail ne prend effet qu'après confirmation par `verifyOtp({ type: 'email_change' })`.
423
+ */
339
424
  updateUser(req: UpdateUserRequest): Promise<AuraResponse<User>>;
340
- resetPasswordForEmail(req: PasswordResetRequest): Promise<AuraResponse<{
425
+ /** Envoie un e-mail de réinitialisation du mot de passe (accepte un email sous forme de chaîne ou un objet PasswordResetRequest). */
426
+ resetPasswordForEmail(emailOrReq: string | PasswordResetRequest): Promise<AuraResponse<{
341
427
  message: string;
342
428
  }>>;
429
+ /**
430
+ * Change le mot de passe de l'utilisateur connecté. Le serveur révoque toutes ses sessions : le SDK vide la session locale et émet `SIGNED_OUT`.
431
+ */
343
432
  updatePassword(newPassword: string, currentPassword?: string): Promise<AuraResponse<User>>;
433
+ /**
434
+ * Façade unifiée pour les opérations MFA (TOTP).
435
+ * Permet d'appeler indifféremment `aura.auth.mfa.enroll()` ou `aura.auth.mfaEnroll()`.
436
+ */
437
+ get mfa(): {
438
+ enroll: (params?: {
439
+ factor_type?: 'totp';
440
+ factorType?: 'totp';
441
+ }) => Promise<AuraResponse<MfaEnrollResponse>>;
442
+ verifySetup: (codeOrParams: string | {
443
+ code: string;
444
+ }) => Promise<AuraResponse<{
445
+ recovery_codes: string[];
446
+ }>>;
447
+ verify: (req: MfaVerifyRequest) => Promise<AuraResponse<TokenPair>>;
448
+ unenroll: (passwordOrParams: string | {
449
+ password: string;
450
+ }) => Promise<AuraResponse<{
451
+ message: string;
452
+ }>>;
453
+ regenerateRecoveryCodes: (codeOrParams: string | {
454
+ code: string;
455
+ }) => Promise<AuraResponse<{
456
+ recovery_codes: string[];
457
+ }>>;
458
+ };
459
+ /** MFA : démarre l'enrôlement TOTP et renvoie le `secret` et l'URL `otpauth_url` à afficher en QR code. */
344
460
  mfaEnroll(): Promise<AuraResponse<MfaEnrollResponse>>;
461
+ /** MFA : confirme l'enrôlement avec un premier code et renvoie les codes de récupération. */
345
462
  mfaVerifySetup(code: string): Promise<AuraResponse<{
346
463
  recovery_codes: string[];
347
464
  }>>;
465
+ /**
466
+ * MFA : termine une connexion qui a renvoyé un défi (`mfa_token` et code TOTP). Enregistre la session et émet `SIGNED_IN`.
467
+ */
348
468
  mfaVerify(req: MfaVerifyRequest): Promise<AuraResponse<TokenPair>>;
469
+ /** MFA : désactive le MFA après confirmation par le mot de passe. */
349
470
  mfaUnenroll(password: string): Promise<AuraResponse<{
350
471
  message: string;
351
472
  }>>;
@@ -378,23 +499,34 @@ declare class AuthService extends BaseService {
378
499
  * l'endpoint, puis (succès) sauvegarde la session et émet `SIGNED_IN`.
379
500
  */
380
501
  private _verifyToTokenPair;
502
+ /** Renvoie l'e-mail de vérification, à `email` ou à l'adresse de l'utilisateur connecté. */
381
503
  resendVerificationEmail(email?: string): Promise<AuraResponse<{
382
504
  message: string;
383
505
  }>>;
506
+ /**
507
+ * Envoie un code à usage unique par e-mail ; à confirmer par `verifyOtp({ type: 'email' })`.
508
+ */
384
509
  signInWithEmailOtp(email: string): Promise<AuraResponse<{
385
510
  message: string;
386
511
  }>>;
512
+ /** Envoie un code à usage unique par SMS ; à confirmer par `verifyOtp({ type: 'sms' })`. */
387
513
  signInWithSmsOtp(phone: string): Promise<AuraResponse<{
388
514
  message: string;
389
515
  }>>;
516
+ /** Liste les identités (fournisseurs) liées à l'utilisateur connecté. */
390
517
  listIdentities(): Promise<AuraResponse<IdentityInfo[]>>;
518
+ /**
519
+ * Démarre la liaison d'un fournisseur OAuth au compte connecté et renvoie l'URL d'autorisation à ouvrir.
520
+ */
391
521
  linkIdentity(provider: string): Promise<AuraResponse<{
392
522
  url: string;
393
523
  provider: string;
394
524
  }>>;
525
+ /** Détache une identité du compte connecté par son identifiant. */
395
526
  unlinkIdentity(identityId: string): Promise<AuraResponse<{
396
527
  message: string;
397
528
  }>>;
529
+ /** MFA : régénère les codes de récupération après confirmation par un code TOTP. */
398
530
  regenerateRecoveryCodes(code: string): Promise<AuraResponse<{
399
531
  recovery_codes: string[];
400
532
  }>>;