@meshconnect/uwc-bridge-parent 0.0.2 → 0.0.3
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/BridgeParent.d.ts +3 -0
- package/dist/BridgeParent.d.ts.map +1 -1
- package/dist/BridgeParent.js +16 -4
- package/dist/BridgeParent.js.map +1 -1
- package/package.json +3 -4
- package/src/BridgeParent.ts +23 -7
package/dist/BridgeParent.d.ts
CHANGED
|
@@ -47,6 +47,8 @@ export interface ParentAPI {
|
|
|
47
47
|
export declare class BridgeParent {
|
|
48
48
|
private iframe;
|
|
49
49
|
private handshakeComplete;
|
|
50
|
+
private parentAPI;
|
|
51
|
+
private endpoint;
|
|
50
52
|
constructor(iframe: HTMLIFrameElement);
|
|
51
53
|
private initializeConnection;
|
|
52
54
|
isConnected(): boolean;
|
|
@@ -54,5 +56,6 @@ export declare class BridgeParent {
|
|
|
54
56
|
private getSolanaWallets;
|
|
55
57
|
private isSolanaWallet;
|
|
56
58
|
private generateWalletId;
|
|
59
|
+
destroy(): void;
|
|
57
60
|
}
|
|
58
61
|
//# sourceMappingURL=BridgeParent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeParent.d.ts","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAOhE,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAC5E;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,aAAa,GAAG,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAC/D,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,KAAK;IACxD,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,cAAc,EAAE,CAAA;IAChC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,qBAAqB,EAAE,kBAAkB,EAAE,CAAA;IAC3C,0BAA0B,EAAE,OAAO,CAAA;CACpC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"BridgeParent.d.ts","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAOhE,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAC5E;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,aAAa,GAAG,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAC/D,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,KAAK;IACxD,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,cAAc,EAAE,CAAA;IAChC,mBAAmB,EAAE,OAAO,CAAA;IAC5B,qBAAqB,EAAE,kBAAkB,EAAE,CAAA;IAC3C,0BAA0B,EAAE,OAAO,CAAA;CACpC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,MAAM,EAAE,iBAAiB;YASvB,oBAAoB;IA2BlC,WAAW,IAAI,OAAO;YAIR,eAAe;IA2C7B,OAAO,CAAC,gBAAgB;IAyDxB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,gBAAgB;IAKjB,OAAO,IAAI,IAAI;CAYvB"}
|
package/dist/BridgeParent.js
CHANGED
|
@@ -6,6 +6,8 @@ import { CoinbaseWalletAdapter } from '@solana/wallet-adapter-wallets';
|
|
|
6
6
|
export class BridgeParent {
|
|
7
7
|
iframe;
|
|
8
8
|
handshakeComplete = false;
|
|
9
|
+
parentAPI = null;
|
|
10
|
+
endpoint = null;
|
|
9
11
|
constructor(iframe) {
|
|
10
12
|
if (!iframe) {
|
|
11
13
|
throw new Error('BridgeParent requires an iframe element');
|
|
@@ -15,13 +17,12 @@ export class BridgeParent {
|
|
|
15
17
|
}
|
|
16
18
|
async initializeConnection() {
|
|
17
19
|
// Wait for iframe to be ready
|
|
18
|
-
if (!this.iframe.contentWindow) {
|
|
20
|
+
if (!this.iframe || !this.iframe.contentWindow) {
|
|
19
21
|
return;
|
|
20
22
|
}
|
|
21
23
|
const eip6963Wallets = await this.discoverWallets();
|
|
22
24
|
const walletStandardWallets = this.getSolanaWallets();
|
|
23
|
-
|
|
24
|
-
const parentAPI = {
|
|
25
|
+
this.parentAPI = {
|
|
25
26
|
eip6963Wallets: eip6963Wallets,
|
|
26
27
|
eip6963WalletsReady: true,
|
|
27
28
|
walletStandardWallets: walletStandardWallets,
|
|
@@ -29,7 +30,8 @@ export class BridgeParent {
|
|
|
29
30
|
};
|
|
30
31
|
// Use Comlink's windowEndpoint with proper cross-origin support
|
|
31
32
|
// For cross-origin, we need to listen on the parent window, not access the iframe's window
|
|
32
|
-
|
|
33
|
+
this.endpoint = Comlink.windowEndpoint(this.iframe.contentWindow, window, '*');
|
|
34
|
+
Comlink.expose(this.parentAPI, this.endpoint);
|
|
33
35
|
this.handshakeComplete = true;
|
|
34
36
|
}
|
|
35
37
|
isConnected() {
|
|
@@ -123,5 +125,15 @@ export class BridgeParent {
|
|
|
123
125
|
const chain = wallet.chains?.[0] || 'unknown';
|
|
124
126
|
return `${wallet.name}-${chain}`.toLowerCase().replace(/\s+/g, '-');
|
|
125
127
|
}
|
|
128
|
+
destroy() {
|
|
129
|
+
this.handshakeComplete = false;
|
|
130
|
+
if (this.parentAPI) {
|
|
131
|
+
this.parentAPI.eip6963Wallets = [];
|
|
132
|
+
this.parentAPI.walletStandardWallets = [];
|
|
133
|
+
this.parentAPI = null;
|
|
134
|
+
}
|
|
135
|
+
this.endpoint = null;
|
|
136
|
+
this.iframe = null;
|
|
137
|
+
}
|
|
126
138
|
}
|
|
127
139
|
//# sourceMappingURL=BridgeParent.js.map
|
package/dist/BridgeParent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeParent.js","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,uCAAuC,EAAE,MAAM,6BAA6B,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAuDtE,MAAM,OAAO,YAAY;IACf,MAAM,
|
|
1
|
+
{"version":3,"file":"BridgeParent.js","sourceRoot":"","sources":["../src/BridgeParent.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshconnect/uwc-bridge-parent",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Parent window bridge for Universal Wallet Connector",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -19,8 +19,7 @@
|
|
|
19
19
|
"comlink": "^4.4.1"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"
|
|
23
|
-
"typescript": "^5.3.3"
|
|
22
|
+
"typescript": "^5.9.2"
|
|
24
23
|
},
|
|
25
24
|
"files": [
|
|
26
25
|
"dist",
|
|
@@ -30,7 +29,7 @@
|
|
|
30
29
|
"scripts": {
|
|
31
30
|
"build": "tsc",
|
|
32
31
|
"dev": "tsc --watch",
|
|
33
|
-
"lint": "eslint src",
|
|
32
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
34
33
|
"type-check": "tsc --noEmit"
|
|
35
34
|
}
|
|
36
35
|
}
|
package/src/BridgeParent.ts
CHANGED
|
@@ -60,8 +60,10 @@ export interface ParentAPI {
|
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
export class BridgeParent {
|
|
63
|
-
private iframe: HTMLIFrameElement
|
|
63
|
+
private iframe: HTMLIFrameElement | null
|
|
64
64
|
private handshakeComplete = false
|
|
65
|
+
private parentAPI: ParentAPI | null = null
|
|
66
|
+
private endpoint: Comlink.Endpoint | null = null
|
|
65
67
|
|
|
66
68
|
constructor(iframe: HTMLIFrameElement) {
|
|
67
69
|
if (!iframe) {
|
|
@@ -74,14 +76,13 @@ export class BridgeParent {
|
|
|
74
76
|
|
|
75
77
|
private async initializeConnection(): Promise<void> {
|
|
76
78
|
// Wait for iframe to be ready
|
|
77
|
-
if (!this.iframe.contentWindow) {
|
|
79
|
+
if (!this.iframe || !this.iframe.contentWindow) {
|
|
78
80
|
return
|
|
79
81
|
}
|
|
80
82
|
|
|
81
83
|
const eip6963Wallets = await this.discoverWallets()
|
|
82
84
|
const walletStandardWallets = this.getSolanaWallets()
|
|
83
|
-
|
|
84
|
-
const parentAPI: ParentAPI = {
|
|
85
|
+
this.parentAPI = {
|
|
85
86
|
eip6963Wallets: eip6963Wallets,
|
|
86
87
|
eip6963WalletsReady: true,
|
|
87
88
|
walletStandardWallets: walletStandardWallets,
|
|
@@ -90,10 +91,12 @@ export class BridgeParent {
|
|
|
90
91
|
|
|
91
92
|
// Use Comlink's windowEndpoint with proper cross-origin support
|
|
92
93
|
// For cross-origin, we need to listen on the parent window, not access the iframe's window
|
|
93
|
-
Comlink.
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
this.endpoint = Comlink.windowEndpoint(
|
|
95
|
+
this.iframe.contentWindow,
|
|
96
|
+
window,
|
|
97
|
+
'*'
|
|
96
98
|
)
|
|
99
|
+
Comlink.expose(this.parentAPI, this.endpoint)
|
|
97
100
|
|
|
98
101
|
this.handshakeComplete = true
|
|
99
102
|
}
|
|
@@ -213,4 +216,17 @@ export class BridgeParent {
|
|
|
213
216
|
const chain = wallet.chains?.[0] || 'unknown'
|
|
214
217
|
return `${wallet.name}-${chain}`.toLowerCase().replace(/\s+/g, '-')
|
|
215
218
|
}
|
|
219
|
+
|
|
220
|
+
public destroy(): void {
|
|
221
|
+
this.handshakeComplete = false
|
|
222
|
+
|
|
223
|
+
if (this.parentAPI) {
|
|
224
|
+
this.parentAPI.eip6963Wallets = []
|
|
225
|
+
this.parentAPI.walletStandardWallets = []
|
|
226
|
+
this.parentAPI = null
|
|
227
|
+
}
|
|
228
|
+
this.endpoint = null
|
|
229
|
+
|
|
230
|
+
this.iframe = null
|
|
231
|
+
}
|
|
216
232
|
}
|