@volr/react 0.1.15 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +47 -87
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -2
- package/dist/index.d.ts +1 -2
- package/dist/index.js +47 -87
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.cjs
CHANGED
|
@@ -9030,7 +9030,7 @@ var safeStorage = {
|
|
|
9030
9030
|
}
|
|
9031
9031
|
};
|
|
9032
9032
|
|
|
9033
|
-
// ../shared/
|
|
9033
|
+
// ../shared/dist/constants/storage.js
|
|
9034
9034
|
var STORAGE_KEYS = {
|
|
9035
9035
|
accessToken: "volr:accessToken",
|
|
9036
9036
|
refreshToken: "volr:refreshToken",
|
|
@@ -18509,41 +18509,9 @@ function useVolrWallet() {
|
|
|
18509
18509
|
);
|
|
18510
18510
|
return { evm };
|
|
18511
18511
|
}
|
|
18512
|
-
function createAxiosInstance(baseUrl, apiKey) {
|
|
18513
|
-
const instance = axios__default.default.create({
|
|
18514
|
-
baseURL: baseUrl.replace(/\/+$/, ""),
|
|
18515
|
-
// Remove trailing slashes
|
|
18516
|
-
withCredentials: true,
|
|
18517
|
-
// Include cookies
|
|
18518
|
-
headers: {
|
|
18519
|
-
"Content-Type": "application/json"
|
|
18520
|
-
}
|
|
18521
|
-
});
|
|
18522
|
-
instance.interceptors.request.use((config) => {
|
|
18523
|
-
if (apiKey) {
|
|
18524
|
-
config.headers["X-API-Key"] = apiKey;
|
|
18525
|
-
}
|
|
18526
|
-
return config;
|
|
18527
|
-
});
|
|
18528
|
-
instance.interceptors.response.use(
|
|
18529
|
-
(response) => response,
|
|
18530
|
-
(error) => {
|
|
18531
|
-
if (error.response?.data) {
|
|
18532
|
-
const errorData = error.response.data;
|
|
18533
|
-
if (errorData.error?.message) {
|
|
18534
|
-
error.message = errorData.error.message;
|
|
18535
|
-
}
|
|
18536
|
-
}
|
|
18537
|
-
return Promise.reject(error);
|
|
18538
|
-
}
|
|
18539
|
-
);
|
|
18540
|
-
return instance;
|
|
18541
|
-
}
|
|
18542
|
-
|
|
18543
|
-
// src/hooks/useVolrLogin.ts
|
|
18544
18512
|
function useVolrLogin() {
|
|
18545
18513
|
const { config, setUser } = useVolr();
|
|
18546
|
-
const { setAccessToken, setRefreshToken } = useInternalAuth();
|
|
18514
|
+
const { setAccessToken, setRefreshToken, client } = useInternalAuth();
|
|
18547
18515
|
const toVolrUser = react.useCallback((u) => {
|
|
18548
18516
|
return {
|
|
18549
18517
|
id: u.id,
|
|
@@ -18560,27 +18528,18 @@ function useVolrLogin() {
|
|
|
18560
18528
|
};
|
|
18561
18529
|
}, []);
|
|
18562
18530
|
const apiBaseUrl = resolveApiBaseUrl(config);
|
|
18563
|
-
const api = react.useMemo(
|
|
18564
|
-
() => createAxiosInstance(apiBaseUrl, config.projectApiKey),
|
|
18565
|
-
[apiBaseUrl, config.projectApiKey]
|
|
18566
|
-
);
|
|
18567
18531
|
const requestEmailCode = react.useCallback(
|
|
18568
18532
|
async (email) => {
|
|
18569
18533
|
const normalizedEmail = email.trim().toLowerCase();
|
|
18570
18534
|
if (!normalizedEmail || !normalizedEmail.includes("@")) {
|
|
18571
18535
|
throw new Error("Invalid email address");
|
|
18572
18536
|
}
|
|
18573
|
-
|
|
18537
|
+
await client.post("/auth/email/send", {
|
|
18574
18538
|
email: normalizedEmail
|
|
18575
18539
|
});
|
|
18576
|
-
if (!response.data?.ok) {
|
|
18577
|
-
throw new Error(
|
|
18578
|
-
response.data?.error?.message || "Failed to send verification code"
|
|
18579
|
-
);
|
|
18580
|
-
}
|
|
18581
18540
|
safeStorage.setItem(STORAGE_KEYS.lastEmail, normalizedEmail);
|
|
18582
18541
|
},
|
|
18583
|
-
[
|
|
18542
|
+
[client]
|
|
18584
18543
|
);
|
|
18585
18544
|
const verifyEmailCode = react.useCallback(
|
|
18586
18545
|
async (email, code) => {
|
|
@@ -18592,24 +18551,13 @@ function useVolrLogin() {
|
|
|
18592
18551
|
if (!/^\d{6}$/.test(normalizedCode)) {
|
|
18593
18552
|
throw new Error("Invalid code format");
|
|
18594
18553
|
}
|
|
18595
|
-
const response = await
|
|
18554
|
+
const response = await client.post("/auth/email/verify", {
|
|
18596
18555
|
email: normalizedEmail,
|
|
18597
18556
|
code: normalizedCode
|
|
18598
18557
|
});
|
|
18599
|
-
|
|
18600
|
-
throw new Error(
|
|
18601
|
-
response.data?.error?.message || "Invalid verification code"
|
|
18602
|
-
);
|
|
18603
|
-
}
|
|
18604
|
-
const verifyData = response.data;
|
|
18605
|
-
const userFromServer = verifyData?.data?.user;
|
|
18606
|
-
const isNewUser = !!verifyData?.data?.isNewUser;
|
|
18607
|
-
const accessToken = verifyData?.data?.accessToken || "";
|
|
18608
|
-
const refreshToken = verifyData?.data?.refreshToken || "";
|
|
18558
|
+
const { user: userFromServer, isNewUser, accessToken, refreshToken } = response;
|
|
18609
18559
|
if (!accessToken) {
|
|
18610
|
-
throw new Error(
|
|
18611
|
-
"Access token is required but was not provided by the server"
|
|
18612
|
-
);
|
|
18560
|
+
throw new Error("Access token is required but was not provided by the server");
|
|
18613
18561
|
}
|
|
18614
18562
|
setAccessToken(accessToken);
|
|
18615
18563
|
if (refreshToken) {
|
|
@@ -18628,7 +18576,7 @@ function useVolrLogin() {
|
|
|
18628
18576
|
accessToken
|
|
18629
18577
|
};
|
|
18630
18578
|
},
|
|
18631
|
-
[
|
|
18579
|
+
[client, setAccessToken, setRefreshToken, setUser, toVolrUser]
|
|
18632
18580
|
);
|
|
18633
18581
|
const handleSocialLogin = react.useCallback(
|
|
18634
18582
|
async (provider) => {
|
|
@@ -18640,41 +18588,21 @@ function useVolrLogin() {
|
|
|
18640
18588
|
[apiBaseUrl, config.projectApiKey]
|
|
18641
18589
|
);
|
|
18642
18590
|
const requestSiweNonce = react.useCallback(async () => {
|
|
18643
|
-
const response = await
|
|
18644
|
-
|
|
18645
|
-
|
|
18646
|
-
response.data?.error?.message || "Failed to generate nonce"
|
|
18647
|
-
);
|
|
18648
|
-
}
|
|
18649
|
-
return response.data.data.nonce;
|
|
18650
|
-
}, [api]);
|
|
18591
|
+
const response = await client.get("/auth/siwe/nonce");
|
|
18592
|
+
return response.nonce;
|
|
18593
|
+
}, [client]);
|
|
18651
18594
|
const verifySiweSignature = react.useCallback(
|
|
18652
18595
|
async (message, signature, options) => {
|
|
18653
18596
|
try {
|
|
18654
|
-
const response = await
|
|
18597
|
+
const response = await client.post("/auth/siwe/verify", {
|
|
18655
18598
|
message,
|
|
18656
18599
|
signature,
|
|
18657
18600
|
walletConnector: options?.walletConnector,
|
|
18658
18601
|
chainId: options?.chainId
|
|
18659
18602
|
});
|
|
18660
|
-
|
|
18661
|
-
console.error(
|
|
18662
|
-
"[verifySiweSignature] Backend returned error:",
|
|
18663
|
-
response.data
|
|
18664
|
-
);
|
|
18665
|
-
throw new Error(
|
|
18666
|
-
response.data?.error?.message || "Invalid SIWE signature"
|
|
18667
|
-
);
|
|
18668
|
-
}
|
|
18669
|
-
const verifyData = response.data;
|
|
18670
|
-
const userFromServer = verifyData?.data?.user;
|
|
18671
|
-
const isNewUser = !!verifyData?.data?.isNewUser;
|
|
18672
|
-
const accessToken = verifyData?.data?.accessToken || "";
|
|
18673
|
-
const refreshToken = verifyData?.data?.refreshToken || "";
|
|
18603
|
+
const { user: userFromServer, isNewUser, accessToken, refreshToken } = response;
|
|
18674
18604
|
if (!accessToken) {
|
|
18675
|
-
throw new Error(
|
|
18676
|
-
"Access token is required but was not provided by the server"
|
|
18677
|
-
);
|
|
18605
|
+
throw new Error("Access token is required but was not provided by the server");
|
|
18678
18606
|
}
|
|
18679
18607
|
setAccessToken(accessToken);
|
|
18680
18608
|
if (refreshToken) {
|
|
@@ -18699,7 +18627,7 @@ function useVolrLogin() {
|
|
|
18699
18627
|
throw error;
|
|
18700
18628
|
}
|
|
18701
18629
|
},
|
|
18702
|
-
[
|
|
18630
|
+
[client, setAccessToken, setRefreshToken, setUser, toVolrUser]
|
|
18703
18631
|
);
|
|
18704
18632
|
const handlePasskeyComplete = react.useCallback(async () => {
|
|
18705
18633
|
}, []);
|
|
@@ -18712,6 +18640,38 @@ function useVolrLogin() {
|
|
|
18712
18640
|
handlePasskeyComplete
|
|
18713
18641
|
};
|
|
18714
18642
|
}
|
|
18643
|
+
function createAxiosInstance(baseUrl, apiKey) {
|
|
18644
|
+
const instance = axios__default.default.create({
|
|
18645
|
+
baseURL: baseUrl.replace(/\/+$/, ""),
|
|
18646
|
+
// Remove trailing slashes
|
|
18647
|
+
withCredentials: true,
|
|
18648
|
+
// Include cookies
|
|
18649
|
+
headers: {
|
|
18650
|
+
"Content-Type": "application/json"
|
|
18651
|
+
}
|
|
18652
|
+
});
|
|
18653
|
+
instance.interceptors.request.use((config) => {
|
|
18654
|
+
if (apiKey) {
|
|
18655
|
+
config.headers["X-API-Key"] = apiKey;
|
|
18656
|
+
}
|
|
18657
|
+
return config;
|
|
18658
|
+
});
|
|
18659
|
+
instance.interceptors.response.use(
|
|
18660
|
+
(response) => response,
|
|
18661
|
+
(error) => {
|
|
18662
|
+
if (error.response?.data) {
|
|
18663
|
+
const errorData = error.response.data;
|
|
18664
|
+
if (errorData.error?.message) {
|
|
18665
|
+
error.message = errorData.error.message;
|
|
18666
|
+
}
|
|
18667
|
+
}
|
|
18668
|
+
return Promise.reject(error);
|
|
18669
|
+
}
|
|
18670
|
+
);
|
|
18671
|
+
return instance;
|
|
18672
|
+
}
|
|
18673
|
+
|
|
18674
|
+
// src/hooks/useVolrAuthCallback.ts
|
|
18715
18675
|
function useVolrAuthCallback(options = {}) {
|
|
18716
18676
|
const { config, setUser } = useVolr();
|
|
18717
18677
|
const { refreshAccessToken, setAccessToken, setRefreshToken, client } = useInternalAuth();
|