@dynamic-labs-wallet/browser-wallet-client 1.0.2 → 1.0.4
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/index.cjs
CHANGED
|
@@ -393,6 +393,23 @@ const FRAME_ANCESTORS_QUERY_PARAM = 'frameAncestors';
|
|
|
393
393
|
});
|
|
394
394
|
}
|
|
395
395
|
class IframeManager {
|
|
396
|
+
/**
|
|
397
|
+
* Apply constructor-provided overrides for the iframe load timeout and
|
|
398
|
+
* retry budget to the static singleton state. Writing to the statics keeps
|
|
399
|
+
* the timeout doubling logic in {@link resetSharedWaasSDKContainer}
|
|
400
|
+
* coherent across instances that share the same `iframeLoadPromise`.
|
|
401
|
+
*
|
|
402
|
+
* Invalid values (non-finite, out of range) are clamped or ignored rather
|
|
403
|
+
* than thrown — the iframe must still load even if a misconfigured host
|
|
404
|
+
* passes nonsense.
|
|
405
|
+
*/ static applyLoadTuning({ iframeLoadTimeout, maxRetryAttempts }) {
|
|
406
|
+
if (typeof iframeLoadTimeout === 'number' && Number.isFinite(iframeLoadTimeout)) {
|
|
407
|
+
IframeManager.iframeLoadTimeout = Math.min(Math.max(iframeLoadTimeout, IframeManager.minIframeLoadTimeout), IframeManager.maxIframeLoadTimeout);
|
|
408
|
+
}
|
|
409
|
+
if (typeof maxRetryAttempts === 'number' && Number.isFinite(maxRetryAttempts)) {
|
|
410
|
+
IframeManager.maxRetryAttempts = Math.min(Math.max(Math.floor(maxRetryAttempts), 0), IframeManager.maxAllowedRetryAttempts);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
396
413
|
// Simply load the iframe from localhost
|
|
397
414
|
async initialize() {
|
|
398
415
|
await this.doInitializeIframeCommunication();
|
|
@@ -696,8 +713,8 @@ class IframeManager {
|
|
|
696
713
|
this.waasSDKContainer = null;
|
|
697
714
|
this.iframeMessageHandler = null;
|
|
698
715
|
this.messageTransport = null;
|
|
699
|
-
// Double the timeout
|
|
700
|
-
IframeManager.iframeLoadTimeout = Math.min(IframeManager.iframeLoadTimeout * 2,
|
|
716
|
+
// Double the timeout to give more time for slow networks, capped at the configured maximum.
|
|
717
|
+
IframeManager.iframeLoadTimeout = Math.min(IframeManager.iframeLoadTimeout * 2, IframeManager.maxIframeLoadTimeout);
|
|
701
718
|
}
|
|
702
719
|
async loadIframe() {
|
|
703
720
|
var _IframeManager_sharedWaasSDKContainer;
|
|
@@ -962,7 +979,7 @@ class IframeManager {
|
|
|
962
979
|
this.waasSDKContainer = null;
|
|
963
980
|
}
|
|
964
981
|
}
|
|
965
|
-
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = core.AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins }, internalOptions){
|
|
982
|
+
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = core.AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins, iframeLoadTimeout, maxRetryAttempts }, internalOptions){
|
|
966
983
|
this.logger = logger;
|
|
967
984
|
this.instanceId = null;
|
|
968
985
|
this.iframeDomain = null;
|
|
@@ -1003,12 +1020,37 @@ class IframeManager {
|
|
|
1003
1020
|
this.instanceId = crypto.randomUUID();
|
|
1004
1021
|
this.debug = Boolean(debug);
|
|
1005
1022
|
this.logger.setLogLevel(this.debug ? 'DEBUG' : 'INFO');
|
|
1023
|
+
IframeManager.applyLoadTuning({
|
|
1024
|
+
iframeLoadTimeout,
|
|
1025
|
+
maxRetryAttempts
|
|
1026
|
+
});
|
|
1006
1027
|
}
|
|
1007
1028
|
}
|
|
1008
1029
|
IframeManager.iframeLoadPromise = null;
|
|
1009
|
-
|
|
1030
|
+
/**
|
|
1031
|
+
* Initial timeout (ms) for the iframe to complete its boot handshake.
|
|
1032
|
+
* On each failed attempt the active timeout doubles (capped at 60_000ms — see
|
|
1033
|
+
* {@link resetSharedWaasSDKContainer}) before the next retry.
|
|
1034
|
+
*
|
|
1035
|
+
* Default chosen to comfortably cover the iframe's P95 cold-start at the
|
|
1036
|
+
* time of writing (~13s for global traffic on a 3 MB MPC WASM payload).
|
|
1037
|
+
* Override via the `iframeLoadTimeout` constructor option when the host
|
|
1038
|
+
* environment needs a different budget (e.g. constrained mobile webviews).
|
|
1039
|
+
*
|
|
1040
|
+
* Held as a static (not instance) field because the shared
|
|
1041
|
+
* `iframeLoadPromise` is itself static — all instances in a page must
|
|
1042
|
+
* agree on the active timeout for the retry doubling logic to remain
|
|
1043
|
+
* coherent.
|
|
1044
|
+
*/ IframeManager.iframeLoadTimeout = 20000;
|
|
1010
1045
|
IframeManager.iframeLoadAttempts = 0;
|
|
1011
|
-
|
|
1046
|
+
/**
|
|
1047
|
+
* Number of retry attempts beyond the initial load attempt. The total
|
|
1048
|
+
* number of attempts is `maxRetryAttempts + 1`. Override via the
|
|
1049
|
+
* `maxRetryAttempts` constructor option.
|
|
1050
|
+
*/ IframeManager.maxRetryAttempts = 1;
|
|
1051
|
+
IframeManager.minIframeLoadTimeout = 1000;
|
|
1052
|
+
IframeManager.maxIframeLoadTimeout = 60000;
|
|
1053
|
+
IframeManager.maxAllowedRetryAttempts = 10;
|
|
1012
1054
|
IframeManager.sharedWaasSDKContainer = null;
|
|
1013
1055
|
IframeManager.iframeInstanceCount = 0;
|
|
1014
1056
|
IframeManager.maxAdditionalTrustedOrigins = 32;
|
|
@@ -1402,7 +1444,7 @@ class DynamicWalletClient extends IframeManager {
|
|
|
1402
1444
|
traceContext
|
|
1403
1445
|
}));
|
|
1404
1446
|
}
|
|
1405
|
-
constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode = core.AuthMode.HEADER, additionalTrustedOrigins }, internalOptions){
|
|
1447
|
+
constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode = core.AuthMode.HEADER, additionalTrustedOrigins, iframeLoadTimeout, maxRetryAttempts }, internalOptions){
|
|
1406
1448
|
super({
|
|
1407
1449
|
environmentId,
|
|
1408
1450
|
authToken,
|
|
@@ -1413,7 +1455,9 @@ class DynamicWalletClient extends IframeManager {
|
|
|
1413
1455
|
sdkVersion,
|
|
1414
1456
|
debug,
|
|
1415
1457
|
authMode,
|
|
1416
|
-
additionalTrustedOrigins
|
|
1458
|
+
additionalTrustedOrigins,
|
|
1459
|
+
iframeLoadTimeout,
|
|
1460
|
+
maxRetryAttempts
|
|
1417
1461
|
}, internalOptions);
|
|
1418
1462
|
// Note: secureStorage and getSignedSessionId are already set by IframeManager constructor
|
|
1419
1463
|
}
|
package/index.esm.js
CHANGED
|
@@ -392,6 +392,23 @@ const FRAME_ANCESTORS_QUERY_PARAM = 'frameAncestors';
|
|
|
392
392
|
});
|
|
393
393
|
}
|
|
394
394
|
class IframeManager {
|
|
395
|
+
/**
|
|
396
|
+
* Apply constructor-provided overrides for the iframe load timeout and
|
|
397
|
+
* retry budget to the static singleton state. Writing to the statics keeps
|
|
398
|
+
* the timeout doubling logic in {@link resetSharedWaasSDKContainer}
|
|
399
|
+
* coherent across instances that share the same `iframeLoadPromise`.
|
|
400
|
+
*
|
|
401
|
+
* Invalid values (non-finite, out of range) are clamped or ignored rather
|
|
402
|
+
* than thrown — the iframe must still load even if a misconfigured host
|
|
403
|
+
* passes nonsense.
|
|
404
|
+
*/ static applyLoadTuning({ iframeLoadTimeout, maxRetryAttempts }) {
|
|
405
|
+
if (typeof iframeLoadTimeout === 'number' && Number.isFinite(iframeLoadTimeout)) {
|
|
406
|
+
IframeManager.iframeLoadTimeout = Math.min(Math.max(iframeLoadTimeout, IframeManager.minIframeLoadTimeout), IframeManager.maxIframeLoadTimeout);
|
|
407
|
+
}
|
|
408
|
+
if (typeof maxRetryAttempts === 'number' && Number.isFinite(maxRetryAttempts)) {
|
|
409
|
+
IframeManager.maxRetryAttempts = Math.min(Math.max(Math.floor(maxRetryAttempts), 0), IframeManager.maxAllowedRetryAttempts);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
395
412
|
// Simply load the iframe from localhost
|
|
396
413
|
async initialize() {
|
|
397
414
|
await this.doInitializeIframeCommunication();
|
|
@@ -695,8 +712,8 @@ class IframeManager {
|
|
|
695
712
|
this.waasSDKContainer = null;
|
|
696
713
|
this.iframeMessageHandler = null;
|
|
697
714
|
this.messageTransport = null;
|
|
698
|
-
// Double the timeout
|
|
699
|
-
IframeManager.iframeLoadTimeout = Math.min(IframeManager.iframeLoadTimeout * 2,
|
|
715
|
+
// Double the timeout to give more time for slow networks, capped at the configured maximum.
|
|
716
|
+
IframeManager.iframeLoadTimeout = Math.min(IframeManager.iframeLoadTimeout * 2, IframeManager.maxIframeLoadTimeout);
|
|
700
717
|
}
|
|
701
718
|
async loadIframe() {
|
|
702
719
|
var _IframeManager_sharedWaasSDKContainer;
|
|
@@ -961,7 +978,7 @@ class IframeManager {
|
|
|
961
978
|
this.waasSDKContainer = null;
|
|
962
979
|
}
|
|
963
980
|
}
|
|
964
|
-
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins }, internalOptions){
|
|
981
|
+
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode = AuthMode.HEADER, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins, iframeLoadTimeout, maxRetryAttempts }, internalOptions){
|
|
965
982
|
this.logger = logger;
|
|
966
983
|
this.instanceId = null;
|
|
967
984
|
this.iframeDomain = null;
|
|
@@ -1002,12 +1019,37 @@ class IframeManager {
|
|
|
1002
1019
|
this.instanceId = crypto.randomUUID();
|
|
1003
1020
|
this.debug = Boolean(debug);
|
|
1004
1021
|
this.logger.setLogLevel(this.debug ? 'DEBUG' : 'INFO');
|
|
1022
|
+
IframeManager.applyLoadTuning({
|
|
1023
|
+
iframeLoadTimeout,
|
|
1024
|
+
maxRetryAttempts
|
|
1025
|
+
});
|
|
1005
1026
|
}
|
|
1006
1027
|
}
|
|
1007
1028
|
IframeManager.iframeLoadPromise = null;
|
|
1008
|
-
|
|
1029
|
+
/**
|
|
1030
|
+
* Initial timeout (ms) for the iframe to complete its boot handshake.
|
|
1031
|
+
* On each failed attempt the active timeout doubles (capped at 60_000ms — see
|
|
1032
|
+
* {@link resetSharedWaasSDKContainer}) before the next retry.
|
|
1033
|
+
*
|
|
1034
|
+
* Default chosen to comfortably cover the iframe's P95 cold-start at the
|
|
1035
|
+
* time of writing (~13s for global traffic on a 3 MB MPC WASM payload).
|
|
1036
|
+
* Override via the `iframeLoadTimeout` constructor option when the host
|
|
1037
|
+
* environment needs a different budget (e.g. constrained mobile webviews).
|
|
1038
|
+
*
|
|
1039
|
+
* Held as a static (not instance) field because the shared
|
|
1040
|
+
* `iframeLoadPromise` is itself static — all instances in a page must
|
|
1041
|
+
* agree on the active timeout for the retry doubling logic to remain
|
|
1042
|
+
* coherent.
|
|
1043
|
+
*/ IframeManager.iframeLoadTimeout = 20000;
|
|
1009
1044
|
IframeManager.iframeLoadAttempts = 0;
|
|
1010
|
-
|
|
1045
|
+
/**
|
|
1046
|
+
* Number of retry attempts beyond the initial load attempt. The total
|
|
1047
|
+
* number of attempts is `maxRetryAttempts + 1`. Override via the
|
|
1048
|
+
* `maxRetryAttempts` constructor option.
|
|
1049
|
+
*/ IframeManager.maxRetryAttempts = 1;
|
|
1050
|
+
IframeManager.minIframeLoadTimeout = 1000;
|
|
1051
|
+
IframeManager.maxIframeLoadTimeout = 60000;
|
|
1052
|
+
IframeManager.maxAllowedRetryAttempts = 10;
|
|
1011
1053
|
IframeManager.sharedWaasSDKContainer = null;
|
|
1012
1054
|
IframeManager.iframeInstanceCount = 0;
|
|
1013
1055
|
IframeManager.maxAdditionalTrustedOrigins = 32;
|
|
@@ -1401,7 +1443,7 @@ class DynamicWalletClient extends IframeManager {
|
|
|
1401
1443
|
traceContext
|
|
1402
1444
|
}));
|
|
1403
1445
|
}
|
|
1404
|
-
constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode = AuthMode.HEADER, additionalTrustedOrigins }, internalOptions){
|
|
1446
|
+
constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode = AuthMode.HEADER, additionalTrustedOrigins, iframeLoadTimeout, maxRetryAttempts }, internalOptions){
|
|
1405
1447
|
super({
|
|
1406
1448
|
environmentId,
|
|
1407
1449
|
authToken,
|
|
@@ -1412,7 +1454,9 @@ class DynamicWalletClient extends IframeManager {
|
|
|
1412
1454
|
sdkVersion,
|
|
1413
1455
|
debug,
|
|
1414
1456
|
authMode,
|
|
1415
|
-
additionalTrustedOrigins
|
|
1457
|
+
additionalTrustedOrigins,
|
|
1458
|
+
iframeLoadTimeout,
|
|
1459
|
+
maxRetryAttempts
|
|
1416
1460
|
}, internalOptions);
|
|
1417
1461
|
// Note: secureStorage and getSignedSessionId are already set by IframeManager constructor
|
|
1418
1462
|
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs-wallet/browser-wallet-client",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@dynamic-labs-wallet/core": "1.0.
|
|
7
|
+
"@dynamic-labs-wallet/core": "1.0.4",
|
|
8
8
|
"@dynamic-labs/logger": "^4.45.2",
|
|
9
9
|
"@dynamic-labs/message-transport": "^4.45.2"
|
|
10
10
|
},
|
package/src/client/client.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { BackupKeySharesToGoogleDriveRequest, BackupKeySharesToICloudReques
|
|
|
2
2
|
import { AuthMode, WalletOperation } from '@dynamic-labs-wallet/core';
|
|
3
3
|
import { IframeManager } from './iframeManager/index.js';
|
|
4
4
|
export declare class DynamicWalletClient extends IframeManager {
|
|
5
|
-
constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode, additionalTrustedOrigins, }: {
|
|
5
|
+
constructor({ environmentId, authToken, baseApiUrl, baseMPCRelayApiUrl, baseClientKeysharesRelayApiUrl, chainName, sdkVersion, debug, authMode, additionalTrustedOrigins, iframeLoadTimeout, maxRetryAttempts, }: {
|
|
6
6
|
environmentId: string;
|
|
7
7
|
authToken: string;
|
|
8
8
|
baseApiUrl: string;
|
|
@@ -13,6 +13,16 @@ export declare class DynamicWalletClient extends IframeManager {
|
|
|
13
13
|
authMode?: AuthMode;
|
|
14
14
|
baseClientKeysharesRelayApiUrl?: string;
|
|
15
15
|
additionalTrustedOrigins?: readonly string[];
|
|
16
|
+
/**
|
|
17
|
+
* Initial timeout (ms) for the iframe boot handshake. Doubles on each
|
|
18
|
+
* failed attempt up to 60s. Defaults to 20s.
|
|
19
|
+
*/
|
|
20
|
+
iframeLoadTimeout?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Retry attempts beyond the initial iframe load (total attempts =
|
|
23
|
+
* `maxRetryAttempts + 1`). Defaults to 1.
|
|
24
|
+
*/
|
|
25
|
+
maxRetryAttempts?: number;
|
|
16
26
|
}, internalOptions?: {
|
|
17
27
|
secureStorage?: SecureStorageAdapter;
|
|
18
28
|
getSignedSessionId?: () => Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mCAAmC,EACnC,8BAA8B,EAC9B,aAAa,EACb,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,iBAAiB,EACjB,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,EAC9B,uBAAuB,EACvB,mCAAmC,EACnC,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,qBAAa,mBAAoB,SAAQ,aAAa;gBAElD,EACE,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,SAAS,EACT,UAAU,EACV,KAAK,EACL,QAA0B,EAC1B,wBAAwB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,32 @@ export declare class IframeManager {
|
|
|
20
20
|
private static iframeLoadPromise;
|
|
21
21
|
protected iframe: HTMLIFrameElement | null;
|
|
22
22
|
private readonly debug;
|
|
23
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Initial timeout (ms) for the iframe to complete its boot handshake.
|
|
25
|
+
* On each failed attempt the active timeout doubles (capped at 60_000ms — see
|
|
26
|
+
* {@link resetSharedWaasSDKContainer}) before the next retry.
|
|
27
|
+
*
|
|
28
|
+
* Default chosen to comfortably cover the iframe's P95 cold-start at the
|
|
29
|
+
* time of writing (~13s for global traffic on a 3 MB MPC WASM payload).
|
|
30
|
+
* Override via the `iframeLoadTimeout` constructor option when the host
|
|
31
|
+
* environment needs a different budget (e.g. constrained mobile webviews).
|
|
32
|
+
*
|
|
33
|
+
* Held as a static (not instance) field because the shared
|
|
34
|
+
* `iframeLoadPromise` is itself static — all instances in a page must
|
|
35
|
+
* agree on the active timeout for the retry doubling logic to remain
|
|
36
|
+
* coherent.
|
|
37
|
+
*/
|
|
38
|
+
private static iframeLoadTimeout;
|
|
24
39
|
private static iframeLoadAttempts;
|
|
25
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Number of retry attempts beyond the initial load attempt. The total
|
|
42
|
+
* number of attempts is `maxRetryAttempts + 1`. Override via the
|
|
43
|
+
* `maxRetryAttempts` constructor option.
|
|
44
|
+
*/
|
|
45
|
+
private static maxRetryAttempts;
|
|
46
|
+
private static readonly minIframeLoadTimeout;
|
|
47
|
+
private static readonly maxIframeLoadTimeout;
|
|
48
|
+
private static readonly maxAllowedRetryAttempts;
|
|
26
49
|
baseClientKeysharesRelayApiUrl: string | undefined;
|
|
27
50
|
private static sharedWaasSDKContainer;
|
|
28
51
|
private static iframeInstanceCount;
|
|
@@ -49,7 +72,7 @@ export declare class IframeManager {
|
|
|
49
72
|
private readonly additionalTrustedOrigins;
|
|
50
73
|
private waasSDKContainer;
|
|
51
74
|
private readonly createWaasSDKContainer;
|
|
52
|
-
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins, }: {
|
|
75
|
+
constructor({ environmentId, baseApiUrl, baseMPCRelayApiUrl, chainName, sdkVersion, authMode, authToken, debug, baseClientKeysharesRelayApiUrl, additionalTrustedOrigins, iframeLoadTimeout, maxRetryAttempts, }: {
|
|
53
76
|
environmentId: string;
|
|
54
77
|
authMode: AuthMode;
|
|
55
78
|
authToken?: string;
|
|
@@ -60,11 +83,36 @@ export declare class IframeManager {
|
|
|
60
83
|
debug?: boolean;
|
|
61
84
|
baseClientKeysharesRelayApiUrl?: string;
|
|
62
85
|
additionalTrustedOrigins?: readonly string[];
|
|
86
|
+
/**
|
|
87
|
+
* Initial timeout in ms for the iframe boot handshake. Defaults to
|
|
88
|
+
* {@link IframeManager.iframeLoadTimeout}. Clamped to
|
|
89
|
+
* [{@link IframeManager.minIframeLoadTimeout},
|
|
90
|
+
* {@link IframeManager.maxIframeLoadTimeout}].
|
|
91
|
+
*/
|
|
92
|
+
iframeLoadTimeout?: number;
|
|
93
|
+
/**
|
|
94
|
+
* Number of retry attempts beyond the initial load attempt (total
|
|
95
|
+
* attempts = `maxRetryAttempts + 1`). Defaults to
|
|
96
|
+
* {@link IframeManager.maxRetryAttempts}. Clamped to
|
|
97
|
+
* [0, {@link IframeManager.maxAllowedRetryAttempts}].
|
|
98
|
+
*/
|
|
99
|
+
maxRetryAttempts?: number;
|
|
63
100
|
}, internalOptions?: {
|
|
64
101
|
secureStorage?: SecureStorageAdapter;
|
|
65
102
|
getSignedSessionId?: () => Promise<string>;
|
|
66
103
|
createWaasSDKContainer?: CreateWaasSDKContainer;
|
|
67
104
|
});
|
|
105
|
+
/**
|
|
106
|
+
* Apply constructor-provided overrides for the iframe load timeout and
|
|
107
|
+
* retry budget to the static singleton state. Writing to the statics keeps
|
|
108
|
+
* the timeout doubling logic in {@link resetSharedWaasSDKContainer}
|
|
109
|
+
* coherent across instances that share the same `iframeLoadPromise`.
|
|
110
|
+
*
|
|
111
|
+
* Invalid values (non-finite, out of range) are clamped or ignored rather
|
|
112
|
+
* than thrown — the iframe must still load even if a misconfigured host
|
|
113
|
+
* passes nonsense.
|
|
114
|
+
*/
|
|
115
|
+
private static applyLoadTuning;
|
|
68
116
|
initialize(): Promise<void>;
|
|
69
117
|
/**
|
|
70
118
|
* this is called on class construction time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/IframeManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAGR,KAAK,sBAAsB,EAK3B,KAAK,qBAAqB,EAE1B,KAAK,oBAAoB,EAG1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAOL,KAAK,iCAAiC,EACtC,KAAK,cAAc,EAEpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAoC9E,qBAAa,aAAa;IACxB,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,MAAM,wCAAU;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACnC,aAAa,EAAE,MAAM,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,gBAAgB,EAAE,iCAAiC,GAAG,IAAI,CAAQ;IAC5E,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IACnE;;oDAEgD;IAChD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;IAC9D,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,
|
|
1
|
+
{"version":3,"file":"IframeManager.d.ts","sourceRoot":"","sources":["../../../src/client/iframeManager/IframeManager.ts"],"names":[],"mappings":"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"}
|