@corbado/observe 0.12.0 → 0.14.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 +238 -60
- package/dist/index.d.ts +238 -60
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +2 -1
package/dist/index.d.mts
CHANGED
|
@@ -24,6 +24,8 @@ declare enum AuthEventName {
|
|
|
24
24
|
SubflowError = "subflow_error",
|
|
25
25
|
SubflowStarted = "subflow_started",
|
|
26
26
|
SubflowFinished = "subflow_finished",
|
|
27
|
+
/** Client-side flow enrichment (the server accepts `session_enriched` as a legacy alias). */
|
|
28
|
+
FlowEnriched = "flow_enriched",
|
|
27
29
|
Conversion = "conversion"
|
|
28
30
|
}
|
|
29
31
|
interface BaseEvent {
|
|
@@ -51,6 +53,15 @@ interface BaseEvent {
|
|
|
51
53
|
type UserReference = {
|
|
52
54
|
userId?: string;
|
|
53
55
|
identifier?: string;
|
|
56
|
+
/** Shared UUID used to link sessions across environments. */
|
|
57
|
+
crossEnvironmentTransactionID?: string;
|
|
58
|
+
};
|
|
59
|
+
type LegacyUserReference = {
|
|
60
|
+
/** @deprecated Use tracker.setUser() within the active flow instead. */
|
|
61
|
+
userId?: string;
|
|
62
|
+
/** @deprecated Use tracker.setUser() within the active flow instead. */
|
|
63
|
+
identifier?: string;
|
|
64
|
+
/** @deprecated Use tracker.setUser() within the active flow instead. */
|
|
54
65
|
crossEnvironmentTransactionID?: string;
|
|
55
66
|
};
|
|
56
67
|
/**
|
|
@@ -83,11 +94,11 @@ type Conversion = {
|
|
|
83
94
|
name: string;
|
|
84
95
|
/** Where the conversion happened, e.g. `"checkout"` or `"product-page"`. */
|
|
85
96
|
touchpoint?: string;
|
|
86
|
-
} &
|
|
97
|
+
} & LegacyUserReference;
|
|
87
98
|
type FlowFinished = {
|
|
88
99
|
flowName: FlowType;
|
|
89
100
|
explicitOutcome?: "skipped" | "visible-auto-skip" | "invisible";
|
|
90
|
-
} &
|
|
101
|
+
} & LegacyUserReference;
|
|
91
102
|
type FlowReset = {
|
|
92
103
|
flowName?: FlowType;
|
|
93
104
|
};
|
|
@@ -97,7 +108,7 @@ type MultiFlowReset = {
|
|
|
97
108
|
type FlowAutoFinished = {
|
|
98
109
|
flowName: FlowType;
|
|
99
110
|
finishedByFlowName: FlowType;
|
|
100
|
-
} &
|
|
111
|
+
} & LegacyUserReference;
|
|
101
112
|
type AuthMethodDecisionStarted = {
|
|
102
113
|
decisionName: string;
|
|
103
114
|
options: (AuthMethodType | (string & {}))[];
|
|
@@ -105,15 +116,16 @@ type AuthMethodDecisionStarted = {
|
|
|
105
116
|
};
|
|
106
117
|
type AuthMethodDecisionFinished = {
|
|
107
118
|
decisionName: string;
|
|
108
|
-
|
|
119
|
+
/** Optional — when omitted, the backend completes the open decision of the same name using its declared options (classifier follow-up). */
|
|
120
|
+
options?: (AuthMethodType | (string & {}))[];
|
|
109
121
|
explicitDecisionValue?: string;
|
|
110
122
|
};
|
|
111
123
|
type ProvideIdentifierStart = {};
|
|
112
|
-
type ProvideIdentifierError =
|
|
124
|
+
type ProvideIdentifierError = LegacyUserReference & {
|
|
113
125
|
errorCode?: string;
|
|
114
126
|
error?: any;
|
|
115
127
|
};
|
|
116
|
-
type ProvideIdentifierFinish =
|
|
128
|
+
type ProvideIdentifierFinish = LegacyUserReference & {
|
|
117
129
|
identifierPrefillingCreated?: boolean;
|
|
118
130
|
};
|
|
119
131
|
type PasskeyLoginClientError = {
|
|
@@ -125,7 +137,7 @@ type PasskeyLoginStartable = {
|
|
|
125
137
|
type PasskeyLoginSubmitted = {
|
|
126
138
|
assertionResponse: string;
|
|
127
139
|
};
|
|
128
|
-
type PasskeyLoginFinish =
|
|
140
|
+
type PasskeyLoginFinish = LegacyUserReference & {};
|
|
129
141
|
type AuthDecisionStarted = {
|
|
130
142
|
decisionName: string;
|
|
131
143
|
options: string[];
|
|
@@ -136,6 +148,7 @@ type AuthDecisionFinished = {
|
|
|
136
148
|
explicitDecisionValue?: string;
|
|
137
149
|
};
|
|
138
150
|
type StepOptions = {
|
|
151
|
+
/** @deprecated Use tracker.setUser() within the active flow instead. */
|
|
139
152
|
userReference?: UserReference;
|
|
140
153
|
explicitTimestamp?: number;
|
|
141
154
|
/** Per-call experiment override (experiment key → variant), merged over the persistent assignments. */
|
|
@@ -144,6 +157,15 @@ type StepOptions = {
|
|
|
144
157
|
type SubflowTrigger = {
|
|
145
158
|
actor: "system" | "user";
|
|
146
159
|
explicitSpecType?: string;
|
|
160
|
+
/**
|
|
161
|
+
* Declares this subflow_started / subflow_trigger as not user-driven, excluding it from
|
|
162
|
+
* interaction-evidence calculations on the backend: a started subflow that produces no step
|
|
163
|
+
* afterwards is classified as a "no-followup" error unless this flag is set. Set it when the
|
|
164
|
+
* integration fires the start programmatically (e.g. an automatic passkey attempt after
|
|
165
|
+
* identifier lookup) and an abandoned attempt is expected rather than an error signal.
|
|
166
|
+
* Optional; absent/false means the event counts (legacy behavior).
|
|
167
|
+
*/
|
|
168
|
+
ignoreAsInteraction?: boolean;
|
|
147
169
|
};
|
|
148
170
|
interface PredefinedEvent extends BaseEvent {
|
|
149
171
|
type: "predefined";
|
|
@@ -486,7 +508,15 @@ declare abstract class OperationFull {
|
|
|
486
508
|
private tracker;
|
|
487
509
|
private operationName;
|
|
488
510
|
constructor(tracker: CorbadoTracker, operationName: SubflowType);
|
|
511
|
+
/**
|
|
512
|
+
* Emits an additional subflow_started; construction already emits the initial start.
|
|
513
|
+
* `data` supports SubflowTrigger fields (`actor`, `explicitSpecType`, `ignoreAsInteraction`)
|
|
514
|
+
* plus free-form extras; see SubflowTrigger for programmatic interaction suppression.
|
|
515
|
+
*/
|
|
489
516
|
subflowStart(data: any, options?: StepOptions): void;
|
|
517
|
+
/**
|
|
518
|
+
* @deprecated `subflow_trigger` will be removed in the next major version.
|
|
519
|
+
*/
|
|
490
520
|
trigger(data: SubflowTrigger, options?: StepOptions): void;
|
|
491
521
|
customStep<TStart = {}, TFinished = {}>(stepName: string): StepHelper<TStart, TFinished>;
|
|
492
522
|
protected subflowStepStarted(stepName: string, data: any, options?: StepOptions, ignoreAsInteraction?: boolean): void;
|
|
@@ -540,12 +570,16 @@ type PasskeyLoginPostResponseStart = {
|
|
|
540
570
|
*/
|
|
541
571
|
assertionResponse?: string;
|
|
542
572
|
};
|
|
573
|
+
type PasskeyLoginOperationConfig = {
|
|
574
|
+
/** The classifier drops the attempt if no spec type arrives on any of its events — supply it here or on a step's start data as soon as known. */
|
|
575
|
+
explicitSpecType?: PasskeyOperationLoginExplicitSpecType;
|
|
576
|
+
};
|
|
543
577
|
declare class PasskeyLoginOperationFull extends OperationFull {
|
|
544
578
|
readonly getOptions: StepHelper<PasskeyLoginGetOptionsStart, PasskeyLoginGetOptionsFinished>;
|
|
545
579
|
readonly ceremony: StepHelper<PasskeyLoginCeremonyStart, PasskeyLoginCeremonyFinished>;
|
|
546
580
|
readonly postResponse: StepHelper<PasskeyLoginPostResponseStart>;
|
|
547
581
|
private lowEventTracker;
|
|
548
|
-
constructor(tracker: CorbadoTracker);
|
|
582
|
+
constructor(tracker: CorbadoTracker, config?: PasskeyLoginOperationConfig);
|
|
549
583
|
/**
|
|
550
584
|
* @deprecated `subflow_trigger` is not supported for passkey-login and will be removed in the
|
|
551
585
|
* next major version.
|
|
@@ -591,14 +625,29 @@ type EmailLinkOperationSendStart = {
|
|
|
591
625
|
type EmailLinkOperationPostResponseStart = {
|
|
592
626
|
explicitSpecType?: EmailLinkOperationSpecType;
|
|
593
627
|
};
|
|
628
|
+
type EmailLinkOperationConfig = {
|
|
629
|
+
/** The classifier drops the attempt if no spec type arrives on any of its events — supply it here or on a step's start data as soon as known. */
|
|
630
|
+
explicitSpecType?: EmailLinkOperationSpecType;
|
|
631
|
+
};
|
|
594
632
|
declare class EmailLinkOperationFull extends OperationFull {
|
|
595
633
|
readonly send: StepHelper<EmailLinkOperationSendStart>;
|
|
596
634
|
readonly postResponse: StepHelper<EmailLinkOperationPostResponseStart>;
|
|
597
635
|
readonly resend: StepHelper;
|
|
598
|
-
constructor(tracker: CorbadoTracker);
|
|
636
|
+
constructor(tracker: CorbadoTracker, config?: EmailLinkOperationConfig);
|
|
599
637
|
}
|
|
600
638
|
|
|
601
|
-
|
|
639
|
+
/**
|
|
640
|
+
* Passkey-enrollment spec types. Two vocabularies coexist:
|
|
641
|
+
*
|
|
642
|
+
* - ATTEMPT-scoped (preferred): one subflow per attempt KIND — `"conditional"` (silent conditional
|
|
643
|
+
* create), `"auto"` (automatic required-mediation prompt fired by the integration) or `"manual"`
|
|
644
|
+
* (fired by the user's button). Create a NEW operation for every attempt; the backend opens a new
|
|
645
|
+
* subflow whenever the spec changes, so "auto prompt dismissed, then completed via the button" is two
|
|
646
|
+
* subflows and stays distinguishable from "completed by the auto prompt".
|
|
647
|
+
* - OFFER-scoped (legacy): one subflow per offer — `"conditional-auto-manual"` / `"auto-manual"` name
|
|
648
|
+
* the offer mode, and the completing ceremony's `mediation` tells the completion variants apart.
|
|
649
|
+
*/
|
|
650
|
+
type PasskeyOperationEnrollmentExplicitSpecType = "conditional" | "auto" | "manual" | "conditional-auto-manual" | "auto-manual";
|
|
602
651
|
type PasskeyEnrollmentGetOptionsStart = {
|
|
603
652
|
explicitSpecType?: PasskeyOperationEnrollmentExplicitSpecType;
|
|
604
653
|
};
|
|
@@ -626,7 +675,15 @@ type PasskeyEnrollmentPostResponseStart = {
|
|
|
626
675
|
attestationResponse?: string;
|
|
627
676
|
};
|
|
628
677
|
type PasskeyEnrollmentOperationConfig = {
|
|
678
|
+
/** The classifier drops the attempt if no spec type arrives on any of its events — supply it here or on a step's start data as soon as known. */
|
|
629
679
|
explicitSpecType?: PasskeyOperationEnrollmentExplicitSpecType;
|
|
680
|
+
/**
|
|
681
|
+
* Marks the auto-emitted `subflow_started` as not user-driven (see SubflowTrigger.ignoreAsInteraction).
|
|
682
|
+
* Set it for attempts the integration fires without a user gesture and without a visible surface —
|
|
683
|
+
* e.g. a `"conditional"` attempt — so a start that never produced a step is not read as a user asking
|
|
684
|
+
* to enroll.
|
|
685
|
+
*/
|
|
686
|
+
ignoreAsInteraction?: boolean;
|
|
630
687
|
};
|
|
631
688
|
declare class PasskeyEnrollmentOperationFull extends OperationFull {
|
|
632
689
|
readonly getOptions: StepHelper<PasskeyEnrollmentGetOptionsStart, PasskeyEnrollmentGetOptionsFinished>;
|
|
@@ -662,14 +719,11 @@ type PasswordLoginCUIGetOptionsFinished = {
|
|
|
662
719
|
type PasswordLoginCUICeremonyStart = {
|
|
663
720
|
explicitSpecType?: PasswordLoginCUISpecType;
|
|
664
721
|
};
|
|
665
|
-
type
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
explicitSpecType: "password-with-identifier";
|
|
671
|
-
/** The password input field. */
|
|
672
|
-
inputHtmlField: HTMLInputElement;
|
|
722
|
+
type PasswordLoginExplicitSpecType = "password-known-identifier" | "password-with-identifier";
|
|
723
|
+
type PasswordLoginConfig = {
|
|
724
|
+
explicitSpecType?: PasswordLoginExplicitSpecType;
|
|
725
|
+
/** The password input field. When set, low-event input tracking is attached to it. */
|
|
726
|
+
inputHtmlField?: HTMLInputElement;
|
|
673
727
|
/**
|
|
674
728
|
* The identifier (e.g. email) input field. Accepted but not tracked yet — low-event
|
|
675
729
|
* tracking for a second field lands together with per-field attribution.
|
|
@@ -690,7 +744,7 @@ declare class PasswordLoginOperationFull extends OperationFull {
|
|
|
690
744
|
postResponse: StepHelper;
|
|
691
745
|
};
|
|
692
746
|
private lowEventTracker?;
|
|
693
|
-
constructor(tracker: CorbadoTracker,
|
|
747
|
+
constructor(tracker: CorbadoTracker, config?: PasswordLoginConfig);
|
|
694
748
|
/**
|
|
695
749
|
* @deprecated `subflow_trigger` is not supported for password-login and will be removed in the
|
|
696
750
|
* next major version.
|
|
@@ -704,15 +758,17 @@ type PasswordEnrollmentTypedError = {
|
|
|
704
758
|
};
|
|
705
759
|
type PasswordEnrollmentTypedErrorCode = "requirements_not_fulfilled";
|
|
706
760
|
type PasswordEnrollmentExplicitSpecType = "password-set" | "password-reset";
|
|
707
|
-
type
|
|
761
|
+
type PasswordEnrollmentConfig = {
|
|
762
|
+
/** The classifier drops the attempt if no spec type arrives on any of its events — supply it here or on a step's start data as soon as known. */
|
|
708
763
|
explicitSpecType?: PasswordEnrollmentExplicitSpecType;
|
|
764
|
+
/** The password input field. When set, low-event input tracking is attached to it. */
|
|
709
765
|
inputHtmlField?: HTMLInputElement;
|
|
710
766
|
};
|
|
711
767
|
declare class PasswordEnrollmentOperationFull extends OperationFull {
|
|
712
768
|
readonly clientValidation: StepHelper;
|
|
713
769
|
readonly postResponse: StepHelper<{}, {}, PasswordEnrollmentTypedError>;
|
|
714
770
|
private lowEventTracker?;
|
|
715
|
-
constructor(tracker: CorbadoTracker,
|
|
771
|
+
constructor(tracker: CorbadoTracker, config?: PasswordEnrollmentConfig);
|
|
716
772
|
destroy(): void;
|
|
717
773
|
}
|
|
718
774
|
|
|
@@ -736,16 +792,15 @@ type PasskeyLoginCUIGetOptionsFinished = {
|
|
|
736
792
|
assertionOptions: string;
|
|
737
793
|
};
|
|
738
794
|
type OperationFullProvideIdentifierWithCUIConfig = {
|
|
795
|
+
/** When set, low event collection is enabled for the input field. */
|
|
739
796
|
inputHtmlField?: HTMLInputElement;
|
|
740
797
|
explicitSpecType?: ProvideIdentifierSpecType;
|
|
741
798
|
};
|
|
742
|
-
declare class OperationFullProvideIdentifierWithCUI {
|
|
743
|
-
private tracker;
|
|
799
|
+
declare class OperationFullProvideIdentifierWithCUI extends OperationFull {
|
|
744
800
|
private lowEventTracker?;
|
|
745
801
|
readonly cui: {
|
|
746
802
|
/**
|
|
747
|
-
* @deprecated `subflow_trigger`
|
|
748
|
-
* will be removed in the next major version.
|
|
803
|
+
* @deprecated `subflow_trigger` will be removed in the next major version.
|
|
749
804
|
*/
|
|
750
805
|
trigger: (data: SubflowTrigger, options?: StepOptions) => void;
|
|
751
806
|
getOptions: StepHelper<PasskeyLoginCUIGetOptionsStart, PasskeyLoginCUIGetOptionsFinished>;
|
|
@@ -754,32 +809,34 @@ declare class OperationFullProvideIdentifierWithCUI {
|
|
|
754
809
|
};
|
|
755
810
|
readonly provideIdentifier: {
|
|
756
811
|
/**
|
|
757
|
-
* @deprecated `subflow_trigger`
|
|
758
|
-
* in the next major version.
|
|
812
|
+
* @deprecated `subflow_trigger` will be removed in the next major version.
|
|
759
813
|
*/
|
|
760
814
|
trigger: (data: SubflowTrigger, options?: StepOptions) => void;
|
|
761
815
|
clientValidation: StepHelper;
|
|
762
816
|
postResponse: StepHelper<ProvideIdentifierPostResponseStart>;
|
|
763
817
|
};
|
|
764
818
|
constructor(tracker: CorbadoTracker, config?: OperationFullProvideIdentifierWithCUIConfig);
|
|
765
|
-
private createStep;
|
|
766
819
|
destroy(): void;
|
|
767
820
|
}
|
|
768
821
|
|
|
769
822
|
type SocialLoginSpecType = "pre-identifier" | "post-identifier";
|
|
770
823
|
type SocialLoginGetRedirectUrlStart = {
|
|
771
824
|
provider?: SocialLoginProviderType;
|
|
772
|
-
explicitSpecType
|
|
825
|
+
explicitSpecType?: SocialLoginSpecType;
|
|
773
826
|
};
|
|
774
827
|
type SocialLoginGetRedirectUrlFinished = {};
|
|
775
828
|
type SocialLoginExchangeCodeStart = {
|
|
776
829
|
provider?: SocialLoginProviderType;
|
|
777
830
|
};
|
|
778
831
|
type SocialLoginExchangeCodeFinished = {};
|
|
832
|
+
type SocialLoginOperationConfig = {
|
|
833
|
+
/** The classifier drops the attempt if no spec type arrives on any of its events — supply it here or on a step's start data as soon as known. */
|
|
834
|
+
explicitSpecType?: SocialLoginSpecType;
|
|
835
|
+
};
|
|
779
836
|
declare class SocialLoginOperationFull extends OperationFull {
|
|
780
837
|
readonly getRedirectUrl: StepHelper<SocialLoginGetRedirectUrlStart, SocialLoginGetRedirectUrlFinished>;
|
|
781
838
|
readonly exchangeCode: StepHelper<SocialLoginExchangeCodeStart, SocialLoginExchangeCodeFinished>;
|
|
782
|
-
constructor(tracker: CorbadoTracker);
|
|
839
|
+
constructor(tracker: CorbadoTracker, config?: SocialLoginOperationConfig);
|
|
783
840
|
}
|
|
784
841
|
|
|
785
842
|
type AppConfirmationOperationSpecType = "qr-code";
|
|
@@ -791,11 +848,14 @@ type AppConfirmationOperationCeremonyTypedError = {
|
|
|
791
848
|
};
|
|
792
849
|
type AppConfirmationOperationCeremonyTypedErrorCode = "declined" | "expired";
|
|
793
850
|
type AppConfirmationOperationRetryReason = AppConfirmationOperationCeremonyTypedErrorCode | "technical-error" | "manual";
|
|
851
|
+
type AppConfirmationOperationConfig = {
|
|
852
|
+
explicitSpecType?: AppConfirmationOperationSpecType;
|
|
853
|
+
};
|
|
794
854
|
declare class AppConfirmationOperationFull extends OperationFull {
|
|
795
855
|
readonly ceremony: StepHelper<{}, {}, AppConfirmationOperationCeremonyTypedError>;
|
|
796
856
|
readonly retry: StepHelper;
|
|
797
857
|
readonly postResponse: StepHelper;
|
|
798
|
-
constructor(tracker: CorbadoTracker,
|
|
858
|
+
constructor(tracker: CorbadoTracker, config?: AppConfirmationOperationConfig);
|
|
799
859
|
}
|
|
800
860
|
|
|
801
861
|
/**
|
|
@@ -819,6 +879,7 @@ type ProvideDataOperationSpecType = "signup" | "login" | "recovery" | "enrollmen
|
|
|
819
879
|
type ProvideDataOperationStart = {
|
|
820
880
|
/** Stable name of the data field collected by this subflow, when known. */
|
|
821
881
|
fieldName?: string;
|
|
882
|
+
/** The classifier drops the attempt if no spec type arrives on any of its events — supply it here or on a step's start data as soon as known. */
|
|
822
883
|
explicitSpecType?: ProvideDataOperationSpecType;
|
|
823
884
|
};
|
|
824
885
|
type ProvideDataOperationConfig = ProvideDataOperationStart & {
|
|
@@ -838,6 +899,7 @@ declare class ProvideDataOperationFull extends OperationFull {
|
|
|
838
899
|
}
|
|
839
900
|
|
|
840
901
|
interface TrackerOptions {
|
|
902
|
+
/** All persisted SDK state and cross-tab locks are isolated by this project id. */
|
|
841
903
|
projectId: string;
|
|
842
904
|
apiBaseUrl: string;
|
|
843
905
|
apiEventPath?: string;
|
|
@@ -878,6 +940,8 @@ declare class CorbadoTracker {
|
|
|
878
940
|
private sessionStorage;
|
|
879
941
|
/** Dedicated localStorage engine for reliability state (config cache, outbox, continuity session, seq). */
|
|
880
942
|
private persistentStorage;
|
|
943
|
+
/** Seq/continuity Web Lock name; project-scoped together with the storage keys it guards. */
|
|
944
|
+
private readonly seqLockName;
|
|
881
945
|
/**
|
|
882
946
|
* Reliability config for this load. A boot with a cached server config is a snapshot (immutable
|
|
883
947
|
* mid-load); a boot on the built-in defaults upgrades once to the first server-returned config
|
|
@@ -966,12 +1030,15 @@ declare class CorbadoTracker {
|
|
|
966
1030
|
* same browser. Rotates after `config.sessionInactivityMs` of inactivity (server-controlled,
|
|
967
1031
|
* boot-snapshot like the rest of the config), resetting the seq counter.
|
|
968
1032
|
*
|
|
969
|
-
*
|
|
970
|
-
*
|
|
971
|
-
* so the fresh session id gets a classifiable flow.
|
|
972
|
-
*
|
|
973
|
-
*
|
|
974
|
-
*
|
|
1033
|
+
* Inactivity rotation happens at boot only, here and on the per-tab path {@link resolveSessionId}
|
|
1034
|
+
* takes without continuity. Boot is chosen on an assumption, not a guarantee: that a load
|
|
1035
|
+
* re-announces its flow, so the fresh session id gets a classifiable flow. That holds where a
|
|
1036
|
+
* flow is opened per load. Where one is opened once and carried across loads it does not, and a
|
|
1037
|
+
* boot rotation splits that flow — such a project needs a window long enough to span the journey.
|
|
1038
|
+
* Mid-page the assumption is not even available: nothing re-announces between two tracked events,
|
|
1039
|
+
* so rotating there would leave the started flow unfinished in the old session and the remaining
|
|
1040
|
+
* events without a flow start in the new one — one gap counted as a drop-off, one completion
|
|
1041
|
+
* counted as nothing. `nextSeq` therefore never rotates on inactivity, on either path.
|
|
975
1042
|
*/
|
|
976
1043
|
private getContinuitySessionId;
|
|
977
1044
|
/**
|
|
@@ -979,6 +1046,24 @@ declare class CorbadoTracker {
|
|
|
979
1046
|
* section measures from the last write that actually happened — whoever made it.
|
|
980
1047
|
*/
|
|
981
1048
|
private persistContinuitySession;
|
|
1049
|
+
/**
|
|
1050
|
+
* Read the per-tab session record. A bare string is the format that predates dating: it carries no
|
|
1051
|
+
* `lastActiveAt`, so its window can only start on the load that reads it. That load rewrites it in
|
|
1052
|
+
* the dated shape, so a tab converts once and ages normally from then on, and the case drains as
|
|
1053
|
+
* the rollout replaces the bundles that write it.
|
|
1054
|
+
*/
|
|
1055
|
+
private readPerTabSession;
|
|
1056
|
+
/**
|
|
1057
|
+
* Persist the per-tab record and remember when, sharing the throttle bookkeeping with the
|
|
1058
|
+
* continuity record — a load resolves its session on one path or the other, never both.
|
|
1059
|
+
*
|
|
1060
|
+
* Only a load that received a server config stamps the window; any other carries forward what the
|
|
1061
|
+
* tab already knows. So a defaults boot never downgrades a tab that has already learned the
|
|
1062
|
+
* project's threshold to the built-in one, and the window survives a rotation within the tab.
|
|
1063
|
+
*/
|
|
1064
|
+
private persistPerTabSession;
|
|
1065
|
+
/** The window this tab measures against: what a configured load recorded, else this load's own. */
|
|
1066
|
+
private perTabInactivityMs;
|
|
982
1067
|
/**
|
|
983
1068
|
* Return the next sequence number. With session continuity the counter is persisted so ordering
|
|
984
1069
|
* survives reloads/redirects; the read-increment-write runs under a cross-tab Web Lock
|
|
@@ -1008,7 +1093,11 @@ declare class CorbadoTracker {
|
|
|
1008
1093
|
trackSubflowStepStarted(subflowType: SubflowType, stepName: string, data: Record<string, any>, options?: StepOptions, ignoreAsInteraction?: boolean): void;
|
|
1009
1094
|
trackSubflowStepFinished(subflowType: SubflowType, stepName: string, data: Record<string, any>, options?: StepOptions): void;
|
|
1010
1095
|
trackSubflowStepError(subflowType: SubflowType, stepName: string, data: Record<string, any>, options?: StepOptions): void;
|
|
1011
|
-
|
|
1096
|
+
/**
|
|
1097
|
+
* @remarks
|
|
1098
|
+
* Records an additional error occurrence against the subflow. Carries no outcome semantics —
|
|
1099
|
+
* step errors are the intended channel; not part of a normal integration.
|
|
1100
|
+
*/
|
|
1012
1101
|
trackSubflowError(subflowType: SubflowType, data: Record<string, any>, options?: StepOptions): void;
|
|
1013
1102
|
/**
|
|
1014
1103
|
* Error situations:
|
|
@@ -1028,6 +1117,9 @@ declare class CorbadoTracker {
|
|
|
1028
1117
|
*
|
|
1029
1118
|
* @param data - Flow metadata, including one flow (`flowName`) or multiple candidates (`flowNames`).
|
|
1030
1119
|
* @param tags - Optional key-value tags for filtering and segmentation.
|
|
1120
|
+
* @param experiments - Optional per-call experiment overrides.
|
|
1121
|
+
* @param contexts - Optional structured event context (e.g. technical metadata that is not an
|
|
1122
|
+
* analytical dimension). Written to the event's `contexts` field verbatim.
|
|
1031
1123
|
*
|
|
1032
1124
|
* @example
|
|
1033
1125
|
* ```typescript
|
|
@@ -1038,7 +1130,7 @@ declare class CorbadoTracker {
|
|
|
1038
1130
|
* });
|
|
1039
1131
|
* ```
|
|
1040
1132
|
*/
|
|
1041
|
-
flowStarted(data: FlowStarted | MultiFlowStarted, tags?: Record<string, string>, experiments?: Record<string, string>): void;
|
|
1133
|
+
flowStarted(data: FlowStarted | MultiFlowStarted, tags?: Record<string, string>, experiments?: Record<string, string>, contexts?: Record<string, unknown>): void;
|
|
1042
1134
|
/**
|
|
1043
1135
|
* Track when the user commits to a specific flow.
|
|
1044
1136
|
*
|
|
@@ -1062,10 +1154,12 @@ declare class CorbadoTracker {
|
|
|
1062
1154
|
* Use this for outcomes you care about beyond auth, such as a completed purchase,
|
|
1063
1155
|
* a started subscription, or a newsletter signup. Provide a stable `name` for the
|
|
1064
1156
|
* conversion and (optionally) the `touchpoint` where it happened so it can be
|
|
1065
|
-
* segmented in the same way as flows.
|
|
1066
|
-
*
|
|
1157
|
+
* segmented in the same way as flows. Record identity separately with `setUser()`
|
|
1158
|
+
* while the relevant flow is still active.
|
|
1067
1159
|
*
|
|
1068
|
-
*
|
|
1160
|
+
* Legacy identity fields in `data` remain supported but are deprecated.
|
|
1161
|
+
*
|
|
1162
|
+
* @param data - Conversion name, optional touchpoint, and deprecated user reference fields.
|
|
1069
1163
|
* @param tags - Optional key-value tags for filtering and segmentation.
|
|
1070
1164
|
*
|
|
1071
1165
|
* @example
|
|
@@ -1073,7 +1167,6 @@ declare class CorbadoTracker {
|
|
|
1073
1167
|
* tracker.conversion({
|
|
1074
1168
|
* name: "purchase",
|
|
1075
1169
|
* touchpoint: "checkout",
|
|
1076
|
-
* userId: "usr_123",
|
|
1077
1170
|
* });
|
|
1078
1171
|
* ```
|
|
1079
1172
|
*/
|
|
@@ -1083,18 +1176,18 @@ declare class CorbadoTracker {
|
|
|
1083
1176
|
*
|
|
1084
1177
|
* @remarks
|
|
1085
1178
|
* Fire this when the user has finished the target flow end-to-end, such as completed login,
|
|
1086
|
-
* signup, or recovery.
|
|
1087
|
-
*
|
|
1179
|
+
* signup, or recovery. Record identity separately with `setUser()` while the flow
|
|
1180
|
+
* is still active, before calling `flowFinished()`.
|
|
1181
|
+
*
|
|
1182
|
+
* Legacy identity fields in `data` remain supported but are deprecated.
|
|
1088
1183
|
*
|
|
1089
|
-
* @param data - Finished flow name
|
|
1184
|
+
* @param data - Finished flow name, optional explicit outcome, and deprecated user reference fields.
|
|
1090
1185
|
* @param tags - Optional key-value tags for filtering and segmentation.
|
|
1091
1186
|
*
|
|
1092
1187
|
* @example
|
|
1093
1188
|
* ```typescript
|
|
1094
1189
|
* tracker.flowFinished({
|
|
1095
1190
|
* flowName: "login",
|
|
1096
|
-
* userId: "usr_123",
|
|
1097
|
-
* identifier: "max@example.com",
|
|
1098
1191
|
* });
|
|
1099
1192
|
* ```
|
|
1100
1193
|
*/
|
|
@@ -1121,9 +1214,12 @@ declare class CorbadoTracker {
|
|
|
1121
1214
|
* @remarks
|
|
1122
1215
|
* Use this for automatic completions where no separate explicit finish action happens in the
|
|
1123
1216
|
* current flow. Set `flowName` to the auto-finished flow and `finishedByFlowName` to the flow
|
|
1124
|
-
* that caused it.
|
|
1217
|
+
* that caused it. Record identity with `setUser()` while the intended flow is still
|
|
1218
|
+
* current, before it is auto-finished.
|
|
1125
1219
|
*
|
|
1126
|
-
*
|
|
1220
|
+
* Legacy identity fields in `data` remain supported but are deprecated.
|
|
1221
|
+
*
|
|
1222
|
+
* @param data - Auto-finished flow, finishing flow, and deprecated user reference fields.
|
|
1127
1223
|
* @param tags - Optional key-value tags for filtering and segmentation.
|
|
1128
1224
|
*
|
|
1129
1225
|
* @example
|
|
@@ -1131,11 +1227,32 @@ declare class CorbadoTracker {
|
|
|
1131
1227
|
* tracker.flowAutoFinished({
|
|
1132
1228
|
* flowName: "signup",
|
|
1133
1229
|
* finishedByFlowName: "login",
|
|
1134
|
-
* userId: "usr_123",
|
|
1135
1230
|
* });
|
|
1136
1231
|
* ```
|
|
1137
1232
|
*/
|
|
1138
1233
|
flowAutoFinished(data: FlowAutoFinished, tags?: Record<string, string>, experiments?: Record<string, string>): void;
|
|
1234
|
+
/**
|
|
1235
|
+
* Record a newly known user reference for the current active flow.
|
|
1236
|
+
*
|
|
1237
|
+
* @remarks
|
|
1238
|
+
* Emits one `flow_enriched` with `match: { flowType: "*", at: "during" }` and `expFol: true` in its data.
|
|
1239
|
+
* Call only after the flow starts and before it finishes. The enrichment belongs
|
|
1240
|
+
* to the current flow at emission time.
|
|
1241
|
+
* Calling after `flowFinished()` cannot enrich that finished flow. If a parent or another
|
|
1242
|
+
* flow is current then, the enrichment belongs to that flow instead.
|
|
1243
|
+
* An empty reference does not clear identity. Cross-environment transaction IDs must be UUIDs;
|
|
1244
|
+
* both environments must report the shared ID while their respective flows are active.
|
|
1245
|
+
*
|
|
1246
|
+
* @param user - User ID, identifier, and/or cross-environment transaction UUID.
|
|
1247
|
+
*
|
|
1248
|
+
* @example
|
|
1249
|
+
* ```typescript
|
|
1250
|
+
* tracker.flowStarted({ flowName: "login" });
|
|
1251
|
+
* tracker.setUser({ userId: "usr_123", identifier: "max@example.com" });
|
|
1252
|
+
* tracker.flowFinished({ flowName: "login" });
|
|
1253
|
+
* ```
|
|
1254
|
+
*/
|
|
1255
|
+
setUser(user: UserReference): void;
|
|
1139
1256
|
/**
|
|
1140
1257
|
* Track when you present authentication method choices to the user.
|
|
1141
1258
|
*
|
|
@@ -1160,7 +1277,15 @@ declare class CorbadoTracker {
|
|
|
1160
1277
|
*/
|
|
1161
1278
|
authMethodsDecisionStarted(data: AuthMethodDecisionStarted, tags?: Record<string, string>, experiments?: Record<string, string>, options?: Pick<StepOptions, "explicitTimestamp">): void;
|
|
1162
1279
|
authMethodsDecisionFinished(data: AuthMethodDecisionFinished, tags?: Record<string, string>, experiments?: Record<string, string>): void;
|
|
1280
|
+
/**
|
|
1281
|
+
* @deprecated Use {@link CorbadoTracker.authMethodsDecisionStarted} instead (its `options`
|
|
1282
|
+
* already accept free-form strings).
|
|
1283
|
+
*/
|
|
1163
1284
|
authDecisionStarted(data: AuthDecisionStarted, tags?: Record<string, string>, experiments?: Record<string, string>): void;
|
|
1285
|
+
/**
|
|
1286
|
+
* @deprecated Use {@link CorbadoTracker.authMethodsDecisionFinished} instead (its `options`
|
|
1287
|
+
* already accept free-form strings).
|
|
1288
|
+
*/
|
|
1164
1289
|
authDecisionFinished(data: AuthDecisionFinished, tags?: Record<string, string>, experiments?: Record<string, string>): void;
|
|
1165
1290
|
/**
|
|
1166
1291
|
* Enqueue a "low" event (granular DOM/window/visualviewport/PWM signal) for the current session.
|
|
@@ -1219,17 +1344,17 @@ declare class CorbadoTracker {
|
|
|
1219
1344
|
* @internal
|
|
1220
1345
|
*/
|
|
1221
1346
|
lowEventFlushKeepalive(): void;
|
|
1222
|
-
passkeyLoginFullOperation(): PasskeyLoginOperationFull;
|
|
1347
|
+
passkeyLoginFullOperation(config?: PasskeyLoginOperationConfig): PasskeyLoginOperationFull;
|
|
1223
1348
|
passkeyEnrollmentFullOperation(config?: PasskeyEnrollmentOperationConfig): PasskeyEnrollmentOperationFull;
|
|
1224
|
-
passwordLoginFullOperation(autoTrackConfig?:
|
|
1225
|
-
passwordEnrollmentFullOperation(autoTrackConfig?:
|
|
1226
|
-
emailLinkOperationFull(): EmailLinkOperationFull;
|
|
1349
|
+
passwordLoginFullOperation(autoTrackConfig?: PasswordLoginConfig): PasswordLoginOperationFull;
|
|
1350
|
+
passwordEnrollmentFullOperation(autoTrackConfig?: PasswordEnrollmentConfig): PasswordEnrollmentOperationFull;
|
|
1351
|
+
emailLinkOperationFull(config?: EmailLinkOperationConfig): EmailLinkOperationFull;
|
|
1227
1352
|
emailOtpOperationFull(config?: EmailOTPOperationConfig): EmailOtpOperationFull;
|
|
1228
1353
|
smsOtpOperationFull(config?: SmsOTPOperationConfig): SmsOtpOperationFull;
|
|
1229
1354
|
provideIdentifierOperationFull(config?: OperationFullProvideIdentifierWithCUIConfig): OperationFullProvideIdentifierWithCUI;
|
|
1230
1355
|
provideDataOperationFull(config?: ProvideDataOperationConfig): ProvideDataOperationFull;
|
|
1231
|
-
socialLoginOperationFull(): SocialLoginOperationFull;
|
|
1232
|
-
appConfirmationOperationFull(
|
|
1356
|
+
socialLoginOperationFull(config?: SocialLoginOperationConfig): SocialLoginOperationFull;
|
|
1357
|
+
appConfirmationOperationFull(config?: AppConfirmationOperationConfig): AppConfirmationOperationFull;
|
|
1233
1358
|
captchaOperationFull(config?: CaptchaOperationConfig): CaptchaOperationFull;
|
|
1234
1359
|
/**
|
|
1235
1360
|
* Flush any pending events and release all resources (timers, event listeners).
|
|
@@ -1303,6 +1428,28 @@ interface StorageEngine {
|
|
|
1303
1428
|
setItem<T>(key: string, value: T): void;
|
|
1304
1429
|
removeItem(key: string): void;
|
|
1305
1430
|
}
|
|
1431
|
+
/**
|
|
1432
|
+
* Suffix a storage key or cross-tab lock name with a namespace. One shared helper so keys and the
|
|
1433
|
+
* Web Lock names guarding them can never disagree on the derived name.
|
|
1434
|
+
*/
|
|
1435
|
+
declare function namespacedKey(key: string, namespace: string): string;
|
|
1436
|
+
/**
|
|
1437
|
+
* Wraps a storage engine so every key is suffixed with a fixed namespace (see {@link namespacedKey}).
|
|
1438
|
+
*
|
|
1439
|
+
* @remarks
|
|
1440
|
+
* All trackers use their project id as the namespace: all SDK state flows through the engines
|
|
1441
|
+
* created in the tracker constructor, so wrapping them scopes every persisted key (session, seq,
|
|
1442
|
+
* outbox, config cache, experiments, tab id, client-env handle, debug dumps) in one place. Lock
|
|
1443
|
+
* names are not storage keys and must be scoped separately by the call sites that own them.
|
|
1444
|
+
*/
|
|
1445
|
+
declare class NamespacedStorage implements StorageEngine {
|
|
1446
|
+
private readonly engine;
|
|
1447
|
+
private readonly namespace;
|
|
1448
|
+
constructor(engine: StorageEngine, namespace: string);
|
|
1449
|
+
getItem<T>(key: string): T | null;
|
|
1450
|
+
setItem<T>(key: string, value: T): void;
|
|
1451
|
+
removeItem(key: string): void;
|
|
1452
|
+
}
|
|
1306
1453
|
declare class LocalStorage implements StorageEngine {
|
|
1307
1454
|
private logger;
|
|
1308
1455
|
constructor(logger: Logger);
|
|
@@ -1402,6 +1549,11 @@ interface QueueOptions {
|
|
|
1402
1549
|
onConfigReceived?: (config: SdkReliabilityConfig) => void;
|
|
1403
1550
|
/** Whether to send the opt-in config header on the first flush of this load. Defaults to true. */
|
|
1404
1551
|
requestConfig?: boolean;
|
|
1552
|
+
/**
|
|
1553
|
+
* Web Lock name for the durable outbox, scoped alongside the storage engine's keys (see
|
|
1554
|
+
* {@link EventStore}). Defaults to the shared {@link OUTBOX_LOCK_NAME}.
|
|
1555
|
+
*/
|
|
1556
|
+
outboxLockName?: string;
|
|
1405
1557
|
}
|
|
1406
1558
|
/**
|
|
1407
1559
|
* @remarks When `window` is defined, `visibilitychange` (when the document becomes hidden) and `pagehide`
|
|
@@ -1464,6 +1616,8 @@ declare class RequestQueue {
|
|
|
1464
1616
|
* (config.flushOnFlowTypeFinished).
|
|
1465
1617
|
*/
|
|
1466
1618
|
private priorityFlowTypes;
|
|
1619
|
+
/** Scoped Web Lock name for the durable outbox; undefined = EventStore's shared default. */
|
|
1620
|
+
private outboxLockName?;
|
|
1467
1621
|
private store?;
|
|
1468
1622
|
/**
|
|
1469
1623
|
* Once the server has answered the config request with a 2xx (200 = fresh config cached for the
|
|
@@ -1696,7 +1850,7 @@ declare const DEFAULT_MAX_SERIALIZED_LENGTH: number;
|
|
|
1696
1850
|
*
|
|
1697
1851
|
* @remarks
|
|
1698
1852
|
* 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
|
|
1853
|
+
* (default {@link OUTBOX_LOCK_NAME}) so concurrent tabs sharing the same localStorage cannot interleave
|
|
1700
1854
|
* between the read and the write (which would silently drop the other tab's entries). Where the
|
|
1701
1855
|
* Web Locks API is unavailable the mutation runs unlocked, matching the historical best-effort
|
|
1702
1856
|
* behavior. Mutations never reject; failures are logged.
|
|
@@ -1707,10 +1861,22 @@ declare class EventStore {
|
|
|
1707
1861
|
private readonly logger;
|
|
1708
1862
|
private readonly maxEntries;
|
|
1709
1863
|
private readonly maxSerializedLength;
|
|
1864
|
+
/**
|
|
1865
|
+
* Web Lock name guarding mutations. Must be scoped together with the storage the engine writes
|
|
1866
|
+
* to: a project-scoped outbox key guarded by the shared lock would serialize unrelated trackers,
|
|
1867
|
+
* and a shared key guarded by scoped locks would lose the cross-tab atomicity guarantee.
|
|
1868
|
+
*/
|
|
1869
|
+
private readonly lockName;
|
|
1710
1870
|
private entries;
|
|
1711
1871
|
/** Malformed entries are dropped on every read; report only once per instance to avoid log spam. */
|
|
1712
1872
|
private reportedMalformed;
|
|
1713
|
-
constructor(storage: StorageEngine, logger: Logger, maxEntries?: number, maxSerializedLength?: number
|
|
1873
|
+
constructor(storage: StorageEngine, logger: Logger, maxEntries?: number, maxSerializedLength?: number,
|
|
1874
|
+
/**
|
|
1875
|
+
* Web Lock name guarding mutations. Must be scoped together with the storage the engine writes
|
|
1876
|
+
* to: a project-scoped outbox key guarded by the shared lock would serialize unrelated trackers,
|
|
1877
|
+
* and a shared key guarded by scoped locks would lose the cross-tab atomicity guarantee.
|
|
1878
|
+
*/
|
|
1879
|
+
lockName?: string);
|
|
1714
1880
|
private read;
|
|
1715
1881
|
private mutate;
|
|
1716
1882
|
/** Evict oldest entries until the serialized outbox fits {@link maxSerializedLength}. */
|
|
@@ -1728,7 +1894,13 @@ declare class EventStore {
|
|
|
1728
1894
|
size(): number;
|
|
1729
1895
|
}
|
|
1730
1896
|
|
|
1897
|
+
/**
|
|
1898
|
+
* Create a tracker and make it the default for all package-level helpers.
|
|
1899
|
+
* Each call replaces the default. For multiple projects, retain the returned instances and call
|
|
1900
|
+
* their methods, or construct {@link CorbadoTracker} instances directly without changing the default.
|
|
1901
|
+
*/
|
|
1731
1902
|
declare function init(options: TrackerOptions): CorbadoTracker;
|
|
1903
|
+
/** Return the default tracker from the most recent {@link init} call. */
|
|
1732
1904
|
declare function getTracker(): CorbadoTracker | undefined;
|
|
1733
1905
|
declare function resetSession(): string | undefined;
|
|
1734
1906
|
/**
|
|
@@ -1736,6 +1908,12 @@ declare function resetSession(): string | undefined;
|
|
|
1736
1908
|
* could be established. See {@link CorbadoTracker.getSessionId}.
|
|
1737
1909
|
*/
|
|
1738
1910
|
declare function getSessionId(): string | undefined;
|
|
1911
|
+
/**
|
|
1912
|
+
* Record a user reference for the global tracker's current active flow.
|
|
1913
|
+
* Call after the flow starts and before it finishes; matching has no grace period.
|
|
1914
|
+
* See {@link CorbadoTracker.setUser}.
|
|
1915
|
+
*/
|
|
1916
|
+
declare function setUser(user: UserReference): void;
|
|
1739
1917
|
declare function setExperiment(key: string, variant: string): void;
|
|
1740
1918
|
declare function setExperiments(assignments: Record<string, string>): void;
|
|
1741
1919
|
declare function clearExperiment(key: string): void;
|
|
@@ -1746,4 +1924,4 @@ declare function logInfo(message: string): void;
|
|
|
1746
1924
|
declare function logError(message: string): void;
|
|
1747
1925
|
declare function destroy(): Promise<void>;
|
|
1748
1926
|
|
|
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
|
|
1927
|
+
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 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 };
|