@dynamic-labs/global-wallet-client 4.37.2 → 4.39.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/CHANGELOG.md +23 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +17 -9
- package/src/core.cjs +16 -0
- package/src/core.js +5 -0
- package/src/lib/functions/addCustomWalletOpenerService/addCustomWalletOpenerService.cjs +51 -0
- package/src/lib/functions/addCustomWalletOpenerService/addCustomWalletOpenerService.js +47 -0
- package/src/lib/functions/createEncryptedMessageEncoder/createEncryptedMessageEncoder.cjs +19 -0
- package/src/lib/functions/createEncryptedMessageEncoder/createEncryptedMessageEncoder.js +15 -0
- package/src/lib/functions/createPopupMessageClient/createPopupMessageClient.cjs +72 -0
- package/src/lib/functions/createPopupMessageClient/createPopupMessageClient.js +68 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
|
|
2
|
+
## [4.39.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.38.0...v4.39.0) (2025-10-17)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add crypto.com as an onramp option in deposit ([#9580](https://github.com/dynamic-labs/dynamic-auth/issues/9580)) ([4988acc](https://github.com/dynamic-labs/dynamic-auth/commit/4988accfeafa5556297ad6e9873073e30c504c7f)), closes [#3](https://github.com/dynamic-labs/dynamic-auth/issues/3)
|
|
8
|
+
* add sui non-native token sending thru dynamic widget ([#9715](https://github.com/dynamic-labs/dynamic-auth/issues/9715)) ([9d9ea3b](https://github.com/dynamic-labs/dynamic-auth/commit/9d9ea3b233706766516b89d725a52d63cceb01f6))
|
|
9
|
+
|
|
10
|
+
## [4.38.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.37.2...v4.38.0) (2025-10-14)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* add client.ui.updateUser.show method to update user with dynamic ui ([#9702](https://github.com/dynamic-labs/dynamic-auth/issues/9702)) ([9554e98](https://github.com/dynamic-labs/dynamic-auth/commit/9554e98eadf3f801a5ebe8b22493a87cc87b8178))
|
|
16
|
+
* add locale to react-native client ([#9698](https://github.com/dynamic-labs/dynamic-auth/issues/9698)) ([fe577fc](https://github.com/dynamic-labs/dynamic-auth/commit/fe577fccd3cc92e5153f66f401357035bb5baec3))
|
|
17
|
+
* add updateUser to react-native client ([#9701](https://github.com/dynamic-labs/dynamic-auth/issues/9701)) ([124fbf7](https://github.com/dynamic-labs/dynamic-auth/commit/124fbf7a350bfa6404e65def7b436686d38847ed))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* notes and trigger ([#9697](https://github.com/dynamic-labs/dynamic-auth/issues/9697)) ([5d24a77](https://github.com/dynamic-labs/dynamic-auth/commit/5d24a77faa8030434bc7dd0f35986984bc2576d5))
|
|
23
|
+
* **zerodev-extension:** allow zerodev kernel client to send user operation ([#9706](https://github.com/dynamic-labs/dynamic-auth/issues/9706)) ([b57afc9](https://github.com/dynamic-labs/dynamic-auth/commit/b57afc9f378d6b2423ca46faec5f6b2861d3cbf6))
|
|
24
|
+
|
|
2
25
|
### [4.37.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.37.1...v4.37.2) (2025-10-13)
|
|
3
26
|
|
|
4
27
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/global-wallet-client",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.39.0",
|
|
4
4
|
"description": "Core package for building Dynamic's Global Wallet",
|
|
5
5
|
"author": "Dynamic Labs, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,6 +25,9 @@
|
|
|
25
25
|
],
|
|
26
26
|
"zerodev": [
|
|
27
27
|
"./src/zerodev.d.ts"
|
|
28
|
+
],
|
|
29
|
+
"core": [
|
|
30
|
+
"./src/core.d.ts"
|
|
28
31
|
]
|
|
29
32
|
}
|
|
30
33
|
},
|
|
@@ -59,17 +62,22 @@
|
|
|
59
62
|
"import": "./src/zerodev.js",
|
|
60
63
|
"default": "./src/zerodev.cjs"
|
|
61
64
|
},
|
|
65
|
+
"./core": {
|
|
66
|
+
"types": "./src/core.d.ts",
|
|
67
|
+
"import": "./src/core.js",
|
|
68
|
+
"default": "./src/core.cjs"
|
|
69
|
+
},
|
|
62
70
|
"./package.json": "./package.json"
|
|
63
71
|
},
|
|
64
72
|
"homepage": "https://www.dynamic.xyz/",
|
|
65
73
|
"dependencies": {
|
|
66
|
-
"@dynamic-labs/assert-package-version": "4.
|
|
67
|
-
"@dynamic-labs/ethereum-aa-zksync": "4.
|
|
68
|
-
"@dynamic-labs/logger": "4.
|
|
69
|
-
"@dynamic-labs/message-transport": "4.
|
|
70
|
-
"@dynamic-labs/store": "4.
|
|
71
|
-
"@dynamic-labs/types": "4.
|
|
72
|
-
"@dynamic-labs/utils": "4.
|
|
74
|
+
"@dynamic-labs/assert-package-version": "4.39.0",
|
|
75
|
+
"@dynamic-labs/ethereum-aa-zksync": "4.39.0",
|
|
76
|
+
"@dynamic-labs/logger": "4.39.0",
|
|
77
|
+
"@dynamic-labs/message-transport": "4.39.0",
|
|
78
|
+
"@dynamic-labs/store": "4.39.0",
|
|
79
|
+
"@dynamic-labs/types": "4.39.0",
|
|
80
|
+
"@dynamic-labs/utils": "4.39.0",
|
|
73
81
|
"eventemitter3": "5.0.1"
|
|
74
82
|
},
|
|
75
83
|
"peerDependencies": {
|
|
@@ -81,7 +89,7 @@
|
|
|
81
89
|
"zksync-sso": "0.2.0",
|
|
82
90
|
"@wallet-standard/wallet": "^1.1.0",
|
|
83
91
|
"@zerodev/sdk": "5.4.36",
|
|
84
|
-
"@dynamic-labs/ethereum-aa": "4.
|
|
92
|
+
"@dynamic-labs/ethereum-aa": "4.39.0"
|
|
85
93
|
},
|
|
86
94
|
"peerDependenciesMeta": {
|
|
87
95
|
"viem": {
|
package/src/core.cjs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var createPopupMessageClient = require('./lib/functions/createPopupMessageClient/createPopupMessageClient.cjs');
|
|
7
|
+
var createEncryptedMessageEncoder = require('./lib/functions/createEncryptedMessageEncoder/createEncryptedMessageEncoder.cjs');
|
|
8
|
+
var DisconnectError = require('./lib/errors/DisconnectError.cjs');
|
|
9
|
+
var addCustomWalletOpenerService = require('./lib/functions/addCustomWalletOpenerService/addCustomWalletOpenerService.cjs');
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
exports.createPopupMessageClient = createPopupMessageClient.createPopupMessageClient;
|
|
14
|
+
exports.createEncryptedMessageEncoder = createEncryptedMessageEncoder.createEncryptedMessageEncoder;
|
|
15
|
+
exports.DisconnectError = DisconnectError.DisconnectError;
|
|
16
|
+
exports.addCustomWalletOpenerService = addCustomWalletOpenerService.addCustomWalletOpenerService;
|
package/src/core.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
export { createPopupMessageClient } from './lib/functions/createPopupMessageClient/createPopupMessageClient.js';
|
|
3
|
+
export { createEncryptedMessageEncoder } from './lib/functions/createEncryptedMessageEncoder/createEncryptedMessageEncoder.js';
|
|
4
|
+
export { DisconnectError } from './lib/errors/DisconnectError.js';
|
|
5
|
+
export { addCustomWalletOpenerService } from './lib/functions/addCustomWalletOpenerService/addCustomWalletOpenerService.js';
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
|
+
require('eventemitter3');
|
|
8
|
+
require('@dynamic-labs/logger');
|
|
9
|
+
require('@dynamic-labs/store');
|
|
10
|
+
require('../../errors/DisconnectError.cjs');
|
|
11
|
+
require('@dynamic-labs/utils');
|
|
12
|
+
var mergeAndEncryptParams = require('../mergeAndEncryptParams/mergeAndEncryptParams.cjs');
|
|
13
|
+
var waitForResponse = require('../waitForResponse/waitForResponse.cjs');
|
|
14
|
+
var constructUrl = require('../addPopupWalletOpenerService/constructUrl.cjs');
|
|
15
|
+
var decodeResponse = require('../addPopupWalletOpenerService/methods/utils/decodeResponse.cjs');
|
|
16
|
+
var getCore = require('../../client/getCore/getCore.cjs');
|
|
17
|
+
|
|
18
|
+
const addCustomWalletOpenerService = (client, { openWalletCallback, requesterOrigin }) => {
|
|
19
|
+
const { registry, environmentId, popupInfo, developmentOptions } = getCore.getCore(client);
|
|
20
|
+
const customWalletOpenerService = {
|
|
21
|
+
openWallet: (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ args, connection, name }) {
|
|
22
|
+
const finalUrl = constructUrl.buildUrlWithParams({
|
|
23
|
+
environmentId,
|
|
24
|
+
name,
|
|
25
|
+
postfixUrlWithVersion: developmentOptions.postfixPopupUrlWithVersion,
|
|
26
|
+
requesterOrigin,
|
|
27
|
+
urlInfo: {
|
|
28
|
+
url: popupInfo.url,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
yield mergeAndEncryptParams.mergeAndEncryptParams(finalUrl, args, connection);
|
|
32
|
+
const responseUrl = (yield openWalletCallback({ url: finalUrl }))
|
|
33
|
+
.response;
|
|
34
|
+
const rawResponse = new URL(responseUrl).searchParams.get('r');
|
|
35
|
+
if (!rawResponse) {
|
|
36
|
+
throw new Error('No response from openWalletCallback');
|
|
37
|
+
}
|
|
38
|
+
const { error, success } = waitForResponse.parseGlobalWalletResponse(yield decodeResponse.decodeResponse(connection, JSON.parse(decodeURIComponent(rawResponse)), client));
|
|
39
|
+
if (error) {
|
|
40
|
+
throw new Error(error.message);
|
|
41
|
+
}
|
|
42
|
+
if (!success) {
|
|
43
|
+
throw new Error('No success response from global wallet');
|
|
44
|
+
}
|
|
45
|
+
return success.data;
|
|
46
|
+
}),
|
|
47
|
+
};
|
|
48
|
+
registry.set('walletOpenerService', customWalletOpenerService);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports.addCustomWalletOpenerService = addCustomWalletOpenerService;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import 'eventemitter3';
|
|
4
|
+
import '@dynamic-labs/logger';
|
|
5
|
+
import '@dynamic-labs/store';
|
|
6
|
+
import '../../errors/DisconnectError.js';
|
|
7
|
+
import '@dynamic-labs/utils';
|
|
8
|
+
import { mergeAndEncryptParams } from '../mergeAndEncryptParams/mergeAndEncryptParams.js';
|
|
9
|
+
import { parseGlobalWalletResponse } from '../waitForResponse/waitForResponse.js';
|
|
10
|
+
import { buildUrlWithParams } from '../addPopupWalletOpenerService/constructUrl.js';
|
|
11
|
+
import { decodeResponse } from '../addPopupWalletOpenerService/methods/utils/decodeResponse.js';
|
|
12
|
+
import { getCore } from '../../client/getCore/getCore.js';
|
|
13
|
+
|
|
14
|
+
const addCustomWalletOpenerService = (client, { openWalletCallback, requesterOrigin }) => {
|
|
15
|
+
const { registry, environmentId, popupInfo, developmentOptions } = getCore(client);
|
|
16
|
+
const customWalletOpenerService = {
|
|
17
|
+
openWallet: (_a) => __awaiter(void 0, [_a], void 0, function* ({ args, connection, name }) {
|
|
18
|
+
const finalUrl = buildUrlWithParams({
|
|
19
|
+
environmentId,
|
|
20
|
+
name,
|
|
21
|
+
postfixUrlWithVersion: developmentOptions.postfixPopupUrlWithVersion,
|
|
22
|
+
requesterOrigin,
|
|
23
|
+
urlInfo: {
|
|
24
|
+
url: popupInfo.url,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
yield mergeAndEncryptParams(finalUrl, args, connection);
|
|
28
|
+
const responseUrl = (yield openWalletCallback({ url: finalUrl }))
|
|
29
|
+
.response;
|
|
30
|
+
const rawResponse = new URL(responseUrl).searchParams.get('r');
|
|
31
|
+
if (!rawResponse) {
|
|
32
|
+
throw new Error('No response from openWalletCallback');
|
|
33
|
+
}
|
|
34
|
+
const { error, success } = parseGlobalWalletResponse(yield decodeResponse(connection, JSON.parse(decodeURIComponent(rawResponse)), client));
|
|
35
|
+
if (error) {
|
|
36
|
+
throw new Error(error.message);
|
|
37
|
+
}
|
|
38
|
+
if (!success) {
|
|
39
|
+
throw new Error('No success response from global wallet');
|
|
40
|
+
}
|
|
41
|
+
return success.data;
|
|
42
|
+
}),
|
|
43
|
+
};
|
|
44
|
+
registry.set('walletOpenerService', customWalletOpenerService);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export { addCustomWalletOpenerService };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
|
+
var utils = require('@dynamic-labs/utils');
|
|
8
|
+
|
|
9
|
+
const createEncryptedMessageEncoder = (activeConnection, additionalData) => ({
|
|
10
|
+
decode: (data) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
11
|
+
utils.assertDefined(data.encryptedMessage, 'Encrypted message is not defined');
|
|
12
|
+
utils.assertDefined(data.iv, 'IV is not defined');
|
|
13
|
+
const decryptedData = yield utils.decryptMessage(activeConnection.sharedSecret, data.encryptedMessage, data.iv, additionalData);
|
|
14
|
+
return JSON.parse(decryptedData);
|
|
15
|
+
}),
|
|
16
|
+
encode: (message) => utils.encryptMessage(activeConnection.sharedSecret, JSON.stringify(message), additionalData),
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
exports.createEncryptedMessageEncoder = createEncryptedMessageEncoder;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { encryptMessage, assertDefined, decryptMessage } from '@dynamic-labs/utils';
|
|
4
|
+
|
|
5
|
+
const createEncryptedMessageEncoder = (activeConnection, additionalData) => ({
|
|
6
|
+
decode: (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
7
|
+
assertDefined(data.encryptedMessage, 'Encrypted message is not defined');
|
|
8
|
+
assertDefined(data.iv, 'IV is not defined');
|
|
9
|
+
const decryptedData = yield decryptMessage(activeConnection.sharedSecret, data.encryptedMessage, data.iv, additionalData);
|
|
10
|
+
return JSON.parse(decryptedData);
|
|
11
|
+
}),
|
|
12
|
+
encode: (message) => encryptMessage(activeConnection.sharedSecret, JSON.stringify(message), additionalData),
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export { createEncryptedMessageEncoder };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
|
+
var utils = require('@dynamic-labs/utils');
|
|
8
|
+
|
|
9
|
+
const createPopupMessageClient = (popupWindow, targetOrigin, messageEncoder) => {
|
|
10
|
+
const listenForMessage = (messageName, callback) => {
|
|
11
|
+
const handleOnWindowEvent = (event) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
12
|
+
if (event.origin !== targetOrigin)
|
|
13
|
+
return;
|
|
14
|
+
let parsedMessage = null;
|
|
15
|
+
try {
|
|
16
|
+
parsedMessage = JSON.parse(event.data);
|
|
17
|
+
if (messageEncoder) {
|
|
18
|
+
parsedMessage = yield messageEncoder.decode(parsedMessage);
|
|
19
|
+
}
|
|
20
|
+
parsedMessage =
|
|
21
|
+
parseDataFromWindowEvent(parsedMessage);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (parsedMessage.name !== messageName)
|
|
27
|
+
return;
|
|
28
|
+
callback(...parsedMessage.args);
|
|
29
|
+
});
|
|
30
|
+
window.addEventListener('message', handleOnWindowEvent);
|
|
31
|
+
return () => {
|
|
32
|
+
window.removeEventListener('message', handleOnWindowEvent);
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
const waitForMessage = (messageName, timeout) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
const deferred = new utils.DeferredPromise();
|
|
37
|
+
const timeoutId = timeout
|
|
38
|
+
? setTimeout(() => {
|
|
39
|
+
deferred.reject(new Error(`Timeout waiting for message: ${messageName}`));
|
|
40
|
+
}, timeout)
|
|
41
|
+
: undefined;
|
|
42
|
+
const cleanup = listenForMessage(messageName, (...args) => deferred.resolve(args));
|
|
43
|
+
return deferred.promise.finally(() => {
|
|
44
|
+
cleanup === null || cleanup === void 0 ? void 0 : cleanup();
|
|
45
|
+
clearTimeout(timeoutId);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
const postMessage = (messageName, ...args) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
+
var _a;
|
|
50
|
+
const message = {
|
|
51
|
+
args,
|
|
52
|
+
name: messageName,
|
|
53
|
+
};
|
|
54
|
+
const messageToPost = (_a = (yield (messageEncoder === null || messageEncoder === void 0 ? void 0 : messageEncoder.encode(message)))) !== null && _a !== void 0 ? _a : message;
|
|
55
|
+
popupWindow.postMessage(JSON.stringify(messageToPost), targetOrigin);
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
listenForMessage,
|
|
59
|
+
postMessage,
|
|
60
|
+
waitForMessage,
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
const parseDataFromWindowEvent = (data) => {
|
|
64
|
+
utils.assertDefined(data.name, 'Name is required');
|
|
65
|
+
utils.assertDefined(data.args, 'Args is required');
|
|
66
|
+
return {
|
|
67
|
+
args: data.args,
|
|
68
|
+
name: data.name,
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
exports.createPopupMessageClient = createPopupMessageClient;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { DeferredPromise, assertDefined } from '@dynamic-labs/utils';
|
|
4
|
+
|
|
5
|
+
const createPopupMessageClient = (popupWindow, targetOrigin, messageEncoder) => {
|
|
6
|
+
const listenForMessage = (messageName, callback) => {
|
|
7
|
+
const handleOnWindowEvent = (event) => __awaiter(void 0, void 0, void 0, function* () {
|
|
8
|
+
if (event.origin !== targetOrigin)
|
|
9
|
+
return;
|
|
10
|
+
let parsedMessage = null;
|
|
11
|
+
try {
|
|
12
|
+
parsedMessage = JSON.parse(event.data);
|
|
13
|
+
if (messageEncoder) {
|
|
14
|
+
parsedMessage = yield messageEncoder.decode(parsedMessage);
|
|
15
|
+
}
|
|
16
|
+
parsedMessage =
|
|
17
|
+
parseDataFromWindowEvent(parsedMessage);
|
|
18
|
+
}
|
|
19
|
+
catch (err) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (parsedMessage.name !== messageName)
|
|
23
|
+
return;
|
|
24
|
+
callback(...parsedMessage.args);
|
|
25
|
+
});
|
|
26
|
+
window.addEventListener('message', handleOnWindowEvent);
|
|
27
|
+
return () => {
|
|
28
|
+
window.removeEventListener('message', handleOnWindowEvent);
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
const waitForMessage = (messageName, timeout) => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
+
const deferred = new DeferredPromise();
|
|
33
|
+
const timeoutId = timeout
|
|
34
|
+
? setTimeout(() => {
|
|
35
|
+
deferred.reject(new Error(`Timeout waiting for message: ${messageName}`));
|
|
36
|
+
}, timeout)
|
|
37
|
+
: undefined;
|
|
38
|
+
const cleanup = listenForMessage(messageName, (...args) => deferred.resolve(args));
|
|
39
|
+
return deferred.promise.finally(() => {
|
|
40
|
+
cleanup === null || cleanup === void 0 ? void 0 : cleanup();
|
|
41
|
+
clearTimeout(timeoutId);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
const postMessage = (messageName, ...args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
|
+
var _a;
|
|
46
|
+
const message = {
|
|
47
|
+
args,
|
|
48
|
+
name: messageName,
|
|
49
|
+
};
|
|
50
|
+
const messageToPost = (_a = (yield (messageEncoder === null || messageEncoder === void 0 ? void 0 : messageEncoder.encode(message)))) !== null && _a !== void 0 ? _a : message;
|
|
51
|
+
popupWindow.postMessage(JSON.stringify(messageToPost), targetOrigin);
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
listenForMessage,
|
|
55
|
+
postMessage,
|
|
56
|
+
waitForMessage,
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
const parseDataFromWindowEvent = (data) => {
|
|
60
|
+
assertDefined(data.name, 'Name is required');
|
|
61
|
+
assertDefined(data.args, 'Args is required');
|
|
62
|
+
return {
|
|
63
|
+
args: data.args,
|
|
64
|
+
name: data.name,
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export { createPopupMessageClient };
|