@tomo-inc/embedded-wallet-providers 0.0.6 → 0.0.8
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/index.cjs +17 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +17 -0
- package/package.json +4 -4
- package/src/embedded-wallet.ts +19 -0
package/dist/index.cjs
CHANGED
|
@@ -157,11 +157,20 @@ var EmbeddedWallet = class _EmbeddedWallet {
|
|
|
157
157
|
this.maskZIndex = 999;
|
|
158
158
|
this.loginByGoogle = null;
|
|
159
159
|
this.loginByX = null;
|
|
160
|
+
this.loginStatusCallback = null;
|
|
160
161
|
this.walletCloseHandler = ({ origin, data }) => {
|
|
161
162
|
if ((data == null ? void 0 : data.type) === "wallet-close" && origin === this.walletOrigin) {
|
|
162
163
|
this.close();
|
|
163
164
|
}
|
|
164
165
|
};
|
|
166
|
+
this.logoutListener = ({ origin, data }) => {
|
|
167
|
+
if ((data == null ? void 0 : data.type) === "wallet-response" && origin === this.walletOrigin && (data == null ? void 0 : data.method) === "logout") {
|
|
168
|
+
this.logout();
|
|
169
|
+
if (this.loginStatusCallback) {
|
|
170
|
+
this == null ? void 0 : this.loginStatusCallback({ type: "logout" });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
};
|
|
165
174
|
}
|
|
166
175
|
static getInstance() {
|
|
167
176
|
if (!_EmbeddedWallet.instance) {
|
|
@@ -254,6 +263,9 @@ var EmbeddedWallet = class _EmbeddedWallet {
|
|
|
254
263
|
if ((data == null ? void 0 : data.type) === "wallet-ready" && origin === this.walletOrigin) {
|
|
255
264
|
this.isAvailable = ((_a = data == null ? void 0 : data.data) == null ? void 0 : _a.isAvailable) || false;
|
|
256
265
|
resolve(data == null ? void 0 : data.data);
|
|
266
|
+
if (this.loginStatusCallback) {
|
|
267
|
+
this == null ? void 0 : this.loginStatusCallback({ type: "login" });
|
|
268
|
+
}
|
|
257
269
|
window.removeEventListener("message", receiveResponse);
|
|
258
270
|
}
|
|
259
271
|
if ((data == null ? void 0 : data.type) === "wallet-close" && origin === this.walletOrigin) {
|
|
@@ -287,6 +299,7 @@ var EmbeddedWallet = class _EmbeddedWallet {
|
|
|
287
299
|
this.walletIframe.src = `${this.walletOrigin}#logout=true`;
|
|
288
300
|
}
|
|
289
301
|
window.removeEventListener("message", this.walletCloseHandler);
|
|
302
|
+
window.removeEventListener("message", this.logoutListener);
|
|
290
303
|
this.request("logout");
|
|
291
304
|
return true;
|
|
292
305
|
}
|
|
@@ -335,6 +348,10 @@ var EmbeddedWallet = class _EmbeddedWallet {
|
|
|
335
348
|
window.addEventListener("message", receiveResponse);
|
|
336
349
|
});
|
|
337
350
|
}
|
|
351
|
+
onLoginStatusChanged(callback) {
|
|
352
|
+
this.loginStatusCallback = callback;
|
|
353
|
+
window.addEventListener("message", this.logoutListener);
|
|
354
|
+
}
|
|
338
355
|
/**
|
|
339
356
|
* wallet features page
|
|
340
357
|
*/
|
package/dist/index.d.cts
CHANGED
|
@@ -39,6 +39,9 @@ declare class EmbeddedWallet {
|
|
|
39
39
|
private static instance;
|
|
40
40
|
loginByGoogle: (() => Promise<string>) | null;
|
|
41
41
|
loginByX: (() => Promise<string>) | null;
|
|
42
|
+
loginStatusCallback: (({ type }: {
|
|
43
|
+
type: string;
|
|
44
|
+
}) => void) | null;
|
|
42
45
|
constructor();
|
|
43
46
|
static getInstance(): EmbeddedWallet;
|
|
44
47
|
init(config: InitConfig): Promise<{
|
|
@@ -68,11 +71,15 @@ declare class EmbeddedWallet {
|
|
|
68
71
|
loginByEmail({ email }: {
|
|
69
72
|
email?: string;
|
|
70
73
|
}): Promise<string>;
|
|
74
|
+
private logoutListener;
|
|
71
75
|
/**
|
|
72
76
|
* wallet feature apis
|
|
73
77
|
* wallet action without user approve
|
|
74
78
|
*/
|
|
75
79
|
request(method: WalletRequestMethod, params?: any): Promise<any>;
|
|
80
|
+
onLoginStatusChanged(callback: ({ type }: {
|
|
81
|
+
type: string;
|
|
82
|
+
}) => void): void;
|
|
76
83
|
/**
|
|
77
84
|
* wallet features page
|
|
78
85
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -39,6 +39,9 @@ declare class EmbeddedWallet {
|
|
|
39
39
|
private static instance;
|
|
40
40
|
loginByGoogle: (() => Promise<string>) | null;
|
|
41
41
|
loginByX: (() => Promise<string>) | null;
|
|
42
|
+
loginStatusCallback: (({ type }: {
|
|
43
|
+
type: string;
|
|
44
|
+
}) => void) | null;
|
|
42
45
|
constructor();
|
|
43
46
|
static getInstance(): EmbeddedWallet;
|
|
44
47
|
init(config: InitConfig): Promise<{
|
|
@@ -68,11 +71,15 @@ declare class EmbeddedWallet {
|
|
|
68
71
|
loginByEmail({ email }: {
|
|
69
72
|
email?: string;
|
|
70
73
|
}): Promise<string>;
|
|
74
|
+
private logoutListener;
|
|
71
75
|
/**
|
|
72
76
|
* wallet feature apis
|
|
73
77
|
* wallet action without user approve
|
|
74
78
|
*/
|
|
75
79
|
request(method: WalletRequestMethod, params?: any): Promise<any>;
|
|
80
|
+
onLoginStatusChanged(callback: ({ type }: {
|
|
81
|
+
type: string;
|
|
82
|
+
}) => void): void;
|
|
76
83
|
/**
|
|
77
84
|
* wallet features page
|
|
78
85
|
*/
|
package/dist/index.js
CHANGED
|
@@ -155,11 +155,20 @@ var EmbeddedWallet = class _EmbeddedWallet {
|
|
|
155
155
|
this.maskZIndex = 999;
|
|
156
156
|
this.loginByGoogle = null;
|
|
157
157
|
this.loginByX = null;
|
|
158
|
+
this.loginStatusCallback = null;
|
|
158
159
|
this.walletCloseHandler = ({ origin, data }) => {
|
|
159
160
|
if ((data == null ? void 0 : data.type) === "wallet-close" && origin === this.walletOrigin) {
|
|
160
161
|
this.close();
|
|
161
162
|
}
|
|
162
163
|
};
|
|
164
|
+
this.logoutListener = ({ origin, data }) => {
|
|
165
|
+
if ((data == null ? void 0 : data.type) === "wallet-response" && origin === this.walletOrigin && (data == null ? void 0 : data.method) === "logout") {
|
|
166
|
+
this.logout();
|
|
167
|
+
if (this.loginStatusCallback) {
|
|
168
|
+
this == null ? void 0 : this.loginStatusCallback({ type: "logout" });
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
};
|
|
163
172
|
}
|
|
164
173
|
static getInstance() {
|
|
165
174
|
if (!_EmbeddedWallet.instance) {
|
|
@@ -252,6 +261,9 @@ var EmbeddedWallet = class _EmbeddedWallet {
|
|
|
252
261
|
if ((data == null ? void 0 : data.type) === "wallet-ready" && origin === this.walletOrigin) {
|
|
253
262
|
this.isAvailable = ((_a = data == null ? void 0 : data.data) == null ? void 0 : _a.isAvailable) || false;
|
|
254
263
|
resolve(data == null ? void 0 : data.data);
|
|
264
|
+
if (this.loginStatusCallback) {
|
|
265
|
+
this == null ? void 0 : this.loginStatusCallback({ type: "login" });
|
|
266
|
+
}
|
|
255
267
|
window.removeEventListener("message", receiveResponse);
|
|
256
268
|
}
|
|
257
269
|
if ((data == null ? void 0 : data.type) === "wallet-close" && origin === this.walletOrigin) {
|
|
@@ -285,6 +297,7 @@ var EmbeddedWallet = class _EmbeddedWallet {
|
|
|
285
297
|
this.walletIframe.src = `${this.walletOrigin}#logout=true`;
|
|
286
298
|
}
|
|
287
299
|
window.removeEventListener("message", this.walletCloseHandler);
|
|
300
|
+
window.removeEventListener("message", this.logoutListener);
|
|
288
301
|
this.request("logout");
|
|
289
302
|
return true;
|
|
290
303
|
}
|
|
@@ -333,6 +346,10 @@ var EmbeddedWallet = class _EmbeddedWallet {
|
|
|
333
346
|
window.addEventListener("message", receiveResponse);
|
|
334
347
|
});
|
|
335
348
|
}
|
|
349
|
+
onLoginStatusChanged(callback) {
|
|
350
|
+
this.loginStatusCallback = callback;
|
|
351
|
+
window.addEventListener("message", this.logoutListener);
|
|
352
|
+
}
|
|
336
353
|
/**
|
|
337
354
|
* wallet features page
|
|
338
355
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tomo-inc/embedded-wallet-providers",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"author": "tomo.inc",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@tomo-inc/
|
|
20
|
-
"@tomo-inc/inject-providers": "0.0.
|
|
21
|
-
"@tomo-inc/
|
|
19
|
+
"@tomo-inc/oidc-auth": "0.0.8",
|
|
20
|
+
"@tomo-inc/inject-providers": "0.0.6",
|
|
21
|
+
"@tomo-inc/wallet-utils": "0.0.8"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/node": "^20.0.0",
|
package/src/embedded-wallet.ts
CHANGED
|
@@ -20,6 +20,7 @@ export class EmbeddedWallet {
|
|
|
20
20
|
private static instance: EmbeddedWallet;
|
|
21
21
|
public loginByGoogle: (() => Promise<string>) | null = null;
|
|
22
22
|
public loginByX: (() => Promise<string>) | null = null;
|
|
23
|
+
public loginStatusCallback: (({ type }: { type: string }) => void) | null = null;
|
|
23
24
|
public constructor() {}
|
|
24
25
|
|
|
25
26
|
public static getInstance() {
|
|
@@ -128,6 +129,9 @@ export class EmbeddedWallet {
|
|
|
128
129
|
if (data?.type === "wallet-ready" && origin === this.walletOrigin) {
|
|
129
130
|
this.isAvailable = data?.data?.isAvailable || false;
|
|
130
131
|
resolve(data?.data);
|
|
132
|
+
if (this.loginStatusCallback) {
|
|
133
|
+
this?.loginStatusCallback({ type: "login" });
|
|
134
|
+
}
|
|
131
135
|
window.removeEventListener("message", receiveResponse);
|
|
132
136
|
}
|
|
133
137
|
if (data?.type === "wallet-close" && origin === this.walletOrigin) {
|
|
@@ -178,6 +182,7 @@ export class EmbeddedWallet {
|
|
|
178
182
|
this.walletIframe.src = `${this.walletOrigin}#logout=true`;
|
|
179
183
|
}
|
|
180
184
|
window.removeEventListener("message", this.walletCloseHandler);
|
|
185
|
+
window.removeEventListener("message", this.logoutListener);
|
|
181
186
|
this.request("logout");
|
|
182
187
|
return true;
|
|
183
188
|
}
|
|
@@ -212,6 +217,15 @@ export class EmbeddedWallet {
|
|
|
212
217
|
});
|
|
213
218
|
}
|
|
214
219
|
|
|
220
|
+
private logoutListener = ({ origin, data }: { origin: string; data: any }) => {
|
|
221
|
+
if (data?.type === "wallet-response" && origin === this.walletOrigin && data?.method === "logout") {
|
|
222
|
+
this.logout();
|
|
223
|
+
if (this.loginStatusCallback) {
|
|
224
|
+
this?.loginStatusCallback({ type: "logout" });
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
|
|
215
229
|
/**
|
|
216
230
|
* wallet feature apis
|
|
217
231
|
* wallet action without user approve
|
|
@@ -232,6 +246,11 @@ export class EmbeddedWallet {
|
|
|
232
246
|
});
|
|
233
247
|
}
|
|
234
248
|
|
|
249
|
+
public onLoginStatusChanged(callback: ({ type }: { type: string }) => void) {
|
|
250
|
+
this.loginStatusCallback = callback;
|
|
251
|
+
window.addEventListener("message", this.logoutListener);
|
|
252
|
+
}
|
|
253
|
+
|
|
235
254
|
/**
|
|
236
255
|
* wallet features page
|
|
237
256
|
*/
|