@lenne.tech/nuxt-extensions 1.15.1 → 1.17.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.
@@ -6,6 +6,34 @@
6
6
  *
7
7
  * SECURITY: Passwords are hashed with SHA256 client-side to prevent
8
8
  * plain text password transmission over the network.
9
+ *
10
+ * ---
11
+ *
12
+ * A HASHING WRAPPER REPLACES ONE FIELD — IT IS NEVER A WHITELIST.
13
+ *
14
+ * This is the invariant every wrapper below shares, and it has been broken twice, so it
15
+ * lives here rather than beside one method that a refactor could delete.
16
+ *
17
+ * Each wrapper exists to substitute ONE field with its SHA256 digest. It must forward
18
+ * everything else the caller passed, untouched:
19
+ *
20
+ * { ...params, password: hashedPassword } // correct
21
+ * { password: hashedPassword } // WRONG — drops every other option
22
+ * { password: hashedPassword, ...params } // WRONG — puts the PLAINTEXT back
23
+ *
24
+ * The first mistake is silent data loss: `changePassword` dropped `revokeOtherSessions`,
25
+ * so callers who set it after a suspected compromise got a successful password change and
26
+ * every other session left open. `twoFactor.enable` dropped `method` and `issuer`, so
27
+ * `method: 'otp'` quietly enabled TOTP instead.
28
+ *
29
+ * The second is worse and looks almost identical: `params` still carries the raw value, so
30
+ * a trailing spread overwrites the digest and the plaintext password goes on the wire.
31
+ * Trailing-spread is the more common JS idiom, which is exactly why this warning is here.
32
+ *
33
+ * Both are pinned by tests: `test/auth-client-hashing.test.ts` asserts the real request
34
+ * payload (it catches both mistakes), `test/auth-client-param-forwarding.test.ts` keeps the
35
+ * source-level half so a whitelist rebuild is visible in review. If you add a wrapper that
36
+ * hashes something, add it to both.
9
37
  */
10
38
  import type { LtAuthClientConfig } from '../types/index.js';
11
39
  /**
@@ -185,6 +213,26 @@ export declare function createLtAuthClient(config?: LtAuthClientConfig): {
185
213
  }>;
186
214
  };
187
215
  passkey: any;
216
+ /**
217
+ * Better-Auth admin plugin, passed through UNWRAPPED — and therefore UNHASHED.
218
+ *
219
+ * `admin.createUser` (`password`) and `admin.setUserPassword` (`newPassword`) carry
220
+ * credentials that every other method in this file hashes. These two do not.
221
+ *
222
+ * Why that is deliberate rather than an oversight: `@lenne.tech/nest-server` does not
223
+ * register better-auth's `admin()` plugin and offers no option to — the two routes do
224
+ * not exist server-side, so a call 404s today. Hashing here would build a client
225
+ * expectation the server does not answer, and if the plugin were later enabled without
226
+ * normalising those routes, this wrapper would CREATE the credential-store desync it
227
+ * was meant to prevent.
228
+ *
229
+ * What that costs, stated plainly: `auth.enableAdmin` defaults to `true`, so the admin
230
+ * CLIENT plugin is registered in every consuming project. The trap is armed and waiting
231
+ * for a server that answers. Enabling `admin()` server-side is therefore a LOCKSTEP
232
+ * change — the routes join nest-server's password-normalisation table and these two
233
+ * methods get `ltSha256` wrappers here, in one release. Half of it produces accounts
234
+ * whose password nobody can log in with, and nothing warns.
235
+ */
188
236
  admin: any;
