@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 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.6",
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/wallet-utils": "0.0.6",
20
- "@tomo-inc/inject-providers": "0.0.4",
21
- "@tomo-inc/oidc-auth": "0.0.6"
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",
@@ -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
  */