251127:1700 Frontend Start Build

This commit is contained in:
admin
2025-11-27 17:08:49 +07:00
parent b42c8c0c9f
commit f725bd5d3e
1795 changed files with 893474 additions and 10 deletions

View File

@@ -0,0 +1,15 @@
ISC License
Copyright (c) 2022-2024, Balázs Orbán
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

View File

@@ -0,0 +1,18 @@
<p align="center">
<a href="https://nextjs.org" target="_blank"><img height="96px" src="https://authjs.dev/img/etc/nextjs.svg" /></a>
<a href="https://nextjs.authjs.dev" target="_blank"><img height="96px" src="https://authjs.dev/img/logo-sm.png" /></a>
<h1 align="center">NextAuth.js</h1>
</p>
<p align="center">
Authentication for Next.js.
</p>
<p align="center">
<a href="https://www.npmjs.com/package/next-auth"><img src="https://img.shields.io/npm/v/next-auth/beta?style=flat-square&label=latest&color=purple" alt="npm beta release" /></a>
<a href="https://www.npmtrends.com/next-auth"><img src="https://img.shields.io/npm/dm/next-auth?style=flat-square&color=cyan" alt="Downloads" /></a>
<a href="https://github.com/nextauthjs/next-auth/stargazers"><img src="https://img.shields.io/github/stars/nextauthjs/next-auth?style=flat-square&color=orange" alt="GitHub Stars" /></a>
<img src="https://shields.io/badge/TypeScript-3178C6?logo=TypeScript&logoColor=fff&style=flat-square" alt="TypeScript" />
</p>
---
Check out the documentation at [nextjs.authjs.dev](https://nextjs.authjs.dev).

View File

@@ -0,0 +1,2 @@
export type * from "@auth/core/adapters";
//# sourceMappingURL=adapters.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["src/adapters.ts"],"names":[],"mappings":"AAAA,mBAAmB,qBAAqB,CAAA"}

View File

@@ -0,0 +1 @@
export {};

324
frontend/.ignored_node_modules/next-auth/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,324 @@
/**
* _If you are looking to migrate from v4, visit the [Upgrade Guide (v5)](https://authjs.dev/getting-started/migrating-to-v5)._
*
* ## Installation
*
* ```bash npm2yarn
* npm install next-auth@beta
* ```
*
* ## Environment variable inference
*
* `NEXTAUTH_URL` and `NEXTAUTH_SECRET` have been inferred since v4.
*
* Since NextAuth.js v5 can also automatically infer environment variables that are prefixed with `AUTH_`.
*
* For example `AUTH_GITHUB_ID` and `AUTH_GITHUB_SECRET` will be used as the `clientId` and `clientSecret` options for the GitHub provider.
*
* :::tip
* The environment variable name inferring has the following format for OAuth providers: `AUTH_{PROVIDER}_{ID|SECRET}`.
*
* `PROVIDER` is the uppercase snake case version of the provider's id, followed by either `ID` or `SECRET` respectively.
* :::
*
* `AUTH_SECRET` and `AUTH_URL` are also aliased for `NEXTAUTH_SECRET` and `NEXTAUTH_URL` for consistency.
*
* To add social login to your app, the configuration becomes:
*
* ```ts title="auth.ts"
* import NextAuth from "next-auth"
* import GitHub from "next-auth/providers/github"
* export const { handlers, auth } = NextAuth({ providers: [ GitHub ] })
* ```
*
* And the `.env.local` file:
*
* ```sh title=".env.local"
* AUTH_GITHUB_ID=...
* AUTH_GITHUB_SECRET=...
* AUTH_SECRET=...
* ```
*
* :::tip
* In production, `AUTH_SECRET` is a required environment variable - if not set, NextAuth.js will throw an error. See [MissingSecretError](https://authjs.dev/reference/core/errors#missingsecret) for more details.
* :::
*
* If you need to override the default values for a provider, you can still call it as a function `GitHub({...})` as before.
*
* ## Lazy initialization
* You can also initialize NextAuth.js lazily (previously known as advanced intialization), which allows you to access the request context in the configuration in some cases, like Route Handlers, Middleware, API Routes or `getServerSideProps`.
* The above example becomes:
*
* ```ts title="auth.ts"
* import NextAuth from "next-auth"
* import GitHub from "next-auth/providers/github"
* export const { handlers, auth } = NextAuth(req => {
* if (req) {
* console.log(req) // do something with the request
* }
* return { providers: [ GitHub ] }
* })
* ```
*
* :::tip
* This is useful if you want to customize the configuration based on the request, for example, to add a different provider in staging/dev environments.
* :::
*
* @module next-auth
*/
import { customFetch } from "@auth/core";
import type { Awaitable, Session } from "@auth/core/types";
import type { ProviderId } from "@auth/core/providers";
import type { GetServerSidePropsContext, NextApiRequest, NextApiResponse } from "next";
import type { AppRouteHandlerFn, AppRouteHandlerFnContext } from "./lib/types.js";
import type { NextRequest, NextMiddleware } from "next/server";
import type { NextAuthConfig, NextAuthRequest, NextAuthMiddleware } from "./lib/index.js";
export { AuthError, CredentialsSignin } from "@auth/core/errors";
export { customFetch };
export type { Session, Account, Profile, DefaultSession, User, } from "@auth/core/types";
type AppRouteHandlers = Record<"GET" | "POST", (req: NextRequest) => Promise<Response>>;
export type { NextAuthConfig, NextAuthRequest };
/**
* The result of invoking {@link NextAuth|NextAuth}, initialized with the {@link NextAuthConfig}.
* It contains methods to set up and interact with NextAuth.js in your Next.js app.
*/
export interface NextAuthResult {
/**
* The NextAuth.js [Route Handler](https://beta.nextjs.org/docs/routing/route-handlers) methods. These are used to expose an endpoint for OAuth/Email providers,
* as well as REST API endpoints (such as `/api/auth/session`) that can be contacted from the client.
*
* After initializing NextAuth.js in `auth.ts`,
* re-export these methods.
*
* In `app/api/auth/[...nextauth]/route.ts`:
*
* ```ts title="app/api/auth/[...nextauth]/route.ts"
* export { GET, POST } from "../../../../auth"
* export const runtime = "edge" // optional
* ```
* Then `auth.ts`:
* ```ts title="auth.ts"
* // ...
* export const { handlers: { GET, POST }, auth } = NextAuth({...})
* ```
*/
handlers: AppRouteHandlers;
/**
* A universal method to interact with NextAuth.js in your Next.js app.
* After initializing NextAuth.js in `auth.ts`, use this method in Middleware, Server Components, Route Handlers (`app/`), and Edge or Node.js API Routes (`pages/`).
*
* ##### In Middleware
*
* :::info
* Adding `auth` to your Middleware is optional, but recommended to keep the user session alive.
* :::
*
* Authentication is done by the {@link NextAuthConfig.callbacks|callbacks.authorized} callback.
* @example
* ```ts title="middleware.ts"
* export { auth as middleware } from "./auth"
* ```
*
* Alternatively you can wrap your own middleware with `auth`, where `req` is extended with `auth`:
* @example
* ```ts title="middleware.ts"
* import { auth } from "./auth"
* export default auth((req) => {
* // req.auth
* })
* ```
*
* ```ts
* // Optionally, don't invoke Middleware on some paths
* // Read more: https://nextjs.org/docs/app/building-your-application/routing/middleware#matcher
* export const config = {
* matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"],
* }
* ```
*
* ##### In Server Components
*
* @example
* ```ts title="app/page.ts"
* import { auth } from "../auth"
*
* export default async function Page() {
* const { user } = await auth()
* return <p>Hello {user?.name}</p>
* }
* ```
*
* ##### In Route Handlers
* @example
* ```ts title="app/api/route.ts"
* import { auth } from "../../auth"
*
* export const POST = auth((req) => {
* // req.auth
* })
* ```
*
* ##### In Edge API Routes
*
* @example
* ```ts title="pages/api/protected.ts"
* import { auth } from "../../auth"
*
* export default auth((req) => {
* // req.auth
* })
*
* export const config = { runtime: "edge" }
* ```
*
* ##### In API Routes
*
* @example
* ```ts title="pages/api/protected.ts"
* import { auth } from "../auth"
* import type { NextApiRequest, NextApiResponse } from "next"
*
* export default async (req: NextApiRequest, res: NextApiResponse) => {
* const session = await auth(req, res)
* if (session) {
* // Do something with the session
* return res.json("This is protected content.")
* }
* res.status(401).json("You must be signed in.")
* }
* ```
*
* ##### In `getServerSideProps`
*
* @example
* ```ts title="pages/protected-ssr.ts"
* import { auth } from "../auth"
*
* export const getServerSideProps: GetServerSideProps = async (context) => {
* const session = await auth(context)
*
* if (session) {
* // Do something with the session
* return { props: { session, content: (await res.json()).content } }
* }
*
* return { props: {} }
* }
* ```
*/
auth: ((...args: [NextApiRequest, NextApiResponse]) => Promise<Session | null>) & ((...args: []) => Promise<Session | null>) & ((...args: [GetServerSidePropsContext]) => Promise<Session | null>) & ((...args: [
(req: NextAuthRequest, ctx: AppRouteHandlerFnContext) => ReturnType<AppRouteHandlerFn>
]) => AppRouteHandlerFn) & ((...args: [NextAuthMiddleware]) => NextMiddleware);
/**
* Sign in with a provider. If no provider is specified, the user will be redirected to the sign in page.
*
* By default, the user is redirected to the current page after signing in. You can override this behavior by setting the `redirectTo` option with a relative path.
*
* @example
* ```ts title="app/layout.tsx"
* import { signIn } from "../auth"
*
* export default function Layout() {
* return (
* <form action={async () => {
* "use server"
* await signIn("github")
* }}>
* <button>Sign in with GitHub</button>
* </form>
* )
* ```
*
* If an error occurs during signin, an instance of {@link AuthError} will be thrown. You can catch it like this:
* ```ts title="app/layout.tsx"
* import { AuthError } from "next-auth"
* import { signIn } from "../auth"
*
* export default function Layout() {
* return (
* <form action={async (formData) => {
* "use server"
* try {
* await signIn("credentials", formData)
* } catch(error) {
* if (error instanceof AuthError) // Handle auth errors
* throw error // Rethrow all other errors
* }
* }}>
* <button>Sign in</button>
* </form>
* )
* }
* ```
*
*/
signIn: <P extends ProviderId, R extends boolean = true>(
/** Provider to sign in to */
provider?: P, // See: https://github.com/microsoft/TypeScript/issues/29729
options?: FormData | ({
/** The relative path to redirect to after signing in. By default, the user is redirected to the current page. */
redirectTo?: string;
/** If set to `false`, the `signIn` method will return the URL to redirect to instead of redirecting automatically. */
redirect?: R;
} & Record<string, any>), authorizationParams?: string[][] | Record<string, string> | string | URLSearchParams) => Promise<R extends false ? any : never>;
/**
* Sign out the user. If the session was created using a database strategy, the session will be removed from the database and the related cookie is invalidated.
* If the session was created using a JWT, the cookie is invalidated.
*
* By default the user is redirected to the current page after signing out. You can override this behavior by setting the `redirectTo` option with a relative path.
*
* @example
* ```ts title="app/layout.tsx"
* import { signOut } from "../auth"
*
* export default function Layout() {
* return (
* <form action={async () => {
* "use server"
* await signOut()
* }}>
* <button>Sign out</button>
* </form>
* )
* ```
*
*
*/
signOut: <R extends boolean = true>(options?: {
/** The relative path to redirect to after signing out. By default, the user is redirected to the current page. */
redirectTo?: string;
/** If set to `false`, the `signOut` method will return the URL to redirect to instead of redirecting automatically. */
redirect?: R;
}) => Promise<R extends false ? any : never>;
unstable_update: (data: Partial<Session | {
user: Partial<Session["user"]>;
}>) => Promise<Session | null>;
}
/**
* Initialize NextAuth.js.
*
* @example
* ```ts title="auth.ts"
* import NextAuth from "next-auth"
* import GitHub from "@auth/core/providers/github"
*
* export const { handlers, auth } = NextAuth({ providers: [GitHub] })
* ```
*
* Lazy initialization:
*
* @example
* ```ts title="auth.ts"
* import NextAuth from "next-auth"
* import GitHub from "@auth/core/providers/github"
*
* export const { handlers, auth } = NextAuth(async (req) => {
* console.log(req) // do something with the request
* return {
* providers: [GitHub],
* },
* })
* ```
*/
export default function NextAuth(config: NextAuthConfig | ((request: NextRequest | undefined) => Awaitable<NextAuthConfig>)): NextAuthResult;
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AAEH,OAAO,EAAQ,WAAW,EAAE,MAAM,YAAY,CAAA;AAK9C,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EACV,yBAAyB,EACzB,cAAc,EACd,eAAe,EAChB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EACV,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EACnB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,YAAY,EACV,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,IAAI,GACL,MAAM,kBAAkB,CAAA;AAEzB,KAAK,gBAAgB,GAAG,MAAM,CAC5B,KAAK,GAAG,MAAM,EACd,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CACxC,CAAA;AAED,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA;AAE/C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,EAAE,gBAAgB,CAAA;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsGG;IACH,IAAI,EAAE,CAAC,CACL,GAAG,IAAI,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,KACvC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GAC3B,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GAC1C,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,yBAAyB,CAAC,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,GACnE,CAAC,CACC,GAAG,IAAI,EAAE;QACP,CACE,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,wBAAwB,KAC1B,UAAU,CAAC,iBAAiB,CAAC;KACnC,KACE,iBAAiB,CAAC,GACvB,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,kBAAkB,CAAC,KAAK,cAAc,CAAC,CAAA;IACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,MAAM,EAAE,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,OAAO,GAAG,IAAI;IACrD,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,4DAA4D;IAC1E,OAAO,CAAC,EACJ,QAAQ,GACR,CAAC;QACC,iHAAiH;QACjH,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,sHAAsH;QACtH,QAAQ,CAAC,EAAE,CAAC,CAAA;KACb,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAC5B,mBAAmB,CAAC,EAChB,MAAM,EAAE,EAAE,GACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,MAAM,GACN,eAAe,KAChB,OAAO,CAAC,CAAC,SAAS,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAA;IAC3C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE;QAC5C,kHAAkH;QAClH,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,uHAAuH;QACvH,QAAQ,CAAC,EAAE,CAAC,CAAA;KACb,KAAK,OAAO,CAAC,CAAC,SAAS,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAA;IAC5C,eAAe,EAAE,CACf,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC,KACxD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,MAAM,EACF,cAAc,GACd,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC,GACpE,cAAc,CA8ChB"}

View File

@@ -0,0 +1,145 @@
/**
* _If you are looking to migrate from v4, visit the [Upgrade Guide (v5)](https://authjs.dev/getting-started/migrating-to-v5)._
*
* ## Installation
*
* ```bash npm2yarn
* npm install next-auth@beta
* ```
*
* ## Environment variable inference
*
* `NEXTAUTH_URL` and `NEXTAUTH_SECRET` have been inferred since v4.
*
* Since NextAuth.js v5 can also automatically infer environment variables that are prefixed with `AUTH_`.
*
* For example `AUTH_GITHUB_ID` and `AUTH_GITHUB_SECRET` will be used as the `clientId` and `clientSecret` options for the GitHub provider.
*
* :::tip
* The environment variable name inferring has the following format for OAuth providers: `AUTH_{PROVIDER}_{ID|SECRET}`.
*
* `PROVIDER` is the uppercase snake case version of the provider's id, followed by either `ID` or `SECRET` respectively.
* :::
*
* `AUTH_SECRET` and `AUTH_URL` are also aliased for `NEXTAUTH_SECRET` and `NEXTAUTH_URL` for consistency.
*
* To add social login to your app, the configuration becomes:
*
* ```ts title="auth.ts"
* import NextAuth from "next-auth"
* import GitHub from "next-auth/providers/github"
* export const { handlers, auth } = NextAuth({ providers: [ GitHub ] })
* ```
*
* And the `.env.local` file:
*
* ```sh title=".env.local"
* AUTH_GITHUB_ID=...
* AUTH_GITHUB_SECRET=...
* AUTH_SECRET=...
* ```
*
* :::tip
* In production, `AUTH_SECRET` is a required environment variable - if not set, NextAuth.js will throw an error. See [MissingSecretError](https://authjs.dev/reference/core/errors#missingsecret) for more details.
* :::
*
* If you need to override the default values for a provider, you can still call it as a function `GitHub({...})` as before.
*
* ## Lazy initialization
* You can also initialize NextAuth.js lazily (previously known as advanced intialization), which allows you to access the request context in the configuration in some cases, like Route Handlers, Middleware, API Routes or `getServerSideProps`.
* The above example becomes:
*
* ```ts title="auth.ts"
* import NextAuth from "next-auth"
* import GitHub from "next-auth/providers/github"
* export const { handlers, auth } = NextAuth(req => {
* if (req) {
* console.log(req) // do something with the request
* }
* return { providers: [ GitHub ] }
* })
* ```
*
* :::tip
* This is useful if you want to customize the configuration based on the request, for example, to add a different provider in staging/dev environments.
* :::
*
* @module next-auth
*/
import { Auth, customFetch } from "@auth/core";
import { reqWithEnvURL, setEnvDefaults } from "./lib/env.js";
import { initAuth } from "./lib/index.js";
import { signIn, signOut, update } from "./lib/actions.js";
export { AuthError, CredentialsSignin } from "@auth/core/errors";
export { customFetch };
/**
* Initialize NextAuth.js.
*
* @example
* ```ts title="auth.ts"
* import NextAuth from "next-auth"
* import GitHub from "@auth/core/providers/github"
*
* export const { handlers, auth } = NextAuth({ providers: [GitHub] })
* ```
*
* Lazy initialization:
*
* @example
* ```ts title="auth.ts"
* import NextAuth from "next-auth"
* import GitHub from "@auth/core/providers/github"
*
* export const { handlers, auth } = NextAuth(async (req) => {
* console.log(req) // do something with the request
* return {
* providers: [GitHub],
* },
* })
* ```
*/
export default function NextAuth(config) {
if (typeof config === "function") {
const httpHandler = async (req) => {
const _config = await config(req);
setEnvDefaults(_config);
return Auth(reqWithEnvURL(req), _config);
};
return {
handlers: { GET: httpHandler, POST: httpHandler },
// @ts-expect-error
auth: initAuth(config, (c) => setEnvDefaults(c)),
signIn: async (provider, options, authorizationParams) => {
const _config = await config(undefined);
setEnvDefaults(_config);
return signIn(provider, options, authorizationParams, _config);
},
signOut: async (options) => {
const _config = await config(undefined);
setEnvDefaults(_config);
return signOut(options, _config);
},
unstable_update: async (data) => {
const _config = await config(undefined);
setEnvDefaults(_config);
return update(data, _config);
},
};
}
setEnvDefaults(config);
const httpHandler = (req) => Auth(reqWithEnvURL(req), config);
return {
handlers: { GET: httpHandler, POST: httpHandler },
// @ts-expect-error
auth: initAuth(config),
signIn: (provider, options, authorizationParams) => {
return signIn(provider, options, authorizationParams, config);
},
signOut: (options) => {
return signOut(options, config);
},
unstable_update: (data) => {
return update(data, config);
},
};
}

9
frontend/.ignored_node_modules/next-auth/jwt.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
/**
* :::warning Not recommended
* In NextAuth.js v5 or newer, we recommend other authentication methods server-side. Read more at: https://authjs.dev/getting-started/migrating-to-v5#authenticating-server-side
* :::
*
* @module jwt
*/
export * from "@auth/core/jwt";
//# sourceMappingURL=jwt.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["src/jwt.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,gBAAgB,CAAA"}

View File

@@ -0,0 +1,8 @@
/**
* :::warning Not recommended
* In NextAuth.js v5 or newer, we recommend other authentication methods server-side. Read more at: https://authjs.dev/getting-started/migrating-to-v5#authenticating-server-side
* :::
*
* @module jwt
*/
export * from "@auth/core/jwt";

View File

@@ -0,0 +1,13 @@
import type { NextAuthConfig } from "./index.js";
import type { NextAuthResult, Session } from "../index.js";
type SignInParams = Parameters<NextAuthResult["signIn"]>;
export declare function signIn(provider: SignInParams[0], options: FormData | ({
redirectTo?: string | undefined;
redirect?: boolean | undefined;
} & Record<string, any>) | undefined, authorizationParams: SignInParams[2], config: NextAuthConfig): Promise<any>;
type SignOutParams = Parameters<NextAuthResult["signOut"]>;
export declare function signOut(options: SignOutParams[0], config: NextAuthConfig): Promise<any>;
type UpdateParams = Parameters<NextAuthResult["unstable_update"]>;
export declare function update(data: UpdateParams[0], config: NextAuthConfig): Promise<Session | null>;
export {};
//# sourceMappingURL=actions.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/lib/actions.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAG1D,KAAK,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxD,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACzB,OAAO;;;oCAAsB,EAC7B,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,EACpC,MAAM,EAAE,cAAc,gBAuEvB;AAED,KAAK,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;AAC1D,wBAAsB,OAAO,CAC3B,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,MAAM,EAAE,cAAc,gBAyBvB;AAED,KAAK,YAAY,GAAG,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAA;AACjE,wBAAsB,MAAM,CAC1B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAqBzB"}

View File

@@ -0,0 +1,86 @@
import { Auth, raw, skipCSRFCheck, createActionURL } from "@auth/core";
// @ts-expect-error Next.js does not yet correctly use the `package.json#exports` field
import { headers as nextHeaders, cookies } from "next/headers";
// @ts-expect-error Next.js does not yet correctly use the `package.json#exports` field
import { redirect } from "next/navigation";
export async function signIn(provider, options = {}, authorizationParams, config) {
const headers = new Headers(await nextHeaders());
const { redirect: shouldRedirect = true, redirectTo, ...rest } = options instanceof FormData ? Object.fromEntries(options) : options;
const callbackUrl = redirectTo?.toString() ?? headers.get("Referer") ?? "/";
const signInURL = createActionURL("signin",
// @ts-expect-error `x-forwarded-proto` is not nullable, next.js sets it by default
headers.get("x-forwarded-proto"), headers, process.env, config);
if (!provider) {
signInURL.searchParams.append("callbackUrl", callbackUrl);
if (shouldRedirect)
redirect(signInURL.toString());
return signInURL.toString();
}
let url = `${signInURL}/${provider}?${new URLSearchParams(authorizationParams)}`;
let foundProvider = {};
for (const providerConfig of config.providers) {
const { options, ...defaults } = typeof providerConfig === "function" ? providerConfig() : providerConfig;
const id = options?.id ?? defaults.id;
if (id === provider) {
foundProvider = {
id,
type: options?.type ?? defaults.type,
};
break;
}
}
if (!foundProvider.id) {
const url = `${signInURL}?${new URLSearchParams({ callbackUrl })}`;
if (shouldRedirect)
redirect(url);
return url;
}
if (foundProvider.type === "credentials") {
url = url.replace("signin", "callback");
}
headers.set("Content-Type", "application/x-www-form-urlencoded");
const body = new URLSearchParams({ ...rest, callbackUrl });
const req = new Request(url, { method: "POST", headers, body });
const res = await Auth(req, { ...config, raw, skipCSRFCheck });
const cookieJar = await cookies();
for (const c of res?.cookies ?? [])
cookieJar.set(c.name, c.value, c.options);
const responseUrl = res instanceof Response ? res.headers.get("Location") : res.redirect;
// NOTE: if for some unexpected reason the responseUrl is not set,
// we redirect to the original url
const redirectUrl = responseUrl ?? url;
if (shouldRedirect)
return redirect(redirectUrl);
return redirectUrl;
}
export async function signOut(options, config) {
const headers = new Headers(await nextHeaders());
headers.set("Content-Type", "application/x-www-form-urlencoded");
const url = createActionURL("signout",
// @ts-expect-error `x-forwarded-proto` is not nullable, next.js sets it by default
headers.get("x-forwarded-proto"), headers, process.env, config);
const callbackUrl = options?.redirectTo ?? headers.get("Referer") ?? "/";
const body = new URLSearchParams({ callbackUrl });
const req = new Request(url, { method: "POST", headers, body });
const res = await Auth(req, { ...config, raw, skipCSRFCheck });
const cookieJar = await cookies();
for (const c of res?.cookies ?? [])
cookieJar.set(c.name, c.value, c.options);
if (options?.redirect ?? true)
return redirect(res.redirect);
return res;
}
export async function update(data, config) {
const headers = new Headers(await nextHeaders());
headers.set("Content-Type", "application/json");
const url = createActionURL("session",
// @ts-expect-error `x-forwarded-proto` is not nullable, next.js sets it by default
headers.get("x-forwarded-proto"), headers, process.env, config);
const body = JSON.stringify({ data });
const req = new Request(url, { method: "POST", headers, body });
const res = await Auth(req, { ...config, raw, skipCSRFCheck });
const cookieJar = await cookies();
for (const c of res?.cookies ?? [])
cookieJar.set(c.name, c.value, c.options);
return res.body;
}

View File

@@ -0,0 +1,104 @@
import * as React from "react";
import type { ProviderId, ProviderType } from "@auth/core/providers";
import type { Session } from "@auth/core/types";
import { AuthError } from "@auth/core/errors";
/** @todo */
export declare class ClientSessionError extends AuthError {
}
export interface AuthClientConfig {
baseUrl: string;
basePath: string;
baseUrlServer: string;
basePathServer: string;
/** Stores last session response */
_session?: Session | null | undefined;
/** Used for timestamp since last sycned (in seconds) */
_lastSync: number;
/**
* Stores the `SessionProvider`'s session update method to be able to
* trigger session updates from places like `signIn` or `signOut`
*/
_getSession: (...args: any[]) => any;
}
export interface UseSessionOptions<R extends boolean> {
required: R;
/** Defaults to `signIn` */
onUnauthenticated?: () => void;
}
export interface ClientSafeProvider {
id: ProviderId;
name: string;
type: ProviderType;
signinUrl: string;
callbackUrl: string;
redirectTo: string;
}
export interface SignInOptions<Redirect extends boolean = true> extends Record<string, unknown> {
/** @deprecated Use `redirectTo` instead. */
callbackUrl?: string;
/**
* Specify where the user should be redirected to after a successful signin.
*
* By default, it is the page the sign-in was initiated from.
*/
redirectTo?: string;
/**
* You might want to deal with the signin response on the same page, instead of redirecting to another page.
* For example, if an error occurs (like wrong credentials given by the user), you might want to show an inline error message on the input field.
*
* For this purpose, you can set this to option `redirect: false`.
*/
redirect?: Redirect;
}
export interface SignInResponse {
error: string | undefined;
code: string | undefined;
status: number;
ok: boolean;
url: string | null;
}
/** [Documentation](https://next-auth.js.org/getting-started/client#using-the-redirect-false-option-1) */
export interface SignOutResponse {
url: string;
}
export interface SignOutParams<Redirect extends boolean = true> {
/** @deprecated Use `redirectTo` instead. */
callbackUrl?: string;
/**
* If you pass `redirect: false`, the page will not reload.
* The session will be deleted, and `useSession` is notified, so any indication about the user will be shown as logged out automatically.
* It can give a very nice experience for the user.
*/
redirectTo?: string;
/** [Documentation](https://next-auth.js.org/getting-started/client#using-the-redirect-false-option-1 */
redirect?: Redirect;
}
/**
* If you have session expiry times of 30 days (the default) or more, then you probably don't need to change any of the default options.
*
* However, if you need to customize the session behavior and/or are using short session expiry times, you can pass options to the provider to customize the behavior of the {@link useSession} hook.
*/
export interface SessionProviderProps {
children: React.ReactNode;
session?: Session | null;
baseUrl?: string;
basePath?: string;
/**
* A time interval (in seconds) after which the session will be re-fetched.
* If set to `0` (default), the session is not polled.
*/
refetchInterval?: number;
/**
* `SessionProvider` automatically refetches the session when the user switches between windows.
* This option activates this behaviour if set to `true` (default).
*/
refetchOnWindowFocus?: boolean;
/**
* Set to `false` to stop polling when the device has no internet access offline (determined by `navigator.onLine`)
*
* [`navigator.onLine` documentation](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine)
*/
refetchWhenOffline?: false;
}
//# sourceMappingURL=client.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/lib/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAK7C,YAAY;AACZ,qBAAa,kBAAmB,SAAQ,SAAS;CAAG;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAA;IACrC,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;CACrC;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,OAAO;IAClD,QAAQ,EAAE,CAAC,CAAA;IACX,2BAA2B;IAC3B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,UAAU,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa,CAAC,QAAQ,SAAS,OAAO,GAAG,IAAI,CAC5D,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,OAAO,CAAA;IACX,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACnB;AAYD,yGAAyG;AACzG,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,aAAa,CAAC,QAAQ,SAAS,OAAO,GAAG,IAAI;IAC5D,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wGAAwG;IACxG,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAA;CAC3B"}

View File

@@ -0,0 +1,95 @@
"use client";
import * as React from "react";
import { AuthError } from "@auth/core/errors";
/** @todo */
class ClientFetchError extends AuthError {
}
/** @todo */
export class ClientSessionError extends AuthError {
}
// ------------------------ Internal ------------------------
/**
* If passed 'appContext' via getInitialProps() in _app.js
* then get the req object from ctx and use that for the
* req value to allow `fetchData` to
* work seemlessly in getInitialProps() on server side
* pages *and* in _app.js.
* @internal
*/
export async function fetchData(path, __NEXTAUTH, logger, req = {}) {
const url = `${apiBaseUrl(__NEXTAUTH)}/${path}`;
try {
const options = {
headers: {
"Content-Type": "application/json",
...(req?.headers?.cookie ? { cookie: req.headers.cookie } : {}),
},
};
if (req?.body) {
options.body = JSON.stringify(req.body);
options.method = "POST";
}
const res = await fetch(url, options);
const data = await res.json();
if (!res.ok)
throw data;
return data;
}
catch (error) {
logger.error(new ClientFetchError(error.message, error));
return null;
}
}
/** @internal */
export function apiBaseUrl(__NEXTAUTH) {
if (typeof window === "undefined") {
// Return absolute path when called server side
return `${__NEXTAUTH.baseUrlServer}${__NEXTAUTH.basePathServer}`;
}
// Return relative path when called client side
return __NEXTAUTH.basePath;
}
/** @internal */
export function useOnline() {
const [isOnline, setIsOnline] = React.useState(typeof navigator !== "undefined" ? navigator.onLine : false);
const setOnline = () => setIsOnline(true);
const setOffline = () => setIsOnline(false);
React.useEffect(() => {
window.addEventListener("online", setOnline);
window.addEventListener("offline", setOffline);
return () => {
window.removeEventListener("online", setOnline);
window.removeEventListener("offline", setOffline);
};
}, []);
return isOnline;
}
/**
* Returns the number of seconds elapsed since January 1, 1970 00:00:00 UTC.
* @internal
*/
export function now() {
return Math.floor(Date.now() / 1000);
}
/**
* Returns an `URL` like object to make requests/redirects from server-side
* @internal
*/
export function parseUrl(url) {
const defaultUrl = new URL("http://localhost:3000/api/auth");
if (url && !url.startsWith("http")) {
url = `https://${url}`;
}
const _url = new URL(url || defaultUrl);
const path = (_url.pathname === "/" ? defaultUrl.pathname : _url.pathname)
// Remove trailing slash
.replace(/\/$/, "");
const base = `${_url.origin}${path}`;
return {
origin: _url.origin,
host: _url.host,
path,
base,
toString: () => base,
};
}

13
frontend/.ignored_node_modules/next-auth/lib/env.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import { NextRequest } from "next/server";
import type { NextAuthConfig } from "./index.js";
/** If `NEXTAUTH_URL` or `AUTH_URL` is defined, override the request's URL. */
export declare function reqWithEnvURL(req: NextRequest): NextRequest;
/**
* For backwards compatibility, `next-auth` checks for `NEXTAUTH_URL`
* and the `basePath` by default is `/api/auth` instead of `/auth`
* (which is the default for all other Auth.js integrations).
*
* For the same reason, `NEXTAUTH_SECRET` is also checked.
*/
export declare function setEnvDefaults(config: NextAuthConfig): void;
//# sourceMappingURL=env.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/lib/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGhD,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAM3D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,QAepD"}

View File

@@ -0,0 +1,39 @@
// @ts-expect-error Next.js does not yet correctly use the `package.json#exports` field
import { NextRequest } from "next/server";
import { setEnvDefaults as coreSetEnvDefaults } from "@auth/core";
/** If `NEXTAUTH_URL` or `AUTH_URL` is defined, override the request's URL. */
export function reqWithEnvURL(req) {
const url = process.env.AUTH_URL ?? process.env.NEXTAUTH_URL;
if (!url)
return req;
const { origin: envOrigin } = new URL(url);
const { href, origin } = req.nextUrl;
return new NextRequest(href.replace(origin, envOrigin), req);
}
/**
* For backwards compatibility, `next-auth` checks for `NEXTAUTH_URL`
* and the `basePath` by default is `/api/auth` instead of `/auth`
* (which is the default for all other Auth.js integrations).
*
* For the same reason, `NEXTAUTH_SECRET` is also checked.
*/
export function setEnvDefaults(config) {
try {
config.secret ?? (config.secret = process.env.AUTH_SECRET ?? process.env.NEXTAUTH_SECRET);
const url = process.env.AUTH_URL ?? process.env.NEXTAUTH_URL;
if (!url)
return;
const { pathname } = new URL(url);
if (pathname === "/")
return;
config.basePath || (config.basePath = pathname);
}
catch {
// Catching and swallowing potential URL parsing errors, we'll fall
// back to `/api/auth` below.
}
finally {
config.basePath || (config.basePath = "/api/auth");
coreSetEnvDefaults(process.env, config, true);
}
}

View File

@@ -0,0 +1,56 @@
import { type AuthConfig } from "@auth/core";
import { NextResponse } from "next/server";
import type { Awaitable, Session } from "@auth/core/types";
import type { GetServerSidePropsContext, NextApiRequest, NextApiResponse } from "next";
import type { AppRouteHandlerFn } from "./types.js";
import type { NextFetchEvent, NextMiddleware, NextRequest } from "next/server";
/** Configure NextAuth.js. */
export interface NextAuthConfig extends Omit<AuthConfig, "raw"> {
/**
* Callbacks are asynchronous functions you can use to control what happens when an auth-related action is performed.
* Callbacks **allow you to implement access controls without a database** or to **integrate with external databases or APIs**.
*/
callbacks?: AuthConfig["callbacks"] & {
/**
* Invoked when a user needs authorization, using [Middleware](https://nextjs.org/docs/advanced-features/middleware).
*
* You can override this behavior by returning a {@link NextResponse}.
*
* @example
* ```ts title="app/auth.ts"
* async authorized({ request, auth }) {
* const url = request.nextUrl
*
* if(request.method === "POST") {
* const { authToken } = (await request.json()) ?? {}
* // If the request has a valid auth token, it is authorized
* const valid = await validateAuthToken(authToken)
* if(valid) return true
* return NextResponse.json("Invalid auth token", { status: 401 })
* }
*
* // Logged in users are authenticated, otherwise redirect to login page
* return !!auth.user
* }
* ```
*
* :::warning
* If you are returning a redirect response, make sure that the page you are redirecting to is not protected by this callback,
* otherwise you could end up in an infinite redirect loop.
* :::
*/
authorized?: (params: {
/** The request to be authorized. */
request: NextRequest;
/** The authenticated user or token, if any. */
auth: Session | null;
}) => Awaitable<boolean | NextResponse | Response | undefined>;
};
}
export interface NextAuthRequest extends NextRequest {
auth: Session | null;
}
export type NextAuthMiddleware = (request: NextAuthRequest, event: NextFetchEvent) => ReturnType<NextMiddleware>;
export type WithAuthArgs = [NextAuthRequest, any] | [NextAuthMiddleware] | [AppRouteHandlerFn] | [NextApiRequest, NextApiResponse] | [GetServerSidePropsContext] | [];
export declare function initAuth(config: NextAuthConfig | ((request: NextRequest | undefined) => Awaitable<NextAuthConfig>), onLazyLoad?: (config: NextAuthConfig) => void): (...args: WithAuthArgs) => Promise<any> | ((...args: Parameters<NextAuthMiddleware | AppRouteHandlerFn>) => Promise<Response>);
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAInE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG1C,OAAO,KAAK,EAAc,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,KAAK,EACV,yBAAyB,EACzB,cAAc,EACd,eAAe,EAChB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9E,6BAA6B;AAC7B,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;IAC7D;;;OAGG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG;QACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;WA2BG;QACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE;YACpB,oCAAoC;YACpC,OAAO,EAAE,WAAW,CAAA;YACpB,+CAA+C;YAC/C,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;SACrB,KAAK,SAAS,CAAC,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAA;KAC/D,CAAA;CACF;AAuCD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,cAAc,KAClB,UAAU,CAAC,cAAc,CAAC,CAAA;AAE/B,MAAM,MAAM,YAAY,GACpB,CAAC,eAAe,EAAE,GAAG,CAAC,GACtB,CAAC,kBAAkB,CAAC,GACpB,CAAC,iBAAiB,CAAC,GACnB,CAAC,cAAc,EAAE,eAAe,CAAC,GACjC,CAAC,yBAAyB,CAAC,GAC3B,EAAE,CAAA;AAMN,wBAAgB,QAAQ,CACtB,MAAM,EACF,cAAc,GACd,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,KAAK,SAAS,CAAC,cAAc,CAAC,CAAC,EACrE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,aA2D5B,YAAY,+BAqBd,WAAW,kBAAkB,GAAG,iBAAiB,CAAC,wBA0BlE"}

View File

@@ -0,0 +1,187 @@
import { Auth, createActionURL } from "@auth/core";
// @ts-expect-error Next.js does not yet correctly use the `package.json#exports` field
import { headers } from "next/headers";
// @ts-expect-error Next.js does not yet correctly use the `package.json#exports` field
import { NextResponse } from "next/server";
import { reqWithEnvURL } from "./env.js";
async function getSession(headers, config) {
const url = createActionURL("session",
// @ts-expect-error `x-forwarded-proto` is not nullable, next.js sets it by default
headers.get("x-forwarded-proto"), headers, process.env, config);
const request = new Request(url, {
headers: { cookie: headers.get("cookie") ?? "" },
});
return Auth(request, {
...config,
callbacks: {
...config.callbacks,
// Since we are server-side, we don't need to filter out the session data
// See https://authjs.dev/getting-started/migrating-to-v5#authenticating-server-side
// TODO: Taint the session data to prevent accidental leakage to the client
// https://react.dev/reference/react/experimental_taintObjectReference
async session(...args) {
const session =
// If the user defined a custom session callback, use that instead
(await config.callbacks?.session?.(...args)) ?? {
...args[0].session,
expires: args[0].session.expires?.toISOString?.() ??
args[0].session.expires,
};
const user = args[0].user ?? args[0].token;
return { user, ...session };
},
},
});
}
function isReqWrapper(arg) {
return typeof arg === "function";
}
export function initAuth(config, onLazyLoad // To set the default env vars
) {
if (typeof config === "function") {
return async (...args) => {
if (!args.length) {
// React Server Components
const _headers = await headers();
const _config = await config(undefined); // Review: Should we pass headers() here instead?
onLazyLoad?.(_config);
return getSession(_headers, _config).then((r) => r.json());
}
if (args[0] instanceof Request) {
// middleware.ts inline
// export { auth as default } from "auth"
const req = args[0];
const ev = args[1];
const _config = await config(req);
onLazyLoad?.(_config);
// args[0] is supposed to be NextRequest but the instanceof check is failing.
return handleAuth([req, ev], _config);
}
if (isReqWrapper(args[0])) {
// middleware.ts wrapper/route.ts
// import { auth } from "auth"
// export default auth((req) => { console.log(req.auth) }})
const userMiddlewareOrRoute = args[0];
return async (...args) => {
const _config = await config(args[0]);
onLazyLoad?.(_config);
return handleAuth(args, _config, userMiddlewareOrRoute);
};
}
// API Routes, getServerSideProps
const request = "req" in args[0] ? args[0].req : args[0];
const response = "res" in args[0] ? args[0].res : args[1];
const _config = await config(request);
onLazyLoad?.(_config);
// @ts-expect-error -- request is NextRequest
return getSession(new Headers(request.headers), _config).then(async (authResponse) => {
const auth = await authResponse.json();
for (const cookie of authResponse.headers.getSetCookie())
if ("headers" in response)
response.headers.append("set-cookie", cookie);
else
response.appendHeader("set-cookie", cookie);
return auth;
});
};
}
return (...args) => {
if (!args.length) {
// React Server Components
return Promise.resolve(headers()).then((h) => getSession(h, config).then((r) => r.json()));
}
if (args[0] instanceof Request) {
// middleware.ts inline
// export { auth as default } from "auth"
const req = args[0];
const ev = args[1];
return handleAuth([req, ev], config);
}
if (isReqWrapper(args[0])) {
// middleware.ts wrapper/route.ts
// import { auth } from "auth"
// export default auth((req) => { console.log(req.auth) }})
const userMiddlewareOrRoute = args[0];
return async (...args) => {
return handleAuth(args, config, userMiddlewareOrRoute).then((res) => {
return res;
});
};
}
// API Routes, getServerSideProps
const request = "req" in args[0] ? args[0].req : args[0];
const response = "res" in args[0] ? args[0].res : args[1];
return getSession(
// @ts-expect-error
new Headers(request.headers), config).then(async (authResponse) => {
const auth = await authResponse.json();
for (const cookie of authResponse.headers.getSetCookie())
if ("headers" in response)
response.headers.append("set-cookie", cookie);
else
response.appendHeader("set-cookie", cookie);
return auth;
});
};
}
async function handleAuth(args, config, userMiddlewareOrRoute) {
const request = reqWithEnvURL(args[0]);
const sessionResponse = await getSession(request.headers, config);
const auth = await sessionResponse.json();
let authorized = true;
if (config.callbacks?.authorized) {
authorized = await config.callbacks.authorized({ request, auth });
}
let response = NextResponse.next?.();
if (authorized instanceof Response) {
// User returned a custom response, like redirecting to a page or 401, respect it
response = authorized;
const redirect = authorized.headers.get("Location");
const { pathname } = request.nextUrl;
// If the user is redirecting to the same NextAuth.js action path as the current request,
// don't allow the redirect to prevent an infinite loop
if (redirect &&
isSameAuthAction(pathname, new URL(redirect).pathname, config)) {
authorized = true;
}
}
else if (userMiddlewareOrRoute) {
// Execute user's middleware/handler with the augmented request
const augmentedReq = request;
augmentedReq.auth = auth;
response =
(await userMiddlewareOrRoute(augmentedReq, args[1])) ??
NextResponse.next();
}
else if (!authorized) {
const signInPage = config.pages?.signIn ?? `${config.basePath}/signin`;
if (request.nextUrl.pathname !== signInPage) {
// Redirect to signin page by default if not authorized
const signInUrl = request.nextUrl.clone();
signInUrl.pathname = signInPage;
signInUrl.searchParams.set("callbackUrl", request.nextUrl.href);
response = NextResponse.redirect(signInUrl);
}
}
const finalResponse = new Response(response?.body, response);
// Preserve cookies from the session response
for (const cookie of sessionResponse.headers.getSetCookie())
finalResponse.headers.append("set-cookie", cookie);
return finalResponse;
}
function isSameAuthAction(requestPath, redirectPath, config) {
const action = redirectPath.replace(`${requestPath}/`, "");
const pages = Object.values(config.pages ?? {});
return ((actions.has(action) || pages.includes(redirectPath)) &&
redirectPath === requestPath);
}
const actions = new Set([
"providers",
"session",
"csrf",
"signin",
"signout",
"callback",
"verify-request",
"error",
]);

View File

@@ -0,0 +1,24 @@
import type { NextRequest } from "next/server";
/**
* AppRouteHandlerFnContext is the context that is passed to the handler as the
* second argument.
*/
export type AppRouteHandlerFnContext = {
params: Promise<any>;
};
/**
* Handler function for app routes. If a non-Response value is returned, an error
* will be thrown.
*/
export type AppRouteHandlerFn = (
/**
* Incoming request object.
*/
req: NextRequest,
/**
* Context properties on the request (including the parameters if this was a
* dynamic route).
*/
ctx: AppRouteHandlerFnContext) => void | Response | Promise<void | Response>;
export type AppRouteHandlers = Record<"GET" | "POST", (req: NextRequest) => Promise<Response>>;
//# sourceMappingURL=types.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/lib/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;CACrB,CAAA;AACD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;AAC9B;;GAEG;AACH,GAAG,EAAE,WAAW;AAChB;;;GAGG;AACH,GAAG,EAAE,wBAAwB,KAC1B,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAA;AAE/C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CACnC,KAAK,GAAG,MAAM,EACd,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CACxC,CAAA"}

View File

@@ -0,0 +1 @@
export {};

View File

@@ -0,0 +1,9 @@
/**
* :::warning Deprecated
* This module is replaced in v5. Read more at: https://authjs.dev/getting-started/migrating-to-v5#authenticating-server-side
* :::
*
* @module middleware
*/
export {};
//# sourceMappingURL=middleware.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["src/middleware.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,CAAA"}

View File

@@ -0,0 +1,12 @@
/**
* :::warning Deprecated
* This module is replaced in v5. Read more at: https://authjs.dev/getting-started/migrating-to-v5#authenticating-server-side
* :::
*
* @module middleware
*/
throw new ReferenceError([
'"next-auth/middleware" is deprecated. If you are not ready to migrate, keep using "next-auth@4".',
"Read more on https://authjs.dev/getting-started/migrating-to-v5",
].join("\n"));
export {};

9
frontend/.ignored_node_modules/next-auth/next.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
/**
* :::warning Deprecated
* This module is replaced in v5. Read more at: https://authjs.dev/getting-started/migrating-to-v5#authenticating-server-side
* :::
*
* @module next
*/
export {};
//# sourceMappingURL=next.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"next.d.ts","sourceRoot":"","sources":["src/next.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,CAAA"}

View File

@@ -0,0 +1,12 @@
/**
* :::warning Deprecated
* This module is replaced in v5. Read more at: https://authjs.dev/getting-started/migrating-to-v5#authenticating-server-side
* :::
*
* @module next
*/
throw new ReferenceError([
'"next-auth/next" is deprecated. If you are not ready to migrate, keep using "next-auth@4".',
"Read more on https://authjs.dev/getting-started/migrating-to-v5",
].join("\n"));
export {};

View File

@@ -0,0 +1,116 @@
{
"name": "next-auth",
"version": "5.0.0-beta.30",
"description": "Authentication for Next.js",
"homepage": "https://nextjs.authjs.dev",
"repository": "https://github.com/nextauthjs/next-auth.git",
"author": "Balázs Orbán <info@balazsorban.com>",
"contributors": [
"Iain Collins <me@iaincollins.com>",
"Nico Domino <yo@ndo.dev>",
"Lluis Agusti <hi@llu.lu>",
"Thang Huu Vu <hi@thvu.dev>"
],
"type": "module",
"exports": {
".": {
"types": "./index.d.ts",
"import": "./index.js",
"default": "./index.js"
},
"./jwt": {
"types": "./jwt.d.ts",
"import": "./jwt.js",
"default": "./jwt.js"
},
"./middleware": {
"types": "./middleware.d.ts",
"import": "./middleware.js",
"default": "./middleware.js"
},
"./next": {
"types": "./next.d.ts",
"import": "./next.js",
"default": "./next.js"
},
"./providers": {
"types": "./providers/index.d.ts"
},
"./adapters": {
"types": "./adapters.d.ts"
},
"./providers/*": {
"types": "./providers/*.d.ts",
"import": "./providers/*.js",
"default": "./providers/*.js"
},
"./react": {
"types": "./react.d.ts",
"import": "./react.js",
"default": "./react.js"
},
"./webauthn": {
"types": "./webauthn.d.ts",
"import": "./webauthn.js",
"default": "./webauthn.js"
},
"./package.json": "./package.json"
},
"keywords": [
"react",
"nodejs",
"oauth",
"jwt",
"oauth2",
"authentication",
"nextjs",
"csrf",
"oidc",
"nextauth"
],
"files": [
"*.d.ts*",
"*.js",
"lib",
"providers",
"src"
],
"license": "ISC",
"dependencies": {
"@auth/core": "0.41.0"
},
"peerDependencies": {
"@simplewebauthn/browser": "^9.0.1",
"@simplewebauthn/server": "^9.0.2",
"next": "^14.0.0-0 || ^15.0.0 || ^16.0.0",
"nodemailer": "^7.0.7",
"react": "^18.2.0 || ^19.0.0"
},
"peerDependenciesMeta": {
"@simplewebauthn/browser": {
"optional": true
},
"@simplewebauthn/server": {
"optional": true
},
"nodemailer": {
"optional": true
}
},
"devDependencies": {
"@types/react": "18.0.37",
"dotenv": "^10.0.0",
"next": "15.3.1",
"nodemailer": "^7.0.7",
"react": "^18.2.0"
},
"scripts": {
"build": "pnpm clean && pnpm providers && tsc",
"clean": "rm -rf *.js *.d.ts* lib providers",
"dev": "pnpm providers && tsc -w",
"test": "vitest run -c ../utils/vitest.config.ts",
"test:watch": "vitest -c ../utils/vitest.config.ts",
"test:e2e": "playwright test",
"providers": "node ../utils/scripts/providers"
}
}

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/42-school";
export { default } from "@auth/core/providers/42-school";
//# sourceMappingURL=42-school.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"42-school.d.ts","sourceRoot":"","sources":["../src/providers/42-school.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/42-school";
export { default } from "@auth/core/providers/42-school";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/apple";
export { default } from "@auth/core/providers/apple";
//# sourceMappingURL=apple.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"apple.d.ts","sourceRoot":"","sources":["../src/providers/apple.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/apple";
export { default } from "@auth/core/providers/apple";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/asgardeo";
export { default } from "@auth/core/providers/asgardeo";
//# sourceMappingURL=asgardeo.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"asgardeo.d.ts","sourceRoot":"","sources":["../src/providers/asgardeo.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/asgardeo";
export { default } from "@auth/core/providers/asgardeo";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/atlassian";
export { default } from "@auth/core/providers/atlassian";
//# sourceMappingURL=atlassian.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"atlassian.d.ts","sourceRoot":"","sources":["../src/providers/atlassian.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/atlassian";
export { default } from "@auth/core/providers/atlassian";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/auth0";
export { default } from "@auth/core/providers/auth0";
//# sourceMappingURL=auth0.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"auth0.d.ts","sourceRoot":"","sources":["../src/providers/auth0.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/auth0";
export { default } from "@auth/core/providers/auth0";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/authentik";
export { default } from "@auth/core/providers/authentik";
//# sourceMappingURL=authentik.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"authentik.d.ts","sourceRoot":"","sources":["../src/providers/authentik.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/authentik";
export { default } from "@auth/core/providers/authentik";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/azure-ad-b2c";
export { default } from "@auth/core/providers/azure-ad-b2c";
//# sourceMappingURL=azure-ad-b2c.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"azure-ad-b2c.d.ts","sourceRoot":"","sources":["../src/providers/azure-ad-b2c.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/azure-ad-b2c";
export { default } from "@auth/core/providers/azure-ad-b2c";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/azure-ad";
export { default } from "@auth/core/providers/azure-ad";
//# sourceMappingURL=azure-ad.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"azure-ad.d.ts","sourceRoot":"","sources":["../src/providers/azure-ad.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/azure-ad";
export { default } from "@auth/core/providers/azure-ad";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/azure-devops";
export { default } from "@auth/core/providers/azure-devops";
//# sourceMappingURL=azure-devops.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"azure-devops.d.ts","sourceRoot":"","sources":["../src/providers/azure-devops.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/azure-devops";
export { default } from "@auth/core/providers/azure-devops";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/bankid-no";
export { default } from "@auth/core/providers/bankid-no";
//# sourceMappingURL=bankid-no.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"bankid-no.d.ts","sourceRoot":"","sources":["../src/providers/bankid-no.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/bankid-no";
export { default } from "@auth/core/providers/bankid-no";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/battlenet";
export { default } from "@auth/core/providers/battlenet";
//# sourceMappingURL=battlenet.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"battlenet.d.ts","sourceRoot":"","sources":["../src/providers/battlenet.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/battlenet";
export { default } from "@auth/core/providers/battlenet";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/beyondidentity";
export { default } from "@auth/core/providers/beyondidentity";
//# sourceMappingURL=beyondidentity.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"beyondidentity.d.ts","sourceRoot":"","sources":["../src/providers/beyondidentity.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/beyondidentity";
export { default } from "@auth/core/providers/beyondidentity";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/bitbucket";
export { default } from "@auth/core/providers/bitbucket";
//# sourceMappingURL=bitbucket.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"bitbucket.d.ts","sourceRoot":"","sources":["../src/providers/bitbucket.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/bitbucket";
export { default } from "@auth/core/providers/bitbucket";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/box";
export { default } from "@auth/core/providers/box";
//# sourceMappingURL=box.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../src/providers/box.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/box";
export { default } from "@auth/core/providers/box";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/boxyhq-saml";
export { default } from "@auth/core/providers/boxyhq-saml";
//# sourceMappingURL=boxyhq-saml.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"boxyhq-saml.d.ts","sourceRoot":"","sources":["../src/providers/boxyhq-saml.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/boxyhq-saml";
export { default } from "@auth/core/providers/boxyhq-saml";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/bungie";
export { default } from "@auth/core/providers/bungie";
//# sourceMappingURL=bungie.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"bungie.d.ts","sourceRoot":"","sources":["../src/providers/bungie.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/bungie";
export { default } from "@auth/core/providers/bungie";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/click-up";
export { default } from "@auth/core/providers/click-up";
//# sourceMappingURL=click-up.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"click-up.d.ts","sourceRoot":"","sources":["../src/providers/click-up.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/click-up";
export { default } from "@auth/core/providers/click-up";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/cognito";
export { default } from "@auth/core/providers/cognito";
//# sourceMappingURL=cognito.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"cognito.d.ts","sourceRoot":"","sources":["../src/providers/cognito.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/cognito";
export { default } from "@auth/core/providers/cognito";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/coinbase";
export { default } from "@auth/core/providers/coinbase";
//# sourceMappingURL=coinbase.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"coinbase.d.ts","sourceRoot":"","sources":["../src/providers/coinbase.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/coinbase";
export { default } from "@auth/core/providers/coinbase";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/concept2";
export { default } from "@auth/core/providers/concept2";
//# sourceMappingURL=concept2.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"concept2.d.ts","sourceRoot":"","sources":["../src/providers/concept2.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/concept2";
export { default } from "@auth/core/providers/concept2";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/credentials";
export { default } from "@auth/core/providers/credentials";
//# sourceMappingURL=credentials.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/providers/credentials.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/credentials";
export { default } from "@auth/core/providers/credentials";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/descope";
export { default } from "@auth/core/providers/descope";
//# sourceMappingURL=descope.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"descope.d.ts","sourceRoot":"","sources":["../src/providers/descope.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA"}

View File

@@ -0,0 +1,2 @@
export * from "@auth/core/providers/descope";
export { default } from "@auth/core/providers/descope";

View File

@@ -0,0 +1,3 @@
export * from "@auth/core/providers/discord";
export { default } from "@auth/core/providers/discord";
//# sourceMappingURL=discord.d.ts.map

Some files were not shown because too many files have changed in this diff Show More