@atlasauth/js 0.39.0 → 0.41.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.
@@ -19,6 +19,8 @@ export interface HotpEnrollment extends EnrolledFactor {
19
19
  secret: string;
20
20
  /** The `otpauth://hotp/` URI (for a QR code). */
21
21
  uri: string;
22
+ /** The URI as an inline SVG QR code. */
23
+ qr_svg?: string;
22
24
  digits: number;
23
25
  }
24
26
  /** Start HOTP enrolment: returns the secret and URI once. Confirm with {@link verifyHotp}. */
@@ -1 +1 @@
1
- {"version":3,"file":"mfa-factors.js","sourceRoot":"","sources":["../src/mfa-factors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mfa-factors.js","sourceRoot":"","sources":["../src/mfa-factors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { FapiClient } from './fapi';
2
+ /** The identity check a person opens to recover an account that lost every second factor. */
3
+ export interface RecoveryChallenge {
4
+ verificationId: string;
5
+ /** Where the person verifies their identity (null once the check left the pending state). */
6
+ url: string | null;
7
+ status: 'pending' | 'approved' | 'declined' | 'needs_review';
8
+ /** Unix ms; the check cannot be used after this. */
9
+ expiresAt: number;
10
+ }
11
+ /**
12
+ * Whether this sign-in attempt can recover through an identity check: the application turned it on,
13
+ * identity verification can report who was verified, and the account holds an earlier approved check
14
+ * to match against. Call it once the first factor passed (`needs_second_factor`).
15
+ */
16
+ export declare function canRecoverWithIdentityCheck(client: FapiClient, attemptId: string): Promise<boolean>;
17
+ /** Start the identity check for this sign-in attempt. Send the person to `url`; then poll with `attempt_second_factor` `{ strategy: 'identity_verification' }`. */
18
+ export declare function startIdentityCheckRecovery(client: FapiClient, attemptId: string, redirectUrl?: string): Promise<RecoveryChallenge>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.canRecoverWithIdentityCheck = canRecoverWithIdentityCheck;
4
+ exports.startIdentityCheckRecovery = startIdentityCheckRecovery;
5
+ const fail = (response, fallback) => {
6
+ const first = response.errors[0];
7
+ const error = new Error(first?.message ?? fallback);
8
+ if (first?.code)
9
+ error.code = first.code;
10
+ if (first?.reason)
11
+ error.reason = first.reason;
12
+ throw error;
13
+ };
14
+ /**
15
+ * Whether this sign-in attempt can recover through an identity check: the application turned it on,
16
+ * identity verification can report who was verified, and the account holds an earlier approved check
17
+ * to match against. Call it once the first factor passed (`needs_second_factor`).
18
+ */
19
+ async function canRecoverWithIdentityCheck(client, attemptId) {
20
+ const response = await client.get(`/v1/client/sign_ins/${encodeURIComponent(attemptId)}/second_factors`);
21
+ return response.ok && Array.isArray(response.data?.factors) && response.data.factors.includes('identity_verification');
22
+ }
23
+ /** Start the identity check for this sign-in attempt. Send the person to `url`; then poll with `attempt_second_factor` `{ strategy: 'identity_verification' }`. */
24
+ async function startIdentityCheckRecovery(client, attemptId, redirectUrl) {
25
+ const response = await client.post(`/v1/client/sign_ins/${encodeURIComponent(attemptId)}/prepare_second_factor`, { strategy: 'identity_verification', ...(redirectUrl ? { redirect_url: redirectUrl } : {}) });
26
+ if (!response.ok)
27
+ return fail(response, 'Could not start the identity check.');
28
+ const d = response.data;
29
+ const status = d?.status === 'approved' || d?.status === 'declined' || d?.status === 'needs_review' ? d.status : 'pending';
30
+ return {
31
+ verificationId: typeof d?.verification_id === 'string' ? d.verification_id : '',
32
+ url: typeof d?.url === 'string' ? d.url : null,
33
+ status,
34
+ expiresAt: typeof d?.expires_at === 'number' ? d.expires_at : 0,
35
+ };
36
+ }
37
+ //# sourceMappingURL=mfa-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfa-recovery.js","sourceRoot":"","sources":["../src/mfa-recovery.ts"],"names":[],"mappings":";;AAyBA,kEAGC;AAGD,gEAcC;AAjCD,MAAM,IAAI,GAAG,CAAC,QAAiF,EAAE,QAAgB,EAAS,EAAE;IAC1H,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,CAA+C,CAAC;IAClG,IAAI,KAAK,EAAE,IAAI;QAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACzC,IAAI,KAAK,EAAE,MAAM;QAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC/C,MAAM,KAAK,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACI,KAAK,UAAU,2BAA2B,CAAC,MAAkB,EAAE,SAAiB;IACrF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAwB,uBAAuB,kBAAkB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAChI,OAAO,QAAQ,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AACzH,CAAC;AAED,mKAAmK;AAC5J,KAAK,UAAU,0BAA0B,CAAC,MAAkB,EAAE,SAAiB,EAAE,WAAoB;IAC1G,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,uBAAuB,kBAAkB,CAAC,SAAS,CAAC,wBAAwB,EAC5E,EAAE,QAAQ,EAAE,uBAAuB,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAC7F,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,qCAAqC,CAAC,CAAC;IAC/E,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;IACxB,MAAM,MAAM,GAAG,CAAC,EAAE,MAAM,KAAK,UAAU,IAAI,CAAC,EAAE,MAAM,KAAK,UAAU,IAAI,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3H,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;QAC/E,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;QAC9C,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAChE,CAAC;AACJ,CAAC"}
package/dist/native.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  * id_token. The app posts that to `/v1/client/sign_ins/id_token` and then reads
8
8
  * the result exactly like any other attempt (nextStep / a returned ticket).
9
9
  */
10
+ import type { FieldError } from './attempt';
10
11
  import { type FapiClient, type FlowState } from './fapi';
11
12
  export interface NativeSignInBody {
12
13
  provider: string;
@@ -53,6 +54,33 @@ export declare function nativeSignIn(client: FapiClient, input: {
53
54
  idToken: string;
54
55
  nonce?: string;
55
56
  }): Promise<FlowState>;
57
+ /** The identity a native id_token link added (`POST /v1/client/me/external_accounts`). */
58
+ export interface LinkedExternalAccount {
59
+ object: 'external_account';
60
+ id: string | null;
61
+ provider: string;
62
+ provider_email: string | null;
63
+ /** Epoch milliseconds. */
64
+ connected_at: number;
65
+ }
66
+ export interface LinkExternalAccountResult {
67
+ ok: boolean;
68
+ account: LinkedExternalAccount | null;
69
+ /** `IDENTITY_ALREADY_LINKED` (409) when it belongs to another user or you already have that provider; `STEP_UP_REQUIRED` (403) when a fresh sign-in is needed. */
70
+ errors: FieldError[];
71
+ }
72
+ /**
73
+ * Link a Google (GSI) or Apple id_token to the SIGNED-IN user, with no redirect
74
+ * and no client secret. Mint the nonce with {@link mintNativeNonce}, hand it to
75
+ * the provider SDK, then post the resulting token with the same nonce. Needs a
76
+ * recent re-authentication; the new identity then shows in `external_accounts`
77
+ * on `GET /v1/client`.
78
+ */
79
+ export declare function linkExternalAccountWithIdToken(client: FapiClient, input: {
80
+ provider: string;
81
+ idToken: string;
82
+ nonce?: string;
83
+ }): Promise<LinkExternalAccountResult>;
56
84
  /** The client-observed reason a native (in-page) provider could not be used. */
57
85
  export type ProviderUnavailableReason = 'script_blocked' | 'not_rendered';
58
86
  /**
package/dist/native.js CHANGED
@@ -13,6 +13,7 @@ exports.nativeSignInBody = nativeSignInBody;
13
13
  exports.parseNativeSignInResponse = parseNativeSignInResponse;
14
14
  exports.mintNativeNonce = mintNativeNonce;
15
15
  exports.nativeSignIn = nativeSignIn;
16
+ exports.linkExternalAccountWithIdToken = linkExternalAccountWithIdToken;
16
17
  exports.reportProviderUnavailable = reportProviderUnavailable;
17
18
  exports.loadGoogleIdentityServices = loadGoogleIdentityServices;
18
19
  exports.resetGoogleIdentityServices = resetGoogleIdentityServices;
@@ -82,6 +83,17 @@ async function nativeSignIn(client, input) {
82
83
  ticket: response.data.ticket ?? null,
83
84
  };
84
85
  }
86
+ /**
87
+ * Link a Google (GSI) or Apple id_token to the SIGNED-IN user, with no redirect
88
+ * and no client secret. Mint the nonce with {@link mintNativeNonce}, hand it to
89
+ * the provider SDK, then post the resulting token with the same nonce. Needs a
90
+ * recent re-authentication; the new identity then shows in `external_accounts`
91
+ * on `GET /v1/client`.
92
+ */
93
+ async function linkExternalAccountWithIdToken(client, input) {
94
+ const response = await client.post('/v1/client/me/external_accounts', nativeSignInBody(input));
95
+ return { ok: response.ok && !!response.data, account: response.ok ? response.data : null, errors: response.errors };
96
+ }
85
97
  /**
86
98
  * Best-effort health beacon: tell Atlas's server that a native (in-page)
87
99
  * provider could not be rendered/used on this page, so the dashboard can surface
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Finish a sign-in that stopped at `needs_second_factor` with a passkey, given
3
+ * only the attempt id. Works for an attempt your own code started (password,
4
+ * email code, native sign-in), not just one run by `createSignInFlow`.
5
+ *
6
+ * POST /v1/client/sign_ins/{id}/prepare_second_factor { strategy: 'passkey' }
7
+ * → the platform passkey prompt
8
+ * → POST /v1/client/sign_ins/{id}/attempt_second_factor { strategy: 'passkey', … }
9
+ */
10
+ import type { FieldError } from './attempt';
11
+ import type { FapiClient } from './fapi';
12
+ import { type WebAuthnHost } from './passkey';
13
+ /** The signed assertion `attempt_second_factor` checks. */
14
+ export interface PasskeySecondFactorAssertion {
15
+ challenge: string;
16
+ credential_id: string;
17
+ authenticator_data: string;
18
+ client_data_json: string;
19
+ signature: string;
20
+ }
21
+ /**
22
+ * Runs the passkey prompt for a second-factor challenge. Browsers use WebAuthn
23
+ * by default; React Native passes `nativePasskeyAssertion(Passkey)` from
24
+ * `@atlasauth/expo-passkeys`.
25
+ */
26
+ export type PasskeyAssertionProvider = (challenge: Record<string, unknown>) => Promise<PasskeySecondFactorAssertion>;
27
+ export type PasskeySecondFactorResult = {
28
+ ok: true;
29
+ /** The attempt status after the passkey: `complete`, or a later step still owed. */
30
+ status: string;
31
+ attemptId: string;
32
+ /** One-time ticket to exchange for a session, present when `status` is `complete`. */
33
+ ticket: string | null;
34
+ } | {
35
+ ok: false;
36
+ errors: FieldError[];
37
+ status: number;
38
+ };
39
+ /** Prompt for the passkey with the given provider, or WebAuthn when there is none. */
40
+ export declare function passkeySecondFactorAssertion(challenge: Record<string, unknown>, opts?: {
41
+ passkeyAssertion?: PasskeyAssertionProvider;
42
+ host?: WebAuthnHost;
43
+ }): Promise<PasskeySecondFactorAssertion>;
44
+ /** The `attempt_second_factor` body for a passkey assertion. */
45
+ export declare function passkeySecondFactorBody(a: PasskeySecondFactorAssertion, rememberDevice?: boolean): Record<string, string>;
46
+ /**
47
+ * Complete the second factor of an existing sign-in attempt with a passkey the
48
+ * user holds. A cancelled prompt answers `passkey_cancelled`; a wrong or foreign
49
+ * passkey answers the server's refusal.
50
+ */
51
+ export declare function completePasskeySecondFactor(client: FapiClient, attemptId: string, opts?: {
52
+ passkeyAssertion?: PasskeyAssertionProvider;
53
+ host?: WebAuthnHost;
54
+ rememberDevice?: boolean;
55
+ }): Promise<PasskeySecondFactorResult>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.passkeySecondFactorAssertion = passkeySecondFactorAssertion;
4
+ exports.passkeySecondFactorBody = passkeySecondFactorBody;
5
+ exports.completePasskeySecondFactor = completePasskeySecondFactor;
6
+ const passkey_1 = require("./passkey");
7
+ /** Prompt for the passkey with the given provider, or WebAuthn when there is none. */
8
+ async function passkeySecondFactorAssertion(challenge, opts = {}) {
9
+ if (opts.passkeyAssertion)
10
+ return opts.passkeyAssertion(challenge);
11
+ const a = await (0, passkey_1.getPasskeyAssertion)(challenge, opts.host ? { host: opts.host } : {});
12
+ return {
13
+ challenge: a.challenge,
14
+ credential_id: a.credential_id,
15
+ authenticator_data: a.authenticator_data,
16
+ client_data_json: a.client_data_json,
17
+ signature: a.signature,
18
+ };
19
+ }
20
+ /** The `attempt_second_factor` body for a passkey assertion. */
21
+ function passkeySecondFactorBody(a, rememberDevice) {
22
+ return {
23
+ strategy: 'passkey',
24
+ challenge: a.challenge,
25
+ credential_id: a.credential_id,
26
+ authenticator_data: a.authenticator_data,
27
+ client_data_json: a.client_data_json,
28
+ signature: a.signature,
29
+ ...(rememberDevice ? { remember_device: 'true' } : {}),
30
+ };
31
+ }
32
+ /**
33
+ * Complete the second factor of an existing sign-in attempt with a passkey the
34
+ * user holds. A cancelled prompt answers `passkey_cancelled`; a wrong or foreign
35
+ * passkey answers the server's refusal.
36
+ */
37
+ async function completePasskeySecondFactor(client, attemptId, opts = {}) {
38
+ const path = `/v1/client/sign_ins/${encodeURIComponent(attemptId)}`;
39
+ const prepared = await client.post(`${path}/prepare_second_factor`, { strategy: 'passkey' });
40
+ if (!prepared.ok || !prepared.data)
41
+ return { ok: false, errors: prepared.errors, status: prepared.status };
42
+ let assertion;
43
+ try {
44
+ assertion = await passkeySecondFactorAssertion(prepared.data, opts);
45
+ }
46
+ catch (e) {
47
+ return {
48
+ ok: false,
49
+ status: 0,
50
+ errors: [{ code: 'passkey_cancelled', message: e instanceof Error ? e.message : 'The passkey prompt was cancelled.', reason: 'passkey_cancelled' }],
51
+ };
52
+ }
53
+ const res = await client.post(`${path}/attempt_second_factor`, passkeySecondFactorBody(assertion, opts.rememberDevice));
54
+ if (!res.ok || !res.data)
55
+ return { ok: false, errors: res.errors, status: res.status };
56
+ return { ok: true, status: res.data.status ?? 'unknown', attemptId: res.data.id ?? attemptId, ticket: res.data.ticket ?? null };
57
+ }
58
+ //# sourceMappingURL=passkey-second-factor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey-second-factor.js","sourceRoot":"","sources":["../src/passkey-second-factor.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import type { AttemptView, FieldError, PendingRequiredAction } from './attempt';
15
15
  import { type FapiClient, type FlowState } from './fapi';
16
+ import { type HeadlessCaptchaSolver } from './captcha-widget';
16
17
  export interface ResetAttempt {
17
18
  id: string;
18
19
  status: string;
@@ -44,7 +45,12 @@ export interface ResetFlowState {
44
45
  }
45
46
  export declare const initialResetFlow: ResetFlowState;
46
47
  /** Begin a reset: email the code. Returns a flow parked at `needs_email_verification`. */
47
- export declare function startPasswordReset(client: FapiClient, email: string, captchaToken?: string): Promise<ResetFlowState>;
48
+ export declare function startPasswordReset(client: FapiClient, email: string, captchaToken?: string,
49
+ /** Where the installed headless solver answers a captcha the server asks for; `signal` cancels it. */
50
+ opts?: {
51
+ signal?: AbortSignal;
52
+ solver?: HeadlessCaptchaSolver | null;
53
+ }): Promise<ResetFlowState>;
48
54
  /**
49
55
  * Advance the reset by one step, routing on the current status: the emailed code
50
56
  * → verification, a 2FA code → second factor, a new password → set-password. On
@@ -9,6 +9,8 @@ exports.pollPasswordReset = pollPasswordReset;
9
9
  const email_link_1 = require("./email-link");
10
10
  const fapi_1 = require("./fapi");
11
11
  const mfa_factors_1 = require("./mfa-factors");
12
+ const instance_settings_1 = require("./instance-settings");
13
+ const captcha_widget_1 = require("./captcha-widget");
12
14
  exports.initialResetFlow = {
13
15
  attempt: null,
14
16
  errors: [],
@@ -16,13 +18,24 @@ exports.initialResetFlow = {
16
18
  ticket: null,
17
19
  };
18
20
  /** Begin a reset: email the code. Returns a flow parked at `needs_email_verification`. */
19
- async function startPasswordReset(client, email, captchaToken) {
21
+ async function startPasswordReset(client, email, captchaToken,
22
+ /** Where the installed headless solver answers a captcha the server asks for; `signal` cancels it. */
23
+ opts = {}) {
20
24
  const res = await client.post('/v1/client/password_resets', {
21
25
  email_address: email,
22
26
  captcha_token: captchaToken,
23
27
  });
24
- if (!res.ok || !res.data)
28
+ if (!res.ok || !res.data) {
29
+ // No DOM to draw in (React Native): solve with the installed solver and resend, once.
30
+ const solver = opts.solver === undefined ? (0, captcha_widget_1.getHeadlessCaptchaSolver)() : opts.solver;
31
+ if (solver && !captchaToken && !opts.signal?.aborted && res.errors.some(captcha_widget_1.isCaptchaError)) {
32
+ const captcha = (await (0, instance_settings_1.fetchInstanceSettings)(client))?.captchaFlows.passwordReset;
33
+ const token = captcha ? await solver(captcha, { flow: 'passwordReset', signal: opts.signal }).catch(() => null) : null;
34
+ if (token)
35
+ return startPasswordReset(client, email, token, { ...opts, solver: null });
36
+ }
25
37
  return { ...exports.initialResetFlow, errors: res.errors };
38
+ }
26
39
  (0, email_link_1.rememberLinkProof)(res.data.id, res.data);
27
40
  return { attempt: res.data, errors: [], busy: false, ticket: null };
28
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"password-reset.js","sourceRoot":"","sources":["../src/password-reset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"password-reset.js","sourceRoot":"","sources":["../src/password-reset.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,10 @@
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 CaptchaFlowKey, type FlowCaptcha } from './captcha-widget';
17
+ import { type WebAuthnHost } from './passkey';
18
+ import { type PasskeyAssertionProvider } from './passkey-second-factor';
19
+ import { type RecoveryChallenge } from './mfa-recovery';
20
+ import { type CaptchaFlowKey, type FlowCaptcha, type HeadlessCaptchaSolver } from './captcha-widget';
18
21
  import { type FapiClient } from './fapi';
19
22
  /** The second factors a headless flow can set up mid-sign-in: an authenticator app, or texted codes. */
20
23
  export type EnrollableMethod = 'totp' | 'phone_code';
@@ -66,9 +69,12 @@ export type FlowStep = {
66
69
  } | {
67
70
  type: 'needs_first_factor';
68
71
  factors: string[];
69
- } | {
72
+ }
73
+ /** `recovery` is set after `startRecovery()`: the identity check the person is doing to recover an account that lost every second factor. */
74
+ | {
70
75
  type: 'needs_second_factor';
71
76
  factors: string[];
77
+ recovery?: RecoveryChallenge;
72
78
  } | {
73
79
  type: 'needs_policy_acceptance';
74
80
  policies: PendingPolicy[];
@@ -119,6 +125,21 @@ export interface FlowSnapshot {
119
125
  }
120
126
  export interface FlowOptions {
121
127
  client: FapiClient;
128
+ /**
129
+ * Answers a captcha with no DOM (React Native). Defaults to the solver
130
+ * installed with `setHeadlessCaptchaSolver`; when there is none the flow stops
131
+ * at `needs_captcha` for `solveCaptcha(container)` / `submitCaptcha(token)`.
132
+ */
133
+ captchaSolver?: HeadlessCaptchaSolver | null;
134
+ /** Cancels an automatic captcha solve in progress. */
135
+ signal?: AbortSignal;
136
+ /**
137
+ * Runs the passkey prompt for the passkey second factor where there is no
138
+ * WebAuthn (React Native: `nativePasskeyAssertion(Passkey)` from
139
+ * `@atlasauth/expo-passkeys`). With it, `needs_second_factor` offers `passkey`
140
+ * when the account holds one.
141
+ */
142
+ passkeyAssertion?: PasskeyAssertionProvider;
122
143
  }
123
144
  interface Core {
124
145
  /** The current step, errors and busy flag. */
@@ -150,8 +171,22 @@ export interface SignInFlow extends Core {
150
171
  submitSecondFactor(code: string, strategy?: (typeof SECOND_FACTOR_STRATEGIES)[number], options?: {
151
172
  rememberDevice?: boolean;
152
173
  }): Promise<FlowSnapshot>;
174
+ /**
175
+ * `needs_second_factor` with `'passkey'` among the factors: run the WebAuthn ceremony (the browser prompts)
176
+ * and submit the assertion. A cancelled prompt leaves the step as it was, with an error whose reason is `passkey_cancelled`.
177
+ */
178
+ submitPasskeySecondFactor(options?: {
179
+ rememberDevice?: boolean;
180
+ host?: WebAuthnHost;
181
+ }): Promise<FlowSnapshot>;
153
182
  /** `needs_second_factor`: send a text or emailed code, then `submitSecondFactor(code, 'sms' | 'email_code')`. */
154
183
  sendSecondFactorCode(strategy: 'sms' | 'email_code'): Promise<FlowSnapshot>;
184
+ /** `needs_second_factor`: whether the person can recover through an identity check (the app turned it on and the account can use it). */
185
+ canRecover(): Promise<boolean>;
186
+ /** `needs_second_factor`: start the identity check for a person who lost every second factor. The step's `recovery.url` is where they go. */
187
+ startRecovery(redirectUrl?: string): Promise<FlowSnapshot>;
188
+ /** `needs_second_factor` after `startRecovery()`: read the verdict. Pass `newPassword` when the app asks for one (error reason `new_password_required`); the step becomes `complete` once the factors were reset. */
189
+ checkRecovery(newPassword?: string): Promise<FlowSnapshot>;
155
190
  /** `needs_mfa_enrollment`: begin the authenticator app. The step's `enrollment` then holds `secret` and `uri` (and `qrCode` when sent). */
156
191
  startTotpEnrollment(): Promise<FlowSnapshot>;
157
192
  /** `needs_mfa_enrollment`: text a code to `phone` (E.164). The step's `enrollment.phone` is the masked number. */