@tomo-inc/embedded-wallet-providers 0.0.15 → 0.0.16

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
@@ -156,6 +156,7 @@ var EmbeddedWallet = class _EmbeddedWallet {
156
156
  this.walletIframe = null;
157
157
  this.walletOrigin = "";
158
158
  this.maskZIndex = 999;
159
+ this.persistedTheme = null;
159
160
  this.loginByGoogle = null;
160
161
  this.loginByX = null;
161
162
  this.loginStatusCallback = null;
@@ -263,6 +264,11 @@ var EmbeddedWallet = class _EmbeddedWallet {
263
264
  var _a;
264
265
  if ((data == null ? void 0 : data.type) === "wallet-ready" && origin === this.walletOrigin) {
265
266
  this.isAvailable = ((_a = data == null ? void 0 : data.data) == null ? void 0 : _a.isAvailable) || false;
267
+ if (this.persistedTheme) {
268
+ setTimeout(() => {
269
+ this.request("theme-change", this.persistedTheme);
270
+ }, 0);
271
+ }
266
272
  resolve(data == null ? void 0 : data.data);
267
273
  if (this.loginStatusCallback) {
268
274
  this == null ? void 0 : this.loginStatusCallback({ type: "login" });
@@ -277,6 +283,10 @@ var EmbeddedWallet = class _EmbeddedWallet {
277
283
  window.addEventListener("message", this.walletCloseHandler);
278
284
  });
279
285
  }
286
+ async themeChange(theme) {
287
+ this.persistedTheme = theme;
288
+ this.request("theme-change", theme);
289
+ }
280
290
  popup() {
281
291
  if (!this.walletIframe) {
282
292
  return;
package/dist/index.d.cts CHANGED
@@ -10,6 +10,7 @@ interface InitConfig {
10
10
  tomoClientId: string;
11
11
  walletBaseUrl: string;
12
12
  relayBaseUrl?: string;
13
+ theme: any;
13
14
  }
14
15
  interface WalletInfo {
15
16
  uuid: string;
@@ -21,8 +22,18 @@ interface WalletInfo {
21
22
  homepage: string;
22
23
  };
23
24
  }
24
- type WalletRequestMethod = "logout" | "token" | "market" | "assets" | "transactions" | "wallet" | "emailLogin";
25
+ type WalletRequestMethod = "logout" | "token" | "market" | "assets" | "transactions" | "wallet" | "emailLogin" | "theme-change";
25
26
  type WalletOpenMethod = "wallet" | "swap" | "onRamp" | "funding" | "mfaVerify" | "mnemonic" | "setting";
27
+ type EmbeddedWalletConfig = {
28
+ tomoStage: "dev" | "pre" | "prod";
29
+ name: string;
30
+ logo: string;
31
+ clientId: string;
32
+ googleClientId: string;
33
+ xClientId: string;
34
+ walletBaseUrl: string;
35
+ [key: string]: unknown;
36
+ };
26
37
 
27
38
  declare class EmbeddedWallet {
28
39
  isAvailable: boolean;
@@ -37,6 +48,7 @@ declare class EmbeddedWallet {
37
48
  walletOrigin: string;
38
49
  maskZIndex: number;
39
50
  private static instance;
51
+ private persistedTheme;
40
52
  loginByGoogle: (() => Promise<string>) | null;
41
53
  loginByX: (() => Promise<string>) | null;
42
54
  loginStatusCallback: (({ type }: {
@@ -58,6 +70,7 @@ declare class EmbeddedWallet {
58
70
  message?: string;
59
71
  isAvailable: boolean;
60
72
  }>;
73
+ themeChange(theme: any): Promise<void>;
61
74
  private walletCloseHandler;
62
75
  popup(): void;
63
76
  close(): void;
@@ -86,4 +99,4 @@ declare class EmbeddedWallet {
86
99
  open(method: WalletOpenMethod, params?: any): Promise<any>;
87
100
  }
88
101
 
89
- export { EmbeddedWallet, type InitConfig };
102
+ export { EmbeddedWallet, type EmbeddedWalletConfig, type InitConfig };
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ interface InitConfig {
10
10
  tomoClientId: string;
11
11
  walletBaseUrl: string;
12
12
  relayBaseUrl?: string;
13
+ theme: any;
13
14
  }
14
15
  interface WalletInfo {
15
16
  uuid: string;
@@ -21,8 +22,18 @@ interface WalletInfo {
21
22
  homepage: string;
22
23
  };
23
24
  }
24
- type WalletRequestMethod = "logout" | "token" | "market" | "assets" | "transactions" | "wallet" | "emailLogin";
25
+ type WalletRequestMethod = "logout" | "token" | "market" | "assets" | "transactions" | "wallet" | "emailLogin" | "theme-change";
25
26
  type WalletOpenMethod = "wallet" | "swap" | "onRamp" | "funding" | "mfaVerify" | "mnemonic" | "setting";
27
+ type EmbeddedWalletConfig = {
28
+ tomoStage: "dev" | "pre" | "prod";
29
+ name: string;
30
+ logo: string;
31
+ clientId: string;
32
+ googleClientId: string;
33
+ xClientId: string;
34
+ walletBaseUrl: string;
35
+ [key: string]: unknown;
36
+ };
26
37
 
27
38
  declare class EmbeddedWallet {
28
39
  isAvailable: boolean;
@@ -37,6 +48,7 @@ declare class EmbeddedWallet {
37
48
  walletOrigin: string;
38
49
  maskZIndex: number;
39
50
  private static instance;
51
+ private persistedTheme;
40
52
  loginByGoogle: (() => Promise<string>) | null;
41
53
  loginByX: (() => Promise<string>) | null;
42
54
  loginStatusCallback: (({ type }: {
@@ -58,6 +70,7 @@ declare class EmbeddedWallet {
58
70
  message?: string;
59
71
  isAvailable: boolean;
60
72
  }>;
73
+ themeChange(theme: any): Promise<void>;
61
74
  private walletCloseHandler;
62
75
  popup(): void;
63
76
  close(): void;
@@ -86,4 +99,4 @@ declare class EmbeddedWallet {
86
99
  open(method: WalletOpenMethod, params?: any): Promise<any>;
87
100
  }
88
101
 
89
- export { EmbeddedWallet, type InitConfig };
102
+ export { EmbeddedWallet, type EmbeddedWalletConfig, type InitConfig };
package/dist/index.js CHANGED
@@ -154,6 +154,7 @@ var EmbeddedWallet = class _EmbeddedWallet {
154
154
  this.walletIframe = null;
155
155
  this.walletOrigin = "";
156
156
  this.maskZIndex = 999;
157
+ this.persistedTheme = null;
157
158
  this.loginByGoogle = null;
158
159
  this.loginByX = null;
159
160
  this.loginStatusCallback = null;
@@ -261,6 +262,11 @@ var EmbeddedWallet = class _EmbeddedWallet {
261
262
  var _a;
262
263
  if ((data == null ? void 0 : data.type) === "wallet-ready" && origin === this.walletOrigin) {
263
264
  this.isAvailable = ((_a = data == null ? void 0 : data.data) == null ? void 0 : _a.isAvailable) || false;
265
+ if (this.persistedTheme) {
266
+ setTimeout(() => {
267
+ this.request("theme-change", this.persistedTheme);
268
+ }, 0);
269
+ }
264
270
  resolve(data == null ? void 0 : data.data);
265
271
  if (this.loginStatusCallback) {
266
272
  this == null ? void 0 : this.loginStatusCallback({ type: "login" });
@@ -275,6 +281,10 @@ var EmbeddedWallet = class _EmbeddedWallet {
275
281
  window.addEventListener("message", this.walletCloseHandler);
276
282
  });
277
283
  }
284
+ async themeChange(theme) {
285
+ this.persistedTheme = theme;
286
+ this.request("theme-change", theme);
287
+ }
278
288
  popup() {
279
289
  if (!this.walletIframe) {
280
290
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomo-inc/embedded-wallet-providers",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
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.15",
20
- "@tomo-inc/oidc-auth": "0.0.15",
21
- "@tomo-inc/inject-providers": "0.0.13"
19
+ "@tomo-inc/oidc-auth": "0.0.16",
20
+ "@tomo-inc/wallet-utils": "0.0.16",
21
+ "@tomo-inc/inject-providers": "0.0.14"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^20.0.0",
@@ -18,6 +18,7 @@ export class EmbeddedWallet {
18
18
  public walletOrigin: string = "";
19
19
  public maskZIndex: number = 999;
20
20
  private static instance: EmbeddedWallet;
21
+ private persistedTheme: any | null = null;
21
22
  public loginByGoogle: (() => Promise<string>) | null = null;
22
23
  public loginByX: (() => Promise<string>) | null = null;
23
24
  public loginStatusCallback: (({ type }: { type: string }) => void) | null = null;
@@ -128,6 +129,13 @@ export class EmbeddedWallet {
128
129
  const receiveResponse = ({ origin, data }: { origin: string; data: any }) => {
129
130
  if (data?.type === "wallet-ready" && origin === this.walletOrigin) {
130
131
  this.isAvailable = data?.data?.isAvailable || false;
132
+ // Apply persisted theme after wallet is ready
133
+ if (this.persistedTheme) {
134
+ // Apply persisted theme asynchronously
135
+ setTimeout(() => {
136
+ this.request("theme-change", this.persistedTheme);
137
+ }, 0);
138
+ }
131
139
  resolve(data?.data);
132
140
  if (this.loginStatusCallback) {
133
141
  this?.loginStatusCallback({ type: "login" });
@@ -144,6 +152,12 @@ export class EmbeddedWallet {
144
152
  });
145
153
  }
146
154
 
155
+ public async themeChange(theme: any) {
156
+ // Persist theme to memory
157
+ this.persistedTheme = theme;
158
+ this.request("theme-change", theme);
159
+ }
160
+
147
161
  private walletCloseHandler = ({ origin, data }: { origin: string; data: any }) => {
148
162
  if (data?.type === "wallet-close" && origin === this.walletOrigin) {
149
163
  this.close();
package/src/index.ts CHANGED
@@ -1,6 +1,5 @@
1
- import type { InitConfig } from "./types";
1
+ export type { EmbeddedWalletConfig, InitConfig } from "./types";
2
2
 
3
- export type { InitConfig };
4
- export { type EmailLoginResult } from "@tomo-inc/oidc-auth";
3
+ export type { EmailLoginResult } from "@tomo-inc/oidc-auth";
5
4
 
6
5
  export { EmbeddedWallet } from "./embedded-wallet";
package/src/types.ts CHANGED
@@ -7,6 +7,7 @@ export interface InitConfig {
7
7
  tomoClientId: string;
8
8
  walletBaseUrl: string;
9
9
  relayBaseUrl?: string;
10
+ theme: any;
10
11
  }
11
12
 
12
13
  export interface WalletInfo {
@@ -20,6 +21,25 @@ export interface WalletInfo {
20
21
  };
21
22
  }
22
23
 
23
- export type WalletRequestMethod = "logout" | "token" | "market" | "assets" | "transactions" | "wallet" | "emailLogin";
24
+ export type WalletRequestMethod =
25
+ | "logout"
26
+ | "token"
27
+ | "market"
28
+ | "assets"
29
+ | "transactions"
30
+ | "wallet"
31
+ | "emailLogin"
32
+ | "theme-change";
24
33
 
25
34
  export type WalletOpenMethod = "wallet" | "swap" | "onRamp" | "funding" | "mfaVerify" | "mnemonic" | "setting";
35
+
36
+ export type EmbeddedWalletConfig = {
37
+ tomoStage: "dev" | "pre" | "prod";
38
+ name: string;
39
+ logo: string;
40
+ clientId: string;
41
+ googleClientId: string;
42
+ xClientId: string;
43
+ walletBaseUrl: string;
44
+ [key: string]: unknown;
45
+ };