@atlasauth/js 0.40.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/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
 
4
4
 
5
+ ## 0.41.0 — 2026-11-13
6
+
7
+ - `completePasskeySecondFactor(client, attemptId, opts)` finishes the passkey second factor of an attempt your own code started.
8
+ - `createSignInFlow({ passkeyAssertion })` offers and runs the passkey second factor where there is no WebAuthn (React Native).
9
+ - `revokeAllTrustedDevices` forgets every trusted device.
10
+
5
11
  ## 0.40.0 — 2026-11-13
6
12
 
7
13
  - `changePassword`, `setPassword`, `listTrustedDevices`, `revokeTrustedDevice`; TOTP enrolment returns `qr_svg`.
@@ -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;
@@ -71,3 +72,168 @@ export type RevokeTrustedDeviceResult = {
71
72
  };
72
73
  /** Stop trusting one device: the next sign-in on it must pass two-factor again. Unknown id answers 404. */
73
74
  export declare function revokeTrustedDevice(client: FapiClient, id: string): Promise<RevokeTrustedDeviceResult>;
75
+ export type RevokeAllTrustedDevicesResult = {
76
+ ok: true;
77
+ count: number;
78
+ } | {
79
+ ok: false;
80
+ errors: FieldError[];
81
+ status: number;
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. */
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>;
@@ -4,6 +4,23 @@ exports.changePassword = changePassword;
4
4
  exports.setPassword = setPassword;
5
5
  exports.listTrustedDevices = listTrustedDevices;
6
6
  exports.revokeTrustedDevice = revokeTrustedDevice;
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");
7
24
  /**
8
25
  * Change the password of the signed-in user. Proves the CURRENT password (no recent sign-in needed),
9
26
  * applies the sign-up password policy, and signs the user's other sessions out unless the instance opted out.
@@ -50,4 +67,142 @@ async function revokeTrustedDevice(client, id) {
50
67
  const res = await client.request(`/v1/client/me/trusted_devices/${encodeURIComponent(id)}`, { method: 'DELETE' });
51
68
  return res.ok ? { ok: true } : { ok: false, errors: res.errors, status: res.status };
52
69
  }
70
+ /** Forget every device this user trusted: each must pass two-factor again on its next sign-in. `count` is how many were forgotten. */
71
+ async function revokeAllTrustedDevices(client) {
72
+ const res = await client.request('/v1/client/me/trusted_devices', { method: 'DELETE' });
73
+ return res.ok ? { ok: true, count: typeof res.data?.count === 'number' ? res.data.count : 0 } : { ok: false, errors: res.errors, status: res.status };
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
+ }
53
208
  //# sourceMappingURL=account-security.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-security.js","sourceRoot":"","sources":["../src/account-security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-security.js","sourceRoot":"","sources":["../src/account-security.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -63,6 +63,7 @@ export * from './mfa-recovery';
63
63
  export * from './identity-verification';
64
64
  export * from './avatar';
65
65
  export * from './account-security';
66
+ export * from './passkey-second-factor';
66
67
  export * from './iga';
67
68
  export * from './resource-sharing';
68
69
  export * from './profile';
@@ -88,3 +89,4 @@ export * from './delegated-ui';
88
89
  export * from './external-passkeys';
89
90
  export * from './credentials';
90
91
  export * from './uma';
92
+ export * from './step-up-flow';
package/dist/index.js CHANGED
@@ -117,6 +117,7 @@ __exportStar(require("./mfa-recovery"), exports);
117
117
  __exportStar(require("./identity-verification"), exports);
118
118
  __exportStar(require("./avatar"), exports);
119
119
  __exportStar(require("./account-security"), exports);
120
+ __exportStar(require("./passkey-second-factor"), exports);
120
121
  // Identity governance: request access, approve, review, delegate.
121
122
  __exportStar(require("./iga"), exports);
122
123
  __exportStar(require("./resource-sharing"), exports);
@@ -169,4 +170,6 @@ __exportStar(require("./external-passkeys"), exports);
169
170
  // Wallet-side helpers for verifiable credentials (receive an offer, present an SD-JWT VC).
170
171
  __exportStar(require("./credentials"), exports);
171
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);
172
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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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"}
@@ -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
@@ -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":"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"}
1
+ {"version":3,"file":"passkey-sign-in.js","sourceRoot":"","sources":["../src/passkey-sign-in.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { type FieldError, type PendingPolicy, type ProfileCompletionField } from
15
15
  import { type MfaEnrollment } from './mfa-enrollment';
16
16
  import { type PolicyAcceptance } from './policies';
17
17
  import { type WebAuthnHost } from './passkey';
18
+ import { type PasskeyAssertionProvider } from './passkey-second-factor';
18
19
  import { type RecoveryChallenge } from './mfa-recovery';
19
20
  import { type CaptchaFlowKey, type FlowCaptcha, type HeadlessCaptchaSolver } from './captcha-widget';
20
21
  import { type FapiClient } from './fapi';
@@ -57,7 +58,7 @@ export type RequiredActionStep =
57
58
  kind: 'custom';
58
59
  url: string | null;
59
60
  };
60
- /** Second-factor strategies the server accepts. Not narrowed per account: that would reveal what the account has. */
61
+ /** Second-factor strategies the server accepts; `needs_second_factor.factors` narrows them to what the account holds. */
61
62
  export declare const SECOND_FACTOR_STRATEGIES: readonly ["totp", "backup_code", "sms", "email_code"];
62
63
  export type FlowStep = {
63
64
  type: 'needs_identifier';
@@ -121,6 +122,10 @@ export interface FlowSnapshot {
121
122
  /** The first error's stable reason, or the captcha refusal's. */
122
123
  reason: string | null;
123
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;
124
129
  }
125
130
  export interface FlowOptions {
126
131
  client: FapiClient;
@@ -132,6 +137,13 @@ export interface FlowOptions {
132
137
  captchaSolver?: HeadlessCaptchaSolver | null;
133
138
  /** Cancels an automatic captcha solve in progress. */
134
139
  signal?: AbortSignal;
140
+ /**
141
+ * Runs the passkey prompt for the passkey second factor where there is no
142
+ * WebAuthn (React Native: `nativePasskeyAssertion(Passkey)` from
143
+ * `@atlasauth/expo-passkeys`). With it, `needs_second_factor` offers `passkey`
144
+ * when the account holds one.
145
+ */
146
+ passkeyAssertion?: PasskeyAssertionProvider;
135
147
  }
136
148
  interface Core {
137
149
  /** The current step, errors and busy flag. */
@@ -22,11 +22,12 @@ const mfa_enrollment_1 = require("./mfa-enrollment");
22
22
  const policies_1 = require("./policies");
23
23
  const passkey_sign_in_1 = require("./passkey-sign-in");
24
24
  const passkey_1 = require("./passkey");
25
+ const passkey_second_factor_1 = require("./passkey-second-factor");
25
26
  const mfa_recovery_1 = require("./mfa-recovery");
26
27
  const redirect_1 = require("./redirect");
27
28
  const captcha_widget_1 = require("./captcha-widget");
28
29
  const fapi_1 = require("./fapi");
29
- /** Second-factor strategies the server accepts. Not narrowed per account: that would reveal what the account has. */
30
+ /** Second-factor strategies the server accepts; `needs_second_factor.factors` narrows them to what the account holds. */
30
31
  exports.SECOND_FACTOR_STRATEGIES = ['totp', 'backup_code', 'sms', 'email_code'];
31
32
  /** The typed step for the first owed action, or null for a kind this SDK does not know. */
32
33
  function requiredActionStep(a, iv) {
@@ -61,8 +62,9 @@ function makeCore(opts, captchaFlow) {
61
62
  let enrollment = null;
62
63
  let recovery = null;
63
64
  let redirect = null;
65
+ let sentTo = null;
64
66
  const listeners = new Set();
65
- const snapshot = () => ({ step, errors, reason, busy });
67
+ const snapshot = () => ({ step, errors, reason, busy, attemptId: flow.attempt?.id ?? null, sentTo });
66
68
  const emit = () => {
67
69
  const s = snapshot();
68
70
  for (const l of listeners)
@@ -80,18 +82,29 @@ function makeCore(opts, captchaFlow) {
80
82
  }
81
83
  return captchaSettings;
82
84
  };
83
- // Whether this attempt's account holds a passkey this browser can use, asked once per attempt.
84
- const passkeyChecks = new Map();
85
- const passkeyOffered = async (attemptId) => {
86
- if (!(0, passkey_1.passkeysSupported)())
87
- return false;
88
- const known = passkeyChecks.get(attemptId);
89
- 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)
90
90
  return known;
91
91
  const res = await client.get(`/v1/client/sign_ins/${encodeURIComponent(attemptId)}/second_factors`);
92
- const offered = res.ok && Array.isArray(res.data?.factors) && res.data.factors.includes('passkey');
93
- passkeyChecks.set(attemptId, offered);
94
- return offered;
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;
95
108
  };
96
109
  const stepFor = async (attempt) => {
97
110
  if (redirect)
@@ -108,7 +121,7 @@ function makeCore(opts, captchaFlow) {
108
121
  case 'collect_first_factor':
109
122
  return { type: 'needs_first_factor', factors: next.strategies };
110
123
  case 'collect_second_factor':
111
- return { type: 'needs_second_factor', factors: [...exports.SECOND_FACTOR_STRATEGIES, ...(attempt.id && (await passkeyOffered(attempt.id)) ? ['passkey'] : [])], ...(recovery ? { recovery } : {}) };
124
+ return { type: 'needs_second_factor', factors: await secondFactorsFor(attempt.id ?? undefined), ...(recovery ? { recovery } : {}) };
112
125
  case 'accept_policies':
113
126
  return { type: 'needs_policy_acceptance', policies: next.policies };
114
127
  case 'collect_email_code':
@@ -149,6 +162,8 @@ function makeCore(opts, captchaFlow) {
149
162
  reason = errors[0]?.reason ?? next.attempt?.reason ?? null;
150
163
  busy = false;
151
164
  step = await stepFor(next.attempt);
165
+ if (step.type !== 'needs_second_factor')
166
+ sentTo = null;
152
167
  return emit();
153
168
  };
154
169
  /** The token the headless solver gives for the current captcha step, or null (no solver, other provider, failure, cancelled). */
@@ -176,6 +191,7 @@ function makeCore(opts, captchaFlow) {
176
191
  get flow() { return flow; },
177
192
  get enrollment() { return enrollment; },
178
193
  set enrollment(e) { enrollment = e; },
194
+ set sentTo(v) { sentTo = v; },
179
195
  get recovery() { return recovery; },
180
196
  set recovery(r) { recovery = r; },
181
197
  acknowledgeCodes() {
@@ -232,6 +248,7 @@ function makeCore(opts, captchaFlow) {
232
248
  reason = null;
233
249
  captchaToken = null;
234
250
  redirect = null;
251
+ sentTo = null;
235
252
  enrollment = null;
236
253
  recovery = null;
237
254
  return emit();
@@ -303,23 +320,19 @@ function createSignInFlow(opts) {
303
320
  return { ...core.flow, errors: prepared.errors };
304
321
  let assertion;
305
322
  try {
306
- assertion = await (0, passkey_1.getPasskeyAssertion)(prepared.data, { ...(options.host ? { host: options.host } : {}) });
323
+ assertion = await (0, passkey_second_factor_1.passkeySecondFactorAssertion)(prepared.data, {
324
+ ...(opts.passkeyAssertion ? { passkeyAssertion: opts.passkeyAssertion } : {}),
325
+ ...(options.host ? { host: options.host } : {}),
326
+ });
307
327
  }
308
328
  catch (e) {
309
329
  return { ...core.flow, errors: [{ code: 'passkey_cancelled', message: e instanceof Error ? e.message : 'The passkey prompt was cancelled.', reason: 'passkey_cancelled' }] };
310
330
  }
311
- return (0, fapi_1.advance)(client, core.flow, {
312
- strategy: 'passkey',
313
- challenge: assertion.challenge,
314
- credential_id: assertion.credential_id,
315
- authenticator_data: assertion.authenticator_data,
316
- client_data_json: assertion.client_data_json,
317
- signature: assertion.signature,
318
- ...(options.rememberDevice ? { remember_device: 'true' } : {}),
319
- });
331
+ return (0, fapi_1.advance)(client, core.flow, (0, passkey_second_factor_1.passkeySecondFactorBody)(assertion, options.rememberDevice));
320
332
  }),
321
333
  async sendSecondFactorCode(strategy) {
322
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;
323
336
  return core.run(async () => ({ ...core.flow, errors: res.ok ? [] : res.errors }));
324
337
  },
325
338
  canRecover: () => (0, mfa_recovery_1.canRecoverWithIdentityCheck)(client, attemptId()),
@@ -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
@@ -4,4 +4,4 @@
4
4
  * package.json at runtime) so the bundle stays dependency-free and tests stay
5
5
  * deterministic; `version.test.ts` fails when it drifts from package.json.
6
6
  */
7
- export declare const ATLAS_JS_VERSION = "0.40.0";
7
+ export declare const ATLAS_JS_VERSION = "0.42.0";
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.40.0';
10
+ exports.ATLAS_JS_VERSION = '0.42.0';
11
11
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlasauth/js",
3
- "version": "0.40.0",
3
+ "version": "0.42.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "exports": {