189
237
  $Infer: {
190
238
  Session: {
@@ -281,6 +329,99 @@ export declare function createLtAuthClient(config?: LtAuthClientConfig): {
281
329
  listen: (signal: Omit<string, "$sessionSignal"> | "$sessionSignal", listener: (value: boolean, oldValue?: boolean | undefined) => void) => void;
282
330
  atoms: Record<string, import("better-auth/client").WritableAtom<any>>;
283
331
  };
332
+ /**
333
+ * Read the current session (`GET /get-session`).
334
+ *
335
+ * Carries no credential, so it is a bare passthrough.
336
+ */
337
+ getSession: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
338
+ disableCookieCache?: unknown;
339
+ disableRefresh?: unknown;
340
+ }> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<{
341
+ query?: {
342
+ disableCookieCache?: unknown;
343
+ disableRefresh?: unknown;
344
+ } | undefined;
345
+ fetchOptions?: FetchOptions | undefined;
346
+ }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
347
+ user: import("better-auth").StripEmptyObjects<{
348
+ id: string;
349
+ createdAt: Date;
350
+ updatedAt: Date;
351
+ email: string;
352
+ emailVerified: boolean;
353
+ name: string;
354
+ image?: string | null | undefined;
355
+ }>;
356
+ session: import("better-auth").StripEmptyObjects<{
357
+ id: string;
358
+ createdAt: Date;
359
+ updatedAt: Date;
360
+ userId: string;
361
+ expiresAt: Date;
362
+ token: string;
363
+ ipAddress?: string | null | undefined;
364
+ userAgent?: string | null | undefined;
365
+ }>;
366
+ } | null, {
367
+ code?: string | undefined;
368
+ message?: string | undefined;
369
+ }, FetchOptions["throw"] extends true ? true : false>>;
370
+ /**
371
+ * Send (or re-send) an email-verification mail (`POST /send-verification-email`).
372
+ *
373
+ * A BARE passthrough, and it must stay one. `callbackURL` is the value Better Auth
374
+ * puts into the mail, and it MUST reach the server exactly as the caller wrote it:
375
+ * Better Auth resolves a relative value against the API origin, so `/auth/verify-email`
376
+ * lands on `api.<host>/auth/verify-email`, where the route does not exist. The mail
377
+ * still goes out, and the user follows a link to a 404 — the same silent failure
378
+ * `redirectTo` produces on the reset path.
379
+ *
380
+ * So do not normalise it here, do not supply a default, and do not resolve it against
381
+ * the client's `baseURL`. A library that quietly repairs the value hides the mistake
382
+ * until the next caller makes it somewhere we cannot see. Fixing it belongs to the
383
+ * caller (the lt starters use `appUrl()`, which throws rather than return something
384
+ * relative).
385
+ */
386
+ sendVerificationEmail: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
387
+ email: string;
388
+ callbackURL?: string | undefined;
389
+ }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
390
+ email: string;
391
+ callbackURL?: string | undefined;
392
+ } & {
393
+ fetchOptions?: FetchOptions | undefined;
394
+ }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
395
+ status: boolean;
396
+ }, {
397
+ code?: string | undefined;
398
+ message?: string | undefined;
399
+ }, FetchOptions["throw"] extends true ? true : false>>;
400
+ /**
401
+ * Verify an email address from a token (`POST /verify-email`).
402
+ *
403
+ * Carries no credential, so it is a bare passthrough. Note what the endpoint does with
404
+ * the query, because it decides the shape of the answer: WITH a `callbackURL` it
405
+ * answers `302` to that URL (carrying neither token nor status), WITHOUT one it answers
406
+ * `{ status: true }` as JSON. Callers that want the result rather than a redirect must
407
+ * therefore omit `callbackURL` here — which is not the same parameter as the one
408
+ * `sendVerificationEmail` puts into the mail, and confusing the two is easy.
409
+ */
410
+ verifyEmail: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
411
+ token: string;
412
+ callbackURL?: string | undefined;
413
+ }> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
414
+ query: {
415
+ token: string;
416
+ callbackURL?: string | undefined;
417
+ };
418
+ fetchOptions?: FetchOptions | undefined;
419
+ }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<NonNullable<void | {
420
+ status: boolean;
421
+ }>, {
422
+ code?: string | undefined;
423
+ message?: string | undefined;
424
+ }, FetchOptions["throw"] extends true ? true : false>>;
284
425
  requestPasswordReset: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
285
426
  email: string;
286
427
  redirectTo?: string | undefined;
