NeahFront2/.next/server/app/api/auth/[...nextauth]/route.js
2025-04-08 20:36:59 +02:00

196 lines
28 KiB
JavaScript

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
(() => {
var exports = {};
exports.id = "app/api/auth/[...nextauth]/route";
exports.ids = ["app/api/auth/[...nextauth]/route"];
exports.modules = {
/***/ "../../client/components/action-async-storage.external":
/*!*******************************************************************************!*\
!*** external "next/dist/client/components/action-async-storage.external.js" ***!
\*******************************************************************************/
/***/ ((module) => {
module.exports = require("next/dist/client/components/action-async-storage.external.js");
/***/ }),
/***/ "../../client/components/request-async-storage.external":
/*!********************************************************************************!*\
!*** external "next/dist/client/components/request-async-storage.external.js" ***!
\********************************************************************************/
/***/ ((module) => {
module.exports = require("next/dist/client/components/request-async-storage.external.js");
/***/ }),
/***/ "../../client/components/static-generation-async-storage.external":
/*!******************************************************************************************!*\
!*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
\******************************************************************************************/
/***/ ((module) => {
module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
/***/ }),
/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
/*!*************************************************************************!*\
!*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
\*************************************************************************/
/***/ ((module) => {
module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
/***/ }),
/***/ "next/dist/compiled/next-server/app-route.runtime.dev.js":
/*!**************************************************************************!*\
!*** external "next/dist/compiled/next-server/app-route.runtime.dev.js" ***!
\**************************************************************************/
/***/ ((module) => {
module.exports = require("next/dist/compiled/next-server/app-route.runtime.dev.js");
/***/ }),
/***/ "assert":
/*!*************************!*\
!*** external "assert" ***!
\*************************/
/***/ ((module) => {
module.exports = require("assert");
/***/ }),
/***/ "buffer":
/*!*************************!*\
!*** external "buffer" ***!
\*************************/
/***/ ((module) => {
module.exports = require("buffer");
/***/ }),
/***/ "crypto":
/*!*************************!*\
!*** external "crypto" ***!
\*************************/
/***/ ((module) => {
module.exports = require("crypto");
/***/ }),
/***/ "events":
/*!*************************!*\
!*** external "events" ***!
\*************************/
/***/ ((module) => {
module.exports = require("events");
/***/ }),
/***/ "http":
/*!***********************!*\
!*** external "http" ***!
\***********************/
/***/ ((module) => {
module.exports = require("http");
/***/ }),
/***/ "https":
/*!************************!*\
!*** external "https" ***!
\************************/
/***/ ((module) => {
module.exports = require("https");
/***/ }),
/***/ "querystring":
/*!******************************!*\
!*** external "querystring" ***!
\******************************/
/***/ ((module) => {
module.exports = require("querystring");
/***/ }),
/***/ "url":
/*!**********************!*\
!*** external "url" ***!
\**********************/
/***/ ((module) => {
module.exports = require("url");
/***/ }),
/***/ "util":
/*!***********************!*\
!*** external "util" ***!
\***********************/
/***/ ((module) => {
module.exports = require("util");
/***/ }),
/***/ "zlib":
/*!***********************!*\
!*** external "zlib" ***!
\***********************/
/***/ ((module) => {
module.exports = require("zlib");
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&page=%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute.ts&appDir=%2FUsers%2Falma%2FDownloads%2Fneah%2Ffront%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Falma%2FDownloads%2Fneah%2Ffront&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&page=%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute.ts&appDir=%2FUsers%2Falma%2FDownloads%2Fneah%2Ffront%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Falma%2FDownloads%2Fneah%2Ffront&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ requestAsyncStorage: () => (/* binding */ requestAsyncStorage),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ serverHooks: () => (/* binding */ serverHooks),\n/* harmony export */ staticGenerationAsyncStorage: () => (/* binding */ staticGenerationAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-route/module.compiled */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/lib/patch-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\");\n/* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _Users_alma_Downloads_neah_front_app_api_auth_nextauth_route_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app/api/auth/[...nextauth]/route.ts */ \"(rsc)/./app/api/auth/[...nextauth]/route.ts\");\n\n\n\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppRouteRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_ROUTE,\n page: \"/api/auth/[...nextauth]/route\",\n pathname: \"/api/auth/[...nextauth]\",\n filename: \"route\",\n bundlePath: \"app/api/auth/[...nextauth]/route\"\n },\n resolvedPagePath: \"/Users/alma/Downloads/neah/front/app/api/auth/[...nextauth]/route.ts\",\n nextConfigOutput,\n userland: _Users_alma_Downloads_neah_front_app_api_auth_nextauth_route_ts__WEBPACK_IMPORTED_MODULE_3__\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { requestAsyncStorage, staticGenerationAsyncStorage, serverHooks } = routeModule;\nconst originalPathname = \"/api/auth/[...nextauth]/route\";\nfunction patchFetch() {\n return (0,next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__.patchFetch)({\n serverHooks,\n staticGenerationAsyncStorage\n });\n}\n\n\n//# sourceMappingURL=app-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZhcGklMkZhdXRoJTJGJTVCLi4ubmV4dGF1dGglNUQlMkZyb3V0ZSZwYWdlPSUyRmFwaSUyRmF1dGglMkYlNUIuLi5uZXh0YXV0aCU1RCUyRnJvdXRlJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwaSUyRmF1dGglMkYlNUIuLi5uZXh0YXV0aCU1RCUyRnJvdXRlLnRzJmFwcERpcj0lMkZVc2VycyUyRmFsbWElMkZEb3dubG9hZHMlMkZuZWFoJTJGZnJvbnQlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGYWxtYSUyRkRvd25sb2FkcyUyRm5lYWglMkZmcm9udCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQXNHO0FBQ3ZDO0FBQ2M7QUFDb0I7QUFDakc7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdIQUFtQjtBQUMzQztBQUNBLGNBQWMseUVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLFlBQVk7QUFDWixDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsUUFBUSxpRUFBaUU7QUFDekU7QUFDQTtBQUNBLFdBQVcsNEVBQVc7QUFDdEI7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUN1SDs7QUFFdkgiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZWFoLz8yMjNjIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFJvdXRlUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9hcHAtcm91dGUvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgcGF0Y2hGZXRjaCBhcyBfcGF0Y2hGZXRjaCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9wYXRjaC1mZXRjaFwiO1xuaW1wb3J0ICogYXMgdXNlcmxhbmQgZnJvbSBcIi9Vc2Vycy9hbG1hL0Rvd25sb2Fkcy9uZWFoL2Zyb250L2FwcC9hcGkvYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzXCI7XG4vLyBXZSBpbmplY3QgdGhlIG5leHRDb25maWdPdXRwdXQgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IG5leHRDb25maWdPdXRwdXQgPSBcIlwiXG5jb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBSb3V0ZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUk9VVEUsXG4gICAgICAgIHBhZ2U6IFwiL2FwaS9hdXRoL1suLi5uZXh0YXV0aF0vcm91dGVcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL2FwaS9hdXRoL1suLi5uZXh0YXV0aF1cIixcbiAgICAgICAgZmlsZW5hbWU6IFwicm91dGVcIixcbiAgICAgICAgYnVuZGxlUGF0aDogXCJhcHAvYXBpL2F1dGgvWy4uLm5leHRhdXRoXS9yb3V0ZVwiXG4gICAgfSxcbiAgICByZXNvbHZlZFBhZ2VQYXRoOiBcIi9Vc2Vycy9hbG1hL0Rvd25sb2Fkcy9uZWFoL2Zyb250L2FwcC9hcGkvYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlLnRzXCIsXG4gICAgbmV4dENvbmZpZ091dHB1dCxcbiAgICB1c2VybGFuZFxufSk7XG4vLyBQdWxsIG91dCB0aGUgZXhwb3J0cyB0aGF0IHdlIG5lZWQgdG8gZXhwb3NlIGZyb20gdGhlIG1vZHVsZS4gVGhpcyBzaG91bGRcbi8vIGJlIGVsaW1pbmF0ZWQgd2hlbiB3ZSd2ZSBtb3ZlZCB0aGUgb3RoZXIgcm91dGVzIHRvIHRoZSBuZXcgZm9ybWF0LiBUaGVzZVxuLy8gYXJlIHVzZWQgdG8gaG9vayBpbnRvIHRoZSByb3V0ZS5cbmNvbnN0IHsgcmVxdWVzdEFzeW5jU3RvcmFnZSwgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZSwgc2VydmVySG9va3MgfSA9IHJvdXRlTW9kdWxlO1xuY29uc3Qgb3JpZ2luYWxQYXRobmFtZSA9IFwiL2FwaS9hdXRoL1suLi5uZXh0YXV0aF0vcm91dGVcIjtcbmZ1bmN0aW9uIHBhdGNoRmV0Y2goKSB7XG4gICAgcmV0dXJuIF9wYXRjaEZldGNoKHtcbiAgICAgICAgc2VydmVySG9va3MsXG4gICAgICAgIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2VcbiAgICB9KTtcbn1cbmV4cG9ydCB7IHJvdXRlTW9kdWxlLCByZXF1ZXN0QXN5bmNTdG9yYWdlLCBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlLCBzZXJ2ZXJIb29rcywgb3JpZ2luYWxQYXRobmFtZSwgcGF0Y2hGZXRjaCwgIH07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1yb3V0ZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&page=%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute.ts&appDir=%2FUsers%2Falma%2FDownloads%2Fneah%2Ffront%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Falma%2FDownloads%2Fneah%2Ffront&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
/***/ }),
/***/ "(rsc)/./app/api/auth/[...nextauth]/route.ts":
/*!*********************************************!*\
!*** ./app/api/auth/[...nextauth]/route.ts ***!
\*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GET: () => (/* binding */ handler),\n/* harmony export */ POST: () => (/* binding */ handler),\n/* harmony export */ authOptions: () => (/* binding */ authOptions)\n/* harmony export */ });\n/* harmony import */ var next_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next-auth */ \"(rsc)/./node_modules/next-auth/index.js\");\n/* harmony import */ var next_auth__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_auth__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_auth_providers_keycloak__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next-auth/providers/keycloak */ \"(rsc)/./node_modules/next-auth/providers/keycloak.js\");\n\n\nconst authOptions = {\n providers: [\n (0,next_auth_providers_keycloak__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n clientId: process.env.KEYCLOAK_CLIENT_ID,\n clientSecret: process.env.KEYCLOAK_CLIENT_SECRET,\n issuer: process.env.KEYCLOAK_ISSUER\n })\n ],\n callbacks: {\n async jwt ({ token, account, profile }) {\n if (account) {\n token.accessToken = account.access_token;\n token.refreshToken = account.refresh_token;\n token.accessTokenExpires = account.expires_at * 1000;\n token.role = profile?.groups || [];\n return token;\n }\n // Return previous token if not expired\n if (Date.now() < token.accessTokenExpires) {\n return token;\n }\n try {\n const response = await fetch(`${process.env.KEYCLOAK_BASE_URL}/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/token`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: new URLSearchParams({\n grant_type: \"refresh_token\",\n client_id: process.env.KEYCLOAK_CLIENT_ID,\n client_secret: process.env.KEYCLOAK_CLIENT_SECRET,\n refresh_token: token.refreshToken\n })\n });\n const tokens = await response.json();\n if (!response.ok) throw tokens;\n return {\n ...token,\n accessToken: tokens.access_token,\n refreshToken: tokens.refresh_token ?? token.refreshToken,\n accessTokenExpires: Date.now() + tokens.expires_in * 1000\n };\n } catch (error) {\n console.error(\"Error refreshing token:\", error);\n return {\n ...token,\n error: \"RefreshAccessTokenError\"\n };\n }\n },\n async session ({ session, token }) {\n if (token.error) {\n throw new Error(\"RefreshAccessTokenError\");\n }\n session.accessToken = token.accessToken;\n session.user = {\n ...session.user,\n id: token.sub,\n first_name: token.first_name,\n last_name: token.last_name,\n username: token.username,\n role: token.role || []\n };\n return session;\n }\n },\n events: {\n async signOut ({ token }) {\n if (token.refreshToken) {\n try {\n await fetch(`${process.env.KEYCLOAK_BASE_URL}/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/logout`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: new URLSearchParams({\n client_id: process.env.KEYCLOAK_CLIENT_ID,\n client_secret: process.env.KEYCLOAK_CLIENT_SECRET,\n refresh_token: token.refreshToken\n })\n });\n } catch (error) {\n console.error(\"Error during logout:\", error);\n }\n }\n }\n }\n};\nconst handler = next_auth__WEBPACK_IMPORTED_MODULE_0___default()(authOptions);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvYXBpL2F1dGgvWy4uLm5leHRhdXRoXS9yb3V0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBc0Q7QUFDTTtBQUVyRCxNQUFNRSxjQUErQjtJQUMxQ0MsV0FBVztRQUNURix3RUFBZ0JBLENBQUM7WUFDZkcsVUFBVUMsUUFBUUMsR0FBRyxDQUFDQyxrQkFBa0I7WUFDeENDLGNBQWNILFFBQVFDLEdBQUcsQ0FBQ0csc0JBQXNCO1lBQ2hEQyxRQUFRTCxRQUFRQyxHQUFHLENBQUNLLGVBQWU7UUFDckM7S0FDRDtJQUNEQyxXQUFXO1FBQ1QsTUFBTUMsS0FBSSxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRUMsT0FBTyxFQUFFO1lBQ25DLElBQUlELFNBQVM7Z0JBQ1hELE1BQU1HLFdBQVcsR0FBR0YsUUFBUUcsWUFBWTtnQkFDeENKLE1BQU1LLFlBQVksR0FBR0osUUFBUUssYUFBYTtnQkFDMUNOLE1BQU1PLGtCQUFrQixHQUFHTixRQUFRTyxVQUFVLEdBQUk7Z0JBQ2pEUixNQUFNUyxJQUFJLEdBQUdQLFNBQVNRLFVBQVUsRUFBRTtnQkFDbEMsT0FBT1Y7WUFDVDtZQUVBLHVDQUF1QztZQUN2QyxJQUFJVyxLQUFLQyxHQUFHLEtBQU1aLE1BQU1PLGtCQUFrQixFQUFhO2dCQUNyRCxPQUFPUDtZQUNUO1lBRUEsSUFBSTtnQkFDRixNQUFNYSxXQUFXLE1BQU1DLE1BQ3JCLENBQUMsRUFBRXZCLFFBQVFDLEdBQUcsQ0FBQ3VCLGlCQUFpQixDQUFDLFFBQVEsRUFBRXhCLFFBQVFDLEdBQUcsQ0FBQ3dCLGNBQWMsQ0FBQyw4QkFBOEIsQ0FBQyxFQUNyRztvQkFDRUMsUUFBUTtvQkFDUkMsU0FBUzt3QkFDUCxnQkFBZ0I7b0JBQ2xCO29CQUNBQyxNQUFNLElBQUlDLGdCQUFnQjt3QkFDeEJDLFlBQVk7d0JBQ1pDLFdBQVcvQixRQUFRQyxHQUFHLENBQUNDLGtCQUFrQjt3QkFDekM4QixlQUFlaEMsUUFBUUMsR0FBRyxDQUFDRyxzQkFBc0I7d0JBQ2pEVyxlQUFlTixNQUFNSyxZQUFZO29CQUNuQztnQkFDRjtnQkFHRixNQUFNbUIsU0FBUyxNQUFNWCxTQUFTWSxJQUFJO2dCQUVsQyxJQUFJLENBQUNaLFNBQVNhLEVBQUUsRUFBRSxNQUFNRjtnQkFFeEIsT0FBTztvQkFDTCxHQUFHeEIsS0FBSztvQkFDUkcsYUFBYXFCLE9BQU9wQixZQUFZO29CQUNoQ0MsY0FBY21CLE9BQU9sQixhQUFhLElBQUlOLE1BQU1LLFlBQVk7b0JBQ3hERSxvQkFBb0JJLEtBQUtDLEdBQUcsS0FBS1ksT0FBT0csVUFBVSxHQUFHO2dCQUN2RDtZQUNGLEVBQUUsT0FBT0MsT0FBTztnQkFDZEMsUUFBUUQsS0FBSyxDQUFDLDJCQUEyQkE7Z0JBQ3pDLE9BQU87b0JBQUUsR0FBRzVCLEtBQUs7b0JBQUU0QixPQUFPO2dCQUEwQjtZQUN0RDtRQUNGO1FBRUEsTUFBTUUsU0FBUSxFQUFFQSxPQUFPLEVBQUU5QixLQUFLLEVBQUU7WUFDOUIsSUFBSUEsTUFBTTRCLEtBQUssRUFBRTtnQkFDZixNQUFNLElBQUlHLE1BQU07WUFDbEI7WUFFQUQsUUFBUTNCLFdBQVcsR0FBR0gsTUFBTUcsV0FBVztZQUN2QzJCLFFBQVFFLElBQUksR0FBRztnQkFDYixHQUFHRixRQUFRRSxJQUFJO2dCQUNmQyxJQUFJakMsTUFBTWtDLEdBQUc7Z0JBQ2JDLFlBQVluQyxNQUFNbUMsVUFBVTtnQkFDNUJDLFdBQVdwQyxNQUFNb0MsU0FBUztnQkFDMUJDLFVBQVVyQyxNQUFNcUMsUUFBUTtnQkFDeEI1QixNQUFNVCxNQUFNUyxJQUFJLElBQUksRUFBRTtZQUN4QjtZQUNBLE9BQU9xQjtRQUNUO0lBQ0Y7SUFDQVEsUUFBUTtRQUNOLE1BQU1DLFNBQVEsRUFBRXZDLEtBQUssRUFBRTtZQUNyQixJQUFJQSxNQUFNSyxZQUFZLEVBQUU7Z0JBQ3RCLElBQUk7b0JBQ0YsTUFBTVMsTUFDSixDQUFDLEVBQUV2QixRQUFRQyxHQUFHLENBQUN1QixpQkFBaUIsQ0FBQyxRQUFRLEVBQUV4QixRQUFRQyxHQUFHLENBQUN3QixjQUFjLENBQUMsK0JBQStCLENBQUMsRUFDdEc7d0JBQ0VDLFFBQVE7d0JBQ1JDLFNBQVM7NEJBQ1AsZ0JBQWdCO3dCQUNsQjt3QkFDQUMsTUFBTSxJQUFJQyxnQkFBZ0I7NEJBQ3hCRSxXQUFXL0IsUUFBUUMsR0FBRyxDQUFDQyxrQkFBa0I7NEJBQ3pDOEIsZUFBZWhDLFFBQVFDLEdBQUcsQ0FBQ0csc0JBQXNCOzRCQUNqRFcsZUFBZU4sTUFBTUssWUFBWTt3QkFDbkM7b0JBQ0Y7Z0JBRUosRUFBRSxPQUFPdUIsT0FBTztvQkFDZEMsUUFBUUQsS0FBSyxDQUFDLHdCQUF3QkE7Z0JBQ3hDO1lBQ0Y7UUFDRjtJQUNGO0FBQ0YsRUFBRTtBQUVGLE1BQU1ZLFVBQVV0RCxnREFBUUEsQ0FBQ0U7QUFDa0IiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZWFoLy4vYXBwL2FwaS9hdXRoL1suLi5uZXh0YXV0aF0vcm91dGUudHM/YzhhNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTmV4dEF1dGgsIHsgTmV4dEF1dGhPcHRpb25zIH0gZnJvbSBcIm5leHQtYXV0aFwiO1xuaW1wb3J0IEtleWNsb2FrUHJvdmlkZXIgZnJvbSBcIm5leHQtYXV0aC9wcm92aWRlcnMva2V5Y2xvYWtcIjtcblxuZXhwb3J0IGNvbnN0IGF1dGhPcHRpb25zOiBOZXh0QXV0aE9wdGlvbnMgPSB7XG4gIHByb3ZpZGVyczogW1xuICAgIEtleWNsb2FrUHJvdmlkZXIoe1xuICAgICAgY2xpZW50SWQ6IHByb2Nlc3MuZW52LktFWUNMT0FLX0NMSUVOVF9JRCEsXG4gICAgICBjbGllbnRTZWNyZXQ6IHByb2Nlc3MuZW52LktFWUNMT0FLX0NMSUVOVF9TRUNSRVQhLFxuICAgICAgaXNzdWVyOiBwcm9jZXNzLmVudi5LRVlDTE9BS19JU1NVRVIhLFxuICAgIH0pLFxuICBdLFxuICBjYWxsYmFja3M6IHtcbiAgICBhc3luYyBqd3QoeyB0b2tlbiwgYWNjb3VudCwgcHJvZmlsZSB9KSB7XG4gICAgICBpZiAoYWNjb3VudCkge1xuICAgICAgICB0b2tlbi5hY2Nlc3NUb2tlbiA9IGFjY291bnQuYWNjZXNzX3Rva2VuO1xuICAgICAgICB0b2tlbi5yZWZyZXNoVG9rZW4gPSBhY2NvdW50LnJlZnJlc2hfdG9rZW47XG4gICAgICAgIHRva2VuLmFjY2Vzc1Rva2VuRXhwaXJlcyA9IGFjY291bnQuZXhwaXJlc19hdCEgKiAxMDAwO1xuICAgICAgICB0b2tlbi5yb2xlID0gcHJvZmlsZT8uZ3JvdXBzIHx8IFtdO1xuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICB9XG5cbiAgICAgIC8vIFJldHVybiBwcmV2aW91cyB0b2tlbiBpZiBub3QgZXhwaXJlZFxuICAgICAgaWYgKERhdGUubm93KCkgPCAodG9rZW4uYWNjZXNzVG9rZW5FeHBpcmVzIGFzIG51bWJlcikpIHtcbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICAgIGAke3Byb2Nlc3MuZW52LktFWUNMT0FLX0JBU0VfVVJMfS9yZWFsbXMvJHtwcm9jZXNzLmVudi5LRVlDTE9BS19SRUFMTX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgICAgIGdyYW50X3R5cGU6IFwicmVmcmVzaF90b2tlblwiLFxuICAgICAgICAgICAgICBjbGllbnRfaWQ6IHByb2Nlc3MuZW52LktFWUNMT0FLX0NMSUVOVF9JRCEsXG4gICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IHByb2Nlc3MuZW52LktFWUNMT0FLX0NMSUVOVF9TRUNSRVQhLFxuICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiB0b2tlbi5yZWZyZXNoVG9rZW4gYXMgc3RyaW5nLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyB0b2tlbnM7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50b2tlbixcbiAgICAgICAgICBhY2Nlc3NUb2tlbjogdG9rZW5zLmFjY2Vzc190b2tlbixcbiAgICAgICAgICByZWZyZXNoVG9rZW46IHRva2Vucy5yZWZyZXNoX3Rva2VuID8/IHRva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICBhY2Nlc3NUb2tlbkV4cGlyZXM6IERhdGUubm93KCkgKyB0b2tlbnMuZXhwaXJlc19pbiAqIDEwMDAsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgcmVmcmVzaGluZyB0b2tlbjpcIiwgZXJyb3IpO1xuICAgICAgICByZXR1cm4geyAuLi50b2tlbiwgZXJyb3I6IFwiUmVmcmVzaEFjY2Vzc1Rva2VuRXJyb3JcIiB9O1xuICAgICAgfVxuICAgIH0sXG5cbiAgICBhc3luYyBzZXNzaW9uKHsgc2Vzc2lvbiwgdG9rZW4gfSkge1xuICAgICAgaWYgKHRva2VuLmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZnJlc2hBY2Nlc3NUb2tlbkVycm9yXCIpO1xuICAgICAgfVxuXG4gICAgICBzZXNzaW9uLmFjY2Vzc1Rva2VuID0gdG9rZW4uYWNjZXNzVG9rZW4gYXMgc3RyaW5nO1xuICAgICAgc2Vzc2lvbi51c2VyID0ge1xuICAgICAgICAuLi5zZXNzaW9uLnVzZXIsXG4gICAgICAgIGlkOiB0b2tlbi5zdWIsXG4gICAgICAgIGZpcnN0X25hbWU6IHRva2VuLmZpcnN0X25hbWUsXG4gICAgICAgIGxhc3RfbmFtZTogdG9rZW4ubGFzdF9uYW1lLFxuICAgICAgICB1c2VybmFtZTogdG9rZW4udXNlcm5hbWUsXG4gICAgICAgIHJvbGU6IHRva2VuLnJvbGUgfHwgW10sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHNlc3Npb247XG4gICAgfSxcbiAgfSxcbiAgZXZlbnRzOiB7XG4gICAgYXN5bmMgc2lnbk91dCh7IHRva2VuIH0pIHtcbiAgICAgIGlmICh0b2tlbi5yZWZyZXNoVG9rZW4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBmZXRjaChcbiAgICAgICAgICAgIGAke3Byb2Nlc3MuZW52LktFWUNMT0FLX0JBU0VfVVJMfS9yZWFsbXMvJHtwcm9jZXNzLmVudi5LRVlDTE9BS19SRUFMTX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvbG9nb3V0YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGJvZHk6IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgICAgIGNsaWVudF9pZDogcHJvY2Vzcy5lbnYuS0VZQ0xPQUtfQ0xJRU5UX0lEISxcbiAgICAgICAgICAgICAgICBjbGllbnRfc2VjcmV0OiBwcm9jZXNzLmVudi5LRVlDTE9BS19DTElFTlRfU0VDUkVUISxcbiAgICAgICAgICAgICAgICByZWZyZXNoX3Rva2VuOiB0b2tlbi5yZWZyZXNoVG9rZW4gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBkdXJpbmcgbG9nb3V0OlwiLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICB9LFxufTtcblxuY29uc3QgaGFuZGxlciA9IE5leHRBdXRoKGF1dGhPcHRpb25zKTtcbmV4cG9ydCB7IGhhbmRsZXIgYXMgR0VULCBoYW5kbGVyIGFzIFBPU1QgfTtcbiJdLCJuYW1lcyI6WyJOZXh0QXV0aCIsIktleWNsb2FrUHJvdmlkZXIiLCJhdXRoT3B0aW9ucyIsInByb3ZpZGVycyIsImNsaWVudElkIiwicHJvY2VzcyIsImVudiIsIktFWUNMT0FLX0NMSUVOVF9JRCIsImNsaWVudFNlY3JldCIsIktFWUNMT0FLX0NMSUVOVF9TRUNSRVQiLCJpc3N1ZXIiLCJLRVlDTE9BS19JU1NVRVIiLCJjYWxsYmFja3MiLCJqd3QiLCJ0b2tlbiIsImFjY291bnQiLCJwcm9maWxlIiwiYWNjZXNzVG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJyZWZyZXNoVG9rZW4iLCJyZWZyZXNoX3Rva2VuIiwiYWNjZXNzVG9rZW5FeHBpcmVzIiwiZXhwaXJlc19hdCIsInJvbGUiLCJncm91cHMiLCJEYXRlIiwibm93IiwicmVzcG9uc2UiLCJmZXRjaCIsIktFWUNMT0FLX0JBU0VfVVJMIiwiS0VZQ0xPQUtfUkVBTE0iLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIlVSTFNlYXJjaFBhcmFtcyIsImdyYW50X3R5cGUiLCJjbGllbnRfaWQiLCJjbGllbnRfc2VjcmV0IiwidG9rZW5zIiwianNvbiIsIm9rIiwiZXhwaXJlc19pbiIsImVycm9yIiwiY29uc29sZSIsInNlc3Npb24iLCJFcnJvciIsInVzZXIiLCJpZCIsInN1YiIsImZpcnN0X25hbWUiLCJsYXN0X25hbWUiLCJ1c2VybmFtZSIsImV2ZW50cyIsInNpZ25PdXQiLCJoYW5kbGVyIiwiR0VUIiwiUE9TVCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/api/auth/[...nextauth]/route.ts\n");
/***/ })
};
;
// load runtime
var __webpack_require__ = require("../../../../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/jose","vendor-chunks/next-auth","vendor-chunks/openid-client","vendor-chunks/@babel","vendor-chunks/oauth","vendor-chunks/preact","vendor-chunks/uuid","vendor-chunks/yallist","vendor-chunks/preact-render-to-string","vendor-chunks/cookie","vendor-chunks/oidc-token-hash","vendor-chunks/@panva"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&page=%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute.ts&appDir=%2FUsers%2Falma%2FDownloads%2Fneah%2Ffront%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Falma%2FDownloads%2Fneah%2Ffront&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
module.exports = __webpack_exports__;
})();