@oxy.so/contracts 2.2.0 → 4.0.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.
Files changed (41) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/accountEmail.js +21 -25
  3. package/dist/cjs/deviceBoot.js +2 -2
  4. package/dist/cjs/deviceSession.js +73 -16
  5. package/dist/cjs/externalIdentity.js +9 -3
  6. package/dist/cjs/identity.js +1 -3
  7. package/dist/cjs/identityLink.js +22 -19
  8. package/dist/cjs/identityProof.js +2 -2
  9. package/dist/cjs/index.js +59 -28
  10. package/dist/cjs/reputation.js +10 -55
  11. package/dist/cjs/signIn.js +304 -0
  12. package/dist/esm/.tsbuildinfo +1 -1
  13. package/dist/esm/accountEmail.js +21 -25
  14. package/dist/esm/deviceBoot.js +2 -2
  15. package/dist/esm/deviceSession.js +72 -15
  16. package/dist/esm/externalIdentity.js +8 -2
  17. package/dist/esm/identity.js +1 -3
  18. package/dist/esm/identityLink.js +21 -18
  19. package/dist/esm/identityProof.js +2 -2
  20. package/dist/esm/index.js +11 -11
  21. package/dist/esm/reputation.js +9 -54
  22. package/dist/esm/signIn.js +299 -0
  23. package/dist/types/.tsbuildinfo +1 -1
  24. package/dist/types/accountEmail.d.ts +20 -28
  25. package/dist/types/accountGraph.d.ts +4 -4
  26. package/dist/types/deviceBoot.d.ts +2 -2
  27. package/dist/types/deviceSession.d.ts +127 -15
  28. package/dist/types/externalIdentity.d.ts +53 -46
  29. package/dist/types/identity.d.ts +4 -8
  30. package/dist/types/identityLink.d.ts +54 -118
  31. package/dist/types/identityProof.d.ts +3 -3
  32. package/dist/types/index.d.ts +8 -8
  33. package/dist/types/inference/entitlement.d.ts +2 -2
  34. package/dist/types/oauth.d.ts +16 -16
  35. package/dist/types/reputation.d.ts +32 -127
  36. package/dist/types/signIn.d.ts +717 -0
  37. package/dist/types/userResponse.d.ts +2 -2
  38. package/package.json +1 -1
  39. package/dist/cjs/webauthn.js +0 -114
  40. package/dist/esm/webauthn.js +0 -111
  41. package/dist/types/webauthn.d.ts +0 -173
