@zerodev/wallet-react 0.0.1-alpha.1 → 0.0.1-alpha.11
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/CHANGELOG.md +74 -0
- package/README.md +30 -17
- package/dist/_cjs/actions.js +62 -24
- package/dist/_cjs/connector.js +82 -48
- package/dist/_cjs/hooks/useExportPrivateKey.js +18 -0
- package/dist/_cjs/hooks/useGetUserEmail.js +19 -0
- package/dist/_cjs/index.js +8 -1
- package/dist/_cjs/oauth.js +60 -55
- package/dist/_cjs/provider.js +5 -2
- package/dist/_cjs/store.js +4 -9
- package/dist/_esm/actions.js +74 -27
- package/dist/_esm/connector.js +98 -55
- package/dist/_esm/hooks/useExportPrivateKey.js +18 -0
- package/dist/_esm/hooks/useGetUserEmail.js +19 -0
- package/dist/_esm/index.js +3 -1
- package/dist/_esm/oauth.js +71 -53
- package/dist/_esm/provider.js +5 -2
- package/dist/_esm/store.js +4 -10
- package/dist/_types/actions.d.ts +35 -6
- package/dist/_types/actions.d.ts.map +1 -1
- package/dist/_types/connector.d.ts +0 -2
- package/dist/_types/connector.d.ts.map +1 -1
- package/dist/_types/hooks/useExportPrivateKey.d.ts +18 -0
- package/dist/_types/hooks/useExportPrivateKey.d.ts.map +1 -0
- package/dist/_types/hooks/useGetUserEmail.d.ts +18 -0
- package/dist/_types/hooks/useGetUserEmail.d.ts.map +1 -0
- package/dist/_types/index.d.ts +4 -2
- package/dist/_types/index.d.ts.map +1 -1
- package/dist/_types/oauth.d.ts +25 -12
- package/dist/_types/oauth.d.ts.map +1 -1
- package/dist/_types/provider.d.ts.map +1 -1
- package/dist/_types/store.d.ts +11 -7
- package/dist/_types/store.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/actions.test.ts +895 -0
- package/src/actions.ts +124 -44
- package/src/connector.ts +117 -65
- package/src/hooks/useExportPrivateKey.ts +57 -0
- package/src/hooks/useGetUserEmail.ts +52 -0
- package/src/index.ts +9 -2
- package/src/oauth.test.ts +445 -0
- package/src/oauth.ts +97 -78
- package/src/provider.ts +5 -2
- package/src/store.ts +15 -16
- package/tsconfig.build.tsbuildinfo +1 -1
package/dist/_esm/oauth.js
CHANGED
|
@@ -2,33 +2,8 @@ import { sha256 } from 'viem';
|
|
|
2
2
|
export const OAUTH_PROVIDERS = {
|
|
3
3
|
GOOGLE: 'google',
|
|
4
4
|
};
|
|
5
|
-
const GOOGLE_AUTH_URL = 'https://accounts.google.com/o/oauth2/v2/auth';
|
|
6
5
|
const POPUP_WIDTH = 500;
|
|
7
6
|
const POPUP_HEIGHT = 600;
|
|
8
|
-
export function buildOAuthUrl(params) {
|
|
9
|
-
const { provider, clientId, redirectUri, nonce, state } = params;
|
|
10
|
-
if (provider !== OAUTH_PROVIDERS.GOOGLE) {
|
|
11
|
-
throw new Error(`Unsupported OAuth provider: ${provider}`);
|
|
12
|
-
}
|
|
13
|
-
const authUrl = new URL(GOOGLE_AUTH_URL);
|
|
14
|
-
authUrl.searchParams.set('client_id', clientId);
|
|
15
|
-
authUrl.searchParams.set('redirect_uri', redirectUri);
|
|
16
|
-
authUrl.searchParams.set('response_type', 'id_token');
|
|
17
|
-
authUrl.searchParams.set('scope', 'openid email profile');
|
|
18
|
-
authUrl.searchParams.set('nonce', nonce);
|
|
19
|
-
authUrl.searchParams.set('prompt', 'select_account');
|
|
20
|
-
let stateParam = `provider=${provider}`;
|
|
21
|
-
if (state) {
|
|
22
|
-
const additionalState = Object.entries(state)
|
|
23
|
-
.map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
|
|
24
|
-
.join('&');
|
|
25
|
-
if (additionalState) {
|
|
26
|
-
stateParam += `&${additionalState}`;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
authUrl.searchParams.set('state', stateParam);
|
|
30
|
-
return authUrl.toString();
|
|
31
|
-
}
|
|
32
7
|
export function openOAuthPopup(url) {
|
|
33
8
|
const width = POPUP_WIDTH;
|
|
34
9
|
const height = POPUP_HEIGHT;
|
|
@@ -40,38 +15,81 @@ export function openOAuthPopup(url) {
|
|
|
40
15
|
}
|
|
41
16
|
return authWindow;
|
|
42
17
|
}
|
|
43
|
-
export function
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
18
|
+
export function generateOAuthNonce(publicKey) {
|
|
19
|
+
return sha256(publicKey).replace(/^0x/, '');
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build OAuth URL that redirects to backend's OAuth endpoint
|
|
23
|
+
* The backend handles PKCE, client credentials, and token exchange
|
|
24
|
+
*/
|
|
25
|
+
export function buildBackendOAuthUrl(params) {
|
|
26
|
+
const { provider, backendUrl, projectId, publicKey, returnTo } = params;
|
|
27
|
+
if (provider !== OAUTH_PROVIDERS.GOOGLE) {
|
|
28
|
+
throw new Error(`Unsupported OAuth provider: ${provider}`);
|
|
49
29
|
}
|
|
50
|
-
|
|
30
|
+
const oauthUrl = new URL(`${backendUrl}/oauth/google/login`);
|
|
31
|
+
oauthUrl.searchParams.set('project_id', projectId);
|
|
32
|
+
oauthUrl.searchParams.set('pub_key', publicKey.replace(/^0x/, ''));
|
|
33
|
+
oauthUrl.searchParams.set('return_to', returnTo);
|
|
34
|
+
return oauthUrl.toString();
|
|
51
35
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
}
|
|
36
|
+
/**
|
|
37
|
+
* Listen for OAuth completion via postMessage from popup
|
|
38
|
+
* The popup sends a message when it detects a successful redirect
|
|
39
|
+
*/
|
|
40
|
+
export function listenForOAuthMessage(authWindow, expectedOrigin, onSuccess, onError) {
|
|
41
|
+
let cleaned = false;
|
|
42
|
+
const handleMessage = (event) => {
|
|
43
|
+
// Only trust messages from expected origin
|
|
44
|
+
if (event.origin !== expectedOrigin)
|
|
45
|
+
return;
|
|
46
|
+
if (!event.data || typeof event.data !== 'object')
|
|
47
|
+
return;
|
|
48
|
+
if (event.data.type === 'oauth_success') {
|
|
49
|
+
cleanup();
|
|
50
|
+
onSuccess();
|
|
69
51
|
}
|
|
70
|
-
|
|
71
|
-
|
|
52
|
+
else if (event.data.type === 'oauth_error') {
|
|
53
|
+
cleanup();
|
|
54
|
+
onError(new Error(event.data.error || 'OAuth authentication failed'));
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const checkWindowClosed = setInterval(() => {
|
|
58
|
+
if (authWindow.closed) {
|
|
59
|
+
cleanup();
|
|
60
|
+
onError(new Error('Authentication window was closed'));
|
|
72
61
|
}
|
|
73
62
|
}, 500);
|
|
63
|
+
const cleanup = () => {
|
|
64
|
+
if (cleaned)
|
|
65
|
+
return;
|
|
66
|
+
cleaned = true;
|
|
67
|
+
window.removeEventListener('message', handleMessage);
|
|
68
|
+
clearInterval(checkWindowClosed);
|
|
69
|
+
};
|
|
70
|
+
window.addEventListener('message', handleMessage);
|
|
71
|
+
return cleanup;
|
|
74
72
|
}
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Handle OAuth callback on the return page
|
|
75
|
+
* Call this on the page that receives the OAuth redirect
|
|
76
|
+
* It sends a postMessage to the opener and closes the window
|
|
77
|
+
*/
|
|
78
|
+
export function handleOAuthCallback(successParam = 'oauth_success') {
|
|
79
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
80
|
+
const isSuccess = urlParams.get(successParam) === 'true';
|
|
81
|
+
const error = urlParams.get('error');
|
|
82
|
+
if (window.opener) {
|
|
83
|
+
if (isSuccess) {
|
|
84
|
+
window.opener.postMessage({ type: 'oauth_success' }, window.location.origin);
|
|
85
|
+
window.close();
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
if (error) {
|
|
89
|
+
window.opener.postMessage({ type: 'oauth_error', error }, window.location.origin);
|
|
90
|
+
window.close();
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
77
95
|
}
|
package/dist/_esm/provider.js
CHANGED
|
@@ -79,7 +79,10 @@ export function createProvider({ store, config, }) {
|
|
|
79
79
|
},
|
|
80
80
|
async request({ method, params }) {
|
|
81
81
|
const state = store.getState();
|
|
82
|
-
const activeChainId = state.
|
|
82
|
+
const activeChainId = state.activeChainId;
|
|
83
|
+
if (!activeChainId) {
|
|
84
|
+
throw new Error('No active chain');
|
|
85
|
+
}
|
|
83
86
|
switch (method) {
|
|
84
87
|
case 'eth_accounts': {
|
|
85
88
|
const account = state.kernelAccounts.get(activeChainId);
|
|
@@ -156,7 +159,7 @@ export function createProvider({ store, config, }) {
|
|
|
156
159
|
const [{ chainId }] = params;
|
|
157
160
|
const chainId_number = parseInt(chainId, 16);
|
|
158
161
|
// Update active chain
|
|
159
|
-
store.getState().
|
|
162
|
+
store.getState().setActiveChainId(chainId_number);
|
|
160
163
|
// Emit chainChanged event
|
|
161
164
|
emitter.emit('chainChanged', chainId);
|
|
162
165
|
return null;
|
package/dist/_esm/store.js
CHANGED
|
@@ -5,7 +5,7 @@ export const createZeroDevWalletStore = () => create()(subscribeWithSelector(per
|
|
|
5
5
|
wallet: null,
|
|
6
6
|
eoaAccount: null,
|
|
7
7
|
session: null,
|
|
8
|
-
|
|
8
|
+
activeChainId: null,
|
|
9
9
|
kernelAccounts: new Map(),
|
|
10
10
|
kernelClients: new Map(),
|
|
11
11
|
isExpiring: false,
|
|
@@ -24,13 +24,7 @@ export const createZeroDevWalletStore = () => create()(subscribeWithSelector(per
|
|
|
24
24
|
set({ kernelClients: clients });
|
|
25
25
|
},
|
|
26
26
|
setSession: (session) => set({ session }),
|
|
27
|
-
|
|
28
|
-
const { chainIds } = get();
|
|
29
|
-
// Move chainId to front, remove duplicates
|
|
30
|
-
set({
|
|
31
|
-
chainIds: [chainId, ...chainIds.filter((id) => id !== chainId)],
|
|
32
|
-
});
|
|
33
|
-
},
|
|
27
|
+
setActiveChainId: (chainId) => set({ activeChainId: chainId }),
|
|
34
28
|
setIsExpiring: (isExpiring) => set({ isExpiring }),
|
|
35
29
|
setOAuthConfig: (config) => set({ oauthConfig: config }),
|
|
36
30
|
clear: () => set({
|
|
@@ -39,13 +33,13 @@ export const createZeroDevWalletStore = () => create()(subscribeWithSelector(per
|
|
|
39
33
|
kernelAccounts: new Map(),
|
|
40
34
|
kernelClients: new Map(),
|
|
41
35
|
isExpiring: false,
|
|
42
|
-
|
|
36
|
+
activeChainId: null,
|
|
43
37
|
}),
|
|
44
38
|
}), {
|
|
45
39
|
name: 'zerodev-wallet',
|
|
46
40
|
// Only persist session data, not clients or accounts
|
|
47
41
|
partialize: (state) => ({
|
|
48
42
|
session: state.session,
|
|
49
|
-
|
|
43
|
+
activeChainId: state.activeChainId,
|
|
50
44
|
}),
|
|
51
45
|
})));
|
package/dist/_types/actions.d.ts
CHANGED
|
@@ -32,16 +32,15 @@ export declare namespace loginPasskey {
|
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Authenticate with OAuth (opens popup)
|
|
35
|
+
* Uses backend OAuth flow where the backend handles PKCE and token exchange
|
|
35
36
|
*/
|
|
36
37
|
export declare function authenticateOAuth(config: Config, parameters: {
|
|
37
38
|
provider: OAuthProvider;
|
|
38
|
-
clientId?: string;
|
|
39
39
|
connector?: Connector;
|
|
40
40
|
}): Promise<void>;
|
|
41
41
|
export declare namespace authenticateOAuth {
|
|
42
42
|
type Parameters = {
|
|
43
43
|
provider: OAuthProvider;
|
|
44
|
-
clientId?: string;
|
|
45
44
|
connector?: Connector;
|
|
46
45
|
};
|
|
47
46
|
type ReturnType = void;
|
|
@@ -58,7 +57,6 @@ export declare function sendOTP(config: Config, parameters: {
|
|
|
58
57
|
connector?: Connector;
|
|
59
58
|
}): Promise<{
|
|
60
59
|
otpId: string;
|
|
61
|
-
subOrganizationId: string;
|
|
62
60
|
}>;
|
|
63
61
|
export declare namespace sendOTP {
|
|
64
62
|
type Parameters = {
|
|
@@ -70,7 +68,6 @@ export declare namespace sendOTP {
|
|
|
70
68
|
};
|
|
71
69
|
type ReturnType = {
|
|
72
70
|
otpId: string;
|
|
73
|
-
subOrganizationId: string;
|
|
74
71
|
};
|
|
75
72
|
type ErrorType = Error;
|
|
76
73
|
}
|
|
@@ -80,14 +77,12 @@ export declare namespace sendOTP {
|
|
|
80
77
|
export declare function verifyOTP(config: Config, parameters: {
|
|
81
78
|
code: string;
|
|
82
79
|
otpId: string;
|
|
83
|
-
subOrganizationId: string;
|
|
84
80
|
connector?: Connector;
|
|
85
81
|
}): Promise<void>;
|
|
86
82
|
export declare namespace verifyOTP {
|
|
87
83
|
type Parameters = {
|
|
88
84
|
code: string;
|
|
89
85
|
otpId: string;
|
|
90
|
-
subOrganizationId: string;
|
|
91
86
|
connector?: Connector;
|
|
92
87
|
};
|
|
93
88
|
type ReturnType = void;
|
|
@@ -106,6 +101,21 @@ export declare namespace refreshSession {
|
|
|
106
101
|
type ReturnType = unknown;
|
|
107
102
|
type ErrorType = Error;
|
|
108
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Get user email
|
|
106
|
+
*/
|
|
107
|
+
export declare function getUserEmail(config: Config): Promise<{
|
|
108
|
+
email: string;
|
|
109
|
+
}>;
|
|
110
|
+
export declare namespace getUserEmail {
|
|
111
|
+
type Parameters = {
|
|
112
|
+
connector?: Connector;
|
|
113
|
+
};
|
|
114
|
+
type ReturnType = {
|
|
115
|
+
email: string;
|
|
116
|
+
};
|
|
117
|
+
type ErrorType = Error;
|
|
118
|
+
}
|
|
109
119
|
/**
|
|
110
120
|
* Export wallet
|
|
111
121
|
*/
|
|
@@ -121,4 +131,23 @@ export declare namespace exportWallet {
|
|
|
121
131
|
type ReturnType = void;
|
|
122
132
|
type ErrorType = Error;
|
|
123
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Export private key
|
|
136
|
+
*/
|
|
137
|
+
export declare function exportPrivateKey(config: Config, parameters: {
|
|
138
|
+
iframeContainerId: string;
|
|
139
|
+
address?: string;
|
|
140
|
+
keyFormat?: 'Hexadecimal' | 'Solana';
|
|
141
|
+
connector?: Connector;
|
|
142
|
+
}): Promise<void>;
|
|
143
|
+
export declare namespace exportPrivateKey {
|
|
144
|
+
type Parameters = {
|
|
145
|
+
iframeContainerId: string;
|
|
146
|
+
address?: string;
|
|
147
|
+
keyFormat?: 'Hexadecimal' | 'Solana';
|
|
148
|
+
connector?: Connector;
|
|
149
|
+
};
|
|
150
|
+
type ReturnType = void;
|
|
151
|
+
type ErrorType = Error;
|
|
152
|
+
}
|
|
124
153
|
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type CreateConnectorFn } from '@wagmi/core';
|
|
2
2
|
import type { StorageAdapter } from '@zerodev/wallet-core';
|
|
3
3
|
import { type Chain } from 'viem';
|
|
4
|
-
import type { OAuthConfig } from './oauth.js';
|
|
5
4
|
export type ZeroDevWalletConnectorParams = {
|
|
6
5
|
projectId: string;
|
|
7
6
|
organizationId?: string;
|
|
@@ -12,7 +11,6 @@ export type ZeroDevWalletConnectorParams = {
|
|
|
12
11
|
sessionStorage?: StorageAdapter;
|
|
13
12
|
autoRefreshSession?: boolean;
|
|
14
13
|
sessionWarningThreshold?: number;
|
|
15
|
-
oauthConfig?: OAuthConfig;
|
|
16
14
|
};
|
|
17
15
|
export declare function zeroDevWallet(params: ZeroDevWalletConnectorParams): CreateConnectorFn;
|
|
18
16
|
//# sourceMappingURL=connector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,aAAa,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,KAAK,KAAK,EAA4B,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,aAAa,CAAA;AAOrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAAE,KAAK,KAAK,EAA4B,MAAM,MAAM,CAAA;AAgE3D,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uBAAuB,CAAC,EAAE,MAAM,CAAA;CACjC,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,4BAA4B,GACnC,iBAAiB,CAoTnB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import { type Config, type ResolvedRegister } from 'wagmi';
|
|
3
|
+
import { exportPrivateKey } from '../actions.js';
|
|
4
|
+
type ConfigParameter<config extends Config = Config> = {
|
|
5
|
+
config?: Config | config | undefined;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Hook to export private key
|
|
9
|
+
*/
|
|
10
|
+
export declare function useExportPrivateKey<config extends Config = ResolvedRegister['config'], context = unknown>(parameters?: useExportPrivateKey.Parameters<config, context>): useExportPrivateKey.ReturnType<context>;
|
|
11
|
+
export declare namespace useExportPrivateKey {
|
|
12
|
+
type Parameters<config extends Config = Config, context = unknown> = ConfigParameter<config> & {
|
|
13
|
+
mutation?: UseMutationOptions<exportPrivateKey.ReturnType, exportPrivateKey.ErrorType, exportPrivateKey.Parameters, context> | undefined;
|
|
14
|
+
};
|
|
15
|
+
type ReturnType<context = unknown> = UseMutationResult<exportPrivateKey.ReturnType, exportPrivateKey.ErrorType, exportPrivateKey.Parameters, context>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=useExportPrivateKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useExportPrivateKey.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExportPrivateKey.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAa,MAAM,OAAO,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,KAAK,eAAe,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;IACrD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACrC,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,SAAS,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAClD,OAAO,GAAG,OAAO,EAEjB,UAAU,GAAE,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAM,GAC/D,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAWzC;AAED,MAAM,CAAC,OAAO,WAAW,mBAAmB,CAAC;IAC3C,KAAK,UAAU,CACb,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,GAAG,OAAO,IACf,eAAe,CAAC,MAAM,CAAC,GAAG;QAC5B,QAAQ,CAAC,EACL,kBAAkB,CAChB,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,UAAU,EAC3B,OAAO,CACR,GACD,SAAS,CAAA;KACd,CAAA;IAED,KAAK,UAAU,CAAC,OAAO,GAAG,OAAO,IAAI,iBAAiB,CACpD,gBAAgB,CAAC,UAAU,EAC3B,gBAAgB,CAAC,SAAS,EAC1B,gBAAgB,CAAC,UAAU,EAC3B,OAAO,CACR,CAAA;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import { type Config, type ResolvedRegister } from 'wagmi';
|
|
3
|
+
import { getUserEmail } from '../actions.js';
|
|
4
|
+
type ConfigParameter<config extends Config = Config> = {
|
|
5
|
+
config?: Config | config | undefined;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Hook to fetch user email address
|
|
9
|
+
*/
|
|
10
|
+
export declare function useGetUserEmail<config extends Config = ResolvedRegister['config']>(parameters: useGetUserEmail.Parameters<config>): useGetUserEmail.ReturnType;
|
|
11
|
+
export declare namespace useGetUserEmail {
|
|
12
|
+
type Parameters<config extends Config = Config> = ConfigParameter<config> & {
|
|
13
|
+
query?: Omit<UseQueryOptions<getUserEmail.ReturnType, getUserEmail.ErrorType, getUserEmail.ReturnType>, 'queryKey' | 'queryFn'> | undefined;
|
|
14
|
+
};
|
|
15
|
+
type ReturnType = UseQueryResult<getUserEmail.ReturnType, getUserEmail.ErrorType>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=useGetUserEmail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGetUserEmail.d.ts","sourceRoot":"","sources":["../../../src/hooks/useGetUserEmail.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAa,MAAM,OAAO,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C,KAAK,eAAe,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;IACrD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACrC,CAAA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAClD,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,UAAU,CAY5E;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,KAAK,UAAU,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG;QAC1E,KAAK,CAAC,EACF,IAAI,CACF,eAAe,CACb,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,SAAS,EACtB,YAAY,CAAC,UAAU,CACxB,EACD,UAAU,GAAG,SAAS,CACvB,GACD,SAAS,CAAA;KACd,CAAA;IAED,KAAK,UAAU,GAAG,cAAc,CAC9B,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,SAAS,CACvB,CAAA;CACF"}
|
package/dist/_types/index.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
export type { ZeroDevWalletConnectorParams } from './connector.js';
|
|
2
2
|
export { zeroDevWallet } from './connector.js';
|
|
3
3
|
export { useAuthenticateOAuth } from './hooks/useAuthenticateOAuth.js';
|
|
4
|
+
export { useExportPrivateKey } from './hooks/useExportPrivateKey.js';
|
|
4
5
|
export { useExportWallet } from './hooks/useExportWallet.js';
|
|
6
|
+
export { useGetUserEmail } from './hooks/useGetUserEmail.js';
|
|
5
7
|
export { useLoginPasskey } from './hooks/useLoginPasskey.js';
|
|
6
8
|
export { useRefreshSession } from './hooks/useRefreshSession.js';
|
|
7
9
|
export { useRegisterPasskey } from './hooks/useRegisterPasskey.js';
|
|
8
10
|
export { useSendOTP } from './hooks/useSendOTP.js';
|
|
9
11
|
export { useVerifyOTP } from './hooks/useVerifyOTP.js';
|
|
10
|
-
export type {
|
|
11
|
-
export { OAUTH_PROVIDERS } from './oauth.js';
|
|
12
|
+
export type { OAuthMessageData, OAuthProvider } from './oauth.js';
|
|
13
|
+
export { buildBackendOAuthUrl, handleOAuthCallback, listenForOAuthMessage, OAUTH_PROVIDERS, } from './oauth.js';
|
|
12
14
|
export type { ZeroDevProvider } from './provider.js';
|
|
13
15
|
export type { ZeroDevWalletState } from './store.js';
|
|
14
16
|
export { createZeroDevWalletStore } from './store.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/_types/oauth.d.ts
CHANGED
|
@@ -2,20 +2,33 @@ export declare const OAUTH_PROVIDERS: {
|
|
|
2
2
|
readonly GOOGLE: "google";
|
|
3
3
|
};
|
|
4
4
|
export type OAuthProvider = (typeof OAUTH_PROVIDERS)[keyof typeof OAUTH_PROVIDERS];
|
|
5
|
-
export type
|
|
6
|
-
googleClientId?: string;
|
|
7
|
-
redirectUri: string;
|
|
8
|
-
};
|
|
9
|
-
export type OAuthFlowParams = {
|
|
5
|
+
export type BackendOAuthFlowParams = {
|
|
10
6
|
provider: OAuthProvider;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
backendUrl: string;
|
|
8
|
+
projectId: string;
|
|
9
|
+
publicKey: string;
|
|
10
|
+
returnTo: string;
|
|
15
11
|
};
|
|
16
|
-
export declare function buildOAuthUrl(params: OAuthFlowParams): string;
|
|
17
12
|
export declare function openOAuthPopup(url: string): Window | null;
|
|
18
|
-
export declare function extractOAuthToken(url: string): string | null;
|
|
19
|
-
export declare function pollOAuthPopup(authWindow: Window, originUrl: string, onSuccess: (token: string) => void, onError: (error: Error) => void): void;
|
|
20
13
|
export declare function generateOAuthNonce(publicKey: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Build OAuth URL that redirects to backend's OAuth endpoint
|
|
16
|
+
* The backend handles PKCE, client credentials, and token exchange
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildBackendOAuthUrl(params: BackendOAuthFlowParams): string;
|
|
19
|
+
export type OAuthMessageData = {
|
|
20
|
+
type: 'oauth_success' | 'oauth_error';
|
|
21
|
+
error?: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Listen for OAuth completion via postMessage from popup
|
|
25
|
+
* The popup sends a message when it detects a successful redirect
|
|
26
|
+
*/
|
|
27
|
+
export declare function listenForOAuthMessage(authWindow: Window, expectedOrigin: string, onSuccess: () => void, onError: (error: Error) => void): () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Handle OAuth callback on the return page
|
|
30
|
+
* Call this on the page that receives the OAuth redirect
|
|
31
|
+
* It sends a postMessage to the opener and closes the window
|
|
32
|
+
*/
|
|
33
|
+
export declare function handleOAuthCallback(successParam?: string): boolean;
|
|
21
34
|
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/oauth.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;CAElB,CAAA;AAEV,MAAM,MAAM,aAAa,GACvB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAA;AAExD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/oauth.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;CAElB,CAAA;AAEV,MAAM,MAAM,aAAa,GACvB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAA;AAExD,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAKD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBzD;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAa3E;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,GAAG,aAAa,CAAA;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,IAAI,EACrB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC9B,MAAM,IAAI,CAkCZ;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,SAAkB,GAAG,OAAO,CAyB3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,MAAM,CAAA;AAE/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAI1D,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;IAClD,MAAM,EAAE,4BAA4B,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG;IACxE,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,OAAO,IAAI,IAAI,CAAA;CAChB,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,GACP,EAAE,oBAAoB,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,MAAM,CAAA;AAE/C,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAI1D,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;IAClD,MAAM,EAAE,4BAA4B,CAAA;IACpC,MAAM,EAAE,KAAK,EAAE,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG;IACxE,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACvE,OAAO,IAAI,IAAI,CAAA;CAChB,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,GACP,EAAE,oBAAoB,GAAG,eAAe,CAqNxC"}
|
package/dist/_types/store.d.ts
CHANGED
|
@@ -2,24 +2,27 @@ import type { KernelAccountClient, KernelSmartAccountImplementation } from '@zer
|
|
|
2
2
|
import type { ZeroDevWalletSDK, ZeroDevWalletSession } from '@zerodev/wallet-core';
|
|
3
3
|
import type { LocalAccount } from 'viem';
|
|
4
4
|
import type { SmartAccount } from 'viem/account-abstraction';
|
|
5
|
-
|
|
5
|
+
type InternalOAuthConfig = {
|
|
6
|
+
backendUrl: string;
|
|
7
|
+
projectId: string;
|
|
8
|
+
};
|
|
6
9
|
export type ZeroDevWalletState = {
|
|
7
10
|
wallet: ZeroDevWalletSDK | null;
|
|
8
11
|
eoaAccount: LocalAccount | null;
|
|
9
12
|
session: ZeroDevWalletSession | null;
|
|
10
|
-
|
|
13
|
+
activeChainId: number | null;
|
|
11
14
|
kernelAccounts: Map<number, SmartAccount<KernelSmartAccountImplementation>>;
|
|
12
15
|
kernelClients: Map<number, KernelAccountClient>;
|
|
13
16
|
isExpiring: boolean;
|
|
14
|
-
oauthConfig:
|
|
17
|
+
oauthConfig: InternalOAuthConfig | null;
|
|
15
18
|
setWallet: (wallet: ZeroDevWalletSDK) => void;
|
|
16
19
|
setEoaAccount: (account: LocalAccount | null) => void;
|
|
17
20
|
setKernelAccount: (chainId: number, account: SmartAccount<KernelSmartAccountImplementation>) => void;
|
|
18
21
|
setKernelClient: (chainId: number, client: KernelAccountClient) => void;
|
|
19
22
|
setSession: (session: ZeroDevWalletSession | null) => void;
|
|
20
|
-
|
|
23
|
+
setActiveChainId: (chainId: number | null) => void;
|
|
21
24
|
setIsExpiring: (isExpiring: boolean) => void;
|
|
22
|
-
setOAuthConfig: (config:
|
|
25
|
+
setOAuthConfig: (config: InternalOAuthConfig | null) => void;
|
|
23
26
|
clear: () => void;
|
|
24
27
|
};
|
|
25
28
|
export declare const createZeroDevWalletStore: () => import("zustand").UseBoundStore<Omit<Omit<import("zustand").StoreApi<ZeroDevWalletState>, "subscribe"> & {
|
|
@@ -36,7 +39,7 @@ export declare const createZeroDevWalletStore: () => import("zustand").UseBoundS
|
|
|
36
39
|
persist: {
|
|
37
40
|
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ZeroDevWalletState, {
|
|
38
41
|
session: ZeroDevWalletSession | null;
|
|
39
|
-
|
|
42
|
+
activeChainId: number | null;
|
|
40
43
|
}, unknown>>) => void;
|
|
41
44
|
clearStorage: () => void;
|
|
42
45
|
rehydrate: () => Promise<void> | void;
|
|
@@ -45,8 +48,9 @@ export declare const createZeroDevWalletStore: () => import("zustand").UseBoundS
|
|
|
45
48
|
onFinishHydration: (fn: (state: ZeroDevWalletState) => void) => () => void;
|
|
46
49
|
getOptions: () => Partial<import("zustand/middleware").PersistOptions<ZeroDevWalletState, {
|
|
47
50
|
session: ZeroDevWalletSession | null;
|
|
48
|
-
|
|
51
|
+
activeChainId: number | null;
|
|
49
52
|
}, unknown>>;
|
|
50
53
|
};
|
|
51
54
|
}>;
|
|
55
|
+
export {};
|
|
52
56
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gCAAgC,EACjC,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAK5D,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAE/B,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,YAAY,GAAG,IAAI,CAAA;IAC/B,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAGpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,gCAAgC,CAAC,CAAC,CAAA;IAC3E,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAG/C,UAAU,EAAE,OAAO,CAAA;IAGnB,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAA;IAGvC,SAAS,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC7C,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAA;IACrD,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,CAAC,gCAAgC,CAAC,KACpD,IAAI,CAAA;IACT,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACvE,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1D,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAClD,aAAa,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAA;IAC5D,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DlC,CAAA"}
|