@volr/react 0.1.15 → 0.1.19

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.d.cts CHANGED
@@ -2,8 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
3
  import { KeyStorageType as KeyStorageType$1, WalletProviderPort, PrecheckInput, PrecheckQuote, RelayInput, RelayResult, SignerPort, ExtendedRPCClient, Call, PasskeyProviderPort } from '@volr/sdk-core';
4
4
  export { AuthorizationTuple, Call, MpcTransport, PrecheckInput, PrecheckQuote, PrfInput, RelayInput, RelayMode, RelayResult, SessionAuth, UploadBlobOptions, createMasterKeyProvider, createMpcProvider, createPasskeyProvider, deriveEvmKey, deriveWrapKey, sealMasterSeed, uploadBlob } from '@volr/sdk-core';
5
- import { PublicClient } from './clients/createPublicClient.js';
6
- import { Address, Abi } from '../abi.js';
5
+ import { Address, Abi, PublicClient } from 'viem';
7
6
 
8
7
  /**
9
8
  * API client with automatic token refresh
package/dist/index.d.ts CHANGED
@@ -2,8 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { ReactNode } from 'react';
3
3
  import { KeyStorageType as KeyStorageType$1, WalletProviderPort, PrecheckInput, PrecheckQuote, RelayInput, RelayResult, SignerPort, ExtendedRPCClient, Call, PasskeyProviderPort } from '@volr/sdk-core';
4
4
  export { AuthorizationTuple, Call, MpcTransport, PrecheckInput, PrecheckQuote, PrfInput, RelayInput, RelayMode, RelayResult, SessionAuth, UploadBlobOptions, createMasterKeyProvider, createMpcProvider, createPasskeyProvider, deriveEvmKey, deriveWrapKey, sealMasterSeed, uploadBlob } from '@volr/sdk-core';
5
- import { PublicClient } from './clients/createPublicClient.js';
6
- import { Address, Abi } from '../abi.js';
5
+ import { Address, Abi, PublicClient } from 'viem';
7
6
 
8
7
  /**
9
8
  * API client with automatic token refresh
package/dist/index.js CHANGED
@@ -9006,7 +9006,7 @@ var safeStorage = {
9006
9006
  }
9007
9007
  };
9008
9008
 
9009
- // ../shared/src/constants/storage.ts
9009
+ // ../shared/dist/constants/storage.js
9010
9010
  var STORAGE_KEYS = {
9011
9011
  accessToken: "volr:accessToken",
9012
9012
  refreshToken: "volr:refreshToken",
@@ -18485,41 +18485,9 @@ function useVolrWallet() {
18485
18485
  );
18486
18486
  return { evm };
18487
18487
  }
18488
- function createAxiosInstance(baseUrl, apiKey) {
18489
- const instance = axios.create({
18490
- baseURL: baseUrl.replace(/\/+$/, ""),
18491
- // Remove trailing slashes
18492
- withCredentials: true,
18493
- // Include cookies
18494
- headers: {
18495
- "Content-Type": "application/json"
18496
- }
18497
- });
18498
- instance.interceptors.request.use((config) => {
18499
- if (apiKey) {
18500
- config.headers["X-API-Key"] = apiKey;
18501
- }
18502
- return config;
18503
- });
18504
- instance.interceptors.response.use(
18505
- (response) => response,
18506
- (error) => {
18507
- if (error.response?.data) {
18508
- const errorData = error.response.data;
18509
- if (errorData.error?.message) {
18510
- error.message = errorData.error.message;
18511
- }
18512
- }
18513
- return Promise.reject(error);
18514
- }
18515
- );
18516
- return instance;
18517
- }
18518
-
18519
- // src/hooks/useVolrLogin.ts
18520
18488
  function useVolrLogin() {
18521
18489
  const { config, setUser } = useVolr();
18522
- const { setAccessToken, setRefreshToken } = useInternalAuth();
18490
+ const { setAccessToken, setRefreshToken, client } = useInternalAuth();
18523
18491
  const toVolrUser = useCallback((u) => {
18524
18492
  return {
18525
18493
  id: u.id,
@@ -18536,27 +18504,18 @@ function useVolrLogin() {
18536
18504
  };
18537
18505
  }, []);
18538
18506
  const apiBaseUrl = resolveApiBaseUrl(config);
18539
- const api = useMemo(
18540
- () => createAxiosInstance(apiBaseUrl, config.projectApiKey),
18541
- [apiBaseUrl, config.projectApiKey]
18542
- );
18543
18507
  const requestEmailCode = useCallback(
18544
18508
  async (email) => {
18545
18509
  const normalizedEmail = email.trim().toLowerCase();
18546
18510
  if (!normalizedEmail || !normalizedEmail.includes("@")) {
18547
18511
  throw new Error("Invalid email address");
18548
18512
  }
18549
- const response = await api.post("/auth/email/send", {
18513
+ await client.post("/auth/email/send", {
18550
18514
  email: normalizedEmail
18551
18515
  });
18552
- if (!response.data?.ok) {
18553
- throw new Error(
18554
- response.data?.error?.message || "Failed to send verification code"
18555
- );
18556
- }
18557
18516
  safeStorage.setItem(STORAGE_KEYS.lastEmail, normalizedEmail);
18558
18517
  },
18559
- [api]
18518
+ [client]
18560
18519
  );
18561
18520
  const verifyEmailCode = useCallback(
18562
18521
  async (email, code) => {
@@ -18568,24 +18527,13 @@ function useVolrLogin() {
18568
18527
  if (!/^\d{6}$/.test(normalizedCode)) {
18569
18528
  throw new Error("Invalid code format");
18570
18529
  }
18571
- const response = await api.post("/auth/email/verify", {
18530
+ const response = await client.post("/auth/email/verify", {
18572
18531
  email: normalizedEmail,
18573
18532
  code: normalizedCode
18574
18533
  });
18575
- if (!response.data?.ok) {
18576
- throw new Error(
18577
- response.data?.error?.message || "Invalid verification code"
18578
- );
18579
- }
18580
- const verifyData = response.data;
18581
- const userFromServer = verifyData?.data?.user;
18582
- const isNewUser = !!verifyData?.data?.isNewUser;
18583
- const accessToken = verifyData?.data?.accessToken || "";
18584
- const refreshToken = verifyData?.data?.refreshToken || "";
18534
+ const { user: userFromServer, isNewUser, accessToken, refreshToken } = response;
18585
18535
  if (!accessToken) {
18586
- throw new Error(
18587
- "Access token is required but was not provided by the server"
18588
- );
18536
+ throw new Error("Access token is required but was not provided by the server");
18589
18537
  }
18590
18538
  setAccessToken(accessToken);
18591
18539
  if (refreshToken) {
@@ -18604,7 +18552,7 @@ function useVolrLogin() {
18604
18552
  accessToken
18605
18553
  };
18606
18554
  },
18607
- [api, setAccessToken, setRefreshToken, setUser, toVolrUser]
18555
+ [client, setAccessToken, setRefreshToken, setUser, toVolrUser]
18608
18556
  );
18609
18557
  const handleSocialLogin = useCallback(
18610
18558
  async (provider) => {
@@ -18616,41 +18564,21 @@ function useVolrLogin() {
18616
18564
  [apiBaseUrl, config.projectApiKey]
18617
18565
  );
18618
18566
  const requestSiweNonce = useCallback(async () => {
18619
- const response = await api.get("/auth/siwe/nonce");
18620
- if (!response.data?.ok) {
18621
- throw new Error(
18622
- response.data?.error?.message || "Failed to generate nonce"
18623
- );
18624
- }
18625
- return response.data.data.nonce;
18626
- }, [api]);
18567
+ const response = await client.get("/auth/siwe/nonce");
18568
+ return response.nonce;
18569
+ }, [client]);
18627
18570
  const verifySiweSignature = useCallback(
18628
18571
  async (message, signature, options) => {
18629
18572
  try {
18630
- const response = await api.post("/auth/siwe/verify", {
18573
+ const response = await client.post("/auth/siwe/verify", {
18631
18574
  message,
18632
18575
  signature,
18633
18576
  walletConnector: options?.walletConnector,
18634
18577
  chainId: options?.chainId
18635
18578
  });
18636
- if (!response.data?.ok) {
18637
- console.error(
18638
- "[verifySiweSignature] Backend returned error:",
18639
- response.data
18640
- );
18641
- throw new Error(
18642
- response.data?.error?.message || "Invalid SIWE signature"
18643
- );
18644
- }
18645
- const verifyData = response.data;
18646
- const userFromServer = verifyData?.data?.user;
18647
- const isNewUser = !!verifyData?.data?.isNewUser;
18648
- const accessToken = verifyData?.data?.accessToken || "";
18649
- const refreshToken = verifyData?.data?.refreshToken || "";
18579
+ const { user: userFromServer, isNewUser, accessToken, refreshToken } = response;
18650
18580
  if (!accessToken) {
18651
- throw new Error(
18652
- "Access token is required but was not provided by the server"
18653
- );
18581
+ throw new Error("Access token is required but was not provided by the server");
18654
18582
  }
18655
18583
  setAccessToken(accessToken);
18656
18584
  if (refreshToken) {
@@ -18675,7 +18603,7 @@ function useVolrLogin() {
18675
18603
  throw error;
18676
18604
  }
18677
18605
  },
18678
- [api, setAccessToken, setRefreshToken, setUser, toVolrUser]
18606
+ [client, setAccessToken, setRefreshToken, setUser, toVolrUser]
18679
18607
  );
18680
18608
  const handlePasskeyComplete = useCallback(async () => {
18681
18609
  }, []);
@@ -18688,6 +18616,38 @@ function useVolrLogin() {
18688
18616
  handlePasskeyComplete
18689
18617
  };
18690
18618
  }
18619
+ function createAxiosInstance(baseUrl, apiKey) {
18620
+ const instance = axios.create({
18621
+ baseURL: baseUrl.replace(/\/+$/, ""),
18622
+ // Remove trailing slashes
18623
+ withCredentials: true,
18624
+ // Include cookies
18625
+ headers: {
18626
+ "Content-Type": "application/json"
18627
+ }
18628
+ });
18629
+ instance.interceptors.request.use((config) => {
18630
+ if (apiKey) {
18631
+ config.headers["X-API-Key"] = apiKey;
18632
+ }
18633
+ return config;
18634
+ });
18635
+ instance.interceptors.response.use(
18636
+ (response) => response,
18637
+ (error) => {
18638
+ if (error.response?.data) {
18639
+ const errorData = error.response.data;
18640
+ if (errorData.error?.message) {
18641
+ error.message = errorData.error.message;
18642
+ }
18643
+ }
18644
+ return Promise.reject(error);
18645
+ }
18646
+ );
18647
+ return instance;
18648
+ }
18649
+
18650
+ // src/hooks/useVolrAuthCallback.ts
18691
18651
  function useVolrAuthCallback(options = {}) {
18692
18652
  const { config, setUser } = useVolr();
18693
18653
  const { refreshAccessToken, setAccessToken, setRefreshToken, client } = useInternalAuth();