@@ -297,12 +438,15 @@ export declare function createLtAuthClient(config?: LtAuthClientConfig): {
297
438
  message?: string | undefined;
298
439
  }, FetchOptions["throw"] extends true ? true : false>>;
299
440
  /**
300
- * Change password for an authenticated user (both passwords are hashed)
441
+ * Change password for an authenticated user (both passwords are hashed).
442
+ *
443
+ * `revokeOtherSessions` is the option that made the whitelist bug matter — see the
444
+ * file header.
301
445
  */
302
- changePassword: (params: {
446
+ changePassword: <T extends {
303
447
  currentPassword: string;
304
448
  newPassword: string;
305
- }, options?: any) => Promise<(Omit<{
449
+ }>(params: T, options?: any) => Promise<(Omit<{
306
450
  token: string | null;
307
451
  user: {
308
452
  id: string;
@@ -373,12 +517,15 @@ export declare function createLtAuthClient(config?: LtAuthClientConfig): {
373
517
  };
374
518
  }>;
375
519
  /**
376
- * Reset password with token (new password is hashed before sending)
520
+ * Reset password with token (new password is hashed before sending).
521
+ *
522
+ * Spread first, then overwrite the one field this wrapper exists for — see the file
523
+ * header for why the order is not a style question.
377
524
  */
378
- resetPassword: (params: {
525
+ resetPassword: <T extends {
379
526
  newPassword: string;
380
527
  token: string;
381
- }, options?: any) => Promise<{
528
+ }>(params: T, options?: any) => Promise<{
382
529
  status: boolean;
383
530
  } | {
384
531
  data: {
@@ -398,11 +545,11 @@ export declare function createLtAuthClient(config?: LtAuthClientConfig): {
398
545
  /**
399
546
  * Sign in with email and password (password is hashed before sending)
400
547
  */
401
- email: (params: {
548
+ email: <T extends {
402
549
  email: string;
403
550
  password: string;
404
551
  rememberMe?: boolean;
405
- }, options?: any) => Promise<(Omit<{
552
+ }>(params: T, options?: any) => Promise<(Omit<{
406
553
  redirect: boolean;
407
554
  token: string;
408
555
  url?: string | undefined;
@@ -573,11 +720,11 @@ export declare function createLtAuthClient(config?: LtAuthClientConfig): {
573
720
  /**
574
721
  * Sign up with email and password (password is hashed before sending)
575
722
  */
576
- email: (params: {
723
+ email: <T extends {
577
724
  email: string;
578
725
  name: string;
579
726
  password: string;
580
- } & Record<string, unknown>, options?: any) => Promise<(Omit<{
727
+ }>(params: T, options?: any) => Promise<(Omit<{
581
728
  token: null;
582
729
  user: {
583
730
  id: string;
@@ -675,569 +822,5 @@ export declare function createLtAuthClient(config?: LtAuthClientConfig): {
675
822
  }>;
676
823
  };
677
824
  twoFactor: any;
678
- verifyEmail: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
679
- token: string;
680
- callbackURL?: string | undefined;
681
- }> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
682
- query: {
683
- token: string;
684
- callbackURL?: string | undefined;
685
- };
686
- fetchOptions?: FetchOptions | undefined;
687
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<NonNullable<void | {
688
- status: boolean;
689
- }>, {
690
- code?: string | undefined;
691
- message?: string | undefined;
692
- }, FetchOptions["throw"] extends true ? true : false>>;
693
- sendVerificationEmail: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
694
- email: string;
695
- callbackURL?: string | undefined;
696
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
697
- email: string;
698
- callbackURL?: string | undefined;
699
- } & {
700
- fetchOptions?: FetchOptions | undefined;
701
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
702
- status: boolean;
703
- }, {
704
- code?: string | undefined;
705
- message?: string | undefined;
706
- }, FetchOptions["throw"] extends true ? true : false>>;
707
- changeEmail: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
708
- newEmail: string;
709
- callbackURL?: string | undefined;
710
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
711
- newEmail: string;
712
- callbackURL?: string | undefined;
713
- } & {
714
- fetchOptions?: FetchOptions | undefined;
715
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
716
- status: boolean;
717
- }, {
718
- code?: string | undefined;
719
- message?: string | undefined;
720
- }, FetchOptions["throw"] extends true ? true : false>>;
721
- updateSession: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<Partial<{}>> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<import("better-auth/client").InferSessionUpdateCtx<{
722
- basePath: string;
723
- baseURL: any;
724
- fetchOptions: {
725
- customFetchImpl: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
726
- };
727
- plugins: any[];
728
- }, FetchOptions>> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
729
- session: {
730
- id: string;
731
- createdAt: Date;
732
- updatedAt: Date;
733
- userId: string;
734
- expiresAt: Date;
735
- token: string;
736
- ipAddress?: string | null | undefined;
737
- userAgent?: string | null | undefined;
738
- };
739
- }, {
740
- code?: string | undefined;
741
- message?: string | undefined;
742
- }, FetchOptions["throw"] extends true ? true : false>>;
743
- updateUser: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<Partial<{}> & {
744
- name?: string | undefined;
745
- image?: string | undefined | null;
746
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<import("better-auth/client").InferUserUpdateCtx<{
747
- basePath: string;
748
- baseURL: any;
749
- fetchOptions: {
750
- customFetchImpl: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
751
- };
752
- plugins: any[];
753
- }, FetchOptions>> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
754
- status: boolean;
755
- }, {
756
- code?: string | undefined;
757
- message?: string | undefined;
758
- }, FetchOptions["throw"] extends true ? true : false>>;
759
- deleteUser: (<FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
760
- callbackURL?: string | undefined;
761
- password?: string | undefined;
762
- token?: string | undefined;
763
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<{
764
- callbackURL?: string | undefined;
765
- password?: string | undefined;
766
- token?: string | undefined;
767
- } & {
768
- fetchOptions?: FetchOptions | undefined;
769
- }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
770
- success: boolean;
771
- message: string;
772
- }, {
773
- code?: string | undefined;
774
- message?: string | undefined;
775
- }, FetchOptions["throw"] extends true ? true : false>>) & {
776
- callback: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
777
- token: string;
778
- callbackURL?: string | undefined;
779
- }> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
780
- query: {
781
- token: string;
782
- callbackURL?: string | undefined;
783
- };
784
- fetchOptions?: FetchOptions | undefined;
785
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
786
- success: boolean;
787
- message: string;
788
- }, {
789
- code?: string | undefined;
790
- message?: string | undefined;
791
- }, FetchOptions["throw"] extends true ? true : false>>;
792
- };
793
- listSessions: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<{
794
- query?: Record<string, any> | undefined;
795
- fetchOptions?: FetchOptions | undefined;
796
- }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<import("better-auth").Prettify<{
797
- id: string;
798
- createdAt: Date;
799
- updatedAt: Date;
800
- userId: string;
801
- expiresAt: Date;
802
- token: string;
803
- ipAddress?: string | null | undefined | undefined;
804
- userAgent?: string | null | undefined | undefined;
805
- }>[], {
806
- code?: string | undefined;
807
- message?: string | undefined;
808
- }, FetchOptions["throw"] extends true ? true : false>>;
809
- revokeSession: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
810
- token: string;
811
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
812
- token: string;
813
- } & {
814
- fetchOptions?: FetchOptions | undefined;
815
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
816
- status: boolean;
817
- }, {
818
- code?: string | undefined;
819
- message?: string | undefined;
820
- }, FetchOptions["throw"] extends true ? true : false>>;
821
- revokeSessions: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<{
822
- query?: Record<string, any> | undefined;
823
- fetchOptions?: FetchOptions | undefined;
824
- }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
825
- status: boolean;
826
- }, {
827
- code?: string | undefined;
828
- message?: string | undefined;
829
- }, FetchOptions["throw"] extends true ? true : false>>;
830
- revokeOtherSessions: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<{
831
- query?: Record<string, any> | undefined;
832
- fetchOptions?: FetchOptions | undefined;
833
- }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
834
- status: boolean;
835
- }, {
836
- code?: string | undefined;
837
- message?: string | undefined;
838
- }, FetchOptions["throw"] extends true ? true : false>>;
839
- linkSocial: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
840
- provider: unknown;
841
- callbackURL?: string | undefined;
842
- idToken?: {
843
- token: string;
844
- nonce?: string | undefined;
845
- accessToken?: string | undefined;
846
- refreshToken?: string | undefined;
847
- } | undefined;
848
- requestSignUp?: boolean | undefined;
849
- scopes?: string[] | undefined;
850
- errorCallbackURL?: string | undefined;
851
- disableRedirect?: boolean | undefined;
852
- loginHint?: string | undefined;
853
- additionalParams?: Record<string, string> | undefined;
854
- additionalData?: Record<string, any> | undefined;
855
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
856
- provider: unknown;
857
- callbackURL?: string | undefined;
858
- idToken?: {
859
- token: string;
860
- nonce?: string | undefined;
861
- accessToken?: string | undefined;
862
- refreshToken?: string | undefined;
863
- } | undefined;
864
- requestSignUp?: boolean | undefined;
865
- scopes?: string[] | undefined;
866
- errorCallbackURL?: string | undefined;
867
- disableRedirect?: boolean | undefined;
868
- loginHint?: string | undefined;
869
- additionalParams?: Record<string, string> | undefined;
870
- additionalData?: Record<string, any> | undefined;
871
- } & {
872
- fetchOptions?: FetchOptions | undefined;
873
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
874
- url: string;
875
- redirect: boolean;
876
- }, {
877
- code?: string | undefined;
878
- message?: string | undefined;
879
- }, FetchOptions["throw"] extends true ? true : false>>;
880
- listAccounts: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<{
881
- query?: Record<string, any> | undefined;
882
- fetchOptions?: FetchOptions | undefined;
883
- }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
884
- scopes: string[];
885
- id: string;
886
- createdAt: Date;
887
- updatedAt: Date;
888
- userId: string;
889
- providerId: string;
890
- issuer: string;
891
- accountId: string;
892
- }[], {
893
- code?: string | undefined;
894
- message?: string | undefined;
895
- }, FetchOptions["throw"] extends true ? true : false>>;
896
- unlinkAccount: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
897
- accountId: string;
898
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
899
- accountId: string;
900
- } & {
901
- fetchOptions?: FetchOptions | undefined;
902
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
903
- status: boolean;
904
- }, {
905
- code?: string | undefined;
906
- message?: string | undefined;
907
- }, FetchOptions["throw"] extends true ? true : false>>;
908
- refreshToken: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
909
- accountId: string;
910
- userId?: string | undefined;
911
- } | {
912
- useAccountCookie: true;
913
- userId?: string | undefined;
914
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
915
- accountId: string;
916
- userId?: string | undefined;
917
- } & {
918
- fetchOptions?: FetchOptions | undefined;
919
- }> | import("better-auth").Prettify<{
920
- useAccountCookie: true;
921
- userId?: string | undefined;
922
- } & {
923
- fetchOptions?: FetchOptions | undefined;
924
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
925
- accessToken: string | undefined;
926
- refreshToken: string;
927
- accessTokenExpiresAt: Date | undefined;
928
- refreshTokenExpiresAt: Date | null | undefined;
929
- scope: string | null | undefined;
930
- idToken: string | null | undefined;
931
- providerId: string;
932
- accountId: string;
933
- }, {
934
- code?: string | undefined;
935
- message?: string | undefined;
936
- }, FetchOptions["throw"] extends true ? true : false>>;
937
- getAccessToken: <FetchOptions extends import("better-auth").ClientFetchOption<Partial<{
938
- accountId: string;
939
- userId?: string | undefined;
940
- } | {
941
- useAccountCookie: true;
942
- userId?: string | undefined;
943
- }> & Record<string, any>, Partial<Record<string, any>> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
944
- accountId: string;
945
- userId?: string | undefined;
946
- } & {
947
- fetchOptions?: FetchOptions | undefined;
948
- }> | import("better-auth").Prettify<{
949
- useAccountCookie: true;
950
- userId?: string | undefined;
951
- } & {
952
- fetchOptions?: FetchOptions | undefined;
953
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
954
- accessToken: string;
955
- accessTokenExpiresAt: Date | undefined;
956
- scopes: string[];
957
- idToken: string | undefined;
958
- }, {
959
- code?: string | undefined;
960
- message?: string | undefined;
961
- }, FetchOptions["throw"] extends true ? true : false>>;
962
- accountInfo: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
963
- accountId: string;
964
- userId?: string | undefined;
965
- } | {
966
- useAccountCookie: true;
967
- userId?: string | undefined;
968
- }> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0: import("better-auth").Prettify<{
969
- query: {
970
- accountId: string;
971
- userId?: string | undefined;
972
- } | {
973
- useAccountCookie: true;
974
- userId?: string | undefined;
975
- };
976
- fetchOptions?: FetchOptions | undefined;
977
- }>, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
978
- account: {
979
- id: string;
980
- providerId: string;
981
- issuer: string;
982
- accountId: string;
983
- };
984
- user: import("better-auth").OAuth2UserInfo;
985
- data: object;
986
- }, {
987
- code?: string | undefined;
988
- message?: string | undefined;
989
- }, FetchOptions["throw"] extends true ? true : false>>;
990
- getSession: <FetchOptions extends import("better-auth").ClientFetchOption<never, Partial<{
991
- disableCookieCache?: unknown;
992
- disableRefresh?: unknown;
993
- }> & Record<string, any>, Record<string, string | undefined> | undefined>>(data_0?: import("better-auth").Prettify<{
994
- query?: {
995
- disableCookieCache?: unknown;
996
- disableRefresh?: unknown;
997
- } | undefined;
998
- fetchOptions?: FetchOptions | undefined;
999
- }> | undefined, data_1?: FetchOptions | undefined) => Promise<import("better-auth/client").BetterFetchResponse<{
1000
- user: import("better-auth").StripEmptyObjects<{
1001
- id: string;
1002
- createdAt: Date;
1003
- updatedAt: Date;
1004
- email: string;
1005
- emailVerified: boolean;
1006
- name: string;
1007
- image?: string | null | undefined;
1008
- }>;
1009
- session: import("better-auth").StripEmptyObjects<{
1010
- id: string;
1011
- createdAt: Date;
1012
- updatedAt: Date;
1013
- userId: string;
1014
- expiresAt: Date;
1015
- token: string;
1016
- ipAddress?: string | null | undefined;
1017
- userAgent?: string | null | undefined;
1018
- }>;
1019
- } | null, {
1020
- code?: string | undefined;
1021
- message?: string | undefined;
1022
- }, FetchOptions["throw"] extends true ? true : false>>;
1023
- hydrateSession: (session: {
1024
- user: import("better-auth").StripEmptyObjects<{
1025
- id: string;
1026
- createdAt: Date;
1027
- updatedAt: Date;
1028
- email: string;
1029
- emailVerified: boolean;
1030
- name: string;
1031
- image?: string | null | undefined;
1032
- }>;
1033
- session: import("better-auth").StripEmptyObjects<{
1034
- id: string;
1035
- createdAt: Date;
1036
- updatedAt: Date;
1037
- userId: string;
1038
- expiresAt: Date;
1039
- token: string;
1040
- ipAddress?: string | null | undefined;
1041
- userAgent?: string | null | undefined;
1042
- }>;
1043
- } | null) => void;
1044
- $ERROR_CODES: {
1045
- USER_NOT_FOUND: {
1046
- readonly code: "USER_NOT_FOUND";
1047
- message: string;
1048
- };
1049
- FAILED_TO_CREATE_USER: {
1050
- readonly code: "FAILED_TO_CREATE_USER";
1051
- message: string;
1052
- };
1053
- FAILED_TO_CREATE_SESSION: {
1054
- readonly code: "FAILED_TO_CREATE_SESSION";
1055
- message: string;
1056
- };
1057
- FAILED_TO_UPDATE_USER: {
1058
- readonly code: "FAILED_TO_UPDATE_USER";
1059
- message: string;
1060
- };
1061
- FAILED_TO_GET_SESSION: {
1062
- readonly code: "FAILED_TO_GET_SESSION";
1063
- message: string;
1064
- };
1065
- INVALID_PASSWORD: {
1066
- readonly code: "INVALID_PASSWORD";
1067
- message: string;
1068
- };
1069
- INVALID_EMAIL: {
1070
- readonly code: "INVALID_EMAIL";
1071
- message: string;
1072
- };
1073
- INVALID_EMAIL_OR_PASSWORD: {
1074
- readonly code: "INVALID_EMAIL_OR_PASSWORD";
1075
- message: string;
1076
- };
1077
- INVALID_USER: {
1078
- readonly code: "INVALID_USER";
1079
- message: string;
1080
- };
1081
- SOCIAL_ACCOUNT_ALREADY_LINKED: {
1082
- readonly code: "SOCIAL_ACCOUNT_ALREADY_LINKED";
1083
- message: string;
1084
- };
1085
- PROVIDER_NOT_FOUND: {
1086
- readonly code: "PROVIDER_NOT_FOUND";
1087
- message: string;
1088
- };
1089
- INVALID_TOKEN: {
1090
- readonly code: "INVALID_TOKEN";
1091
- message: string;
1092
- };
1093
- TOKEN_EXPIRED: {
1094
- readonly code: "TOKEN_EXPIRED";
1095
- message: string;
1096
- };
1097
- ID_TOKEN_NOT_SUPPORTED: {
1098
- readonly code: "ID_TOKEN_NOT_SUPPORTED";
1099
- message: string;
1100
- };
1101
- FAILED_TO_GET_USER_INFO: {
1102
- readonly code: "FAILED_TO_GET_USER_INFO";
1103
- message: string;
1104
- };
1105
- USER_EMAIL_NOT_FOUND: {
1106
- readonly code: "USER_EMAIL_NOT_FOUND";
1107
- message: string;
1108
- };
1109
- EMAIL_NOT_VERIFIED: {
1110
- readonly code: "EMAIL_NOT_VERIFIED";
1111
- message: string;
1112
- };
1113
- PASSWORD_TOO_SHORT: {
1114
- readonly code: "PASSWORD_TOO_SHORT";
1115
- message: string;
1116
- };
1117
- PASSWORD_TOO_LONG: {
1118
- readonly code: "PASSWORD_TOO_LONG";
1119
- message: string;
1120
- };
1121
- USER_ALREADY_EXISTS: {
1122
- readonly code: "USER_ALREADY_EXISTS";
1123
- message: string;
1124
- };
1125
- USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL: {
1126
- readonly code: "USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL";
1127
- message: string;
1128
- };
1129
- EMAIL_CAN_NOT_BE_UPDATED: {
1130
- readonly code: "EMAIL_CAN_NOT_BE_UPDATED";
1131
- message: string;
1132
- };
1133
- CHANGE_EMAIL_DISABLED: {
1134
- readonly code: "CHANGE_EMAIL_DISABLED";
1135
- message: string;
1136
- };
1137
- CREDENTIAL_ACCOUNT_NOT_FOUND: {
1138
- readonly code: "CREDENTIAL_ACCOUNT_NOT_FOUND";
1139
- message: string;
1140
- };
1141
- ACCOUNT_NOT_FOUND: {
1142
- readonly code: "ACCOUNT_NOT_FOUND";
1143
- message: string;
1144
- };
1145
- SESSION_EXPIRED: {
1146
- readonly code: "SESSION_EXPIRED";
1147
- message: string;
1148
- };
1149
- FAILED_TO_UNLINK_LAST_ACCOUNT: {
1150
- readonly code: "FAILED_TO_UNLINK_LAST_ACCOUNT";
1151
- message: string;
1152
- };
1153
- USER_ALREADY_HAS_PASSWORD: {
1154
- readonly code: "USER_ALREADY_HAS_PASSWORD";
1155
- message: string;
1156
- };
1157
- CROSS_SITE_NAVIGATION_LOGIN_BLOCKED: {
1158
- readonly code: "CROSS_SITE_NAVIGATION_LOGIN_BLOCKED";
1159
- message: string;
1160
- };
1161
- VERIFICATION_EMAIL_NOT_ENABLED: {
1162
- readonly code: "VERIFICATION_EMAIL_NOT_ENABLED";
1163
- message: string;
1164
- };
1165
- EMAIL_ALREADY_VERIFIED: {
1166
- readonly code: "EMAIL_ALREADY_VERIFIED";
1167
- message: string;
1168
- };
1169
- EMAIL_MISMATCH: {
1170
- readonly code: "EMAIL_MISMATCH";
1171
- message: string;
1172
- };
1173
- SESSION_NOT_FRESH: {
1174
- readonly code: "SESSION_NOT_FRESH";
1175
- message: string;
1176
- };
1177
- LINKED_ACCOUNT_ALREADY_EXISTS: {
1178
- readonly code: "LINKED_ACCOUNT_ALREADY_EXISTS";
1179
- message: string;
1180
- };
1181
- INVALID_ORIGIN: {
1182
- readonly code: "INVALID_ORIGIN";
1183
- message: string;
1184
- };
1185
- INVALID_CALLBACK_URL: {
1186
- readonly code: "INVALID_CALLBACK_URL";
1187
- message: string;
1188
- };
1189
- INVALID_REDIRECT_URL: {
1190
- readonly code: "INVALID_REDIRECT_URL";
1191
- message: string;
1192
- };
1193
- INVALID_ERROR_CALLBACK_URL: {
1194
- readonly code: "INVALID_ERROR_CALLBACK_URL";
1195
- message: string;
1196
- };
1197
- INVALID_NEW_USER_CALLBACK_URL: {
1198
- readonly code: "INVALID_NEW_USER_CALLBACK_URL";
1199
- message: string;
1200
- };
1201
- MISSING_OR_NULL_ORIGIN: {
1202
- readonly code: "MISSING_OR_NULL_ORIGIN";
1203
- message: string;
1204
- };
1205
- CALLBACK_URL_REQUIRED: {
1206
- readonly code: "CALLBACK_URL_REQUIRED";
1207
- message: string;
1208
- };
1209
- FAILED_TO_CREATE_VERIFICATION: {
1210
- readonly code: "FAILED_TO_CREATE_VERIFICATION";
1211
- message: string;
1212
- };
1213
- FIELD_NOT_ALLOWED: {
1214
- readonly code: "FIELD_NOT_ALLOWED";
1215
- message: string;
1216
- };
1217
- ASYNC_VALIDATION_NOT_SUPPORTED: {
1218
- readonly code: "ASYNC_VALIDATION_NOT_SUPPORTED";
1219
- message: string;
1220
- };
1221
- VALIDATION_ERROR: {
1222
- readonly code: "VALIDATION_ERROR";
1223
- message: string;
1224
- };
1225
- MISSING_FIELD: {
1226
- readonly code: "MISSING_FIELD";
1227
- message: string;
1228
- };
1229
- METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED: {
1230
- readonly code: "METHOD_NOT_ALLOWED_DEFER_SESSION_REQUIRED";
1231
- message: string;
1232
- };
1233
- BODY_MUST_BE_AN_OBJECT: {
1234
- readonly code: "BODY_MUST_BE_AN_OBJECT";
1235
- message: string;
1236
- };
1237
- PASSWORD_ALREADY_SET: {
1238
- readonly code: "PASSWORD_ALREADY_SET";
1239
- message: string;
1240
- };
1241
- };
1242
825
  };
1243
826
  export type LtAuthClient = ReturnType<typeof createLtAuthClient>;