@@ -970,8 +970,8 @@ export declare const currentUserResponseSchema: z.ZodObject<{
970
970
  data: {
971
971
  name: UserNameResponse;
972
972
  email?: string | undefined;
973
- username?: string | undefined;
974
973
  kind?: "bot" | "personal" | "organization" | "project" | "channel" | undefined;
974
+ username?: string | undefined;
975
975
  avatar?: string | null | undefined;
976
976
  color?: string | null | undefined;
977
977
  accountCategories?: ("security" | "news" | "politics" | "business" | "startup" | "finance" | "crypto" | "marketplace" | "retail" | "real_estate" | "agency" | "landlord" | "cooperative" | "architecture" | "technology" | "software" | "ai" | "automation" | "science" | "education" | "books" | "health" | "fitness" | "sports" | "gaming" | "music" | "film" | "podcast" | "art" | "photography" | "comedy" | "food" | "travel" | "fashion" | "home_garden" | "diy" | "automotive" | "animals" | "family" | "nonprofit" | "government" | "community" | "activism" | "environment" | "religion" | "other")[] | undefined;
@@ -996,8 +996,8 @@ export declare const currentUserResponseSchema: z.ZodObject<{
996
996
  data: {
997
997
  name: UserNameResponse;
998
998
  email?: string | undefined;
999
- username?: string | undefined;
1000
999
  kind?: "bot" | "personal" | "organization" | "project" | "channel" | undefined;
1000
+ username?: string | undefined;
1001
1001
  avatar?: string | null | undefined;
1002
1002
  color?: string | null | undefined;
1003
1003
  accountCategories?: ("security" | "news" | "politics" | "business" | "startup" | "finance" | "crypto" | "marketplace" | "retail" | "real_estate" | "agency" | "landlord" | "cooperative" | "architecture" | "technology" | "software" | "ai" | "automation" | "science" | "education" | "books" | "health" | "fitness" | "sports" | "gaming" | "music" | "film" | "podcast" | "art" | "photography" | "comedy" | "food" | "travel" | "fashion" | "home_garden" | "diy" | "automotive" | "animals" | "family" | "nonprofit" | "government" | "community" | "activism" | "environment" | "religion" | "other")[] | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxy.so/contracts",
3
- "version": "2.2.0",
3
+ "version": "4.0.0",
4
4
  "description": "OxyHQ API contracts — single source of truth for request/response Zod schemas and inferred types, shared by the backend and the client SDKs",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -1,114 +0,0 @@
1
- "use strict";
2
- /**
3
- * WebAuthn / passkey ceremony contracts (Fase B/b1).
4
- *
5
- * These schemas describe ONLY the outer Oxy envelope that wraps a WebAuthn
6
- * ceremony request — the username the client is registering/authenticating as,
7
- * plus non-authoritative device metadata. The browser
8
- * `RegistrationResponseJSON` / `AuthenticationResponseJSON` payloads are NOT
9
- * mirrored here: they are validated by `@simplewebauthn/server` inside the route
10
- * (`verifyRegistrationResponse` / `verifyAuthenticationResponse`), which is the
11
- * single source of truth for their structure. Re-encoding them in Zod would just
12
- * create a second, drift-prone definition of a shape we do not own.
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.webauthnLoginVerifyRequestSchema = exports.webauthnRegisterVerifyRequestSchema = exports.webauthnLoginOptionsRequestSchema = exports.webauthnRegisterOptionsRequestSchema = exports.webauthnAssertionResponseSchema = exports.webauthnCredentialIdSchema = void 0;
16
- const zod_1 = require("zod");
17
- const accountEmail_1 = require("./accountEmail");
18
- /** A WebAuthn credential id, base64url as the browser reports it. */
19
- exports.webauthnCredentialIdSchema = zod_1.z
20
- .string()
21
- .trim()
22
- .min(16)
23
- .max(1024)
24
- .regex(/^[A-Za-z0-9_-]+$/, 'credentialId must be base64url');
25
- /**
26
- * A WebAuthn assertion by one of the account's EXISTING passkeys over a server
27
- * challenge — the fresh use of the factor the account already has (linking
28
- * Commons to a passkey account, deleting a passkey account). The API verifies
29
- * it with `@simplewebauthn/server`; this only bounds its shape.
30
- */
31
- exports.webauthnAssertionResponseSchema = zod_1.z
32
- .object({
33
- id: exports.webauthnCredentialIdSchema,
34
- rawId: zod_1.z.string().min(1).max(2048),
35
- type: zod_1.z.literal('public-key'),
36
- response: zod_1.z
37
- .object({
38
- clientDataJSON: zod_1.z.string().min(1).max(8192),
39
- authenticatorData: zod_1.z.string().min(1).max(8192),
40
- signature: zod_1.z.string().min(1).max(2048),
41
- userHandle: zod_1.z.string().max(2048).optional(),
42
- })
43
- .passthrough(),
44
- clientExtensionResults: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
45
- authenticatorAttachment: zod_1.z.string().optional(),
46
- })
47
- .passthrough();
48
- /**
49
- * Device-session options shared by every first-party sign-in body
50
- * (`deviceName`/`deviceFingerprint`). Mirrors what
51
- * `sessionCreateOptionsFromBody` reads in the API so a WebAuthn login/verify can
52
- * name its resulting session exactly like `/auth/login` or `/auth/verify`.
53
- *
54
- * There is deliberately no `deviceId` here. `createSession` treats an explicit
55
- * device id as authoritative — `deviceId > stableDeviceKey > UA/IP > random` —
56
- * and stamps it verbatim, so on an UNAUTHENTICATED sign-in body it is a caller
57
- * naming somebody else's device and having a session, and then a device secret,
58
- * minted against it. The legitimate callers that pin a device id are
59
- * server-side and already authorized (the account-switch route threading the
60
- * operator's own central device id); they pass it to `createSession` directly
61
- * and never through a request body.
62
- */
63
- const deviceSessionEnvelope = {
64
- deviceName: zod_1.z.string().trim().min(1).max(120).optional(),
65
- deviceFingerprint: zod_1.z.string().trim().min(1).max(256).optional(),
66
- };
67
- /**
68
- * `POST /webauthn/register/options` — request registration options. Three flows:
69
- *
70
- * - a bearer: the caller adds a passkey to their signed-in account;
71
- * - `recoveryTicket` (no bearer): a new passkey for the account a recovery code
72
- * was confirmed for (`POST /auth/email/verify/confirm`, purpose `recovery`);
73
- * - `username` (no bearer): a prospective sign-up; the handle is not created yet.
74
- */
75
- exports.webauthnRegisterOptionsRequestSchema = zod_1.z.object({
76
- username: zod_1.z.string().trim().min(1).max(60).optional(),
77
- recoveryTicket: accountEmail_1.emailTicketSchema.optional(),
78
- });
79
- /**
80
- * `POST /webauthn/login/options` — request authentication options. When
81
- * `username` is present the server scopes `allowCredentials` to that user's
82
- * passkeys (username-first); when omitted it returns an empty allow-list for the
83
- * usernameless / discoverable-credential flow (the default).
84
- */
85
- exports.webauthnLoginOptionsRequestSchema = zod_1.z.object({
86
- username: zod_1.z.string().trim().min(1).max(60).optional(),
87
- });
88
- /**
89
- * `POST /webauthn/register/verify` — the outer envelope. The browser
90
- * `RegistrationResponseJSON` travels alongside these fields under `response` and
91
- * is validated by `@simplewebauthn/server`, not here.
92
- *
93
- * - Sign-up (no bearer, ADR 0029 D3): `username`, the recovery `email` and the
94
- * `emailTicket` its code was confirmed with. The account is created with the
95
- * passkey and that verified email, and no key.
96
- * - Recovery (no bearer): `recoveryTicket`; the passkey is added to its account
97
- * and a session minted.
98
- * - A bearer: the passkey is added to the signed-in account.
99
- */
100
- exports.webauthnRegisterVerifyRequestSchema = zod_1.z.object({
101
- username: zod_1.z.string().trim().min(1).max(60).optional(),
102
- email: accountEmail_1.emailAddressSchema.optional(),
103
- emailTicket: accountEmail_1.emailTicketSchema.optional(),
104
- recoveryTicket: accountEmail_1.emailTicketSchema.optional(),
105
- ...deviceSessionEnvelope,
106
- });
107
- /**
108
- * `POST /webauthn/login/verify` — the outer envelope. The browser
109
- * `AuthenticationResponseJSON` travels alongside these fields under `response`
110
- * and is validated by `@simplewebauthn/server`, not here.
111
- */
112
- exports.webauthnLoginVerifyRequestSchema = zod_1.z.object({
113
- ...deviceSessionEnvelope,
114
- });
@@ -1,111 +0,0 @@
1
- /**
2
- * WebAuthn / passkey ceremony contracts (Fase B/b1).
3
- *
4
- * These schemas describe ONLY the outer Oxy envelope that wraps a WebAuthn
5
- * ceremony request — the username the client is registering/authenticating as,
6
- * plus non-authoritative device metadata. The browser
7
- * `RegistrationResponseJSON` / `AuthenticationResponseJSON` payloads are NOT
8
- * mirrored here: they are validated by `@simplewebauthn/server` inside the route
9
- * (`verifyRegistrationResponse` / `verifyAuthenticationResponse`), which is the
10
- * single source of truth for their structure. Re-encoding them in Zod would just
11
- * create a second, drift-prone definition of a shape we do not own.
12
- */
13
- import { z } from 'zod';
14
- import { emailAddressSchema, emailTicketSchema } from './accountEmail.js';
15
- /** A WebAuthn credential id, base64url as the browser reports it. */
16
- export const webauthnCredentialIdSchema = z
17
- .string()
18
- .trim()
19
- .min(16)
20
- .max(1024)
21
- .regex(/^[A-Za-z0-9_-]+$/, 'credentialId must be base64url');
22
- /**
23
- * A WebAuthn assertion by one of the account's EXISTING passkeys over a server
24
- * challenge — the fresh use of the factor the account already has (linking
25
- * Commons to a passkey account, deleting a passkey account). The API verifies
26
- * it with `@simplewebauthn/server`; this only bounds its shape.
27
- */
28
- export const webauthnAssertionResponseSchema = z
29
- .object({
30
- id: webauthnCredentialIdSchema,
31
- rawId: z.string().min(1).max(2048),
32
- type: z.literal('public-key'),
33
- response: z
34
- .object({
35
- clientDataJSON: z.string().min(1).max(8192),
36
- authenticatorData: z.string().min(1).max(8192),
37
- signature: z.string().min(1).max(2048),
38
- userHandle: z.string().max(2048).optional(),
39
- })
40
- .passthrough(),
41
- clientExtensionResults: z.record(z.string(), z.unknown()).optional(),
42
- authenticatorAttachment: z.string().optional(),
43
- })
44
- .passthrough();
45
- /**
46
- * Device-session options shared by every first-party sign-in body
47
- * (`deviceName`/`deviceFingerprint`). Mirrors what
48
- * `sessionCreateOptionsFromBody` reads in the API so a WebAuthn login/verify can
49
- * name its resulting session exactly like `/auth/login` or `/auth/verify`.
50
- *
51
- * There is deliberately no `deviceId` here. `createSession` treats an explicit
52
- * device id as authoritative — `deviceId > stableDeviceKey > UA/IP > random` —
53
- * and stamps it verbatim, so on an UNAUTHENTICATED sign-in body it is a caller
54
- * naming somebody else's device and having a session, and then a device secret,
55
- * minted against it. The legitimate callers that pin a device id are
56
- * server-side and already authorized (the account-switch route threading the
57
- * operator's own central device id); they pass it to `createSession` directly
58
- * and never through a request body.
59
- */
60
- const deviceSessionEnvelope = {
61
- deviceName: z.string().trim().min(1).max(120).optional(),
62
- deviceFingerprint: z.string().trim().min(1).max(256).optional(),
63
- };
64
- /**
65
- * `POST /webauthn/register/options` — request registration options. Three flows:
66
- *
67
- * - a bearer: the caller adds a passkey to their signed-in account;
68
- * - `recoveryTicket` (no bearer): a new passkey for the account a recovery code
69
- * was confirmed for (`POST /auth/email/verify/confirm`, purpose `recovery`);
70
- * - `username` (no bearer): a prospective sign-up; the handle is not created yet.
71
- */
72
- export const webauthnRegisterOptionsRequestSchema = z.object({
73
- username: z.string().trim().min(1).max(60).optional(),
74
- recoveryTicket: emailTicketSchema.optional(),
75
- });
76
- /**
77
- * `POST /webauthn/login/options` — request authentication options. When
78
- * `username` is present the server scopes `allowCredentials` to that user's
79
- * passkeys (username-first); when omitted it returns an empty allow-list for the
80
- * usernameless / discoverable-credential flow (the default).
81
- */
82
- export const webauthnLoginOptionsRequestSchema = z.object({
83
- username: z.string().trim().min(1).max(60).optional(),
84
- });
85
- /**
86
- * `POST /webauthn/register/verify` — the outer envelope. The browser
87
- * `RegistrationResponseJSON` travels alongside these fields under `response` and
88
- * is validated by `@simplewebauthn/server`, not here.
89
- *
90
- * - Sign-up (no bearer, ADR 0029 D3): `username`, the recovery `email` and the
91
- * `emailTicket` its code was confirmed with. The account is created with the
92
- * passkey and that verified email, and no key.
93
- * - Recovery (no bearer): `recoveryTicket`; the passkey is added to its account
94
- * and a session minted.
95
- * - A bearer: the passkey is added to the signed-in account.
96
- */
97
- export const webauthnRegisterVerifyRequestSchema = z.object({
98
- username: z.string().trim().min(1).max(60).optional(),
99
- email: emailAddressSchema.optional(),
100
- emailTicket: emailTicketSchema.optional(),
101
- recoveryTicket: emailTicketSchema.optional(),
102
- ...deviceSessionEnvelope,
103
- });
104
- /**
105
- * `POST /webauthn/login/verify` — the outer envelope. The browser
106
- * `AuthenticationResponseJSON` travels alongside these fields under `response`
107
- * and is validated by `@simplewebauthn/server`, not here.
108
- */
109
- export const webauthnLoginVerifyRequestSchema = z.object({
110
- ...deviceSessionEnvelope,
111
- });
@@ -1,173 +0,0 @@
1
- /**
2
- * WebAuthn / passkey ceremony contracts (Fase B/b1).
3
- *
4
- * These schemas describe ONLY the outer Oxy envelope that wraps a WebAuthn
5
- * ceremony request — the username the client is registering/authenticating as,
6
- * plus non-authoritative device metadata. The browser
7
- * `RegistrationResponseJSON` / `AuthenticationResponseJSON` payloads are NOT
8
- * mirrored here: they are validated by `@simplewebauthn/server` inside the route
9
- * (`verifyRegistrationResponse` / `verifyAuthenticationResponse`), which is the
10
- * single source of truth for their structure. Re-encoding them in Zod would just
11
- * create a second, drift-prone definition of a shape we do not own.
12
- */
13
- import { z } from 'zod';
14
- /** A WebAuthn credential id, base64url as the browser reports it. */
15
- export declare const webauthnCredentialIdSchema: z.ZodString;
16
- /**
17
- * A WebAuthn assertion by one of the account's EXISTING passkeys over a server
18
- * challenge — the fresh use of the factor the account already has (linking
19
- * Commons to a passkey account, deleting a passkey account). The API verifies
20
- * it with `@simplewebauthn/server`; this only bounds its shape.
21
- */
22
- export declare const webauthnAssertionResponseSchema: z.ZodObject<{
23
- id: z.ZodString;
24
- rawId: z.ZodString;
25
- type: z.ZodLiteral<"public-key">;
26
- response: z.ZodObject<{
27
- clientDataJSON: z.ZodString;
28
- authenticatorData: z.ZodString;
29
- signature: z.ZodString;
30
- userHandle: z.ZodOptional<z.ZodString>;
31
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
32
- clientDataJSON: z.ZodString;
33
- authenticatorData: z.ZodString;
34
- signature: z.ZodString;
35
- userHandle: z.ZodOptional<z.ZodString>;
36
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
37
- clientDataJSON: z.ZodString;
38
- authenticatorData: z.ZodString;
39
- signature: z.ZodString;
40
- userHandle: z.ZodOptional<z.ZodString>;
41
- }, z.ZodTypeAny, "passthrough">>;
42
- clientExtensionResults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
43
- authenticatorAttachment: z.ZodOptional<z.ZodString>;
44
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
45
- id: z.ZodString;
46
- rawId: z.ZodString;
47
- type: z.ZodLiteral<"public-key">;
48
- response: z.ZodObject<{
49
- clientDataJSON: z.ZodString;
50
- authenticatorData: z.ZodString;
51
- signature: z.ZodString;
52
- userHandle: z.ZodOptional<z.ZodString>;
53
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
54
- clientDataJSON: z.ZodString;
55
- authenticatorData: z.ZodString;
56
- signature: z.ZodString;
57
- userHandle: z.ZodOptional<z.ZodString>;
58
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
59
- clientDataJSON: z.ZodString;
60
- authenticatorData: z.ZodString;
61
- signature: z.ZodString;
62
- userHandle: z.ZodOptional<z.ZodString>;
63
- }, z.ZodTypeAny, "passthrough">>;
64
- clientExtensionResults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
65
- authenticatorAttachment: z.ZodOptional<z.ZodString>;
66
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
67
- id: z.ZodString;
68
- rawId: z.ZodString;
69
- type: z.ZodLiteral<"public-key">;
70
- response: z.ZodObject<{
71
- clientDataJSON: z.ZodString;
72
- authenticatorData: z.ZodString;
73
- signature: z.ZodString;
74
- userHandle: z.ZodOptional<z.ZodString>;
75
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
76
- clientDataJSON: z.ZodString;
77
- authenticatorData: z.ZodString;
78
- signature: z.ZodString;
79
- userHandle: z.ZodOptional<z.ZodString>;
80
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
81
- clientDataJSON: z.ZodString;
82
- authenticatorData: z.ZodString;
83
- signature: z.ZodString;
84
- userHandle: z.ZodOptional<z.ZodString>;
85
- }, z.ZodTypeAny, "passthrough">>;
86
- clientExtensionResults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
87
- authenticatorAttachment: z.ZodOptional<z.ZodString>;
88
- }, z.ZodTypeAny, "passthrough">>;
89
- export type WebauthnAssertionResponse = z.infer<typeof webauthnAssertionResponseSchema>;
90
- /**
91
- * `POST /webauthn/register/options` — request registration options. Three flows:
92
- *
93
- * - a bearer: the caller adds a passkey to their signed-in account;
94
- * - `recoveryTicket` (no bearer): a new passkey for the account a recovery code
95
- * was confirmed for (`POST /auth/email/verify/confirm`, purpose `recovery`);
96
- * - `username` (no bearer): a prospective sign-up; the handle is not created yet.
97
- */
98
- export declare const webauthnRegisterOptionsRequestSchema: z.ZodObject<{
99
- username: z.ZodOptional<z.ZodString>;
100
- recoveryTicket: z.ZodOptional<z.ZodString>;
101
- }, "strip", z.ZodTypeAny, {
102
- username?: string | undefined;
103
- recoveryTicket?: string | undefined;
104
- }, {
105
- username?: string | undefined;
106
- recoveryTicket?: string | undefined;
107
- }>;
108
- export type WebauthnRegisterOptionsRequest = z.infer<typeof webauthnRegisterOptionsRequestSchema>;
109
- /**
110
- * `POST /webauthn/login/options` — request authentication options. When
111
- * `username` is present the server scopes `allowCredentials` to that user's
112
- * passkeys (username-first); when omitted it returns an empty allow-list for the
113
- * usernameless / discoverable-credential flow (the default).
114
- */
115
- export declare const webauthnLoginOptionsRequestSchema: z.ZodObject<{
116
- username: z.ZodOptional<z.ZodString>;
117
- }, "strip", z.ZodTypeAny, {
118
- username?: string | undefined;
119
- }, {
120
- username?: string | undefined;
121
- }>;
122
- export type WebauthnLoginOptionsRequest = z.infer<typeof webauthnLoginOptionsRequestSchema>;
123
- /**
124
- * `POST /webauthn/register/verify` — the outer envelope. The browser
125
- * `RegistrationResponseJSON` travels alongside these fields under `response` and
126
- * is validated by `@simplewebauthn/server`, not here.
127
- *
128
- * - Sign-up (no bearer, ADR 0029 D3): `username`, the recovery `email` and the
129
- * `emailTicket` its code was confirmed with. The account is created with the
130
- * passkey and that verified email, and no key.
131
- * - Recovery (no bearer): `recoveryTicket`; the passkey is added to its account
132
- * and a session minted.
133
- * - A bearer: the passkey is added to the signed-in account.
134
- */
135
- export declare const webauthnRegisterVerifyRequestSchema: z.ZodObject<{
136
- deviceName: z.ZodOptional<z.ZodString>;
137
- deviceFingerprint: z.ZodOptional<z.ZodString>;
138
- username: z.ZodOptional<z.ZodString>;
139
- email: z.ZodOptional<z.ZodString>;
140
- emailTicket: z.ZodOptional<z.ZodString>;
141
- recoveryTicket: z.ZodOptional<z.ZodString>;
142
- }, "strip", z.ZodTypeAny, {
143
- email?: string | undefined;
144
- username?: string | undefined;
145
- recoveryTicket?: string | undefined;
146
- emailTicket?: string | undefined;
147
- deviceName?: string | undefined;
148
- deviceFingerprint?: string | undefined;
149
- }, {
150
- email?: string | undefined;
151
- username?: string | undefined;
152
- recoveryTicket?: string | undefined;
153
- emailTicket?: string | undefined;
154
- deviceName?: string | undefined;
155
- deviceFingerprint?: string | undefined;
156
- }>;
157
- export type WebauthnRegisterVerifyRequest = z.infer<typeof webauthnRegisterVerifyRequestSchema>;
158
- /**
159
- * `POST /webauthn/login/verify` — the outer envelope. The browser
160
- * `AuthenticationResponseJSON` travels alongside these fields under `response`
161
- * and is validated by `@simplewebauthn/server`, not here.
162
- */
163
- export declare const webauthnLoginVerifyRequestSchema: z.ZodObject<{
164
- deviceName: z.ZodOptional<z.ZodString>;
165
- deviceFingerprint: z.ZodOptional<z.ZodString>;
166
- }, "strip", z.ZodTypeAny, {
167
- deviceName?: string | undefined;
168
- deviceFingerprint?: string | undefined;
169
- }, {
170
- deviceName?: string | undefined;
171
- deviceFingerprint?: string | undefined;
172
- }>;
173
- export type WebauthnLoginVerifyRequest = z.infer<typeof webauthnLoginVerifyRequestSchema>;