@corbado/observe 1.9.1 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -487,6 +487,12 @@ interface EventBatchMeta {
487
487
  * fields of the server config (`pmd`) are ignored. Omitted otherwise.
488
488
  */
489
489
  fixedData?: boolean;
490
+ /**
491
+ * Set while `fixedDataConfig.crossOriginSession` is active on the page: `"adopted"` when this page load
492
+ * took the batch's session from the shared cross-origin cookie (another origin started it), `"own"`
493
+ * when the session is this origin's own. Omitted when the option is off or unusable on the page.
494
+ */
495
+ crossOriginSession?: "adopted" | "own";
490
496
  }
491
497
  interface EventMeta {
492
498
  initiator?: LowEventInitiator;
@@ -710,14 +716,12 @@ interface FixedDataConfig {
710
716
  /**
711
717
  * Password-manager detection.
712
718
  *
713
- * - `true`: the extension probes (reported as {@link Event.passwordManagers}) and the DOM
714
- * password-manager scan (`pa-1`..`pa-6` lows) run.
715
- * - `false`: neither runs.
716
- * - omitted (with `fixedDataConfig` given): the extension probes are off (`pmd` resolves to `false`,
717
- * regardless of the built-in default, `sdkConfig.pmd` and the server config); the DOM scan keeps
718
- * today's behaviour and runs.
719
+ * - `true`: the extension probes run (reported as {@link Event.passwordManagers}).
720
+ * - `false`: they do not run.
721
+ * - omitted (with `fixedDataConfig` given): they are off (`pmd` resolves to `false`, regardless of the
722
+ * built-in default, `sdkConfig.pmd` and the server config).
719
723
  *
720
- * Without `fixedDataConfig` the probes follow the server's `pmd` and the DOM scan always runs.
724
+ * Without `fixedDataConfig` the probes follow the server's `pmd`.
721
725
  */
722
726
  pmd?: boolean;
723
727
  /**
@@ -725,6 +729,59 @@ interface FixedDataConfig {
725
729
  * without `fixedDataConfig`). When false, nothing is detected, read or written for it.
726
730
  */
727
731
  privateMode?: boolean;
732
+ /**
733
+ * Cross-origin session continuity under a shared parent domain. Off when omitted (no cookie is read or
734
+ * written). Setting it fixes `pmd` and `privateMode` like any `fixedDataConfig`; pass both explicitly.
735
+ * See {@link CrossOriginSessionConfig}.
736
+ */
737
+ crossOriginSession?: CrossOriginSessionConfig;
738
+ }
739
+ /**
740
+ * Opt-in cross-origin session continuity (`fixedDataConfig.crossOriginSession`).
741
+ *
742
+ * @remarks
743
+ * Origins under one parent domain (e.g. `login.example.com` and `app.example.com`) do not share
744
+ * localStorage, so each would report its own Observe session. With this option the tracker keeps a small
745
+ * first-party cookie `cbo_xs_<projectId>` on `cookieDomain`:
746
+ * `1.<sessionId>.<lastActiveAtMs>.<seqMark>[.<context>]` with `Path=/`, `SameSite=Lax`, `Secure` and a
747
+ * `Max-Age` of the session inactivity window. It holds the random session id, its last activity, a
748
+ * sequence reservation mark and the optional integration context (see
749
+ * {@link CorbadoTracker.setCrossOriginContext}); no personal data.
750
+ *
751
+ * The browser sends this cookie with every request to every subdomain of `cookieDomain` (it is a regular
752
+ * first-party cookie, readable by scripts); the session id in it is the one every batch already sends to
753
+ * Corbado. List it in your cookie notice like other analytics cookies. It is unrelated to
754
+ * `TrackerOptions.storage: "cookie"` / `TrackerOptions.cookieDomain`, which only move the SDK's own
755
+ * per-origin state into cookies and do not share a session across origins.
756
+ *
757
+ * At init, a tracker on another origin under the domain adopts the cookie's session when its own session
758
+ * was just created or was last active before the cookie's, and continues its sequence numbers at or above
759
+ * the mark, so the journey stays one session with unique sequence numbers. Its own session wins when it
760
+ * was active more recently. Only init, {@link CorbadoTracker.resetSession} and
761
+ * {@link CorbadoTracker.setCrossOriginContext} take the cookie over from another session; tracking never
762
+ * does, so a page still open on an older session cannot undo a newer one. Batches report the outcome in
763
+ * `meta.crossOriginSession` (`"adopted"` / `"own"`).
764
+ *
765
+ * Sessions merge across tabs: without the server's `sessionContinuity` switch each tab normally has its
766
+ * own session, but with this option every new tab (on any participating origin, including the same one)
767
+ * adopts the session of the cookie while it is active, so tabs opened within the inactivity window report
768
+ * into one session, as with `sessionContinuity`.
769
+ *
770
+ * The feature turns itself off for the page (tracking continues as without it) when the domain is not
771
+ * the page's host or a parent of it, the page is not served over HTTPS, or the cookie cannot be stored
772
+ * (blocked cookies, sandboxed or cross-site frames). It is fixed by the integration only and never taken
773
+ * from the server config.
774
+ *
775
+ * Like every `fixedDataConfig`, enabling it fixes BOTH data switches: `pmd` resolves to `false` and
776
+ * `privateMode` to `true` unless given, and the server's values are ignored (`meta.fixedData: true`). Set
777
+ * both explicitly next to it, e.g. `fixedDataConfig: { pmd: true, privateMode: true, crossOriginSession }`.
778
+ */
779
+ interface CrossOriginSessionConfig {
780
+ /**
781
+ * The parent domain every participating origin shares, e.g. `".example.com"` (a leading dot is
782
+ * optional). Must be the page's host name or a parent of it.
783
+ */
784
+ cookieDomain: string;
728
785
  }
729
786
  /** Query handling for `meta.trackingSourcePath`; see {@link SdkReliabilityConfig.sourcePathQuery}. */
730
787
  type SourcePathQueryMode = "all" | "allowlist";
@@ -754,12 +811,6 @@ interface LowEventSink {
754
811
  settle(tailMs: number): void;
755
812
  destroy(): void;
756
813
  };
757
- /**
758
- * Whether the DOM password-manager scan (`pa-1`..`pa-6` lows) may run. Absent or true keeps the
759
- * historical behaviour (always scan); false only under `fixedDataConfig` with `pmd` explicitly
760
- * `false` (an omitted `pmd` keeps the scan on).
761
- */
762
- passwordManagerDomScan?(): boolean;
763
814
  }
764
815
 
