@atlasauth/js 0.41.0 → 0.42.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/account-security.d.ts +156 -0
- package/dist/account-security.js +149 -0
- package/dist/account-security.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/passkey-sign-in.d.ts +5 -0
- package/dist/passkey-sign-in.js +1 -1
- package/dist/passkey-sign-in.js.map +1 -1
- package/dist/sign-in-flow.d.ts +5 -1
- package/dist/sign-in-flow.js +30 -13
- package/dist/sign-in-flow.js.map +1 -1
- package/dist/step-up-flow.d.ts +59 -0
- package/dist/step-up-flow.js +83 -0
- package/dist/step-up-flow.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { FieldError } from './attempt';
|
|
8
8
|
import type { FapiClient } from './fapi';
|
|
9
|
+
import { type StepUpRequirement } from './step-up';
|
|
9
10
|
export type PasswordChangeResult = {
|
|
10
11
|
ok: true;
|
|
11
12
|
userId: string;
|
|
@@ -81,3 +82,158 @@ export type RevokeAllTrustedDevicesResult = {
|
|
|
81
82
|
};
|
|
82
83
|
/** Forget every device this user trusted: each must pass two-factor again on its next sign-in. `count` is how many were forgotten. */
|
|
83
84
|
export declare function revokeAllTrustedDevices(client: FapiClient): Promise<RevokeAllTrustedDevicesResult>;
|
|
85
|
+
/**
|
|
86
|
+
* A refused security-page call. `stepUpRequired` is true when the server answered `STEP_UP_REQUIRED` (the session
|
|
87
|
+
* must prove a credential again first); `stepUp` says which factors it accepts. Re-authenticate with `stepUp()`
|
|
88
|
+
* (or `retryWithStepUp`) and call again.
|
|
89
|
+
*/
|
|
90
|
+
export interface SecurityFailure {
|
|
91
|
+
ok: false;
|
|
92
|
+
errors: FieldError[];
|
|
93
|
+
status: number;
|
|
94
|
+
stepUpRequired: boolean;
|
|
95
|
+
stepUp?: StepUpRequirement;
|
|
96
|
+
}
|
|
97
|
+
/** One of the user's sessions (a signed-in device). */
|
|
98
|
+
export interface AccountSession {
|
|
99
|
+
id: string;
|
|
100
|
+
status: string;
|
|
101
|
+
/** The session making this call. Cookie and session-token (bearer) callers both get it marked. */
|
|
102
|
+
current: boolean;
|
|
103
|
+
lastActiveAt: number;
|
|
104
|
+
expiresAt: number;
|
|
105
|
+
createdAt: number;
|
|
106
|
+
ipAddress: string | null;
|
|
107
|
+
deviceLabel: string | null;
|
|
108
|
+
browser: string | null;
|
|
109
|
+
os: string | null;
|
|
110
|
+
deviceType: string | null;
|
|
111
|
+
location: string | null;
|
|
112
|
+
}
|
|
113
|
+
export type AccountSessionsResult = {
|
|
114
|
+
ok: true;
|
|
115
|
+
sessions: AccountSession[];
|
|
116
|
+
} | SecurityFailure;
|
|
117
|
+
/** The signed-in user's sessions, newest activity first as the server orders them. */
|
|
118
|
+
export declare function listSessions(client: FapiClient): Promise<AccountSessionsResult>;
|
|
119
|
+
export type RevokeSessionResult = {
|
|
120
|
+
ok: true;
|
|
121
|
+
} | SecurityFailure;
|
|
122
|
+
/** Sign one session out. Revoking the current session signs this device out too. */
|
|
123
|
+
export declare function revokeAccountSession(client: FapiClient, id: string): Promise<RevokeSessionResult>;
|
|
124
|
+
export type RevokeOtherSessionsResult = {
|
|
125
|
+
ok: true;
|
|
126
|
+
count: number;
|
|
127
|
+
} | SecurityFailure;
|
|
128
|
+
/** Sign every OTHER session out; this one stays. `count` is how many ended. */
|
|
129
|
+
export declare function revokeAllSessions(client: FapiClient): Promise<RevokeOtherSessionsResult>;
|
|
130
|
+
/** A second factor on the account. `phone` is masked; the secret is never returned after enrolment. */
|
|
131
|
+
export interface MfaFactorSummary {
|
|
132
|
+
id: string;
|
|
133
|
+
/** `totp`, `sms`, `hotp`, `yubikey`, `duo`, `push`, ... */
|
|
134
|
+
type: string;
|
|
135
|
+
verified: boolean;
|
|
136
|
+
phone?: string;
|
|
137
|
+
publicId?: string;
|
|
138
|
+
createdAt: number;
|
|
139
|
+
}
|
|
140
|
+
export type MfaFactorsResult = {
|
|
141
|
+
ok: true;
|
|
142
|
+
factors: MfaFactorSummary[];
|
|
143
|
+
backupCodesRemaining: number;
|
|
144
|
+
} | SecurityFailure;
|
|
145
|
+
/** The user's second factors and how many recovery codes are left. */
|
|
146
|
+
export declare function listMfaFactors(client: FapiClient): Promise<MfaFactorsResult>;
|
|
147
|
+
/** A started authenticator-app enrolment. The secret is shown once: render `qrSvg` (trusted markup from the server) or `uri`, then verify. */
|
|
148
|
+
export interface TotpEnrollment {
|
|
149
|
+
factorId: string;
|
|
150
|
+
secret: string;
|
|
151
|
+
/** The `otpauth://` URI. */
|
|
152
|
+
uri: string;
|
|
153
|
+
/** The URI as an inline SVG QR code. */
|
|
154
|
+
qrSvg: string;
|
|
155
|
+
/** How many consecutive codes {@link verifyTotp} must send (1 or 2). */
|
|
156
|
+
requiredCodes: number;
|
|
157
|
+
}
|
|
158
|
+
export type StartTotpResult = {
|
|
159
|
+
ok: true;
|
|
160
|
+
enrollment: TotpEnrollment;
|
|
161
|
+
} | SecurityFailure;
|
|
162
|
+
/** Begin adding an authenticator app. Needs a recent sign-in: a stale session answers `stepUpRequired`. */
|
|
163
|
+
export declare function startTotp(client: FapiClient): Promise<StartTotpResult>;
|
|
164
|
+
export type VerifyFactorResult = {
|
|
165
|
+
ok: true;
|
|
166
|
+
factor: MfaFactorSummary;
|
|
167
|
+
/** One-time recovery codes, present when this factor was the account's first: show them now, they are not shown again. */
|
|
168
|
+
backupCodes?: string[];
|
|
169
|
+
} | SecurityFailure;
|
|
170
|
+
/** Confirm an authenticator app with the code(s) it shows (`requiredCodes` consecutive ones). */
|
|
171
|
+
export declare function verifyTotp(client: FapiClient, factorId: string, codes: string[]): Promise<VerifyFactorResult>;
|
|
172
|
+
export type StartSmsResult = {
|
|
173
|
+
ok: true;
|
|
174
|
+
factorId: string; /** The number the code went to, masked. */
|
|
175
|
+
phone: string;
|
|
176
|
+
} | SecurityFailure;
|
|
177
|
+
/** Begin texted codes: texts a code to `phone` (E.164). Refused when the app offers no SMS factor. */
|
|
178
|
+
export declare function startSms(client: FapiClient, phone: string): Promise<StartSmsResult>;
|
|
179
|
+
/** Confirm the texted number with the code that arrived. */
|
|
180
|
+
export declare function verifySms(client: FapiClient, factorId: string, code: string): Promise<VerifyFactorResult>;
|
|
181
|
+
export type RemoveMfaFactorResult = {
|
|
182
|
+
ok: true;
|
|
183
|
+
} | SecurityFailure;
|
|
184
|
+
/** Remove a second factor. Always needs a recent sign-in. */
|
|
185
|
+
export declare function removeMfaFactor(client: FapiClient, factorId: string): Promise<RemoveMfaFactorResult>;
|
|
186
|
+
export type RegenerateBackupCodesResult = {
|
|
187
|
+
ok: true;
|
|
188
|
+
codes: string[];
|
|
189
|
+
} | SecurityFailure;
|
|
190
|
+
/** Replace the recovery codes with a new set (the old ones stop working at once). Show them now: they are not shown again. Always needs a recent sign-in. */
|
|
191
|
+
export declare function regenerateBackupCodes(client: FapiClient): Promise<RegenerateBackupCodesResult>;
|
|
192
|
+
/** A passkey on the account (the credential id and key are never exposed). */
|
|
193
|
+
export interface AccountPasskey {
|
|
194
|
+
id: string;
|
|
195
|
+
name: string | null;
|
|
196
|
+
backedUp: boolean;
|
|
197
|
+
lastUsedAt: number | null;
|
|
198
|
+
createdAt: number;
|
|
199
|
+
/** The authenticator model's name and icon, when the instance resolves them. */
|
|
200
|
+
authenticator: {
|
|
201
|
+
name: string | null;
|
|
202
|
+
icon: string | null;
|
|
203
|
+
} | null;
|
|
204
|
+
}
|
|
205
|
+
export type AccountPasskeysResult = {
|
|
206
|
+
ok: true;
|
|
207
|
+
passkeys: AccountPasskey[];
|
|
208
|
+
} | SecurityFailure;
|
|
209
|
+
/** The signed-in user's passkeys. */
|
|
210
|
+
export declare function listPasskeys(client: FapiClient): Promise<AccountPasskeysResult>;
|
|
211
|
+
export type RemovePasskeyResult = {
|
|
212
|
+
ok: true;
|
|
213
|
+
} | SecurityFailure;
|
|
214
|
+
/** Remove a passkey. Needs a recent sign-in. */
|
|
215
|
+
export declare function removePasskey(client: FapiClient, id: string): Promise<RemovePasskeyResult>;
|
|
216
|
+
export type UnlinkExternalAccountResult = {
|
|
217
|
+
ok: true;
|
|
218
|
+
} | SecurityFailure;
|
|
219
|
+
/**
|
|
220
|
+
* Unlink a connected sign-in provider. Needs a recent sign-in, and answers 409 `LAST_AUTH_METHOD`
|
|
221
|
+
* when it is the account's only way in (set a password or connect another provider first).
|
|
222
|
+
*/
|
|
223
|
+
export declare function unlinkExternalAccount(client: FapiClient, id: string): Promise<UnlinkExternalAccountResult>;
|
|
224
|
+
/** One security-notification category and whether this user gets it. */
|
|
225
|
+
export interface NotificationPreference {
|
|
226
|
+
category: string;
|
|
227
|
+
label: string;
|
|
228
|
+
enabled: boolean;
|
|
229
|
+
/** False for a category that cannot be turned off (grey the toggle out). */
|
|
230
|
+
optional: boolean;
|
|
231
|
+
}
|
|
232
|
+
export type NotificationPreferencesResult = {
|
|
233
|
+
ok: true;
|
|
234
|
+
preferences: NotificationPreference[];
|
|
235
|
+
} | SecurityFailure;
|
|
236
|
+
/** The user's security-notification preferences, every category included. */
|
|
237
|
+
export declare function getNotificationPreferences(client: FapiClient): Promise<NotificationPreferencesResult>;
|
|
238
|
+
/** Turn categories on or off, e.g. `{ new_device: false }`; returns the full resulting set. An unknown or non-optional category answers 400. */
|
|
239
|
+
export declare function updateNotificationPreferences(client: FapiClient, preferences: Record<string, boolean>): Promise<NotificationPreferencesResult>;
|
package/dist/account-security.js
CHANGED
|
@@ -5,6 +5,22 @@ exports.setPassword = setPassword;
|
|
|
5
5
|
exports.listTrustedDevices = listTrustedDevices;
|
|
6
6
|
exports.revokeTrustedDevice = revokeTrustedDevice;
|
|
7
7
|
exports.revokeAllTrustedDevices = revokeAllTrustedDevices;
|
|
8
|
+
exports.listSessions = listSessions;
|
|
9
|
+
exports.revokeAccountSession = revokeAccountSession;
|
|
10
|
+
exports.revokeAllSessions = revokeAllSessions;
|
|
11
|
+
exports.listMfaFactors = listMfaFactors;
|
|
12
|
+
exports.startTotp = startTotp;
|
|
13
|
+
exports.verifyTotp = verifyTotp;
|
|
14
|
+
exports.startSms = startSms;
|
|
15
|
+
exports.verifySms = verifySms;
|
|
16
|
+
exports.removeMfaFactor = removeMfaFactor;
|
|
17
|
+
exports.regenerateBackupCodes = regenerateBackupCodes;
|
|
18
|
+
exports.listPasskeys = listPasskeys;
|
|
19
|
+
exports.removePasskey = removePasskey;
|
|
20
|
+
exports.unlinkExternalAccount = unlinkExternalAccount;
|
|
21
|
+
exports.getNotificationPreferences = getNotificationPreferences;
|
|
22
|
+
exports.updateNotificationPreferences = updateNotificationPreferences;
|
|
23
|
+
const step_up_1 = require("./step-up");
|
|
8
24
|
/**
|
|
9
25
|
* Change the password of the signed-in user. Proves the CURRENT password (no recent sign-in needed),
|
|
10
26
|
* applies the sign-up password policy, and signs the user's other sessions out unless the instance opted out.
|
|
@@ -56,4 +72,137 @@ async function revokeAllTrustedDevices(client) {
|
|
|
56
72
|
const res = await client.request('/v1/client/me/trusted_devices', { method: 'DELETE' });
|
|
57
73
|
return res.ok ? { ok: true, count: typeof res.data?.count === 'number' ? res.data.count : 0 } : { ok: false, errors: res.errors, status: res.status };
|
|
58
74
|
}
|
|
75
|
+
function failure(res) {
|
|
76
|
+
const stepUp = (0, step_up_1.stepUpRequirement)(res.errors);
|
|
77
|
+
return { ok: false, errors: res.errors, status: res.status, stepUpRequired: stepUp !== null, ...(stepUp ? { stepUp } : {}) };
|
|
78
|
+
}
|
|
79
|
+
/** The signed-in user's sessions, newest activity first as the server orders them. */
|
|
80
|
+
async function listSessions(client) {
|
|
81
|
+
const res = await client.get('/v1/client/sessions');
|
|
82
|
+
if (!res.ok || !res.data)
|
|
83
|
+
return failure(res);
|
|
84
|
+
return {
|
|
85
|
+
ok: true,
|
|
86
|
+
sessions: res.data.data.map((s) => ({
|
|
87
|
+
id: s.id,
|
|
88
|
+
status: s.status,
|
|
89
|
+
current: s.current === true,
|
|
90
|
+
lastActiveAt: s.last_active_at,
|
|
91
|
+
expiresAt: s.expire_at,
|
|
92
|
+
createdAt: s.created_at,
|
|
93
|
+
ipAddress: s.ip_address ?? null,
|
|
94
|
+
deviceLabel: s.device_label ?? null,
|
|
95
|
+
browser: s.browser ?? null,
|
|
96
|
+
os: s.os ?? null,
|
|
97
|
+
deviceType: s.device_type ?? null,
|
|
98
|
+
location: s.location ?? null,
|
|
99
|
+
})),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/** Sign one session out. Revoking the current session signs this device out too. */
|
|
103
|
+
async function revokeAccountSession(client, id) {
|
|
104
|
+
const res = await client.post(`/v1/client/sessions/${encodeURIComponent(id)}/revoke`, {});
|
|
105
|
+
return res.ok ? { ok: true } : failure(res);
|
|
106
|
+
}
|
|
107
|
+
/** Sign every OTHER session out; this one stays. `count` is how many ended. */
|
|
108
|
+
async function revokeAllSessions(client) {
|
|
109
|
+
const res = await client.post('/v1/client/sessions/revoke_all', {});
|
|
110
|
+
return res.ok ? { ok: true, count: typeof res.data?.sessions_revoked === 'number' ? res.data.sessions_revoked : 0 } : failure(res);
|
|
111
|
+
}
|
|
112
|
+
const factorOf = (f) => ({
|
|
113
|
+
id: f.id,
|
|
114
|
+
type: f.type,
|
|
115
|
+
verified: f.verified,
|
|
116
|
+
...(f.phone ? { phone: f.phone } : {}),
|
|
117
|
+
...(f.public_id ? { publicId: f.public_id } : {}),
|
|
118
|
+
createdAt: f.created_at,
|
|
119
|
+
});
|
|
120
|
+
/** The user's second factors and how many recovery codes are left. */
|
|
121
|
+
async function listMfaFactors(client) {
|
|
122
|
+
const res = await client.get('/v1/client/me/mfa');
|
|
123
|
+
if (!res.ok || !res.data)
|
|
124
|
+
return failure(res);
|
|
125
|
+
return { ok: true, factors: res.data.data.map(factorOf), backupCodesRemaining: res.data.backup_codes_remaining ?? 0 };
|
|
126
|
+
}
|
|
127
|
+
/** Begin adding an authenticator app. Needs a recent sign-in: a stale session answers `stepUpRequired`. */
|
|
128
|
+
async function startTotp(client) {
|
|
129
|
+
const res = await client.post('/v1/client/me/mfa/totp', {});
|
|
130
|
+
if (!res.ok || !res.data)
|
|
131
|
+
return failure(res);
|
|
132
|
+
const d = res.data;
|
|
133
|
+
return { ok: true, enrollment: { factorId: d.id, secret: d.secret, uri: d.uri, qrSvg: d.qr_svg, requiredCodes: d.required_codes ?? 1 } };
|
|
134
|
+
}
|
|
135
|
+
const verified = (d) => ({
|
|
136
|
+
ok: true,
|
|
137
|
+
factor: factorOf(d),
|
|
138
|
+
...(d.backup_codes?.length ? { backupCodes: d.backup_codes } : {}),
|
|
139
|
+
});
|
|
140
|
+
/** Confirm an authenticator app with the code(s) it shows (`requiredCodes` consecutive ones). */
|
|
141
|
+
async function verifyTotp(client, factorId, codes) {
|
|
142
|
+
const res = await client.post(`/v1/client/me/mfa/totp/${encodeURIComponent(factorId)}/verify`, { codes });
|
|
143
|
+
return res.ok && res.data ? verified(res.data) : failure(res);
|
|
144
|
+
}
|
|
145
|
+
/** Begin texted codes: texts a code to `phone` (E.164). Refused when the app offers no SMS factor. */
|
|
146
|
+
async function startSms(client, phone) {
|
|
147
|
+
const res = await client.post('/v1/client/me/mfa/sms', { phone });
|
|
148
|
+
return res.ok && res.data ? { ok: true, factorId: res.data.id, phone: res.data.phone ?? '' } : failure(res);
|
|
149
|
+
}
|
|
150
|
+
/** Confirm the texted number with the code that arrived. */
|
|
151
|
+
async function verifySms(client, factorId, code) {
|
|
152
|
+
const res = await client.post(`/v1/client/me/mfa/sms/${encodeURIComponent(factorId)}/verify`, { code });
|
|
153
|
+
return res.ok && res.data ? verified(res.data) : failure(res);
|
|
154
|
+
}
|
|
155
|
+
/** Remove a second factor. Always needs a recent sign-in. */
|
|
156
|
+
async function removeMfaFactor(client, factorId) {
|
|
157
|
+
const res = await client.request(`/v1/client/me/mfa/${encodeURIComponent(factorId)}`, { method: 'DELETE' });
|
|
158
|
+
return res.ok ? { ok: true } : failure(res);
|
|
159
|
+
}
|
|
160
|
+
/** Replace the recovery codes with a new set (the old ones stop working at once). Show them now: they are not shown again. Always needs a recent sign-in. */
|
|
161
|
+
async function regenerateBackupCodes(client) {
|
|
162
|
+
const res = await client.post('/v1/client/me/mfa/backup_codes', {});
|
|
163
|
+
return res.ok && res.data ? { ok: true, codes: res.data.codes } : failure(res);
|
|
164
|
+
}
|
|
165
|
+
/** The signed-in user's passkeys. */
|
|
166
|
+
async function listPasskeys(client) {
|
|
167
|
+
const res = await client.get('/v1/client/me/passkeys');
|
|
168
|
+
if (!res.ok || !res.data)
|
|
169
|
+
return failure(res);
|
|
170
|
+
return {
|
|
171
|
+
ok: true,
|
|
172
|
+
passkeys: res.data.data.map((p) => ({
|
|
173
|
+
id: p.id,
|
|
174
|
+
name: p.name,
|
|
175
|
+
backedUp: p.backed_up,
|
|
176
|
+
lastUsedAt: p.last_used_at,
|
|
177
|
+
createdAt: p.created_at,
|
|
178
|
+
authenticator: p.authenticator ?? null,
|
|
179
|
+
})),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
/** Remove a passkey. Needs a recent sign-in. */
|
|
183
|
+
async function removePasskey(client, id) {
|
|
184
|
+
const res = await client.request(`/v1/client/me/passkeys/${encodeURIComponent(id)}`, { method: 'DELETE' });
|
|
185
|
+
return res.ok ? { ok: true } : failure(res);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Unlink a connected sign-in provider. Needs a recent sign-in, and answers 409 `LAST_AUTH_METHOD`
|
|
189
|
+
* when it is the account's only way in (set a password or connect another provider first).
|
|
190
|
+
*/
|
|
191
|
+
async function unlinkExternalAccount(client, id) {
|
|
192
|
+
const res = await client.request(`/v1/client/me/external_accounts/${encodeURIComponent(id)}`, { method: 'DELETE' });
|
|
193
|
+
return res.ok ? { ok: true } : failure(res);
|
|
194
|
+
}
|
|
195
|
+
/** The user's security-notification preferences, every category included. */
|
|
196
|
+
async function getNotificationPreferences(client) {
|
|
197
|
+
const res = await client.get('/v1/client/me/notification_preferences');
|
|
198
|
+
return res.ok && res.data ? { ok: true, preferences: res.data.preferences } : failure(res);
|
|
199
|
+
}
|
|
200
|
+
/** Turn categories on or off, e.g. `{ new_device: false }`; returns the full resulting set. An unknown or non-optional category answers 400. */
|
|
201
|
+
async function updateNotificationPreferences(client, preferences) {
|
|
202
|
+
const res = await client.request('/v1/client/me/notification_preferences', {
|
|
203
|
+
method: 'PATCH',
|
|
204
|
+
body: JSON.stringify({ preferences }),
|
|
205
|
+
});
|
|
206
|
+
return res.ok && res.data ? { ok: true, preferences: res.data.preferences } : failure(res);
|
|
207
|
+
}
|
|
59
208
|
//# sourceMappingURL=account-security.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-security.js","sourceRoot":"","sources":["../src/account-security.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"account-security.js","sourceRoot":"","sources":["../src/account-security.ts"],"names":[],"mappings":";;AA4BA,wCAYC;AASD,kCAIC;AAsBD,gDAOC;AAKD,kDAGC;AAKD,0DAGC;AAyDD,oCAoBC;AAKD,oDAGC;AAKD,8CAGC;AAoCD,wCAIC;AAiBD,8BAKC;AAsBD,gCAGC;AAKD,4BAGC;AAGD,8BAGC;AAKD,0CAGC;AAKD,sDAGC;AA2BD,oCAcC;AAKD,sCAGC;AAQD,sDAGC;AAgBD,gEAGC;AAGD,sEAMC;AApYD,uCAAsE;AActE;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAC,MAAkB,EAAE,KAAuD;IAC9G,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAyF,+BAA+B,EAAE;QACrJ,gBAAgB,EAAE,KAAK,CAAC,eAAe;QACvC,YAAY,EAAE,KAAK,CAAC,WAAW;KAChC,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IACvF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;QACnB,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5G,CAAC;AACJ,CAAC;AAID;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAAC,MAAkB,EAAE,QAAgB;IACpE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAqC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9G,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IACvF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC9D,CAAC;AAqBD,4CAA4C;AACrC,KAAK,UAAU,kBAAkB,CAAC,MAAkB;IACzD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAgC,+BAA+B,CAAC,CAAC;IAC7F,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IACvF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;KACxJ,CAAC;AACJ,CAAC;AAID,2GAA2G;AACpG,KAAK,UAAU,mBAAmB,CAAC,MAAkB,EAAE,EAAU;IACtE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAU,iCAAiC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3H,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AACvF,CAAC;AAID,sIAAsI;AAC/H,KAAK,UAAU,uBAAuB,CAAC,MAAkB;IAC9D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAqB,+BAA+B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5G,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AACxJ,CAAC;AAeD,SAAS,OAAO,CAAC,GAA0B;IACzC,MAAM,MAAM,GAAG,IAAA,2BAAiB,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/H,CAAC;AAsCD,sFAAsF;AAC/E,KAAK,UAAU,YAAY,CAAC,MAAkB;IACnD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,qBAAqB,CAAC,CAAC;IAC7E,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI;YAC3B,YAAY,EAAE,CAAC,CAAC,cAAc;YAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,SAAS,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;YAC/B,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI;YACnC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;YAC1B,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI;YAChB,UAAU,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;YACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;SAC7B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAID,oFAAoF;AAC7E,KAAK,UAAU,oBAAoB,CAAC,MAAkB,EAAE,EAAU;IACvE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAU,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACnG,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAID,+EAA+E;AACxE,KAAK,UAAU,iBAAiB,CAAC,MAAkB;IACxD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAgC,gCAAgC,EAAE,EAAE,CAAC,CAAC;IACnG,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACrI,CAAC;AAwBD,MAAM,QAAQ,GAAG,CAAC,CAAgB,EAAoB,EAAE,CAAC,CAAC;IACxD,EAAE,EAAE,CAAC,CAAC,EAAE;IACR,IAAI,EAAE,CAAC,CAAC,IAAI;IACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;IACpB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,UAAU;CACxB,CAAC,CAAC;AAIH,sEAAsE;AAC/D,KAAK,UAAU,cAAc,CAAC,MAAkB;IACrD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAA6D,mBAAmB,CAAC,CAAC;IAC9G,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,oBAAoB,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,EAAE,CAAC;AACxH,CAAC;AAgBD,2GAA2G;AACpG,KAAK,UAAU,SAAS,CAAC,MAAkB;IAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAuF,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAClJ,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;IACnB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,cAAc,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3I,CAAC;AAeD,MAAM,QAAQ,GAAG,CAAC,CAAqB,EAAsB,EAAE,CAAC,CAAC;IAC/D,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnB,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACnE,CAAC,CAAC;AAEH,iGAAiG;AAC1F,KAAK,UAAU,UAAU,CAAC,MAAkB,EAAE,QAAgB,EAAE,KAAe;IACpF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAqB,0BAA0B,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9H,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAID,sGAAsG;AAC/F,KAAK,UAAU,QAAQ,CAAC,MAAkB,EAAE,KAAa;IAC9D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAgB,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9G,CAAC;AAED,4DAA4D;AACrD,KAAK,UAAU,SAAS,CAAC,MAAkB,EAAE,QAAgB,EAAE,IAAY;IAChF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAqB,yBAAyB,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5H,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAID,6DAA6D;AACtD,KAAK,UAAU,eAAe,CAAC,MAAkB,EAAE,QAAgB;IACxE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAU,qBAAqB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrH,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAID,6JAA6J;AACtJ,KAAK,UAAU,qBAAqB,CAAC,MAAkB;IAC5D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAsB,gCAAgC,EAAE,EAAE,CAAC,CAAC;IACzF,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACjF,CAAC;AA0BD,qCAAqC;AAC9B,KAAK,UAAU,YAAY,CAAC,MAAkB;IACnD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,wBAAwB,CAAC,CAAC;IAChF,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,UAAU,EAAE,CAAC,CAAC,YAAY;YAC1B,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,IAAI;SACvC,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAID,gDAAgD;AACzC,KAAK,UAAU,aAAa,CAAC,MAAkB,EAAE,EAAU;IAChE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAU,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpH,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAID;;;GAGG;AACI,KAAK,UAAU,qBAAqB,CAAC,MAAkB,EAAE,EAAU;IACxE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAU,mCAAmC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7H,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAeD,6EAA6E;AACtE,KAAK,UAAU,0BAA0B,CAAC,MAAkB;IACjE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAA4C,wCAAwC,CAAC,CAAC;IAClH,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7F,CAAC;AAED,gJAAgJ;AACzI,KAAK,UAAU,6BAA6B,CAAC,MAAkB,EAAE,WAAoC;IAC1G,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAA4C,wCAAwC,EAAE;QACpH,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;KACtC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7F,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -170,4 +170,6 @@ __exportStar(require("./external-passkeys"), exports);
|
|
|
170
170
|
// Wallet-side helpers for verifiable credentials (receive an offer, present an SD-JWT VC).
|
|
171
171
|
__exportStar(require("./credentials"), exports);
|
|
172
172
|
__exportStar(require("./uma"), exports);
|
|
173
|
+
// Step-up with no DOM: choose a held factor, re-verify, retry the refused call (bearer sessions included).
|
|
174
|
+
__exportStar(require("./step-up-flow"), exports);
|
|
173
175
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6EAA6E;AAC7E,2CAAyB;AACzB,6CAA2B;AAC3B,yDAAyD;AACzD,kDAAgC;AAChC,sFAAsF;AACtF,mDAAiC;AACjC,gDAA8B;AAC9B,mDAAiC;AACjC,iDAA+B;AAC/B,4CAA0B;AAC1B,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,uEAAuE;AACvE,2CAAyB;AACzB,6CAA2B;AAC3B,qFAAqF;AACrF,kDAAgC;AAChC,yCAAuB;AACvB,uEAAuE;AACvE,6CAA2B;AAC3B,mGAAmG;AACnG,2DAAyC;AACzC,4GAA4G;AAC5G,sDAAoC;AACpC,+CAA6B;AAC7B,+EAA+E;AAC/E,6CAA2B;AAC3B,8DAA4C;AAC5C,gGAAgG;AAChG,6CAAgJ;AAAvI,gHAAA,iBAAiB,OAAA;AAAE,8GAAA,eAAe,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,6GAAA,cAAc,OAAA;AAClG,qDAW2B;AAVzB,oHAAA,iBAAiB,OAAA;AACjB,2HAAA,wBAAwB,OAAA;AACxB,oHAAA,iBAAiB,OAAA;AACjB,gHAAA,aAAa,OAAA;AACb,wHAAA,qBAAqB,OAAA;AACrB,uHAAA,oBAAoB,OAAA;AAMtB,iEAAiE;AACjE,iDAA+B;AAC/B,4CAA0B;AAC1B,yFAAyF;AACzF,oDAAkC;AAClC,2CAAyB;AACzB,mDAAiC;AACjC,4CAA0B;AAC1B,2FAA2F;AAC3F,gDAA8B;AAC9B,+CAA6B;AAC7B,0GAA0G;AAC1G,mDAAiC;AACjC,+CAA6B;AAC7B,iFAAiF;AACjF,gDAA8B;AAC9B,uFAAuF;AACvF,oDAAkC;AAClC,4EAA4E;AAC5E,oDAAkC;AAClC,sGAAsG;AACtG,qDAAmC;AACnC,6FAA6F;AAC7F,wCAAsB;AACtB,4CAA0B;AAC1B,iDAA+B;AAC/B,gDAA8B;AAC9B,6CAA2B;AAC3B,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB;AACzB,4DAA4D;AAC5D,6CAA2B;AAC3B,kFAAkF;AAClF,oDAAkC;AAClC,mHAAmH;AACnH,qDAAmC;AACnC,yCAAuB;AACvB,yDAAuC;AACvC,iDAA+B;AAC/B,wDAAsC;AACtC,kDAAgC;AAChC,uDAAqC;AACrC,4CAA0B;AAC1B,8CAA4B;AAC5B,2DAA6G;AAApG,0HAAA,oBAAoB,OAAA;AAC7B,kDAAgC;AAChC,oDAAkC;AAClC,+DAA+D;AAC/D,kDAAgC;AAChC,qDAAmC;AACnC,iFAAiF;AACjF,iDAA+B;AAC/B,sFAAsF;AACtF,0DAAwC;AACxC,2CAAyB;AACzB,qDAAmC;AACnC,0DAAwC;AACxC,kEAAkE;AAClE,wCAAsB;AACtB,qDAAmC;AACnC,qEAAqE;AACrE,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,mDAAiC;AACjC,kDAAgC;AAChC,gGAAgG;AAChG,uDAAqC;AACrC,+DAA6C;AAC7C,sDAAsD;AACtD,wDAAsC;AACtC,+EAA+E;AAC/E,oDAAkC;AAClC,+EAA+E;AAC/E,2EAA2E;AAC3E,4CAA0B;AAC1B,kFAAkF;AAClF,mDAAiC;AACjC,4FAA4F;AAC5F,kDAAgC;AAChC,kFAAkF;AAClF,yEAAyE;AACzE,oEAAoE;AACpE,uDAAqC;AACrC,sDAAoC;AACpC,uEAAuE;AACvE,gDAA8B;AAC9B,yCAAuB;AACvB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,0EAA0E;AAC1E,4EAA4E;AAC5E,0CAa0B;AARxB,iGAAA,QAAQ,OAAA;AACR,sGAAA,aAAa,OAAA;AACb,0GAAA,iBAAiB,OAAA;AACjB,uGAAA,cAAc,OAAA;AACd,yGAAA,gBAAgB,OAAA;AAChB,+GAAA,sBAAsB,OAAA;AACtB,kGAAA,SAAS,OAAA;AACT,wGAAA,eAAe,OAAA;AAEjB,qDAAmC;AAEnC,yGAAyG;AACzG,iDAA+B;AAE/B,kFAAkF;AAClF,sDAAoC;AAEpC,2FAA2F;AAC3F,gDAA8B;AAC9B,wCAAsB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,11 @@ export interface PasskeySignInOptions extends PasskeyExtensionOptions {
|
|
|
32
32
|
mediation?: 'optional' | 'conditional';
|
|
33
33
|
signal?: AbortSignal;
|
|
34
34
|
host?: WebAuthnHost;
|
|
35
|
+
/**
|
|
36
|
+
* Keep me signed in (default true). `false` makes the session cookie a
|
|
37
|
+
* browser-session cookie: nothing persistent is left once the browser closes.
|
|
38
|
+
*/
|
|
39
|
+
remember?: boolean;
|
|
35
40
|
}
|
|
36
41
|
/**
|
|
37
42
|
* Usernameless passkey sign-in, start to finish: begin (with the captcha when
|
package/dist/passkey-sign-in.js
CHANGED
|
@@ -80,7 +80,7 @@ async function signInWithPasskey(client, opts = {}) {
|
|
|
80
80
|
],
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
|
-
const done = await client.post(exports.PASSKEY_SIGN_IN_FINISH_PATH, body);
|
|
83
|
+
const done = await client.post(exports.PASSKEY_SIGN_IN_FINISH_PATH, opts.remember === false ? { ...body, remember: false } : body);
|
|
84
84
|
if (!done.ok || !done.data)
|
|
85
85
|
return { ...base, errors: done.errors };
|
|
86
86
|
return { ...base, attempt: done.data, ticket: done.data.ticket ?? null };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passkey-sign-in.js","sourceRoot":"","sources":["../src/passkey-sign-in.ts"],"names":[],"mappings":";;;AAqDA,gDAqBC;
|
|
1
|
+
{"version":3,"file":"passkey-sign-in.js","sourceRoot":"","sources":["../src/passkey-sign-in.ts"],"names":[],"mappings":"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"}
|
package/dist/sign-in-flow.d.ts
CHANGED
|
@@ -58,7 +58,7 @@ export type RequiredActionStep =
|
|
|
58
58
|
kind: 'custom';
|
|
59
59
|
url: string | null;
|
|
60
60
|
};
|
|
61
|
-
/** Second-factor strategies the server accepts.
|
|
61
|
+
/** Second-factor strategies the server accepts; `needs_second_factor.factors` narrows them to what the account holds. */
|
|
62
62
|
export declare const SECOND_FACTOR_STRATEGIES: readonly ["totp", "backup_code", "sms", "email_code"];
|
|
63
63
|
export type FlowStep = {
|
|
64
64
|
type: 'needs_identifier';
|
|
@@ -122,6 +122,10 @@ export interface FlowSnapshot {
|
|
|
122
122
|
/** The first error's stable reason, or the captcha refusal's. */
|
|
123
123
|
reason: string | null;
|
|
124
124
|
busy: boolean;
|
|
125
|
+
/** The server's id for the current attempt (what `/v1/client/sign_ins/{id}/...` routes take), or null before one exists. */
|
|
126
|
+
attemptId: string | null;
|
|
127
|
+
/** After `sendSecondFactorCode('sms')`: the masked number the text went to (`+1 ••• 4821`); null otherwise. */
|
|
128
|
+
sentTo: string | null;
|
|
125
129
|
}
|
|
126
130
|
export interface FlowOptions {
|
|
127
131
|
client: FapiClient;
|
package/dist/sign-in-flow.js
CHANGED
|
@@ -27,7 +27,7 @@ const mfa_recovery_1 = require("./mfa-recovery");
|
|
|
27
27
|
const redirect_1 = require("./redirect");
|
|
28
28
|
const captcha_widget_1 = require("./captcha-widget");
|
|
29
29
|
const fapi_1 = require("./fapi");
|
|
30
|
-
/** Second-factor strategies the server accepts.
|
|
30
|
+
/** Second-factor strategies the server accepts; `needs_second_factor.factors` narrows them to what the account holds. */
|
|
31
31
|
exports.SECOND_FACTOR_STRATEGIES = ['totp', 'backup_code', 'sms', 'email_code'];
|
|
32
32
|
/** The typed step for the first owed action, or null for a kind this SDK does not know. */
|
|
33
33
|
function requiredActionStep(a, iv) {
|
|
@@ -62,8 +62,9 @@ function makeCore(opts, captchaFlow) {
|
|
|
62
62
|
let enrollment = null;
|
|
63
63
|
let recovery = null;
|
|
64
64
|
let redirect = null;
|
|
65
|
+
let sentTo = null;
|
|
65
66
|
const listeners = new Set();
|
|
66
|
-
const snapshot = () => ({ step, errors, reason, busy });
|
|
67
|
+
const snapshot = () => ({ step, errors, reason, busy, attemptId: flow.attempt?.id ?? null, sentTo });
|
|
67
68
|
const emit = () => {
|
|
68
69
|
const s = snapshot();
|
|
69
70
|
for (const l of listeners)
|
|
@@ -81,18 +82,29 @@ function makeCore(opts, captchaFlow) {
|
|
|
81
82
|
}
|
|
82
83
|
return captchaSettings;
|
|
83
84
|
};
|
|
84
|
-
//
|
|
85
|
-
const
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const known = passkeyChecks.get(attemptId);
|
|
90
|
-
if (known !== undefined)
|
|
85
|
+
// What this attempt's account holds, asked once per attempt (a failed ask is not remembered).
|
|
86
|
+
const heldChecks = new Map();
|
|
87
|
+
const heldFactors = async (attemptId) => {
|
|
88
|
+
const known = heldChecks.get(attemptId);
|
|
89
|
+
if (known)
|
|
91
90
|
return known;
|
|
92
91
|
const res = await client.get(`/v1/client/sign_ins/${encodeURIComponent(attemptId)}/second_factors`);
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
if (!res.ok || !Array.isArray(res.data?.factors))
|
|
93
|
+
return null;
|
|
94
|
+
// Only an explicit `false` hides backup_code, so a server that does not say keeps it.
|
|
95
|
+
const held = { factors: res.data.factors.filter((f) => typeof f === 'string'), backupCodes: res.data.backup_codes !== false };
|
|
96
|
+
heldChecks.set(attemptId, held);
|
|
97
|
+
return held;
|
|
98
|
+
};
|
|
99
|
+
/** The second factors to offer: what the account holds; every strategy when that cannot be read. */
|
|
100
|
+
const secondFactorsFor = async (attemptId) => {
|
|
101
|
+
const held = attemptId ? await heldFactors(attemptId) : null;
|
|
102
|
+
if (!held)
|
|
103
|
+
return [...exports.SECOND_FACTOR_STRATEGIES];
|
|
104
|
+
const out = exports.SECOND_FACTOR_STRATEGIES.filter((f) => (f === 'backup_code' ? held.backupCodes : held.factors.includes(f)));
|
|
105
|
+
if (held.factors.includes('passkey') && (opts.passkeyAssertion || (0, passkey_1.passkeysSupported)()))
|
|
106
|
+
out.push('passkey');
|
|
107
|
+
return out;
|
|
96
108
|
};
|
|
97
109
|
const stepFor = async (attempt) => {
|
|
98
110
|
if (redirect)
|
|
@@ -109,7 +121,7 @@ function makeCore(opts, captchaFlow) {
|
|
|
109
121
|
case 'collect_first_factor':
|
|
110
122
|
return { type: 'needs_first_factor', factors: next.strategies };
|
|
111
123
|
case 'collect_second_factor':
|
|
112
|
-
return { type: 'needs_second_factor', factors:
|
|
124
|
+
return { type: 'needs_second_factor', factors: await secondFactorsFor(attempt.id ?? undefined), ...(recovery ? { recovery } : {}) };
|
|
113
125
|
case 'accept_policies':
|
|
114
126
|
return { type: 'needs_policy_acceptance', policies: next.policies };
|
|
115
127
|
case 'collect_email_code':
|
|
@@ -150,6 +162,8 @@ function makeCore(opts, captchaFlow) {
|
|
|
150
162
|
reason = errors[0]?.reason ?? next.attempt?.reason ?? null;
|
|
151
163
|
busy = false;
|
|
152
164
|
step = await stepFor(next.attempt);
|
|
165
|
+
if (step.type !== 'needs_second_factor')
|
|
166
|
+
sentTo = null;
|
|
153
167
|
return emit();
|
|
154
168
|
};
|
|
155
169
|
/** The token the headless solver gives for the current captcha step, or null (no solver, other provider, failure, cancelled). */
|
|
@@ -177,6 +191,7 @@ function makeCore(opts, captchaFlow) {
|
|
|
177
191
|
get flow() { return flow; },
|
|
178
192
|
get enrollment() { return enrollment; },
|
|
179
193
|
set enrollment(e) { enrollment = e; },
|
|
194
|
+
set sentTo(v) { sentTo = v; },
|
|
180
195
|
get recovery() { return recovery; },
|
|
181
196
|
set recovery(r) { recovery = r; },
|
|
182
197
|
acknowledgeCodes() {
|
|
@@ -233,6 +248,7 @@ function makeCore(opts, captchaFlow) {
|
|
|
233
248
|
reason = null;
|
|
234
249
|
captchaToken = null;
|
|
235
250
|
redirect = null;
|
|
251
|
+
sentTo = null;
|
|
236
252
|
enrollment = null;
|
|
237
253
|
recovery = null;
|
|
238
254
|
return emit();
|
|
@@ -316,6 +332,7 @@ function createSignInFlow(opts) {
|
|
|
316
332
|
}),
|
|
317
333
|
async sendSecondFactorCode(strategy) {
|
|
318
334
|
const res = await client.post(`/v1/client/sign_ins/${encodeURIComponent(attemptId())}/prepare_second_factor`, { strategy });
|
|
335
|
+
core.sentTo = res.ok && typeof res.data?.sent_to === 'string' ? res.data.sent_to : null;
|
|
319
336
|
return core.run(async () => ({ ...core.flow, errors: res.ok ? [] : res.errors }));
|
|
320
337
|
},
|
|
321
338
|
canRecover: () => (0, mfa_recovery_1.canRecoverWithIdentityCheck)(client, attemptId()),
|
package/dist/sign-in-flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sign-in-flow.js","sourceRoot":"","sources":["../src/sign-in-flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sign-in-flow.js","sourceRoot":"","sources":["../src/sign-in-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Step-up with no DOM: re-authenticate a signed-in session (cookie or bearer)
|
|
3
|
+
* by asking YOUR code for a credential, then retry the call that was refused.
|
|
4
|
+
*
|
|
5
|
+
* `createStepUp({ client, choose })` returns `withStepUp(call)`: it runs `call`,
|
|
6
|
+
* and when the server refuses it with STEP_UP_REQUIRED it asks `choose` for one
|
|
7
|
+
* of the factors the account holds (and the refusal accepts), re-verifies with
|
|
8
|
+
* `POST /v1/client/me/step_up`, and runs `call` once more. A passkey is run by
|
|
9
|
+
* `passkeyAssertion` (React Native: `nativePasskeyAssertion(Passkey)` from
|
|
10
|
+
* `@atlasauth/expo-passkeys`); everything else is a code or password you collect.
|
|
11
|
+
*/
|
|
12
|
+
import type { FieldError } from './attempt';
|
|
13
|
+
import type { FapiClient, FapiResponse } from './fapi';
|
|
14
|
+
import { type PasskeyAssertionProvider } from './passkey-second-factor';
|
|
15
|
+
import { type StepUpResult } from './step-up';
|
|
16
|
+
export type StepUpFactor = 'password' | 'passkey' | 'totp' | 'backup_code' | 'email_code';
|
|
17
|
+
/** What the person picked. A passkey needs no input here: the platform prompt runs next. */
|
|
18
|
+
export type StepUpChoice = {
|
|
19
|
+
strategy: 'password';
|
|
20
|
+
password: string;
|
|
21
|
+
} | {
|
|
22
|
+
strategy: 'totp' | 'backup_code' | 'email_code';
|
|
23
|
+
code: string;
|
|
24
|
+
} | {
|
|
25
|
+
strategy: 'passkey';
|
|
26
|
+
};
|
|
27
|
+
/** What `choose` is asked for. */
|
|
28
|
+
export interface StepUpRequest {
|
|
29
|
+
/** The refused action (`email_change`, …), when the server named it. */
|
|
30
|
+
action: string | null;
|
|
31
|
+
/** The factors to offer: held by the account and accepted for this action. Never empty. */
|
|
32
|
+
factors: StepUpFactor[];
|
|
33
|
+
maxAgeSeconds: number | null;
|
|
34
|
+
/** The previous try failed (wrong code, cancelled passkey): show it and ask again. */
|
|
35
|
+
error: FieldError | null;
|
|
36
|
+
/** Email the step-up code (for the `email_code` factor). */
|
|
37
|
+
sendEmailCode(): Promise<FapiResponse<unknown>>;
|
|
38
|
+
}
|
|
39
|
+
export interface StepUpFlowOptions {
|
|
40
|
+
client: FapiClient;
|
|
41
|
+
/** Ask the person which factor to use and collect it; return null to cancel. */
|
|
42
|
+
choose: (request: StepUpRequest) => Promise<StepUpChoice | null> | StepUpChoice | null;
|
|
43
|
+
/** Runs the passkey prompt where there is no WebAuthn. Without it the browser's WebAuthn is used. */
|
|
44
|
+
passkeyAssertion?: PasskeyAssertionProvider;
|
|
45
|
+
/** Wrong credentials allowed before the last error is thrown. Default 3. */
|
|
46
|
+
maxAttempts?: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The step-up factors the signed-in account holds, or null when that cannot be
|
|
50
|
+
* read (the caller then offers everything the refusal accepts).
|
|
51
|
+
* `email_code` is always held: it goes to the primary address.
|
|
52
|
+
*/
|
|
53
|
+
export declare function heldStepUpFactors(client: FapiClient): Promise<StepUpFactor[] | null>;
|
|
54
|
+
export declare function createStepUp(opts: StepUpFlowOptions): {
|
|
55
|
+
/** Run `call`; on STEP_UP_REQUIRED re-authenticate and run it once more. Throws `StepUpCancelledError` when `choose` returns null. */
|
|
56
|
+
withStepUp<T>(call: () => Promise<FapiResponse<T>>): Promise<FapiResponse<T>>;
|
|
57
|
+
/** Re-authenticate now (for example before opening a security page). */
|
|
58
|
+
reauthenticate(action?: string): Promise<StepUpResult>;
|
|
59
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.heldStepUpFactors = heldStepUpFactors;
|
|
4
|
+
exports.createStepUp = createStepUp;
|
|
5
|
+
const passkey_second_factor_1 = require("./passkey-second-factor");
|
|
6
|
+
const step_up_1 = require("./step-up");
|
|
7
|
+
/**
|
|
8
|
+
* The step-up factors the signed-in account holds, or null when that cannot be
|
|
9
|
+
* read (the caller then offers everything the refusal accepts).
|
|
10
|
+
* `email_code` is always held: it goes to the primary address.
|
|
11
|
+
*/
|
|
12
|
+
async function heldStepUpFactors(client) {
|
|
13
|
+
const [me, mfa, passkeys] = await Promise.all([
|
|
14
|
+
client.get('/v1/client/me'),
|
|
15
|
+
client.get('/v1/client/me/mfa'),
|
|
16
|
+
client.get('/v1/client/me/passkeys'),
|
|
17
|
+
]);
|
|
18
|
+
if (!me.ok || !mfa.ok)
|
|
19
|
+
return null;
|
|
20
|
+
const held = [];
|
|
21
|
+
if (me.data?.has_password === true)
|
|
22
|
+
held.push('password');
|
|
23
|
+
if (passkeys.ok && (passkeys.data?.data?.length ?? 0) > 0)
|
|
24
|
+
held.push('passkey');
|
|
25
|
+
if (mfa.data?.data?.some((f) => f.type === 'totp' && f.verified !== false))
|
|
26
|
+
held.push('totp');
|
|
27
|
+
if ((mfa.data?.backup_codes_remaining ?? 0) > 0)
|
|
28
|
+
held.push('backup_code');
|
|
29
|
+
held.push('email_code');
|
|
30
|
+
return held;
|
|
31
|
+
}
|
|
32
|
+
const KNOWN = ['password', 'passkey', 'totp', 'backup_code', 'email_code'];
|
|
33
|
+
function createStepUp(opts) {
|
|
34
|
+
const { client } = opts;
|
|
35
|
+
/** Passkey step-up: the server's challenge, the platform prompt, the assertion body. Returns the input, or the error to show. */
|
|
36
|
+
const passkeyInput = async () => {
|
|
37
|
+
const started = await client.post('/v1/client/me/step_up/passkey', {});
|
|
38
|
+
if (!started.ok || !started.data)
|
|
39
|
+
return started.errors[0] ?? { code: 'UNAUTHENTICATED', message: 'Could not start the passkey check.' };
|
|
40
|
+
try {
|
|
41
|
+
const a = await (0, passkey_second_factor_1.passkeySecondFactorAssertion)(started.data, opts.passkeyAssertion ? { passkeyAssertion: opts.passkeyAssertion } : {});
|
|
42
|
+
return { strategy: 'passkey', challenge: a.challenge, credential_id: a.credential_id, authenticator_data: a.authenticator_data, client_data_json: a.client_data_json, signature: a.signature };
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
return { code: 'passkey_cancelled', reason: 'passkey_cancelled', message: e instanceof Error ? e.message : 'The passkey prompt was cancelled.' };
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
/** One prompt per refusal: the held factors are read once, then every retry of the prompt reuses them. */
|
|
49
|
+
const makePrompt = () => {
|
|
50
|
+
let held;
|
|
51
|
+
return async (p) => {
|
|
52
|
+
held ??= heldStepUpFactors(client);
|
|
53
|
+
const mine = await held;
|
|
54
|
+
const accepted = p.acceptedFactors.filter((f) => KNOWN.includes(f));
|
|
55
|
+
const narrowed = mine ? accepted.filter((f) => mine.includes(f)) : accepted;
|
|
56
|
+
// Never trap the person with nothing to pick: if the read and the refusal disagree, offer what the refusal accepts.
|
|
57
|
+
const factors = narrowed.length ? narrowed : accepted;
|
|
58
|
+
let error = p.error;
|
|
59
|
+
for (;;) {
|
|
60
|
+
const choice = await opts.choose({ action: p.action, factors, maxAgeSeconds: p.maxAgeSeconds, error, sendEmailCode: p.sendEmailCode });
|
|
61
|
+
if (!choice)
|
|
62
|
+
return null;
|
|
63
|
+
if (choice.strategy !== 'passkey')
|
|
64
|
+
return choice;
|
|
65
|
+
const input = await passkeyInput();
|
|
66
|
+
if ('strategy' in input)
|
|
67
|
+
return input;
|
|
68
|
+
error = input;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
/** Run `call`; on STEP_UP_REQUIRED re-authenticate and run it once more. Throws `StepUpCancelledError` when `choose` returns null. */
|
|
74
|
+
withStepUp(call) {
|
|
75
|
+
return (0, step_up_1.retryWithStepUp)(call, { client, prompt: makePrompt(), ...(opts.maxAttempts ? { maxAttempts: opts.maxAttempts } : {}) });
|
|
76
|
+
},
|
|
77
|
+
/** Re-authenticate now (for example before opening a security page). */
|
|
78
|
+
reauthenticate(action = 'sensitive_action') {
|
|
79
|
+
return (0, step_up_1.requireStepUp)(action, { client, prompt: makePrompt(), ...(opts.maxAttempts ? { maxAttempts: opts.maxAttempts } : {}) });
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=step-up-flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-up-flow.js","sourceRoot":"","sources":["../src/step-up-flow.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
|
@@ -7,5 +7,5 @@ exports.ATLAS_JS_VERSION = void 0;
|
|
|
7
7
|
* package.json at runtime) so the bundle stays dependency-free and tests stay
|
|
8
8
|
* deterministic; `version.test.ts` fails when it drifts from package.json.
|
|
9
9
|
*/
|
|
10
|
-
exports.ATLAS_JS_VERSION = '0.
|
|
10
|
+
exports.ATLAS_JS_VERSION = '0.42.0';
|
|
11
11
|
//# sourceMappingURL=version.js.map
|