@atlasauth/js 0.42.0 → 0.43.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/api-keys.d.ts +14 -1
- package/dist/api-keys.js +5 -0
- package/dist/api-keys.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/machine-enrolment.d.ts +26 -0
- package/dist/machine-enrolment.js +17 -0
- package/dist/machine-enrolment.js.map +1 -0
- package/dist/organizations.d.ts +64 -0
- package/dist/organizations.js +34 -1
- package/dist/organizations.js.map +1 -1
- package/dist/security-section.d.ts +110 -0
- package/dist/security-section.js +273 -0
- package/dist/security-section.js.map +1 -0
- package/dist/sign-in-flow.d.ts +19 -1
- package/dist/sign-in-flow.js +7 -1
- package/dist/sign-in-flow.js.map +1 -1
- package/dist/sign-in-screen.d.ts +156 -0
- package/dist/sign-in-screen.js +298 -0
- package/dist/sign-in-screen.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSecuritySection = createSecuritySection;
|
|
4
|
+
const errors_1 = require("./errors");
|
|
5
|
+
const account_security_1 = require("./account-security");
|
|
6
|
+
const phone_numbers_1 = require("./phone-numbers");
|
|
7
|
+
const step_up_flow_1 = require("./step-up-flow");
|
|
8
|
+
const step_up_1 = require("./step-up");
|
|
9
|
+
const FIELD = {
|
|
10
|
+
code: { name: 'code', kind: 'code', autoComplete: 'one-time-code', secure: false },
|
|
11
|
+
second_code: { name: 'second_code', kind: 'code', autoComplete: 'one-time-code', secure: false },
|
|
12
|
+
current_password: { name: 'current_password', kind: 'password', autoComplete: 'current-password', secure: true },
|
|
13
|
+
new_password: { name: 'new_password', kind: 'password', autoComplete: 'new-password', secure: true },
|
|
14
|
+
};
|
|
15
|
+
const ACTIONS = {
|
|
16
|
+
sessions: ['remove', 'revoke_others'],
|
|
17
|
+
mfa: ['start_totp', 'start_sms', 'remove'],
|
|
18
|
+
passkeys: ['remove'],
|
|
19
|
+
phones: ['add_phone', 'verify_phone', 'make_primary', 'remove'],
|
|
20
|
+
recovery_codes: ['regenerate_codes'],
|
|
21
|
+
connected_accounts: ['remove'],
|
|
22
|
+
password: ['submit'],
|
|
23
|
+
};
|
|
24
|
+
const fail = (errors, stepUpRequired = false) => ({ ok: false, errors, stepUpRequired });
|
|
25
|
+
/** A helper result (`{ ok, errors, stepUpRequired? }`) as an Outcome. */
|
|
26
|
+
function fromResult(r) {
|
|
27
|
+
if (r.ok)
|
|
28
|
+
return { ok: true, value: r };
|
|
29
|
+
const f = r;
|
|
30
|
+
return fail(f.errors, f.stepUpRequired === true);
|
|
31
|
+
}
|
|
32
|
+
/** A helper that throws (phone numbers) as an Outcome. */
|
|
33
|
+
async function fromThrow(fn) {
|
|
34
|
+
try {
|
|
35
|
+
return { ok: true, value: await fn() };
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
if (e instanceof phone_numbers_1.PhoneNumberRequestError) {
|
|
39
|
+
return fail([{ code: e.code, message: e.message, ...(e.param ? { param: e.param } : {}), ...(e.reason ? { reason: e.reason } : {}) }], e.needsReverification);
|
|
40
|
+
}
|
|
41
|
+
return fail([{ code: 'REQUEST_FAILED', message: e instanceof Error ? e.message : 'The request failed.' }]);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function createSecuritySection(opts) {
|
|
45
|
+
const { client, kind } = opts;
|
|
46
|
+
const stepper = opts.choose ? (0, step_up_flow_1.createStepUp)({ client, choose: opts.choose, ...(opts.passkeyAssertion ? { passkeyAssertion: opts.passkeyAssertion } : {}) }) : null;
|
|
47
|
+
const listeners = new Set();
|
|
48
|
+
let step = 'list';
|
|
49
|
+
let loading = true;
|
|
50
|
+
let busy = false;
|
|
51
|
+
let items = [];
|
|
52
|
+
let enrollment = null;
|
|
53
|
+
let factorId = null;
|
|
54
|
+
let phoneId = null;
|
|
55
|
+
let sentTo = null;
|
|
56
|
+
let recoveryCodes = null;
|
|
57
|
+
let backupCodesRemaining = null;
|
|
58
|
+
let hasPassword = null;
|
|
59
|
+
let failure = null;
|
|
60
|
+
let stepUpRequired = false;
|
|
61
|
+
const fieldsFor = () => {
|
|
62
|
+
switch (step) {
|
|
63
|
+
case 'totp_enroll': return enrollment && enrollment.requiredCodes > 1 ? [FIELD.code, FIELD.second_code] : [FIELD.code];
|
|
64
|
+
case 'sms_verify':
|
|
65
|
+
case 'phone_verify': return [FIELD.code];
|
|
66
|
+
case 'change_password': return [FIELD.current_password, FIELD.new_password];
|
|
67
|
+
case 'set_password': return [FIELD.new_password];
|
|
68
|
+
default: return [];
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const view = () => ({
|
|
72
|
+
kind,
|
|
73
|
+
step,
|
|
74
|
+
loading,
|
|
75
|
+
busy,
|
|
76
|
+
items,
|
|
77
|
+
fields: fieldsFor(),
|
|
78
|
+
enrollment,
|
|
79
|
+
sentTo,
|
|
80
|
+
recoveryCodes,
|
|
81
|
+
backupCodesRemaining,
|
|
82
|
+
hasPassword,
|
|
83
|
+
actions: [...ACTIONS[kind], ...(kind === 'passkeys' && opts.addPasskey ? ['add_passkey'] : [])],
|
|
84
|
+
error: failure ? (0, errors_1.localizedErrorMessage)(failure, opts.localization) : null,
|
|
85
|
+
reason: failure?.reason ?? null,
|
|
86
|
+
stepUpRequired,
|
|
87
|
+
});
|
|
88
|
+
let current = view();
|
|
89
|
+
const emit = () => {
|
|
90
|
+
current = view();
|
|
91
|
+
for (const l of listeners)
|
|
92
|
+
l(current);
|
|
93
|
+
};
|
|
94
|
+
/** Run a call; on STEP_UP_REQUIRED re-authenticate through `choose` and run it once more. */
|
|
95
|
+
const guard = async (call) => {
|
|
96
|
+
const first = await call();
|
|
97
|
+
if (first.ok || !first.stepUpRequired || !stepper)
|
|
98
|
+
return first;
|
|
99
|
+
try {
|
|
100
|
+
await stepper.reauthenticate('sensitive_action');
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
if (e instanceof step_up_1.StepUpCancelledError)
|
|
104
|
+
return fail([{ code: e.code, reason: 'step_up_cancelled', message: e.message }], true);
|
|
105
|
+
const err = e;
|
|
106
|
+
return fail([{ code: err.code ?? 'UNAUTHENTICATED', ...(err.reason ? { reason: err.reason } : {}), message: err.message }], true);
|
|
107
|
+
}
|
|
108
|
+
return call();
|
|
109
|
+
};
|
|
110
|
+
/** Run an action: busy, step-up, publish the failure; `onOk` folds the value in. */
|
|
111
|
+
const act = async (call, onOk) => {
|
|
112
|
+
busy = true;
|
|
113
|
+
failure = null;
|
|
114
|
+
stepUpRequired = false;
|
|
115
|
+
emit();
|
|
116
|
+
const out = await guard(call);
|
|
117
|
+
if (out.ok)
|
|
118
|
+
await onOk(out.value);
|
|
119
|
+
else {
|
|
120
|
+
failure = out.errors[0] ?? { code: 'REQUEST_FAILED', message: 'The request failed.' };
|
|
121
|
+
stepUpRequired = out.stepUpRequired && !stepper;
|
|
122
|
+
}
|
|
123
|
+
busy = false;
|
|
124
|
+
emit();
|
|
125
|
+
};
|
|
126
|
+
const read = async () => {
|
|
127
|
+
const apply = (o, fold) => (o.ok ? (fold(o.value), { ok: true, value: undefined }) : o);
|
|
128
|
+
switch (kind) {
|
|
129
|
+
case 'sessions':
|
|
130
|
+
return apply(fromResult(await (0, account_security_1.listSessions)(client)), (r) => {
|
|
131
|
+
items = r.sessions.map((s) => ({ id: s.id, label: s.deviceLabel ?? ([s.browser, s.os].filter(Boolean).join(' on ') || null), detail: s.location ?? s.ipAddress, current: s.current, primary: false, verified: true }));
|
|
132
|
+
});
|
|
133
|
+
case 'mfa':
|
|
134
|
+
case 'recovery_codes':
|
|
135
|
+
return apply(fromResult(await (0, account_security_1.listMfaFactors)(client)), (r) => {
|
|
136
|
+
backupCodesRemaining = r.backupCodesRemaining;
|
|
137
|
+
items = kind === 'mfa' ? r.factors.map((f) => ({ id: f.id, label: f.type, detail: f.phone ?? null, current: false, primary: false, verified: f.verified })) : [];
|
|
138
|
+
});
|
|
139
|
+
case 'passkeys':
|
|
140
|
+
return apply(fromResult(await (0, account_security_1.listPasskeys)(client)), (r) => {
|
|
141
|
+
items = r.passkeys.map((p) => ({ id: p.id, label: p.name ?? p.authenticator?.name ?? null, detail: null, current: false, primary: false, verified: true }));
|
|
142
|
+
});
|
|
143
|
+
case 'phones':
|
|
144
|
+
return apply(await fromThrow(() => (0, phone_numbers_1.listPhoneNumbers)(client)), (list) => {
|
|
145
|
+
items = list.map((n) => ({ id: n.id, label: n.phone_number, detail: null, current: false, primary: n.primary, verified: n.verified }));
|
|
146
|
+
});
|
|
147
|
+
case 'connected_accounts':
|
|
148
|
+
case 'password': {
|
|
149
|
+
const me = await client.get('/v1/client/me');
|
|
150
|
+
if (!me.ok || !me.data)
|
|
151
|
+
return fail(me.errors);
|
|
152
|
+
hasPassword = me.data.has_password === true;
|
|
153
|
+
if (kind === 'connected_accounts')
|
|
154
|
+
items = (me.data.external_accounts ?? []).map((a) => ({ id: a.id, label: a.provider, detail: a.provider_email ?? null, current: false, primary: false, verified: true }));
|
|
155
|
+
if (kind === 'password')
|
|
156
|
+
step = hasPassword ? 'change_password' : 'set_password';
|
|
157
|
+
return { ok: true, value: undefined };
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const load = async () => {
|
|
162
|
+
busy = true;
|
|
163
|
+
failure = null;
|
|
164
|
+
stepUpRequired = false;
|
|
165
|
+
emit();
|
|
166
|
+
const out = await guard(read);
|
|
167
|
+
if (!out.ok) {
|
|
168
|
+
failure = out.errors[0] ?? { code: 'REQUEST_FAILED', message: 'The request failed.' };
|
|
169
|
+
stepUpRequired = out.stepUpRequired && !stepper;
|
|
170
|
+
}
|
|
171
|
+
loading = false;
|
|
172
|
+
busy = false;
|
|
173
|
+
emit();
|
|
174
|
+
};
|
|
175
|
+
const toList = () => {
|
|
176
|
+
step = kind === 'password' ? (hasPassword ? 'change_password' : 'set_password') : 'list';
|
|
177
|
+
enrollment = null;
|
|
178
|
+
factorId = null;
|
|
179
|
+
phoneId = null;
|
|
180
|
+
sentTo = null;
|
|
181
|
+
return read().then(() => undefined);
|
|
182
|
+
};
|
|
183
|
+
const showCodes = (codes) => {
|
|
184
|
+
recoveryCodes = codes;
|
|
185
|
+
step = 'recovery_codes';
|
|
186
|
+
};
|
|
187
|
+
void load();
|
|
188
|
+
return {
|
|
189
|
+
getView: () => current,
|
|
190
|
+
subscribe(listener) {
|
|
191
|
+
listeners.add(listener);
|
|
192
|
+
return () => void listeners.delete(listener);
|
|
193
|
+
},
|
|
194
|
+
load,
|
|
195
|
+
cancel() {
|
|
196
|
+
failure = null;
|
|
197
|
+
void toList().then(emit);
|
|
198
|
+
},
|
|
199
|
+
remove: (id) => act(async () => {
|
|
200
|
+
if (kind === 'sessions')
|
|
201
|
+
return fromResult(await (0, account_security_1.revokeAccountSession)(client, id));
|
|
202
|
+
if (kind === 'mfa')
|
|
203
|
+
return fromResult(await (0, account_security_1.removeMfaFactor)(client, id));
|
|
204
|
+
if (kind === 'passkeys')
|
|
205
|
+
return fromResult(await (0, account_security_1.removePasskey)(client, id));
|
|
206
|
+
if (kind === 'phones')
|
|
207
|
+
return fromThrow(() => (0, phone_numbers_1.removePhoneNumber)(client, id));
|
|
208
|
+
if (kind === 'connected_accounts')
|
|
209
|
+
return fromResult(await (0, account_security_1.unlinkExternalAccount)(client, id));
|
|
210
|
+
return fail([{ code: 'NOT_SUPPORTED', message: 'Nothing to remove here.' }]);
|
|
211
|
+
}, () => toList()),
|
|
212
|
+
revokeOthers: () => act(async () => (kind === 'sessions' ? fromResult(await (0, account_security_1.revokeAllSessions)(client)) : fail([{ code: 'NOT_SUPPORTED', message: 'Not available here.' }])), () => toList()),
|
|
213
|
+
startTotp: () => act(async () => fromResult(await (0, account_security_1.startTotp)(client)), (r) => {
|
|
214
|
+
enrollment = r.enrollment;
|
|
215
|
+
factorId = r.enrollment.factorId;
|
|
216
|
+
step = 'totp_enroll';
|
|
217
|
+
}),
|
|
218
|
+
startSms: (phone) => act(async () => fromResult(await (0, account_security_1.startSms)(client, phone.trim())), (r) => {
|
|
219
|
+
factorId = r.factorId;
|
|
220
|
+
sentTo = r.phone;
|
|
221
|
+
step = 'sms_verify';
|
|
222
|
+
}),
|
|
223
|
+
addPhone: (phone) => act(() => fromThrow(() => (0, phone_numbers_1.addPhoneNumber)(client, phone.trim())), (n) => {
|
|
224
|
+
phoneId = n.id;
|
|
225
|
+
sentTo = n.phone_number;
|
|
226
|
+
step = 'phone_verify';
|
|
227
|
+
}),
|
|
228
|
+
verifyPhone: (id) => act(() => fromThrow(() => (0, phone_numbers_1.preparePhoneNumberVerification)(client, id)), (n) => {
|
|
229
|
+
phoneId = n.id;
|
|
230
|
+
sentTo = n.phone_number;
|
|
231
|
+
step = 'phone_verify';
|
|
232
|
+
}),
|
|
233
|
+
makePrimary: (id) => act(() => fromThrow(() => (0, phone_numbers_1.setPrimaryPhoneNumber)(client, id)), () => toList()),
|
|
234
|
+
addPasskey: () => act(async () => {
|
|
235
|
+
if (!opts.addPasskey)
|
|
236
|
+
return fail([{ code: 'NOT_SUPPORTED', reason: 'native_unavailable', message: 'Passkeys are not set up in this app.' }]);
|
|
237
|
+
const r = await opts.addPasskey(client);
|
|
238
|
+
return r.ok ? { ok: true, value: undefined } : fail(r.errors, r.errors.some((e) => e.code === 'STEP_UP_REQUIRED'));
|
|
239
|
+
}, () => toList()),
|
|
240
|
+
regenerateCodes: () => act(async () => fromResult(await (0, account_security_1.regenerateBackupCodes)(client)), (r) => showCodes(r.codes)),
|
|
241
|
+
acknowledgeCodes() {
|
|
242
|
+
recoveryCodes = null;
|
|
243
|
+
void toList().then(emit);
|
|
244
|
+
},
|
|
245
|
+
submit: (values) => {
|
|
246
|
+
const code = (values.code ?? '').trim();
|
|
247
|
+
if (step === 'totp_enroll' && factorId) {
|
|
248
|
+
const id = factorId;
|
|
249
|
+
const codes = [code, (values.second_code ?? '').trim()].filter(Boolean);
|
|
250
|
+
return act(async () => fromResult(await (0, account_security_1.verifyTotp)(client, id, codes)), (r) => (r.backupCodes?.length ? showCodes(r.backupCodes) : toList()));
|
|
251
|
+
}
|
|
252
|
+
if (step === 'sms_verify' && factorId) {
|
|
253
|
+
const id = factorId;
|
|
254
|
+
return act(async () => fromResult(await (0, account_security_1.verifySms)(client, id, code)), (r) => (r.backupCodes?.length ? showCodes(r.backupCodes) : toList()));
|
|
255
|
+
}
|
|
256
|
+
if (step === 'phone_verify' && phoneId) {
|
|
257
|
+
const id = phoneId;
|
|
258
|
+
return act(() => fromThrow(() => (0, phone_numbers_1.attemptPhoneNumberVerification)(client, id, code)), () => toList());
|
|
259
|
+
}
|
|
260
|
+
if (step === 'change_password') {
|
|
261
|
+
return act(async () => fromResult(await (0, account_security_1.changePassword)(client, { currentPassword: values.current_password ?? '', newPassword: values.new_password ?? '' })), () => undefined);
|
|
262
|
+
}
|
|
263
|
+
if (step === 'set_password') {
|
|
264
|
+
return act(async () => fromResult(await (0, account_security_1.setPassword)(client, values.new_password ?? '')), () => {
|
|
265
|
+
hasPassword = true;
|
|
266
|
+
step = 'change_password';
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
return Promise.resolve();
|
|
270
|
+
},
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=security-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-section.js","sourceRoot":"","sources":["../src/security-section.ts"],"names":[],"mappings":"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"}
|
package/dist/sign-in-flow.d.ts
CHANGED
|
@@ -14,11 +14,12 @@
|
|
|
14
14
|
import { type FieldError, type PendingPolicy, type ProfileCompletionField } from './attempt';
|
|
15
15
|
import { type MfaEnrollment } from './mfa-enrollment';
|
|
16
16
|
import { type PolicyAcceptance } from './policies';
|
|
17
|
+
import { type PasskeyCaptchaSource } from './passkey-sign-in';
|
|
17
18
|
import { type WebAuthnHost } from './passkey';
|
|
18
19
|
import { type PasskeyAssertionProvider } from './passkey-second-factor';
|
|
19
20
|
import { type RecoveryChallenge } from './mfa-recovery';
|
|
20
21
|
import { type CaptchaFlowKey, type FlowCaptcha, type HeadlessCaptchaSolver } from './captcha-widget';
|
|
21
|
-
import { type FapiClient } from './fapi';
|
|
22
|
+
import { type FapiClient, type FlowState } from './fapi';
|
|
22
23
|
/** The second factors a headless flow can set up mid-sign-in: an authenticator app, or texted codes. */
|
|
23
24
|
export type EnrollableMethod = 'totp' | 'phone_code';
|
|
24
25
|
/** What a `needs_required_action` step asks for, by kind. Submit it with the method named on each. */
|
|
@@ -127,6 +128,19 @@ export interface FlowSnapshot {
|
|
|
127
128
|
/** After `sendSecondFactorCode('sms')`: the masked number the text went to (`+1 ••• 4821`); null otherwise. */
|
|
128
129
|
sentTo: string | null;
|
|
129
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* A sign-in the platform runs for you (the Apple or Google system sheet, a native passkey prompt): it returns the
|
|
133
|
+
* resulting attempt, and the flow takes it from there (second factor, policies, ticket exchange).
|
|
134
|
+
*/
|
|
135
|
+
export type NativeSignInProvider = (client: FapiClient, opts: {
|
|
136
|
+
captcha: PasskeyCaptchaSource | null;
|
|
137
|
+
}) => Promise<FlowState>;
|
|
138
|
+
export interface NativeSignInProviders {
|
|
139
|
+
/** Replaces the browser WebAuthn passkey sign-in (React Native: `nativePasskeySignIn(Passkey)` from `@atlasauth/expo-passkeys`). */
|
|
140
|
+
passkey?: NativeSignInProvider;
|
|
141
|
+
apple?: NativeSignInProvider;
|
|
142
|
+
google?: NativeSignInProvider;
|
|
143
|
+
}
|
|
130
144
|
export interface FlowOptions {
|
|
131
145
|
client: FapiClient;
|
|
132
146
|
/**
|
|
@@ -144,6 +158,8 @@ export interface FlowOptions {
|
|
|
144
158
|
* when the account holds one.
|
|
145
159
|
*/
|
|
146
160
|
passkeyAssertion?: PasskeyAssertionProvider;
|
|
161
|
+
/** The system-sheet sign-ins a native app runs (passkey, Apple, Google). See {@link NativeSignInProvider}. */
|
|
162
|
+
nativeSignIn?: NativeSignInProviders;
|
|
147
163
|
}
|
|
148
164
|
interface Core {
|
|
149
165
|
/** The current step, errors and busy flag. */
|
|
@@ -171,6 +187,8 @@ export interface SignInFlow extends Core {
|
|
|
171
187
|
submitEmailCode(code: string): Promise<FlowSnapshot>;
|
|
172
188
|
/** Sign in with a passkey (starts at `needs_identifier`; needs no identifier). */
|
|
173
189
|
signInWithPasskey(): Promise<FlowSnapshot>;
|
|
190
|
+
/** Sign in with the Apple or Google system sheet (the `nativeSignIn` option). A dismissed sheet is an error with reason `native_cancelled`. */
|
|
191
|
+
signInNative(provider: 'apple' | 'google'): Promise<FlowSnapshot>;
|
|
174
192
|
/** `needs_second_factor`: a code for `strategy` (default: authenticator app). */
|
|
175
193
|
submitSecondFactor(code: string, strategy?: (typeof SECOND_FACTOR_STRATEGIES)[number], options?: {
|
|
176
194
|
rememberDevice?: boolean;
|
package/dist/sign-in-flow.js
CHANGED
|
@@ -278,7 +278,7 @@ function createSignInFlow(opts) {
|
|
|
278
278
|
let viaPasskey = false;
|
|
279
279
|
const passkey = async (solved = false) => {
|
|
280
280
|
viaPasskey = true;
|
|
281
|
-
const snap = await core.run(() => (
|
|
281
|
+
const snap = await core.run(() => (opts.nativeSignIn?.passkey ?? passkey_sign_in_1.signInWithPasskey)(client, { captcha: core.captchaToken ? async () => core.takeCaptchaToken() : null }));
|
|
282
282
|
viaPasskey = await core.captchaStepFromErrors();
|
|
283
283
|
if (!viaPasskey)
|
|
284
284
|
return snap;
|
|
@@ -309,6 +309,12 @@ function createSignInFlow(opts) {
|
|
|
309
309
|
sendEmailCode: () => core.run(() => (0, fapi_1.prepareFactor)(client, core.flow, 'email_code')),
|
|
310
310
|
submitEmailCode: (code) => core.run(() => (0, fapi_1.advance)(client, core.flow, { code })),
|
|
311
311
|
signInWithPasskey: () => passkey(),
|
|
312
|
+
signInNative: (provider) => {
|
|
313
|
+
const run = opts.nativeSignIn?.[provider];
|
|
314
|
+
if (!run)
|
|
315
|
+
return core.run(async () => ({ ...core.flow, errors: [{ code: 'NATIVE_UNAVAILABLE', reason: 'native_unavailable', message: `Sign in with ${provider === 'apple' ? 'Apple' : 'Google'} is not set up in this app.` }] }));
|
|
316
|
+
return core.run(() => run(client, { captcha: null }));
|
|
317
|
+
},
|
|
312
318
|
submitSecondFactor: (code, strategy = 'totp', options = {}) => core.run(() => (0, fapi_1.advance)(client, core.flow, {
|
|
313
319
|
code,
|
|
314
320
|
...(strategy === 'email_code' ? { strategy } : {}),
|
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,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The view-model of a sign-in screen, with no UI and no framework.
|
|
3
|
+
*
|
|
4
|
+
* `createSignInScreen()` drives `createSignInFlow()` and answers the questions a
|
|
5
|
+
* screen asks: which step am I on, which methods can the person use, which
|
|
6
|
+
* fields do I draw, what do I show when it fails. You render `getView()`, call
|
|
7
|
+
* the actions, and re-render on `subscribe`. The server still decides the next
|
|
8
|
+
* step; this only shapes the flow's answers for a form. Errors come back as
|
|
9
|
+
* sentences in the app's language (`localization`), never as codes.
|
|
10
|
+
*
|
|
11
|
+
* The steps after the credentials are driven too: setting up a second factor
|
|
12
|
+
* (authenticator app with its QR code, or texts), saving the recovery codes,
|
|
13
|
+
* accepting policies and the required actions (new password, verify email,
|
|
14
|
+
* profile, a server-driven form, identity verification). `other` is only a step
|
|
15
|
+
* this SDK does not know yet; `flow` is there for it.
|
|
16
|
+
*/
|
|
17
|
+
import { type ErrorStrings } from './errors';
|
|
18
|
+
import type { PendingPolicy } from './attempt';
|
|
19
|
+
import { type FlowOptions, type FlowStep, type RequiredActionStep, type SignInFlow } from './sign-in-flow';
|
|
20
|
+
export type SignInScreenStep = 'identifier' | 'first_factor' | 'second_factor' | 'captcha' | 'redirect'
|
|
21
|
+
/** Mid-sign-in second-factor setup: pick `totp` or `sms`, see `enrollment`. */
|
|
22
|
+
| 'enroll_second_factor'
|
|
23
|
+
/** The factor is set up: show `recoveryCodes` once, then `acknowledgeRecoveryCodes()`. */
|
|
24
|
+
| 'recovery_codes'
|
|
25
|
+
/** `policies` to accept: `acceptPolicies()`. */
|
|
26
|
+
| 'policies'
|
|
27
|
+
/** A mailed code to confirm the address. */
|
|
28
|
+
| 'email_verification'
|
|
29
|
+
/** One owed action: see `requiredAction`. */
|
|
30
|
+
| 'required_action'
|
|
31
|
+
/** A step this SDK does not know yet; use `flow`. */
|
|
32
|
+
| 'other' | 'complete';
|
|
33
|
+
/** What the person can do on a step. `passkey`, `apple` and `google` on the identifier step are one-tap alternatives to typing an identifier. */
|
|
34
|
+
export type SignInMethod = 'password' | 'email_code' | 'passkey' | 'apple' | 'google' | 'totp' | 'sms' | 'backup_code';
|
|
35
|
+
export interface ScreenField {
|
|
36
|
+
/** `identifier`, `password`, `code`, `second_code`, `phone`, `new_password`, `first_name`, `last_name`, `username`, or a server-defined field key. */
|
|
37
|
+
name: string;
|
|
38
|
+
kind: 'text' | 'password' | 'code' | 'phone';
|
|
39
|
+
/** The platform autofill hint (`username`, `current-password`, `new-password`, `one-time-code`, `tel`). */
|
|
40
|
+
autoComplete: 'username' | 'current-password' | 'new-password' | 'one-time-code' | 'tel' | 'off';
|
|
41
|
+
secure: boolean;
|
|
42
|
+
/** Server-defined fields: the label to show, whether it must be filled, and the choices of a select. */
|
|
43
|
+
label?: string;
|
|
44
|
+
required?: boolean;
|
|
45
|
+
options?: string[];
|
|
46
|
+
}
|
|
47
|
+
/** Mid-sign-in second-factor setup. */
|
|
48
|
+
export interface ScreenEnrollment {
|
|
49
|
+
/** The authenticator app's setup, once started: scan `qrSvg` (trusted markup) or `qrCode` (a data URL), or type `secret`. */
|
|
50
|
+
totp: {
|
|
51
|
+
secret: string;
|
|
52
|
+
uri: string;
|
|
53
|
+
qrSvg: string | null;
|
|
54
|
+
qrCode: string | null;
|
|
55
|
+
} | null;
|
|
56
|
+
/** How many consecutive authenticator codes to ask for (field `code`, then `second_code`). */
|
|
57
|
+
totpCodes: 1 | 2;
|
|
58
|
+
/** After a text was sent: the masked number; the next field is the code. */
|
|
59
|
+
phone: string | null;
|
|
60
|
+
}
|
|
61
|
+
/** What the owed action asks for; the fields to draw are in the view's `fields`. */
|
|
62
|
+
export interface ScreenRequiredAction {
|
|
63
|
+
kind: RequiredActionStep['kind'];
|
|
64
|
+
title: string | null;
|
|
65
|
+
intro: string | null;
|
|
66
|
+
/** identity_verification and custom: where to send the person. */
|
|
67
|
+
url: string | null;
|
|
68
|
+
/** identity_verification: the check's status. */
|
|
69
|
+
status: string | null;
|
|
70
|
+
/** How many more actions are queued behind this one. */
|
|
71
|
+
remaining: number;
|
|
72
|
+
/** complete_profile: every field is optional, so it may be skipped (`submit({ skip: 'true' })`). */
|
|
73
|
+
skippable: boolean;
|
|
74
|
+
}
|
|
75
|
+
export interface SignInScreenView {
|
|
76
|
+
step: SignInScreenStep;
|
|
77
|
+
/** The choices for this step's factor (a password or an emailed code; an authenticator code, text, recovery code or passkey). */
|
|
78
|
+
methods: SignInMethod[];
|
|
79
|
+
/** The method the form is on: one of `methods`, or null where there is nothing to choose. */
|
|
80
|
+
method: SignInMethod | null;
|
|
81
|
+
/** The one-tap sign-ins the app set up (identifier step only). */
|
|
82
|
+
alternatives: SignInMethod[];
|
|
83
|
+
/** What to draw for the current method. Empty for a passkey (the platform prompt is the form). */
|
|
84
|
+
fields: ScreenField[];
|
|
85
|
+
/** The current method needs a code sent first (`sendCode()`), and it has not been yet. */
|
|
86
|
+
needsSend: boolean;
|
|
87
|
+
/** A code was sent for the current method; `resend()` is `sendCode()` again. */
|
|
88
|
+
codeSent: boolean;
|
|
89
|
+
/** After a text: the masked number it went to. */
|
|
90
|
+
sentTo: string | null;
|
|
91
|
+
busy: boolean;
|
|
92
|
+
/** The last failure as a sentence, or null. A dismissed system sheet is not a failure. */
|
|
93
|
+
error: string | null;
|
|
94
|
+
/** The stable reason behind `error`, for your own handling. */
|
|
95
|
+
reason: string | null;
|
|
96
|
+
/** The attempt id (for support or your own routes), once there is one. */
|
|
97
|
+
attemptId: string | null;
|
|
98
|
+
/** enroll_second_factor. */
|
|
99
|
+
enrollment: ScreenEnrollment | null;
|
|
100
|
+
/** recovery_codes: shown once. */
|
|
101
|
+
recoveryCodes: string[] | null;
|
|
102
|
+
/** policies. */
|
|
103
|
+
policies: PendingPolicy[];
|
|
104
|
+
/** required_action. */
|
|
105
|
+
requiredAction: ScreenRequiredAction | null;
|
|
106
|
+
/** The flow's own step, for `other` and for the details of `captcha` / `redirect`. */
|
|
107
|
+
flowStep: FlowStep;
|
|
108
|
+
}
|
|
109
|
+
export interface SignInScreenOptions extends FlowOptions {
|
|
110
|
+
/** A `@atlasauth/localizations` bundle (or lookup function) for error sentences. */
|
|
111
|
+
localization?: ErrorStrings | null;
|
|
112
|
+
}
|
|
113
|
+
export interface SignInScreen {
|
|
114
|
+
getView(): SignInScreenView;
|
|
115
|
+
subscribe(listener: (view: SignInScreenView) => void): () => void;
|
|
116
|
+
/** The underlying flow, for the steps reported as `other`. */
|
|
117
|
+
readonly flow: SignInFlow;
|
|
118
|
+
/**
|
|
119
|
+
* Pick a method on the current step (a text or an emailed code is not sent until `sendCode()`).
|
|
120
|
+
* On `enroll_second_factor`, `totp` starts the authenticator setup.
|
|
121
|
+
*/
|
|
122
|
+
selectMethod(method: SignInMethod): Promise<void>;
|
|
123
|
+
/** Send the code the current step needs (emailed first-factor code, a text / emailed second-factor code, or the verify-email code of a required action). */
|
|
124
|
+
sendCode(): Promise<void>;
|
|
125
|
+
/** The same as `sendCode()`, for a "send again" button. */
|
|
126
|
+
resend(): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Submit the form of the current step. Values are by field name (`identifier`, `password`, `code`);
|
|
129
|
+
* `remember_device: 'true'` on a second factor skips it next time. For the passkey method no values are needed.
|
|
130
|
+
*/
|
|
131
|
+
submit(values?: Record<string, string>): Promise<void>;
|
|
132
|
+
/** The one-tap sign-ins (identifier step). */
|
|
133
|
+
signInWithPasskey(): Promise<void>;
|
|
134
|
+
signInWithApple(): Promise<void>;
|
|
135
|
+
signInWithGoogle(): Promise<void>;
|
|
136
|
+
/** recovery_codes: the person saved them. */
|
|
137
|
+
acknowledgeRecoveryCodes(): Promise<void>;
|
|
138
|
+
/**
|
|
139
|
+
* policies: accept what the step lists (all of it, or only `only` keys). Pass `scrolledToEnd` / `viewMs` as
|
|
140
|
+
* evidence for a scroll-to-accept policy.
|
|
141
|
+
*/
|
|
142
|
+
acceptPolicies(options?: {
|
|
143
|
+
only?: string[];
|
|
144
|
+
scrolledToEnd?: boolean;
|
|
145
|
+
viewMs?: number;
|
|
146
|
+
}): Promise<void>;
|
|
147
|
+
/** required_action / identity_verification: open the check; the action's `url` is where the person goes. */
|
|
148
|
+
startIdentityVerification(redirectUrl?: string): Promise<void>;
|
|
149
|
+
/** required_action / identity_verification: read the verdict after the person came back. */
|
|
150
|
+
checkIdentityVerification(): Promise<void>;
|
|
151
|
+
/** Answer a `captcha` step with a token you obtained yourself. */
|
|
152
|
+
submitCaptcha(token: string): Promise<void>;
|
|
153
|
+
/** Start over from the identifier. */
|
|
154
|
+
reset(): void;
|
|
155
|
+
}
|
|
156
|
+
export declare function createSignInScreen(opts: SignInScreenOptions): SignInScreen;
|