@zerodev/wallet-react 0.0.1-alpha.6 → 0.0.1-alpha.7

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.
@@ -2,10 +2,11 @@ export { zeroDevWallet } from './connector.js';
2
2
  export { useAuthenticateOAuth } from './hooks/useAuthenticateOAuth.js';
3
3
  export { useExportPrivateKey } from './hooks/useExportPrivateKey.js';
4
4
  export { useExportWallet } from './hooks/useExportWallet.js';
5
+ export { useGetUserEmail } from './hooks/useGetUserEmail.js';
5
6
  export { useLoginPasskey } from './hooks/useLoginPasskey.js';
6
7
  export { useRefreshSession } from './hooks/useRefreshSession.js';
7
8
  export { useRegisterPasskey } from './hooks/useRegisterPasskey.js';
8
9
  export { useSendOTP } from './hooks/useSendOTP.js';
9
10
  export { useVerifyOTP } from './hooks/useVerifyOTP.js';
10
- export { OAUTH_PROVIDERS } from './oauth.js';
11
+ export { buildBackendOAuthUrl, handleOAuthCallback, listenForOAuthMessage, OAUTH_PROVIDERS, } from './oauth.js';
11
12
  export { createZeroDevWalletStore } from './store.js';
@@ -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 extractOAuthToken(url) {
44
- const hashParams = new URLSearchParams(url.split('#')[1]);
45
- let idToken = hashParams.get('id_token');
46
- if (!idToken) {
47
- const queryParams = new URLSearchParams(url.split('?')[1]);
48
- idToken = queryParams.get('id_token');
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
- return idToken;
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
- export function pollOAuthPopup(authWindow, originUrl, onSuccess, onError) {
53
- const interval = setInterval(() => {
54
- try {
55
- if (authWindow.closed) {
56
- clearInterval(interval);
57
- onError(new Error('Authentication window was closed'));
58
- return;
59
- }
60
- const url = authWindow.location.href || '';
61
- if (url.startsWith(originUrl)) {
62
- const token = extractOAuthToken(url);
63
- if (token) {
64
- authWindow.close();
65
- clearInterval(interval);
66
- onSuccess(token);
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
- catch {
71
- // Ignore cross-origin errors
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
- export function generateOAuthNonce(publicKey) {
76
- return sha256(publicKey).replace(/^0x/, '');
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
  }
@@ -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,27 @@ 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, parameters: {
108
+ organizationId: string;
109
+ projectId: string;
110
+ connector?: Connector;
111
+ }): Promise<{
112
+ email: string;
113
+ }>;
114
+ export declare namespace getUserEmail {
115
+ type Parameters = {
116
+ organizationId: string;
117
+ projectId: string;
118
+ connector?: Connector;
119
+ };
120
+ type ReturnType = {
121
+ email: string;
122
+ };
123
+ type ErrorType = Error;
124
+ }
109
125
  /**
110
126
  * Export wallet
111
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}
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;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK7C,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;IAChC,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,4BAA4B,GACnC,iBAAiB,CAgTnB"}
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,20 @@
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
+ organizationId: string;
14
+ projectId: string;
15
+ query?: Omit<UseQueryOptions<getUserEmail.ReturnType, getUserEmail.ErrorType, getUserEmail.ReturnType>, 'queryKey' | 'queryFn'> | undefined;
16
+ };
17
+ type ReturnType = UseQueryResult<getUserEmail.ReturnType, getUserEmail.ErrorType>;
18
+ }
19
+ export {};
20
+ //# 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,cAAc,EAAE,MAAM,CAAA;QACtB,SAAS,EAAE,MAAM,CAAA;QACjB,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"}
@@ -3,13 +3,14 @@ export { zeroDevWallet } from './connector.js';
3
3
  export { useAuthenticateOAuth } from './hooks/useAuthenticateOAuth.js';
4
4
  export { useExportPrivateKey } from './hooks/useExportPrivateKey.js';
5
5
  export { useExportWallet } from './hooks/useExportWallet.js';
6
+ export { useGetUserEmail } from './hooks/useGetUserEmail.js';
6
7
  export { useLoginPasskey } from './hooks/useLoginPasskey.js';
7
8
  export { useRefreshSession } from './hooks/useRefreshSession.js';
8
9
  export { useRegisterPasskey } from './hooks/useRegisterPasskey.js';
9
10
  export { useSendOTP } from './hooks/useSendOTP.js';
10
11
  export { useVerifyOTP } from './hooks/useVerifyOTP.js';
11
- export type { OAuthConfig, OAuthProvider } from './oauth.js';
12
- export { OAUTH_PROVIDERS } from './oauth.js';
12
+ export type { OAuthMessageData, OAuthProvider } from './oauth.js';
13
+ export { buildBackendOAuthUrl, handleOAuthCallback, listenForOAuthMessage, OAUTH_PROVIDERS, } from './oauth.js';
13
14
  export type { ZeroDevProvider } from './provider.js';
14
15
  export type { ZeroDevWalletState } from './store.js';
15
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,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,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,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA"}
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"}
@@ -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 OAuthConfig = {
6
- googleClientId?: string;
7
- redirectUri: string;
8
- };
9
- export type OAuthFlowParams = {
5
+ export type BackendOAuthFlowParams = {
10
6
  provider: OAuthProvider;
11
- clientId: string;
12
- redirectUri: string;
13
- nonce: string;
14
- state?: Record<string, string>;
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,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,aAAa,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B,CAAA;AAOD,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CA8B7D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBzD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU5D;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAClC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC9B,IAAI,CAwBN;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE5D"}
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"}
@@ -2,7 +2,10 @@ 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
- import type { OAuthConfig } from './oauth.js';
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;
@@ -11,7 +14,7 @@ export type ZeroDevWalletState = {
11
14
  kernelAccounts: Map<number, SmartAccount<KernelSmartAccountImplementation>>;
12
15
  kernelClients: Map<number, KernelAccountClient>;
13
16
  isExpiring: boolean;
14
- oauthConfig: OAuthConfig | null;
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;
@@ -19,7 +22,7 @@ export type ZeroDevWalletState = {
19
22
  setSession: (session: ZeroDevWalletSession | null) => void;
20
23
  setActiveChainId: (chainId: number | null) => void;
21
24
  setIsExpiring: (isExpiring: boolean) => void;
22
- setOAuthConfig: (config: OAuthConfig | null) => void;
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"> & {
@@ -49,4 +52,5 @@ export declare const createZeroDevWalletStore: () => import("zustand").UseBoundS
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;AAG5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,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,WAAW,GAAG,IAAI,CAAA;IAG/B,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,WAAW,GAAG,IAAI,KAAK,IAAI,CAAA;IACpD,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DlC,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"}