delta-auth-next 0.1.30 → 0.1.31
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/DeltaProvider.d.ts.map +1 -1
- package/dist/DeltaProvider.js +24 -46
- package/dist/DeltaProvider.js.map +1 -1
- package/dist/LoginButton.d.ts +8 -0
- package/dist/LoginButton.d.ts.map +1 -0
- package/dist/LoginButton.js +8 -0
- package/dist/LoginButton.js.map +1 -0
- package/dist/LogoutButton.d.ts +8 -0
- package/dist/LogoutButton.d.ts.map +1 -0
- package/dist/LogoutButton.js +8 -0
- package/dist/LogoutButton.js.map +1 -0
- package/dist/ProtectedRoute.d.ts +9 -0
- package/dist/ProtectedRoute.d.ts.map +1 -0
- package/dist/ProtectedRoute.js +18 -0
- package/dist/ProtectedRoute.js.map +1 -0
- package/dist/SignInButton.d.ts +8 -0
- package/dist/SignInButton.d.ts.map +1 -0
- package/dist/SignInButton.js +8 -0
- package/dist/SignInButton.js.map +1 -0
- package/dist/UserProfile.d.ts +7 -0
- package/dist/UserProfile.d.ts.map +1 -0
- package/dist/UserProfile.js +15 -0
- package/dist/UserProfile.js.map +1 -0
- package/dist/context.d.ts +1 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +0 -1
- package/dist/context.js.map +1 -1
- package/dist/edge/middleware-helper.d.ts +3 -0
- package/dist/edge/middleware-helper.d.ts.map +1 -1
- package/dist/edge/middleware-helper.js +19 -1
- package/dist/edge/middleware-helper.js.map +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeltaProvider.d.ts","sourceRoot":"","sources":["../src/DeltaProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAGhE,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"DeltaProvider.d.ts","sourceRoot":"","sources":["../src/DeltaProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAQ,MAAM,SAAS,CAAC;AAGhD,UAAU,KAAK;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAiG5D"}
|
package/dist/DeltaProvider.js
CHANGED
|
@@ -4,15 +4,12 @@ import { useState, useEffect, useCallback } from 'react';
|
|
|
4
4
|
import { AuthContext } from './context';
|
|
5
5
|
import { createAuthClient } from './client/authClient';
|
|
6
6
|
import { useSimpleToast } from './alert';
|
|
7
|
-
// export Appconfigs = ()=> {
|
|
8
|
-
// return
|
|
9
|
-
// }
|
|
10
7
|
export function DeltaAuthProvider({ config, children }) {
|
|
11
|
-
const [
|
|
8
|
+
const [user, setUser] = useState(null);
|
|
12
9
|
const [loading, setLoading] = useState(true);
|
|
13
10
|
const [enabled, setEnabled] = useState(true); // disables provider if misconfigured
|
|
14
11
|
const { show, Toast } = useSimpleToast();
|
|
15
|
-
// 🔹 Disable if
|
|
12
|
+
// 🔹 Disable provider if misconfigured
|
|
16
13
|
useEffect(() => {
|
|
17
14
|
if (!config?.publishableKey) {
|
|
18
15
|
show('DeltaAuth: publishableKey is required');
|
|
@@ -22,46 +19,28 @@ export function DeltaAuthProvider({ config, children }) {
|
|
|
22
19
|
show('DeltaAuth: authDomain is required');
|
|
23
20
|
setEnabled(false);
|
|
24
21
|
}
|
|
25
|
-
}, [config?.publishableKey]);
|
|
26
|
-
// 🔹 Create client
|
|
22
|
+
}, [config?.publishableKey, config?.authDomain, show]);
|
|
23
|
+
// 🔹 Create client
|
|
27
24
|
const client = createAuthClient(config.backendUrl ? { backendUrl: config.backendUrl } : {});
|
|
28
|
-
// 🔹 Fetch
|
|
29
|
-
const
|
|
25
|
+
// 🔹 Fetch user from backend (httpOnly cookie)
|
|
26
|
+
const fetchUser = useCallback(async () => {
|
|
30
27
|
if (!enabled || !client)
|
|
31
|
-
return;
|
|
28
|
+
return null; // always return User | null
|
|
32
29
|
try {
|
|
33
|
-
const res = await client.get('/auth/me'); // cookie
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
else {
|
|
38
|
-
setSession(null);
|
|
39
|
-
}
|
|
30
|
+
const res = await client.get('/api/auth/me'); // backend validates httpOnly cookie
|
|
31
|
+
const userFromRes = res.data?.user ?? null;
|
|
32
|
+
setUser(userFromRes);
|
|
33
|
+
return userFromRes;
|
|
40
34
|
}
|
|
41
|
-
catch
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
show(err.response?.data?.error ?? 'Auth failed');
|
|
45
|
-
}
|
|
35
|
+
catch {
|
|
36
|
+
setUser(null);
|
|
37
|
+
return null;
|
|
46
38
|
}
|
|
47
39
|
finally {
|
|
48
40
|
setLoading(false);
|
|
49
41
|
}
|
|
50
|
-
}, [client, enabled
|
|
51
|
-
// 🔹
|
|
52
|
-
const fetchUserDetails = useCallback(async () => {
|
|
53
|
-
if (!session?.user || !client)
|
|
54
|
-
return null;
|
|
55
|
-
try {
|
|
56
|
-
const res = await client.get(`/users/${session.user.id}`);
|
|
57
|
-
setSession((prev) => (prev ? { ...prev, user: res.data } : null));
|
|
58
|
-
return res.data;
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
return session.user; // fallback
|
|
62
|
-
}
|
|
63
|
-
}, [client, session]);
|
|
64
|
-
// 🔹 Environment mismatch warnings
|
|
42
|
+
}, [client, enabled]);
|
|
43
|
+
// 🔹 Environment warnings
|
|
65
44
|
useEffect(() => {
|
|
66
45
|
if (!enabled)
|
|
67
46
|
return;
|
|
@@ -77,24 +56,23 @@ export function DeltaAuthProvider({ config, children }) {
|
|
|
77
56
|
show('You are using a test key in production. Use a live key.');
|
|
78
57
|
}
|
|
79
58
|
if (enabled)
|
|
80
|
-
|
|
81
|
-
}, [config.publishableKey,
|
|
82
|
-
// 🔹 Auto
|
|
59
|
+
fetchUser();
|
|
60
|
+
}, [config.publishableKey, fetchUser, enabled, show]);
|
|
61
|
+
// 🔹 Auto-refresh user
|
|
83
62
|
useEffect(() => {
|
|
84
63
|
if (!enabled || !config.autoRefresh)
|
|
85
64
|
return;
|
|
86
|
-
const interval = setInterval(
|
|
65
|
+
const interval = setInterval(fetchUser, config.refreshInterval ?? 5 * 60 * 1000);
|
|
87
66
|
return () => clearInterval(interval);
|
|
88
|
-
}, [
|
|
67
|
+
}, [fetchUser, config.autoRefresh, config.refreshInterval, enabled]);
|
|
89
68
|
if (!enabled)
|
|
90
69
|
return _jsx(_Fragment, { children: children }); // render children without auth if disabled
|
|
91
70
|
return (_jsxs(_Fragment, { children: [_jsx(AuthContext.Provider, { value: {
|
|
92
|
-
|
|
93
|
-
user: session?.user ?? null,
|
|
71
|
+
user,
|
|
94
72
|
loading,
|
|
95
|
-
isAuthenticated: !!
|
|
73
|
+
isAuthenticated: !!user,
|
|
96
74
|
client,
|
|
97
|
-
fetchUser
|
|
75
|
+
fetchUser,
|
|
98
76
|
}, children: children }), _jsx(Toast, {}), " "] }));
|
|
99
77
|
}
|
|
100
78
|
//# sourceMappingURL=DeltaProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeltaProvider.js","sourceRoot":"","sources":["../src/DeltaProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"DeltaProvider.js","sourceRoot":"","sources":["../src/DeltaProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
className?: string;
|
|
4
|
+
redirectUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const LoginButton: ({ className, redirectUrl, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=LoginButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginButton.d.ts","sourceRoot":"","sources":["../src/LoginButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,WAAY,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,GAAI,sCAIzB,WAAW,4CAcb,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const LoginButton = ({ className, redirectUrl = '/login', ...props }) => {
|
|
3
|
+
const defaultClasses = 'px-6 py-2 rounded-lg bg-green-600 text-white font-semibold hover:bg-green-700 transition-all duration-300';
|
|
4
|
+
return (_jsx("button", { className: `${defaultClasses} ${className || ''}`, onClick: () => {
|
|
5
|
+
window.location.href = redirectUrl;
|
|
6
|
+
}, ...props, children: "Log In" }));
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=LoginButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginButton.js","sourceRoot":"","sources":["../src/LoginButton.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,SAAS,EACT,WAAW,GAAG,QAAQ,EACtB,GAAG,KAAK,EACI,EAAE,EAAE;IAChB,MAAM,cAAc,GAClB,2GAA2G,CAAC;IAC9G,OAAO,CACL,iBACE,SAAS,EAAE,GAAG,cAAc,IAAI,SAAS,IAAI,EAAE,EAAE,EACjD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;QACrC,CAAC,KACG,KAAK,uBAGF,CACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
className?: string;
|
|
4
|
+
redirectUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const LogoutButton: ({ className, redirectUrl, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=LogoutButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogoutButton.d.ts","sourceRoot":"","sources":["../src/LogoutButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,WAAY,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,GAAI,sCAI1B,WAAW,4CAcb,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const LogoutButton = ({ className, redirectUrl = '/', ...props }) => {
|
|
3
|
+
const defaultClasses = 'px-6 py-2 rounded-lg bg-green-600 text-white font-semibold hover:bg-green-700 transition-all duration-300';
|
|
4
|
+
return (_jsx("button", { className: `${defaultClasses} ${className || ''}`, onClick: () => {
|
|
5
|
+
window.location.href = redirectUrl;
|
|
6
|
+
}, ...props, children: "Log Out" }));
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=LogoutButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogoutButton.js","sourceRoot":"","sources":["../src/LogoutButton.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,SAAS,EACT,WAAW,GAAG,GAAG,EACjB,GAAG,KAAK,EACI,EAAE,EAAE;IAChB,MAAM,cAAc,GAClB,2GAA2G,CAAC;IAC9G,OAAO,CACL,iBACE,SAAS,EAAE,GAAG,cAAc,IAAI,SAAS,IAAI,EAAE,EAAE,EACjD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;QACrC,CAAC,KACG,KAAK,wBAGF,CACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProtectedRoute.d.ts","sourceRoot":"","sources":["../src/ProtectedRoute.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAyB,MAAM,OAAO,CAAC;AAGhE,UAAU,KAAK;IACb,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyB1C,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useContext, useEffect } from 'react';
|
|
4
|
+
import { AuthContext } from './context';
|
|
5
|
+
export const ProtectedRoute = ({ children, redirect, fallback, }) => {
|
|
6
|
+
const { user, loading } = useContext(AuthContext);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (!loading && !user && redirect) {
|
|
9
|
+
redirect();
|
|
10
|
+
}
|
|
11
|
+
}, [user, loading, redirect]);
|
|
12
|
+
if (loading)
|
|
13
|
+
return (fallback ?? (_jsx("div", { className: "flex justify-center items-center h-screen bg-gray-50 animate-pulse", children: _jsx("div", { className: "w-16 h-16 bg-gray-300 rounded-full" }) })));
|
|
14
|
+
if (!user)
|
|
15
|
+
return null;
|
|
16
|
+
return _jsx(_Fragment, { children: children });
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=ProtectedRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProtectedRoute.js","sourceRoot":"","sources":["../src/ProtectedRoute.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAc,EAAa,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQxC,MAAM,CAAC,MAAM,cAAc,GAAoB,CAAC,EAC9C,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,CAAC;YAClC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE9B,IAAI,OAAO;QACT,OAAO,CACL,QAAQ,IAAI,CACV,cAAK,SAAS,EAAC,oEAAoE,YACjF,cAAK,SAAS,EAAC,oCAAoC,GAAG,GAClD,CACP,CACF,CAAC;IAEJ,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
className?: string;
|
|
4
|
+
redirectUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const SignInButton: ({ className, redirectUrl, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=SignInButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignInButton.d.ts","sourceRoot":"","sources":["../src/SignInButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,WAAY,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,GAAI,sCAI1B,WAAW,4CAcb,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const SignInButton = ({ className, redirectUrl = '/signin', ...props }) => {
|
|
3
|
+
const defaultClasses = 'px-6 py-2 rounded-lg bg-indigo-600 text-white font-semibold hover:bg-indigo-700 transition-all duration-300';
|
|
4
|
+
return (_jsx("button", { className: `${defaultClasses} ${className || ''}`, onClick: () => {
|
|
5
|
+
window.location.href = redirectUrl;
|
|
6
|
+
}, ...props, children: "Sign In" }));
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=SignInButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignInButton.js","sourceRoot":"","sources":["../src/SignInButton.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,SAAS,EACT,WAAW,GAAG,SAAS,EACvB,GAAG,KAAK,EACI,EAAE,EAAE;IAChB,MAAM,cAAc,GAClB,6GAA6G,CAAC;IAChH,OAAO,CACL,iBACE,SAAS,EAAE,GAAG,cAAc,IAAI,SAAS,IAAI,EAAE,EAAE,EACjD,OAAO,EAAE,GAAG,EAAE;YACZ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;QACrC,CAAC,KACG,KAAK,wBAGF,CACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserProfile.d.ts","sourceRoot":"","sources":["../src/UserProfile.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAGpD,UAAU,KAAK;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0CvC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useContext, useState } from 'react';
|
|
4
|
+
import { AuthContext } from './context';
|
|
5
|
+
export const UserProfile = ({ className }) => {
|
|
6
|
+
const { user, fetchUser } = useContext(AuthContext);
|
|
7
|
+
const [menuOpen, setMenuOpen] = useState(false);
|
|
8
|
+
if (!user)
|
|
9
|
+
return null;
|
|
10
|
+
return (_jsxs("div", { className: `relative inline-block text-left ${className ?? ''}`, children: [_jsxs("button", { onClick: () => setMenuOpen(!menuOpen), className: "flex items-center space-x-2 p-2 rounded-full hover:bg-gray-200 transition", children: [user.avatar && (_jsx("img", { src: user.avatar, alt: user.full_name ?? 'User', className: "w-8 h-8 rounded-full" })), _jsx("span", { className: "hidden sm:block font-medium text-gray-700", children: user.full_name })] }), menuOpen && (_jsxs("div", { className: "absolute right-0 mt-2 w-48 bg-white shadow-lg rounded-md border border-gray-200 animate-fade-in z-50", children: [_jsx("div", { className: "px-4 py-2 text-gray-700 font-medium border-b border-gray-100", children: user.email }), _jsx("button", { onClick: async () => {
|
|
11
|
+
await fetch('/api/auth/logout', { method: 'POST' });
|
|
12
|
+
await fetchUser();
|
|
13
|
+
}, className: "w-full text-left px-4 py-2 hover:bg-gray-100 transition", children: "Sign Out" })] }))] }));
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=UserProfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserProfile.js","sourceRoot":"","sources":["../src/UserProfile.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,MAAM,CAAC,MAAM,WAAW,GAAoB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,eAAK,SAAS,EAAE,mCAAmC,SAAS,IAAI,EAAE,EAAE,aAClE,kBACE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,EACrC,SAAS,EAAC,2EAA2E,aAEpF,IAAI,CAAC,MAAM,IAAI,CACd,cACE,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,GAAG,EAAE,IAAI,CAAC,SAAS,IAAI,MAAM,EAC7B,SAAS,EAAC,sBAAsB,GAChC,CACH,EACD,eAAM,SAAS,EAAC,2CAA2C,YACxD,IAAI,CAAC,SAAS,GACV,IACA,EAER,QAAQ,IAAI,CACX,eAAK,SAAS,EAAC,sGAAsG,aACnH,cAAK,SAAS,EAAC,8DAA8D,YAC1E,IAAI,CAAC,KAAK,GACP,EACN,iBACE,OAAO,EAAE,KAAK,IAAI,EAAE;4BAClB,MAAM,KAAK,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;4BACpD,MAAM,SAAS,EAAE,CAAC;wBACpB,CAAC,EACD,SAAS,EAAC,yDAAyD,yBAG5D,IACL,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/context.d.ts
CHANGED
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,IAAI,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC,cAAc,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;IAC1E,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,WAAW,2CAMtB,CAAC"}
|
package/dist/context.js
CHANGED
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAWtC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAmB;IACzD,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,KAAK;IACtB,MAAM,EAAE,EAAS;IACjB,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;CAC5B,CAAC,CAAC"}
|
|
@@ -5,7 +5,10 @@ interface DeltaAuthConfig {
|
|
|
5
5
|
showAlerts?: boolean;
|
|
6
6
|
backendUrl?: string;
|
|
7
7
|
authDomain?: string;
|
|
8
|
+
frontendUrl?: string;
|
|
8
9
|
}
|
|
9
10
|
export declare function GetsigninUrl(pathname: string, config: DeltaAuthConfig, origin: string): string;
|
|
11
|
+
export declare function GetLogoutUrl(pathname: string, config: DeltaAuthConfig, redirectTo: string, frontendUrl: string): string;
|
|
12
|
+
export declare function GetLogoutAllsessionsUrl(pathname: string, config: DeltaAuthConfig, redirectTo: string, frontendUrl: string): string;
|
|
10
13
|
export {};
|
|
11
14
|
//# sourceMappingURL=middleware-helper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-helper.d.ts","sourceRoot":"","sources":["../../src/edge/middleware-helper.ts"],"names":[],"mappings":"AACA,UAAU,eAAe;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware-helper.d.ts","sourceRoot":"","sources":["../../src/edge/middleware-helper.ts"],"names":[],"mappings":"AACA,UAAU,eAAe;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAC,MAAM,EAAC,MAAM,UAUnF;AACD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAC,UAAU,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,UAU1G;AACD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,UAYpB"}
|
|
@@ -1,10 +1,28 @@
|
|
|
1
1
|
export function GetsigninUrl(pathname, config, origin) {
|
|
2
2
|
if (pathname === '/api/signin') {
|
|
3
|
-
const signinUrl = `${config.authDomain}/signin?client_id=${config.publishableKey}&redirect_uri=${encodeURIComponent(origin)}`;
|
|
3
|
+
const signinUrl = `${config.authDomain}/api/auth/signin?client_id=${config.publishableKey}&redirect_uri=${encodeURIComponent(origin)}`;
|
|
4
4
|
return signinUrl;
|
|
5
5
|
}
|
|
6
6
|
else {
|
|
7
7
|
return pathname;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
+
export function GetLogoutUrl(pathname, config, redirectTo, frontendUrl) {
|
|
11
|
+
if (pathname === '/api/logout') {
|
|
12
|
+
const logoutUrl = `${config.authDomain}/api/auth/logout?client_id=${config.publishableKey}&redirect_uri=${encodeURIComponent(redirectTo)}`;
|
|
13
|
+
return logoutUrl;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return pathname;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function GetLogoutAllsessionsUrl(pathname, config, redirectTo, frontendUrl) {
|
|
20
|
+
if (pathname === '/api/logoutallsessions') {
|
|
21
|
+
const logoutUrl = `${config.authDomain}/api/auth/logoutallsessions?client_id=${config.publishableKey}&redirect_uri=${encodeURIComponent(redirectTo || frontendUrl)}`;
|
|
22
|
+
return logoutUrl;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return pathname;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
10
28
|
//# sourceMappingURL=middleware-helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware-helper.js","sourceRoot":"","sources":["../../src/edge/middleware-helper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware-helper.js","sourceRoot":"","sources":["../../src/edge/middleware-helper.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,MAAuB,EAAC,MAAa;IAClF,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAW,GAAG,MAAM,CAAC,UAAU,8BAC5C,MAAM,CAAC,cACT,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAA;IAClB,CAAC;SACG,CAAC;QACH,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,MAAuB,EAAC,UAAiB,EAAC,WAAkB;IACzG,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAW,GAAG,MAAM,CAAC,UAAU,8BAC5C,MAAM,CAAC,cACT,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,OAAO,SAAS,CAAA;IAClB,CAAC;SACG,CAAC;QACH,OAAO,QAAQ,CAAA;IACjB,CAAC;AACH,CAAC;AACD,MAAM,UAAU,uBAAuB,CACrC,QAAgB,EAChB,MAAuB,EACvB,UAAkB,EAClB,WAAmB;IAEnB,IAAI,QAAQ,KAAK,wBAAwB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAW,GACxB,MAAM,CAAC,UACT,yCACE,MAAM,CAAC,cACT,iBAAiB,kBAAkB,CAAC,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -14,6 +14,26 @@ export interface User {
|
|
|
14
14
|
role: string;
|
|
15
15
|
public_metadata?: Record<string, any>;
|
|
16
16
|
}
|
|
17
|
+
export interface User {
|
|
18
|
+
id: string;
|
|
19
|
+
email: string;
|
|
20
|
+
org: string;
|
|
21
|
+
avatar: string;
|
|
22
|
+
full_name: string;
|
|
23
|
+
first_name: string;
|
|
24
|
+
last_name: string;
|
|
25
|
+
initials: string;
|
|
26
|
+
platform_role?: 'admin' | 'client' | 'host' | 'organization';
|
|
27
|
+
is_admin: boolean;
|
|
28
|
+
session_expires_at?: string;
|
|
29
|
+
is_org: boolean;
|
|
30
|
+
is_host: boolean;
|
|
31
|
+
last_login: string;
|
|
32
|
+
login_times: number;
|
|
33
|
+
org_id: string | null;
|
|
34
|
+
permissions: string[];
|
|
35
|
+
public_metadata?: Record<string, any>;
|
|
36
|
+
}
|
|
17
37
|
export interface Session {
|
|
18
38
|
access_token: string;
|
|
19
39
|
refresh_token: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AACD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;IAC7D,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACvC;AACD,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;CACZ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "delta-auth-next",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.31",
|
|
4
4
|
"description": "A lightweight authentication helper for Next.js that provides React context providers and Edge-safe middleware utilities for handling sign-in redirects and session management.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Samuel Onwodi",
|