@corbado/observe 0.15.0 → 0.15.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
@@ -148,7 +148,7 @@ type AuthDecisionFinished = {
148
148
  explicitDecisionValue?: string;
149
149
  };
150
150
  type StepOptions = {
151
- /** Semantic control that explicitly initiated this step; omitted when unknown. */
151
+ /** Optional initiator override. Passkey ceremonies infer it from the operation/step spec when omitted. */
152
152
  initiator?: LowEventInitiator;
153
153
  /** @internal Session captured with the operation start; never sent as event metadata. */
154
154
  captureSessionId?: string;
@@ -343,32 +343,24 @@ type ObserveSdkConfigSnapshot = {
343
343
  readonly aap: string;
344
344
  };
345
345
  /**
346
- * SDK reliability configuration returned by the events endpoint (opt-in via the
347
- * `X-Corbado-Observe-Config` header). Mirrors the server `observeEventCreateRes` schema.
348
- * All delivery-reliability features default OFF until the server returns config.
349
- *
350
- * @remarks
351
- * Boot-snapshot model: the config resolved at construction (from the localStorage cache) is the
352
- * config for the entire page load. A config received from the server during the load is only
353
- * cached for the NEXT load, never applied live — this keeps session identity, seq source and
354
- * outbox mode coherent within one load.
346
+ * Resolved browser SDK reliability policy. Init overrides take precedence over server policy and defaults.
347
+ * Session continuity and durable outbox can activate on any refresh and stay enabled for the rest of the document.
355
348
  */
356
349
  interface SdkReliabilityConfig {
357
350
  /**
358
- * Content-derived version (hash) assigned by the server. Echoed in the config request header so
359
- * the server can answer 204 when nothing changed, and stamped into every batch's
360
- * `meta.configVersion`. Empty string for the built-in defaults (nothing cached yet).
351
+ * Content-derived version assigned by the server, or a non-empty identifier for injected config.
352
+ * Stamped into every batch's meta.configVersion. Empty when neither the server nor init overrides supply a version.
361
353
  */
362
354
  version: string;
363
355
  /** How often the SDK flushes its event queue, in milliseconds. */
364
356
  flushIntervalMs: number;
365
- /** Persist queued events to a durable outbox so they survive reloads, redirects and context switches. */
357
+ /** Persist queued events across reloads, redirects and context switches. Can activate on any refresh; deactivation takes effect on the next initialization. */
366
358
  durableOutbox: boolean;
367
359
  /** Persist lows in a separate bounded outbox; defaults to disabled for older configs. */
368
360
  durableLowOutbox?: boolean;
369
361
  /** Use keepalive/sendBeacon transport for flushes triggered during page unload. */
370
362
  beaconKeepalive: boolean;
371
- /** Maintain session continuity across reloads/tabs by persisting the session id in localStorage. */
363
+ /** Maintain session continuity across reloads/tabs. Can activate on any refresh; deactivation takes effect on the next initialization. */
372
364
  sessionContinuity: boolean;
373
365
  /**
374
366
  * Inactivity threshold for continuity sessions, in milliseconds. When more time than this has
@@ -402,8 +394,8 @@ interface SdkReliabilityConfig {
402
394
  tlf: boolean;
403
395
  /**
404
396
  * Master switch for the diagnostic telemetry stream. When true the SDK sends buffered telemetry
405
- * entries piggybacked on normal event requests; when false it collects and sends nothing. Defaults
406
- * to true (telemetry is on out of the box) and can be turned off server-side without a redeploy.
397
+ * entries piggybacked on normal event requests. When false it stops collection, but already buffered
398
+ * entries can still be sent. Defaults to true and can be turned off server-side without a redeploy.
407
399
  */
408
400
  telemetry: boolean;
409
401
  /**
@@ -446,6 +438,10 @@ interface SdkReliabilityConfig {
446
438
  /** Retry configuration for failed event flushes. */
447
439
  retry: SdkRetryConfig;
448
440
  }
441
+ /** Optional init overrides; omitted fields (including nested retry fields) inherit server policy or defaults. */
442
+ type SdkReliabilityConfigOverrides = Partial<Omit<SdkReliabilityConfig, "retry">> & {
443
+ retry?: Partial<SdkRetryConfig>;
444
+ };
449
445
 
450
446
  /** Sink that escalates a diagnostic message to the telemetry stream. */
451
447
  type TelemetrySink = (level: TelemetryLevel, message: string) => void;
@@ -979,6 +975,10 @@ interface TrackerOptions {
979
975
  projectId: string;
980
976
  apiBaseUrl: string;
981
977
  apiEventPath?: string;
978
+ /** Per-field overrides over server config and defaults. A complete policy disables remote fetching. */
979
+ sdkConfig?: SdkReliabilityConfigOverrides;
980
+ /** Config endpoint override for integrations that proxy Observe under a different path. */
981
+ apiConfigPath?: string;
982
982
  storage?: "cookie" | "local";
983
983
  cookieDomain?: string;
984
984
  debug?: boolean;
@@ -1018,12 +1018,10 @@ declare class CorbadoTracker {
1018
1018
  private persistentStorage;
1019
1019
  /** Seq/continuity Web Lock name; project-scoped together with the storage keys it guards. */
1020
1020
  private readonly seqLockName;
1021
- /**
1022
- * Reliability config for this load. A boot with a cached server config is a snapshot (immutable
1023
- * mid-load); a boot on the built-in defaults upgrades once to the first server-returned config
1024
- * (see {@link handleConfig}).
1025
- */
1021
+ /** Current resolved policy. Continuity and persistence stay enabled once activated within a document. */
1026
1022
  private config;
1023
+ private readonly configManager?;
1024
+ private readonly configOverrides;
1027
1025
  private deviceInfoManager;
1028
1026
  private deviceCollector;
1029
1027
  /**
@@ -1049,13 +1047,7 @@ declare class CorbadoTracker {
1049
1047
  /** @internal Shared passive page observation and per-operation context registration. */
1050
1048
  getWindowObserver(): SharedWindowObserver;
1051
1049
  constructor(options: TrackerOptions);
1052
- /**
1053
- * Cache fresh server config as last-known so the next page load boots with it. When this load
1054
- * booted on the built-in defaults (no cached config), the config is additionally applied live:
1055
- * every field is read at use time, and a mid-load `sessionContinuity` flip is safe because
1056
- * `nextSeq` adopts the in-memory session id into the empty continuity store instead of minting
1057
- * (no session split). A load that booted on a cached config keeps its snapshot untouched.
1058
- */
1050
+ /** Apply init overrides on every refresh; continuity and persistence only activate within a document. */
1059
1051
  private handleConfig;
1060
1052
  /**
1061
1053
  * Returns the logger used by this tracker.
@@ -1088,7 +1080,7 @@ declare class CorbadoTracker {
1088
1080
  /** Returns a copy of the currently active experiment assignments. */
1089
1081
  getExperiments(): Record<string, string>;
1090
1082
  /**
1091
- * Returns the public SDK configuration for this page load.
1083
+ * Returns the currently active public SDK configuration, including live updates.
1092
1084
  *
1093
1085
  * @returns A frozen snapshot, created fresh on every call.
1094
1086
  */
@@ -1107,7 +1099,7 @@ declare class CorbadoTracker {
1107
1099
  /**
1108
1100
  * Resolve the session id from localStorage so it survives reloads and is shared across tabs of the
1109
1101
  * same browser. Rotates after `config.sessionInactivityMs` of inactivity (server-controlled,
1110
- * boot-snapshot like the rest of the config), resetting the seq counter.
1102
+ * evaluated at boot), resetting the seq counter.
1111
1103
  *
1112
1104
  * Inactivity rotation happens at boot only, here and on the per-tab path {@link resolveSessionId}
1113
1105
  * takes without continuity. Boot is chosen on an assumption, not a guarantee: that a load
@@ -1136,12 +1128,11 @@ declare class CorbadoTracker {
1136
1128
  * Persist the per-tab record and remember when, sharing the throttle bookkeeping with the
1137
1129
  * continuity record — a load resolves its session on one path or the other, never both.
1138
1130
  *
1139
- * Only a load that received a server config stamps the window; any other carries forward what the
1140
- * tab already knows. So a defaults boot never downgrades a tab that has already learned the
1141
- * project's threshold to the built-in one, and the window survives a rotation within the tab.
1131
+ * An explicit timeout override or server config stamps the window. Otherwise carry forward what
1132
+ * the tab already knows, so a defaults boot does not replace a previously configured threshold.
1142
1133
  */
1143
1134
  private persistPerTabSession;
1144
- /** The window this tab measures against: what a configured load recorded, else this load's own. */
1135
+ /** Explicit init timeout wins; otherwise retain the window a prior configured load recorded. */
1145
1136
  private perTabInactivityMs;
1146
1137
  /**
1147
1138
  * Return the next sequence number. With session continuity the counter is persisted so ordering
@@ -1623,16 +1614,11 @@ interface QueueOptions {
1623
1614
  */
1624
1615
  flushInterval?: number;
1625
1616
  debug?: boolean;
1626
- /**
1627
- * Reliability config for this page load; defaults to all-features-OFF. Boot-snapshot model: with
1628
- * a cached config the queue never changes its behavior mid-load — a fresh config returned by the
1629
- * server is only handed to {@link QueueOptions.onConfigReceived} for caching and applies on the
1630
- * next load. Only a defaults boot (no cached config) applies the first server config live.
1631
- */
1617
+ /** Initial delivery policy. The tracker applies later updates with updateConfig(). */
1632
1618
  config?: SdkReliabilityConfig;
1633
1619
  /** Called when the server returns a fresh config, so the client can cache it for the next load. */
1634
1620
  onConfigReceived?: (config: SdkReliabilityConfig) => void;
1635
- /** Whether to send the opt-in config header on the first flush of this load. Defaults to true. */
1621
+ /** Legacy standalone queue handshake. Trackers set false and use the independent config manager. */
1636
1622
  requestConfig?: boolean;
1637
1623
  /**
1638
1624
  * Web Lock name for the durable outbox, scoped alongside the storage engine's keys (see
@@ -1692,11 +1678,7 @@ declare class RequestQueue {
1692
1678
  private readonly debug;
1693
1679
  private readonly requestConfig;
1694
1680
  private readonly onConfigReceived?;
1695
- /**
1696
- * Reliability config for this load. A boot with a cached server config is a snapshot that never
1697
- * changes mid-load; a boot on the built-in defaults upgrades once to the first server-returned
1698
- * config (see {@link handleConfigResponse}).
1699
- */
1681
+ /** Current delivery policy, including live updates. */
1700
1682
  private config;
1701
1683
  /**
1702
1684
  * Flow types whose completion triggers an immediate flush at enqueue time
@@ -1729,7 +1711,7 @@ declare class RequestQueue {
1729
1711
  * Buffer a diagnostic telemetry entry for delivery with the next event batch.
1730
1712
  *
1731
1713
  * @remarks
1732
- * The master switch `config.telemetry` gates collection: when off, nothing is buffered or sent.
1714
+ * The switch `config.telemetry` gates collection. Entries buffered while on remain eligible for delivery.
1733
1715
  * By default a telemetry entry does NOT arm the flush timer — it piggybacks the next flush caused
1734
1716
  * by events or a lifecycle signal (it is marked dirty so the unload flush picks it up). When
1735
1717
  * `config.flushOnTelemetry` is on it escalates to an immediate flush.
@@ -1787,13 +1769,8 @@ declare class RequestQueue {
1787
1769
  * reliability features.
1788
1770
  */
1789
1771
  private handleConfigResponse;
1790
- /**
1791
- * Switch this load from the built-in defaults to the first server config (defaults boot only).
1792
- * Most fields are read at use time, so replacing the reference is enough; only the derived state
1793
- * (priority flow type set, durable outbox store) needs rebuilding.
1794
- */
1795
- private applyConfigLive;
1796
- /** Returns true when the batch was acknowledged with a 2xx (safe to keep draining). */
1772
+ /** Applies live delivery policy, retaining pending events, retry deadlines, and activated persistence. */
1773
+ updateConfig(config: SdkReliabilityConfig): void;
1797
1774
  private handleSendResult;
1798
1775
  private isRetryable;
1799
1776
  /**
@@ -1833,7 +1810,7 @@ declare class RequestQueue {
1833
1810
  destroy(): void;
1834
1811
  }
1835
1812
 
1836
- /** localStorage key under which the last-known server config is cached. */
1813
+ /** Last-known server config shared by batch-based and independently fetching SDK versions. */
1837
1814
  declare const CONFIG_STORAGE_KEY = "cbo_sdk_config";
1838
1815
  /**
1839
1816
  * Opt-in request header that asks the events endpoint to return the SDK reliability config. Its value
@@ -1888,11 +1865,9 @@ declare const CONFIG_BOUNDS: {
1888
1865
  /** Built-in continuity-session inactivity threshold (30 minutes); matches the historical default. */
1889
1866
  declare const DEFAULT_SESSION_INACTIVITY_MS: number;
1890
1867
  /**
1891
- * Default config: every delivery-reliability feature is OFF. The SDK behaves like a plain async
1892
- * fetch-keepalive flusher until the server returns config, which is cached as last-known for the
1893
- * next load AND applied live to the current load (a defaults boot has no prior config to stay
1894
- * coherent with; loads booting on a cached config keep their snapshot — boot-snapshot model). The
1895
- * empty version means "nothing cached"; the config request header sends "1" in that case.
1868
+ * Defaults used until a valid injected, cached, or fetched config is available.
1869
+ * Delivery-reliability features start OFF. Last-known remote config never expires.
1870
+ * Init overrides win per field; a complete override bypasses remote fetching and caching.
1896
1871
  */
1897
1872
  declare const DEFAULT_RELIABILITY_CONFIG: SdkReliabilityConfig;
1898
1873
  /**
@@ -1905,6 +1880,8 @@ declare const DEFAULT_RELIABILITY_CONFIG: SdkReliabilityConfig;
1905
1880
  * server value cannot harm the client.
1906
1881
  */
1907
1882
  declare function parseReliabilityConfig(raw: unknown): SdkReliabilityConfig | null;
1883
+ /** Resolve init overrides over validated server policy, then defaults, including individual retry fields. */
1884
+ declare function resolveReliabilityConfig(serverConfig: SdkReliabilityConfig | undefined, overrides?: SdkReliabilityConfigOverrides): SdkReliabilityConfig;
1908
1885
  /** Read the cached config from storage, or `null` if absent/invalid. */
1909
1886
  declare function loadCachedConfig(storage: StorageEngine): SdkReliabilityConfig | null;
1910
1887
  /** Persist the config as last-known so the next page load starts with these features enabled. */
@@ -2016,4 +1993,4 @@ declare function logInfo(message: string): void;
2016
1993
  declare function logError(message: string): void;
2017
1994
  declare function destroy(): Promise<void>;
2018
1995
 
2019
- 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_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, 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 EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type JavaScriptHighEntropy, 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, 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 PredefinedEvent, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RequestQueue, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkReliabilityConfig, type SdkRetryConfig, SessionStorage, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type StepHelper, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type UserReference, cacheConfig, clearExperiment, clearExperiments, createLogger, destroy, getExperiments, getSessionId, getTracker, init, loadCachedConfig, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, setExperiment, setExperiments, setUser, telemetry };
1996
+ 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_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, 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 EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type JavaScriptHighEntropy, 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, 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 PredefinedEvent, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RequestQueue, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkReliabilityConfig, type SdkReliabilityConfigOverrides, type SdkRetryConfig, SessionStorage, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type StepHelper, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type UserReference, cacheConfig, clearExperiment, clearExperiments, createLogger, destroy, getExperiments, getSessionId, getTracker, init, loadCachedConfig, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, resolveReliabilityConfig, setExperiment, setExperiments, setUser, telemetry };
package/dist/index.d.ts CHANGED
@@ -148,7 +148,7 @@ type AuthDecisionFinished = {
148
148
  explicitDecisionValue?: string;
149
149
  };
150
150
  type StepOptions = {
151
- /** Semantic control that explicitly initiated this step; omitted when unknown. */
151
+ /** Optional initiator override. Passkey ceremonies infer it from the operation/step spec when omitted. */
152
152
  initiator?: LowEventInitiator;
153
153
  /** @internal Session captured with the operation start; never sent as event metadata. */
154
154
  captureSessionId?: string;
@@ -343,32 +343,24 @@ type ObserveSdkConfigSnapshot = {
343
343
  readonly aap: string;
344
344
  };
345
345
  /**
346
- * SDK reliability configuration returned by the events endpoint (opt-in via the
347
- * `X-Corbado-Observe-Config` header). Mirrors the server `observeEventCreateRes` schema.
348
- * All delivery-reliability features default OFF until the server returns config.
349
- *
350
- * @remarks
351
- * Boot-snapshot model: the config resolved at construction (from the localStorage cache) is the
352
- * config for the entire page load. A config received from the server during the load is only
353
- * cached for the NEXT load, never applied live — this keeps session identity, seq source and
354
- * outbox mode coherent within one load.
346
+ * Resolved browser SDK reliability policy. Init overrides take precedence over server policy and defaults.
347
+ * Session continuity and durable outbox can activate on any refresh and stay enabled for the rest of the document.
355
348
  */
356
349
  interface SdkReliabilityConfig {
357
350
  /**
358
- * Content-derived version (hash) assigned by the server. Echoed in the config request header so
359
- * the server can answer 204 when nothing changed, and stamped into every batch's
360
- * `meta.configVersion`. Empty string for the built-in defaults (nothing cached yet).
351
+ * Content-derived version assigned by the server, or a non-empty identifier for injected config.
352
+ * Stamped into every batch's meta.configVersion. Empty when neither the server nor init overrides supply a version.
361
353
  */
362
354
  version: string;
363
355
  /** How often the SDK flushes its event queue, in milliseconds. */
364
356
  flushIntervalMs: number;
365
- /** Persist queued events to a durable outbox so they survive reloads, redirects and context switches. */
357
+ /** Persist queued events across reloads, redirects and context switches. Can activate on any refresh; deactivation takes effect on the next initialization. */
366
358
  durableOutbox: boolean;
367
359
  /** Persist lows in a separate bounded outbox; defaults to disabled for older configs. */
368
360
  durableLowOutbox?: boolean;
369
361
  /** Use keepalive/sendBeacon transport for flushes triggered during page unload. */
370
362
  beaconKeepalive: boolean;
371
- /** Maintain session continuity across reloads/tabs by persisting the session id in localStorage. */
363
+ /** Maintain session continuity across reloads/tabs. Can activate on any refresh; deactivation takes effect on the next initialization. */
372
364
  sessionContinuity: boolean;
373
365
  /**
374
366
  * Inactivity threshold for continuity sessions, in milliseconds. When more time than this has
@@ -402,8 +394,8 @@ interface SdkReliabilityConfig {
402
394
  tlf: boolean;
403
395
  /**
404
396
  * Master switch for the diagnostic telemetry stream. When true the SDK sends buffered telemetry
405
- * entries piggybacked on normal event requests; when false it collects and sends nothing. Defaults
406
- * to true (telemetry is on out of the box) and can be turned off server-side without a redeploy.
397
+ * entries piggybacked on normal event requests. When false it stops collection, but already buffered
398
+ * entries can still be sent. Defaults to true and can be turned off server-side without a redeploy.
407
399
  */
408
400
  telemetry: boolean;
409
401
  /**
@@ -446,6 +438,10 @@ interface SdkReliabilityConfig {
446
438
  /** Retry configuration for failed event flushes. */
447
439
  retry: SdkRetryConfig;
448
440
  }
441
+ /** Optional init overrides; omitted fields (including nested retry fields) inherit server policy or defaults. */
442
+ type SdkReliabilityConfigOverrides = Partial<Omit<SdkReliabilityConfig, "retry">> & {
443
+ retry?: Partial<SdkRetryConfig>;
444
+ };
449
445
 
450
446
  /** Sink that escalates a diagnostic message to the telemetry stream. */
451
447
  type TelemetrySink = (level: TelemetryLevel, message: string) => void;
@@ -979,6 +975,10 @@ interface TrackerOptions {
979
975
  projectId: string;
980
976
  apiBaseUrl: string;
981
977
  apiEventPath?: string;
978
+ /** Per-field overrides over server config and defaults. A complete policy disables remote fetching. */
979
+ sdkConfig?: SdkReliabilityConfigOverrides;
980
+ /** Config endpoint override for integrations that proxy Observe under a different path. */
981
+ apiConfigPath?: string;
982
982
  storage?: "cookie" | "local";
983
983
  cookieDomain?: string;
984
984
  debug?: boolean;
@@ -1018,12 +1018,10 @@ declare class CorbadoTracker {
1018
1018
  private persistentStorage;
1019
1019
  /** Seq/continuity Web Lock name; project-scoped together with the storage keys it guards. */
1020
1020
  private readonly seqLockName;
1021
- /**
1022
- * Reliability config for this load. A boot with a cached server config is a snapshot (immutable
1023
- * mid-load); a boot on the built-in defaults upgrades once to the first server-returned config
1024
- * (see {@link handleConfig}).
1025
- */
1021
+ /** Current resolved policy. Continuity and persistence stay enabled once activated within a document. */
1026
1022
  private config;
1023
+ private readonly configManager?;
1024
+ private readonly configOverrides;
1027
1025
  private deviceInfoManager;
1028
1026
  private deviceCollector;
1029
1027
  /**
@@ -1049,13 +1047,7 @@ declare class CorbadoTracker {
1049
1047
  /** @internal Shared passive page observation and per-operation context registration. */
1050
1048
  getWindowObserver(): SharedWindowObserver;
1051
1049
  constructor(options: TrackerOptions);
1052
- /**
1053
- * Cache fresh server config as last-known so the next page load boots with it. When this load
1054
- * booted on the built-in defaults (no cached config), the config is additionally applied live:
1055
- * every field is read at use time, and a mid-load `sessionContinuity` flip is safe because
1056
- * `nextSeq` adopts the in-memory session id into the empty continuity store instead of minting
1057
- * (no session split). A load that booted on a cached config keeps its snapshot untouched.
1058
- */
1050
+ /** Apply init overrides on every refresh; continuity and persistence only activate within a document. */
1059
1051
  private handleConfig;
1060
1052
  /**
1061
1053
  * Returns the logger used by this tracker.
@@ -1088,7 +1080,7 @@ declare class CorbadoTracker {
1088
1080
  /** Returns a copy of the currently active experiment assignments. */
1089
1081
  getExperiments(): Record<string, string>;
1090
1082
  /**
1091
- * Returns the public SDK configuration for this page load.
1083
+ * Returns the currently active public SDK configuration, including live updates.
1092
1084
  *
1093
1085
  * @returns A frozen snapshot, created fresh on every call.
1094
1086
  */
@@ -1107,7 +1099,7 @@ declare class CorbadoTracker {
1107
1099
  /**
1108
1100
  * Resolve the session id from localStorage so it survives reloads and is shared across tabs of the
1109
1101
  * same browser. Rotates after `config.sessionInactivityMs` of inactivity (server-controlled,
1110
- * boot-snapshot like the rest of the config), resetting the seq counter.
1102
+ * evaluated at boot), resetting the seq counter.
1111
1103
  *
1112
1104
  * Inactivity rotation happens at boot only, here and on the per-tab path {@link resolveSessionId}
1113
1105
  * takes without continuity. Boot is chosen on an assumption, not a guarantee: that a load
@@ -1136,12 +1128,11 @@ declare class CorbadoTracker {
1136
1128
  * Persist the per-tab record and remember when, sharing the throttle bookkeeping with the
1137
1129
  * continuity record — a load resolves its session on one path or the other, never both.
1138
1130
  *
1139
- * Only a load that received a server config stamps the window; any other carries forward what the
1140
- * tab already knows. So a defaults boot never downgrades a tab that has already learned the
1141
- * project's threshold to the built-in one, and the window survives a rotation within the tab.
1131
+ * An explicit timeout override or server config stamps the window. Otherwise carry forward what
1132
+ * the tab already knows, so a defaults boot does not replace a previously configured threshold.
1142
1133
  */
1143
1134
  private persistPerTabSession;
1144
- /** The window this tab measures against: what a configured load recorded, else this load's own. */
1135
+ /** Explicit init timeout wins; otherwise retain the window a prior configured load recorded. */
1145
1136
  private perTabInactivityMs;
1146
1137
  /**
1147
1138
  * Return the next sequence number. With session continuity the counter is persisted so ordering
@@ -1623,16 +1614,11 @@ interface QueueOptions {
1623
1614
  */
1624
1615
  flushInterval?: number;
1625
1616
  debug?: boolean;
1626
- /**
1627
- * Reliability config for this page load; defaults to all-features-OFF. Boot-snapshot model: with
1628
- * a cached config the queue never changes its behavior mid-load — a fresh config returned by the
1629
- * server is only handed to {@link QueueOptions.onConfigReceived} for caching and applies on the
1630
- * next load. Only a defaults boot (no cached config) applies the first server config live.
1631
- */
1617
+ /** Initial delivery policy. The tracker applies later updates with updateConfig(). */
1632
1618
  config?: SdkReliabilityConfig;
1633
1619
  /** Called when the server returns a fresh config, so the client can cache it for the next load. */
1634
1620
  onConfigReceived?: (config: SdkReliabilityConfig) => void;
1635
- /** Whether to send the opt-in config header on the first flush of this load. Defaults to true. */
1621
+ /** Legacy standalone queue handshake. Trackers set false and use the independent config manager. */
1636
1622
  requestConfig?: boolean;
1637
1623
  /**
1638
1624
  * Web Lock name for the durable outbox, scoped alongside the storage engine's keys (see
@@ -1692,11 +1678,7 @@ declare class RequestQueue {
1692
1678
  private readonly debug;
1693
1679
  private readonly requestConfig;
1694
1680
  private readonly onConfigReceived?;
1695
- /**
1696
- * Reliability config for this load. A boot with a cached server config is a snapshot that never
1697
- * changes mid-load; a boot on the built-in defaults upgrades once to the first server-returned
1698
- * config (see {@link handleConfigResponse}).
1699
- */
1681
+ /** Current delivery policy, including live updates. */
1700
1682
  private config;
1701
1683
  /**
1702
1684
  * Flow types whose completion triggers an immediate flush at enqueue time
@@ -1729,7 +1711,7 @@ declare class RequestQueue {
1729
1711
  * Buffer a diagnostic telemetry entry for delivery with the next event batch.
1730
1712
  *
1731
1713
  * @remarks
1732
- * The master switch `config.telemetry` gates collection: when off, nothing is buffered or sent.
1714
+ * The switch `config.telemetry` gates collection. Entries buffered while on remain eligible for delivery.
1733
1715
  * By default a telemetry entry does NOT arm the flush timer — it piggybacks the next flush caused
1734
1716
  * by events or a lifecycle signal (it is marked dirty so the unload flush picks it up). When
1735
1717
  * `config.flushOnTelemetry` is on it escalates to an immediate flush.
@@ -1787,13 +1769,8 @@ declare class RequestQueue {
1787
1769
  * reliability features.
1788
1770
  */
1789
1771
  private handleConfigResponse;
1790
- /**
1791
- * Switch this load from the built-in defaults to the first server config (defaults boot only).
1792
- * Most fields are read at use time, so replacing the reference is enough; only the derived state
1793
- * (priority flow type set, durable outbox store) needs rebuilding.
1794
- */
1795
- private applyConfigLive;
1796
- /** Returns true when the batch was acknowledged with a 2xx (safe to keep draining). */
1772
+ /** Applies live delivery policy, retaining pending events, retry deadlines, and activated persistence. */
1773
+ updateConfig(config: SdkReliabilityConfig): void;
1797
1774
  private handleSendResult;
1798
1775
  private isRetryable;
1799
1776
  /**
@@ -1833,7 +1810,7 @@ declare class RequestQueue {
1833
1810
  destroy(): void;
1834
1811
  }
1835
1812
 
1836
- /** localStorage key under which the last-known server config is cached. */
1813
+ /** Last-known server config shared by batch-based and independently fetching SDK versions. */
1837
1814
  declare const CONFIG_STORAGE_KEY = "cbo_sdk_config";
1838
1815
  /**
1839
1816
  * Opt-in request header that asks the events endpoint to return the SDK reliability config. Its value
@@ -1888,11 +1865,9 @@ declare const CONFIG_BOUNDS: {
1888
1865
  /** Built-in continuity-session inactivity threshold (30 minutes); matches the historical default. */
1889
1866
  declare const DEFAULT_SESSION_INACTIVITY_MS: number;
1890
1867
  /**
1891
- * Default config: every delivery-reliability feature is OFF. The SDK behaves like a plain async
1892
- * fetch-keepalive flusher until the server returns config, which is cached as last-known for the
1893
- * next load AND applied live to the current load (a defaults boot has no prior config to stay
1894
- * coherent with; loads booting on a cached config keep their snapshot — boot-snapshot model). The
1895
- * empty version means "nothing cached"; the config request header sends "1" in that case.
1868
+ * Defaults used until a valid injected, cached, or fetched config is available.
1869
+ * Delivery-reliability features start OFF. Last-known remote config never expires.
1870
+ * Init overrides win per field; a complete override bypasses remote fetching and caching.
1896
1871
  */
1897
1872
  declare const DEFAULT_RELIABILITY_CONFIG: SdkReliabilityConfig;
1898
1873
  /**
@@ -1905,6 +1880,8 @@ declare const DEFAULT_RELIABILITY_CONFIG: SdkReliabilityConfig;
1905
1880
  * server value cannot harm the client.
1906
1881
  */
1907
1882
  declare function parseReliabilityConfig(raw: unknown): SdkReliabilityConfig | null;
1883
+ /** Resolve init overrides over validated server policy, then defaults, including individual retry fields. */
1884
+ declare function resolveReliabilityConfig(serverConfig: SdkReliabilityConfig | undefined, overrides?: SdkReliabilityConfigOverrides): SdkReliabilityConfig;
1908
1885
  /** Read the cached config from storage, or `null` if absent/invalid. */
1909
1886
  declare function loadCachedConfig(storage: StorageEngine): SdkReliabilityConfig | null;
1910
1887
  /** Persist the config as last-known so the next page load starts with these features enabled. */
@@ -2016,4 +1993,4 @@ declare function logInfo(message: string): void;
2016
1993
  declare function logError(message: string): void;
2017
1994
  declare function destroy(): Promise<void>;
2018
1995
 
2019
- 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_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, 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 EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type JavaScriptHighEntropy, 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, 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 PredefinedEvent, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RequestQueue, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkReliabilityConfig, type SdkRetryConfig, SessionStorage, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type StepHelper, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type UserReference, cacheConfig, clearExperiment, clearExperiments, createLogger, destroy, getExperiments, getSessionId, getTracker, init, loadCachedConfig, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, setExperiment, setExperiments, setUser, telemetry };
1996
+ 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_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, 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 EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type JavaScriptHighEntropy, 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, 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 PredefinedEvent, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RequestQueue, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkReliabilityConfig, type SdkReliabilityConfigOverrides, type SdkRetryConfig, SessionStorage, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type StepHelper, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type UserReference, cacheConfig, clearExperiment, clearExperiments, createLogger, destroy, getExperiments, getSessionId, getTracker, init, loadCachedConfig, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, resolveReliabilityConfig, setExperiment, setExperiments, setUser, telemetry };