@crossmint/client-sdk-auth 0.2.2 → 1.0.0
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/LICENSE +1 -1
- package/README.md +97 -0
- package/dist/CrossmintAuthClient.cjs +12 -0
- package/dist/CrossmintAuthClient.cjs.map +1 -0
- package/dist/CrossmintAuthClient.d.cts +35 -0
- package/dist/CrossmintAuthClient.d.ts +35 -0
- package/dist/CrossmintAuthClient.js +12 -0
- package/dist/CrossmintAuthClient.js.map +1 -0
- package/dist/chunk-5JXPQKM4.js +19 -0
- package/dist/chunk-5JXPQKM4.js.map +1 -0
- package/dist/chunk-7YATBCAU.js +229 -0
- package/dist/chunk-7YATBCAU.js.map +1 -0
- package/dist/chunk-BGMXXFQ4.cjs +19 -0
- package/dist/chunk-BGMXXFQ4.cjs.map +1 -0
- package/dist/chunk-BMYZMMVR.js +7 -0
- package/dist/chunk-BMYZMMVR.js.map +1 -0
- package/dist/chunk-F45I5NLI.cjs +46 -0
- package/dist/chunk-F45I5NLI.cjs.map +1 -0
- package/dist/chunk-ILL57KWX.cjs +229 -0
- package/dist/chunk-ILL57KWX.cjs.map +1 -0
- package/dist/chunk-JPRRZPBL.js +46 -0
- package/dist/chunk-JPRRZPBL.js.map +1 -0
- package/dist/chunk-MLMLBCSI.js +11 -0
- package/dist/chunk-MLMLBCSI.js.map +1 -0
- package/dist/chunk-QY4RIGNM.cjs +11 -0
- package/dist/chunk-QY4RIGNM.cjs.map +1 -0
- package/dist/chunk-TIUX4OOQ.cjs +7 -0
- package/dist/chunk-TIUX4OOQ.cjs.map +1 -0
- package/dist/chunk-TOXKCKTY.js +1 -0
- package/dist/chunk-TOXKCKTY.js.map +1 -0
- package/dist/chunk-VQ3HTIQ3.cjs +1 -0
- package/dist/chunk-VQ3HTIQ3.cjs.map +1 -0
- package/dist/index.cjs +28 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -5
- package/dist/index.d.ts +7 -5
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/constants.cjs +8 -0
- package/dist/utils/constants.cjs.map +1 -0
- package/dist/utils/constants.d.cts +3 -0
- package/dist/utils/constants.d.ts +3 -0
- package/dist/utils/constants.js +8 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/cookies.cjs +12 -0
- package/dist/utils/cookies.cjs.map +1 -0
- package/dist/utils/cookies.d.cts +5 -0
- package/dist/utils/cookies.d.ts +5 -0
- package/dist/utils/cookies.js +12 -0
- package/dist/utils/cookies.js.map +1 -0
- package/dist/utils/index.cjs +21 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +3 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/jwt.cjs +8 -0
- package/dist/utils/jwt.cjs.map +1 -0
- package/dist/utils/jwt.d.cts +3 -0
- package/dist/utils/jwt.d.ts +3 -0
- package/dist/utils/jwt.js +8 -0
- package/dist/utils/jwt.js.map +1 -0
- package/package.json +8 -4
- package/src/CrossmintAuthClient.test.ts +406 -0
- package/src/CrossmintAuthClient.ts +241 -0
- package/src/index.ts +2 -1
- package/src/utils/constants.ts +1 -0
- package/src/utils/cookies.test.ts +44 -0
- package/src/utils/cookies.ts +13 -0
- package/src/utils/index.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const TIME_BEFORE_EXPIRING_JWT_IN_SECONDS = 120;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
2
|
+
import { deleteCookie, getCookie, setCookie } from "./cookies";
|
|
3
|
+
|
|
4
|
+
describe("cookies", () => {
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
// Clear all cookies before each test
|
|
7
|
+
document.cookie.split(";").forEach((cookie) => {
|
|
8
|
+
document.cookie = cookie
|
|
9
|
+
.replace(/^ +/, "")
|
|
10
|
+
.replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/");
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it("should return undefined for non-existent cookie", () => {
|
|
15
|
+
expect(getCookie("non-existent")).toBeUndefined();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it("should return the correct value for an existing cookie", async () => {
|
|
19
|
+
document.cookie = "test-cookie=test-value";
|
|
20
|
+
await waitForSettledState(() => {
|
|
21
|
+
expect(getCookie("test-cookie")).toBe("test-value");
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("should set a cookie without expiration", async () => {
|
|
26
|
+
setCookie("test-cookie", "test-value");
|
|
27
|
+
await waitForSettledState(() => {
|
|
28
|
+
expect(document.cookie).toContain("test-cookie=test-value");
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("should delete an existing cookie", async () => {
|
|
33
|
+
document.cookie = "test-cookie=test-value";
|
|
34
|
+
deleteCookie("test-cookie");
|
|
35
|
+
await waitForSettledState(() => {
|
|
36
|
+
expect(document.cookie).not.toContain("test-cookie");
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const waitForSettledState = async (callback: () => void) => {
|
|
42
|
+
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
43
|
+
callback();
|
|
44
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function getCookie(name: string): string | undefined {
|
|
2
|
+
const crossmintRefreshToken = document.cookie.split("; ").find((row) => row.startsWith(name));
|
|
3
|
+
return crossmintRefreshToken ? crossmintRefreshToken.split("=")[1] : undefined;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export function setCookie(name: string, value: string, expiresAt?: string) {
|
|
7
|
+
const expiresInUtc = expiresAt ? new Date(expiresAt).toUTCString() : "";
|
|
8
|
+
document.cookie = `${name}=${value}; ${expiresAt ? `expires=${expiresInUtc};` : ""} path=/; SameSite=Lax;`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function deleteCookie(name: string) {
|
|
12
|
+
document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
|
|
13
|
+
}
|
package/src/utils/index.ts
CHANGED