@corbado/observe 1.9.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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;
@@ -725,6 +731,59 @@ interface FixedDataConfig {
725
731
  * without `fixedDataConfig`). When false, nothing is detected, read or written for it.
726
732
  */
727
733
  privateMode?: boolean;
734
+ /**
735
+ * Cross-origin session continuity under a shared parent domain. Off when omitted (no cookie is read or
736
+ * written). Setting it fixes `pmd` and `privateMode` like any `fixedDataConfig`; pass both explicitly.
737
+ * See {@link CrossOriginSessionConfig}.
738
+ */
739
+ crossOriginSession?: CrossOriginSessionConfig;
740
+ }
741
+ /**
742
+ * Opt-in cross-origin session continuity (`fixedDataConfig.crossOriginSession`).
743
+ *
744
+ * @remarks
745
+ * Origins under one parent domain (e.g. `login.example.com` and `app.example.com`) do not share
746
+ * localStorage, so each would report its own Observe session. With this option the tracker keeps a small
747
+ * first-party cookie `cbo_xs_<projectId>` on `cookieDomain`:
748
+ * `1.<sessionId>.<lastActiveAtMs>.<seqMark>[.<context>]` with `Path=/`, `SameSite=Lax`, `Secure` and a
749
+ * `Max-Age` of the session inactivity window. It holds the random session id, its last activity, a
750
+ * sequence reservation mark and the optional integration context (see
751
+ * {@link CorbadoTracker.setCrossOriginContext}); no personal data.
752
+ *
753
+ * The browser sends this cookie with every request to every subdomain of `cookieDomain` (it is a regular
754
+ * first-party cookie, readable by scripts); the session id in it is the one every batch already sends to
755
+ * Corbado. List it in your cookie notice like other analytics cookies. It is unrelated to
756
+ * `TrackerOptions.storage: "cookie"` / `TrackerOptions.cookieDomain`, which only move the SDK's own
757
+ * per-origin state into cookies and do not share a session across origins.
758
+ *
759
+ * At init, a tracker on another origin under the domain adopts the cookie's session when its own session
760
+ * was just created or was last active before the cookie's, and continues its sequence numbers at or above
761
+ * the mark, so the journey stays one session with unique sequence numbers. Its own session wins when it
762
+ * was active more recently. Only init, {@link CorbadoTracker.resetSession} and
763
+ * {@link CorbadoTracker.setCrossOriginContext} take the cookie over from another session; tracking never
764
+ * does, so a page still open on an older session cannot undo a newer one. Batches report the outcome in
765
+ * `meta.crossOriginSession` (`"adopted"` / `"own"`).
766
+ *
767
+ * Sessions merge across tabs: without the server's `sessionContinuity` switch each tab normally has its
768
+ * own session, but with this option every new tab (on any participating origin, including the same one)
769
+ * adopts the session of the cookie while it is active, so tabs opened within the inactivity window report
770
+ * into one session, as with `sessionContinuity`.
771
+ *
772
+ * The feature turns itself off for the page (tracking continues as without it) when the domain is not
773
+ * the page's host or a parent of it, the page is not served over HTTPS, or the cookie cannot be stored
774
+ * (blocked cookies, sandboxed or cross-site frames). It is fixed by the integration only and never taken
775
+ * from the server config.
776
+ *
777
+ * Like every `fixedDataConfig`, enabling it fixes BOTH data switches: `pmd` resolves to `false` and
778
+ * `privateMode` to `true` unless given, and the server's values are ignored (`meta.fixedData: true`). Set
779
+ * both explicitly next to it, e.g. `fixedDataConfig: { pmd: true, privateMode: true, crossOriginSession }`.
780
+ */
781
+ interface CrossOriginSessionConfig {
782
+ /**
783
+ * The parent domain every participating origin shares, e.g. `".example.com"` (a leading dot is
784
+ * optional). Must be the page's host name or a parent of it.
785
+ */
786
+ cookieDomain: string;
728
787
  }