765
816
  /**
@@ -1949,6 +2000,10 @@ declare class CorbadoTracker {
1949
2000
  private readonly probeSeqs;
1950
2001
  private windowObserver?;
1951
2002
  private passwordManagerSampler?;
2003
+ /** Cross-origin session cookie (`fixedDataConfig.crossOriginSession`); undefined when off. */
2004
+ private crossOrigin?;
2005
+ /** The session this load took from the cross-origin cookie, if any (`meta.crossOriginSession`). */
2006
+ private crossOriginAdoptedId?;
1952
2007
  /** @internal Shared passive page observation and per-operation context registration. */
1953
2008
  getWindowObserver(): SharedWindowObserver;
1954
2009
  constructor(options: TrackerOptions);
@@ -2020,6 +2075,26 @@ declare class CorbadoTracker {
2020
2075
  */
2021
2076
  private resolveExperiments;
2022
2077
  private isTrackingBlocked;
2078
+ /** The cross-origin session cookie when `fixedDataConfig.crossOriginSession` is set and usable here. */
2079
+ private createCrossOriginSession;
2080
+ /**
2081
+ * Last activity of the local session records BEFORE this load rewrites them (both paths, by id), so the
2082
+ * cross-origin boot can tell a session that was active here from one this load just created.
2083
+ */
2084
+ private readLocalSessionActivity;
2085
+ /**
2086
+ * Reconcile the session this load resolved locally with the cross-origin cookie before the first event:
2087
+ * adopt the cookie's session (and persist it locally, so reloads and same-origin tabs follow) or keep
2088
+ * the local one, and continue the seq at or above the cookie's mark. Never throws.
2089
+ */
2090
+ private bootCrossOriginSession;
2091
+ /**
2092
+ * Resolve the session of this load: locally ({@link resolveSessionId}), then reconciled with the
2093
+ * cross-origin cookie when that option is on. Used at boot and by the recovery in `getSessionId`.
2094
+ */
2095
+ private resolveSession;
2096
+ /** `meta.crossOriginSession` of a batch of `sessionId`; undefined while the option is off on this page. */
2097
+ private crossOriginSessionMeta;
2023
2098
  private resolveSessionId;
2024
2099
  /**
2025
2100
  * Resolve the session id from localStorage so it survives reloads and is shared across tabs of the
@@ -2410,14 +2485,6 @@ declare class CorbadoTracker {
2410
2485
  * @internal
2411
2486
  */
2412
2487
  flushKeepalive(reason?: FlushReason): void;
2413
- /**
2414
- * Whether input trackers run the DOM password-manager scan (`pa-1`..`pa-6` lows): only an explicitly
2415
- * set `fixedDataConfig.pmd` decides; without `fixedDataConfig` or with `pmd` omitted it always runs
2416
- * (historical behaviour).
2417
- *
2418
- * @internal
2419
- */
2420
- isPasswordManagerDomScanEnabled(): boolean;
2421
2488
  /**
2422
2489
  * Keepalive flush requested by a low-event tracker's `pagehide` teardown. Gated by the
2423
2490
  * server-controlled trigger switch `tlf` (boot-snapshot, default true = historical behavior):
@@ -2715,6 +2782,36 @@ declare class CorbadoTracker {
2715
2782
  * ```
2716
2783
  */
2717
2784
  getSessionId(): string | undefined;
2785
+ /**
2786
+ * Store an opaque context string with the cross-origin session, for the integration's own use on the
2787
+ * next origin (e.g. a journey id and stage). Requires `fixedDataConfig.crossOriginSession`.
2788
+ *
2789
+ * @remarks
2790
+ * The value travels in the shared cookie only (see {@link CrossOriginSessionConfig}): it is never sent
2791
+ * to Corbado, but the browser sends the cookie with every request to every subdomain of the configured
2792
+ * domain. It belongs to the current session: a tracker that adopts the session reads it with
2793
+ * {@link CorbadoTracker.getCrossOriginContext}, and a new session (inactivity, `resetSession`) starts
2794
+ * without it. At most 128 characters of `A-Z a-z 0-9 . _ ~ -`; never put personal data in it.
2795
+ * `null`, `undefined` or `""` clears it.
2796
+ *
2797
+ * Never throws.
2798
+ *
2799
+ * @param context - The value to store; `null`, `undefined` or `""` clears it.
2800
+ * @returns `true` when the value was accepted and written; `false` when it is invalid or the feature
2801
+ * is off on this page (not configured, cookie blocked, domain mismatch, not HTTPS).
2802
+ *
2803
+ * @example
2804
+ * ```typescript
2805
+ * tracker.setCrossOriginContext(`v1.${journeyId}.passkey.b`);
2806
+ * ```
2807
+ */
2808
+ setCrossOriginContext(context: string | null | undefined): boolean;
2809
+ /**
2810
+ * The context string stored with the current cross-origin session (see
2811
+ * {@link CorbadoTracker.setCrossOriginContext}), or `undefined` when none is set, the session has no
2812
+ * context, or the feature is off on this page. Never throws.
2813
+ */
2814
+ getCrossOriginContext(): string | undefined;
2718
2815
  /** @internal */
2719
2816
  resetSession(): string;
2720
2817
  }
