@zerodev/wallet-react 0.0.1-alpha.6 → 0.0.1-alpha.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.
@@ -1,11 +1,59 @@
1
1
  import { createConnector } from '@wagmi/core';
2
2
  import { createKernelAccount, createKernelAccountClient, createZeroDevPaymasterClient, } from '@zerodev/sdk';
3
3
  import { getEntryPoint, KERNEL_V3_3 } from '@zerodev/sdk/constants';
4
- import { createZeroDevWallet } from '@zerodev/wallet-core';
4
+ import { createZeroDevWallet, KMS_SERVER_URL } from '@zerodev/wallet-core';
5
5
  import { createPublicClient, http } from 'viem';
6
+ import { handleOAuthCallback } from './oauth.js';
6
7
  import { createProvider } from './provider.js';
7
8
  import { createZeroDevWalletStore } from './store.js';
8
9
  import { getAAUrl } from './utils/aaUtils.js';
10
+ // OAuth URL parameter used to detect callback
11
+ const OAUTH_SUCCESS_PARAM = 'oauth_success';
12
+ const OAUTH_PROVIDER_PARAM = 'oauth_provider';
13
+ /**
14
+ * Detect OAuth callback from URL params and handle it.
15
+ * - If in popup: sends postMessage to opener and closes
16
+ * - If not in popup: completes auth directly
17
+ */
18
+ async function detectAndHandleOAuthCallback(wallet, store) {
19
+ if (typeof window === 'undefined')
20
+ return false;
21
+ const params = new URLSearchParams(window.location.search);
22
+ const isOAuthCallback = params.get(OAUTH_SUCCESS_PARAM) === 'true';
23
+ if (!isOAuthCallback)
24
+ return false;
25
+ // If in popup, use the existing handler to notify opener
26
+ if (window.opener) {
27
+ handleOAuthCallback(OAUTH_SUCCESS_PARAM);
28
+ return true;
29
+ }
30
+ // Not in popup - complete auth directly (redirect flow)
31
+ console.log('OAuth callback detected, completing authentication...');
32
+ const provider = (params.get(OAUTH_PROVIDER_PARAM) ||
33
+ 'google');
34
+ try {
35
+ await wallet.auth({ type: 'oauth', provider });
36
+ const [session, eoaAccount] = await Promise.all([
37
+ wallet.getSession(),
38
+ wallet.toAccount(),
39
+ ]);
40
+ store.getState().setEoaAccount(eoaAccount);
41
+ store.getState().setSession(session || null);
42
+ // Clean up URL params
43
+ params.delete(OAUTH_SUCCESS_PARAM);
44
+ params.delete(OAUTH_PROVIDER_PARAM);
45
+ const newUrl = params.toString()
46
+ ? `${window.location.pathname}?${params.toString()}`
47
+ : window.location.pathname;
48
+ window.history.replaceState({}, '', newUrl);
49
+ console.log('OAuth authentication completed');
50
+ return true;
51
+ }
52
+ catch (error) {
53
+ console.error('OAuth authentication failed:', error);
54
+ return false;
55
+ }
56
+ }
9
57
  export function zeroDevWallet(params) {
10
58
  return createConnector((wagmiConfig) => {
11
59
  let store;
@@ -30,10 +78,11 @@ export function zeroDevWallet(params) {
30
78
  // Create store
31
79
  store = createZeroDevWalletStore();
32
80
  store.getState().setWallet(wallet);
33
- // Store OAuth config if provided
34
- if (params.oauthConfig) {
35
- store.getState().setOAuthConfig(params.oauthConfig);
36
- }
81
+ // Store OAuth config - uses proxyBaseUrl and projectId from params
82
+ store.getState().setOAuthConfig({
83
+ backendUrl: params.proxyBaseUrl || `${KMS_SERVER_URL}/api/v1`,
84
+ projectId: params.projectId,
85
+ });
37
86
  // Create EIP-1193 provider
38
87
  provider = createProvider({
39
88
  store,
@@ -48,6 +97,8 @@ export function zeroDevWallet(params) {
48
97
  store.getState().setEoaAccount(eoaAccount);
49
98
  store.getState().setSession(session);
50
99
  }
100
+ // Auto-detect OAuth callback (when popup redirects back with ?oauth_success=true)
101
+ await detectAndHandleOAuthCallback(wallet, store);
51
102
  console.log('ZeroDevWallet connector initialized');
52
103
  };
53
104
  return {
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { useQuery, } from '@tanstack/react-query';
3
+ import { useConfig } from 'wagmi';
4
+ import { getUserEmail } from '../actions.js';
5
+ /**
6
+ * Hook to fetch user email address
7
+ */
8
+ export function useGetUserEmail(parameters) {
9
+ const { query } = parameters;
10
+ const config = useConfig(parameters);
11
+ return useQuery({
12
+ ...query,
13
+ queryKey: ['getUserEmail'],
14
+ queryFn: async () => {
15
+ return getUserEmail(config);
16
+ },
17
+ enabled: Boolean(config),
18
+ });
19
+ }
@@ -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,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
  */
@@ -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,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"}
@@ -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"}