NeahFront9/.next/server/app/api/calendars/route.js

226 lines
45 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/calendars/route";
exports.ids = ["app/api/calendars/route"];
exports.modules = {
/***/ "@prisma/client":
/*!*********************************!*\
!*** external "@prisma/client" ***!
\*********************************/
/***/ ((module) => {
module.exports = require("@prisma/client");
/***/ }),
/***/ "../../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%2Fcalendars%2Froute&page=%2Fapi%2Fcalendars%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fcalendars%2Froute.ts&appDir=%2Fhome%2Falma%2FNeahFront9%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2FNeahFront9&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%2Fcalendars%2Froute&page=%2Fapi%2Fcalendars%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fcalendars%2Froute.ts&appDir=%2Fhome%2Falma%2FNeahFront9%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2FNeahFront9&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 _home_alma_NeahFront9_app_api_calendars_route_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app/api/calendars/route.ts */ \"(rsc)/./app/api/calendars/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/calendars/route\",\n pathname: \"/api/calendars\",\n filename: \"route\",\n bundlePath: \"app/api/calendars/route\"\n },\n resolvedPagePath: \"/home/alma/NeahFront9/app/api/calendars/route.ts\",\n nextConfigOutput,\n userland: _home_alma_NeahFront9_app_api_calendars_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/calendars/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/bmFtZT1hcHAlMkZhcGklMkZjYWxlbmRhcnMlMkZyb3V0ZSZwYWdlPSUyRmFwaSUyRmNhbGVuZGFycyUyRnJvdXRlJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwaSUyRmNhbGVuZGFycyUyRnJvdXRlLnRzJmFwcERpcj0lMkZob21lJTJGYWxtYSUyRk5lYWhGcm9udDklMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRmhvbWUlMkZhbG1hJTJGTmVhaEZyb250OSZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQXNHO0FBQ3ZDO0FBQ2M7QUFDQTtBQUM3RTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0hBQW1CO0FBQzNDO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsWUFBWTtBQUNaLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxRQUFRLGlFQUFpRTtBQUN6RTtBQUNBO0FBQ0EsV0FBVyw0RUFBVztBQUN0QjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ3VIOztBQUV2SCIsInNvdXJjZXMiOlsid2VicGFjazovL25lYWgvP2U0Y2IiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwUm91dGVSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBwYXRjaEZldGNoIGFzIF9wYXRjaEZldGNoIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3BhdGNoLWZldGNoXCI7XG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiL2hvbWUvYWxtYS9OZWFoRnJvbnQ5L2FwcC9hcGkvY2FsZW5kYXJzL3JvdXRlLnRzXCI7XG4vLyBXZSBpbmplY3QgdGhlIG5leHRDb25maWdPdXRwdXQgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IG5leHRDb25maWdPdXRwdXQgPSBcIlwiXG5jb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBSb3V0ZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUk9VVEUsXG4gICAgICAgIHBhZ2U6IFwiL2FwaS9jYWxlbmRhcnMvcm91dGVcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL2FwaS9jYWxlbmRhcnNcIixcbiAgICAgICAgZmlsZW5hbWU6IFwicm91dGVcIixcbiAgICAgICAgYnVuZGxlUGF0aDogXCJhcHAvYXBpL2NhbGVuZGFycy9yb3V0ZVwiXG4gICAgfSxcbiAgICByZXNvbHZlZFBhZ2VQYXRoOiBcIi9ob21lL2FsbWEvTmVhaEZyb250OS9hcHAvYXBpL2NhbGVuZGFycy9yb3V0ZS50c1wiLFxuICAgIG5leHRDb25maWdPdXRwdXQsXG4gICAgdXNlcmxhbmRcbn0pO1xuLy8gUHVsbCBvdXQgdGhlIGV4cG9ydHMgdGhhdCB3ZSBuZWVkIHRvIGV4cG9zZSBmcm9tIHRoZSBtb2R1bGUuIFRoaXMgc2hvdWxkXG4vLyBiZSBlbGltaW5hdGVkIHdoZW4gd2UndmUgbW92ZWQgdGhlIG90aGVyIHJvdXRlcyB0byB0aGUgbmV3IGZvcm1hdC4gVGhlc2Vcbi8vIGFyZSB1c2VkIHRvIGhvb2sgaW50byB0aGUgcm91dGUuXG5jb25zdCB7IHJlcXVlc3RBc3luY1N0b3JhZ2UsIHN0YXRpY0dlbmVyYXRpb25Bc3luY1N0b3JhZ2UsIHNlcnZlckhvb2tzIH0gPSByb3V0ZU1vZHVsZTtcbmNvbnN0IG9yaWdpbmFsUGF0aG5hbWUgPSBcIi9hcGkvY2FsZW5kYXJzL3JvdXRlXCI7XG5mdW5jdGlvbiBwYXRjaEZldGNoKCkge1xuICAgIHJldHVybiBfcGF0Y2hGZXRjaCh7XG4gICAgICAgIHNlcnZlckhvb2tzLFxuICAgICAgICBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlXG4gICAgfSk7XG59XG5leHBvcnQgeyByb3V0ZU1vZHVsZSwgcmVxdWVzdEFzeW5jU3RvcmFnZSwgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZSwgc2VydmVySG9va3MsIG9yaWdpbmFsUGF0aG5hbWUsIHBhdGNoRmV0Y2gsICB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2Fcalendars%2Froute&page=%2Fapi%2Fcalendars%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fcalendars%2Froute.ts&appDir=%2Fhome%2Falma%2FNeahFront9%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2FNeahFront9&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\nfunction getRequiredEnvVar(name) {\n const value = process.env[name];\n if (!value) {\n throw new Error(`Missing required environment variable: ${name}`);\n }\n return value;\n}\nconst authOptions = {\n providers: [\n (0,next_auth_providers_keycloak__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n clientId: getRequiredEnvVar(\"KEYCLOAK_CLIENT_ID\"),\n clientSecret: getRequiredEnvVar(\"KEYCLOAK_CLIENT_SECRET\"),\n issuer: getRequiredEnvVar(\"KEYCLOAK_ISSUER\"),\n profile (profile) {\n return {\n id: profile.sub,\n name: profile.name ?? profile.preferred_username,\n email: profile.email,\n first_name: profile.given_name ?? \"\",\n last_name: profile.family_name ?? \"\",\n username: profile.preferred_username ?? profile.email?.split(\"@\")[0] ?? \"\",\n role: profile.groups ?? []\n };\n }\n })\n ],\n session: {\n strategy: \"jwt\",\n maxAge: 30 * 24 * 60 * 60\n },\n callbacks: {\n async jwt ({ token, account, profile }) {\n if (account && profile) {\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 token.username = profile.preferred_username ?? profile.email?.split(\"@\")[0] ?? \"\";\n token.first_name = profile.given_name ?? \"\";\n token.last_name = profile.family_name ?? \"\";\n }\n // Return previous token if not expired\n if (Date.now() < token.accessTokenExpires) {\n return token;\n }\n try {\n const clientId = getRequiredEnvVar(\"KEYCLOAK_CLIENT_ID\");\n const clientSecret = getRequiredEnvVar(\"KEYCLOAK_CLIENT_SECRET\");\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: clientId,\n client_secret: clientSecret,\n refresh_token: token.refreshToken\n })\n });\n const tokens = await response.json();\n if (!response.ok) {\n throw new Error(\"RefreshAccessTokenError\");\n }\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 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 pages: {\n signIn: \"/signin\",\n error: \"/signin\"\n },\n debug: \"development\" === \"development\"\n};\nconst handler = next_auth__WEBPACK_IMPORTED_MODULE_0___default()(authOptions);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvYXBpL2F1dGgvWy4uLm5leHRhdXRoXS9yb3V0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBc0Q7QUFDTTtBQTRCNUQsU0FBU0Usa0JBQWtCQyxJQUFZO0lBQ3JDLE1BQU1DLFFBQVFDLFFBQVFDLEdBQUcsQ0FBQ0gsS0FBSztJQUMvQixJQUFJLENBQUNDLE9BQU87UUFDVixNQUFNLElBQUlHLE1BQU0sQ0FBQyx1Q0FBdUMsRUFBRUosS0FBSyxDQUFDO0lBQ2xFO0lBQ0EsT0FBT0M7QUFDVDtBQUVPLE1BQU1JLGNBQStCO0lBQzFDQyxXQUFXO1FBQ1RSLHdFQUFnQkEsQ0FBQztZQUNmUyxVQUFVUixrQkFBa0I7WUFDNUJTLGNBQWNULGtCQUFrQjtZQUNoQ1UsUUFBUVYsa0JBQWtCO1lBQzFCVyxTQUFRQSxPQUFPO2dCQUNiLE9BQU87b0JBQ0xDLElBQUlELFFBQVFFLEdBQUc7b0JBQ2ZaLE1BQU1VLFFBQVFWLElBQUksSUFBSVUsUUFBUUcsa0JBQWtCO29CQUNoREMsT0FBT0osUUFBUUksS0FBSztvQkFDcEJDLFlBQVlMLFFBQVFNLFVBQVUsSUFBSTtvQkFDbENDLFdBQVdQLFFBQVFRLFdBQVcsSUFBSTtvQkFDbENDLFVBQVVULFFBQVFHLGtCQUFrQixJQUFJSCxRQUFRSSxLQUFLLEVBQUVNLE1BQU0sSUFBSSxDQUFDLEVBQUUsSUFBSTtvQkFDeEVDLE1BQU1YLFFBQVFZLE1BQU0sSUFBSSxFQUFFO2dCQUM1QjtZQUNGO1FBQ0Y7S0FDRDtJQUNEQyxTQUFTO1FBQ1BDLFVBQVU7UUFDVkMsUUFBUSxLQUFLLEtBQUssS0FBSztJQUN6QjtJQUNBQyxXQUFXO1FBQ1QsTUFBTUMsS0FBSSxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRW5CLE9BQU8sRUFBRTtZQUNuQyxJQUFJbUIsV0FBV25CLFNBQVM7Z0JBQ3RCa0IsTUFBTUUsV0FBVyxHQUFHRCxRQUFRRSxZQUFZO2dCQUN4Q0gsTUFBTUksWUFBWSxHQUFHSCxRQUFRSSxhQUFhO2dCQUMxQ0wsTUFBTU0sa0JBQWtCLEdBQUdMLFFBQVFNLFVBQVUsR0FBSTtnQkFDakRQLE1BQU1QLElBQUksR0FBRyxRQUFpQkMsTUFBTSxJQUFJLEVBQUU7Z0JBQzFDTSxNQUFNVCxRQUFRLEdBQUcsUUFBaUJOLGtCQUFrQixJQUFJSCxRQUFRSSxLQUFLLEVBQUVNLE1BQU0sSUFBSSxDQUFDLEVBQUUsSUFBSTtnQkFDeEZRLE1BQU1iLFVBQVUsR0FBRyxRQUFpQkMsVUFBVSxJQUFJO2dCQUNsRFksTUFBTVgsU0FBUyxHQUFHLFFBQWlCQyxXQUFXLElBQUk7WUFDcEQ7WUFFQSx1Q0FBdUM7WUFDdkMsSUFBSWtCLEtBQUtDLEdBQUcsS0FBTVQsTUFBTU0sa0JBQWtCLEVBQWE7Z0JBQ3JELE9BQU9OO1lBQ1Q7WUFFQSxJQUFJO2dCQUNGLE1BQU1yQixXQUFXUixrQkFBa0I7Z0JBQ25DLE1BQU1TLGVBQWVULGtCQUFrQjtnQkFFdkMsTUFBTXVDLFdBQVcsTUFBTUMsTUFDckIsQ0FBQyxFQUFFckMsUUFBUUMsR0FBRyxDQUFDcUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFdEMsUUFBUUMsR0FBRyxDQUFDc0MsY0FBYyxDQUFDLDhCQUE4QixDQUFDLEVBQ3JHO29CQUNFQyxRQUFRO29CQUNSQyxTQUFTO3dCQUNQLGdCQUFnQjtvQkFDbEI7b0JBQ0FDLE1BQU0sSUFBSUMsZ0JBQWdCO3dCQUN4QkMsWUFBWTt3QkFDWkMsV0FBV3hDO3dCQUNYeUMsZUFBZXhDO3dCQUNmeUIsZUFBZUwsTUFBTUksWUFBWTtvQkFDbkM7Z0JBQ0Y7Z0JBR0YsTUFBTWlCLFNBQVMsTUFBTVgsU0FBU1ksSUFBSTtnQkFFbEMsSUFBSSxDQUFDWixTQUFTYSxFQUFFLEVBQUU7b0JBQ2hCLE1BQU0sSUFBSS9DLE1BQU07Z0JBQ2xCO2dCQUVBLE9BQU87b0JBQ0wsR0FBR3dCLEtBQUs7b0JBQ1JFLGFBQWFtQixPQUFPbEIsWUFBWTtvQkFDaENDLGNBQWNpQixPQUFPaEIsYUFBYSxJQUFJTCxNQUFNSSxZQUFZO29CQUN4REUsb0JBQW9CRSxLQUFLQyxHQUFHLEtBQUtZLE9BQU9HLFVBQVUsR0FBRztnQkFDdkQ7WUFDRixFQUFFLE9BQU9DLE9BQU87Z0JBQ2QsT0FBTztvQkFDTCxHQUFHekIsS0FBSztvQkFDUnlCLE9BQU87Z0JBQ1Q7WUFDRjtRQUNGO1FBQ0EsTUFBTTlCLFNBQVEsRUFBRUEsT0FBTyxFQUFFSyxLQUFLLEVBQUU7WUFDOUIsSUFBSUEsTUFBTXlCLEtBQUssRUFBRTtnQkFDZixNQUFNLElBQUlqRCxNQUFNO1lBQ2xCO1lBRUFtQixRQUFRTyxXQUFXLEdBQUdGLE1BQU1FLFdBQVc7WUFDdkNQLFFBQVErQixJQUFJLEdBQUc7Z0JBQ2IsR0FBRy9CLFFBQVErQixJQUFJO2dCQUNmM0MsSUFBSWlCLE1BQU1oQixHQUFHO2dCQUNiRyxZQUFZYSxNQUFNYixVQUFVLElBQUk7Z0JBQ2hDRSxXQUFXVyxNQUFNWCxTQUFTLElBQUk7Z0JBQzlCRSxVQUFVUyxNQUFNVCxRQUFRLElBQUk7Z0JBQzVCRSxNQUFNTyxNQUFNUCxJQUFJLElBQUksRUFBRTtZQUN4QjtZQUVBLE9BQU9FO1FBQ1Q7SUFDRjtJQUNBZ0MsT0FBTztRQUNMQyxRQUFRO1FBQ1JILE9BQU87SUFDVDtJQUNBSSxPQUFPdkQsa0JBQXlCO0FBQ2xDLEVBQUU7QUFFRixNQUFNd0QsVUFBVTdELGdEQUFRQSxDQUFDUTtBQUNrQiIsInNvdXJjZXMiOlsid2VicGFjazovL25lYWgvLi9hcHAvYXBpL2F1dGgvWy4uLm5leHRhdXRoXS9yb3V0ZS50cz9jOGE0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOZXh0QXV0aCwgeyBOZXh0QXV0aE9wdGlvbnMgfSBmcm9tIFwibmV4dC1hdXRoXCI7XG5pbXBvcnQgS2V5Y2xvYWtQcm92aWRlciBmcm9tIFwibmV4dC1hdXRoL3Byb3ZpZGVycy9rZXljbG9ha1wiO1xuXG5kZWNsYXJlIG1vZHVsZSBcIm5leHQtYXV0aFwiIHtcbiAgaW50ZXJmYWNlIFNlc3Npb24ge1xuICAgIHVzZXI6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIGltYWdlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgICBsYXN0X25hbWU6IHN0cmluZztcbiAgICAgIHJvbGU6IHN0cmluZ1tdO1xuICAgIH07XG4gICAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgfVxuXG4gIGludGVyZmFjZSBKV1Qge1xuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gICAgYWNjZXNzVG9rZW5FeHBpcmVzOiBudW1iZXI7XG4gICAgcm9sZTogc3RyaW5nW107XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgbGFzdF9uYW1lOiBzdHJpbmc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UmVxdWlyZWRFbnZWYXIobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdmFsdWUgPSBwcm9jZXNzLmVudltuYW1lXTtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZTogJHtuYW1lfWApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhPcHRpb25zOiBOZXh0QXV0aE9wdGlvbnMgPSB7XG4gIHByb3ZpZGVyczogW1xuICAgIEtleWNsb2FrUHJvdmlkZXIoe1xuICAgICAgY2xpZW50SWQ6IGdldFJlcXVpcmVkRW52VmFyKFwiS0VZQ0xPQUtfQ0xJRU5UX0lEXCIpLFxuICAgICAgY2xpZW50U2VjcmV0OiBnZXRSZXF1aXJlZEVudlZhcihcIktFWUNMT0FLX0NMSUVOVF9TRUNSRVRcIiksXG4gICAgICBpc3N1ZXI6IGdldFJlcXVpcmVkRW52VmFyKFwiS0VZQ0xPQUtfSVNTVUVSXCIpLFxuICAgICAgcHJvZmlsZShwcm9maWxlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IHByb2ZpbGUuc3ViLFxuICAgICAgICAgIG5hbWU6IHByb2ZpbGUubmFtZSA/PyBwcm9maWxlLnByZWZlcnJlZF91c2VybmFtZSxcbiAgICAgICAgICBlbWFpbDogcHJvZmlsZS5lbWFpbCxcbiAgICAgICAgICBmaXJzdF9uYW1lOiBwcm9maWxlLmdpdmVuX25hbWUgPz8gJycsXG4gICAgICAgICAgbGFzdF9uYW1lOiBwcm9maWxlLmZhbWlseV9uYW1lID8/ICcnLFxuICAgICAgICAgIHVzZXJuYW1lOiBwcm9maWxlLnByZWZlcnJlZF91c2VybmFtZSA/PyBwcm9maWxlLmVtYWlsPy5zcGxpdCgnQCcpWzBdID8/ICcnLFxuICAgICAgICAgIHJvbGU6IHByb2ZpbGUuZ3JvdXBzID8/IFtdLFxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pLFxuICBdLFxuICBzZXNzaW9uOiB7XG4gICAgc3RyYXRlZ3k6IFwiand0XCIsXG4gICAgbWF4QWdlOiAzMCAqIDI0ICogNjAgKiA2MCwgLy8gMzAgZGF5c1xuICB9LFxuICBjYWxsYmFja3M6IHtcbiAgICBhc3luYyBqd3QoeyB0b2tlbiwgYWNjb3VudCwgcHJvZmlsZSB9KSB7XG4gICAgICBpZiAoYWNjb3VudCAmJiBwcm9maWxlKSB7XG4gICAgICAgIHRva2VuLmFjY2Vzc1Rva2VuID0gYWNjb3VudC5hY2Nlc3NfdG9rZW47XG4gICAgICAgIHRva2VuLnJlZnJlc2hUb2tlbiA9IGFjY291bnQucmVmcmVzaF90b2tlbjtcbiAgICAgICAgdG9rZW4uYWNjZXNzVG9rZW5FeHBpcmVzID0gYWNjb3VudC5leHBpcmVzX2F0ISAqIDEwMDA7XG4gICAgICAgIHRva2VuLnJvbGUgPSAocHJvZmlsZSBhcyBhbnkpLmdyb3VwcyA/PyBbXTtcbiAgICAgICAgdG9rZW4udXNlcm5hbWUgPSAocHJvZmlsZSBhcyBhbnkpLnByZWZlcnJlZF91c2VybmFtZSA/PyBwcm9maWxlLmVtYWlsPy5zcGxpdCgnQCcpWzBdID8/ICcnO1xuICAgICAgICB0b2tlbi5maXJzdF9uYW1lID0gKHByb2ZpbGUgYXMgYW55KS5naXZlbl9uYW1lID8/ICcnO1xuICAgICAgICB0b2tlbi5sYXN0X25hbWUgPSAocHJvZmlsZSBhcyBhbnkpLmZhbWlseV9uYW1lID8/ICcnO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXR1cm4gcHJldmlvdXMgdG9rZW4gaWYgbm90IGV4cGlyZWRcbiAgICAgIGlmIChEYXRlLm5vdygpIDwgKHRva2VuLmFjY2Vzc1Rva2VuRXhwaXJlcyBhcyBudW1iZXIpKSB7XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2xpZW50SWQgPSBnZXRSZXF1aXJlZEVudlZhcihcIktFWUNMT0FLX0NMSUVOVF9JRFwiKTtcbiAgICAgICAgY29uc3QgY2xpZW50U2VjcmV0ID0gZ2V0UmVxdWlyZWRFbnZWYXIoXCJLRVlDTE9BS19DTElFTlRfU0VDUkVUXCIpO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgICAgYCR7cHJvY2Vzcy5lbnYuS0VZQ0xPQUtfQkFTRV9VUkx9L3JlYWxtcy8ke3Byb2Nlc3MuZW52LktFWUNMT0FLX1JFQUxNfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbmAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgICAgZ3JhbnRfdHlwZTogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICAgICAgICAgIGNsaWVudF9pZDogY2xpZW50SWQsXG4gICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICAgICAgICAgICAgcmVmcmVzaF90b2tlbjogdG9rZW4ucmVmcmVzaFRva2VuIGFzIHN0cmluZyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZnJlc2hBY2Nlc3NUb2tlbkVycm9yXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50b2tlbixcbiAgICAgICAgICBhY2Nlc3NUb2tlbjogdG9rZW5zLmFjY2Vzc190b2tlbixcbiAgICAgICAgICByZWZyZXNoVG9rZW46IHRva2Vucy5yZWZyZXNoX3Rva2VuID8/IHRva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICBhY2Nlc3NUb2tlbkV4cGlyZXM6IERhdGUubm93KCkgKyB0b2tlbnMuZXhwaXJlc19pbiAqIDEwMDAsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnRva2VuLFxuICAgICAgICAgIGVycm9yOiBcIlJlZnJlc2hBY2Nlc3NUb2tlbkVycm9yXCIsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyBzZXNzaW9uKHsgc2Vzc2lvbiwgdG9rZW4gfSkge1xuICAgICAgaWYgKHRva2VuLmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZnJlc2hBY2Nlc3NUb2tlbkVycm9yXCIpO1xuICAgICAgfVxuXG4gICAgICBzZXNzaW9uLmFjY2Vzc1Rva2VuID0gdG9rZW4uYWNjZXNzVG9rZW47XG4gICAgICBzZXNzaW9uLnVzZXIgPSB7XG4gICAgICAgIC4uLnNlc3Npb24udXNlcixcbiAgICAgICAgaWQ6IHRva2VuLnN1YiBhcyBzdHJpbmcsXG4gICAgICAgIGZpcnN0X25hbWU6IHRva2VuLmZpcnN0X25hbWUgPz8gJycsXG4gICAgICAgIGxhc3RfbmFtZTogdG9rZW4ubGFzdF9uYW1lID8/ICcnLFxuICAgICAgICB1c2VybmFtZTogdG9rZW4udXNlcm5hbWUgPz8gJycsXG4gICAgICAgIHJvbGU6IHRva2VuLnJvbGUgPz8gW10sXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gc2Vzc2lvbjtcbiAgICB9XG4gIH0sXG4gIHBhZ2VzOiB7XG4gICAgc2lnbkluOiAnL3NpZ25pbicsXG4gICAgZXJyb3I6ICcvc2lnbmluJyxcbiAgfSxcbiAgZGVidWc6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnLFxufTtcblxuY29uc3QgaGFuZGxlciA9IE5leHRBdXRoKGF1dGhPcHRpb25zKTtcbmV4cG9ydCB7IGhhbmRsZXIgYXMgR0VULCBoYW5kbGVyIGFzIFBPU1QgfTtcblxuIl0sIm5hbWVzIjpbIk5leHRBdXRoIiwiS2V5Y2xvYWtQcm92aWRlciIsImdldFJlcXVpcmVkRW52VmFyIiwibmFtZSIsInZhbHVlIiwicHJvY2VzcyIsImVudiIsIkVycm9yIiwiYXV0aE9wdGlvbnMiLCJwcm92aWRlcnMiLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsImlzc3VlciIsInByb2ZpbGUiLCJpZCIsInN1YiIsInByZWZlcnJlZF91c2VybmFtZSIsImVtYWlsIiwiZmlyc3RfbmFtZSIsImdpdmVuX25hbWUiLCJsYXN0X25hbWUiLCJmYW1pbHlfbmFtZSIsInVzZXJuYW1lIiwic3BsaXQiLCJyb2xlIiwiZ3JvdXBzIiwic2Vzc2lvbiIsInN0cmF0ZWd5IiwibWF4QWdlIiwiY2FsbGJhY2tzIiwiand0IiwidG9rZW4iLCJhY2NvdW50IiwiYWNjZXNzVG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJyZWZyZXNoVG9rZW4iLCJyZWZyZXNoX3Rva2VuIiwiYWNjZXNzVG9rZW5FeHBpcmVzIiwiZXhwaXJlc19hdCIsIkRhdGUiLCJub3ciLCJyZXNwb25zZSIsImZldGNoIiwiS0VZQ0xPQUtfQkFTRV9VUkwiLCJLRVlDTE9BS19SRUFMTSIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiVVJMU2VhcmNoUGFyYW1zIiwiZ3JhbnRfdHlwZSIsImNsaWVudF9pZCIsImNsaWVudF9zZWNyZXQiLCJ0b2tlbnMiLCJqc29uIiwib2siLCJleHBpcmVzX2luIiwiZXJyb3IiLCJ1c2VyIiwicGFnZXMiLCJzaWduSW4iLCJkZWJ1ZyIsImhhbmRsZXIiLCJHRVQiLCJQT1NUIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/api/auth/[...nextauth]/route.ts\n");
/***/ }),
/***/ "(rsc)/./app/api/calendars/route.ts":
/*!************************************!*\
!*** ./app/api/calendars/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 */ GET),\n/* harmony export */ POST: () => (/* binding */ POST)\n/* harmony export */ });\n/* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/server */ \"(rsc)/./node_modules/next/dist/api/server.js\");\n/* harmony import */ var next_auth_next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next-auth/next */ \"(rsc)/./node_modules/next-auth/next/index.js\");\n/* harmony import */ var _app_api_auth_nextauth_route__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/app/api/auth/[...nextauth]/route */ \"(rsc)/./app/api/auth/[...nextauth]/route.ts\");\n/* harmony import */ var _lib_prisma__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/prisma */ \"(rsc)/./lib/prisma.ts\");\n\n\n\n\n/**\n * Handles the GET request to retrieve calendars for the authenticated user.\n *\n * @param {NextRequest} req - The incoming request object.\n * @returns {Promise<NextResponse>} - A promise that resolves to a JSON response containing the calendars or an error message.\n *\n * The function performs the following steps:\n * 1. Retrieves the server session using `getServerSession`.\n * 2. Checks if the user is authenticated by verifying the presence of `session.user.id`.\n * - If not authenticated, returns a 401 response with an error message.\n * 3. Attempts to fetch the calendars associated with the authenticated user from the database.\n * - If successful, returns the calendars in a JSON response.\n * - If an error occurs during the database query, logs the error and returns a 500 response with an error message.\n */ async function GET(req) {\n const session = await (0,next_auth_next__WEBPACK_IMPORTED_MODULE_1__.getServerSession)(_app_api_auth_nextauth_route__WEBPACK_IMPORTED_MODULE_2__.authOptions);\n if (!session?.user?.id) {\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Non authentifi\\xe9\"\n }, {\n status: 401\n });\n }\n try {\n const calendars = await _lib_prisma__WEBPACK_IMPORTED_MODULE_3__.prisma.calendar.findMany({\n where: {\n userId: session.user.id\n },\n include: {\n events: {\n orderBy: {\n start: \"asc\"\n }\n }\n },\n orderBy: {\n createdAt: \"desc\"\n }\n });\n console.log(\"Fetched calendars with events:\", calendars);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json(calendars);\n } catch (error) {\n console.error(\"Erreur lors de la r\\xe9cup\\xe9ration des calendriers:\", error);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Erreur serveur\"\n }, {\n status: 500\n });\n }\n}\n/**\n * Handles the POST request to create a new calendar.\n *\n * @param {NextRequest} req - The incoming request object.\n * @returns {Promise<NextResponse>} The response object containing the created calendar or an error message.\n *\n * @throws {Error} If there is an issue with the request or server.\n *\n * The function performs the following steps:\n * 1. Retrieves the server session using `getServerSession`.\n * 2. Checks if the user is authenticated by verifying the presence of `session.user.id`.\n * 3. Parses the request body to extract `name`, `color`, and `description`.\n * 4. Validates that the `name` field is provided.\n * 5. Creates a new calendar entry in the database using Prisma.\n * 6. Returns the created calendar with a 201 status code.\n * 7. Catches and logs any errors, returning a 500 status code with an error message.\n */ async function POST(req) {\n const session = await (0,next_auth_next__WEBPACK_IMPORTED_MODULE_1__.getServerSession)(_app_api_auth_nextauth_route__WEBPACK_IMPORTED_MODULE_2__.authOptions);\n if (!session?.user?.id) {\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Non authentifi\\xe9\"\n }, {\n status: 401\n });\n }\n try {\n const { name, color, description } = await req.json();\n // Validation\n if (!name) {\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Le nom du calendrier est requis\"\n }, {\n status: 400\n });\n }\n const calendar = await _lib_prisma__WEBPACK_IMPORTED_MODULE_3__.prisma.calendar.create({\n data: {\n name,\n color: color || \"#0082c9\",\n description,\n userId: session.user.id\n }\n });\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json(calendar, {\n status: 201\n });\n } catch (error) {\n console.error(\"Erreur lors de la cr\\xe9ation du calendrier:\", error);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Erreur serveur\"\n }, {\n status: 500\n });\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvYXBpL2NhbGVuZGFycy9yb3V0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBd0Q7QUFDTjtBQUNlO0FBQzNCO0FBRXRDOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDTSxlQUFlSSxJQUFJQyxHQUFnQjtJQUN4QyxNQUFNQyxVQUFVLE1BQU1MLGdFQUFnQkEsQ0FBQ0MscUVBQVdBO0lBRWxELElBQUksQ0FBQ0ksU0FBU0MsTUFBTUMsSUFBSTtRQUN0QixPQUFPUixxREFBWUEsQ0FBQ1MsSUFBSSxDQUFDO1lBQUVDLE9BQU87UUFBa0IsR0FBRztZQUFFQyxRQUFRO1FBQUk7SUFDdkU7SUFFQSxJQUFJO1FBQ0YsTUFBTUMsWUFBWSxNQUFNVCwrQ0FBTUEsQ0FBQ1UsUUFBUSxDQUFDQyxRQUFRLENBQUM7WUFDL0NDLE9BQU87Z0JBQ0xDLFFBQVFWLFFBQVFDLElBQUksQ0FBQ0MsRUFBRTtZQUN6QjtZQUNBUyxTQUFTO2dCQUNQQyxRQUFRO29CQUNOQyxTQUFTO3dCQUNQQyxPQUFPO29CQUNUO2dCQUNGO1lBQ0Y7WUFDQUQsU0FBUztnQkFDUEUsV0FBVztZQUNiO1FBQ0Y7UUFFQUMsUUFBUUMsR0FBRyxDQUFDLGtDQUFrQ1g7UUFDOUMsT0FBT1oscURBQVlBLENBQUNTLElBQUksQ0FBQ0c7SUFDM0IsRUFBRSxPQUFPRixPQUFPO1FBQ2RZLFFBQVFaLEtBQUssQ0FBQyx5REFBbURBO1FBQ2pFLE9BQU9WLHFEQUFZQSxDQUFDUyxJQUFJLENBQUM7WUFBRUMsT0FBTztRQUFpQixHQUFHO1lBQUVDLFFBQVE7UUFBSTtJQUN0RTtBQUNGO0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQkMsR0FDTSxlQUFlYSxLQUFLbkIsR0FBZ0I7SUFDekMsTUFBTUMsVUFBVSxNQUFNTCxnRUFBZ0JBLENBQUNDLHFFQUFXQTtJQUVsRCxJQUFJLENBQUNJLFNBQVNDLE1BQU1DLElBQUk7UUFDdEIsT0FBT1IscURBQVlBLENBQUNTLElBQUksQ0FBQztZQUFFQyxPQUFPO1FBQWtCLEdBQUc7WUFBRUMsUUFBUTtRQUFJO0lBQ3ZFO0lBRUEsSUFBSTtRQUNGLE1BQU0sRUFBRWMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLFdBQVcsRUFBRSxHQUFHLE1BQU10QixJQUFJSSxJQUFJO1FBRW5ELGFBQWE7UUFDYixJQUFJLENBQUNnQixNQUFNO1lBQ1QsT0FBT3pCLHFEQUFZQSxDQUFDUyxJQUFJLENBQ3RCO2dCQUFFQyxPQUFPO1lBQWtDLEdBQzNDO2dCQUFFQyxRQUFRO1lBQUk7UUFFbEI7UUFFQSxNQUFNRSxXQUFXLE1BQU1WLCtDQUFNQSxDQUFDVSxRQUFRLENBQUNlLE1BQU0sQ0FBQztZQUM1Q0MsTUFBTTtnQkFDSko7Z0JBQ0FDLE9BQU9BLFNBQVM7Z0JBQ2hCQztnQkFDQVgsUUFBUVYsUUFBUUMsSUFBSSxDQUFDQyxFQUFFO1lBQ3pCO1FBQ0Y7UUFFQSxPQUFPUixxREFBWUEsQ0FBQ1MsSUFBSSxDQUFDSSxVQUFVO1lBQUVGLFFBQVE7UUFBSTtJQUNuRCxFQUFFLE9BQU9ELE9BQU87UUFDZFksUUFBUVosS0FBSyxDQUFDLGdEQUE2Q0E7UUFDM0QsT0FBT1YscURBQVlBLENBQUNTLElBQUksQ0FBQztZQUFFQyxPQUFPO1FBQWlCLEdBQUc7WUFBRUMsUUFBUTtRQUFJO0lBQ3RFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9uZWFoLy4vYXBwL2FwaS9jYWxlbmRhcnMvcm91dGUudHM/Zjc2ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXh0UmVxdWVzdCwgTmV4dFJlc3BvbnNlIH0gZnJvbSBcIm5leHQvc2VydmVyXCI7XG5pbXBvcnQgeyBnZXRTZXJ2ZXJTZXNzaW9uIH0gZnJvbSBcIm5leHQtYXV0aC9uZXh0XCI7XG5pbXBvcnQgeyBhdXRoT3B0aW9ucyB9IGZyb20gXCJAL2FwcC9hcGkvYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlXCI7XG5pbXBvcnQgeyBwcmlzbWEgfSBmcm9tIFwiQC9saWIvcHJpc21hXCI7XG5cbi8qKlxuICogSGFuZGxlcyB0aGUgR0VUIHJlcXVlc3QgdG8gcmV0cmlldmUgY2FsZW5kYXJzIGZvciB0aGUgYXV0aGVudGljYXRlZCB1c2VyLlxuICpcbiAqIEBwYXJhbSB7TmV4dFJlcXVlc3R9IHJlcSAtIFRoZSBpbmNvbWluZyByZXF1ZXN0IG9iamVjdC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPE5leHRSZXNwb25zZT59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBKU09OIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIGNhbGVuZGFycyBvciBhbiBlcnJvciBtZXNzYWdlLlxuICpcbiAqIFRoZSBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuICogMS4gUmV0cmlldmVzIHRoZSBzZXJ2ZXIgc2Vzc2lvbiB1c2luZyBgZ2V0U2VydmVyU2Vzc2lvbmAuXG4gKiAyLiBDaGVja3MgaWYgdGhlIHVzZXIgaXMgYXV0aGVudGljYXRlZCBieSB2ZXJpZnlpbmcgdGhlIHByZXNlbmNlIG9mIGBzZXNzaW9uLnVzZXIuaWRgLlxuICogICAgLSBJZiBub3QgYXV0aGVudGljYXRlZCwgcmV0dXJucyBhIDQwMSByZXNwb25zZSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UuXG4gKiAzLiBBdHRlbXB0cyB0byBmZXRjaCB0aGUgY2FsZW5kYXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGZyb20gdGhlIGRhdGFiYXNlLlxuICogICAgLSBJZiBzdWNjZXNzZnVsLCByZXR1cm5zIHRoZSBjYWxlbmRhcnMgaW4gYSBKU09OIHJlc3BvbnNlLlxuICogICAgLSBJZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBkYXRhYmFzZSBxdWVyeSwgbG9ncyB0aGUgZXJyb3IgYW5kIHJldHVybnMgYSA1MDAgcmVzcG9uc2Ugd2l0aCBhbiBlcnJvciBtZXNzYWdlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gR0VUKHJlcTogTmV4dFJlcXVlc3QpIHtcbiAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IGdldFNlcnZlclNlc3Npb24oYXV0aE9wdGlvbnMpO1xuXG4gIGlmICghc2Vzc2lvbj8udXNlcj8uaWQpIHtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBlcnJvcjogXCJOb24gYXV0aGVudGlmacOpXCIgfSwgeyBzdGF0dXM6IDQwMSB9KTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgY2FsZW5kYXJzID0gYXdhaXQgcHJpc21hLmNhbGVuZGFyLmZpbmRNYW55KHtcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIHVzZXJJZDogc2Vzc2lvbi51c2VyLmlkLFxuICAgICAgfSxcbiAgICAgIGluY2x1ZGU6IHtcbiAgICAgICAgZXZlbnRzOiB7XG4gICAgICAgICAgb3JkZXJCeToge1xuICAgICAgICAgICAgc3RhcnQ6ICdhc2MnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb3JkZXJCeToge1xuICAgICAgICBjcmVhdGVkQXQ6IFwiZGVzY1wiLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKFwiRmV0Y2hlZCBjYWxlbmRhcnMgd2l0aCBldmVudHM6XCIsIGNhbGVuZGFycyk7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKGNhbGVuZGFycyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihcIkVycmV1ciBsb3JzIGRlIGxhIHLDqWN1cMOpcmF0aW9uIGRlcyBjYWxlbmRyaWVyczpcIiwgZXJyb3IpO1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbih7IGVycm9yOiBcIkVycmV1ciBzZXJ2ZXVyXCIgfSwgeyBzdGF0dXM6IDUwMCB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEhhbmRsZXMgdGhlIFBPU1QgcmVxdWVzdCB0byBjcmVhdGUgYSBuZXcgY2FsZW5kYXIuXG4gKlxuICogQHBhcmFtIHtOZXh0UmVxdWVzdH0gcmVxIC0gVGhlIGluY29taW5nIHJlcXVlc3Qgb2JqZWN0LlxuICogQHJldHVybnMge1Byb21pc2U8TmV4dFJlc3BvbnNlPn0gVGhlIHJlc3BvbnNlIG9iamVjdCBjb250YWluaW5nIHRoZSBjcmVhdGVkIGNhbGVuZGFyIG9yIGFuIGVycm9yIG1lc3NhZ2UuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIGlzIGFuIGlzc3VlIHdpdGggdGhlIHJlcXVlc3Qgb3Igc2VydmVyLlxuICpcbiAqIFRoZSBmdW5jdGlvbiBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIHN0ZXBzOlxuICogMS4gUmV0cmlldmVzIHRoZSBzZXJ2ZXIgc2Vzc2lvbiB1c2luZyBgZ2V0U2VydmVyU2Vzc2lvbmAuXG4gKiAyLiBDaGVja3MgaWYgdGhlIHVzZXIgaXMgYXV0aGVudGljYXRlZCBieSB2ZXJpZnlpbmcgdGhlIHByZXNlbmNlIG9mIGBzZXNzaW9uLnVzZXIuaWRgLlxuICogMy4gUGFyc2VzIHRoZSByZXF1ZXN0IGJvZHkgdG8gZXh0cmFjdCBgbmFtZWAsIGBjb2xvcmAsIGFuZCBgZGVzY3JpcHRpb25gLlxuICogNC4gVmFsaWRhdGVzIHRoYXQgdGhlIGBuYW1lYCBmaWVsZCBpcyBwcm92aWRlZC5cbiAqIDUuIENyZWF0ZXMgYSBuZXcgY2FsZW5kYXIgZW50cnkgaW4gdGhlIGRhdGFiYXNlIHVzaW5nIFByaXNtYS5cbiAqIDYuIFJldHVybnMgdGhlIGNyZWF0ZWQgY2FsZW5kYXIgd2l0aCBhIDIwMSBzdGF0dXMgY29kZS5cbiAqIDcuIENhdGNoZXMgYW5kIGxvZ3MgYW55IGVycm9ycywgcmV0dXJuaW5nIGEgNTAwIHN0YXR1cyBjb2RlIHdpdGggYW4gZXJyb3IgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIFBPU1QocmVxOiBOZXh0UmVxdWVzdCkge1xuICBjb25zdCBzZXNzaW9uID0gYXdhaXQgZ2V0U2VydmVyU2Vzc2lvbihhdXRoT3B0aW9ucyk7XG5cbiAgaWYgKCFzZXNzaW9uPy51c2VyPy5pZCkge1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbih7IGVycm9yOiBcIk5vbiBhdXRoZW50aWZpw6lcIiB9LCB7IHN0YXR1czogNDAxIH0pO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7IG5hbWUsIGNvbG9yLCBkZXNjcmlwdGlvbiB9ID0gYXdhaXQgcmVxLmpzb24oKTtcblxuICAgIC8vIFZhbGlkYXRpb25cbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbihcbiAgICAgICAgeyBlcnJvcjogXCJMZSBub20gZHUgY2FsZW5kcmllciBlc3QgcmVxdWlzXCIgfSxcbiAgICAgICAgeyBzdGF0dXM6IDQwMCB9XG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbGVuZGFyID0gYXdhaXQgcHJpc21hLmNhbGVuZGFyLmNyZWF0ZSh7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGNvbG9yOiBjb2xvciB8fCBcIiMwMDgyYzlcIixcbiAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgIHVzZXJJZDogc2Vzc2lvbi51c2VyLmlkLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbihjYWxlbmRhciwgeyBzdGF0dXM6IDIwMSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFwiRXJyZXVyIGxvcnMgZGUgbGEgY3LDqWF0aW9uIGR1IGNhbGVuZHJpZXI6XCIsIGVycm9yKTtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBlcnJvcjogXCJFcnJldXIgc2VydmV1clwiIH0sIHsgc3RhdHVzOiA1MDAgfSk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJOZXh0UmVzcG9uc2UiLCJnZXRTZXJ2ZXJTZXNzaW9uIiwiYXV0aE9wdGlvbnMiLCJwcmlzbWEiLCJHRVQiLCJyZXEiLCJzZXNzaW9uIiwidXNlciIsImlkIiwianNvbiIsImVycm9yIiwic3RhdHVzIiwiY2FsZW5kYXJzIiwiY2FsZW5kYXIiLCJmaW5kTWFueSIsIndoZXJlIiwidXNlcklkIiwiaW5jbHVkZSIsImV2ZW50cyIsIm9yZGVyQnkiLCJzdGFydCIsImNyZWF0ZWRBdCIsImNvbnNvbGUiLCJsb2ciLCJQT1NUIiwibmFtZSIsImNvbG9yIiwiZGVzY3JpcHRpb24iLCJjcmVhdGUiLCJkYXRhIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/api/calendars/route.ts\n");
/***/ }),
/***/ "(rsc)/./lib/prisma.ts":
/*!***********************!*\
!*** ./lib/prisma.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 */ prisma: () => (/* binding */ prisma)\n/* harmony export */ });\n/* harmony import */ var _prisma_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @prisma/client */ \"@prisma/client\");\n/* harmony import */ var _prisma_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_prisma_client__WEBPACK_IMPORTED_MODULE_0__);\n// front/lib/prisma.ts\n\nconst globalForPrisma = globalThis;\nconst prisma = globalForPrisma.prisma || new _prisma_client__WEBPACK_IMPORTED_MODULE_0__.PrismaClient({\n log: [\n \"query\"\n ]\n});\nif (true) globalForPrisma.prisma = prisma;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9saWIvcHJpc21hLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHNCQUFzQjtBQUN1QjtBQUU3QyxNQUFNQyxrQkFBa0JDO0FBSWpCLE1BQU1DLFNBQ1hGLGdCQUFnQkUsTUFBTSxJQUN0QixJQUFJSCx3REFBWUEsQ0FBQztJQUNmSSxLQUFLO1FBQUM7S0FBUTtBQUNoQixHQUFFO0FBRUosSUFBSUMsSUFBeUIsRUFBY0osZ0JBQWdCRSxNQUFNLEdBQUdBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmVhaC8uL2xpYi9wcmlzbWEudHM/OTgyMiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmcm9udC9saWIvcHJpc21hLnRzXG5pbXBvcnQgeyBQcmlzbWFDbGllbnQgfSBmcm9tICdAcHJpc21hL2NsaWVudCdcblxuY29uc3QgZ2xvYmFsRm9yUHJpc21hID0gZ2xvYmFsVGhpcyBhcyB1bmtub3duIGFzIHtcbiAgcHJpc21hOiBQcmlzbWFDbGllbnQgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBwcmlzbWEgPVxuICBnbG9iYWxGb3JQcmlzbWEucHJpc21hIHx8XG4gIG5ldyBQcmlzbWFDbGllbnQoe1xuICAgIGxvZzogWydxdWVyeSddLFxuICB9KVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykgZ2xvYmFsRm9yUHJpc21hLnByaXNtYSA9IHByaXNtYVxuIl0sIm5hbWVzIjpbIlByaXNtYUNsaWVudCIsImdsb2JhbEZvclByaXNtYSIsImdsb2JhbFRoaXMiLCJwcmlzbWEiLCJsb2ciLCJwcm9jZXNzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./lib/prisma.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%2Fcalendars%2Froute&page=%2Fapi%2Fcalendars%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fcalendars%2Froute.ts&appDir=%2Fhome%2Falma%2FNeahFront9%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2FNeahFront9&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
module.exports = __webpack_exports__;
})();