@@ -2791,6 +2888,11 @@ interface QueueOptions {
2791
2888
  * integration or the build, so the server's data flags are ignored. Omitted (no meta field) when false.
2792
2889
  */
2793
2890
  fixedData?: boolean;
2891
+ /**
2892
+ * Returns `meta.crossOriginSession` for a batch of the given session (`"adopted"` / `"own"`), or
2893
+ * undefined (no meta field) while the cross-origin session option is off. Read at send time.
2894
+ */
2895
+ getCrossOriginSession?: (sessionId: string) => "adopted" | "own" | undefined;
2794
2896
  /**
2795
2897
  * Called with the events of every event batch right before it is sent (async and unload flushes),
2796
2898
  * before the batch's telemetry is taken. The tracker uses it to attach a device info snapshot that
@@ -2876,6 +2978,7 @@ declare class RequestQueue {
2876
2978
  private readonly requestConfig;
2877
2979
  private readonly onConfigReceived?;
2878
2980
  private readonly getDataPolicy?;
2981
+ private readonly getCrossOriginSession?;
2879
2982
  private readonly fixedData;
2880
2983
  private readonly beforeEventBatchSend?;
2881
2984
  private readonly standaloneDeviceInfo?;
@@ -3141,18 +3244,15 @@ declare function parseReliabilityConfig(raw: unknown): SdkReliabilityConfig | nu
3141
3244
  /** Resolve init overrides over validated server policy, then defaults, including individual retry fields. */
3142
3245
  declare function resolveReliabilityConfig(serverConfig: SdkReliabilityConfig | undefined, overrides?: SdkReliabilityConfigOverrides): SdkReliabilityConfig;
3143
3246
  /** Effective fixed data switches; every field resolved. */
3144
- type ResolvedFixedDataConfig = Required<FixedDataConfig> & {
3145
- /**
3146
- * Whether `pmd` was set explicitly (a boolean). Only an explicit `pmd` gates the DOM password-manager
3147
- * scan (`pa-1`..`pa-6`); an omitted `pmd` turns the extension probes off but leaves the scan on.
3148
- */
3149
- pmdExplicit: boolean;
3247
+ type ResolvedFixedDataConfig = Required<Omit<FixedDataConfig, "crossOriginSession">> & {
3248
+ /** Cross-origin session option as given (domain not yet checked against the page); absent when not set. */
3249
+ crossOriginSession?: CrossOriginSessionConfig;
3150
3250
  };
3151
3251
  /**
3152
3252
  * Resolve `init({ fixedDataConfig })`. Returns `undefined` (not fixed: server-driven, today's behaviour)
3153
3253
  * unless the option is an object. A missing or non-boolean `pmd` resolves to `false` (not the built-in
3154
- * default and not `sdkConfig.pmd`: a fixed config collects only what it names) with `pmdExplicit: false`;
3155
- * a missing or non-boolean `privateMode` resolves to on. Never throws.
3254
+ * default and not `sdkConfig.pmd`: a fixed config collects only what it names); a missing or non-boolean `privateMode` resolves to on. `crossOriginSession` is kept only with a string
3255
+ * `cookieDomain` (checked against the page later). Never throws.
3156
3256
  *
3157
3257
  * @internal
3158
3258
  */
@@ -3339,4 +3439,4 @@ declare function logInfo(message: string): void;
3339
3439
  declare function logError(message: string): void;
3340
3440
  declare function destroy(): Promise<void>;
3341
3441
 
3342
- export { type AppConfirmationOperationCeremonyTypedError, type AppConfirmationOperationConfig, AppConfirmationOperationFull, type AppConfirmationOperationRetryReason, type AppConfirmationOperationSpecType, type AppConfirmationOperationStart, type AuthDecisionFinished, type AuthDecisionStarted, AuthEventName, type AuthMethodDecisionFinished, type AuthMethodDecisionStarted, type AuthMethodType, type BaseEvent, CEREMONY_LOW_EVENT_TAIL_MS, CONFIG_BOUNDS, CONFIG_CACHE_STORAGE_KEY, CONFIG_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, type ConfigCacheRecord, type Conversion, CookieStorage, CorbadoTracker, type CreateLoggerOptions, type CustomEvent, DEFAULT_DEVICE_INFO_COLLECTOR_TIMEOUT_MS, DEFAULT_FLUSH_INTERVAL_MS, DEFAULT_MAX_ENTRIES, DEFAULT_MAX_SERIALIZED_LENGTH, DEFAULT_RELIABILITY_CONFIG, DEFAULT_SEQ_LOCK_TIMEOUT_MS, DEFAULT_SESSION_INACTIVITY_MS, type DeviceInfo, type DeviceInfoCollectionError, type DeviceInfoDataWeb, type DeviceType, type EmailLinkContinuationConfig, EmailLinkContinuationOperation, type EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type ErrorStepOptions, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FixedDataConfig, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowHandle, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type FormOperationConfig, FormOperationFull, type HandoffStepHelper, type JavaScriptHighEntropy, type KeyOperationConfig, KeyRegistrationOperationFull, KeySigningOperationFull, LocalStorage, type Logger, type LowEvent, type LowEventFieldRole, type LowEventInitiator, type LowEventInputEffect, type LowEventSourceKind, type MultiFlowReset, type MultiFlowStarted, NamespacedStorage, type NormalizedError, OUTBOX_LOCK_NAME, OUTBOX_STORAGE_KEY, type ObserveSdkConfigSnapshot, OperationFull, OperationFullProvideIdentifierWithCUI, type OperationFullProvideIdentifierWithCUIConfig, type OutboxEntry, PROBE_BATCH_MAX_BYTES, PROBE_BATCH_MAX_ITEMS, PROBE_PAYLOAD_MAX_BYTES, PROBE_QUEUE_MAX_BYTES, PROBE_QUEUE_MAX_ITEMS, type PasskeyDeletionDeletionTypedError, type PasskeyDeletionOperationConfig, PasskeyDeletionOperationFull, type PasskeyDeletionUserConfirmationTypedError, type PasskeyEnrollmentCeremonyFinished, type PasskeyEnrollmentCeremonyStart, type PasskeyEnrollmentGetOptionsFinished, type PasskeyEnrollmentGetOptionsStart, type PasskeyEnrollmentOperationConfig, PasskeyEnrollmentOperationFull, type PasskeyEnrollmentPostResponseStart, type PasskeyLoginCUIGetOptionsFinished, type PasskeyLoginCUIGetOptionsStart, type PasskeyLoginCUISpecType, type PasskeyLoginCeremonyFinished, type PasskeyLoginCeremonyStart, type PasskeyLoginClientError, type PasskeyLoginFinish, type PasskeyLoginGetOptionsFinished, type PasskeyLoginGetOptionsStart, type PasskeyLoginOperationConfig, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, type PasswordLoginConfig, type PasswordLoginExplicitSpecType, PasswordLoginOperationFull, type PasswordLoginTypedError, type PasswordManagerExtension, type PasswordManagerExtensionName, type PredefinedEvent, type ProbeContext, type ProbeEntry, type ProbeInput, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RAW_ERROR_BOUNDS, READER_EXPOSURES, type RawErrorEnvelope, type ReaderDataConfigKey, type ReaderExposure, type ReaderField, type ReaderMeta, type ReaderOrigin, type ReaderTransform, RequestQueue, type ResolvedFixedDataConfig, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkInputHandoff, type SdkReliabilityConfig, type SdkReliabilityConfigOverrides, type SdkRetryConfig, type SdkWebAuthnError, type SdkWebAuthnPayload, type SerializeRawErrorOptions, SessionStorage, type SetFlowTagsOptions, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginEntry, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type SourcePathQueryMode, type SsoLoginExchangeCodeFinished, type SsoLoginExchangeCodeStart, type SsoLoginGetRedirectUrlFinished, type SsoLoginGetRedirectUrlStart, type SsoLoginOperationConfig, SsoLoginOperationFull, type SsoLoginSpecType, type StandaloneDeviceInfoSource, type StepHelper, type StepIdentifier, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TotpOperationConfig, TotpOperationFull, type TotpOperationPostResponseStart, type TotpOperationSpecType, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type TrustedDeviceBindingMetadata, type TrustedDeviceCheckConfig, TrustedDeviceCheckOperationFull, type TrustedDeviceCheckResult, type TrustedDeviceCheckStepResult, type TrustedDeviceCheckTypedError, TrustedDeviceEnrollmentOperationFull, type TrustedDeviceEnrollmentResult, type TrustedDeviceOperationConfig, type TrustedDevicePurpose, type TrustedDeviceStorage, UNLOAD_BUDGET_BYTES, UNLOAD_PROBE_MAX_BYTES, type UserReference, type WebAuthnIdentifierProjector, type WebAuthnIdentifierProjectors, type WithHandoffs, cacheConfigRecord, clearExperiment, clearExperiments, createLogger, destroy, detectPasswordManagerExtensions, getExperiments, getSessionId, getTracker, init, loadCachedConfig, loadConfigRecord, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, resolveFixedDataConfig, resolveRawErrorLimits, resolveReliabilityConfig, sanitizeAssertionResponse, sanitizeCreationOptions, sanitizeCreationResponse, sanitizeRequestOptions, serializeRawError, setExperiment, setExperiments, setFlowTags, setUser, telemetry, utf8Length };
3442
+ export { type AppConfirmationOperationCeremonyTypedError, type AppConfirmationOperationConfig, AppConfirmationOperationFull, type AppConfirmationOperationRetryReason, type AppConfirmationOperationSpecType, type AppConfirmationOperationStart, type AuthDecisionFinished, type AuthDecisionStarted, AuthEventName, type AuthMethodDecisionFinished, type AuthMethodDecisionStarted, type AuthMethodType, type BaseEvent, CEREMONY_LOW_EVENT_TAIL_MS, CONFIG_BOUNDS, CONFIG_CACHE_STORAGE_KEY, CONFIG_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, type ConfigCacheRecord, type Conversion, CookieStorage, CorbadoTracker, type CreateLoggerOptions, type CrossOriginSessionConfig, type CustomEvent, DEFAULT_DEVICE_INFO_COLLECTOR_TIMEOUT_MS, DEFAULT_FLUSH_INTERVAL_MS, DEFAULT_MAX_ENTRIES, DEFAULT_MAX_SERIALIZED_LENGTH, DEFAULT_RELIABILITY_CONFIG, DEFAULT_SEQ_LOCK_TIMEOUT_MS, DEFAULT_SESSION_INACTIVITY_MS, type DeviceInfo, type DeviceInfoCollectionError, type DeviceInfoDataWeb, type DeviceType, type EmailLinkContinuationConfig, EmailLinkContinuationOperation, type EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type ErrorStepOptions, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FixedDataConfig, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowHandle, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type FormOperationConfig, FormOperationFull, type HandoffStepHelper, type JavaScriptHighEntropy, type KeyOperationConfig, KeyRegistrationOperationFull, KeySigningOperationFull, LocalStorage, type Logger, type LowEvent, type LowEventFieldRole, type LowEventInitiator, type LowEventInputEffect, type LowEventSourceKind, type MultiFlowReset, type MultiFlowStarted, NamespacedStorage, type NormalizedError, OUTBOX_LOCK_NAME, OUTBOX_STORAGE_KEY, type ObserveSdkConfigSnapshot, OperationFull, OperationFullProvideIdentifierWithCUI, type OperationFullProvideIdentifierWithCUIConfig, type OutboxEntry, PROBE_BATCH_MAX_BYTES, PROBE_BATCH_MAX_ITEMS, PROBE_PAYLOAD_MAX_BYTES, PROBE_QUEUE_MAX_BYTES, PROBE_QUEUE_MAX_ITEMS, type PasskeyDeletionDeletionTypedError, type PasskeyDeletionOperationConfig, PasskeyDeletionOperationFull, type PasskeyDeletionUserConfirmationTypedError, type PasskeyEnrollmentCeremonyFinished, type PasskeyEnrollmentCeremonyStart, type PasskeyEnrollmentGetOptionsFinished, type PasskeyEnrollmentGetOptionsStart, type PasskeyEnrollmentOperationConfig, PasskeyEnrollmentOperationFull, type PasskeyEnrollmentPostResponseStart, type PasskeyLoginCUIGetOptionsFinished, type PasskeyLoginCUIGetOptionsStart, type PasskeyLoginCUISpecType, type PasskeyLoginCeremonyFinished, type PasskeyLoginCeremonyStart, type PasskeyLoginClientError, type PasskeyLoginFinish, type PasskeyLoginGetOptionsFinished, type PasskeyLoginGetOptionsStart, type PasskeyLoginOperationConfig, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, type PasswordLoginConfig, type PasswordLoginExplicitSpecType, PasswordLoginOperationFull, type PasswordLoginTypedError, type PasswordManagerExtension, type PasswordManagerExtensionName, type PredefinedEvent, type ProbeContext, type ProbeEntry, type ProbeInput, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RAW_ERROR_BOUNDS, READER_EXPOSURES, type RawErrorEnvelope, type ReaderDataConfigKey, type ReaderExposure, type ReaderField, type ReaderMeta, type ReaderOrigin, type ReaderTransform, RequestQueue, type ResolvedFixedDataConfig, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkInputHandoff, type SdkReliabilityConfig, type SdkReliabilityConfigOverrides, type SdkRetryConfig, type SdkWebAuthnError, type SdkWebAuthnPayload, type SerializeRawErrorOptions, SessionStorage, type SetFlowTagsOptions, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginEntry, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type SourcePathQueryMode, type SsoLoginExchangeCodeFinished, type SsoLoginExchangeCodeStart, type SsoLoginGetRedirectUrlFinished, type SsoLoginGetRedirectUrlStart, type SsoLoginOperationConfig, SsoLoginOperationFull, type SsoLoginSpecType, type StandaloneDeviceInfoSource, type StepHelper, type StepIdentifier, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TotpOperationConfig, TotpOperationFull, type TotpOperationPostResponseStart, type TotpOperationSpecType, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type TrustedDeviceBindingMetadata, type TrustedDeviceCheckConfig, TrustedDeviceCheckOperationFull, type TrustedDeviceCheckResult, type TrustedDeviceCheckStepResult, type TrustedDeviceCheckTypedError, TrustedDeviceEnrollmentOperationFull, type TrustedDeviceEnrollmentResult, type TrustedDeviceOperationConfig, type TrustedDevicePurpose, type TrustedDeviceStorage, UNLOAD_BUDGET_BYTES, UNLOAD_PROBE_MAX_BYTES, type UserReference, type WebAuthnIdentifierProjector, type WebAuthnIdentifierProjectors, type WithHandoffs, cacheConfigRecord, clearExperiment, clearExperiments, createLogger, destroy, detectPasswordManagerExtensions, getExperiments, getSessionId, getTracker, init, loadCachedConfig, loadConfigRecord, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, resolveFixedDataConfig, resolveRawErrorLimits, resolveReliabilityConfig, sanitizeAssertionResponse, sanitizeCreationOptions, sanitizeCreationResponse, sanitizeRequestOptions, serializeRawError, setExperiment, setExperiments, setFlowTags, setUser, telemetry, utf8Length };
package/dist/index.d.ts CHANGED
@@ -487,6 +487,12 @@ interface EventBatchMeta {
487
487
  * fields of the server config (`pmd`) are ignored. Omitted otherwise.
488
488
  */
489
489
  fixedData?: boolean;
490
+ /**
491
+ * Set while `fixedDataConfig.crossOriginSession` is active on the page: `"adopted"` when this page load
492
+ * took the batch's session from the shared cross-origin cookie (another origin started it), `"own"`
493
+ * when the session is this origin's own. Omitted when the option is off or unusable on the page.
494
+ */
495
+ crossOriginSession?: "adopted" | "own";
490
496
  }
491
497
  interface EventMeta {
492
498
  initiator?: LowEventInitiator;
@@ -710,14 +716,12 @@ interface FixedDataConfig {
710
716
  /**
711
717
  * Password-manager detection.
712
718
  *
713
- * - `true`: the extension probes (reported as {@link Event.passwordManagers}) and the DOM
714
- * password-manager scan (`pa-1`..`pa-6` lows) run.
715
- * - `false`: neither runs.
716
- * - omitted (with `fixedDataConfig` given): the extension probes are off (`pmd` resolves to `false`,
717
- * regardless of the built-in default, `sdkConfig.pmd` and the server config); the DOM scan keeps
718
- * today's behaviour and runs.
719
+ * - `true`: the extension probes run (reported as {@link Event.passwordManagers}).
720
+ * - `false`: they do not run.
721
+ * - omitted (with `fixedDataConfig` given): they are off (`pmd` resolves to `false`, regardless of the
722
+ * built-in default, `sdkConfig.pmd` and the server config).
719
723
  *
720
- * Without `fixedDataConfig` the probes follow the server's `pmd` and the DOM scan always runs.
724
+ * Without `fixedDataConfig` the probes follow the server's `pmd`.
721
725
  */
722
726
  pmd?: boolean;
723
727
  /**
@@ -725,6 +729,59 @@ interface FixedDataConfig {
725
729
  * without `fixedDataConfig`). When false, nothing is detected, read or written for it.
726
730
  */
727
731
  privateMode?: boolean;
732
+ /**
733
+ * Cross-origin session continuity under a shared parent domain. Off when omitted (no cookie is read or
734
+ * written). Setting it fixes `pmd` and `privateMode` like any `fixedDataConfig`; pass both explicitly.
735
+ * See {@link CrossOriginSessionConfig}.
736
+ */
737
+ crossOriginSession?: CrossOriginSessionConfig;
738
+ }
739
+ /**
740
+ * Opt-in cross-origin session continuity (`fixedDataConfig.crossOriginSession`).
741
+ *
742
+ * @remarks
743
+ * Origins under one parent domain (e.g. `login.example.com` and `app.example.com`) do not share
744
+ * localStorage, so each would report its own Observe session. With this option the tracker keeps a small
745
+ * first-party cookie `cbo_xs_<projectId>` on `cookieDomain`:
746
+ * `1.<sessionId>.<lastActiveAtMs>.<seqMark>[.<context>]` with `Path=/`, `SameSite=Lax`, `Secure` and a
747
+ * `Max-Age` of the session inactivity window. It holds the random session id, its last activity, a
748
+ * sequence reservation mark and the optional integration context (see
749
+ * {@link CorbadoTracker.setCrossOriginContext}); no personal data.
750
+ *
751
+ * The browser sends this cookie with every request to every subdomain of `cookieDomain` (it is a regular
752
+ * first-party cookie, readable by scripts); the session id in it is the one every batch already sends to
753
+ * Corbado. List it in your cookie notice like other analytics cookies. It is unrelated to
754
+ * `TrackerOptions.storage: "cookie"` / `TrackerOptions.cookieDomain`, which only move the SDK's own
755
+ * per-origin state into cookies and do not share a session across origins.
756
+ *
757
+ * At init, a tracker on another origin under the domain adopts the cookie's session when its own session
758
+ * was just created or was last active before the cookie's, and continues its sequence numbers at or above
759
+ * the mark, so the journey stays one session with unique sequence numbers. Its own session wins when it
760
+ * was active more recently. Only init, {@link CorbadoTracker.resetSession} and
761
+ * {@link CorbadoTracker.setCrossOriginContext} take the cookie over from another session; tracking never
762
+ * does, so a page still open on an older session cannot undo a newer one. Batches report the outcome in
763
+ * `meta.crossOriginSession` (`"adopted"` / `"own"`).
764
+ *
765
+ * Sessions merge across tabs: without the server's `sessionContinuity` switch each tab normally has its
766
+ * own session, but with this option every new tab (on any participating origin, including the same one)
767
+ * adopts the session of the cookie while it is active, so tabs opened within the inactivity window report
768
+ * into one session, as with `sessionContinuity`.
769
+ *
770
+ * The feature turns itself off for the page (tracking continues as without it) when the domain is not
771
+ * the page's host or a parent of it, the page is not served over HTTPS, or the cookie cannot be stored
772
+ * (blocked cookies, sandboxed or cross-site frames). It is fixed by the integration only and never taken
773
+ * from the server config.
774
+ *
775
+ * Like every `fixedDataConfig`, enabling it fixes BOTH data switches: `pmd` resolves to `false` and
776
+ * `privateMode` to `true` unless given, and the server's values are ignored (`meta.fixedData: true`). Set
777
+ * both explicitly next to it, e.g. `fixedDataConfig: { pmd: true, privateMode: true, crossOriginSession }`.
778
+ */
779
+ interface CrossOriginSessionConfig {
780
+ /**
781
+ * The parent domain every participating origin shares, e.g. `".example.com"` (a leading dot is
782
+ * optional). Must be the page's host name or a parent of it.
783
+ */
784
+ cookieDomain: string;
728
785
  }
729
786
  /** Query handling for `meta.trackingSourcePath`; see {@link SdkReliabilityConfig.sourcePathQuery}. */
730
787
  type SourcePathQueryMode = "all" | "allowlist";
@@ -754,12 +811,6 @@ interface LowEventSink {
754
811
  settle(tailMs: number): void;
755
812
  destroy(): void;
756
813
  };
757
- /**
758
- * Whether the DOM password-manager scan (`pa-1`..`pa-6` lows) may run. Absent or true keeps the
759
- * historical behaviour (always scan); false only under `fixedDataConfig` with `pmd` explicitly
760
- * `false` (an omitted `pmd` keeps the scan on).
761
- */
762
- passwordManagerDomScan?(): boolean;
763
814
  }
764
815
 
765
816
  /**
@@ -1949,6 +2000,10 @@ declare class CorbadoTracker {
1949
2000
  private readonly probeSeqs;
1950
2001
  private windowObserver?;
1951
2002
  private passwordManagerSampler?;
2003
+ /** Cross-origin session cookie (`fixedDataConfig.crossOriginSession`); undefined when off. */
2004
+ private crossOrigin?;
2005
+ /** The session this load took from the cross-origin cookie, if any (`meta.crossOriginSession`). */
2006
+ private crossOriginAdoptedId?;
1952
2007
  /** @internal Shared passive page observation and per-operation context registration. */
1953
2008
  getWindowObserver(): SharedWindowObserver;
1954
2009
  constructor(options: TrackerOptions);
@@ -2020,6 +2075,26 @@ declare class CorbadoTracker {
2020
2075
  */
2021
2076
  private resolveExperiments;
2022
2077
  private isTrackingBlocked;
2078
+ /** The cross-origin session cookie when `fixedDataConfig.crossOriginSession` is set and usable here. */
2079
+ private createCrossOriginSession;
2080
+ /**
2081
+ * Last activity of the local session records BEFORE this load rewrites them (both paths, by id), so the
2082
+ * cross-origin boot can tell a session that was active here from one this load just created.
2083
+ */
2084
+ private readLocalSessionActivity;
2085
+ /**
2086
+ * Reconcile the session this load resolved locally with the cross-origin cookie before the first event:
2087
+ * adopt the cookie's session (and persist it locally, so reloads and same-origin tabs follow) or keep
2088
+ * the local one, and continue the seq at or above the cookie's mark. Never throws.
2089
+ */
2090
+ private bootCrossOriginSession;
2091
+ /**
2092
+ * Resolve the session of this load: locally ({@link resolveSessionId}), then reconciled with the
2093
+ * cross-origin cookie when that option is on. Used at boot and by the recovery in `getSessionId`.
2094
+ */
2095
+ private resolveSession;
2096
+ /** `meta.crossOriginSession` of a batch of `sessionId`; undefined while the option is off on this page. */
2097
+ private crossOriginSessionMeta;
2023
2098
  private resolveSessionId;
2024
2099
  /**
2025
2100
  * Resolve the session id from localStorage so it survives reloads and is shared across tabs of the
@@ -2410,14 +2485,6 @@ declare class CorbadoTracker {
2410
2485
  * @internal
2411
2486
  */
2412
2487
  flushKeepalive(reason?: FlushReason): void;
2413
- /**
2414
- * Whether input trackers run the DOM password-manager scan (`pa-1`..`pa-6` lows): only an explicitly
2415
- * set `fixedDataConfig.pmd` decides; without `fixedDataConfig` or with `pmd` omitted it always runs
2416
- * (historical behaviour).
2417
- *
2418
- * @internal
2419
- */
2420
- isPasswordManagerDomScanEnabled(): boolean;
2421
2488
  /**
2422
2489
  * Keepalive flush requested by a low-event tracker's `pagehide` teardown. Gated by the
2423
2490
  * server-controlled trigger switch `tlf` (boot-snapshot, default true = historical behavior):
@@ -2715,6 +2782,36 @@ declare class CorbadoTracker {
2715
2782
  * ```
2716
2783
  */
2717
2784
  getSessionId(): string | undefined;
2785
+ /**
2786
+ * Store an opaque context string with the cross-origin session, for the integration's own use on the
2787
+ * next origin (e.g. a journey id and stage). Requires `fixedDataConfig.crossOriginSession`.
2788
+ *
2789
+ * @remarks
2790
+ * The value travels in the shared cookie only (see {@link CrossOriginSessionConfig}): it is never sent
2791
+ * to Corbado, but the browser sends the cookie with every request to every subdomain of the configured
2792
+ * domain. It belongs to the current session: a tracker that adopts the session reads it with
2793
+ * {@link CorbadoTracker.getCrossOriginContext}, and a new session (inactivity, `resetSession`) starts
2794
+ * without it. At most 128 characters of `A-Z a-z 0-9 . _ ~ -`; never put personal data in it.
2795
+ * `null`, `undefined` or `""` clears it.
2796
+ *
2797
+ * Never throws.
2798
+ *
2799
+ * @param context - The value to store; `null`, `undefined` or `""` clears it.
2800
+ * @returns `true` when the value was accepted and written; `false` when it is invalid or the feature
2801
+ * is off on this page (not configured, cookie blocked, domain mismatch, not HTTPS).
2802
+ *
2803
+ * @example
2804
+ * ```typescript
2805
+ * tracker.setCrossOriginContext(`v1.${journeyId}.passkey.b`);
2806
+ * ```
2807
+ */
2808
+ setCrossOriginContext(context: string | null | undefined): boolean;
2809
+ /**
2810
+ * The context string stored with the current cross-origin session (see
2811
+ * {@link CorbadoTracker.setCrossOriginContext}), or `undefined` when none is set, the session has no
2812
+ * context, or the feature is off on this page. Never throws.
2813
+ */
2814
+ getCrossOriginContext(): string | undefined;
2718
2815
  /** @internal */
2719
2816
  resetSession(): string;
2720
2817
  }
@@ -2791,6 +2888,11 @@ interface QueueOptions {
2791
2888
  * integration or the build, so the server's data flags are ignored. Omitted (no meta field) when false.
2792
2889
  */
2793
2890
  fixedData?: boolean;
2891
+ /**
2892
+ * Returns `meta.crossOriginSession` for a batch of the given session (`"adopted"` / `"own"`), or
2893
+ * undefined (no meta field) while the cross-origin session option is off. Read at send time.
2894
+ */
2895
+ getCrossOriginSession?: (sessionId: string) => "adopted" | "own" | undefined;
2794
2896
  /**
2795
2897
  * Called with the events of every event batch right before it is sent (async and unload flushes),
2796
2898
  * before the batch's telemetry is taken. The tracker uses it to attach a device info snapshot that
@@ -2876,6 +2978,7 @@ declare class RequestQueue {
2876
2978
  private readonly requestConfig;
2877
2979
  private readonly onConfigReceived?;
2878
2980
  private readonly getDataPolicy?;
2981
+ private readonly getCrossOriginSession?;
2879
2982
  private readonly fixedData;
2880
2983
  private readonly beforeEventBatchSend?;
2881
2984
  private readonly standaloneDeviceInfo?;
@@ -3141,18 +3244,15 @@ declare function parseReliabilityConfig(raw: unknown): SdkReliabilityConfig | nu
3141
3244
  /** Resolve init overrides over validated server policy, then defaults, including individual retry fields. */
3142
3245
  declare function resolveReliabilityConfig(serverConfig: SdkReliabilityConfig | undefined, overrides?: SdkReliabilityConfigOverrides): SdkReliabilityConfig;
3143
3246
  /** Effective fixed data switches; every field resolved. */
3144
- type ResolvedFixedDataConfig = Required<FixedDataConfig> & {
3145
- /**
3146
- * Whether `pmd` was set explicitly (a boolean). Only an explicit `pmd` gates the DOM password-manager
3147
- * scan (`pa-1`..`pa-6`); an omitted `pmd` turns the extension probes off but leaves the scan on.
3148
- */
3149
- pmdExplicit: boolean;
3247
+ type ResolvedFixedDataConfig = Required<Omit<FixedDataConfig, "crossOriginSession">> & {
3248
+ /** Cross-origin session option as given (domain not yet checked against the page); absent when not set. */
3249
+ crossOriginSession?: CrossOriginSessionConfig;
3150
3250
  };
3151
3251
  /**
3152
3252
  * Resolve `init({ fixedDataConfig })`. Returns `undefined` (not fixed: server-driven, today's behaviour)
3153
3253
  * unless the option is an object. A missing or non-boolean `pmd` resolves to `false` (not the built-in
3154
- * default and not `sdkConfig.pmd`: a fixed config collects only what it names) with `pmdExplicit: false`;
3155
- * a missing or non-boolean `privateMode` resolves to on. Never throws.
3254
+ * default and not `sdkConfig.pmd`: a fixed config collects only what it names); a missing or non-boolean `privateMode` resolves to on. `crossOriginSession` is kept only with a string
3255
+ * `cookieDomain` (checked against the page later). Never throws.
3156
3256
  *
3157
3257
  * @internal
3158
3258
  */
@@ -3339,4 +3439,4 @@ declare function logInfo(message: string): void;
3339
3439
  declare function logError(message: string): void;
3340
3440
  declare function destroy(): Promise<void>;
3341
3441
 
3342
- export { type AppConfirmationOperationCeremonyTypedError, type AppConfirmationOperationConfig, AppConfirmationOperationFull, type AppConfirmationOperationRetryReason, type AppConfirmationOperationSpecType, type AppConfirmationOperationStart, type AuthDecisionFinished, type AuthDecisionStarted, AuthEventName, type AuthMethodDecisionFinished, type AuthMethodDecisionStarted, type AuthMethodType, type BaseEvent, CEREMONY_LOW_EVENT_TAIL_MS, CONFIG_BOUNDS, CONFIG_CACHE_STORAGE_KEY, CONFIG_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, type ConfigCacheRecord, type Conversion, CookieStorage, CorbadoTracker, type CreateLoggerOptions, type CustomEvent, DEFAULT_DEVICE_INFO_COLLECTOR_TIMEOUT_MS, DEFAULT_FLUSH_INTERVAL_MS, DEFAULT_MAX_ENTRIES, DEFAULT_MAX_SERIALIZED_LENGTH, DEFAULT_RELIABILITY_CONFIG, DEFAULT_SEQ_LOCK_TIMEOUT_MS, DEFAULT_SESSION_INACTIVITY_MS, type DeviceInfo, type DeviceInfoCollectionError, type DeviceInfoDataWeb, type DeviceType, type EmailLinkContinuationConfig, EmailLinkContinuationOperation, type EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type ErrorStepOptions, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FixedDataConfig, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowHandle, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type FormOperationConfig, FormOperationFull, type HandoffStepHelper, type JavaScriptHighEntropy, type KeyOperationConfig, KeyRegistrationOperationFull, KeySigningOperationFull, LocalStorage, type Logger, type LowEvent, type LowEventFieldRole, type LowEventInitiator, type LowEventInputEffect, type LowEventSourceKind, type MultiFlowReset, type MultiFlowStarted, NamespacedStorage, type NormalizedError, OUTBOX_LOCK_NAME, OUTBOX_STORAGE_KEY, type ObserveSdkConfigSnapshot, OperationFull, OperationFullProvideIdentifierWithCUI, type OperationFullProvideIdentifierWithCUIConfig, type OutboxEntry, PROBE_BATCH_MAX_BYTES, PROBE_BATCH_MAX_ITEMS, PROBE_PAYLOAD_MAX_BYTES, PROBE_QUEUE_MAX_BYTES, PROBE_QUEUE_MAX_ITEMS, type PasskeyDeletionDeletionTypedError, type PasskeyDeletionOperationConfig, PasskeyDeletionOperationFull, type PasskeyDeletionUserConfirmationTypedError, type PasskeyEnrollmentCeremonyFinished, type PasskeyEnrollmentCeremonyStart, type PasskeyEnrollmentGetOptionsFinished, type PasskeyEnrollmentGetOptionsStart, type PasskeyEnrollmentOperationConfig, PasskeyEnrollmentOperationFull, type PasskeyEnrollmentPostResponseStart, type PasskeyLoginCUIGetOptionsFinished, type PasskeyLoginCUIGetOptionsStart, type PasskeyLoginCUISpecType, type PasskeyLoginCeremonyFinished, type PasskeyLoginCeremonyStart, type PasskeyLoginClientError, type PasskeyLoginFinish, type PasskeyLoginGetOptionsFinished, type PasskeyLoginGetOptionsStart, type PasskeyLoginOperationConfig, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, type PasswordLoginConfig, type PasswordLoginExplicitSpecType, PasswordLoginOperationFull, type PasswordLoginTypedError, type PasswordManagerExtension, type PasswordManagerExtensionName, type PredefinedEvent, type ProbeContext, type ProbeEntry, type ProbeInput, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RAW_ERROR_BOUNDS, READER_EXPOSURES, type RawErrorEnvelope, type ReaderDataConfigKey, type ReaderExposure, type ReaderField, type ReaderMeta, type ReaderOrigin, type ReaderTransform, RequestQueue, type ResolvedFixedDataConfig, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkInputHandoff, type SdkReliabilityConfig, type SdkReliabilityConfigOverrides, type SdkRetryConfig, type SdkWebAuthnError, type SdkWebAuthnPayload, type SerializeRawErrorOptions, SessionStorage, type SetFlowTagsOptions, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginEntry, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type SourcePathQueryMode, type SsoLoginExchangeCodeFinished, type SsoLoginExchangeCodeStart, type SsoLoginGetRedirectUrlFinished, type SsoLoginGetRedirectUrlStart, type SsoLoginOperationConfig, SsoLoginOperationFull, type SsoLoginSpecType, type StandaloneDeviceInfoSource, type StepHelper, type StepIdentifier, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TotpOperationConfig, TotpOperationFull, type TotpOperationPostResponseStart, type TotpOperationSpecType, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type TrustedDeviceBindingMetadata, type TrustedDeviceCheckConfig, TrustedDeviceCheckOperationFull, type TrustedDeviceCheckResult, type TrustedDeviceCheckStepResult, type TrustedDeviceCheckTypedError, TrustedDeviceEnrollmentOperationFull, type TrustedDeviceEnrollmentResult, type TrustedDeviceOperationConfig, type TrustedDevicePurpose, type TrustedDeviceStorage, UNLOAD_BUDGET_BYTES, UNLOAD_PROBE_MAX_BYTES, type UserReference, type WebAuthnIdentifierProjector, type WebAuthnIdentifierProjectors, type WithHandoffs, cacheConfigRecord, clearExperiment, clearExperiments, createLogger, destroy, detectPasswordManagerExtensions, getExperiments, getSessionId, getTracker, init, loadCachedConfig, loadConfigRecord, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, resolveFixedDataConfig, resolveRawErrorLimits, resolveReliabilityConfig, sanitizeAssertionResponse, sanitizeCreationOptions, sanitizeCreationResponse, sanitizeRequestOptions, serializeRawError, setExperiment, setExperiments, setFlowTags, setUser, telemetry, utf8Length };
3442
+ export { type AppConfirmationOperationCeremonyTypedError, type AppConfirmationOperationConfig, AppConfirmationOperationFull, type AppConfirmationOperationRetryReason, type AppConfirmationOperationSpecType, type AppConfirmationOperationStart, type AuthDecisionFinished, type AuthDecisionStarted, AuthEventName, type AuthMethodDecisionFinished, type AuthMethodDecisionStarted, type AuthMethodType, type BaseEvent, CEREMONY_LOW_EVENT_TAIL_MS, CONFIG_BOUNDS, CONFIG_CACHE_STORAGE_KEY, CONFIG_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, type ConfigCacheRecord, type Conversion, CookieStorage, CorbadoTracker, type CreateLoggerOptions, type CrossOriginSessionConfig, type CustomEvent, DEFAULT_DEVICE_INFO_COLLECTOR_TIMEOUT_MS, DEFAULT_FLUSH_INTERVAL_MS, DEFAULT_MAX_ENTRIES, DEFAULT_MAX_SERIALIZED_LENGTH, DEFAULT_RELIABILITY_CONFIG, DEFAULT_SEQ_LOCK_TIMEOUT_MS, DEFAULT_SESSION_INACTIVITY_MS, type DeviceInfo, type DeviceInfoCollectionError, type DeviceInfoDataWeb, type DeviceType, type EmailLinkContinuationConfig, EmailLinkContinuationOperation, type EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type ErrorStepOptions, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FixedDataConfig, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowHandle, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type FormOperationConfig, FormOperationFull, type HandoffStepHelper, type JavaScriptHighEntropy, type KeyOperationConfig, KeyRegistrationOperationFull, KeySigningOperationFull, LocalStorage, type Logger, type LowEvent, type LowEventFieldRole, type LowEventInitiator, type LowEventInputEffect, type LowEventSourceKind, type MultiFlowReset, type MultiFlowStarted, NamespacedStorage, type NormalizedError, OUTBOX_LOCK_NAME, OUTBOX_STORAGE_KEY, type ObserveSdkConfigSnapshot, OperationFull, OperationFullProvideIdentifierWithCUI, type OperationFullProvideIdentifierWithCUIConfig, type OutboxEntry, PROBE_BATCH_MAX_BYTES, PROBE_BATCH_MAX_ITEMS, PROBE_PAYLOAD_MAX_BYTES, PROBE_QUEUE_MAX_BYTES, PROBE_QUEUE_MAX_ITEMS, type PasskeyDeletionDeletionTypedError, type PasskeyDeletionOperationConfig, PasskeyDeletionOperationFull, type PasskeyDeletionUserConfirmationTypedError, type PasskeyEnrollmentCeremonyFinished, type PasskeyEnrollmentCeremonyStart, type PasskeyEnrollmentGetOptionsFinished, type PasskeyEnrollmentGetOptionsStart, type PasskeyEnrollmentOperationConfig, PasskeyEnrollmentOperationFull, type PasskeyEnrollmentPostResponseStart, type PasskeyLoginCUIGetOptionsFinished, type PasskeyLoginCUIGetOptionsStart, type PasskeyLoginCUISpecType, type PasskeyLoginCeremonyFinished, type PasskeyLoginCeremonyStart, type PasskeyLoginClientError, type PasskeyLoginFinish, type PasskeyLoginGetOptionsFinished, type PasskeyLoginGetOptionsStart, type PasskeyLoginOperationConfig, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, type PasswordLoginConfig, type PasswordLoginExplicitSpecType, PasswordLoginOperationFull, type PasswordLoginTypedError, type PasswordManagerExtension, type PasswordManagerExtensionName, type PredefinedEvent, type ProbeContext, type ProbeEntry, type ProbeInput, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RAW_ERROR_BOUNDS, READER_EXPOSURES, type RawErrorEnvelope, type ReaderDataConfigKey, type ReaderExposure, type ReaderField, type ReaderMeta, type ReaderOrigin, type ReaderTransform, RequestQueue, type ResolvedFixedDataConfig, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkInputHandoff, type SdkReliabilityConfig, type SdkReliabilityConfigOverrides, type SdkRetryConfig, type SdkWebAuthnError, type SdkWebAuthnPayload, type SerializeRawErrorOptions, SessionStorage, type SetFlowTagsOptions, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginEntry, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type SourcePathQueryMode, type SsoLoginExchangeCodeFinished, type SsoLoginExchangeCodeStart, type SsoLoginGetRedirectUrlFinished, type SsoLoginGetRedirectUrlStart, type SsoLoginOperationConfig, SsoLoginOperationFull, type SsoLoginSpecType, type StandaloneDeviceInfoSource, type StepHelper, type StepIdentifier, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TotpOperationConfig, TotpOperationFull, type TotpOperationPostResponseStart, type TotpOperationSpecType, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type TrustedDeviceBindingMetadata, type TrustedDeviceCheckConfig, TrustedDeviceCheckOperationFull, type TrustedDeviceCheckResult, type TrustedDeviceCheckStepResult, type TrustedDeviceCheckTypedError, TrustedDeviceEnrollmentOperationFull, type TrustedDeviceEnrollmentResult, type TrustedDeviceOperationConfig, type TrustedDevicePurpose, type TrustedDeviceStorage, UNLOAD_BUDGET_BYTES, UNLOAD_PROBE_MAX_BYTES, type UserReference, type WebAuthnIdentifierProjector, type WebAuthnIdentifierProjectors, type WithHandoffs, cacheConfigRecord, clearExperiment, clearExperiments, createLogger, destroy, detectPasswordManagerExtensions, getExperiments, getSessionId, getTracker, init, loadCachedConfig, loadConfigRecord, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, resolveFixedDataConfig, resolveRawErrorLimits, resolveReliabilityConfig, sanitizeAssertionResponse, sanitizeCreationOptions, sanitizeCreationResponse, sanitizeRequestOptions, serializeRawError, setExperiment, setExperiments, setFlowTags, setUser, telemetry, utf8Length };