@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.
Files changed (63) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/account-hints.d.ts +53 -0
  3. package/dist/account-hints.js +114 -0
  4. package/dist/account-hints.js.map +1 -0
  5. package/dist/attempt.d.ts +3 -1
  6. package/dist/attempt.js.map +1 -1
  7. package/dist/captcha-controller.d.ts +21 -0
  8. package/dist/captcha-controller.js +35 -0
  9. package/dist/captcha-controller.js.map +1 -1
  10. package/dist/dev-browser.d.ts +30 -0
  11. package/dist/dev-browser.js +175 -0
  12. package/dist/dev-browser.js.map +1 -0
  13. package/dist/environment.d.ts +48 -0
  14. package/dist/environment.js +54 -1
  15. package/dist/environment.js.map +1 -1
  16. package/dist/fapi.d.ts +42 -3
  17. package/dist/fapi.js +94 -9
  18. package/dist/fapi.js.map +1 -1
  19. package/dist/impersonation.d.ts +44 -0
  20. package/dist/impersonation.js +47 -0
  21. package/dist/impersonation.js.map +1 -0
  22. package/dist/index.d.ts +11 -0
  23. package/dist/index.js +30 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/instance-settings.d.ts +7 -1
  26. package/dist/instance-settings.js +15 -1
  27. package/dist/instance-settings.js.map +1 -1
  28. package/dist/mfa-enrollment.d.ts +154 -0
  29. package/dist/mfa-enrollment.js +288 -0
  30. package/dist/mfa-enrollment.js.map +1 -0
  31. package/dist/organization-audit-log.d.ts +63 -0
  32. package/dist/organization-audit-log.js +96 -0
  33. package/dist/organization-audit-log.js.map +1 -0
  34. package/dist/organizations.d.ts +330 -0
  35. package/dist/organizations.js +375 -0
  36. package/dist/organizations.js.map +1 -0
  37. package/dist/passkey-sign-in.d.ts +40 -0
  38. package/dist/passkey-sign-in.js +41 -0
  39. package/dist/passkey-sign-in.js.map +1 -0
  40. package/dist/passkey-sign-up.d.ts +46 -0
  41. package/dist/passkey-sign-up.js +98 -0
  42. package/dist/passkey-sign-up.js.map +1 -0
  43. package/dist/password-reset.d.ts +12 -0
  44. package/dist/password-reset.js +15 -0
  45. package/dist/password-reset.js.map +1 -1
  46. package/dist/phone-numbers.d.ts +43 -0
  47. package/dist/phone-numbers.js +65 -0
  48. package/dist/phone-numbers.js.map +1 -0
  49. package/dist/profile.d.ts +24 -0
  50. package/dist/profile.js +24 -0
  51. package/dist/profile.js.map +1 -0
  52. package/dist/referral-detect.d.ts +90 -0
  53. package/dist/referral-detect.js +432 -0
  54. package/dist/referral-detect.js.map +1 -0
  55. package/dist/referral.d.ts +59 -29
  56. package/dist/referral.js +96 -47
  57. package/dist/referral.js.map +1 -1
  58. package/dist/sign-out-guard.d.ts +8 -0
  59. package/dist/sign-out-guard.js +15 -0
  60. package/dist/sign-out-guard.js.map +1 -1
  61. package/dist/version.d.ts +1 -1
  62. package/dist/version.js +1 -1
  63. package/package.json +2 -2
