delta-auth-next 0.1.30 → 0.1.32

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.
Files changed (42) hide show
  1. package/dist/DeltaProvider.d.ts.map +1 -1
  2. package/dist/DeltaProvider.js +24 -46
  3. package/dist/DeltaProvider.js.map +1 -1
  4. package/dist/LoginButton.d.ts +8 -0
  5. package/dist/LoginButton.d.ts.map +1 -0
  6. package/dist/LoginButton.js +8 -0
  7. package/dist/LoginButton.js.map +1 -0
  8. package/dist/LogoutAllSessionsButton.d.ts +8 -0
  9. package/dist/LogoutAllSessionsButton.d.ts.map +1 -0
  10. package/dist/LogoutAllSessionsButton.js +8 -0
  11. package/dist/LogoutAllSessionsButton.js.map +1 -0
  12. package/dist/LogoutButton.d.ts +8 -0
  13. package/dist/LogoutButton.d.ts.map +1 -0
  14. package/dist/LogoutButton.js +8 -0
  15. package/dist/LogoutButton.js.map +1 -0
  16. package/dist/ProtectedRoute.d.ts +9 -0
  17. package/dist/ProtectedRoute.d.ts.map +1 -0
  18. package/dist/ProtectedRoute.js +18 -0
  19. package/dist/ProtectedRoute.js.map +1 -0
  20. package/dist/SignInButton.d.ts +8 -0
  21. package/dist/SignInButton.d.ts.map +1 -0
  22. package/dist/SignInButton.js +8 -0
  23. package/dist/SignInButton.js.map +1 -0
  24. package/dist/UserProfile.d.ts +7 -0
  25. package/dist/UserProfile.d.ts.map +1 -0
  26. package/dist/UserProfile.js +15 -0
  27. package/dist/UserProfile.js.map +1 -0
  28. package/dist/context.d.ts +1 -2
  29. package/dist/context.d.ts.map +1 -1
  30. package/dist/context.js +0 -1
  31. package/dist/context.js.map +1 -1
  32. package/dist/edge/middleware-helper.d.ts +3 -0
  33. package/dist/edge/middleware-helper.d.ts.map +1 -1
  34. package/dist/edge/middleware-helper.js +19 -1
  35. package/dist/edge/middleware-helper.js.map +1 -1
  36. package/dist/index.d.ts +5 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +6 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/types.d.ts +20 -0
  41. package/dist/types.d.ts.map +1 -1
  42. 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,EAAiB,MAAM,SAAS,CAAC;AAGzD,UAAU,KAAK;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAID,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAkH5D"}
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"}
@@ -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 [session, setSession] = useState(null);
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 no publishable key
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 only if enabled
22
+ }, [config?.publishableKey, config?.authDomain, show]);
23
+ // 🔹 Create client
27
24
  const client = createAuthClient(config.backendUrl ? { backendUrl: config.backendUrl } : {});
28
- // 🔹 Fetch current session
29
- const fetchSession = useCallback(async () => {
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-based
34
- if (res.data?.data?.user) {
35
- setSession(res.data.data);
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 (err) {
42
- setSession(null);
43
- if (config.showAlerts ?? true) {
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, config.showAlerts, show]);
51
- // 🔹 Fetch detailed user info
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
- fetchSession();
81
- }, [config.publishableKey, fetchSession, enabled, show]);
82
- // 🔹 Auto refresh session
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(fetchSession, config.refreshInterval ?? 5 * 60 * 1000);
65
+ const interval = setInterval(fetchUser, config.refreshInterval ?? 5 * 60 * 1000);
87
66
  return () => clearInterval(interval);
88
- }, [fetchSession, config.autoRefresh, config.refreshInterval, enabled]);
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
- session,
93
- user: session?.user ?? null,
71
+ user,
94
72
  loading,
95
- isAuthenticated: !!session,
73
+ isAuthenticated: !!user,
96
74
  client,
