@myauth/next 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.
Files changed (37) hide show
  1. package/dist/client/MyAuthProvider.d.ts +9 -0
  2. package/dist/client/MyAuthProvider.d.ts.map +1 -0
  3. package/dist/client/MyAuthProvider.js +46 -0
  4. package/dist/client/MyAuthProvider.js.map +1 -0
  5. package/dist/client/useAuth.d.ts +2 -0
  6. package/dist/client/useAuth.d.ts.map +1 -0
  7. package/dist/client/useAuth.js +9 -0
  8. package/dist/client/useAuth.js.map +1 -0
  9. package/dist/components/AuthenticationWithRedirectCallback.d.ts +2 -0
  10. package/dist/components/AuthenticationWithRedirectCallback.d.ts.map +1 -0
  11. package/dist/components/AuthenticationWithRedirectCallback.js +40 -0
  12. package/dist/components/AuthenticationWithRedirectCallback.js.map +1 -0
  13. package/dist/index.d.ts +8 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +8 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/internal/session.d.ts +3 -0
  18. package/dist/internal/session.d.ts.map +1 -0
  19. package/dist/internal/session.js +6 -0
  20. package/dist/internal/session.js.map +1 -0
  21. package/dist/middleware/withAuthMiddleware.d.ts +3 -0
  22. package/dist/middleware/withAuthMiddleware.d.ts.map +1 -0
  23. package/dist/middleware/withAuthMiddleware.js +32 -0
  24. package/dist/middleware/withAuthMiddleware.js.map +1 -0
  25. package/dist/server/auth.d.ts +5 -0
  26. package/dist/server/auth.d.ts.map +1 -0
  27. package/dist/server/auth.js +19 -0
  28. package/dist/server/auth.js.map +1 -0
  29. package/dist/server/authCallbackHandler.d.ts +10 -0
  30. package/dist/server/authCallbackHandler.d.ts.map +1 -0
  31. package/dist/server/authCallbackHandler.js +31 -0
  32. package/dist/server/authCallbackHandler.js.map +1 -0
  33. package/dist/types.d.ts +15 -0
  34. package/dist/types.d.ts.map +1 -0
  35. package/dist/types.js +2 -0
  36. package/dist/types.js.map +1 -0
  37. package/package.json +51 -0
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { AuthState, Session } from "../types.js";
3
+ export declare const AuthContext: React.Context<AuthState | null>;
4
+ export declare function AuthProvider({ children, initialSession, clientId, }: {
5
+ children: React.ReactNode;
6
+ initialSession: Session;
7
+ clientId: string;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=MyAuthProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MyAuthProvider.d.ts","sourceRoot":"","sources":["../../src/client/MyAuthProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAQ,MAAM,aAAa,CAAC;AAK5D,eAAO,MAAM,WAAW,iCAAwC,CAAC;AAEjE,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,cAAc,EACd,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,2CA6CA"}
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React, { createContext, useEffect, useState } from "react";
4
+ import { logOut } from "@myauth/node";
5
+ import { useRouter } from "next/navigation.js";
6
+ import { setSessionToken } from "../internal/session.js";
7
+ export const AuthContext = createContext(null);
8
+ export function AuthProvider({ children, initialSession, clientId, }) {
9
+ console.log(initialSession);
10
+ const [user, setUser] = useState(initialSession?.user);
11
+ const [token, setToken] = useState(initialSession?.token);
12
+ const [loading, setLoading] = useState(false);
13
+ const router = useRouter();
14
+ // const API_BASE_URL = "http://localhost:5005";
15
+ const API_BASE_URL = "https://auth-api.deepxdev.com";
16
+ const logout = async () => {
17
+ try {
18
+ setLoading(true);
19
+ if (token) {
20
+ await logOut({
21
+ token,
22
+ apiBaseUrl: API_BASE_URL,
23
+ });
24
+ }
25
+ }
26
+ catch (error) {
27
+ console.error("Logout failed", error);
28
+ }
29
+ finally {
30
+ setUser(null);
31
+ setToken(null);
32
+ setLoading(false);
33
+ }
34
+ };
35
+ useEffect(() => {
36
+ setSessionToken(token ?? null);
37
+ }, [token]);
38
+ const login = async () => {
39
+ if (user && token)
40
+ return;
41
+ router.push(`${process.env.NEXT_PUBLIC_AUTH_FRONTEND}?clientId=${clientId}`);
42
+ return;
43
+ };
44
+ return (_jsx(AuthContext.Provider, { value: { user, loading, token, logout, login }, children: children }));
45
+ }
46
+ //# sourceMappingURL=MyAuthProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MyAuthProvider.js","sourceRoot":"","sources":["../../src/client/MyAuthProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAmB,IAAI,CAAC,CAAC;AAEjE,MAAM,UAAU,YAAY,CAAC,EAC3B,QAAQ,EACR,cAAc,EACd,QAAQ,GAKT;IACC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,cAAc,EAAE,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,cAAc,EAAE,KAAK,CAAC,CAAC;IACzE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,iDAAiD;IACjD,MAAM,YAAY,GAAG,+BAA+B,CAAC;IAErD,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;YAEjB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,MAAM,CAAC;oBACX,KAAK;oBACL,UAAU,EAAE,YAAY;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,IAAI,IAAI,KAAK;YAAE,OAAO;QAC1B,MAAM,CAAC,IAAI,CACT,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,aAAa,QAAQ,EAAE,CAChE,CAAC;QACF,OAAO;IACT,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YACjE,QAAQ,GACY,CACxB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useAuth: () => import("../types.js").AuthState;
2
+ //# sourceMappingURL=useAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../src/client/useAuth.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,uCAQnB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { useContext } from "react";
2
+ import { AuthContext } from "./MyAuthProvider.js";
3
+ export const useAuth = () => {
4
+ const context = useContext(AuthContext);
5
+ if (!context)
6
+ throw new Error("Please wrap your application with AuthProvider in order to use useAuth");
7
+ return context;
8
+ };
9
+ //# sourceMappingURL=useAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../src/client/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const AuthenticateWithRedirectCallback: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=AuthenticationWithRedirectCallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthenticationWithRedirectCallback.d.ts","sourceRoot":"","sources":["../../src/components/AuthenticationWithRedirectCallback.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,gCAAgC,+CA8C5C,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useRouter, useSearchParams } from "next/navigation.js";
4
+ import { useEffect } from "react";
5
+ export const AuthenticateWithRedirectCallback = () => {
6
+ const router = useRouter();
7
+ const searchParams = useSearchParams();
8
+ const code = searchParams.get("code");
9
+ useEffect(() => {
10
+ if (!code) {
11
+ throw new Error(`Authentication failed: code is required`);
12
+ }
13
+ const authenticate = async () => {
14
+ try {
15
+ const response = await fetch("/api/auth/token", {
16
+ method: "POST",
17
+ headers: {
18
+ "Content-Type": "application/json",
19
+ },
20
+ body: JSON.stringify({ code }),
21
+ });
22
+ if (!response.ok) {
23
+ throw new Error(`Authentication failed: ${response.status}`);
24
+ }
25
+ if (response.status === 200) {
26
+ router.push("/");
27
+ }
28
+ else {
29
+ throw new Error("No access token received");
30
+ }
31
+ }
32
+ catch (err) {
33
+ console.log(err);
34
+ }
35
+ };
36
+ authenticate();
37
+ }, [code, router]);
38
+ return (_jsxs("div", { className: "flex flex-col items-center justify-center min-h-screen bg-gray-50", children: [_jsx("div", { className: "relative", children: _jsx("div", { className: "w-16 h-16 border-4 border-blue-200 border-t-blue-600 rounded-full animate-spin" }) }), _jsx("p", { className: "mt-6 text-lg text-gray-700 font-medium", children: "Authenticating..." }), _jsx("p", { className: "mt-2 text-sm text-gray-500", children: "Please wait while we complete your sign-in" })] }));
39
+ };
40
+ //# sourceMappingURL=AuthenticationWithRedirectCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthenticationWithRedirectCallback.js","sourceRoot":"","sources":["../../src/components/AuthenticationWithRedirectCallback.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,EAAE;IACnD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iBAAiB,EAAE;oBAC9C,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;iBAC/B,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QACF,YAAY,EAAE,CAAC;IACjB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,eAAK,SAAS,EAAC,mEAAmE,aAChF,cAAK,SAAS,EAAC,UAAU,YACvB,cAAK,SAAS,EAAC,gFAAgF,GAAO,GAClG,EACN,YAAG,SAAS,EAAC,wCAAwC,kCAEjD,EACJ,YAAG,SAAS,EAAC,4BAA4B,2DAErC,IACA,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { withAuthMiddleware } from "./middleware/withAuthMiddleware.js";
2
+ export { AuthProvider } from "./client/MyAuthProvider.js";
3
+ export { useAuth } from "./client/useAuth.js";
4
+ export { auth } from "./server/auth.js";
5
+ export { AuthenticateWithRedirectCallback } from "./components/AuthenticationWithRedirectCallback.js";
6
+ export { createAuthCallbackHandler } from "./server/authCallbackHandler.js";
7
+ export { getSessionToken } from "./internal/session.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export { withAuthMiddleware } from "./middleware/withAuthMiddleware.js";
2
+ export { AuthProvider } from "./client/MyAuthProvider.js";
3
+ export { useAuth } from "./client/useAuth.js";
4
+ export { auth } from "./server/auth.js";
5
+ export { AuthenticateWithRedirectCallback } from "./components/AuthenticationWithRedirectCallback.js";
6
+ export { createAuthCallbackHandler } from "./server/authCallbackHandler.js";
7
+ export { getSessionToken } from "./internal/session.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const setSessionToken: (token: string | null) => void;
2
+ export declare const getSessionToken: () => string | null;
3
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/internal/session.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,IAAI,SAEnD,CAAC;AAEF,eAAO,MAAM,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,6 @@
1
+ let currentToken = null;
2
+ export const setSessionToken = (token) => {
3
+ currentToken = token;
4
+ };
5
+ export const getSessionToken = () => currentToken;
6
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/internal/session.ts"],"names":[],"mappings":"AAAA,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAoB,EAAE,EAAE;IACtD,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { NextResponse, type NextRequest } from "next/server.js";
2
+ export declare function withAuthMiddleware(clientId: String): (req: NextRequest) => Promise<NextResponse<unknown>>;
3
+ //# sourceMappingURL=withAuthMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAuthMiddleware.d.ts","sourceRoot":"","sources":["../../src/middleware/withAuthMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEhE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IASrB,KAAK,WAAW,oCAe7C"}
@@ -0,0 +1,32 @@
1
+ import { verifyToken } from "@myauth/node";
2
+ import { NextResponse } from "next/server.js";
3
+ export function withAuthMiddleware(clientId) {
4
+ //const AUTH_PORTAL_BASE_URL = "http://localhost:3001";
5
+ const AUTH_PORTAL_BASE_URL = "https://auth.deepxdev.com";
6
+ const API_BASE_URL = "https://auth-api.deepxdev.com";
7
+ //const API_BASE_URL = "http://localhost:5005";
8
+ const redirectTo = `${AUTH_PORTAL_BASE_URL}/login?clientId=${clientId}`;
9
+ const apiBaseUrl = API_BASE_URL;
10
+ return async function proxy(req) {
11
+ const token = req.cookies.get("refreshToken")?.value;
12
+ console.log("token", token);
13
+ if (!token) {
14
+ return redirect(req, redirectTo);
15
+ }
16
+ try {
17
+ await verifyToken({ token, apiBaseUrl });
18
+ return NextResponse.next();
19
+ }
20
+ catch (e) {
21
+ console.log("reach this error");
22
+ return redirect(req, redirectTo);
23
+ }
24
+ };
25
+ }
26
+ function redirect(req, redirectTo) {
27
+ if (redirectTo.startsWith("http")) {
28
+ return NextResponse.redirect(redirectTo);
29
+ }
30
+ return NextResponse.redirect(new URL(redirectTo, req.url));
31
+ }
32
+ //# sourceMappingURL=withAuthMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withAuthMiddleware.js","sourceRoot":"","sources":["../../src/middleware/withAuthMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AAEhE,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,uDAAuD;IACvD,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;IACzD,MAAM,YAAY,GAAG,+BAA+B,CAAC;IACrD,+CAA+C;IAE/C,MAAM,UAAU,GAAG,GAAG,oBAAoB,mBAAmB,QAAQ,EAAE,CAAC;IACxE,MAAM,UAAU,GAAG,YAAY,CAAC;IAEhC,OAAO,KAAK,UAAU,KAAK,CAAC,GAAgB;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACzC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,GAAgB,EAAE,UAAkB;IACpD,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const auth: () => Promise<{
2
+ user: any;
3
+ token: string;
4
+ } | null>;
5
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/server/auth.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI;;;SAmBhB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { verifyToken } from "@myauth/node";
2
+ import { cookies, headers } from "next/headers.js";
3
+ export const auth = async () => {
4
+ const cookieStore = await cookies();
5
+ const headerList = await headers();
6
+ // const API_BASE_URL = "http://localhost:5005";
7
+ const API_BASE_URL = "https://auth-api.deepxdev.com";
8
+ const token = cookieStore.get("refreshToken")?.value ??
9
+ headerList.get("authorization")?.replace("Bearer ", "");
10
+ if (!token)
11
+ return null;
12
+ const user = await verifyToken({
13
+ token,
14
+ apiBaseUrl: API_BASE_URL,
15
+ });
16
+ const session = { user, token };
17
+ return session;
18
+ };
19
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/server/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;IAC7B,MAAM,WAAW,GAAG,MAAM,OAAO,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,OAAO,EAAE,CAAC;IACnC,iDAAiD;IACjD,MAAM,YAAY,GAAG,+BAA+B,CAAC;IAErD,MAAM,KAAK,GACT,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK;QACtC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;QAC7B,KAAK;QACL,UAAU,EAAE,YAAY;KACzB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAEhC,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { NextResponse, type NextRequest } from "next/server.js";
2
+ export declare function createAuthCallbackHandler(config: {
3
+ clientId: string;
4
+ clientSecret: string;
5
+ }): (req: NextRequest) => Promise<NextResponse<{
6
+ error: string;
7
+ }> | NextResponse<{
8
+ accessToken: any;
9
+ }>>;
10
+ //# sourceMappingURL=authCallbackHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authCallbackHandler.d.ts","sourceRoot":"","sources":["../../src/server/authCallbackHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEhE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,IAS4B,KAAK,WAAW;;;;IAwB5C"}
@@ -0,0 +1,31 @@
1
+ import { MyAuth } from "@myauth/node";
2
+ import { NextResponse } from "next/server.js";
3
+ export function createAuthCallbackHandler(config) {
4
+ // const API_BASE_URL = "http://localhost:5005";
5
+ const API_BASE_URL = "https://auth-api.deepxdev.com";
6
+ const myAuth = new MyAuth({
7
+ ...config,
8
+ apiBaseUrl: API_BASE_URL,
9
+ });
10
+ return async function POST(req) {
11
+ const { code } = await req.json();
12
+ if (!code) {
13
+ return NextResponse.json({ error: "Code required" }, { status: 400 });
14
+ }
15
+ try {
16
+ const { refreshToken, accessToken } = await myAuth.handleCallback(code);
17
+ const res = NextResponse.json({ accessToken });
18
+ res.cookies.set("refreshToken", refreshToken, {
19
+ httpOnly: true,
20
+ secure: true,
21
+ sameSite: "none",
22
+ path: "/",
23
+ });
24
+ return res;
25
+ }
26
+ catch {
27
+ return NextResponse.json({ error: "Invalid code" }, { status: 400 });
28
+ }
29
+ };
30
+ }
31
+ //# sourceMappingURL=authCallbackHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authCallbackHandler.js","sourceRoot":"","sources":["../../src/server/authCallbackHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AAEhE,MAAM,UAAU,yBAAyB,CAAC,MAGzC;IACC,iDAAiD;IACjD,MAAM,YAAY,GAAG,+BAA+B,CAAC;IAErD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,GAAG,MAAM;QACT,UAAU,EAAE,YAAY;KACzB,CAAC,CAAC;IAEH,OAAO,KAAK,UAAU,IAAI,CAAC,GAAgB;QACzC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAExE,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YAE/C,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,EAAE;gBAC5C,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,GAAG;aACV,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type User = {
2
+ email: string;
3
+ };
4
+ export type AuthState = {
5
+ user: User | null;
6
+ token: string | null;
7
+ loading: boolean;
8
+ logout: () => Promise<void>;
9
+ login: () => Promise<void>;
10
+ };
11
+ export type Session = {
12
+ user: User | null;
13
+ token: string | null;
14
+ };
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@myauth/next",
3
+ "version": "1.0.0",
4
+ "description": "Next.js SDK for MyAuth authentication service",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "scripts": {
15
+ "build": "tsc",
16
+ "dev": "tsc --watch",
17
+ "lint": "eslint src",
18
+ "check-types": "tsc --noEmit",
19
+ "format": "prettier --write \"src/**/*.{ts,tsx}\""
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "README.md",
24
+ "LICENSE"
25
+ ],
26
+ "keywords": [
27
+ "auth",
28
+ "nextjs",
29
+ "middleware",
30
+ "authentication",
31
+ "sdk"
32
+ ],
33
+ "author": "MyAuth Team",
34
+ "license": "ISC",
35
+ "dependencies": {
36
+ "@myauth/node": "^1.0.0",
37
+ "dotenv": "^16.0.3"
38
+ },
39
+ "peerDependencies": {
40
+ "next": ">=14.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "@types/node": "^20.19.29",
44
+ "eslint": "^8.0.0",
45
+ "prettier": "^3.0.0",
46
+ "typescript": "^5.0.0"
47
+ },
48
+ "engines": {
49
+ "node": ">=18.0.0"
50
+ }
51
+ }