@atlasauth/js 0.14.0 → 0.16.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 +31 -0
- package/dist/account-hints.d.ts +53 -0
- package/dist/account-hints.js +114 -0
- package/dist/account-hints.js.map +1 -0
- package/dist/attempt.d.ts +3 -1
- package/dist/attempt.js.map +1 -1
- package/dist/captcha-controller.d.ts +21 -0
- package/dist/captcha-controller.js +35 -0
- package/dist/captcha-controller.js.map +1 -1
- package/dist/dev-browser.d.ts +30 -0
- package/dist/dev-browser.js +175 -0
- package/dist/dev-browser.js.map +1 -0
- package/dist/environment.d.ts +48 -0
- package/dist/environment.js +54 -1
- package/dist/environment.js.map +1 -1
- package/dist/fapi.d.ts +42 -3
- package/dist/fapi.js +94 -9
- package/dist/fapi.js.map +1 -1
- package/dist/impersonation.d.ts +44 -0
- package/dist/impersonation.js +47 -0
- package/dist/impersonation.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +30 -1
- package/dist/index.js.map +1 -1
- package/dist/instance-settings.d.ts +7 -1
- package/dist/instance-settings.js +15 -1
- package/dist/instance-settings.js.map +1 -1
- package/dist/mfa-enrollment.d.ts +154 -0
- package/dist/mfa-enrollment.js +288 -0
- package/dist/mfa-enrollment.js.map +1 -0
- package/dist/organization-audit-log.d.ts +63 -0
- package/dist/organization-audit-log.js +96 -0
- package/dist/organization-audit-log.js.map +1 -0
- package/dist/organizations.d.ts +330 -0
- package/dist/organizations.js +375 -0
- package/dist/organizations.js.map +1 -0
- package/dist/passkey-sign-in.d.ts +40 -0
- package/dist/passkey-sign-in.js +41 -0
- package/dist/passkey-sign-in.js.map +1 -0
- package/dist/passkey-sign-up.d.ts +46 -0
- package/dist/passkey-sign-up.js +98 -0
- package/dist/passkey-sign-up.js.map +1 -0
- package/dist/password-reset.d.ts +12 -0
- package/dist/password-reset.js +15 -0
- package/dist/password-reset.js.map +1 -1
- package/dist/phone-numbers.d.ts +43 -0
- package/dist/phone-numbers.js +65 -0
- package/dist/phone-numbers.js.map +1 -0
- package/dist/profile.d.ts +24 -0
- package/dist/profile.js +24 -0
- package/dist/profile.js.map +1 -0
- package/dist/referral-detect.d.ts +90 -0
- package/dist/referral-detect.js +432 -0
- package/dist/referral-detect.js.map +1 -0
- package/dist/referral.d.ts +59 -29
- package/dist/referral.js +96 -47
- package/dist/referral.js.map +1 -1
- package/dist/sign-out-guard.d.ts +8 -0
- package/dist/sign-out-guard.js +15 -0
- package/dist/sign-out-guard.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/dist/environment.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EMAIL_FIRST_FACTORS = exports.EMAIL_UNAVAILABLE_MESSAGE = exports.EMAIL_DELIVERY_UNKNOWN = void 0;
|
|
3
|
+
exports.ACCOUNT_UX_DEFAULT = exports.EMAIL_FIRST_FACTORS = exports.EMAIL_UNAVAILABLE_MESSAGE = exports.EMAIL_DELIVERY_UNKNOWN = void 0;
|
|
4
4
|
exports.emailDeliveryFrom = emailDeliveryFrom;
|
|
5
5
|
exports.offeredFirstFactors = offeredFirstFactors;
|
|
6
|
+
exports.accountUxFrom = accountUxFrom;
|
|
6
7
|
exports.clientEnvironmentFrom = clientEnvironmentFrom;
|
|
7
8
|
exports.fetchClientEnvironment = fetchClientEnvironment;
|
|
8
9
|
/**
|
|
@@ -47,6 +48,57 @@ function offeredFirstFactors(strategies, delivery) {
|
|
|
47
48
|
return [...strategies];
|
|
48
49
|
return strategies.filter((s) => !exports.EMAIL_FIRST_FACTORS.includes(s));
|
|
49
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* What an older server (no `account`) is taken to mean: no usernames at
|
|
53
|
+
* sign-up, codes only, and no "Last used" hint (it has no endpoint for one).
|
|
54
|
+
*/
|
|
55
|
+
exports.ACCOUNT_UX_DEFAULT = Object.freeze({
|
|
56
|
+
username: null,
|
|
57
|
+
lastSignInMethod: false,
|
|
58
|
+
emailVerification: 'code',
|
|
59
|
+
passwordReset: 'code',
|
|
60
|
+
emailSecondFactor: false,
|
|
61
|
+
passkeySignUp: null,
|
|
62
|
+
});
|
|
63
|
+
const proof = (v) => (v === 'link' || v === 'both' ? v : 'code');
|
|
64
|
+
/** Read `account` from a `/v1/client/environment` or `/v1/appearance` body. */
|
|
65
|
+
function accountUxFrom(body) {
|
|
66
|
+
const raw = isRecord(body) && isRecord(body.account) ? body.account : null;
|
|
67
|
+
if (!raw)
|
|
68
|
+
return { ...exports.ACCOUNT_UX_DEFAULT };
|
|
69
|
+
const u = isRecord(raw.username) ? raw.username : null;
|
|
70
|
+
const n = (v, d) => (typeof v === 'number' && Number.isInteger(v) ? v : d);
|
|
71
|
+
return {
|
|
72
|
+
username: u
|
|
73
|
+
? {
|
|
74
|
+
minLength: n(u.min_length, 3),
|
|
75
|
+
maxLength: n(u.max_length, 30),
|
|
76
|
+
charset: u.charset === 'alphanumeric' || u.charset === 'alphanumeric_underscore' ? u.charset : 'default',
|
|
77
|
+
requiredAtSignUp: u.required_at_sign_up === true,
|
|
78
|
+
}
|
|
79
|
+
: null,
|
|
80
|
+
lastSignInMethod: raw.last_sign_in_method === true,
|
|
81
|
+
emailVerification: proof(raw.email_verification),
|
|
82
|
+
passwordReset: proof(raw.password_reset),
|
|
83
|
+
emailSecondFactor: raw.email_second_factor === true,
|
|
84
|
+
...(isRecord(raw.mfa)
|
|
85
|
+
? {
|
|
86
|
+
mfa: {
|
|
87
|
+
totp: raw.mfa.totp !== false,
|
|
88
|
+
sms: raw.mfa.sms === true,
|
|
89
|
+
totpCodes: Number(raw.mfa.totp_codes ?? raw.mfa.totpCodes) >= 2 ? 2 : 1,
|
|
90
|
+
},
|
|
91
|
+
}
|
|
92
|
+
: {}),
|
|
93
|
+
passkeySignUp: isRecord(raw.passkey_sign_up)
|
|
94
|
+
? {
|
|
95
|
+
email: raw.passkey_sign_up.email === 'off' || raw.passkey_sign_up.email === 'optional'
|
|
96
|
+
? raw.passkey_sign_up.email
|
|
97
|
+
: 'required',
|
|
98
|
+
}
|
|
99
|
+
: null,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
50
102
|
/** Read a `/v1/client/environment` body. Defensive: malformed parts read as empty. */
|
|
51
103
|
function clientEnvironmentFrom(body) {
|
|
52
104
|
const root = isRecord(body) ? body : {};
|
|
@@ -59,6 +111,7 @@ function clientEnvironmentFrom(body) {
|
|
|
59
111
|
socialProviders: Array.isArray(root.social_providers)
|
|
60
112
|
? root.social_providers.filter((p) => isRecord(p) && typeof p.provider === 'string')
|
|
61
113
|
: [],
|
|
114
|
+
account: accountUxFrom(root),
|
|
62
115
|
};
|
|
63
116
|
}
|
|
64
117
|
/** Fetch the client environment. Null when the server can't be reached or errors. */
|
package/dist/environment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":";;;AAiDA,8CAWC;AAQD,kDAMC;
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
|
package/dist/fapi.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AttemptView, type FieldError } from './attempt';
|
|
2
2
|
import { type AtlasSdkInfo } from './sdk-advisory';
|
|
3
|
-
import { type ReferralCaptureOptions, type ReferralConsent } from './referral';
|
|
3
|
+
import { type ReferralCaptureOptions, type ReferralConsent, type ReferralSourceReader } from './referral';
|
|
4
4
|
/**
|
|
5
5
|
* The FAPI client and the sign-in flow driver.
|
|
6
6
|
*
|
|
@@ -44,10 +44,14 @@ export interface FapiClientOptions {
|
|
|
44
44
|
referral?: false | 'auto';
|
|
45
45
|
/**
|
|
46
46
|
* The app's own consent decision for referral tracking (click and anonymous
|
|
47
|
-
* ids)
|
|
48
|
-
*
|
|
47
|
+
* ids): `'granted'` / `'denied'`, a boolean, or a function returning one.
|
|
48
|
+
* A consent manager on the page decides when there is one; this applies
|
|
49
|
+
* when there isn't (or when the instance's `consent_provider` is `app`).
|
|
50
|
+
* Default: code only.
|
|
49
51
|
*/
|
|
50
52
|
referralConsent?: ReferralConsent;
|
|
53
|
+
/** Your own reader for a referral program the SDK doesn't know: `() => ({code, clickId, anonId}) | null`. */
|
|
54
|
+
referralSource?: ReferralSourceReader;
|
|
51
55
|
}
|
|
52
56
|
/**
|
|
53
57
|
* A locale tag normalised for the `Accept-Language` header (`pt_BR` → `pt-BR`),
|
|
@@ -62,6 +66,12 @@ export interface FapiResponse<T> {
|
|
|
62
66
|
data: T | null;
|
|
63
67
|
errors: FieldError[];
|
|
64
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* The starts that can create an account, and so carry the SDK's stable device
|
|
71
|
+
* id for the accounts-per-device abuse limit. Password and passwordless
|
|
72
|
+
* sign-ins never create one and do not send it.
|
|
73
|
+
*/
|
|
74
|
+
export declare const DEVICE_ID_ROUTES: ReadonlySet<string>;
|
|
65
75
|
export declare class FapiClient {
|
|
66
76
|
private readonly options;
|
|
67
77
|
constructor(options: FapiClientOptions);
|
|
@@ -145,6 +155,20 @@ export interface FlowState {
|
|
|
145
155
|
* server returns a new attempt.
|
|
146
156
|
*/
|
|
147
157
|
prepared?: 'email_code' | 'email_link' | null;
|
|
158
|
+
/**
|
|
159
|
+
* After a sign-in completed here: true when this browser now holds the
|
|
160
|
+
* session, false when it didn't keep it (its cookie was blocked). Unset while
|
|
161
|
+
* unknown, and for a sign-in completed on another device.
|
|
162
|
+
*/
|
|
163
|
+
sessionKept?: boolean;
|
|
164
|
+
/**
|
|
165
|
+
* The one-time recovery codes a mid-sign-in MFA enrolment came with
|
|
166
|
+
* (`attempt_mfa_enrollment`'s `backup_codes`). Kept here, in memory only and
|
|
167
|
+
* never in `attempt` or any storage, until the user says they saved them
|
|
168
|
+
* (`pendingRecoveryCodes` / `acknowledgeRecoveryCodes`): the prebuilt
|
|
169
|
+
* components show them before exchanging the ticket.
|
|
170
|
+
*/
|
|
171
|
+
recoveryCodes?: string[] | null;
|
|
148
172
|
}
|
|
149
173
|
export declare const initialFlow: FlowState;
|
|
150
174
|
/**
|
|
@@ -185,7 +209,22 @@ export declare function startSignUp(client: FapiClient, input: {
|
|
|
185
209
|
fields?: Record<string, string>;
|
|
186
210
|
consent?: boolean;
|
|
187
211
|
captchaToken?: string;
|
|
212
|
+
/** The username to claim, when the instance offers usernames. */
|
|
213
|
+
username?: string;
|
|
188
214
|
}): Promise<FlowState>;
|
|
215
|
+
/**
|
|
216
|
+
* Resend a sign-up's emailed proof (a code, a link, or both — whatever the
|
|
217
|
+
* instance sends): `POST /v1/client/sign_ups/:id/prepare_verification`. The
|
|
218
|
+
* earlier code / link stops working. A refusal (a 429 with `retry_after`)
|
|
219
|
+
* comes back as `errors` with the attempt kept.
|
|
220
|
+
*/
|
|
221
|
+
export declare function resendSignUpVerification(client: FapiClient, state: FlowState): Promise<FlowState>;
|
|
222
|
+
/**
|
|
223
|
+
* Whether a sign-up attempt is waiting on an emailed LINK only (no code to
|
|
224
|
+
* type): the form says "check your email" and the tab polls. `emailVerification`
|
|
225
|
+
* is the instance's `account.emailVerification`.
|
|
226
|
+
*/
|
|
227
|
+
export declare function awaitingSignUpLink(attempt: AttemptView | null | undefined, emailVerification: string | null | undefined): boolean;
|
|
189
228
|
/** §5.3: ask the server to send a code or a magic link. */
|
|
190
229
|
export declare function prepareFactor(client: FapiClient, state: FlowState, strategy: 'email_code' | 'email_link'): Promise<FlowState>;
|
|
191
230
|
/**
|
package/dist/fapi.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.initialFlow = exports.FapiClient = void 0;
|
|
3
|
+
exports.initialFlow = exports.FapiClient = exports.DEVICE_ID_ROUTES = void 0;
|
|
4
4
|
exports.acceptLanguageFor = acceptLanguageFor;
|
|
5
5
|
exports.getProviderToken = getProviderToken;
|
|
6
6
|
exports.getTemplateToken = getTemplateToken;
|
|
@@ -9,12 +9,17 @@ exports.requestForStep = requestForStep;
|
|
|
9
9
|
exports.flowFromPending = flowFromPending;
|
|
10
10
|
exports.advance = advance;
|
|
11
11
|
exports.startSignUp = startSignUp;
|
|
12
|
+
exports.resendSignUpVerification = resendSignUpVerification;
|
|
13
|
+
exports.awaitingSignUpLink = awaitingSignUpLink;
|
|
12
14
|
exports.prepareFactor = prepareFactor;
|
|
13
15
|
exports.pollAttempt = pollAttempt;
|
|
14
16
|
exports.shouldKeepPolling = shouldKeepPolling;
|
|
15
17
|
const attempt_1 = require("./attempt");
|
|
16
18
|
const sdk_advisory_1 = require("./sdk-advisory");
|
|
19
|
+
const dev_browser_1 = require("./dev-browser");
|
|
20
|
+
const mfa_enrollment_1 = require("./mfa-enrollment");
|
|
17
21
|
const referral_1 = require("./referral");
|
|
22
|
+
const telemetry_1 = require("./telemetry");
|
|
18
23
|
/**
|
|
19
24
|
* A locale tag normalised for the `Accept-Language` header (`pt_BR` → `pt-BR`),
|
|
20
25
|
* or null when it is not a plausible BCP-47 tag. Restricting it to letters,
|
|
@@ -27,6 +32,25 @@ function acceptLanguageFor(locale) {
|
|
|
27
32
|
const tag = locale.trim().replace(/_/g, '-');
|
|
28
33
|
return /^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$/.test(tag) ? tag : null;
|
|
29
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* The starts that can create an account, and so carry the SDK's stable device
|
|
37
|
+
* id for the accounts-per-device abuse limit. Password and passwordless
|
|
38
|
+
* sign-ins never create one and do not send it.
|
|
39
|
+
*/
|
|
40
|
+
exports.DEVICE_ID_ROUTES = new Set([
|
|
41
|
+
'/v1/client/sign_ups',
|
|
42
|
+
'/v1/client/sign_ins/oauth',
|
|
43
|
+
'/v1/client/sign_ins/sso',
|
|
44
|
+
'/v1/client/sign_ins/saml',
|
|
45
|
+
'/v1/client/sign_ins/discourse',
|
|
46
|
+
'/v1/client/sign_ins/id_token',
|
|
47
|
+
'/v1/client/sign_ins/external_jwt',
|
|
48
|
+
'/v1/client/sign_ins/ldap',
|
|
49
|
+
'/v1/oauth/telegram',
|
|
50
|
+
'/v1/oauth/siwe/verify',
|
|
51
|
+
'/v1/oauth/siws/verify',
|
|
52
|
+
'/v1/oauth/siwf/verify',
|
|
53
|
+
]);
|
|
30
54
|
class FapiClient {
|
|
31
55
|
options;
|
|
32
56
|
constructor(options) {
|
|
@@ -41,7 +65,7 @@ class FapiClient {
|
|
|
41
65
|
}
|
|
42
66
|
/** This client's own referral options (page-wide defaults fill the gaps). */
|
|
43
67
|
get referralOptions() {
|
|
44
|
-
return { referral: this.options.referral, referralConsent: this.options.referralConsent };
|
|
68
|
+
return { referral: this.options.referral, referralConsent: this.options.referralConsent, referralSource: this.options.referralSource };
|
|
45
69
|
}
|
|
46
70
|
/** The `Accept-Language` this client sends, or null when it sends none. */
|
|
47
71
|
get locale() {
|
|
@@ -64,7 +88,8 @@ class FapiClient {
|
|
|
64
88
|
}
|
|
65
89
|
}
|
|
66
90
|
async request(path, init = {}) {
|
|
67
|
-
|
|
91
|
+
// Development instances keep the session in a header where the browser blocks the cookie (./dev-browser).
|
|
92
|
+
const doFetch = (0, dev_browser_1.withDevBrowser)(this.options.publishableKey, this.options.fetchImpl ?? fetch);
|
|
68
93
|
const language = this.locale;
|
|
69
94
|
const sdk = this.options.sdk ?? sdk_advisory_1.ATLAS_JS_SDK;
|
|
70
95
|
let response;
|
|
@@ -131,6 +156,20 @@ class FapiClient {
|
|
|
131
156
|
if (referral)
|
|
132
157
|
payload = { ...payload, referral };
|
|
133
158
|
}
|
|
159
|
+
// The stable device id rides on every start that can create an account
|
|
160
|
+
// (email sign-up, social and enterprise SSO sign-ins) so the instance's
|
|
161
|
+
// accounts-per-device abuse limit can count devices, not networks.
|
|
162
|
+
const bare = path.split('?')[0];
|
|
163
|
+
if (bare !== undefined &&
|
|
164
|
+
exports.DEVICE_ID_ROUTES.has(bare) &&
|
|
165
|
+
payload !== null &&
|
|
166
|
+
typeof payload === 'object' &&
|
|
167
|
+
!Array.isArray(payload) &&
|
|
168
|
+
!('device_id' in payload)) {
|
|
169
|
+
const id = (0, telemetry_1.deviceId)();
|
|
170
|
+
if (id)
|
|
171
|
+
payload = { ...payload, device_id: id };
|
|
172
|
+
}
|
|
134
173
|
return this.request(path, {
|
|
135
174
|
method: 'POST',
|
|
136
175
|
body: payload === undefined ? undefined : JSON.stringify(payload),
|
|
@@ -254,6 +293,14 @@ function requestForStep(attempt, values) {
|
|
|
254
293
|
* because there is no factor to verify against yet.
|
|
255
294
|
*/
|
|
256
295
|
case 'enroll_second_factor':
|
|
296
|
+
// A texted factor (`enrollStrategy: 'phone_code'`, see mfa-enrollment.ts)
|
|
297
|
+
// is proven by the one code sent to the phone.
|
|
298
|
+
if (values.enrollStrategy === 'phone_code') {
|
|
299
|
+
return {
|
|
300
|
+
path: `/v1/client/sign_ins/${id}/attempt_mfa_enrollment`,
|
|
301
|
+
body: { factor_id: values.factorId ?? '', code: values.code ?? '' },
|
|
302
|
+
};
|
|
303
|
+
}
|
|
257
304
|
return {
|
|
258
305
|
path: `/v1/client/sign_ins/${id}/attempt_mfa_enrollment`,
|
|
259
306
|
body: {
|
|
@@ -331,15 +378,19 @@ async function advance(client, state, values) {
|
|
|
331
378
|
*/
|
|
332
379
|
return { ...state, busy: false, errors: response.errors };
|
|
333
380
|
}
|
|
334
|
-
|
|
381
|
+
// An enrolment's recovery codes are shown once and never kept on the attempt.
|
|
382
|
+
const { backup_codes: backupCodes, ...view } = response.data;
|
|
383
|
+
const recoveryCodes = (0, mfa_enrollment_1.recoveryCodesFrom)(backupCodes);
|
|
384
|
+
const sameAttempt = view.id === state.attempt?.id && view.status === state.attempt?.status;
|
|
335
385
|
return {
|
|
336
|
-
attempt:
|
|
386
|
+
attempt: view,
|
|
337
387
|
errors: [],
|
|
338
388
|
busy: false,
|
|
339
389
|
pollSecret: state.pollSecret,
|
|
340
390
|
// A completion response carries the ticket to exchange for cookies.
|
|
341
|
-
ticket:
|
|
391
|
+
ticket: view.ticket ?? null,
|
|
342
392
|
prepared: sameAttempt ? (state.prepared ?? null) : null,
|
|
393
|
+
...(recoveryCodes ? { recoveryCodes } : {}),
|
|
343
394
|
};
|
|
344
395
|
}
|
|
345
396
|
/**
|
|
@@ -360,6 +411,7 @@ async function startSignUp(client, input) {
|
|
|
360
411
|
...(input.consent ? { consent: true } : {}),
|
|
361
412
|
// §5 the bot-defence token, when the sign-up flow's captcha is enabled.
|
|
362
413
|
...(input.captchaToken ? { captcha_token: input.captchaToken } : {}),
|
|
414
|
+
...(input.username ? { username: input.username } : {}),
|
|
363
415
|
});
|
|
364
416
|
if (!response.ok || !response.data) {
|
|
365
417
|
return { ...exports.initialFlow, busy: false, errors: response.errors };
|
|
@@ -368,10 +420,36 @@ async function startSignUp(client, input) {
|
|
|
368
420
|
attempt: response.data,
|
|
369
421
|
errors: [],
|
|
370
422
|
busy: false,
|
|
371
|
-
|
|
423
|
+
// Link mode: the sign-up's verification link may be opened anywhere; this
|
|
424
|
+
// tab collects the session by polling with the secret the create returned.
|
|
425
|
+
pollSecret: response.data.poll_secret ?? exports.initialFlow.pollSecret,
|
|
372
426
|
ticket: response.data.ticket ?? null,
|
|
373
427
|
};
|
|
374
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* Resend a sign-up's emailed proof (a code, a link, or both — whatever the
|
|
431
|
+
* instance sends): `POST /v1/client/sign_ups/:id/prepare_verification`. The
|
|
432
|
+
* earlier code / link stops working. A refusal (a 429 with `retry_after`)
|
|
433
|
+
* comes back as `errors` with the attempt kept.
|
|
434
|
+
*/
|
|
435
|
+
async function resendSignUpVerification(client, state) {
|
|
436
|
+
const id = state.attempt?.id;
|
|
437
|
+
if (!id)
|
|
438
|
+
return state;
|
|
439
|
+
const response = await client.post(`/v1/client/sign_ups/${id}/prepare_verification`, {});
|
|
440
|
+
return response.ok ? { ...state, busy: false, errors: [] } : { ...state, busy: false, errors: response.errors };
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Whether a sign-up attempt is waiting on an emailed LINK only (no code to
|
|
444
|
+
* type): the form says "check your email" and the tab polls. `emailVerification`
|
|
445
|
+
* is the instance's `account.emailVerification`.
|
|
446
|
+
*/
|
|
447
|
+
function awaitingSignUpLink(attempt, emailVerification) {
|
|
448
|
+
return (!!attempt &&
|
|
449
|
+
attempt.object === 'sign_up_attempt' &&
|
|
450
|
+
attempt.status === 'needs_email_verification' &&
|
|
451
|
+
emailVerification === 'link');
|
|
452
|
+
}
|
|
375
453
|
/** §5.3: ask the server to send a code or a magic link. */
|
|
376
454
|
async function prepareFactor(client, state, strategy) {
|
|
377
455
|
const id = state.attempt?.id;
|
|
@@ -399,7 +477,9 @@ async function pollAttempt(client, state) {
|
|
|
399
477
|
const id = state.attempt?.id;
|
|
400
478
|
if (!id || !state.pollSecret)
|
|
401
479
|
return { state, ticket: null };
|
|
402
|
-
|
|
480
|
+
// A sign-up waiting on its emailed verification link polls its own route.
|
|
481
|
+
const resource = state.attempt?.object === 'sign_up_attempt' ? 'sign_ups' : 'sign_ins';
|
|
482
|
+
const response = await client.get(`/v1/client/${resource}/${id}?poll_secret=${encodeURIComponent(state.pollSecret)}`);
|
|
403
483
|
if (!response.ok || !response.data)
|
|
404
484
|
return { state, ticket: null };
|
|
405
485
|
return {
|
|
@@ -409,6 +489,11 @@ async function pollAttempt(client, state) {
|
|
|
409
489
|
}
|
|
410
490
|
/** Whether polling should continue, so a tab does not poll a dead attempt forever. */
|
|
411
491
|
function shouldKeepPolling(state) {
|
|
412
|
-
|
|
492
|
+
if (!state.pollSecret || !state.attempt || (0, attempt_1.isTerminal)(state.attempt))
|
|
493
|
+
return false;
|
|
494
|
+
// A passkey-only sign-up waiting for its passkey: only this tab can move it on.
|
|
495
|
+
const a = state.attempt;
|
|
496
|
+
const waitingForPasskey = a.object === 'sign_up_attempt' && a.status === 'needs_first_factor' && (a.supported_first_factors ?? []).includes('passkey');
|
|
497
|
+
return !waitingForPasskey;
|
|
413
498
|
}
|
|
414
499
|
//# sourceMappingURL=fapi.js.map
|
package/dist/fapi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fapi.js","sourceRoot":"","sources":["../src/fapi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fapi.js","sourceRoot":"","sources":["../src/fapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Impersonation: who is acting on a session, and "return to admin".
|
|
3
|
+
*
|
|
4
|
+
* A session started from an impersonation carries `act: { sub }` on its token
|
|
5
|
+
* (RFC 8693) and, on `GET /v1/client`, `actor` plus `actor_session_id` — the
|
|
6
|
+
* impersonator's own session on this browser, kept alongside while they act as
|
|
7
|
+
* the user. {@link endImpersonation} ends the impersonation and, when that
|
|
8
|
+
* session is still usable, makes it active again without a sign-in.
|
|
9
|
+
*/
|
|
10
|
+
/** The party acting on an impersonated session (the token's `act` claim). */
|
|
11
|
+
export interface ImpersonationActor {
|
|
12
|
+
sub: string;
|
|
13
|
+
}
|
|
14
|
+
/** The impersonation fields on a `GET /v1/client` session (absent otherwise). */
|
|
15
|
+
export interface ImpersonationSessionFields {
|
|
16
|
+
actor?: ImpersonationActor | null;
|
|
17
|
+
/** The impersonator's own session that ending the impersonation resumes, or null. */
|
|
18
|
+
actor_session_id?: string | null;
|
|
19
|
+
}
|
|
20
|
+
/** What {@link endImpersonation} resolves with. */
|
|
21
|
+
export interface EndImpersonationResult {
|
|
22
|
+
/** The Frontend API confirmed the impersonation session is over. */
|
|
23
|
+
ended: boolean;
|
|
24
|
+
/** The impersonator's own session became active again (no sign-in needed). */
|
|
25
|
+
resumed: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* The session now active on this browser, when any: the impersonator's own
|
|
28
|
+
* (`resumed: true`) or another account signed in here. Absent → signed out.
|
|
29
|
+
*/
|
|
30
|
+
activeSessionId?: string;
|
|
31
|
+
/** The newly active session's JWT, when there is one. */
|
|
32
|
+
jwt?: string;
|
|
33
|
+
/** The HTTP status (`0` when the server never answered). */
|
|
34
|
+
status: number;
|
|
35
|
+
}
|
|
36
|
+
/** The actor on a session token's claims, or null for an ordinary session. */
|
|
37
|
+
export declare function actorFromClaims(claims: Record<string, unknown> | null | undefined): ImpersonationActor | null;
|
|
38
|
+
/**
|
|
39
|
+
* `POST /v1/client/sessions/:id/end_impersonation`. `request` is the caller's
|
|
40
|
+
* credentialed FAPI fetch (cookies included) — the server reads the active and
|
|
41
|
+
* parked session cookies and rewrites them. Not retried: ending twice is
|
|
42
|
+
* harmless, but a refusal (404/409) is final.
|
|
43
|
+
*/
|
|
44
|
+
export declare function endImpersonation(request: (path: string, init?: RequestInit) => Promise<Response>, sessionId: string): Promise<EndImpersonationResult>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Impersonation: who is acting on a session, and "return to admin".
|
|
4
|
+
*
|
|
5
|
+
* A session started from an impersonation carries `act: { sub }` on its token
|
|
6
|
+
* (RFC 8693) and, on `GET /v1/client`, `actor` plus `actor_session_id` — the
|
|
7
|
+
* impersonator's own session on this browser, kept alongside while they act as
|
|
8
|
+
* the user. {@link endImpersonation} ends the impersonation and, when that
|
|
9
|
+
* session is still usable, makes it active again without a sign-in.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.actorFromClaims = actorFromClaims;
|
|
13
|
+
exports.endImpersonation = endImpersonation;
|
|
14
|
+
/** The actor on a session token's claims, or null for an ordinary session. */
|
|
15
|
+
function actorFromClaims(claims) {
|
|
16
|
+
const act = claims?.act;
|
|
17
|
+
return act && typeof act === 'object' && typeof act.sub === 'string' && act.sub ? { sub: act.sub } : null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* `POST /v1/client/sessions/:id/end_impersonation`. `request` is the caller's
|
|
21
|
+
* credentialed FAPI fetch (cookies included) — the server reads the active and
|
|
22
|
+
* parked session cookies and rewrites them. Not retried: ending twice is
|
|
23
|
+
* harmless, but a refusal (404/409) is final.
|
|
24
|
+
*/
|
|
25
|
+
async function endImpersonation(request, sessionId) {
|
|
26
|
+
let response;
|
|
27
|
+
try {
|
|
28
|
+
response = await request(`/v1/client/sessions/${encodeURIComponent(sessionId)}/end_impersonation`, {
|
|
29
|
+
method: 'POST',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return { ended: false, resumed: false, status: 0 };
|
|
34
|
+
}
|
|
35
|
+
if (!response.ok)
|
|
36
|
+
return { ended: false, resumed: false, status: response.status };
|
|
37
|
+
// A body we cannot read still means the impersonation ended.
|
|
38
|
+
const body = (await response.json().catch(() => null));
|
|
39
|
+
return {
|
|
40
|
+
ended: true,
|
|
41
|
+
resumed: body?.resumed === true,
|
|
42
|
+
status: response.status,
|
|
43
|
+
...(typeof body?.active_session_id === 'string' ? { activeSessionId: body.active_session_id } : {}),
|
|
44
|
+
...(typeof body?.jwt === 'string' ? { jwt: body.jwt } : {}),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=impersonation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impersonation.js","sourceRoot":"","sources":["../src/impersonation.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAgCH,0CAGC;AAQD,4CA0BC;AAtCD,8EAA8E;AAC9E,SAAgB,eAAe,CAAC,MAAkD;IAChF,MAAM,GAAG,GAAG,MAAM,EAAE,GAAoC,CAAC;IACzD,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5G,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,gBAAgB,CACpC,OAAgE,EAChE,SAAiB;IAEjB,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,uBAAuB,kBAAkB,CAAC,SAAS,CAAC,oBAAoB,EAAE;YACjG,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACnF,6DAA6D;IAC7D,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAI7C,CAAC;IACT,OAAO;QACL,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI;QAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,CAAC,OAAO,IAAI,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnG,GAAG,CAAC,OAAO,IAAI,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './config';
|
|
2
2
|
export * from './sign-out';
|
|
3
|
+
export * from './impersonation';
|
|
3
4
|
export * from './sign-out-guard';
|
|
4
5
|
export * from './token-cache';
|
|
5
6
|
export * from './tab-election';
|
|
@@ -10,18 +11,28 @@ export * from './errors';
|
|
|
10
11
|
export * from './redirect';
|
|
11
12
|
export * from './popup-channel';
|
|
12
13
|
export * from './fapi';
|
|
14
|
+
export * from './organization-audit-log';
|
|
13
15
|
export * from './referral';
|
|
16
|
+
export { devBrowserEnabled, devBrowserToken, forgetDevBrowserToken, withDevBrowser } from './dev-browser';
|
|
17
|
+
export { CONSENT_PROVIDERS, REFERRAL_BROWSER_SOURCES, canonicalCategory, detectConsent, detectConsentProvider, detectReferralSource, type ConsentDecision, type ConsentProvider, type DetectedReferral, type ReferralBrowserSource, } from './referral-detect';
|
|
14
18
|
export * from './sdk-advisory';
|
|
15
19
|
export * from './version';
|
|
16
20
|
export * from './sign-out-events';
|
|
17
21
|
export * from './native';
|
|
18
22
|
export * from './native-session';
|
|
19
23
|
export * from './passkey';
|
|
24
|
+
export * from './mfa-enrollment';
|
|
25
|
+
export * from './passkey-sign-in';
|
|
26
|
+
export * from './passkey-sign-up';
|
|
20
27
|
export * from './telegram';
|
|
21
28
|
export * from './siwe';
|
|
22
29
|
export * from './telemetry';
|
|
23
30
|
export * from './reauth';
|
|
24
31
|
export * from './api-keys';
|
|
32
|
+
export * from './organizations';
|
|
33
|
+
export * from './phone-numbers';
|
|
34
|
+
export * from './account-hints';
|
|
35
|
+
export * from './profile';
|
|
25
36
|
export * from './connect';
|
|
26
37
|
export * from './password-reset';
|
|
27
38
|
export * from './check-session';
|
package/dist/index.js
CHANGED
|
@@ -14,10 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.isPermissionKey = exports.isRoleKey = exports.PERMISSION_KEY_PATTERN = exports.ROLE_KEY_PATTERN = exports.ForbiddenError = exports.protectFromClaims = exports.hasFromClaims = exports.evaluate = void 0;
|
|
17
|
+
exports.isPermissionKey = exports.isRoleKey = exports.PERMISSION_KEY_PATTERN = exports.ROLE_KEY_PATTERN = exports.ForbiddenError = exports.protectFromClaims = exports.hasFromClaims = exports.evaluate = exports.detectReferralSource = exports.detectConsentProvider = exports.detectConsent = exports.canonicalCategory = exports.REFERRAL_BROWSER_SOURCES = exports.CONSENT_PROVIDERS = exports.withDevBrowser = exports.forgetDevBrowserToken = exports.devBrowserToken = exports.devBrowserEnabled = void 0;
|
|
18
18
|
// Provider configuration checks (frontendApi) shared by every framework SDK.
|
|
19
19
|
__exportStar(require("./config"), exports);
|
|
20
20
|
__exportStar(require("./sign-out"), exports);
|
|
21
|
+
// Impersonation: the acting party and "return to admin".
|
|
22
|
+
__exportStar(require("./impersonation"), exports);
|
|
21
23
|
// The safer sign-out every framework provider drives (tombstones, background revoke).
|
|
22
24
|
__exportStar(require("./sign-out-guard"), exports);
|
|
23
25
|
__exportStar(require("./token-cache"), exports);
|
|
@@ -31,8 +33,23 @@ __exportStar(require("./redirect"), exports);
|
|
|
31
33
|
// §oauth popup mode: the same-origin hand-back for a popup whose opener was severed.
|
|
32
34
|
__exportStar(require("./popup-channel"), exports);
|
|
33
35
|
__exportStar(require("./fapi"), exports);
|
|
36
|
+
// An organization's audit trail for its admins (`<OrganizationAuditLog/>` in every framework SDK).
|
|
37
|
+
__exportStar(require("./organization-audit-log"), exports);
|
|
34
38
|
// Referral attribution: capture the visitor's referral and send it on sign-up.
|
|
35
39
|
__exportStar(require("./referral"), exports);
|
|
40
|
+
// Development instances: sign-in from localhost where the browser blocks the instance's cookie.
|
|
41
|
+
var dev_browser_1 = require("./dev-browser");
|
|
42
|
+
Object.defineProperty(exports, "devBrowserEnabled", { enumerable: true, get: function () { return dev_browser_1.devBrowserEnabled; } });
|
|
43
|
+
Object.defineProperty(exports, "devBrowserToken", { enumerable: true, get: function () { return dev_browser_1.devBrowserToken; } });
|
|
44
|
+
Object.defineProperty(exports, "forgetDevBrowserToken", { enumerable: true, get: function () { return dev_browser_1.forgetDevBrowserToken; } });
|
|
45
|
+
Object.defineProperty(exports, "withDevBrowser", { enumerable: true, get: function () { return dev_browser_1.withDevBrowser; } });
|
|
46
|
+
var referral_detect_1 = require("./referral-detect");
|
|
47
|
+
Object.defineProperty(exports, "CONSENT_PROVIDERS", { enumerable: true, get: function () { return referral_detect_1.CONSENT_PROVIDERS; } });
|
|
48
|
+
Object.defineProperty(exports, "REFERRAL_BROWSER_SOURCES", { enumerable: true, get: function () { return referral_detect_1.REFERRAL_BROWSER_SOURCES; } });
|
|
49
|
+
Object.defineProperty(exports, "canonicalCategory", { enumerable: true, get: function () { return referral_detect_1.canonicalCategory; } });
|
|
50
|
+
Object.defineProperty(exports, "detectConsent", { enumerable: true, get: function () { return referral_detect_1.detectConsent; } });
|
|
51
|
+
Object.defineProperty(exports, "detectConsentProvider", { enumerable: true, get: function () { return referral_detect_1.detectConsentProvider; } });
|
|
52
|
+
Object.defineProperty(exports, "detectReferralSource", { enumerable: true, get: function () { return referral_detect_1.detectReferralSource; } });
|
|
36
53
|
// SDK version advisories (`X-Atlas-SDK` / `Atlas-SDK-Advisory`).
|
|
37
54
|
__exportStar(require("./sdk-advisory"), exports);
|
|
38
55
|
__exportStar(require("./version"), exports);
|
|
@@ -41,12 +58,24 @@ __exportStar(require("./sign-out-events"), exports);
|
|
|
41
58
|
__exportStar(require("./native"), exports);
|
|
42
59
|
__exportStar(require("./native-session"), exports);
|
|
43
60
|
__exportStar(require("./passkey"), exports);
|
|
61
|
+
// The sign-in's MFA steps: second-factor setup (authenticator app / texts) and the texted / emailed code.
|
|
62
|
+
__exportStar(require("./mfa-enrollment"), exports);
|
|
63
|
+
// Passkey sign-in's ceremony start, carrying the sign-in captcha when one is required.
|
|
64
|
+
__exportStar(require("./passkey-sign-in"), exports);
|
|
65
|
+
// Passkey-only sign-up (the account is created when its passkey registers).
|
|
66
|
+
__exportStar(require("./passkey-sign-up"), exports);
|
|
44
67
|
__exportStar(require("./telegram"), exports);
|
|
45
68
|
__exportStar(require("./siwe"), exports);
|
|
46
69
|
__exportStar(require("./telemetry"), exports);
|
|
47
70
|
__exportStar(require("./reauth"), exports);
|
|
48
71
|
// End-user API key self-service (`/v1/client/me/api_keys`).
|
|
49
72
|
__exportStar(require("./api-keys"), exports);
|
|
73
|
+
__exportStar(require("./organizations"), exports);
|
|
74
|
+
__exportStar(require("./phone-numbers"), exports);
|
|
75
|
+
// Username availability + the "Last used" sign-in method hint.
|
|
76
|
+
__exportStar(require("./account-hints"), exports);
|
|
77
|
+
// Self-service profile update (incl. user-editable identity traits).
|
|
78
|
+
__exportStar(require("./profile"), exports);
|
|
50
79
|
__exportStar(require("./connect"), exports);
|
|
51
80
|
__exportStar(require("./password-reset"), exports);
|
|
52
81
|
__exportStar(require("./check-session"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6EAA6E;AAC7E,2CAAyB;AACzB,6CAA2B;AAC3B,sFAAsF;AACtF,mDAAiC;AACjC,gDAA8B;AAC9B,iDAA+B;AAC/B,4CAA0B;AAC1B,iDAA+B;AAC/B,kDAAgC;AAChC,uEAAuE;AACvE,2CAAyB;AACzB,6CAA2B;AAC3B,qFAAqF;AACrF,kDAAgC;AAChC,yCAAuB;AACvB,+EAA+E;AAC/E,6CAA2B;AAC3B,iEAAiE;AACjE,iDAA+B;AAC/B,4CAA0B;AAC1B,yFAAyF;AACzF,oDAAkC;AAClC,2CAAyB;AACzB,mDAAiC;AACjC,4CAA0B;AAC1B,6CAA2B;AAC3B,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB;AACzB,4DAA4D;AAC5D,6CAA2B;AAC3B,4CAA0B;AAC1B,mDAAiC;AACjC,kDAAgC;AAChC,sDAAsD;AACtD,wDAAsC;AACtC,+EAA+E;AAC/E,2EAA2E;AAC3E,4CAA0B;AAC1B,kFAAkF;AAClF,mDAAiC;AACjC,4FAA4F;AAC5F,kDAAgC;AAChC,kFAAkF;AAClF,yEAAyE;AACzE,oEAAoE;AACpE,uDAAqC;AACrC,sDAAoC;AACpC,uEAAuE;AACvE,gDAA8B;AAC9B,0EAA0E;AAC1E,4EAA4E;AAC5E,0CAa0B;AARxB,iGAAA,QAAQ,OAAA;AACR,sGAAA,aAAa,OAAA;AACb,0GAAA,iBAAiB,OAAA;AACjB,uGAAA,cAAc,OAAA;AACd,yGAAA,gBAAgB,OAAA;AAChB,+GAAA,sBAAsB,OAAA;AACtB,kGAAA,SAAS,OAAA;AACT,wGAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6EAA6E;AAC7E,2CAAyB;AACzB,6CAA2B;AAC3B,yDAAyD;AACzD,kDAAgC;AAChC,sFAAsF;AACtF,mDAAiC;AACjC,gDAA8B;AAC9B,iDAA+B;AAC/B,4CAA0B;AAC1B,iDAA+B;AAC/B,kDAAgC;AAChC,uEAAuE;AACvE,2CAAyB;AACzB,6CAA2B;AAC3B,qFAAqF;AACrF,kDAAgC;AAChC,yCAAuB;AACvB,mGAAmG;AACnG,2DAAyC;AACzC,+EAA+E;AAC/E,6CAA2B;AAC3B,gGAAgG;AAChG,6CAA0G;AAAjG,gHAAA,iBAAiB,OAAA;AAAE,8GAAA,eAAe,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAAE,6GAAA,cAAc,OAAA;AAClF,qDAW2B;AAVzB,oHAAA,iBAAiB,OAAA;AACjB,2HAAA,wBAAwB,OAAA;AACxB,oHAAA,iBAAiB,OAAA;AACjB,gHAAA,aAAa,OAAA;AACb,wHAAA,qBAAqB,OAAA;AACrB,uHAAA,oBAAoB,OAAA;AAMtB,iEAAiE;AACjE,iDAA+B;AAC/B,4CAA0B;AAC1B,yFAAyF;AACzF,oDAAkC;AAClC,2CAAyB;AACzB,mDAAiC;AACjC,4CAA0B;AAC1B,0GAA0G;AAC1G,mDAAiC;AACjC,uFAAuF;AACvF,oDAAkC;AAClC,4EAA4E;AAC5E,oDAAkC;AAClC,6CAA2B;AAC3B,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB;AACzB,4DAA4D;AAC5D,6CAA2B;AAC3B,kDAAgC;AAChC,kDAAgC;AAChC,+DAA+D;AAC/D,kDAAgC;AAChC,qEAAqE;AACrE,4CAA0B;AAC1B,4CAA0B;AAC1B,mDAAiC;AACjC,kDAAgC;AAChC,sDAAsD;AACtD,wDAAsC;AACtC,+EAA+E;AAC/E,2EAA2E;AAC3E,4CAA0B;AAC1B,kFAAkF;AAClF,mDAAiC;AACjC,4FAA4F;AAC5F,kDAAgC;AAChC,kFAAkF;AAClF,yEAAyE;AACzE,oEAAoE;AACpE,uDAAqC;AACrC,sDAAoC;AACpC,uEAAuE;AACvE,gDAA8B;AAC9B,0EAA0E;AAC1E,4EAA4E;AAC5E,0CAa0B;AARxB,iGAAA,QAAQ,OAAA;AACR,sGAAA,aAAa,OAAA;AACb,0GAAA,iBAAiB,OAAA;AACjB,uGAAA,cAAc,OAAA;AACd,yGAAA,gBAAgB,OAAA;AAChB,+GAAA,sBAAsB,OAAA;AACtB,kGAAA,SAAS,OAAA;AACT,wGAAA,eAAe,OAAA"}
|