@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.
- package/dist/cjs/.tsbuildinfo +1 -1
- package/dist/cjs/accountEmail.js +21 -25
- package/dist/cjs/deviceBoot.js +2 -2
- package/dist/cjs/deviceSession.js +73 -16
- package/dist/cjs/externalIdentity.js +9 -3
- package/dist/cjs/identity.js +1 -3
- package/dist/cjs/identityLink.js +22 -19
- package/dist/cjs/identityProof.js +2 -2
- package/dist/cjs/index.js +59 -28
- package/dist/cjs/reputation.js +10 -55
- package/dist/cjs/signIn.js +304 -0
- package/dist/esm/.tsbuildinfo +1 -1
- package/dist/esm/accountEmail.js +21 -25
- package/dist/esm/deviceBoot.js +2 -2
- package/dist/esm/deviceSession.js +72 -15
- package/dist/esm/externalIdentity.js +8 -2
- package/dist/esm/identity.js +1 -3
- package/dist/esm/identityLink.js +21 -18
- package/dist/esm/identityProof.js +2 -2
- package/dist/esm/index.js +11 -11
- package/dist/esm/reputation.js +9 -54
- package/dist/esm/signIn.js +299 -0
- package/dist/types/.tsbuildinfo +1 -1
- package/dist/types/accountEmail.d.ts +20 -28
- package/dist/types/accountGraph.d.ts +4 -4
- package/dist/types/deviceBoot.d.ts +2 -2
- package/dist/types/deviceSession.d.ts +127 -15
- package/dist/types/externalIdentity.d.ts +53 -46
- package/dist/types/identity.d.ts +4 -8
- package/dist/types/identityLink.d.ts +54 -118
- package/dist/types/identityProof.d.ts +3 -3
- package/dist/types/index.d.ts +8 -8
- package/dist/types/inference/entitlement.d.ts +2 -2
- package/dist/types/oauth.d.ts +16 -16
- package/dist/types/reputation.d.ts +32 -127
- package/dist/types/signIn.d.ts +717 -0
- package/dist/types/userResponse.d.ts +2 -2
- package/package.json +1 -1
- package/dist/cjs/webauthn.js +0 -114
- package/dist/esm/webauthn.js +0 -111
- 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": "
|
|
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",
|
package/dist/cjs/webauthn.js
DELETED
|
@@ -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
|
-
});
|
package/dist/esm/webauthn.js
DELETED
|
@@ -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
|
-
});
|
package/dist/types/webauthn.d.ts
DELETED
|
@@ -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>;
|