97
- fetchUser: fetchUserDetails,
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":"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"}
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
+ preferredText?: string;
5
+ }
6
+ export declare const LoginButton: ({ className, preferredText, ...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,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,GAAI,wCAIzB,WAAW,4CAcb,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const LoginButton = ({ className, preferredText = 'Log In', ...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 = "/api/login";
6
+ }, ...props, children: preferredText }));
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,aAAa,GAAG,QAAQ,EACxB,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,YAAY,CAAC;QACtC,CAAC,KACG,KAAK,YAER,aAAa,GACP,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
+ preferredText?: string;
5
+ }
6
+ export declare const LogoutAllSessionsButton: ({ className, preferredText, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=LogoutAllSessionsButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutAllSessionsButton.d.ts","sourceRoot":"","sources":["../src/LogoutAllSessionsButton.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,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,uBAAuB,GAAI,wCAIrC,WAAW,4CAcb,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const LogoutAllSessionsButton = ({ className, preferredText = 'Log out all sessions', ...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 = '/api/logoutallsessions';
6
+ }, ...props, children: preferredText }));
7
+ };
8
+ //# sourceMappingURL=LogoutAllSessionsButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogoutAllSessionsButton.js","sourceRoot":"","sources":["../src/LogoutAllSessionsButton.tsx"],"names":[],"mappings":";AAQA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,SAAS,EACT,aAAa,GAAG,sBAAsB,EACtC,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,wBAAwB,CAAC;QAClD,CAAC,KACG,KAAK,YAER,aAAa,GACP,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
+ preferredText?: string;
5
+ }
6
+ export declare const LogoutButton: ({ className, preferredText, ...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,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,GAAI,wCAI1B,WAAW,4CAcb,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const LogoutButton = ({ className, preferredText = 'Log out', ...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 = '/api/logout';
6
+ }, ...props, children: preferredText }));
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,aAAa,GAAG,SAAS,EACzB,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,aAAa,CAAC;QACvC,CAAC,KACG,KAAK,YAER,aAAa,GACP,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React, { ReactNode } from 'react';
2
+ interface Props {
3
+ children: ReactNode;
4
+ redirect?: () => void;
5
+ fallback?: ReactNode;
6
+ }
7
+ export declare const ProtectedRoute: React.FC<Props>;
8
+ export {};
9
+ //# sourceMappingURL=ProtectedRoute.d.ts.map
@@ -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,7 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ className?: string;
4
+ }
5
+ export declare const UserProfile: React.FC<Props>;
6
+ export {};
7
+ //# sourceMappingURL=UserProfile.d.ts.map
@@ -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
@@ -1,6 +1,5 @@
1
- import { Session, User } from './types';
1
+ import { User } from './types';
2
2
  export interface AuthContextValue {
3
- session: Session | null;
4
3
  user: User | null;
5
4
  loading: boolean;
6
5
  isAuthenticated: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,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,2CAOtB,CAAC"}
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
@@ -1,7 +1,6 @@
1
1
  // src/context.ts
2
2
  import { createContext } from 'react';
3
3
  export const AuthContext = createContext({
4
- session: null,
5
4
  user: null,
6
5
  loading: true,
7
6
  isAuthenticated: false,
@@ -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;AAYtC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAmB;IACzD,OAAO,EAAE,IAAI;IACb,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"}
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;CACrB;AAGD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAC,MAAM,EAAC,MAAM,UAUnF"}
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":"AAWA,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,qBAC5C,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"}
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/index.d.ts CHANGED
@@ -4,4 +4,9 @@ export * from './hooks';
4
4
  export * from './alert';
5
5
  export * from './types';
6
6
  export * from './urls';
7
+ export * from './LoginButton';
8
+ export * from './LogoutButton';
9
+ export * from './LogoutAllSessionsButton';
10
+ export * from './ProtectedRoute';
11
+ export * from './UserProfile';
7
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAE9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -4,4 +4,10 @@ export * from './hooks';
4
4
  export * from './alert';
5
5
  export * from './types';
6
6
  export * from './urls';
7
+ export * from './LoginButton';
8
+ // export * from './SignInButton';
9
+ export * from './LogoutButton';
10
+ export * from './LogoutAllSessionsButton';
11
+ export * from './ProtectedRoute';
12
+ export * from './UserProfile';
7
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,kCAAkC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,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;
@@ -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;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;CACZ"}
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.30",
3
+ "version": "0.1.32",
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",