729
788
  /** Query handling for `meta.trackingSourcePath`; see {@link SdkReliabilityConfig.sourcePathQuery}. */
730
789
  type SourcePathQueryMode = "all" | "allowlist";
@@ -1949,6 +2008,10 @@ declare class CorbadoTracker {
1949
2008
  private readonly probeSeqs;
1950
2009
  private windowObserver?;
1951
2010
  private passwordManagerSampler?;
2011
+ /** Cross-origin session cookie (`fixedDataConfig.crossOriginSession`); undefined when off. */
2012
+ private crossOrigin?;
2013
+ /** The session this load took from the cross-origin cookie, if any (`meta.crossOriginSession`). */
2014
+ private crossOriginAdoptedId?;
1952
2015
  /** @internal Shared passive page observation and per-operation context registration. */
1953
2016
  getWindowObserver(): SharedWindowObserver;
1954
2017
  constructor(options: TrackerOptions);
@@ -2020,6 +2083,26 @@ declare class CorbadoTracker {
2020
2083
  */
2021
2084
  private resolveExperiments;
2022
2085
  private isTrackingBlocked;
2086
+ /** The cross-origin session cookie when `fixedDataConfig.crossOriginSession` is set and usable here. */
2087
+ private createCrossOriginSession;
2088
+ /**
2089
+ * Last activity of the local session records BEFORE this load rewrites them (both paths, by id), so the
2090
+ * cross-origin boot can tell a session that was active here from one this load just created.
2091
+ */
2092
+ private readLocalSessionActivity;
2093
+ /**
2094
+ * Reconcile the session this load resolved locally with the cross-origin cookie before the first event:
2095
+ * adopt the cookie's session (and persist it locally, so reloads and same-origin tabs follow) or keep
2096
+ * the local one, and continue the seq at or above the cookie's mark. Never throws.
2097
+ */
2098
+ private bootCrossOriginSession;
2099
+ /**
2100
+ * Resolve the session of this load: locally ({@link resolveSessionId}), then reconciled with the
2101
+ * cross-origin cookie when that option is on. Used at boot and by the recovery in `getSessionId`.
2102
+ */
2103
+ private resolveSession;
2104
+ /** `meta.crossOriginSession` of a batch of `sessionId`; undefined while the option is off on this page. */
2105
+ private crossOriginSessionMeta;
2023
2106
  private resolveSessionId;
2024
2107
  /**
2025
2108
  * Resolve the session id from localStorage so it survives reloads and is shared across tabs of the
@@ -2715,6 +2798,36 @@ declare class CorbadoTracker {
2715
2798
  * ```
2716
2799
  */
2717
2800
  getSessionId(): string | undefined;
2801
+ /**
2802
+ * Store an opaque context string with the cross-origin session, for the integration's own use on the
2803
+ * next origin (e.g. a journey id and stage). Requires `fixedDataConfig.crossOriginSession`.
2804
+ *
2805
+ * @remarks
2806
+ * The value travels in the shared cookie only (see {@link CrossOriginSessionConfig}): it is never sent
2807
+ * to Corbado, but the browser sends the cookie with every request to every subdomain of the configured
2808
+ * domain. It belongs to the current session: a tracker that adopts the session reads it with
2809
+ * {@link CorbadoTracker.getCrossOriginContext}, and a new session (inactivity, `resetSession`) starts
2810
+ * without it. At most 128 characters of `A-Z a-z 0-9 . _ ~ -`; never put personal data in it.
2811
+ * `null`, `undefined` or `""` clears it.
2812
+ *
2813
+ * Never throws.
2814
+ *
2815
+ * @param context - The value to store; `null`, `undefined` or `""` clears it.
2816
+ * @returns `true` when the value was accepted and written; `false` when it is invalid or the feature
2817
+ * is off on this page (not configured, cookie blocked, domain mismatch, not HTTPS).
2818
+ *
2819
+ * @example
2820
+ * ```typescript
2821
+ * tracker.setCrossOriginContext(`v1.${journeyId}.passkey.b`);
2822
+ * ```
2823
+ */
2824
+ setCrossOriginContext(context: string | null | undefined): boolean;
2825
+ /**
2826
+ * The context string stored with the current cross-origin session (see
2827
+ * {@link CorbadoTracker.setCrossOriginContext}), or `undefined` when none is set, the session has no
2828
+ * context, or the feature is off on this page. Never throws.
2829
+ */
2830
+ getCrossOriginContext(): string | undefined;
2718
2831
  /** @internal */
2719
2832
  resetSession(): string;
2720
2833
  }
@@ -2791,6 +2904,11 @@ interface QueueOptions {
2791
2904
  * integration or the build, so the server's data flags are ignored. Omitted (no meta field) when false.
2792
2905
  */
2793
2906
  fixedData?: boolean;
2907
+ /**
2908
+ * Returns `meta.crossOriginSession` for a batch of the given session (`"adopted"` / `"own"`), or
2909
+ * undefined (no meta field) while the cross-origin session option is off. Read at send time.
2910
+ */
2911
+ getCrossOriginSession?: (sessionId: string) => "adopted" | "own" | undefined;
2794
2912
  /**
2795
2913
  * Called with the events of every event batch right before it is sent (async and unload flushes),
2796
2914
  * before the batch's telemetry is taken. The tracker uses it to attach a device info snapshot that
@@ -2876,6 +2994,7 @@ declare class RequestQueue {
2876
2994
  private readonly requestConfig;
2877
2995
  private readonly onConfigReceived?;
2878
2996
  private readonly getDataPolicy?;
2997
+ private readonly getCrossOriginSession?;
2879
2998
  private readonly fixedData;
2880
2999
  private readonly beforeEventBatchSend?;
2881
3000
  private readonly standaloneDeviceInfo?;
@@ -3141,7 +3260,9 @@ declare function parseReliabilityConfig(raw: unknown): SdkReliabilityConfig | nu
3141
3260
  /** Resolve init overrides over validated server policy, then defaults, including individual retry fields. */
3142
3261
  declare function resolveReliabilityConfig(serverConfig: SdkReliabilityConfig | undefined, overrides?: SdkReliabilityConfigOverrides): SdkReliabilityConfig;
3143
3262
  /** Effective fixed data switches; every field resolved. */
3144
- type ResolvedFixedDataConfig = Required<FixedDataConfig> & {
3263
+ type ResolvedFixedDataConfig = Required<Omit<FixedDataConfig, "crossOriginSession">> & {
3264
+ /** Cross-origin session option as given (domain not yet checked against the page); absent when not set. */
3265
+ crossOriginSession?: CrossOriginSessionConfig;
3145
3266
  /**
3146
3267
  * Whether `pmd` was set explicitly (a boolean). Only an explicit `pmd` gates the DOM password-manager
3147
3268
  * scan (`pa-1`..`pa-6`); an omitted `pmd` turns the extension probes off but leaves the scan on.
@@ -3152,7 +3273,8 @@ type ResolvedFixedDataConfig = Required<FixedDataConfig> & {
3152
3273
  * Resolve `init({ fixedDataConfig })`. Returns `undefined` (not fixed: server-driven, today's behaviour)
3153
3274
  * unless the option is an object. A missing or non-boolean `pmd` resolves to `false` (not the built-in
3154
3275
  * 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.
3276
+ * a missing or non-boolean `privateMode` resolves to on. `crossOriginSession` is kept only with a string
3277
+ * `cookieDomain` (checked against the page later). Never throws.
3156
3278
  *
3157
3279
  * @internal
3158
3280
  */
@@ -3339,4 +3461,4 @@ declare function logInfo(message: string): void;
3339
3461
  declare function logError(message: string): void;
3340
3462
  declare function destroy(): Promise<void>;
3341
3463
 
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 };
3464
+ 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;
@@ -725,6 +731,59 @@ interface FixedDataConfig {
725
731
  * without `fixedDataConfig`). When false, nothing is detected, read or written for it.
726
732
  */
727
733
  privateMode?: boolean;
734
+ /**
735
+ * Cross-origin session continuity under a shared parent domain. Off when omitted (no cookie is read or
736
+ * written). Setting it fixes `pmd` and `privateMode` like any `fixedDataConfig`; pass both explicitly.
737
+ * See {@link CrossOriginSessionConfig}.
738
+ */
739
+ crossOriginSession?: CrossOriginSessionConfig;
740
+ }
741
+ /**
742
+ * Opt-in cross-origin session continuity (`fixedDataConfig.crossOriginSession`).
743
+ *
744
+ * @remarks
745
+ * Origins under one parent domain (e.g. `login.example.com` and `app.example.com`) do not share
746
+ * localStorage, so each would report its own Observe session. With this option the tracker keeps a small
747
+ * first-party cookie `cbo_xs_<projectId>` on `cookieDomain`:
748
+ * `1.<sessionId>.<lastActiveAtMs>.<seqMark>[.<context>]` with `Path=/`, `SameSite=Lax`, `Secure` and a
749
+ * `Max-Age` of the session inactivity window. It holds the random session id, its last activity, a
750
+ * sequence reservation mark and the optional integration context (see
751
+ * {@link CorbadoTracker.setCrossOriginContext}); no personal data.
752
+ *
753
+ * The browser sends this cookie with every request to every subdomain of `cookieDomain` (it is a regular
754
+ * first-party cookie, readable by scripts); the session id in it is the one every batch already sends to
755
+ * Corbado. List it in your cookie notice like other analytics cookies. It is unrelated to
756
+ * `TrackerOptions.storage: "cookie"` / `TrackerOptions.cookieDomain`, which only move the SDK's own
757
+ * per-origin state into cookies and do not share a session across origins.
758
+ *
759
+ * At init, a tracker on another origin under the domain adopts the cookie's session when its own session
760
+ * was just created or was last active before the cookie's, and continues its sequence numbers at or above
761
+ * the mark, so the journey stays one session with unique sequence numbers. Its own session wins when it
762
+ * was active more recently. Only init, {@link CorbadoTracker.resetSession} and
763
+ * {@link CorbadoTracker.setCrossOriginContext} take the cookie over from another session; tracking never
764
+ * does, so a page still open on an older session cannot undo a newer one. Batches report the outcome in
765
+ * `meta.crossOriginSession` (`"adopted"` / `"own"`).
766
+ *
767
+ * Sessions merge across tabs: without the server's `sessionContinuity` switch each tab normally has its
768
+ * own session, but with this option every new tab (on any participating origin, including the same one)
769
+ * adopts the session of the cookie while it is active, so tabs opened within the inactivity window report
770
+ * into one session, as with `sessionContinuity`.
771
+ *
772
+ * The feature turns itself off for the page (tracking continues as without it) when the domain is not
773
+ * the page's host or a parent of it, the page is not served over HTTPS, or the cookie cannot be stored
774
+ * (blocked cookies, sandboxed or cross-site frames). It is fixed by the integration only and never taken
775
+ * from the server config.
776
+ *
777
+ * Like every `fixedDataConfig`, enabling it fixes BOTH data switches: `pmd` resolves to `false` and
778
+ * `privateMode` to `true` unless given, and the server's values are ignored (`meta.fixedData: true`). Set
779
+ * both explicitly next to it, e.g. `fixedDataConfig: { pmd: true, privateMode: true, crossOriginSession }`.
780
+ */
781
+ interface CrossOriginSessionConfig {
782
+ /**
783
+ * The parent domain every participating origin shares, e.g. `".example.com"` (a leading dot is
784
+ * optional). Must be the page's host name or a parent of it.
785
+ */
786
+ cookieDomain: string;
728
787
  }
729
788
  /** Query handling for `meta.trackingSourcePath`; see {@link SdkReliabilityConfig.sourcePathQuery}. */
730
789
  type SourcePathQueryMode = "all" | "allowlist";
@@ -1949,6 +2008,10 @@ declare class CorbadoTracker {
1949
2008
  private readonly probeSeqs;
1950
2009
  private windowObserver?;
1951
2010
  private passwordManagerSampler?;
2011
+ /** Cross-origin session cookie (`fixedDataConfig.crossOriginSession`); undefined when off. */
2012
+ private crossOrigin?;
2013
+ /** The session this load took from the cross-origin cookie, if any (`meta.crossOriginSession`). */
2014
+ private crossOriginAdoptedId?;
1952
2015
  /** @internal Shared passive page observation and per-operation context registration. */
1953
2016
  getWindowObserver(): SharedWindowObserver;
1954
2017
  constructor(options: TrackerOptions);
@@ -2020,6 +2083,26 @@ declare class CorbadoTracker {
2020
2083
  */
2021
2084
  private resolveExperiments;
2022
2085
  private isTrackingBlocked;
2086
+ /** The cross-origin session cookie when `fixedDataConfig.crossOriginSession` is set and usable here. */
2087
+ private createCrossOriginSession;
2088
+ /**
2089
+ * Last activity of the local session records BEFORE this load rewrites them (both paths, by id), so the
2090
+ * cross-origin boot can tell a session that was active here from one this load just created.
2091
+ */
2092
+ private readLocalSessionActivity;
2093
+ /**
2094
+ * Reconcile the session this load resolved locally with the cross-origin cookie before the first event:
2095
+ * adopt the cookie's session (and persist it locally, so reloads and same-origin tabs follow) or keep
2096
+ * the local one, and continue the seq at or above the cookie's mark. Never throws.
2097
+ */
2098
+ private bootCrossOriginSession;
2099
+ /**
2100
+ * Resolve the session of this load: locally ({@link resolveSessionId}), then reconciled with the
2101
+ * cross-origin cookie when that option is on. Used at boot and by the recovery in `getSessionId`.
2102
+ */
2103
+ private resolveSession;
2104
+ /** `meta.crossOriginSession` of a batch of `sessionId`; undefined while the option is off on this page. */
2105
+ private crossOriginSessionMeta;
2023
2106
  private resolveSessionId;
2024
2107
  /**
2025
2108
  * Resolve the session id from localStorage so it survives reloads and is shared across tabs of the
@@ -2715,6 +2798,36 @@ declare class CorbadoTracker {
2715
2798
  * ```
2716
2799
  */
2717
2800
  getSessionId(): string | undefined;
2801
+ /**
2802
+ * Store an opaque context string with the cross-origin session, for the integration's own use on the
2803
+ * next origin (e.g. a journey id and stage). Requires `fixedDataConfig.crossOriginSession`.
2804
+ *
2805
+ * @remarks
2806
+ * The value travels in the shared cookie only (see {@link CrossOriginSessionConfig}): it is never sent
2807
+ * to Corbado, but the browser sends the cookie with every request to every subdomain of the configured
2808
+ * domain. It belongs to the current session: a tracker that adopts the session reads it with
2809
+ * {@link CorbadoTracker.getCrossOriginContext}, and a new session (inactivity, `resetSession`) starts
2810
+ * without it. At most 128 characters of `A-Z a-z 0-9 . _ ~ -`; never put personal data in it.
2811
+ * `null`, `undefined` or `""` clears it.
2812
+ *
2813
+ * Never throws.
2814
+ *
2815
+ * @param context - The value to store; `null`, `undefined` or `""` clears it.
2816
+ * @returns `true` when the value was accepted and written; `false` when it is invalid or the feature
2817
+ * is off on this page (not configured, cookie blocked, domain mismatch, not HTTPS).
2818
+ *
2819
+ * @example
2820
+ * ```typescript
2821
+ * tracker.setCrossOriginContext(`v1.${journeyId}.passkey.b`);
2822
+ * ```
2823
+ */
2824
+ setCrossOriginContext(context: string | null | undefined): boolean;
2825
+ /**
2826
+ * The context string stored with the current cross-origin session (see
2827
+ * {@link CorbadoTracker.setCrossOriginContext}), or `undefined` when none is set, the session has no
2828
+ * context, or the feature is off on this page. Never throws.
2829
+ */
2830
+ getCrossOriginContext(): string | undefined;
2718
2831
  /** @internal */
2719
2832
  resetSession(): string;
2720
2833
  }
@@ -2791,6 +2904,11 @@ interface QueueOptions {
2791
2904
  * integration or the build, so the server's data flags are ignored. Omitted (no meta field) when false.
2792
2905
  */
2793
2906
  fixedData?: boolean;
2907
+ /**
2908
+ * Returns `meta.crossOriginSession` for a batch of the given session (`"adopted"` / `"own"`), or
2909
+ * undefined (no meta field) while the cross-origin session option is off. Read at send time.
2910
+ */
2911
+ getCrossOriginSession?: (sessionId: string) => "adopted" | "own" | undefined;
2794
2912
  /**
2795
2913
  * Called with the events of every event batch right before it is sent (async and unload flushes),
2796
2914
  * before the batch's telemetry is taken. The tracker uses it to attach a device info snapshot that
@@ -2876,6 +2994,7 @@ declare class RequestQueue {
2876
2994
  private readonly requestConfig;
2877
2995
  private readonly onConfigReceived?;
2878
2996
  private readonly getDataPolicy?;
2997
+ private readonly getCrossOriginSession?;
2879
2998
  private readonly fixedData;
2880
2999
  private readonly beforeEventBatchSend?;
2881
3000
  private readonly standaloneDeviceInfo?;
@@ -3141,7 +3260,9 @@ declare function parseReliabilityConfig(raw: unknown): SdkReliabilityConfig | nu
3141
3260
  /** Resolve init overrides over validated server policy, then defaults, including individual retry fields. */
3142
3261
  declare function resolveReliabilityConfig(serverConfig: SdkReliabilityConfig | undefined, overrides?: SdkReliabilityConfigOverrides): SdkReliabilityConfig;
3143
3262
  /** Effective fixed data switches; every field resolved. */
3144
- type ResolvedFixedDataConfig = Required<FixedDataConfig> & {
3263
+ type ResolvedFixedDataConfig = Required<Omit<FixedDataConfig, "crossOriginSession">> & {
3264
+ /** Cross-origin session option as given (domain not yet checked against the page); absent when not set. */
3265
+ crossOriginSession?: CrossOriginSessionConfig;
3145
3266
  /**
3146
3267
  * Whether `pmd` was set explicitly (a boolean). Only an explicit `pmd` gates the DOM password-manager
3147
3268
  * scan (`pa-1`..`pa-6`); an omitted `pmd` turns the extension probes off but leaves the scan on.
@@ -3152,7 +3273,8 @@ type ResolvedFixedDataConfig = Required<FixedDataConfig> & {
3152
3273
  * Resolve `init({ fixedDataConfig })`. Returns `undefined` (not fixed: server-driven, today's behaviour)
3153
3274
  * unless the option is an object. A missing or non-boolean `pmd` resolves to `false` (not the built-in
3154
3275
  * 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.
3276
+ * a missing or non-boolean `privateMode` resolves to on. `crossOriginSession` is kept only with a string
3277
+ * `cookieDomain` (checked against the page later). Never throws.
3156
3278
  *
3157
3279
  * @internal
3158
3280
  */
@@ -3339,4 +3461,4 @@ declare function logInfo(message: string): void;
3339
3461
  declare function logError(message: string): void;
3340
3462
  declare function destroy(): Promise<void>;
3341
3463
 
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 };
3464
+ 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 };