@corbado/observe 0.12.0 → 0.13.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/cdn/script.global.js +1 -1
- package/dist/index.d.mts +117 -11
- package/dist/index.d.ts +117 -11
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +2 -1
package/dist/index.d.mts
CHANGED
|
@@ -144,6 +144,15 @@ type StepOptions = {
|
|
|
144
144
|
type SubflowTrigger = {
|
|
145
145
|
actor: "system" | "user";
|
|
146
146
|
explicitSpecType?: string;
|
|
147
|
+
/**
|
|
148
|
+
* Declares this subflow_started / subflow_trigger as not user-driven, excluding it from
|
|
149
|
+
* interaction-evidence calculations on the backend: a started subflow that produces no step
|
|
150
|
+
* afterwards is classified as a "no-followup" error unless this flag is set. Set it when the
|
|
151
|
+
* integration fires the start programmatically (e.g. an automatic passkey attempt after
|
|
152
|
+
* identifier lookup) and an abandoned attempt is expected rather than an error signal.
|
|
153
|
+
* Optional; absent/false means the event counts (legacy behavior).
|
|
154
|
+
*/
|
|
155
|
+
ignoreAsInteraction?: boolean;
|
|
147
156
|
};
|
|
148
157
|
interface PredefinedEvent extends BaseEvent {
|
|
149
158
|
type: "predefined";
|
|
@@ -486,6 +495,11 @@ declare abstract class OperationFull {
|
|
|
486
495
|
private tracker;
|
|
487
496
|
private operationName;
|
|
488
497
|
constructor(tracker: CorbadoTracker, operationName: SubflowType);
|
|
498
|
+
/**
|
|
499
|
+
* Emits subflow_started. `data` supports the SubflowTrigger fields (`actor`,
|
|
500
|
+
* `explicitSpecType`, `ignoreAsInteraction`) plus free-form extras; see SubflowTrigger for when
|
|
501
|
+
* to set `ignoreAsInteraction` on programmatic starts.
|
|
502
|
+
*/
|
|
489
503
|
subflowStart(data: any, options?: StepOptions): void;
|
|
490
504
|
trigger(data: SubflowTrigger, options?: StepOptions): void;
|
|
491
505
|
customStep<TStart = {}, TFinished = {}>(stepName: string): StepHelper<TStart, TFinished>;
|
|
@@ -598,7 +612,18 @@ declare class EmailLinkOperationFull extends OperationFull {
|
|
|
598
612
|
constructor(tracker: CorbadoTracker);
|
|
599
613
|
}
|
|
600
614
|
|
|
601
|
-
|
|
615
|
+
/**
|
|
616
|
+
* Passkey-enrollment spec types. Two vocabularies coexist:
|
|
617
|
+
*
|
|
618
|
+
* - ATTEMPT-scoped (preferred): one subflow per attempt KIND — `"conditional"` (silent conditional
|
|
619
|
+
* create), `"auto"` (automatic required-mediation prompt fired by the integration) or `"manual"`
|
|
620
|
+
* (fired by the user's button). Create a NEW operation for every attempt; the backend opens a new
|
|
621
|
+
* subflow whenever the spec changes, so "auto prompt dismissed, then completed via the button" is two
|
|
622
|
+
* subflows and stays distinguishable from "completed by the auto prompt".
|
|
623
|
+
* - OFFER-scoped (legacy): one subflow per offer — `"conditional-auto-manual"` / `"auto-manual"` name
|
|
624
|
+
* the offer mode, and the completing ceremony's `mediation` tells the completion variants apart.
|
|
625
|
+
*/
|
|
626
|
+
type PasskeyOperationEnrollmentExplicitSpecType = "conditional" | "auto" | "manual" | "conditional-auto-manual" | "auto-manual";
|
|
602
627
|
type PasskeyEnrollmentGetOptionsStart = {
|
|
603
628
|
explicitSpecType?: PasskeyOperationEnrollmentExplicitSpecType;
|
|
604
629
|
};
|
|
@@ -627,6 +652,13 @@ type PasskeyEnrollmentPostResponseStart = {
|
|
|
627
652
|
};
|
|
628
653
|
type PasskeyEnrollmentOperationConfig = {
|
|
629
654
|
explicitSpecType?: PasskeyOperationEnrollmentExplicitSpecType;
|
|
655
|
+
/**
|
|
656
|
+
* Marks the auto-emitted `subflow_started` as not user-driven (see SubflowTrigger.ignoreAsInteraction).
|
|
657
|
+
* Set it for attempts the integration fires without a user gesture and without a visible surface —
|
|
658
|
+
* e.g. a `"conditional"` attempt — so a start that never produced a step is not read as a user asking
|
|
659
|
+
* to enroll.
|
|
660
|
+
*/
|
|
661
|
+
ignoreAsInteraction?: boolean;
|
|
630
662
|
};
|
|
631
663
|
declare class PasskeyEnrollmentOperationFull extends OperationFull {
|
|
632
664
|
readonly getOptions: StepHelper<PasskeyEnrollmentGetOptionsStart, PasskeyEnrollmentGetOptionsFinished>;
|
|
@@ -838,6 +870,7 @@ declare class ProvideDataOperationFull extends OperationFull {
|
|
|
838
870
|
}
|
|
839
871
|
|
|
840
872
|
interface TrackerOptions {
|
|
873
|
+
/** All persisted SDK state and cross-tab locks are isolated by this project id. */
|
|
841
874
|
projectId: string;
|
|
842
875
|
apiBaseUrl: string;
|
|
843
876
|
apiEventPath?: string;
|
|
@@ -878,6 +911,8 @@ declare class CorbadoTracker {
|
|
|
878
911
|
private sessionStorage;
|
|
879
912
|
/** Dedicated localStorage engine for reliability state (config cache, outbox, continuity session, seq). */
|
|
880
913
|
private persistentStorage;
|
|
914
|
+
/** Seq/continuity Web Lock name; project-scoped together with the storage keys it guards. */
|
|
915
|
+
private readonly seqLockName;
|
|
881
916
|
/**
|
|
882
917
|
* Reliability config for this load. A boot with a cached server config is a snapshot (immutable
|
|
883
918
|
* mid-load); a boot on the built-in defaults upgrades once to the first server-returned config
|
|
@@ -966,12 +1001,15 @@ declare class CorbadoTracker {
|
|
|
966
1001
|
* same browser. Rotates after `config.sessionInactivityMs` of inactivity (server-controlled,
|
|
967
1002
|
* boot-snapshot like the rest of the config), resetting the seq counter.
|
|
968
1003
|
*
|
|
969
|
-
*
|
|
970
|
-
*
|
|
971
|
-
* so the fresh session id gets a classifiable flow.
|
|
972
|
-
*
|
|
973
|
-
*
|
|
974
|
-
*
|
|
1004
|
+
* Inactivity rotation happens at boot only, here and on the per-tab path {@link resolveSessionId}
|
|
1005
|
+
* takes without continuity. Boot is chosen on an assumption, not a guarantee: that a load
|
|
1006
|
+
* re-announces its flow, so the fresh session id gets a classifiable flow. That holds where a
|
|
1007
|
+
* flow is opened per load. Where one is opened once and carried across loads it does not, and a
|
|
1008
|
+
* boot rotation splits that flow — such a project needs a window long enough to span the journey.
|
|
1009
|
+
* Mid-page the assumption is not even available: nothing re-announces between two tracked events,
|
|
1010
|
+
* so rotating there would leave the started flow unfinished in the old session and the remaining
|
|
1011
|
+
* events without a flow start in the new one — one gap counted as a drop-off, one completion
|
|
1012
|
+
* counted as nothing. `nextSeq` therefore never rotates on inactivity, on either path.
|
|
975
1013
|
*/
|
|
976
1014
|
private getContinuitySessionId;
|
|
977
1015
|
/**
|
|
@@ -979,6 +1017,24 @@ declare class CorbadoTracker {
|
|
|
979
1017
|
* section measures from the last write that actually happened — whoever made it.
|
|
980
1018
|
*/
|
|
981
1019
|
private persistContinuitySession;
|
|
1020
|
+
/**
|
|
1021
|
+
* Read the per-tab session record. A bare string is the format that predates dating: it carries no
|
|
1022
|
+
* `lastActiveAt`, so its window can only start on the load that reads it. That load rewrites it in
|
|
1023
|
+
* the dated shape, so a tab converts once and ages normally from then on, and the case drains as
|
|
1024
|
+
* the rollout replaces the bundles that write it.
|
|
1025
|
+
*/
|
|
1026
|
+
private readPerTabSession;
|
|
1027
|
+
/**
|
|
1028
|
+
* Persist the per-tab record and remember when, sharing the throttle bookkeeping with the
|
|
1029
|
+
* continuity record — a load resolves its session on one path or the other, never both.
|
|
1030
|
+
*
|
|
1031
|
+
* Only a load that received a server config stamps the window; any other carries forward what the
|
|
1032
|
+
* tab already knows. So a defaults boot never downgrades a tab that has already learned the
|
|
1033
|
+
* project's threshold to the built-in one, and the window survives a rotation within the tab.
|
|
1034
|
+
*/
|
|
1035
|
+
private persistPerTabSession;
|
|
1036
|
+
/** The window this tab measures against: what a configured load recorded, else this load's own. */
|
|
1037
|
+
private perTabInactivityMs;
|
|
982
1038
|
/**
|
|
983
1039
|
* Return the next sequence number. With session continuity the counter is persisted so ordering
|
|
984
1040
|
* survives reloads/redirects; the read-increment-write runs under a cross-tab Web Lock
|
|
@@ -1028,6 +1084,9 @@ declare class CorbadoTracker {
|
|
|
1028
1084
|
*
|
|
1029
1085
|
* @param data - Flow metadata, including one flow (`flowName`) or multiple candidates (`flowNames`).
|
|
1030
1086
|
* @param tags - Optional key-value tags for filtering and segmentation.
|
|
1087
|
+
* @param experiments - Optional per-call experiment overrides.
|
|
1088
|
+
* @param contexts - Optional structured event context (e.g. technical metadata that is not an
|
|
1089
|
+
* analytical dimension). Written to the event's `contexts` field verbatim.
|
|
1031
1090
|
*
|
|
1032
1091
|
* @example
|
|
1033
1092
|
* ```typescript
|
|
@@ -1038,7 +1097,7 @@ declare class CorbadoTracker {
|
|
|
1038
1097
|
* });
|
|
1039
1098
|
* ```
|
|
1040
1099
|
*/
|
|
1041
|
-
flowStarted(data: FlowStarted | MultiFlowStarted, tags?: Record<string, string>, experiments?: Record<string, string>): void;
|
|
1100
|
+
flowStarted(data: FlowStarted | MultiFlowStarted, tags?: Record<string, string>, experiments?: Record<string, string>, contexts?: Record<string, unknown>): void;
|
|
1042
1101
|
/**
|
|
1043
1102
|
* Track when the user commits to a specific flow.
|
|
1044
1103
|
*
|
|
@@ -1303,6 +1362,28 @@ interface StorageEngine {
|
|
|
1303
1362
|
setItem<T>(key: string, value: T): void;
|
|
1304
1363
|
removeItem(key: string): void;
|
|
1305
1364
|
}
|
|
1365
|
+
/**
|
|
1366
|
+
* Suffix a storage key or cross-tab lock name with a namespace. One shared helper so keys and the
|
|
1367
|
+
* Web Lock names guarding them can never disagree on the derived name.
|
|
1368
|
+
*/
|
|
1369
|
+
declare function namespacedKey(key: string, namespace: string): string;
|
|
1370
|
+
/**
|
|
1371
|
+
* Wraps a storage engine so every key is suffixed with a fixed namespace (see {@link namespacedKey}).
|
|
1372
|
+
*
|
|
1373
|
+
* @remarks
|
|
1374
|
+
* All trackers use their project id as the namespace: all SDK state flows through the engines
|
|
1375
|
+
* created in the tracker constructor, so wrapping them scopes every persisted key (session, seq,
|
|
1376
|
+
* outbox, config cache, experiments, tab id, client-env handle, debug dumps) in one place. Lock
|
|
1377
|
+
* names are not storage keys and must be scoped separately by the call sites that own them.
|
|
1378
|
+
*/
|
|
1379
|
+
declare class NamespacedStorage implements StorageEngine {
|
|
1380
|
+
private readonly engine;
|
|
1381
|
+
private readonly namespace;
|
|
1382
|
+
constructor(engine: StorageEngine, namespace: string);
|
|
1383
|
+
getItem<T>(key: string): T | null;
|
|
1384
|
+
setItem<T>(key: string, value: T): void;
|
|
1385
|
+
removeItem(key: string): void;
|
|
1386
|
+
}
|
|
1306
1387
|
declare class LocalStorage implements StorageEngine {
|
|
1307
1388
|
private logger;
|
|
1308
1389
|
constructor(logger: Logger);
|
|
@@ -1402,6 +1483,11 @@ interface QueueOptions {
|
|
|
1402
1483
|
onConfigReceived?: (config: SdkReliabilityConfig) => void;
|
|
1403
1484
|
/** Whether to send the opt-in config header on the first flush of this load. Defaults to true. */
|
|
1404
1485
|
requestConfig?: boolean;
|
|
1486
|
+
/**
|
|
1487
|
+
* Web Lock name for the durable outbox, scoped alongside the storage engine's keys (see
|
|
1488
|
+
* {@link EventStore}). Defaults to the shared {@link OUTBOX_LOCK_NAME}.
|
|
1489
|
+
*/
|
|
1490
|
+
outboxLockName?: string;
|
|
1405
1491
|
}
|
|
1406
1492
|
/**
|
|
1407
1493
|
* @remarks When `window` is defined, `visibilitychange` (when the document becomes hidden) and `pagehide`
|
|
@@ -1464,6 +1550,8 @@ declare class RequestQueue {
|
|
|
1464
1550
|
* (config.flushOnFlowTypeFinished).
|
|
1465
1551
|
*/
|
|
1466
1552
|
private priorityFlowTypes;
|
|
1553
|
+
/** Scoped Web Lock name for the durable outbox; undefined = EventStore's shared default. */
|
|
1554
|
+
private outboxLockName?;
|
|
1467
1555
|
private store?;
|
|
1468
1556
|
/**
|
|
1469
1557
|
* Once the server has answered the config request with a 2xx (200 = fresh config cached for the
|
|
@@ -1696,7 +1784,7 @@ declare const DEFAULT_MAX_SERIALIZED_LENGTH: number;
|
|
|
1696
1784
|
*
|
|
1697
1785
|
* @remarks
|
|
1698
1786
|
* Every mutation is a read-merge-write against storage, executed under a cross-tab Web Lock
|
|
1699
|
-
* ({@link OUTBOX_LOCK_NAME}) so concurrent tabs sharing the same localStorage cannot interleave
|
|
1787
|
+
* (default {@link OUTBOX_LOCK_NAME}) so concurrent tabs sharing the same localStorage cannot interleave
|
|
1700
1788
|
* between the read and the write (which would silently drop the other tab's entries). Where the
|
|
1701
1789
|
* Web Locks API is unavailable the mutation runs unlocked, matching the historical best-effort
|
|
1702
1790
|
* behavior. Mutations never reject; failures are logged.
|
|
@@ -1707,10 +1795,22 @@ declare class EventStore {
|
|
|
1707
1795
|
private readonly logger;
|
|
1708
1796
|
private readonly maxEntries;
|
|
1709
1797
|
private readonly maxSerializedLength;
|
|
1798
|
+
/**
|
|
1799
|
+
* Web Lock name guarding mutations. Must be scoped together with the storage the engine writes
|
|
1800
|
+
* to: a project-scoped outbox key guarded by the shared lock would serialize unrelated trackers,
|
|
1801
|
+
* and a shared key guarded by scoped locks would lose the cross-tab atomicity guarantee.
|
|
1802
|
+
*/
|
|
1803
|
+
private readonly lockName;
|
|
1710
1804
|
private entries;
|
|
1711
1805
|
/** Malformed entries are dropped on every read; report only once per instance to avoid log spam. */
|
|
1712
1806
|
private reportedMalformed;
|
|
1713
|
-
constructor(storage: StorageEngine, logger: Logger, maxEntries?: number, maxSerializedLength?: number
|
|
1807
|
+
constructor(storage: StorageEngine, logger: Logger, maxEntries?: number, maxSerializedLength?: number,
|
|
1808
|
+
/**
|
|
1809
|
+
* Web Lock name guarding mutations. Must be scoped together with the storage the engine writes
|
|
1810
|
+
* to: a project-scoped outbox key guarded by the shared lock would serialize unrelated trackers,
|
|
1811
|
+
* and a shared key guarded by scoped locks would lose the cross-tab atomicity guarantee.
|
|
1812
|
+
*/
|
|
1813
|
+
lockName?: string);
|
|
1714
1814
|
private read;
|
|
1715
1815
|
private mutate;
|
|
1716
1816
|
/** Evict oldest entries until the serialized outbox fits {@link maxSerializedLength}. */
|
|
@@ -1728,7 +1828,13 @@ declare class EventStore {
|
|
|
1728
1828
|
size(): number;
|
|
1729
1829
|
}
|
|
1730
1830
|
|
|
1831
|
+
/**
|
|
1832
|
+
* Create a tracker and make it the default for all package-level helpers.
|
|
1833
|
+
* Each call replaces the default. For multiple projects, retain the returned instances and call
|
|
1834
|
+
* their methods, or construct {@link CorbadoTracker} instances directly without changing the default.
|
|
1835
|
+
*/
|
|
1731
1836
|
declare function init(options: TrackerOptions): CorbadoTracker;
|
|
1837
|
+
/** Return the default tracker from the most recent {@link init} call. */
|
|
1732
1838
|
declare function getTracker(): CorbadoTracker | undefined;
|
|
1733
1839
|
declare function resetSession(): string | undefined;
|
|
1734
1840
|
/**
|
|
@@ -1746,4 +1852,4 @@ declare function logInfo(message: string): void;
|
|
|
1746
1852
|
declare function logError(message: string): void;
|
|
1747
1853
|
declare function destroy(): Promise<void>;
|
|
1748
1854
|
|
|
1749
|
-
export { type AppConfirmationOperationCeremonyTypedError, 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, 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 MultiFlowReset, type MultiFlowStarted, 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, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentAutoTrackConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginAutoTrackConfig, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, 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, 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, parseReliabilityConfig, resetSession, setExperiment, setExperiments, telemetry };
|
|
1855
|
+
export { type AppConfirmationOperationCeremonyTypedError, 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, 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 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, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentAutoTrackConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginAutoTrackConfig, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, 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, 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, telemetry };
|
package/dist/index.d.ts
CHANGED
|
@@ -144,6 +144,15 @@ type StepOptions = {
|
|
|
144
144
|
type SubflowTrigger = {
|
|
145
145
|
actor: "system" | "user";
|
|
146
146
|
explicitSpecType?: string;
|
|
147
|
+
/**
|
|
148
|
+
* Declares this subflow_started / subflow_trigger as not user-driven, excluding it from
|
|
149
|
+
* interaction-evidence calculations on the backend: a started subflow that produces no step
|
|
150
|
+
* afterwards is classified as a "no-followup" error unless this flag is set. Set it when the
|
|
151
|
+
* integration fires the start programmatically (e.g. an automatic passkey attempt after
|
|
152
|
+
* identifier lookup) and an abandoned attempt is expected rather than an error signal.
|
|
153
|
+
* Optional; absent/false means the event counts (legacy behavior).
|
|
154
|
+
*/
|
|
155
|
+
ignoreAsInteraction?: boolean;
|
|
147
156
|
};
|
|
148
157
|
interface PredefinedEvent extends BaseEvent {
|
|
149
158
|
type: "predefined";
|
|
@@ -486,6 +495,11 @@ declare abstract class OperationFull {
|
|
|
486
495
|
private tracker;
|
|
487
496
|
private operationName;
|
|
488
497
|
constructor(tracker: CorbadoTracker, operationName: SubflowType);
|
|
498
|
+
/**
|
|
499
|
+
* Emits subflow_started. `data` supports the SubflowTrigger fields (`actor`,
|
|
500
|
+
* `explicitSpecType`, `ignoreAsInteraction`) plus free-form extras; see SubflowTrigger for when
|
|
501
|
+
* to set `ignoreAsInteraction` on programmatic starts.
|
|
502
|
+
*/
|
|
489
503
|
subflowStart(data: any, options?: StepOptions): void;
|
|
490
504
|
trigger(data: SubflowTrigger, options?: StepOptions): void;
|
|
491
505
|
customStep<TStart = {}, TFinished = {}>(stepName: string): StepHelper<TStart, TFinished>;
|
|
@@ -598,7 +612,18 @@ declare class EmailLinkOperationFull extends OperationFull {
|
|
|
598
612
|
constructor(tracker: CorbadoTracker);
|
|
599
613
|
}
|
|
600
614
|
|
|
601
|
-
|
|
615
|
+
/**
|
|
616
|
+
* Passkey-enrollment spec types. Two vocabularies coexist:
|
|
617
|
+
*
|
|
618
|
+
* - ATTEMPT-scoped (preferred): one subflow per attempt KIND — `"conditional"` (silent conditional
|
|
619
|
+
* create), `"auto"` (automatic required-mediation prompt fired by the integration) or `"manual"`
|
|
620
|
+
* (fired by the user's button). Create a NEW operation for every attempt; the backend opens a new
|
|
621
|
+
* subflow whenever the spec changes, so "auto prompt dismissed, then completed via the button" is two
|
|
622
|
+
* subflows and stays distinguishable from "completed by the auto prompt".
|
|
623
|
+
* - OFFER-scoped (legacy): one subflow per offer — `"conditional-auto-manual"` / `"auto-manual"` name
|
|
624
|
+
* the offer mode, and the completing ceremony's `mediation` tells the completion variants apart.
|
|
625
|
+
*/
|
|
626
|
+
type PasskeyOperationEnrollmentExplicitSpecType = "conditional" | "auto" | "manual" | "conditional-auto-manual" | "auto-manual";
|
|
602
627
|
type PasskeyEnrollmentGetOptionsStart = {
|
|
603
628
|
explicitSpecType?: PasskeyOperationEnrollmentExplicitSpecType;
|
|
604
629
|
};
|
|
@@ -627,6 +652,13 @@ type PasskeyEnrollmentPostResponseStart = {
|
|
|
627
652
|
};
|
|
628
653
|
type PasskeyEnrollmentOperationConfig = {
|
|
629
654
|
explicitSpecType?: PasskeyOperationEnrollmentExplicitSpecType;
|
|
655
|
+
/**
|
|
656
|
+
* Marks the auto-emitted `subflow_started` as not user-driven (see SubflowTrigger.ignoreAsInteraction).
|
|
657
|
+
* Set it for attempts the integration fires without a user gesture and without a visible surface —
|
|
658
|
+
* e.g. a `"conditional"` attempt — so a start that never produced a step is not read as a user asking
|
|
659
|
+
* to enroll.
|
|
660
|
+
*/
|
|
661
|
+
ignoreAsInteraction?: boolean;
|
|
630
662
|
};
|
|
631
663
|
declare class PasskeyEnrollmentOperationFull extends OperationFull {
|
|
632
664
|
readonly getOptions: StepHelper<PasskeyEnrollmentGetOptionsStart, PasskeyEnrollmentGetOptionsFinished>;
|
|
@@ -838,6 +870,7 @@ declare class ProvideDataOperationFull extends OperationFull {
|
|
|
838
870
|
}
|
|
839
871
|
|
|
840
872
|
interface TrackerOptions {
|
|
873
|
+
/** All persisted SDK state and cross-tab locks are isolated by this project id. */
|
|
841
874
|
projectId: string;
|
|
842
875
|
apiBaseUrl: string;
|
|
843
876
|
apiEventPath?: string;
|
|
@@ -878,6 +911,8 @@ declare class CorbadoTracker {
|
|
|
878
911
|
private sessionStorage;
|
|
879
912
|
/** Dedicated localStorage engine for reliability state (config cache, outbox, continuity session, seq). */
|
|
880
913
|
private persistentStorage;
|
|
914
|
+
/** Seq/continuity Web Lock name; project-scoped together with the storage keys it guards. */
|
|
915
|
+
private readonly seqLockName;
|
|
881
916
|
/**
|
|
882
917
|
* Reliability config for this load. A boot with a cached server config is a snapshot (immutable
|
|
883
918
|
* mid-load); a boot on the built-in defaults upgrades once to the first server-returned config
|
|
@@ -966,12 +1001,15 @@ declare class CorbadoTracker {
|
|
|
966
1001
|
* same browser. Rotates after `config.sessionInactivityMs` of inactivity (server-controlled,
|
|
967
1002
|
* boot-snapshot like the rest of the config), resetting the seq counter.
|
|
968
1003
|
*
|
|
969
|
-
*
|
|
970
|
-
*
|
|
971
|
-
* so the fresh session id gets a classifiable flow.
|
|
972
|
-
*
|
|
973
|
-
*
|
|
974
|
-
*
|
|
1004
|
+
* Inactivity rotation happens at boot only, here and on the per-tab path {@link resolveSessionId}
|
|
1005
|
+
* takes without continuity. Boot is chosen on an assumption, not a guarantee: that a load
|
|
1006
|
+
* re-announces its flow, so the fresh session id gets a classifiable flow. That holds where a
|
|
1007
|
+
* flow is opened per load. Where one is opened once and carried across loads it does not, and a
|
|
1008
|
+
* boot rotation splits that flow — such a project needs a window long enough to span the journey.
|
|
1009
|
+
* Mid-page the assumption is not even available: nothing re-announces between two tracked events,
|
|
1010
|
+
* so rotating there would leave the started flow unfinished in the old session and the remaining
|
|
1011
|
+
* events without a flow start in the new one — one gap counted as a drop-off, one completion
|
|
1012
|
+
* counted as nothing. `nextSeq` therefore never rotates on inactivity, on either path.
|
|
975
1013
|
*/
|
|
976
1014
|
private getContinuitySessionId;
|
|
977
1015
|
/**
|
|
@@ -979,6 +1017,24 @@ declare class CorbadoTracker {
|
|
|
979
1017
|
* section measures from the last write that actually happened — whoever made it.
|
|
980
1018
|
*/
|
|
981
1019
|
private persistContinuitySession;
|
|
1020
|
+
/**
|
|
1021
|
+
* Read the per-tab session record. A bare string is the format that predates dating: it carries no
|
|
1022
|
+
* `lastActiveAt`, so its window can only start on the load that reads it. That load rewrites it in
|
|
1023
|
+
* the dated shape, so a tab converts once and ages normally from then on, and the case drains as
|
|
1024
|
+
* the rollout replaces the bundles that write it.
|
|
1025
|
+
*/
|
|
1026
|
+
private readPerTabSession;
|
|
1027
|
+
/**
|
|
1028
|
+
* Persist the per-tab record and remember when, sharing the throttle bookkeeping with the
|
|
1029
|
+
* continuity record — a load resolves its session on one path or the other, never both.
|
|
1030
|
+
*
|
|
1031
|
+
* Only a load that received a server config stamps the window; any other carries forward what the
|
|
1032
|
+
* tab already knows. So a defaults boot never downgrades a tab that has already learned the
|
|
1033
|
+
* project's threshold to the built-in one, and the window survives a rotation within the tab.
|
|
1034
|
+
*/
|
|
1035
|
+
private persistPerTabSession;
|
|
1036
|
+
/** The window this tab measures against: what a configured load recorded, else this load's own. */
|
|
1037
|
+
private perTabInactivityMs;
|
|
982
1038
|
/**
|
|
983
1039
|
* Return the next sequence number. With session continuity the counter is persisted so ordering
|
|
984
1040
|
* survives reloads/redirects; the read-increment-write runs under a cross-tab Web Lock
|
|
@@ -1028,6 +1084,9 @@ declare class CorbadoTracker {
|
|
|
1028
1084
|
*
|
|
1029
1085
|
* @param data - Flow metadata, including one flow (`flowName`) or multiple candidates (`flowNames`).
|
|
1030
1086
|
* @param tags - Optional key-value tags for filtering and segmentation.
|
|
1087
|
+
* @param experiments - Optional per-call experiment overrides.
|
|
1088
|
+
* @param contexts - Optional structured event context (e.g. technical metadata that is not an
|
|
1089
|
+
* analytical dimension). Written to the event's `contexts` field verbatim.
|
|
1031
1090
|
*
|
|
1032
1091
|
* @example
|
|
1033
1092
|
* ```typescript
|
|
@@ -1038,7 +1097,7 @@ declare class CorbadoTracker {
|
|
|
1038
1097
|
* });
|
|
1039
1098
|
* ```
|
|
1040
1099
|
*/
|
|
1041
|
-
flowStarted(data: FlowStarted | MultiFlowStarted, tags?: Record<string, string>, experiments?: Record<string, string>): void;
|
|
1100
|
+
flowStarted(data: FlowStarted | MultiFlowStarted, tags?: Record<string, string>, experiments?: Record<string, string>, contexts?: Record<string, unknown>): void;
|
|
1042
1101
|
/**
|
|
1043
1102
|
* Track when the user commits to a specific flow.
|
|
1044
1103
|
*
|
|
@@ -1303,6 +1362,28 @@ interface StorageEngine {
|
|
|
1303
1362
|
setItem<T>(key: string, value: T): void;
|
|
1304
1363
|
removeItem(key: string): void;
|
|
1305
1364
|
}
|
|
1365
|
+
/**
|
|
1366
|
+
* Suffix a storage key or cross-tab lock name with a namespace. One shared helper so keys and the
|
|
1367
|
+
* Web Lock names guarding them can never disagree on the derived name.
|
|
1368
|
+
*/
|
|
1369
|
+
declare function namespacedKey(key: string, namespace: string): string;
|
|
1370
|
+
/**
|
|
1371
|
+
* Wraps a storage engine so every key is suffixed with a fixed namespace (see {@link namespacedKey}).
|
|
1372
|
+
*
|
|
1373
|
+
* @remarks
|
|
1374
|
+
* All trackers use their project id as the namespace: all SDK state flows through the engines
|
|
1375
|
+
* created in the tracker constructor, so wrapping them scopes every persisted key (session, seq,
|
|
1376
|
+
* outbox, config cache, experiments, tab id, client-env handle, debug dumps) in one place. Lock
|
|
1377
|
+
* names are not storage keys and must be scoped separately by the call sites that own them.
|
|
1378
|
+
*/
|
|
1379
|
+
declare class NamespacedStorage implements StorageEngine {
|
|
1380
|
+
private readonly engine;
|
|
1381
|
+
private readonly namespace;
|
|
1382
|
+
constructor(engine: StorageEngine, namespace: string);
|
|
1383
|
+
getItem<T>(key: string): T | null;
|
|
1384
|
+
setItem<T>(key: string, value: T): void;
|
|
1385
|
+
removeItem(key: string): void;
|
|
1386
|
+
}
|
|
1306
1387
|
declare class LocalStorage implements StorageEngine {
|
|
1307
1388
|
private logger;
|
|
1308
1389
|
constructor(logger: Logger);
|
|
@@ -1402,6 +1483,11 @@ interface QueueOptions {
|
|
|
1402
1483
|
onConfigReceived?: (config: SdkReliabilityConfig) => void;
|
|
1403
1484
|
/** Whether to send the opt-in config header on the first flush of this load. Defaults to true. */
|
|
1404
1485
|
requestConfig?: boolean;
|
|
1486
|
+
/**
|
|
1487
|
+
* Web Lock name for the durable outbox, scoped alongside the storage engine's keys (see
|
|
1488
|
+
* {@link EventStore}). Defaults to the shared {@link OUTBOX_LOCK_NAME}.
|
|
1489
|
+
*/
|
|
1490
|
+
outboxLockName?: string;
|
|
1405
1491
|
}
|
|
1406
1492
|
/**
|
|
1407
1493
|
* @remarks When `window` is defined, `visibilitychange` (when the document becomes hidden) and `pagehide`
|
|
@@ -1464,6 +1550,8 @@ declare class RequestQueue {
|
|
|
1464
1550
|
* (config.flushOnFlowTypeFinished).
|
|
1465
1551
|
*/
|
|
1466
1552
|
private priorityFlowTypes;
|
|
1553
|
+
/** Scoped Web Lock name for the durable outbox; undefined = EventStore's shared default. */
|
|
1554
|
+
private outboxLockName?;
|
|
1467
1555
|
private store?;
|
|
1468
1556
|
/**
|
|
1469
1557
|
* Once the server has answered the config request with a 2xx (200 = fresh config cached for the
|
|
@@ -1696,7 +1784,7 @@ declare const DEFAULT_MAX_SERIALIZED_LENGTH: number;
|
|
|
1696
1784
|
*
|
|
1697
1785
|
* @remarks
|
|
1698
1786
|
* Every mutation is a read-merge-write against storage, executed under a cross-tab Web Lock
|
|
1699
|
-
* ({@link OUTBOX_LOCK_NAME}) so concurrent tabs sharing the same localStorage cannot interleave
|
|
1787
|
+
* (default {@link OUTBOX_LOCK_NAME}) so concurrent tabs sharing the same localStorage cannot interleave
|
|
1700
1788
|
* between the read and the write (which would silently drop the other tab's entries). Where the
|
|
1701
1789
|
* Web Locks API is unavailable the mutation runs unlocked, matching the historical best-effort
|
|
1702
1790
|
* behavior. Mutations never reject; failures are logged.
|
|
@@ -1707,10 +1795,22 @@ declare class EventStore {
|
|
|
1707
1795
|
private readonly logger;
|
|
1708
1796
|
private readonly maxEntries;
|
|
1709
1797
|
private readonly maxSerializedLength;
|
|
1798
|
+
/**
|
|
1799
|
+
* Web Lock name guarding mutations. Must be scoped together with the storage the engine writes
|
|
1800
|
+
* to: a project-scoped outbox key guarded by the shared lock would serialize unrelated trackers,
|
|
1801
|
+
* and a shared key guarded by scoped locks would lose the cross-tab atomicity guarantee.
|
|
1802
|
+
*/
|
|
1803
|
+
private readonly lockName;
|
|
1710
1804
|
private entries;
|
|
1711
1805
|
/** Malformed entries are dropped on every read; report only once per instance to avoid log spam. */
|
|
1712
1806
|
private reportedMalformed;
|
|
1713
|
-
constructor(storage: StorageEngine, logger: Logger, maxEntries?: number, maxSerializedLength?: number
|
|
1807
|
+
constructor(storage: StorageEngine, logger: Logger, maxEntries?: number, maxSerializedLength?: number,
|
|
1808
|
+
/**
|
|
1809
|
+
* Web Lock name guarding mutations. Must be scoped together with the storage the engine writes
|
|
1810
|
+
* to: a project-scoped outbox key guarded by the shared lock would serialize unrelated trackers,
|
|
1811
|
+
* and a shared key guarded by scoped locks would lose the cross-tab atomicity guarantee.
|
|
1812
|
+
*/
|
|
1813
|
+
lockName?: string);
|
|
1714
1814
|
private read;
|
|
1715
1815
|
private mutate;
|
|
1716
1816
|
/** Evict oldest entries until the serialized outbox fits {@link maxSerializedLength}. */
|
|
@@ -1728,7 +1828,13 @@ declare class EventStore {
|
|
|
1728
1828
|
size(): number;
|
|
1729
1829
|
}
|
|
1730
1830
|
|
|
1831
|
+
/**
|
|
1832
|
+
* Create a tracker and make it the default for all package-level helpers.
|
|
1833
|
+
* Each call replaces the default. For multiple projects, retain the returned instances and call
|
|
1834
|
+
* their methods, or construct {@link CorbadoTracker} instances directly without changing the default.
|
|
1835
|
+
*/
|
|
1731
1836
|
declare function init(options: TrackerOptions): CorbadoTracker;
|
|
1837
|
+
/** Return the default tracker from the most recent {@link init} call. */
|
|
1732
1838
|
declare function getTracker(): CorbadoTracker | undefined;
|
|
1733
1839
|
declare function resetSession(): string | undefined;
|
|
1734
1840
|
/**
|
|
@@ -1746,4 +1852,4 @@ declare function logInfo(message: string): void;
|
|
|
1746
1852
|
declare function logError(message: string): void;
|
|
1747
1853
|
declare function destroy(): Promise<void>;
|
|
1748
1854
|
|
|
1749
|
-
export { type AppConfirmationOperationCeremonyTypedError, 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, 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 MultiFlowReset, type MultiFlowStarted, 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, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentAutoTrackConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginAutoTrackConfig, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, 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, 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, parseReliabilityConfig, resetSession, setExperiment, setExperiments, telemetry };
|
|
1855
|
+
export { type AppConfirmationOperationCeremonyTypedError, 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, 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 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, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentAutoTrackConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginAutoTrackConfig, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, 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, 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, telemetry };
|