@@ -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. */
@@ -1 +1 @@
1
- {"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"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"}
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), used only when Cookie Munch is not on the page: `'granted'` (or a
48
- * function returning it) lets the client send them. Default: code only.
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
- const doFetch = this.options.fetchImpl ?? fetch;
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
- const sameAttempt = response.data.id === state.attempt?.id && response.data.status === state.attempt?.status;
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: response.data,
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: response.data.ticket ?? null,
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
- pollSecret: exports.initialFlow.pollSecret,
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
- const response = await client.get(`/v1/client/sign_ins/${id}?poll_secret=${encodeURIComponent(state.pollSecret)}`);
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
- return Boolean(state.pollSecret) && Boolean(state.attempt) && !(0, attempt_1.isTerminal)(state.attempt);
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":";;;AAoEA,8CAIC;AA0JD,4CAmBC;AASD,4CAUC;AAMD,4DAcC;AAqCD,wCAkHC;AAWD,0CAMC;AAGD,0BA6BC;AASD,kCAiCC;AAGD,sCAyBC;AAMD,kCAiBC;AAGD,8CAEC;AAtkBD,uCAAiG;AACjG,iDAAgH;AAChH,yCAQoB;AAoDpB;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAiC;IACjE,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7C,OAAO,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AASD,MAAa,UAAU;IACQ;IAA7B,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;QACrD,uEAAuE;QACvE,yEAAyE;QACzE,IAAA,kCAAuB,GAAE,CAAC;IAC5B,CAAC;IAED,gFAAgF;IAChF,IAAI,gBAAgB;QAClB,OAAO,IAAA,8BAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAChF,CAAC;IAED,6EAA6E;IAC7E,IAAI,eAAe;QACjB,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IAC5F,CAAC;IAED,2EAA2E;IAC3E,IAAI,MAAM;QACR,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,IAAI,iBAAiB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,OAAoB,EAAE;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;QAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,2BAAY,CAAC;QAC7C,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE;gBAC/D,GAAG,IAAI;gBACP,yEAAyE;gBACzE,4DAA4D;gBAC5D,WAAW,EAAE,SAAS;gBACtB,OAAO,EAAE;oBACP,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc;oBAChD,CAAC,yBAAU,CAAC,EAAE,IAAA,6BAAc,EAAC,GAAG,CAAC;oBACjC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,GAAG,IAAI,CAAC,OAAO;iBAChB;aACF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP;;;;eAIG;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;aAC5F,CAAC;QACJ,CAAC;QAED,IAAA,gCAAiB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEjC,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;QAC1E,CAAC;QAED,oEAAoE;QACpE,8EAA8E;QAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,KAAK,gBAAgB,CAAC,EAAE,CAAC;YACxH,IAAA,6BAAkB,EAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,IAAU,CAAC,CAAC,CAAC,IAAI;YACtC,8DAA8D;YAC9D,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,qBAAW,EAAC,IAAI,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAc;QACxC,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IACE,OAAO,KAAK,IAAI;YAChB,OAAO,OAAO,KAAK,QAAQ;YAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACvB,CAAC,CAAC,UAAU,IAAK,OAAmC,CAAC;YACrD,IAAA,0BAAe,EAAC,IAAI,CAAC,EACrB,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAe,EAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,QAAQ;gBAAE,OAAO,GAAG,EAAE,GAAI,OAAmC,EAAE,QAAQ,EAAE,CAAC;QAChF,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAClE,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAI,IAAY;QACjB,OAAO,IAAI,CAAC,OAAO,CAAI,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AAvHD,gCAuHC;AAmBD;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAK9B,mCAAmC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5E,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhD,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ;QAChC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY;QACvC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI;QAC3C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE;KACnC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,SAAiB,EACjB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,uBAAuB,kBAAkB,CAAC,SAAS,CAAC,WAAW,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAC9F,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACzE,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,wBAAwB,CAC5C,MAAkB,EAClB,OAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAM9B,qCAAqC,OAAO,CAAC,CAAC,CAAC,aAAa,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrG,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;IACxB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAChH,CAAC;AAsBY,QAAA,WAAW,GAAc;IACpC,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,KAAK;IACX,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,OAA2B,EAC3B,MAA8B;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,qBAAqB;YAC3B,sEAAsE;YACtE,yEAAyE;YACzE,uCAAuC;YACvC,IAAI,EAAE;gBACJ,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;gBACnC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzE;SACF,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IAE5B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,oBAAoB;YACvB,OAAO;gBACL,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE;oBACJ,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;oBACnC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzE;aACF,CAAC;QAEJ,KAAK,sBAAsB;YACzB;;;;;eAKG;YACH,OAAO,MAAM,CAAC,IAAI;gBAChB,CAAC,CAAC;oBACE,IAAI,EAAE,uBAAuB,EAAE,uBAAuB;oBACtD,IAAI,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;iBACpD;gBACH,CAAC,CAAC;oBACE,IAAI,EAAE,uBAAuB,EAAE,uBAAuB;oBACtD,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE;iBAChE,CAAC;QAER,KAAK,uBAAuB;YAC1B,yEAAyE;YACzE,2EAA2E;YAC3E,uBAAuB;YACvB,OAAO;gBACL,IAAI,EAAE,uBAAuB,EAAE,wBAAwB;gBACvD,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;oBACvB,GAAG,CAAC,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxE;aACF,CAAC;QAEJ;;;;WAIG;QACH,KAAK,sBAAsB;YACzB,OAAO;gBACL,IAAI,EAAE,uBAAuB,EAAE,yBAAyB;gBACxD,IAAI,EAAE;oBACJ,SAAS,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;oBAChC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;iBACpD;aACF,CAAC;QAEJ,KAAK,oBAAoB;YACvB,OAAO;gBACL,IAAI,EAAE,uBAAuB,EAAE,uBAAuB;gBACtD,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;aAClC,CAAC;QAEJ,KAAK,iBAAiB;YACpB;;;;;;eAMG;YACH,OAAO,MAAM,CAAC,aAAa;gBACzB,CAAC,CAAC;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE;wBACJ,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;wBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;qBACpC;iBACF;gBACH,CAAC,CAAC,IAAI,CAAC;QAEX,KAAK,sBAAsB;YACzB,OAAO;gBACL,IAAI,EAAE,8BAA8B,EAAE,mBAAmB;gBACzD,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE;aAC1C,CAAC;QAEJ,KAAK,aAAa,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC;QACf,KAAK,SAAS;YACZ;;;;eAIG;YACH,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,OAA8C;IAC5E,IAAI,CAAC,OAAO;QAAE,OAAO,mBAAW,CAAC;IACjC,OAAO;QACL,GAAG,mBAAW;QACd,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;KACpD,CAAC;AACJ,CAAC;AAED,0EAA0E;AACnE,KAAK,UAAU,OAAO,CAC3B,MAAkB,EAClB,KAAgB,EAChB,MAA8B;IAE9B,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAoC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAElG,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC;;;;WAIG;QACH,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;IAC7G,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,IAAI;QACtB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,oEAAoE;QACpE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;QACpC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAC/B,MAAkB,EAClB,KAMC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAoC,qBAAqB,EAAE;QAC3F,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,2EAA2E;QAC3E,kEAAkE;QAClE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,wEAAwE;QACxE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,GAAG,mBAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IAED,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,IAAI;QACtB,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,mBAAW,CAAC,UAAU;QAClC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;KACrC,CAAC;AACJ,CAAC;AAED,2DAA2D;AACpD,KAAK,UAAU,aAAa,CACjC,MAAkB,EAClB,KAAgB,EAChB,QAAqC;IAErC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAEtB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAChC,uBAAuB,EAAE,uBAAuB,EAChD,EAAE,QAAQ,EAAE,CACb,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAE5E,OAAO;QACL,GAAG,KAAK;QACR,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,EAAE;QACV,4EAA4E;QAC5E,wEAAwE;QACxE,gCAAgC;QAChC,UAAU,EAAE,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QACnF,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,WAAW,CAC/B,MAAkB,EAClB,KAAgB;IAEhB,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;IAC7B,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAE7D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAC/B,uBAAuB,EAAE,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAChF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAEnE,OAAO;QACL,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE;QAC3C,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI;KACrC,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,SAAgB,iBAAiB,CAAC,KAAgB;IAChD,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,oBAAU,EAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;AAC5F,CAAC"}
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"}