@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 +10 -0
- package/dist/index.d.cts +15 -2
- package/dist/index.d.ts +15 -2
- package/dist/index.js +10 -0
- package/package.json +4 -4
- package/src/embedded-wallet.ts +14 -0
- package/src/index.ts +2 -3
- package/src/types.ts +21 -1
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.
|
|
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/
|
|
20
|
-
"@tomo-inc/
|
|
21
|
-
"@tomo-inc/inject-providers": "0.0.
|
|
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",
|
package/src/embedded-wallet.ts
CHANGED
|
@@ -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
|
-
|
|
1
|
+
export type { EmbeddedWalletConfig, InitConfig } from "./types";
|
|
2
2
|
|
|
3
|
-
export type {
|
|
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 =
|
|
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
|
+
};
|