@corbado/observe 1.8.0 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analysis/client.mjs +82 -56
- package/dist/analysis/config-manager.mjs +172 -18
- package/dist/analysis/config.mjs +12 -4
- package/dist/analysis/device-info-manager.mjs +16 -1
- package/dist/analysis/device.mjs +88 -10
- package/dist/analysis/handoff.mjs +7 -0
- package/dist/analysis/low-events/grouped-input-tracker.mjs +148 -33
- package/dist/analysis/low-events/input-tracker.mjs +138 -59
- package/dist/analysis/low-events/shared-window-observer.mjs +148 -77
- package/dist/analysis/low-events/viewport-batcher.mjs +3 -3
- package/dist/analysis/queue.mjs +75 -8
- package/dist/analysis/{low-events/input-paste-observer.mjs → readers/input-paste.mjs} +2 -2
- package/dist/analysis/readers/input.mjs +61 -0
- package/dist/analysis/readers/loader-global.mjs +15 -0
- package/dist/analysis/readers/network.mjs +14 -0
- package/dist/analysis/readers/page.mjs +30 -0
- package/dist/analysis/readers/storage.mjs +28 -0
- package/dist/analysis/{utils → readers}/web-lock.mjs +6 -2
- package/dist/analysis/readers/window-events.mjs +48 -0
- package/dist/analysis/storage/index.mjs +61 -9
- package/dist/analysis/store/event-store.mjs +34 -16
- package/dist/analysis/transports/fetch.mjs +45 -3
- package/dist/analysis/utils/email-link-operation-full.mjs +22 -2
- package/dist/analysis/utils/email-otp-operation-full.mjs +0 -1
- package/dist/analysis/utils/form-operation-full.mjs +0 -1
- package/dist/analysis/utils/operation-full-provide-identifier-with-cui.mjs +6 -6
- package/dist/analysis/utils/passkey-enrollment-operation-full.mjs +9 -6
- package/dist/analysis/utils/passkey-login-operation-full.mjs +10 -5
- package/dist/analysis/utils/password-login-operation-full.mjs +8 -4
- package/dist/analysis/utils/password-manager-sampler.mjs +44 -4
- package/dist/analysis/utils/sms-otp-operation-full.mjs +0 -1
- package/dist/analysis/utils/totp-operation-full.mjs +0 -1
- package/dist/analysis/version.mjs +1 -1
- package/dist/cdn/script.global.js +4 -4
- package/dist/index.d.mts +151 -26
- package/dist/index.d.ts +151 -26
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +5 -3
- package/tools/reader-meta-text.d.mts +2 -0
- package/tools/reader-meta-text.mjs +26 -0
- package/tools/strip-reader-meta.d.mts +33 -0
- package/tools/strip-reader-meta.mjs +131 -0
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
* derive the collection manifest of a build, so a call removed by dead-code elimination also
|
|
9
9
|
* removes its item from the manifest.
|
|
10
10
|
*
|
|
11
|
-
* Vocabulary follows the collection manifest data model v1 (`corbado.collection/v1`).
|
|
11
|
+
* Vocabulary follows the collection manifest data model v1 (`corbado.collection/v1`). Call sites with the
|
|
12
|
+
* same `key` describe one item (the extractor merges them). `title`, `group` and `origin` are optional in
|
|
13
|
+
* the type (additive); every SDK call site declares them (`scripts/check-browser-globals.mjs` enforces it).
|
|
12
14
|
*
|
|
13
15
|
* @internal
|
|
14
16
|
*/
|
|
@@ -47,13 +49,36 @@ type ReaderField = {
|
|
|
47
49
|
path: string;
|
|
48
50
|
exposure: ReaderExposure;
|
|
49
51
|
transform?: ReaderTransform;
|
|
52
|
+
/**
|
|
53
|
+
* Customer-readable label of the field: WHAT it is, in plain language (not why it is collected), e.g.
|
|
54
|
+
* `Operating system version`. Same rule as `title` (`customerTextProblem`); the panel shows it instead of
|
|
55
|
+
* the path. Every SDK field declares one (`scripts/check-browser-globals.mjs` enforces it).
|
|
56
|
+
*/
|
|
57
|
+
label?: string;
|
|
50
58
|
};
|
|
51
59
|
/** Build-time data switch a reader item depends on (see `FixedDataConfig`). */
|
|
52
60
|
type ReaderDataConfigKey = "pmd" | "privateMode";
|
|
61
|
+
/**
|
|
62
|
+
* Where a collected value comes from: `observe-external` = the user's page or browser;
|
|
63
|
+
* `observe-internal` = written or generated by Observe itself (own `cbo_*` storage, loader globals,
|
|
64
|
+
* generated ids, own endpoints); `host-config` = provided by the customer's integration.
|
|
65
|
+
*/
|
|
66
|
+
type ReaderOrigin = "observe-external" | "observe-internal" | "host-config";
|
|
53
67
|
/** Literal metadata passed to every reader call. */
|
|
54
68
|
type ReaderMeta = {
|
|
55
69
|
/** Stable item key `<kind>:<namespace>.<name>`, e.g. `browser-api:device.webdriver`. */
|
|
56
70
|
key: string;
|
|
71
|
+
/**
|
|
72
|
+
* Customer-readable title of the item: plain language for a customer's PM or security owner, no API names,
|
|
73
|
+
* globals, config keys or code (`scripts/check-browser-globals.mjs` enforces it).
|
|
74
|
+
*/
|
|
75
|
+
title?: string;
|
|
76
|
+
/** Technical detail behind the title: the browser APIs, globals, events or keys the reader touches. */
|
|
77
|
+
accessNote?: string;
|
|
78
|
+
/** Customer-facing group label (fixed per SDK reader), e.g. `Device information`. */
|
|
79
|
+
group?: string;
|
|
80
|
+
/** Where the value comes from (see {@link ReaderOrigin}). */
|
|
81
|
+
origin?: ReaderOrigin;
|
|
57
82
|
/** Fields the reader makes reachable; everything else read stays inside the reader. */
|
|
58
83
|
fields: readonly ReaderField[];
|
|
59
84
|
/** The data switch that removes this item from builds that turn it off. */
|
|
@@ -674,7 +699,7 @@ interface SdkReliabilityConfig {
|
|
|
674
699
|
/**
|
|
675
700
|
* Data-collection switches fixed by the integration instead of the server config (opt-in, see
|
|
676
701
|
* `TrackerOptions.fixedDataConfig`). Once given, these fields are no longer taken from the server's
|
|
677
|
-
* config or the cached `
|
|
702
|
+
* config or the cached `cbo_sdk_config_cache`; a field left out resolves as documented on the field (`pmd`:
|
|
678
703
|
* off, `privateMode`: on), not from the server config.
|
|
679
704
|
*
|
|
680
705
|
* Builds can fix the same switches at build time with the esbuild/tsup defines `__CBO_DATA_PMD__` and
|
|
@@ -1034,9 +1059,7 @@ declare class SharedWindowObserver {
|
|
|
1034
1059
|
/** Flush all registered input batches before a high-level lifecycle boundary. */
|
|
1035
1060
|
flushInputs(): void;
|
|
1036
1061
|
private emit;
|
|
1037
|
-
private listen;
|
|
1038
1062
|
private extendViewport;
|
|
1039
|
-
private observeNavigation;
|
|
1040
1063
|
destroy(): void;
|
|
1041
1064
|
}
|
|
1042
1065
|
|
|
@@ -1069,6 +1092,7 @@ declare class NamespacedStorage implements StorageEngine {
|
|
|
1069
1092
|
}
|
|
1070
1093
|
declare class LocalStorage implements StorageEngine {
|
|
1071
1094
|
private logger;
|
|
1095
|
+
private readonly area;
|
|
1072
1096
|
constructor(logger: Logger);
|
|
1073
1097
|
/**
|
|
1074
1098
|
* Error situations:
|
|
@@ -1094,6 +1118,7 @@ declare class LocalStorage implements StorageEngine {
|
|
|
1094
1118
|
declare class CookieStorage implements StorageEngine {
|
|
1095
1119
|
private logger;
|
|
1096
1120
|
private domain?;
|
|
1121
|
+
private readonly jar;
|
|
1097
1122
|
constructor(logger: Logger, domain?: string | undefined);
|
|
1098
1123
|
/**
|
|
1099
1124
|
* Error situations:
|
|
@@ -1119,6 +1144,7 @@ declare class CookieStorage implements StorageEngine {
|
|
|
1119
1144
|
}
|
|
1120
1145
|
declare class SessionStorage implements StorageEngine {
|
|
1121
1146
|
private logger;
|
|
1147
|
+
private readonly area;
|
|
1122
1148
|
constructor(logger: Logger);
|
|
1123
1149
|
/**
|
|
1124
1150
|
* Error situations:
|
|
@@ -1142,6 +1168,55 @@ declare class SessionStorage implements StorageEngine {
|
|
|
1142
1168
|
removeItem(key: string): void;
|
|
1143
1169
|
}
|
|
1144
1170
|
|
|
1171
|
+
declare const INPUT_HANDOFF: unique symbol;
|
|
1172
|
+
declare const WEBAUTHN_PAYLOAD_HANDOFF: unique symbol;
|
|
1173
|
+
declare const WEBAUTHN_ERROR_HANDOFF: unique symbol;
|
|
1174
|
+
/**
|
|
1175
|
+
* An input element released to the SDK input tracking only (e.g. by `@corbado/autocapture`'s
|
|
1176
|
+
* `dom.handoff`). Opaque: it has no readable members, so project code cannot inspect the element
|
|
1177
|
+
* without a cast. Pass it straight to an `inputHtmlField` / `inputHtmlFields` /
|
|
1178
|
+
* `identifierInputHtmlField` option or to `setInputFields`. At runtime it is the element itself.
|
|
1179
|
+
*/
|
|
1180
|
+
type SdkInputHandoff = {
|
|
1181
|
+
readonly [INPUT_HANDOFF]: "sdk:input-tracking";
|
|
1182
|
+
};
|
|
1183
|
+
/**
|
|
1184
|
+
* Sanitized WebAuthn payload JSON released to the SDK passkey operation APIs only (e.g. by
|
|
1185
|
+
* `@corbado/autocapture`'s `webauthnPayload`). Opaque: it has no readable members. Pass it straight to
|
|
1186
|
+
* `assertionOptions`, `assertionResponse`, `attestationOptions` or `attestationResponse`. At runtime it
|
|
1187
|
+
* is the JSON string itself.
|
|
1188
|
+
*/
|
|
1189
|
+
type SdkWebAuthnPayload = {
|
|
1190
|
+
readonly [WEBAUTHN_PAYLOAD_HANDOFF]: "sdk:webauthn-payload";
|
|
1191
|
+
};
|
|
1192
|
+
/**
|
|
1193
|
+
* The unchanged WebAuthn ceremony rejection released to the SDK ceremony error API only (e.g. by
|
|
1194
|
+
* `@corbado/autocapture`'s `webauthnError`). Opaque: it has no readable members. Pass it straight to a
|
|
1195
|
+
* step's `error(error)`, which accepts any value. At runtime it is the rejection itself.
|
|
1196
|
+
*/
|
|
1197
|
+
type SdkWebAuthnError = {
|
|
1198
|
+
readonly [WEBAUTHN_ERROR_HANDOFF]: "sdk:webauthn-error";
|
|
1199
|
+
};
|
|
1200
|
+
type InputHandoffKey = "inputHtmlField" | "identifierInputHtmlField";
|
|
1201
|
+
type InputListHandoffKey = "inputHtmlFields";
|
|
1202
|
+
type PayloadHandoffKey = "assertionOptions" | "assertionResponse" | "attestationOptions" | "attestationResponse";
|
|
1203
|
+
/**
|
|
1204
|
+
* `T` with its input-element and WebAuthn payload options widened to also take the opaque handoffs.
|
|
1205
|
+
* Used only by the additive handoff overloads; the original option types are unchanged.
|
|
1206
|
+
*/
|
|
1207
|
+
type WithHandoffs<T> = {
|
|
1208
|
+
[K in keyof T]: K extends InputHandoffKey ? T[K] | SdkInputHandoff : K extends InputListHandoffKey ? T[K] | readonly (HTMLInputElement | SdkInputHandoff)[] : K extends PayloadHandoffKey ? T[K] | SdkWebAuthnPayload : T[K];
|
|
1209
|
+
};
|
|
1210
|
+
/**
|
|
1211
|
+
* A step whose `start` / `finished` also take the opaque handoffs (additive overloads). The
|
|
1212
|
+
* {@link StepHelper} signatures stay as they are and come last, so `Parameters<…>` and existing
|
|
1213
|
+
* assignments to `StepHelper` resolve exactly as before.
|
|
1214
|
+
*/
|
|
1215
|
+
type HandoffStepHelper<TStart = {}, TFinished = {}, TTypedError = never> = {
|
|
1216
|
+
start(data: WithHandoffs<TStart>, options?: StepOptions): void;
|
|
1217
|
+
finished(data: WithHandoffs<TFinished>, options?: StepOptions): void;
|
|
1218
|
+
} & StepHelper<TStart, TFinished, TTypedError>;
|
|
1219
|
+
|
|
1145
1220
|
type PasskeyOperationLoginExplicitSpecType = "passkey-cui" | "passkey-known-identifier" | "passkey-no-identifier"
|
|
1146
1221
|
/**
|
|
1147
1222
|
* The `-auto` variants are the same two ceremonies started by the integration rather than by a
|
|
@@ -1185,9 +1260,9 @@ type PasskeyLoginOperationConfig = {
|
|
|
1185
1260
|
explicitSpecType?: PasskeyOperationLoginExplicitSpecType;
|
|
1186
1261
|
};
|
|
1187
1262
|
declare class PasskeyLoginOperationFull extends OperationFull {
|
|
1188
|
-
readonly getOptions:
|
|
1189
|
-
readonly ceremony:
|
|
1190
|
-
readonly postResponse:
|
|
1263
|
+
readonly getOptions: HandoffStepHelper<PasskeyLoginGetOptionsStart, PasskeyLoginGetOptionsFinished>;
|
|
1264
|
+
readonly ceremony: HandoffStepHelper<PasskeyLoginCeremonyStart, PasskeyLoginCeremonyFinished>;
|
|
1265
|
+
readonly postResponse: HandoffStepHelper<PasskeyLoginPostResponseStart>;
|
|
1191
1266
|
private lowEventTracker;
|
|
1192
1267
|
constructor(tracker: CorbadoTracker, config?: PasskeyLoginOperationConfig);
|
|
1193
1268
|
/**
|
|
@@ -1219,7 +1294,11 @@ declare class EmailOtpOperationFull extends OperationFull {
|
|
|
1219
1294
|
readonly postResponse: StepHelper<EmailOTPOperationPostResponseStart>;
|
|
1220
1295
|
readonly resend: StepHelper;
|
|
1221
1296
|
constructor(tracker: CorbadoTracker, config?: EmailOTPOperationConfig);
|
|
1222
|
-
/**
|
|
1297
|
+
/**
|
|
1298
|
+
* Rebind the ordered OTP group without starting a new subflow. An empty list detaches it.
|
|
1299
|
+
* Also takes opaque {@link SdkInputHandoff}s (additive overload); at runtime they are the input elements.
|
|
1300
|
+
*/
|
|
1301
|
+
setInputFields(fields: readonly (HTMLInputElement | SdkInputHandoff)[]): void;
|
|
1223
1302
|
setInputFields(fields: readonly HTMLInputElement[]): void;
|
|
1224
1303
|
destroy(): void;
|
|
1225
1304
|
}
|
|
@@ -1240,7 +1319,11 @@ declare class SmsOtpOperationFull extends OperationFull {
|
|
|
1240
1319
|
readonly postResponse: StepHelper<SmsOTPOperationPostResponseStart>;
|
|
1241
1320
|
readonly resend: StepHelper;
|
|
1242
1321
|
constructor(tracker: CorbadoTracker, config?: SmsOTPOperationConfig);
|
|
1243
|
-
/**
|
|
1322
|
+
/**
|
|
1323
|
+
* Rebind the ordered OTP group without starting a new subflow. An empty list detaches it.
|
|
1324
|
+
* Also takes opaque {@link SdkInputHandoff}s (additive overload); at runtime they are the input elements.
|
|
1325
|
+
*/
|
|
1326
|
+
setInputFields(fields: readonly (HTMLInputElement | SdkInputHandoff)[]): void;
|
|
1244
1327
|
setInputFields(fields: readonly HTMLInputElement[]): void;
|
|
1245
1328
|
destroy(): void;
|
|
1246
1329
|
}
|
|
@@ -1307,6 +1390,7 @@ declare class EmailLinkContinuationOperation extends OperationFull {
|
|
|
1307
1390
|
private started;
|
|
1308
1391
|
private deferred;
|
|
1309
1392
|
private readonly onPageHide;
|
|
1393
|
+
private removePageHide?;
|
|
1310
1394
|
constructor(tracker: CorbadoTracker, config?: EmailLinkContinuationConfig);
|
|
1311
1395
|
/** Transaction ID of the continued email link, when known. */
|
|
1312
1396
|
get transactionId(): string | undefined;
|
|
@@ -1377,9 +1461,9 @@ type PasskeyEnrollmentOperationConfig = {
|
|
|
1377
1461
|
ignoreAsInteraction?: boolean;
|
|
1378
1462
|
};
|
|
1379
1463
|
declare class PasskeyEnrollmentOperationFull extends OperationFull {
|
|
1380
|
-
readonly getOptions:
|
|
1381
|
-
readonly ceremony:
|
|
1382
|
-
readonly postResponse:
|
|
1464
|
+
readonly getOptions: HandoffStepHelper<PasskeyEnrollmentGetOptionsStart, PasskeyEnrollmentGetOptionsFinished>;
|
|
1465
|
+
readonly ceremony: HandoffStepHelper<PasskeyEnrollmentCeremonyStart, PasskeyEnrollmentCeremonyFinished>;
|
|
1466
|
+
readonly postResponse: HandoffStepHelper<PasskeyEnrollmentPostResponseStart>;
|
|
1383
1467
|
private lowEventTracker;
|
|
1384
1468
|
constructor(tracker: CorbadoTracker, config?: PasskeyEnrollmentOperationConfig);
|
|
1385
1469
|
destroy(): void;
|
|
@@ -1447,8 +1531,8 @@ declare class PasswordLoginOperationFull extends OperationFull {
|
|
|
1447
1531
|
* attributed to password-login rather than a separate subflow.
|
|
1448
1532
|
*/
|
|
1449
1533
|
readonly cui: {
|
|
1450
|
-
getOptions:
|
|
1451
|
-
ceremony:
|
|
1534
|
+
getOptions: HandoffStepHelper<PasswordLoginCUIGetOptionsStart, PasswordLoginCUIGetOptionsFinished>;
|
|
1535
|
+
ceremony: HandoffStepHelper<PasswordLoginCUICeremonyStart, PasskeyLoginCeremonyFinished, PasswordLoginCUITypedError>;
|
|
1452
1536
|
postResponse: StepHelper;
|
|
1453
1537
|
};
|
|
1454
1538
|
private lowEventTracker?;
|
|
@@ -1511,9 +1595,9 @@ declare class OperationFullProvideIdentifierWithCUI extends OperationFull {
|
|
|
1511
1595
|
* @deprecated `subflow_trigger` will be removed in the next major version.
|
|
1512
1596
|
*/
|
|
1513
1597
|
trigger: (data: SubflowTrigger, options?: StepOptions) => void;
|
|
1514
|
-
getOptions:
|
|
1515
|
-
ceremony:
|
|
1516
|
-
postResponse:
|
|
1598
|
+
getOptions: HandoffStepHelper<PasskeyLoginCUIGetOptionsStart, PasskeyLoginCUIGetOptionsFinished>;
|
|
1599
|
+
ceremony: HandoffStepHelper<CUICeremonyStart, PasskeyLoginCeremonyFinished, PasskeyLoginCUITypedError>;
|
|
1600
|
+
postResponse: HandoffStepHelper<PasskeyLoginPostResponseStart>;
|
|
1517
1601
|
};
|
|
1518
1602
|
readonly provideIdentifier: {
|
|
1519
1603
|
/**
|
|
@@ -1593,7 +1677,11 @@ declare class TotpOperationFull extends OperationFull {
|
|
|
1593
1677
|
private lowEventTracker?;
|
|
1594
1678
|
readonly postResponse: StepHelper<TotpOperationPostResponseStart>;
|
|
1595
1679
|
constructor(tracker: CorbadoTracker, config?: TotpOperationConfig);
|
|
1596
|
-
/**
|
|
1680
|
+
/**
|
|
1681
|
+
* Rebind the ordered code input group without starting a new subflow. An empty list detaches it.
|
|
1682
|
+
* Also takes opaque {@link SdkInputHandoff}s (additive overload); at runtime they are the input elements.
|
|
1683
|
+
*/
|
|
1684
|
+
setInputFields(fields: readonly (HTMLInputElement | SdkInputHandoff)[]): void;
|
|
1597
1685
|
setInputFields(fields: readonly HTMLInputElement[]): void;
|
|
1598
1686
|
destroy(): void;
|
|
1599
1687
|
}
|
|
@@ -1670,7 +1758,11 @@ declare class FormOperationFull extends OperationFull {
|
|
|
1670
1758
|
readonly skip: StepHelper;
|
|
1671
1759
|
private readonly inputBinding?;
|
|
1672
1760
|
constructor(tracker: CorbadoTracker, config: FormOperationConfig);
|
|
1673
|
-
/**
|
|
1761
|
+
/**
|
|
1762
|
+
* Bind the fields the form shows now, without starting a new subflow. An empty list detaches all.
|
|
1763
|
+
* Also takes opaque {@link SdkInputHandoff}s (additive overload); at runtime they are the input elements.
|
|
1764
|
+
*/
|
|
1765
|
+
setInputFields(fields: readonly (HTMLInputElement | SdkInputHandoff)[]): void;
|
|
1674
1766
|
setInputFields(fields: readonly HTMLInputElement[]): void;
|
|
1675
1767
|
destroy(): void;
|
|
1676
1768
|
}
|
|
@@ -1764,7 +1856,7 @@ interface TrackerOptions {
|
|
|
1764
1856
|
sdkConfig?: SdkReliabilityConfigOverrides;
|
|
1765
1857
|
/**
|
|
1766
1858
|
* Opt-in: fix the data-collection switches (password-manager and private-mode detection) instead of
|
|
1767
|
-
* taking them from the server config or the cached `
|
|
1859
|
+
* taking them from the server config or the cached `cbo_sdk_config_cache`. Batches then carry
|
|
1768
1860
|
* `meta.fixedData: true`. Omitted (default): unchanged, server-driven behaviour. See {@link FixedDataConfig}.
|
|
1769
1861
|
*/
|
|
1770
1862
|
fixedDataConfig?: FixedDataConfig;
|
|
@@ -2367,7 +2459,11 @@ declare class CorbadoTracker {
|
|
|
2367
2459
|
* ```
|
|
2368
2460
|
*/
|
|
2369
2461
|
passkeyDeletionOperationFull(config?: PasskeyDeletionOperationConfig): PasskeyDeletionOperationFull;
|
|
2462
|
+
/** Also accepts an opaque `SdkInputHandoff` wherever the config takes an input element (additive overload). */
|
|
2463
|
+
passwordLoginFullOperation(autoTrackConfig?: WithHandoffs<PasswordLoginConfig>): PasswordLoginOperationFull;
|
|
2370
2464
|
passwordLoginFullOperation(autoTrackConfig?: PasswordLoginConfig): PasswordLoginOperationFull;
|
|
2465
|
+
/** Also accepts an opaque `SdkInputHandoff` wherever the config takes an input element (additive overload). */
|
|
2466
|
+
passwordEnrollmentFullOperation(autoTrackConfig?: WithHandoffs<PasswordEnrollmentConfig>): PasswordEnrollmentOperationFull;
|
|
2371
2467
|
passwordEnrollmentFullOperation(autoTrackConfig?: PasswordEnrollmentConfig): PasswordEnrollmentOperationFull;
|
|
2372
2468
|
emailLinkOperationFull(config?: EmailLinkOperationConfig): EmailLinkOperationFull;
|
|
2373
2469
|
/**
|
|
@@ -2376,7 +2472,11 @@ declare class CorbadoTracker {
|
|
|
2376
2472
|
* the backend joins to page 1 through the transaction ID. See {@link EmailLinkContinuationOperation}.
|
|
2377
2473
|
*/
|
|
2378
2474
|
continueEmailLinkOperation(config?: EmailLinkContinuationConfig): EmailLinkContinuationOperation;
|
|
2475
|
+
/** Also accepts an opaque `SdkInputHandoff` wherever the config takes an input element (additive overload). */
|
|
2476
|
+
emailOtpOperationFull(config?: WithHandoffs<EmailOTPOperationConfig>): EmailOtpOperationFull;
|
|
2379
2477
|
emailOtpOperationFull(config?: EmailOTPOperationConfig): EmailOtpOperationFull;
|
|
2478
|
+
/** Also accepts an opaque `SdkInputHandoff` wherever the config takes an input element (additive overload). */
|
|
2479
|
+
smsOtpOperationFull(config?: WithHandoffs<SmsOTPOperationConfig>): SmsOtpOperationFull;
|
|
2380
2480
|
smsOtpOperationFull(config?: SmsOTPOperationConfig): SmsOtpOperationFull;
|
|
2381
2481
|
/**
|
|
2382
2482
|
* Track a code from an authenticator app (TOTP) through its verification.
|
|
@@ -2392,9 +2492,16 @@ declare class CorbadoTracker {
|
|
|
2392
2492
|
* totp.postResponse.start({});
|
|
2393
2493
|
* totp.postResponse.finished({});
|
|
2394
2494
|
* ```
|
|
2495
|
+
*
|
|
2496
|
+
* Also accepts an opaque `SdkInputHandoff` wherever the config takes an input element (additive overload).
|
|
2395
2497
|
*/
|
|
2498
|
+
totpOperationFull(config?: WithHandoffs<TotpOperationConfig>): TotpOperationFull;
|
|
2396
2499
|
totpOperationFull(config?: TotpOperationConfig): TotpOperationFull;
|
|
2500
|
+
/** Also accepts an opaque `SdkInputHandoff` wherever the config takes an input element (additive overload). */
|
|
2501
|
+
provideIdentifierOperationFull(config?: WithHandoffs<OperationFullProvideIdentifierWithCUIConfig>): OperationFullProvideIdentifierWithCUI;
|
|
2397
2502
|
provideIdentifierOperationFull(config?: OperationFullProvideIdentifierWithCUIConfig): OperationFullProvideIdentifierWithCUI;
|
|
2503
|
+
/** Also accepts an opaque `SdkInputHandoff` wherever the config takes an input element (additive overload). */
|
|
2504
|
+
provideDataOperationFull(config?: WithHandoffs<ProvideDataOperationConfig>): ProvideDataOperationFull;
|
|
2398
2505
|
provideDataOperationFull(config?: ProvideDataOperationConfig): ProvideDataOperationFull;
|
|
2399
2506
|
/**
|
|
2400
2507
|
* Track one form: a page, step or modal where the user provides one coherent set of data and submits
|
|
@@ -2421,7 +2528,10 @@ declare class CorbadoTracker {
|
|
|
2421
2528
|
* form.submit.error(error);
|
|
2422
2529
|
* }
|
|
2423
2530
|
* ```
|
|
2531
|
+
*
|
|
2532
|
+
* Also accepts an opaque `SdkInputHandoff` wherever the config takes an input element (additive overload).
|
|
2424
2533
|
*/
|
|
2534
|
+
formOperationFull(config: WithHandoffs<FormOperationConfig>): FormOperationFull;
|
|
2425
2535
|
formOperationFull(config: FormOperationConfig): FormOperationFull;
|
|
2426
2536
|
/**
|
|
2427
2537
|
* Track a social login with an external provider (e.g. Google, Apple).
|
|
@@ -2758,6 +2868,8 @@ declare class RequestQueue {
|
|
|
2758
2868
|
private dirtySinceSyncFlush;
|
|
2759
2869
|
private onVisibilityChange;
|
|
2760
2870
|
private onPageHide;
|
|
2871
|
+
private removeVisibilityChange;
|
|
2872
|
+
private removePageHide;
|
|
2761
2873
|
private readonly batchSize;
|
|
2762
2874
|
private readonly flushIntervalOverride?;
|
|
2763
2875
|
private readonly debug;
|
|
@@ -2944,8 +3056,17 @@ declare class RequestQueue {
|
|
|
2944
3056
|
destroy(): void;
|
|
2945
3057
|
}
|
|
2946
3058
|
|
|
2947
|
-
/**
|
|
3059
|
+
/** Config cache of older SDKs: read as a stale fallback until the first {@link CONFIG_CACHE_STORAGE_KEY} write. */
|
|
2948
3060
|
declare const CONFIG_STORAGE_KEY = "cbo_sdk_config";
|
|
3061
|
+
/** Last-known server config with its source endpoint and freshness, written as one record. */
|
|
3062
|
+
declare const CONFIG_CACHE_STORAGE_KEY = "cbo_sdk_config_cache";
|
|
3063
|
+
/** Full config request URL, wall-clock epoch ms of the fetch and of when the config goes stale, and the config. */
|
|
3064
|
+
interface ConfigCacheRecord {
|
|
3065
|
+
endpoint: string;
|
|
3066
|
+
fetchedAt: number;
|
|
3067
|
+
expiresAt: number;
|
|
3068
|
+
config: SdkReliabilityConfig;
|
|
3069
|
+
}
|
|
2949
3070
|
/**
|
|
2950
3071
|
* Opt-in request header that asks the events endpoint to return the SDK reliability config. Its value
|
|
2951
3072
|
* is the config version the SDK is currently running, or "1" when none is cached yet. The server
|
|
@@ -3003,7 +3124,7 @@ declare const CONFIG_BOUNDS: {
|
|
|
3003
3124
|
declare const DEFAULT_SESSION_INACTIVITY_MS: number;
|
|
3004
3125
|
/**
|
|
3005
3126
|
* Defaults used until a valid injected, cached, or fetched config is available.
|
|
3006
|
-
* Delivery-reliability features start OFF. Last-known remote config
|
|
3127
|
+
* Delivery-reliability features start OFF. Last-known remote config stays active until a refresh succeeds.
|
|
3007
3128
|
* Init overrides win per field; a complete override bypasses remote fetching and caching.
|
|
3008
3129
|
*/
|
|
3009
3130
|
declare const DEFAULT_RELIABILITY_CONFIG: SdkReliabilityConfig;
|
|
@@ -3036,10 +3157,14 @@ type ResolvedFixedDataConfig = Required<FixedDataConfig> & {
|
|
|
3036
3157
|
* @internal
|
|
3037
3158
|
*/
|
|
3038
3159
|
declare function resolveFixedDataConfig(raw: unknown): ResolvedFixedDataConfig | undefined;
|
|
3039
|
-
/**
|
|
3160
|
+
/** The cached record with a valid config, or `null`. Its endpoint and times are as stored (unvalidated). */
|
|
3161
|
+
declare function loadConfigRecord(storage: StorageEngine): (Partial<Omit<ConfigCacheRecord, "config">> & {
|
|
3162
|
+
config: SdkReliabilityConfig;
|
|
3163
|
+
}) | null;
|
|
3164
|
+
/** The cached config: the record's, else an older SDK's, or `null` if absent/invalid. */
|
|
3040
3165
|
declare function loadCachedConfig(storage: StorageEngine): SdkReliabilityConfig | null;
|
|
3041
|
-
/**
|
|
3042
|
-
declare function
|
|
3166
|
+
/** One write: a failed write leaves the previous record intact. */
|
|
3167
|
+
declare function cacheConfigRecord(storage: StorageEngine, record: ConfigCacheRecord): void;
|
|
3043
3168
|
|
|
3044
3169
|
/** A persisted, not-yet-acknowledged event awaiting delivery. */
|
|
3045
3170
|
interface OutboxEntry<T = Event> {
|
|
@@ -3214,4 +3339,4 @@ declare function logInfo(message: string): void;
|
|
|
3214
3339
|
declare function logError(message: string): void;
|
|
3215
3340
|
declare function destroy(): Promise<void>;
|
|
3216
3341
|
|
|
3217
|
-
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 EmailLinkContinuationConfig, EmailLinkContinuationOperation, type EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type ErrorStepOptions, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FixedDataConfig, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowHandle, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type FormOperationConfig, FormOperationFull, type JavaScriptHighEntropy, type KeyOperationConfig, KeyRegistrationOperationFull, KeySigningOperationFull, LocalStorage, type Logger, type LowEvent, type LowEventFieldRole, type LowEventInitiator, type LowEventInputEffect, type LowEventSourceKind, type MultiFlowReset, type MultiFlowStarted, NamespacedStorage, type NormalizedError, OUTBOX_LOCK_NAME, OUTBOX_STORAGE_KEY, type ObserveSdkConfigSnapshot, OperationFull, OperationFullProvideIdentifierWithCUI, type OperationFullProvideIdentifierWithCUIConfig, type OutboxEntry, PROBE_BATCH_MAX_BYTES, PROBE_BATCH_MAX_ITEMS, PROBE_PAYLOAD_MAX_BYTES, PROBE_QUEUE_MAX_BYTES, PROBE_QUEUE_MAX_ITEMS, type PasskeyDeletionDeletionTypedError, type PasskeyDeletionOperationConfig, PasskeyDeletionOperationFull, type PasskeyDeletionUserConfirmationTypedError, type PasskeyEnrollmentCeremonyFinished, type PasskeyEnrollmentCeremonyStart, type PasskeyEnrollmentGetOptionsFinished, type PasskeyEnrollmentGetOptionsStart, type PasskeyEnrollmentOperationConfig, PasskeyEnrollmentOperationFull, type PasskeyEnrollmentPostResponseStart, type PasskeyLoginCUIGetOptionsFinished, type PasskeyLoginCUIGetOptionsStart, type PasskeyLoginCUISpecType, type PasskeyLoginCeremonyFinished, type PasskeyLoginCeremonyStart, type PasskeyLoginClientError, type PasskeyLoginFinish, type PasskeyLoginGetOptionsFinished, type PasskeyLoginGetOptionsStart, type PasskeyLoginOperationConfig, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, type PasswordLoginConfig, type PasswordLoginExplicitSpecType, PasswordLoginOperationFull, type PasswordLoginTypedError, type PasswordManagerExtension, type PasswordManagerExtensionName, type PredefinedEvent, type ProbeContext, type ProbeEntry, type ProbeInput, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RAW_ERROR_BOUNDS, READER_EXPOSURES, type RawErrorEnvelope, type ReaderDataConfigKey, type ReaderExposure, type ReaderField, type ReaderMeta, type ReaderTransform, RequestQueue, type ResolvedFixedDataConfig, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkReliabilityConfig, type SdkReliabilityConfigOverrides, type SdkRetryConfig, type SerializeRawErrorOptions, SessionStorage, type SetFlowTagsOptions, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginEntry, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type SourcePathQueryMode, type SsoLoginExchangeCodeFinished, type SsoLoginExchangeCodeStart, type SsoLoginGetRedirectUrlFinished, type SsoLoginGetRedirectUrlStart, type SsoLoginOperationConfig, SsoLoginOperationFull, type SsoLoginSpecType, type StandaloneDeviceInfoSource, type StepHelper, type StepIdentifier, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TotpOperationConfig, TotpOperationFull, type TotpOperationPostResponseStart, type TotpOperationSpecType, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type TrustedDeviceBindingMetadata, type TrustedDeviceCheckConfig, TrustedDeviceCheckOperationFull, type TrustedDeviceCheckResult, type TrustedDeviceCheckStepResult, type TrustedDeviceCheckTypedError, TrustedDeviceEnrollmentOperationFull, type TrustedDeviceEnrollmentResult, type TrustedDeviceOperationConfig, type TrustedDevicePurpose, type TrustedDeviceStorage, UNLOAD_BUDGET_BYTES, UNLOAD_PROBE_MAX_BYTES, type UserReference, type WebAuthnIdentifierProjector, type WebAuthnIdentifierProjectors,
|
|
3342
|
+
export { type AppConfirmationOperationCeremonyTypedError, type AppConfirmationOperationConfig, AppConfirmationOperationFull, type AppConfirmationOperationRetryReason, type AppConfirmationOperationSpecType, type AppConfirmationOperationStart, type AuthDecisionFinished, type AuthDecisionStarted, AuthEventName, type AuthMethodDecisionFinished, type AuthMethodDecisionStarted, type AuthMethodType, type BaseEvent, CEREMONY_LOW_EVENT_TAIL_MS, CONFIG_BOUNDS, CONFIG_CACHE_STORAGE_KEY, CONFIG_REQUEST_HEADER, CONFIG_STORAGE_KEY, type CaptchaOperationConfig, CaptchaOperationFull, type CaptchaOperationSpecType, type ClientCapabilities, type ClientEnvHandleMeta, type ClientEnvHandleMetaSource, type ConfigCacheRecord, type Conversion, CookieStorage, CorbadoTracker, type CreateLoggerOptions, type CustomEvent, DEFAULT_DEVICE_INFO_COLLECTOR_TIMEOUT_MS, DEFAULT_FLUSH_INTERVAL_MS, DEFAULT_MAX_ENTRIES, DEFAULT_MAX_SERIALIZED_LENGTH, DEFAULT_RELIABILITY_CONFIG, DEFAULT_SEQ_LOCK_TIMEOUT_MS, DEFAULT_SESSION_INACTIVITY_MS, type DeviceInfo, type DeviceInfoCollectionError, type DeviceInfoDataWeb, type DeviceType, type EmailLinkContinuationConfig, EmailLinkContinuationOperation, type EmailLinkOperationConfig, EmailLinkOperationFull, type EmailLinkOperationPostResponseStart, type EmailLinkOperationSendStart, type EmailLinkOperationSpecType, type EmailOTPOperationConfig, type EmailOTPOperationPostResponseStart, type EmailOTPOperationSendOTPStart, type EmailOTPOperationSpecType, EmailOtpOperationFull, type ErrorStepOptions, type Event, type EventBatch, type EventBatchMeta, type EventMeta, EventStore, type EventType, type FixedDataConfig, type FlowAutoFinished, type FlowDecided, type FlowFinished, type FlowHandle, type FlowReset, type FlowStarted, type FlowType, type FlushReason, type FormOperationConfig, FormOperationFull, type HandoffStepHelper, type JavaScriptHighEntropy, type KeyOperationConfig, KeyRegistrationOperationFull, KeySigningOperationFull, LocalStorage, type Logger, type LowEvent, type LowEventFieldRole, type LowEventInitiator, type LowEventInputEffect, type LowEventSourceKind, type MultiFlowReset, type MultiFlowStarted, NamespacedStorage, type NormalizedError, OUTBOX_LOCK_NAME, OUTBOX_STORAGE_KEY, type ObserveSdkConfigSnapshot, OperationFull, OperationFullProvideIdentifierWithCUI, type OperationFullProvideIdentifierWithCUIConfig, type OutboxEntry, PROBE_BATCH_MAX_BYTES, PROBE_BATCH_MAX_ITEMS, PROBE_PAYLOAD_MAX_BYTES, PROBE_QUEUE_MAX_BYTES, PROBE_QUEUE_MAX_ITEMS, type PasskeyDeletionDeletionTypedError, type PasskeyDeletionOperationConfig, PasskeyDeletionOperationFull, type PasskeyDeletionUserConfirmationTypedError, type PasskeyEnrollmentCeremonyFinished, type PasskeyEnrollmentCeremonyStart, type PasskeyEnrollmentGetOptionsFinished, type PasskeyEnrollmentGetOptionsStart, type PasskeyEnrollmentOperationConfig, PasskeyEnrollmentOperationFull, type PasskeyEnrollmentPostResponseStart, type PasskeyLoginCUIGetOptionsFinished, type PasskeyLoginCUIGetOptionsStart, type PasskeyLoginCUISpecType, type PasskeyLoginCeremonyFinished, type PasskeyLoginCeremonyStart, type PasskeyLoginClientError, type PasskeyLoginFinish, type PasskeyLoginGetOptionsFinished, type PasskeyLoginGetOptionsStart, type PasskeyLoginOperationConfig, PasskeyLoginOperationFull, type PasskeyLoginPostResponseStart, type PasskeyLoginStartable, type PasskeyLoginSubmitted, type PasskeyOperationEnrollmentExplicitSpecType, type PasskeyOperationLoginExplicitSpecType, type PasswordEnrollmentConfig, PasswordEnrollmentOperationFull, type PasswordEnrollmentTypedError, type PasswordLoginCUICeremonyStart, type PasswordLoginCUIGetOptionsFinished, type PasswordLoginCUIGetOptionsStart, type PasswordLoginCUISpecType, type PasswordLoginCUITypedError, type PasswordLoginConfig, type PasswordLoginExplicitSpecType, PasswordLoginOperationFull, type PasswordLoginTypedError, type PasswordManagerExtension, type PasswordManagerExtensionName, type PredefinedEvent, type ProbeContext, type ProbeEntry, type ProbeInput, type ProvideDataOperationConfig, ProvideDataOperationFull, type ProvideDataOperationPostResponseStart, type ProvideDataOperationSpecType, type ProvideDataOperationStart, type ProvideIdentifierError, type ProvideIdentifierFinish, type ProvideIdentifierPostResponseStart, type ProvideIdentifierSpecType, type ProvideIdentifierStart, type QueueOptions, RAW_ERROR_BOUNDS, READER_EXPOSURES, type RawErrorEnvelope, type ReaderDataConfigKey, type ReaderExposure, type ReaderField, type ReaderMeta, type ReaderOrigin, type ReaderTransform, RequestQueue, type ResolvedFixedDataConfig, SDK_NAME, SDK_VERSION, type SdkInfo, type SdkInputHandoff, type SdkReliabilityConfig, type SdkReliabilityConfigOverrides, type SdkRetryConfig, type SdkWebAuthnError, type SdkWebAuthnPayload, type SerializeRawErrorOptions, SessionStorage, type SetFlowTagsOptions, type SmsOTPOperationConfig, type SmsOTPOperationPostResponseStart, type SmsOTPOperationSpecType, SmsOtpOperationFull, type SocialLoginEntry, type SocialLoginExchangeCodeFinished, type SocialLoginExchangeCodeStart, type SocialLoginGetRedirectUrlFinished, type SocialLoginGetRedirectUrlStart, type SocialLoginOperationConfig, SocialLoginOperationFull, type SocialLoginProviderType, type SocialLoginSpecType, type SourcePathQueryMode, type SsoLoginExchangeCodeFinished, type SsoLoginExchangeCodeStart, type SsoLoginGetRedirectUrlFinished, type SsoLoginGetRedirectUrlStart, type SsoLoginOperationConfig, SsoLoginOperationFull, type SsoLoginSpecType, type StandaloneDeviceInfoSource, type StepHelper, type StepIdentifier, type StepOptions, type StorageEngine, type SubflowTrigger, type SubflowType, type TelemetryEntry, type TelemetryLevel, type TelemetrySink, type TotpOperationConfig, TotpOperationFull, type TotpOperationPostResponseStart, type TotpOperationSpecType, type TrackerOptions, type Transport, type TransportMakeRequestResponse, type TransportOptions, type TrustedDeviceBindingMetadata, type TrustedDeviceCheckConfig, TrustedDeviceCheckOperationFull, type TrustedDeviceCheckResult, type TrustedDeviceCheckStepResult, type TrustedDeviceCheckTypedError, TrustedDeviceEnrollmentOperationFull, type TrustedDeviceEnrollmentResult, type TrustedDeviceOperationConfig, type TrustedDevicePurpose, type TrustedDeviceStorage, UNLOAD_BUDGET_BYTES, UNLOAD_PROBE_MAX_BYTES, type UserReference, type WebAuthnIdentifierProjector, type WebAuthnIdentifierProjectors, type WithHandoffs, cacheConfigRecord, clearExperiment, clearExperiments, createLogger, destroy, detectPasswordManagerExtensions, getExperiments, getSessionId, getTracker, init, loadCachedConfig, loadConfigRecord, logError, logInfo, namespacedKey, parseReliabilityConfig, resetSession, resolveFixedDataConfig, resolveRawErrorLimits, resolveReliabilityConfig, sanitizeAssertionResponse, sanitizeCreationOptions, sanitizeCreationResponse, sanitizeRequestOptions, serializeRawError, setExperiment, setExperiments, setFlowTags, setUser, telemetry, utf8Length };
|