@better-auth/passkey 1.5.7-beta.1 → 1.6.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.
@@ -0,0 +1,811 @@
1
+ import * as _simplewebauthn_server0 from "@simplewebauthn/server";
2
+ import { AuthenticationExtensionsClientInputs, AuthenticationResponseJSON, CredentialDeviceType, RegistrationResponseJSON, VerifiedAuthenticationResponse, VerifiedRegistrationResponse } from "@simplewebauthn/server";
3
+ import * as zod from "zod";
4
+ import * as better_auth0 from "better-auth";
5
+ import { GenericEndpointContext } from "@better-auth/core";
6
+ import { InferOptionSchema } from "better-auth/types";
7
+ import * as better_call0 from "better-call";
8
+ import * as zod_v4_core0 from "zod/v4/core";
9
+
10
+ //#region src/schema.d.ts
11
+ declare const schema: {
12
+ passkey: {
13
+ fields: {
14
+ name: {
15
+ type: "string";
16
+ required: false;
17
+ };
18
+ publicKey: {
19
+ type: "string";
20
+ required: true;
21
+ };
22
+ userId: {
23
+ type: "string";
24
+ references: {
25
+ model: string;
26
+ field: string;
27
+ };
28
+ required: true;
29
+ index: true;
30
+ };
31
+ credentialID: {
32
+ type: "string";
33
+ required: true;
34
+ index: true;
35
+ };
36
+ counter: {
37
+ type: "number";
38
+ required: true;
39
+ };
40
+ deviceType: {
41
+ type: "string";
42
+ required: true;
43
+ };
44
+ backedUp: {
45
+ type: "boolean";
46
+ required: true;
47
+ };
48
+ transports: {
49
+ type: "string";
50
+ required: false;
51
+ };
52
+ createdAt: {
53
+ type: "date";
54
+ required: false;
55
+ };
56
+ aaguid: {
57
+ type: "string";
58
+ required: false;
59
+ };
60
+ };
61
+ };
62
+ };
63
+ //#endregion
64
+ //#region src/types.d.ts
65
+ /**
66
+ * @internal
67
+ */
68
+ interface WebAuthnChallengeValue {
69
+ expectedChallenge: string;
70
+ userData: {
71
+ id: string;
72
+ name?: string | undefined;
73
+ displayName?: string | undefined;
74
+ };
75
+ context?: string | null;
76
+ }
77
+ type Awaitable<T> = T | Promise<T>;
78
+ interface PasskeyRegistrationUser {
79
+ id: string;
80
+ name: string;
81
+ displayName?: string | undefined;
82
+ }
83
+ type PasskeyExtensionsResolver = AuthenticationExtensionsClientInputs | ((args: {
84
+ ctx: GenericEndpointContext;
85
+ }) => Awaitable<AuthenticationExtensionsClientInputs | undefined>);
86
+ interface PasskeyRegistrationOptions {
87
+ /**
88
+ * Require an authenticated session for passkey registration.
89
+ *
90
+ * @default true
91
+ */
92
+ requireSession?: boolean | undefined;
93
+ /**
94
+ * Resolve the user when session is not available.
95
+ * Required when `requireSession` is false and no session exists.
96
+ */
97
+ resolveUser?: ((args: {
98
+ ctx: GenericEndpointContext;
99
+ context?: string | null | undefined;
100
+ }) => Awaitable<PasskeyRegistrationUser>) | undefined;
101
+ /**
102
+ * Callback after a successful registration verification.
103
+ * Useful for user linking or auditing.
104
+ */
105
+ afterVerification?: ((args: {
106
+ ctx: GenericEndpointContext;
107
+ verification: VerifiedRegistrationResponse;
108
+ user: PasskeyRegistrationUser;
109
+ clientData: RegistrationResponseJSON;
110
+ context?: string | null | undefined;
111
+ }) => Awaitable<{
112
+ userId?: string;
113
+ } | void>) | undefined;
114
+ /**
115
+ * Optional WebAuthn extensions to include in registration options.
116
+ */
117
+ extensions?: PasskeyExtensionsResolver | undefined;
118
+ }
119
+ interface PasskeyAuthenticationOptions {
120
+ /**
121
+ * Optional WebAuthn extensions to include in authentication options.
122
+ */
123
+ extensions?: PasskeyExtensionsResolver | undefined;
124
+ /**
125
+ * Callback after a successful authentication verification.
126
+ */
127
+ afterVerification?: ((args: {
128
+ ctx: GenericEndpointContext;
129
+ verification: VerifiedAuthenticationResponse;
130
+ clientData: AuthenticationResponseJSON;
131
+ }) => Awaitable<void>) | undefined;
132
+ }
133
+ interface PasskeyOptions {
134
+ /**
135
+ * A unique identifier for your website. 'localhost' is okay for
136
+ * local dev
137
+ *
138
+ * @default "localhost"
139
+ */
140
+ rpID?: string | undefined;
141
+ /**
142
+ * Human-readable title for your website
143
+ *
144
+ * @default "Better Auth"
145
+ */
146
+ rpName?: string | undefined;
147
+ /**
148
+ * The URL at which registrations and authentications should occur.
149
+ * `http://localhost` and `http://localhost:PORT` are also valid.
150
+ * Do NOT include any trailing /
151
+ *
152
+ * if this isn't provided. The client itself will
153
+ * pass this value.
154
+ */
155
+ origin?: (string | string[] | null) | undefined;
156
+ /**
157
+ * Allow customization of the authenticatorSelection options
158
+ * during passkey registration.
159
+ */
160
+ authenticatorSelection?: AuthenticatorSelectionCriteria | undefined;
161
+ /**
162
+ * Advanced options
163
+ */
164
+ advanced?: {
165
+ /**
166
+ * Cookie name for storing WebAuthn challenge ID during authentication flow
167
+ *
168
+ * @default "better-auth-passkey"
169
+ */
170
+ webAuthnChallengeCookie?: string;
171
+ } | undefined;
172
+ /**
173
+ * Schema for the passkey model
174
+ */
175
+ schema?: InferOptionSchema<typeof schema> | undefined;
176
+ /**
177
+ * Registration behavior overrides
178
+ */
179
+ registration?: PasskeyRegistrationOptions | undefined;
180
+ /**
181
+ * Authentication behavior overrides
182
+ */
183
+ authentication?: PasskeyAuthenticationOptions | undefined;
184
+ }
185
+ type Passkey = {
186
+ id: string;
187
+ name?: string | undefined;
188
+ publicKey: string;
189
+ userId: string;
190
+ credentialID: string;
191
+ counter: number;
192
+ deviceType: CredentialDeviceType;
193
+ backedUp: boolean;
194
+ transports?: string | undefined;
195
+ createdAt: Date;
196
+ aaguid?: string | undefined;
197
+ };
198
+ //#endregion
199
+ //#region src/error-codes.d.ts
200
+ declare const PASSKEY_ERROR_CODES: {
201
+ CHALLENGE_NOT_FOUND: better_auth0.RawError<"CHALLENGE_NOT_FOUND">;
202
+ YOU_ARE_NOT_ALLOWED_TO_REGISTER_THIS_PASSKEY: better_auth0.RawError<"YOU_ARE_NOT_ALLOWED_TO_REGISTER_THIS_PASSKEY">;
203
+ FAILED_TO_VERIFY_REGISTRATION: better_auth0.RawError<"FAILED_TO_VERIFY_REGISTRATION">;
204
+ PASSKEY_NOT_FOUND: better_auth0.RawError<"PASSKEY_NOT_FOUND">;
205
+ AUTHENTICATION_FAILED: better_auth0.RawError<"AUTHENTICATION_FAILED">;
206
+ UNABLE_TO_CREATE_SESSION: better_auth0.RawError<"UNABLE_TO_CREATE_SESSION">;
207
+ FAILED_TO_UPDATE_PASSKEY: better_auth0.RawError<"FAILED_TO_UPDATE_PASSKEY">;
208
+ PREVIOUSLY_REGISTERED: better_auth0.RawError<"PREVIOUSLY_REGISTERED">;
209
+ REGISTRATION_CANCELLED: better_auth0.RawError<"REGISTRATION_CANCELLED">;
210
+ AUTH_CANCELLED: better_auth0.RawError<"AUTH_CANCELLED">;
211
+ UNKNOWN_ERROR: better_auth0.RawError<"UNKNOWN_ERROR">;
212
+ SESSION_REQUIRED: better_auth0.RawError<"SESSION_REQUIRED">;
213
+ RESOLVE_USER_REQUIRED: better_auth0.RawError<"RESOLVE_USER_REQUIRED">;
214
+ RESOLVED_USER_INVALID: better_auth0.RawError<"RESOLVED_USER_INVALID">;
215
+ };
216
+ //#endregion
217
+ //#region src/index.d.ts
218
+ declare module "@better-auth/core" {
219
+ interface BetterAuthPluginRegistry<AuthOptions, Options> {
220
+ passkey: {
221
+ creator: typeof passkey;
222
+ };
223
+ }
224
+ }
225
+ declare const passkey: (options?: PasskeyOptions | undefined) => {
226
+ id: "passkey";
227
+ version: string;
228
+ endpoints: {
229
+ generatePasskeyRegistrationOptions: better_call0.StrictEndpoint<"/passkey/generate-register-options", {
230
+ method: "GET";
231
+ use: ((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
232
+ session: {
233
+ session: Record<string, any> & {
234
+ id: string;
235
+ createdAt: Date;
236
+ updatedAt: Date;
237
+ userId: string;
238
+ expiresAt: Date;
239
+ token: string;
240
+ ipAddress?: string | null | undefined;
241
+ userAgent?: string | null | undefined;
242
+ };
243
+ user: Record<string, any> & {
244
+ id: string;
245
+ createdAt: Date;
246
+ updatedAt: Date;
247
+ email: string;
248
+ emailVerified: boolean;
249
+ name: string;
250
+ image?: string | null | undefined;
251
+ };
252
+ };
253
+ }>)[] | undefined;
254
+ query: zod.ZodOptional<zod.ZodObject<{
255
+ authenticatorAttachment: zod.ZodOptional<zod.ZodEnum<{
256
+ platform: "platform";
257
+ "cross-platform": "cross-platform";
258
+ }>>;
259
+ name: zod.ZodOptional<zod.ZodString>;
260
+ context: zod.ZodOptional<zod.ZodString>;
261
+ }, zod_v4_core0.$strip>>;
262
+ metadata: {
263
+ openapi: {
264
+ operationId: string;
265
+ description: string;
266
+ responses: {
267
+ 200: {
268
+ description: string;
269
+ parameters: {
270
+ query: {
271
+ authenticatorAttachment: {
272
+ description: string;
273
+ required: boolean;
274
+ };
275
+ name: {
276
+ description: string;
277
+ required: boolean;
278
+ };
279
+ context: {
280
+ description: string;
281
+ required: boolean;
282
+ };
283
+ };
284
+ };
285
+ content: {
286
+ "application/json": {
287
+ schema: {
288
+ type: "object";
289
+ properties: {
290
+ challenge: {
291
+ type: string;
292
+ };
293
+ rp: {
294
+ type: string;
295
+ properties: {
296
+ name: {
297
+ type: string;
298
+ };
299
+ id: {
300
+ type: string;
301
+ };
302
+ };
303
+ };
304
+ user: {
305
+ type: string;
306
+ properties: {
307
+ id: {
308
+ type: string;
309
+ };
310
+ name: {
311
+ type: string;
312
+ };
313
+ displayName: {
314
+ type: string;
315
+ };
316
+ };
317
+ };
318
+ pubKeyCredParams: {
319
+ type: string;
320
+ items: {
321
+ type: string;
322
+ properties: {
323
+ type: {
324
+ type: string;
325
+ };
326
+ alg: {
327
+ type: string;
328
+ };
329
+ };
330
+ };
331
+ };
332
+ timeout: {
333
+ type: string;
334
+ };
335
+ excludeCredentials: {
336
+ type: string;
337
+ items: {
338
+ type: string;
339
+ properties: {
340
+ id: {
341
+ type: string;
342
+ };
343
+ type: {
344
+ type: string;
345
+ };
346
+ transports: {
347
+ type: string;
348
+ items: {
349
+ type: string;
350
+ };
351
+ };
352
+ };
353
+ };
354
+ };
355
+ authenticatorSelection: {
356
+ type: string;
357
+ properties: {
358
+ authenticatorAttachment: {
359
+ type: string;
360
+ };
361
+ requireResidentKey: {
362
+ type: string;
363
+ };
364
+ userVerification: {
365
+ type: string;
366
+ };
367
+ };
368
+ };
369
+ attestation: {
370
+ type: string;
371
+ };
372
+ extensions: {
373
+ type: string;
374
+ };
375
+ };
376
+ };
377
+ };
378
+ };
379
+ };
380
+ };
381
+ };
382
+ };
383
+ }, _simplewebauthn_server0.PublicKeyCredentialCreationOptionsJSON>;
384
+ generatePasskeyAuthenticationOptions: better_call0.StrictEndpoint<"/passkey/generate-authenticate-options", {
385
+ method: "GET";
386
+ metadata: {
387
+ openapi: {
388
+ operationId: string;
389
+ description: string;
390
+ responses: {
391
+ 200: {
392
+ description: string;
393
+ content: {
394
+ "application/json": {
395
+ schema: {
396
+ type: "object";
397
+ properties: {
398
+ challenge: {
399
+ type: string;
400
+ };
401
+ rp: {
402
+ type: string;
403
+ properties: {
404
+ name: {
405
+ type: string;
406
+ };
407
+ id: {
408
+ type: string;
409
+ };
410
+ };
411
+ };
412
+ user: {
413
+ type: string;
414
+ properties: {
415
+ id: {
416
+ type: string;
417
+ };
418
+ name: {
419
+ type: string;
420
+ };
421
+ displayName: {
422
+ type: string;
423
+ };
424
+ };
425
+ };
426
+ timeout: {
427
+ type: string;
428
+ };
429
+ allowCredentials: {
430
+ type: string;
431
+ items: {
432
+ type: string;
433
+ properties: {
434
+ id: {
435
+ type: string;
436
+ };
437
+ type: {
438
+ type: string;
439
+ };
440
+ transports: {
441
+ type: string;
442
+ items: {
443
+ type: string;
444
+ };
445
+ };
446
+ };
447
+ };
448
+ };
449
+ userVerification: {
450
+ type: string;
451
+ };
452
+ authenticatorSelection: {
453
+ type: string;
454
+ properties: {
455
+ authenticatorAttachment: {
456
+ type: string;
457
+ };
458
+ requireResidentKey: {
459
+ type: string;
460
+ };
461
+ userVerification: {
462
+ type: string;
463
+ };
464
+ };
465
+ };
466
+ extensions: {
467
+ type: string;
468
+ };
469
+ };
470
+ };
471
+ };
472
+ };
473
+ };
474
+ };
475
+ };
476
+ };
477
+ }, _simplewebauthn_server0.PublicKeyCredentialRequestOptionsJSON>;
478
+ verifyPasskeyRegistration: better_call0.StrictEndpoint<"/passkey/verify-registration", {
479
+ method: "POST";
480
+ body: zod.ZodObject<{
481
+ response: zod.ZodAny;
482
+ name: zod.ZodOptional<zod.ZodString>;
483
+ }, zod_v4_core0.$strip>;
484
+ use: ((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
485
+ session: {
486
+ session: Record<string, any> & {
487
+ id: string;
488
+ createdAt: Date;
489
+ updatedAt: Date;
490
+ userId: string;
491
+ expiresAt: Date;
492
+ token: string;
493
+ ipAddress?: string | null | undefined;
494
+ userAgent?: string | null | undefined;
495
+ };
496
+ user: Record<string, any> & {
497
+ id: string;
498
+ createdAt: Date;
499
+ updatedAt: Date;
500
+ email: string;
501
+ emailVerified: boolean;
502
+ name: string;
503
+ image?: string | null | undefined;
504
+ };
505
+ };
506
+ }>)[] | undefined;
507
+ metadata: {
508
+ openapi: {
509
+ operationId: string;
510
+ description: string;
511
+ responses: {
512
+ 200: {
513
+ description: string;
514
+ content: {
515
+ "application/json": {
516
+ schema: {
517
+ $ref: string;
518
+ };
519
+ };
520
+ };
521
+ };
522
+ 400: {
523
+ description: string;
524
+ };
525
+ };
526
+ };
527
+ };
528
+ }, Passkey>;
529
+ verifyPasskeyAuthentication: better_call0.StrictEndpoint<"/passkey/verify-authentication", {
530
+ method: "POST";
531
+ body: zod.ZodObject<{
532
+ response: zod.ZodRecord<zod.ZodAny, zod.ZodAny>;
533
+ }, zod_v4_core0.$strip>;
534
+ metadata: {
535
+ openapi: {
536
+ operationId: string;
537
+ description: string;
538
+ responses: {
539
+ 200: {
540
+ description: string;
541
+ content: {
542
+ "application/json": {
543
+ schema: {
544
+ type: "object";
545
+ properties: {
546
+ session: {
547
+ $ref: string;
548
+ };
549
+ user: {
550
+ $ref: string;
551
+ };
552
+ };
553
+ };
554
+ };
555
+ };
556
+ };
557
+ };
558
+ };
559
+ $Infer: {
560
+ body: {
561
+ response: _simplewebauthn_server0.AuthenticationResponseJSON;
562
+ };
563
+ };
564
+ };
565
+ }, {
566
+ session: {
567
+ id: string;
568
+ createdAt: Date;
569
+ updatedAt: Date;
570
+ userId: string;
571
+ expiresAt: Date;
572
+ token: string;
573
+ ipAddress?: string | null | undefined;
574
+ userAgent?: string | null | undefined;
575
+ };
576
+ }>;
577
+ listPasskeys: better_call0.StrictEndpoint<"/passkey/list-user-passkeys", {
578
+ method: "GET";
579
+ use: ((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
580
+ session: {
581
+ session: Record<string, any> & {
582
+ id: string;
583
+ createdAt: Date;
584
+ updatedAt: Date;
585
+ userId: string;
586
+ expiresAt: Date;
587
+ token: string;
588
+ ipAddress?: string | null | undefined;
589
+ userAgent?: string | null | undefined;
590
+ };
591
+ user: Record<string, any> & {
592
+ id: string;
593
+ createdAt: Date;
594
+ updatedAt: Date;
595
+ email: string;
596
+ emailVerified: boolean;
597
+ name: string;
598
+ image?: string | null | undefined;
599
+ };
600
+ };
601
+ }>)[];
602
+ metadata: {
603
+ openapi: {
604
+ description: string;
605
+ responses: {
606
+ "200": {
607
+ description: string;
608
+ content: {
609
+ "application/json": {
610
+ schema: {
611
+ type: "array";
612
+ items: {
613
+ $ref: string;
614
+ required: string[];
615
+ };
616
+ description: string;
617
+ };
618
+ };
619
+ };
620
+ };
621
+ };
622
+ };
623
+ };
624
+ }, Passkey[]>;
625
+ deletePasskey: better_call0.StrictEndpoint<"/passkey/delete-passkey", {
626
+ method: "POST";
627
+ body: zod.ZodObject<{
628
+ id: zod.ZodString;
629
+ }, zod_v4_core0.$strip>;
630
+ use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
631
+ session: {
632
+ session: Record<string, any> & {
633
+ id: string;
634
+ createdAt: Date;
635
+ updatedAt: Date;
636
+ userId: string;
637
+ expiresAt: Date;
638
+ token: string;
639
+ ipAddress?: string | null | undefined;
640
+ userAgent?: string | null | undefined;
641
+ };
642
+ user: Record<string, any> & {
643
+ id: string;
644
+ createdAt: Date;
645
+ updatedAt: Date;
646
+ email: string;
647
+ emailVerified: boolean;
648
+ name: string;
649
+ image?: string | null | undefined;
650
+ };
651
+ };
652
+ }>) | ((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
653
+ verifiedResource: {};
654
+ }>))[];
655
+ metadata: {
656
+ openapi: {
657
+ description: string;
658
+ responses: {
659
+ "200": {
660
+ description: string;
661
+ content: {
662
+ "application/json": {
663
+ schema: {
664
+ type: "object";
665
+ properties: {
666
+ status: {
667
+ type: string;
668
+ description: string;
669
+ };
670
+ };
671
+ required: string[];
672
+ };
673
+ };
674
+ };
675
+ };
676
+ };
677
+ };
678
+ };
679
+ }, {
680
+ status: boolean;
681
+ }>;
682
+ updatePasskey: better_call0.StrictEndpoint<"/passkey/update-passkey", {
683
+ method: "POST";
684
+ body: zod.ZodObject<{
685
+ id: zod.ZodString;
686
+ name: zod.ZodString;
687
+ }, zod_v4_core0.$strip>;
688
+ use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
689
+ session: {
690
+ session: Record<string, any> & {
691
+ id: string;
692
+ createdAt: Date;
693
+ updatedAt: Date;
694
+ userId: string;
695
+ expiresAt: Date;
696
+ token: string;
697
+ ipAddress?: string | null | undefined;
698
+ userAgent?: string | null | undefined;
699
+ };
700
+ user: Record<string, any> & {
701
+ id: string;
702
+ createdAt: Date;
703
+ updatedAt: Date;
704
+ email: string;
705
+ emailVerified: boolean;
706
+ name: string;
707
+ image?: string | null | undefined;
708
+ };
709
+ };
710
+ }>) | ((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
711
+ verifiedResource: {};
712
+ }>))[];
713
+ metadata: {
714
+ openapi: {
715
+ description: string;
716
+ responses: {
717
+ "200": {
718
+ description: string;
719
+ content: {
720
+ "application/json": {
721
+ schema: {
722
+ type: "object";
723
+ properties: {
724
+ passkey: {
725
+ $ref: string;
726
+ };
727
+ };
728
+ required: string[];
729
+ };
730
+ };
731
+ };
732
+ };
733
+ };
734
+ };
735
+ };
736
+ }, {
737
+ passkey: Passkey;
738
+ }>;
739
+ };
740
+ schema: {
741
+ passkey: {
742
+ fields: {
743
+ name: {
744
+ type: "string";
745
+ required: false;
746
+ };
747
+ publicKey: {
748
+ type: "string";
749
+ required: true;
750
+ };
751
+ userId: {
752
+ type: "string";
753
+ references: {
754
+ model: string;
755
+ field: string;
756
+ };
757
+ required: true;
758
+ index: true;
759
+ };
760
+ credentialID: {
761
+ type: "string";
762
+ required: true;
763
+ index: true;
764
+ };
765
+ counter: {
766
+ type: "number";
767
+ required: true;
768
+ };
769
+ deviceType: {
770
+ type: "string";
771
+ required: true;
772
+ };
773
+ backedUp: {
774
+ type: "boolean";
775
+ required: true;
776
+ };
777
+ transports: {
778
+ type: "string";
779
+ required: false;
780
+ };
781
+ createdAt: {
782
+ type: "date";
783
+ required: false;
784
+ };
785
+ aaguid: {
786
+ type: "string";
787
+ required: false;
788
+ };
789
+ };
790
+ };
791
+ };
792
+ $ERROR_CODES: {
793
+ CHALLENGE_NOT_FOUND: better_auth0.RawError<"CHALLENGE_NOT_FOUND">;
794
+ YOU_ARE_NOT_ALLOWED_TO_REGISTER_THIS_PASSKEY: better_auth0.RawError<"YOU_ARE_NOT_ALLOWED_TO_REGISTER_THIS_PASSKEY">;
795
+ FAILED_TO_VERIFY_REGISTRATION: better_auth0.RawError<"FAILED_TO_VERIFY_REGISTRATION">;
796
+ PASSKEY_NOT_FOUND: better_auth0.RawError<"PASSKEY_NOT_FOUND">;
797
+ AUTHENTICATION_FAILED: better_auth0.RawError<"AUTHENTICATION_FAILED">;
798
+ UNABLE_TO_CREATE_SESSION: better_auth0.RawError<"UNABLE_TO_CREATE_SESSION">;
799
+ FAILED_TO_UPDATE_PASSKEY: better_auth0.RawError<"FAILED_TO_UPDATE_PASSKEY">;
800
+ PREVIOUSLY_REGISTERED: better_auth0.RawError<"PREVIOUSLY_REGISTERED">;
801
+ REGISTRATION_CANCELLED: better_auth0.RawError<"REGISTRATION_CANCELLED">;
802
+ AUTH_CANCELLED: better_auth0.RawError<"AUTH_CANCELLED">;
803
+ UNKNOWN_ERROR: better_auth0.RawError<"UNKNOWN_ERROR">;
804
+ SESSION_REQUIRED: better_auth0.RawError<"SESSION_REQUIRED">;
805
+ RESOLVE_USER_REQUIRED: better_auth0.RawError<"RESOLVE_USER_REQUIRED">;
806
+ RESOLVED_USER_INVALID: better_auth0.RawError<"RESOLVED_USER_INVALID">;
807
+ };
808
+ options: PasskeyOptions | undefined;
809
+ };
810
+ //#endregion
811
+ export { PasskeyExtensionsResolver as a, PasskeyRegistrationUser as c, PasskeyAuthenticationOptions as i, WebAuthnChallengeValue as l, PASSKEY_ERROR_CODES as n, PasskeyOptions as o, Passkey as r, PasskeyRegistrationOptions as s, passkey as t };