276 lines
57 KiB
JavaScript
276 lines
57 KiB
JavaScript
/*
|
|
* 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 = {
|
|
|
|
/***/ "(rsc)/./app/api/auth/[...nextauth]/route.ts":
|
|
/*!*********************************************!*\
|
|
!*** ./app/api/auth/[...nextauth]/route.ts ***!
|
|
\*********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
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/* harmony import */ var jwt_decode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! jwt-decode */ \"(rsc)/./node_modules/jwt-decode/build/esm/index.js\");\n\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}\nasync function refreshAccessToken(token) {\n try {\n const response = await fetch(`${process.env.KEYCLOAK_ISSUER}/protocol/openid-connect/token`, {\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 grant_type: \"refresh_token\",\n refresh_token: token.refreshToken\n }),\n method: \"POST\"\n });\n const refreshedTokens = await response.json();\n if (!response.ok) {\n throw refreshedTokens;\n }\n return {\n ...token,\n accessToken: refreshedTokens.access_token,\n refreshToken: refreshedTokens.refresh_token ?? token.refreshToken,\n accessTokenExpires: Date.now() + refreshedTokens.expires_in * 1000\n };\n } catch (error) {\n console.error(\"Error refreshing access token:\", error);\n return {\n ...token,\n error: \"RefreshAccessTokenError\"\n };\n }\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 authorization: {\n params: {\n scope: \"openid profile email roles\"\n }\n },\n profile (profile) {\n console.log('Keycloak profile callback:', {\n rawProfile: profile,\n rawRoles: profile.roles,\n realmAccess: profile.realm_access,\n groups: profile.groups\n });\n // Get roles from realm_access\n const roles = profile.realm_access?.roles || [];\n console.log('Profile callback raw roles:', roles);\n // Clean up roles by removing ROLE_ prefix and converting to lowercase\n const cleanRoles = roles.map((role)=>role.replace(/^ROLE_/, '').toLowerCase());\n console.log('Profile callback cleaned roles:', cleanRoles);\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: cleanRoles\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 const keycloakProfile = profile;\n const roles = keycloakProfile.realm_access?.roles || [];\n const cleanRoles = roles.map((role)=>role.replace(/^ROLE_/, '').toLowerCase());\n token.accessToken = account.access_token ?? '';\n token.refreshToken = account.refresh_token ?? '';\n token.accessTokenExpires = account.expires_at ?? 0;\n token.sub = keycloakProfile.sub;\n token.role = cleanRoles;\n token.username = keycloakProfile.preferred_username ?? '';\n token.first_name = keycloakProfile.given_name ?? '';\n token.last_name = keycloakProfile.family_name ?? '';\n } else if (token.accessToken) {\n try {\n const decoded = (0,jwt_decode__WEBPACK_IMPORTED_MODULE_2__.jwtDecode)(token.accessToken);\n if (decoded.realm_access?.roles) {\n const roles = decoded.realm_access.roles;\n const cleanRoles = roles.map((role)=>role.replace(/^ROLE_/, '').toLowerCase());\n token.role = cleanRoles;\n }\n } catch (error) {\n console.error('Error decoding token:', error);\n }\n }\n if (Date.now() < token.accessTokenExpires * 1000) {\n return token;\n }\n return refreshAccessToken(token);\n },\n async session ({ session, token }) {\n if (token.error) {\n throw new Error(token.error);\n }\n const userRoles = Array.isArray(token.role) ? token.role : [];\n session.user = {\n id: token.sub ?? '',\n email: token.email ?? null,\n name: token.name ?? null,\n image: null,\n username: token.username ?? '',\n first_name: token.first_name ?? '',\n last_name: token.last_name ?? '',\n role: userRoles,\n nextcloudInitialized: false\n };\n session.accessToken = token.accessToken;\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvYXBpL2F1dGgvWy4uLm5leHRhdXRoXS9yb3V0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXNEO0FBQ007QUFDckI7QUFxRHZDLFNBQVNHLGtCQUFrQkMsSUFBWTtJQUNyQyxNQUFNQyxRQUFRQyxRQUFRQyxHQUFHLENBQUNILEtBQUs7SUFDL0IsSUFBSSxDQUFDQyxPQUFPO1FBQ1YsTUFBTSxJQUFJRyxNQUFNLENBQUMsdUNBQXVDLEVBQUVKLE1BQU07SUFDbEU7SUFDQSxPQUFPQztBQUNUO0FBRUEsZUFBZUksbUJBQW1CQyxLQUFVO0lBQzFDLElBQUk7UUFDRixNQUFNQyxXQUFXLE1BQU1DLE1BQU0sR0FBR04sUUFBUUMsR0FBRyxDQUFDTSxlQUFlLENBQUMsOEJBQThCLENBQUMsRUFBRTtZQUMzRkMsU0FBUztnQkFBRSxnQkFBZ0I7WUFBb0M7WUFDL0RDLE1BQU0sSUFBSUMsZ0JBQWdCO2dCQUN4QkMsV0FBV1gsUUFBUUMsR0FBRyxDQUFDVyxrQkFBa0I7Z0JBQ3pDQyxlQUFlYixRQUFRQyxHQUFHLENBQUNhLHNCQUFzQjtnQkFDakRDLFlBQVk7Z0JBQ1pDLGVBQWVaLE1BQU1hLFlBQVk7WUFDbkM7WUFDQUMsUUFBUTtRQUNWO1FBRUEsTUFBTUMsa0JBQWtCLE1BQU1kLFNBQVNlLElBQUk7UUFFM0MsSUFBSSxDQUFDZixTQUFTZ0IsRUFBRSxFQUFFO1lBQ2hCLE1BQU1GO1FBQ1I7UUFFQSxPQUFPO1lBQ0wsR0FBR2YsS0FBSztZQUNSa0IsYUFBYUgsZ0JBQWdCSSxZQUFZO1lBQ3pDTixjQUFjRSxnQkFBZ0JILGFBQWEsSUFBSVosTUFBTWEsWUFBWTtZQUNqRU8sb0JBQW9CQyxLQUFLQyxHQUFHLEtBQUtQLGdCQUFnQlEsVUFBVSxHQUFHO1FBQ2hFO0lBQ0YsRUFBRSxPQUFPQyxPQUFPO1FBQ2RDLFFBQVFELEtBQUssQ0FBQyxrQ0FBa0NBO1FBQ2hELE9BQU87WUFDTCxHQUFHeEIsS0FBSztZQUNSd0IsT0FBTztRQUNUO0lBQ0Y7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O1lBRUEsSUFBSUgsS0FBS0MsR0FBRyxLQUFLLE1BQU9GLGtCQUFrQixHQUFjLE1BQU07Z0JBQzVELE9BQU9wQjtZQUNUO1lBRUEsT0FBT0QsbUJBQW1CQztRQUM1QjtRQUNBLE1BQU15RCxTQUFRLEVBQUVBLE9BQU8sRUFBRXpELEtBQUssRUFBRTtZQUM5QixJQUFJQSxNQUFNd0IsS0FBSyxFQUFFO2dCQUNmLE1BQU0sSUFBSTFCLE1BQU1FLE1BQU13QixLQUFLO1lBQzdCO1lBRUEsTUFBTTBDLFlBQVlDLE1BQU1DLE9BQU8sQ0FBQ3BFLE1BQU00QyxJQUFJLElBQUk1QyxNQUFNNEMsSUFBSSxHQUFHLEVBQUU7WUFDN0RhLFFBQVFZLElBQUksR0FBRztnQkFDYnRCLElBQUkvQyxNQUFNZ0QsR0FBRyxJQUFJO2dCQUNqQkUsT0FBT2xELE1BQU1rRCxLQUFLLElBQUk7Z0JBQ3RCeEQsTUFBTU0sTUFBTU4sSUFBSSxJQUFJO2dCQUNwQjRFLE9BQU87Z0JBQ1BmLFVBQVV2RCxNQUFNdUQsUUFBUSxJQUFJO2dCQUM1QkosWUFBWW5ELE1BQU1tRCxVQUFVLElBQUk7Z0JBQ2hDRSxXQUFXckQsTUFBTXFELFNBQVMsSUFBSTtnQkFDOUJULE1BQU1zQjtnQkFDTkssc0JBQXNCO1lBQ3hCO1lBQ0FkLFFBQVF2QyxXQUFXLEdBQUdsQixNQUFNa0IsV0FBVztZQUV2QyxPQUFPdUM7UUFDVDtJQUNGO0lBQ0FlLE9BQU87UUFDTEMsUUFBUTtRQUNSakQsT0FBTztJQUNUO0lBQ0FrRCxPQUFPOUUsa0JBQXlCO0FBQ2xDLEVBQUU7QUFFRixNQUFNK0UsVUFBVXJGLGdEQUFRQSxDQUFDb0M7QUFDa0IiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvYXBwL2FwaS9hdXRoL1suLi5uZXh0YXV0aF0vcm91dGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE5leHRBdXRoLCB7IE5leHRBdXRoT3B0aW9ucyB9IGZyb20gXCJuZXh0LWF1dGhcIjtcbmltcG9ydCBLZXljbG9ha1Byb3ZpZGVyIGZyb20gXCJuZXh0LWF1dGgvcHJvdmlkZXJzL2tleWNsb2FrXCI7XG5pbXBvcnQgeyBqd3REZWNvZGUgfSBmcm9tIFwiand0LWRlY29kZVwiO1xuXG5pbnRlcmZhY2UgS2V5Y2xvYWtQcm9maWxlIHtcbiAgc3ViOiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICByb2xlcz86IHN0cmluZ1tdO1xuICBwcmVmZXJyZWRfdXNlcm5hbWU/OiBzdHJpbmc7XG4gIGdpdmVuX25hbWU/OiBzdHJpbmc7XG4gIGZhbWlseV9uYW1lPzogc3RyaW5nO1xuICByZWFsbV9hY2Nlc3M/OiB7XG4gICAgcm9sZXM6IHN0cmluZ1tdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgRGVjb2RlZFRva2VuIHtcbiAgcmVhbG1fYWNjZXNzPzoge1xuICAgIHJvbGVzOiBzdHJpbmdbXTtcbiAgfTtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5kZWNsYXJlIG1vZHVsZSBcIm5leHQtYXV0aFwiIHtcbiAgaW50ZXJmYWNlIFNlc3Npb24ge1xuICAgIHVzZXI6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIGltYWdlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgICBsYXN0X25hbWU6IHN0cmluZztcbiAgICAgIHJvbGU6IHN0cmluZ1tdO1xuICAgICAgbmV4dGNsb3VkSW5pdGlhbGl6ZWQ/OiBib29sZWFuO1xuICAgIH07XG4gICAgYWNjZXNzVG9rZW4/OiBzdHJpbmc7XG4gIH1cblxuICBpbnRlcmZhY2UgSldUIHtcbiAgICBzdWI/OiBzdHJpbmc7XG4gICAgYWNjZXNzVG9rZW4/OiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuPzogc3RyaW5nO1xuICAgIGFjY2Vzc1Rva2VuRXhwaXJlcz86IG51bWJlcjtcbiAgICByb2xlPzogc3RyaW5nW107XG4gICAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgZmlyc3RfbmFtZT86IHN0cmluZztcbiAgICBsYXN0X25hbWU/OiBzdHJpbmc7XG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgZW1haWw/OiBzdHJpbmcgfCBudWxsO1xuICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFJlcXVpcmVkRW52VmFyKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV07XG4gIGlmICghdmFsdWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgZW52aXJvbm1lbnQgdmFyaWFibGU6ICR7bmFtZX1gKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlZnJlc2hBY2Nlc3NUb2tlbih0b2tlbjogSldUKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtwcm9jZXNzLmVudi5LRVlDTE9BS19JU1NVRVJ9L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCwge1xuICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIH0sXG4gICAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgY2xpZW50X2lkOiBwcm9jZXNzLmVudi5LRVlDTE9BS19DTElFTlRfSUQhLFxuICAgICAgICBjbGllbnRfc2VjcmV0OiBwcm9jZXNzLmVudi5LRVlDTE9BS19DTElFTlRfU0VDUkVUISxcbiAgICAgICAgZ3JhbnRfdHlwZTogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICAgIHJlZnJlc2hfdG9rZW46IHRva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgIH0pLFxuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZnJlc2hlZFRva2VucyA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIHRocm93IHJlZnJlc2hlZFRva2VucztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udG9rZW4sXG4gICAgICBhY2Nlc3NUb2tlbjogcmVmcmVzaGVkVG9rZW5zLmFjY2Vzc190b2tlbixcbiAgICAgIHJlZnJlc2hUb2tlbjogcmVmcmVzaGVkVG9rZW5zLnJlZnJlc2hfdG9rZW4gPz8gdG9rZW4ucmVmcmVzaFRva2VuLFxuICAgICAgYWNjZXNzVG9rZW5FeHBpcmVzOiBEYXRlLm5vdygpICsgcmVmcmVzaGVkVG9rZW5zLmV4cGlyZXNfaW4gKiAxMDAwLFxuICAgIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihcIkVycm9yIHJlZnJlc2hpbmcgYWNjZXNzIHRva2VuOlwiLCBlcnJvcik7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRva2VuLFxuICAgICAgZXJyb3I6IFwiUmVmcmVzaEFjY2Vzc1Rva2VuRXJyb3JcIixcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBhdXRoT3B0aW9uczogTmV4dEF1dGhPcHRpb25zID0ge1xuICBwcm92aWRlcnM6IFtcbiAgICBLZXljbG9ha1Byb3ZpZGVyKHtcbiAgICAgIGNsaWVudElkOiBnZXRSZXF1aXJlZEVudlZhcihcIktFWUNMT0FLX0NMSUVOVF9JRFwiKSxcbiAgICAgIGNsaWVudFNlY3JldDogZ2V0UmVxdWlyZWRFbnZWYXIoXCJLRVlDTE9BS19DTElFTlRfU0VDUkVUXCIpLFxuICAgICAgaXNzdWVyOiBnZXRSZXF1aXJlZEVudlZhcihcIktFWUNMT0FLX0lTU1VFUlwiKSxcbiAgICAgIGF1dGhvcml6YXRpb246IHtcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgc2NvcGU6IFwib3BlbmlkIHByb2ZpbGUgZW1haWwgcm9sZXNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcHJvZmlsZShwcm9maWxlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdLZXljbG9hayBwcm9maWxlIGNhbGxiYWNrOicsIHtcbiAgICAgICAgICByYXdQcm9maWxlOiBwcm9maWxlLFxuICAgICAgICAgIHJhd1JvbGVzOiBwcm9maWxlLnJvbGVzLFxuICAgICAgICAgIHJlYWxtQWNjZXNzOiBwcm9maWxlLnJlYWxtX2FjY2VzcyxcbiAgICAgICAgICBncm91cHM6IHByb2ZpbGUuZ3JvdXBzXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEdldCByb2xlcyBmcm9tIHJlYWxtX2FjY2Vzc1xuICAgICAgICBjb25zdCByb2xlcyA9IHByb2ZpbGUucmVhbG1fYWNjZXNzPy5yb2xlcyB8fCBbXTtcbiAgICAgICAgY29uc29sZS5sb2coJ1Byb2ZpbGUgY2FsbGJhY2sgcmF3IHJvbGVzOicsIHJvbGVzKTtcblxuICAgICAgICAvLyBDbGVhbiB1cCByb2xlcyBieSByZW1vdmluZyBST0xFXyBwcmVmaXggYW5kIGNvbnZlcnRpbmcgdG8gbG93ZXJjYXNlXG4gICAgICAgIGNvbnN0IGNsZWFuUm9sZXMgPSByb2xlcy5tYXAoKHJvbGU6IHN0cmluZykgPT4gXG4gICAgICAgICAgcm9sZS5yZXBsYWNlKC9eUk9MRV8vLCAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCdQcm9maWxlIGNhbGxiYWNrIGNsZWFuZWQgcm9sZXM6JywgY2xlYW5Sb2xlcyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZDogcHJvZmlsZS5zdWIsXG4gICAgICAgICAgbmFtZTogcHJvZmlsZS5uYW1lID8/IHByb2ZpbGUucHJlZmVycmVkX3VzZXJuYW1lLFxuICAgICAgICAgIGVtYWlsOiBwcm9maWxlLmVtYWlsLFxuICAgICAgICAgIGZpcnN0X25hbWU6IHByb2ZpbGUuZ2l2ZW5fbmFtZSA/PyAnJyxcbiAgICAgICAgICBsYXN0X25hbWU6IHByb2ZpbGUuZmFtaWx5X25hbWUgPz8gJycsXG4gICAgICAgICAgdXNlcm5hbWU6IHByb2ZpbGUucHJlZmVycmVkX3VzZXJuYW1lID8/IHByb2ZpbGUuZW1haWw/LnNwbGl0KCdAJylbMF0gPz8gJycsXG4gICAgICAgICAgcm9sZTogY2xlYW5Sb2xlcyxcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSxcbiAgXSxcbiAgc2Vzc2lvbjoge1xuICAgIHN0cmF0ZWd5OiBcImp3dFwiLFxuICAgIG1heEFnZTogMzAgKiAyNCAqIDYwICogNjAsIC8vIDMwIGRheXNcbiAgfSxcbiAgY2FsbGJhY2tzOiB7XG4gICAgYXN5bmMgand0KHsgdG9rZW4sIGFjY291bnQsIHByb2ZpbGUgfSkge1xuICAgICAgaWYgKGFjY291bnQgJiYgcHJvZmlsZSkge1xuICAgICAgICBjb25zdCBrZXljbG9ha1Byb2ZpbGUgPSBwcm9maWxlIGFzIEtleWNsb2FrUHJvZmlsZTtcbiAgICAgICAgY29uc3Qgcm9sZXMgPSBrZXljbG9ha1Byb2ZpbGUucmVhbG1fYWNjZXNzPy5yb2xlcyB8fCBbXTtcbiAgICAgICAgY29uc3QgY2xlYW5Sb2xlcyA9IHJvbGVzLm1hcCgocm9sZTogc3RyaW5nKSA9PiBcbiAgICAgICAgICByb2xlLnJlcGxhY2UoL15ST0xFXy8sICcnKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICk7XG5cbiAgICAgICAgdG9rZW4uYWNjZXNzVG9rZW4gPSBhY2NvdW50LmFjY2Vzc190b2tlbiA/PyAnJztcbiAgICAgICAgdG9rZW4ucmVmcmVzaFRva2VuID0gYWNjb3VudC5yZWZyZXNoX3Rva2VuID8/ICcnO1xuICAgICAgICB0b2tlbi5hY2Nlc3NUb2tlbkV4cGlyZXMgPSBhY2NvdW50LmV4cGlyZXNfYXQgPz8gMDtcbiAgICAgICAgdG9rZW4uc3ViID0ga2V5Y2xvYWtQcm9maWxlLnN1YjtcbiAgICAgICAgdG9rZW4ucm9sZSA9IGNsZWFuUm9sZXM7XG4gICAgICAgIHRva2VuLnVzZXJuYW1lID0ga2V5Y2xvYWtQcm9maWxlLnByZWZlcnJlZF91c2VybmFtZSA/PyAnJztcbiAgICAgICAgdG9rZW4uZmlyc3RfbmFtZSA9IGtleWNsb2FrUHJvZmlsZS5naXZlbl9uYW1lID8/ICcnO1xuICAgICAgICB0b2tlbi5sYXN0X25hbWUgPSBrZXljbG9ha1Byb2ZpbGUuZmFtaWx5X25hbWUgPz8gJyc7XG4gICAgICB9IGVsc2UgaWYgKHRva2VuLmFjY2Vzc1Rva2VuKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGVjb2RlZCA9IGp3dERlY29kZTxEZWNvZGVkVG9rZW4+KHRva2VuLmFjY2Vzc1Rva2VuKTtcbiAgICAgICAgICBpZiAoZGVjb2RlZC5yZWFsbV9hY2Nlc3M/LnJvbGVzKSB7XG4gICAgICAgICAgICBjb25zdCByb2xlcyA9IGRlY29kZWQucmVhbG1fYWNjZXNzLnJvbGVzO1xuICAgICAgICAgICAgY29uc3QgY2xlYW5Sb2xlcyA9IHJvbGVzLm1hcCgocm9sZTogc3RyaW5nKSA9PiBcbiAgICAgICAgICAgICAgcm9sZS5yZXBsYWNlKC9eUk9MRV8vLCAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRva2VuLnJvbGUgPSBjbGVhblJvbGVzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkZWNvZGluZyB0b2tlbjonLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKERhdGUubm93KCkgPCAodG9rZW4uYWNjZXNzVG9rZW5FeHBpcmVzIGFzIG51bWJlcikgKiAxMDAwKSB7XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlZnJlc2hBY2Nlc3NUb2tlbih0b2tlbik7XG4gICAgfSxcbiAgICBhc3luYyBzZXNzaW9uKHsgc2Vzc2lvbiwgdG9rZW4gfSkge1xuICAgICAgaWYgKHRva2VuLmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcih0b2tlbi5lcnJvcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVzZXJSb2xlcyA9IEFycmF5LmlzQXJyYXkodG9rZW4ucm9sZSkgPyB0b2tlbi5yb2xlIDogW107XG4gICAgICBzZXNzaW9uLnVzZXIgPSB7XG4gICAgICAgIGlkOiB0b2tlbi5zdWIgPz8gJycsXG4gICAgICAgIGVtYWlsOiB0b2tlbi5lbWFpbCA/PyBudWxsLFxuICAgICAgICBuYW1lOiB0b2tlbi5uYW1lID8/IG51bGwsXG4gICAgICAgIGltYWdlOiBudWxsLFxuICAgICAgICB1c2VybmFtZTogdG9rZW4udXNlcm5hbWUgPz8gJycsXG4gICAgICAgIGZpcnN0X25hbWU6IHRva2VuLmZpcnN0X25hbWUgPz8gJycsXG4gICAgICAgIGxhc3RfbmFtZTogdG9rZW4ubGFzdF9uYW1lID8/ICcnLFxuICAgICAgICByb2xlOiB1c2VyUm9sZXMsXG4gICAgICAgIG5leHRjbG91ZEluaXRpYWxpemVkOiBmYWxzZSxcbiAgICAgIH07XG4gICAgICBzZXNzaW9uLmFjY2Vzc1Rva2VuID0gdG9rZW4uYWNjZXNzVG9rZW47XG5cbiAgICAgIHJldHVybiBzZXNzaW9uO1xuICAgIH1cbiAgfSxcbiAgcGFnZXM6IHtcbiAgICBzaWduSW46ICcvc2lnbmluJyxcbiAgICBlcnJvcjogJy9zaWduaW4nLFxuICB9LFxuICBkZWJ1ZzogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcsXG59O1xuXG5jb25zdCBoYW5kbGVyID0gTmV4dEF1dGgoYXV0aE9wdGlvbnMpO1xuZXhwb3J0IHsgaGFuZGxlciBhcyBHRVQsIGhhbmRsZXIgYXMgUE9TVCB9O1xuXG5pbnRlcmZhY2UgSldUIHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gIGFjY2Vzc1Rva2VuRXhwaXJlczogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUHJvZmlsZSB7XG4gIHN1Yj86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHJvbGVzPzogc3RyaW5nW107XG59XG5cbiJdLCJuYW1lcyI6WyJOZXh0QXV0aCIsIktleWNsb2FrUHJvdmlkZXIiLCJqd3REZWNvZGUiLCJnZXRSZXF1aXJlZEVudlZhciIsIm5hbWUiLCJ2YWx1ZSIsInByb2Nlc3MiLCJlbnYiLCJFcnJvciIsInJlZnJlc2hBY2Nlc3NUb2tlbiIsInRva2VuIiwicmVzcG9uc2UiLCJmZXRjaCIsIktFWUNMT0FLX0lTU1VFUiIsImhlYWRlcnMiLCJib2R5IiwiVVJMU2VhcmNoUGFyYW1zIiwiY2xpZW50X2lkIiwiS0VZQ0xPQUtfQ0xJRU5UX0lEIiwiY2xpZW50X3NlY3JldCIsIktFWUNMT0FLX0NMSUVOVF9TRUNSRVQiLCJncmFudF90eXBlIiwicmVmcmVzaF90b2tlbiIsInJlZnJlc2hUb2tlbiIsIm1ldGhvZCIsInJlZnJlc2hlZFRva2VucyIsImpzb24iLCJvayIsImFjY2Vzc1Rva2VuIiwiYWNjZXNzX3Rva2VuIiwiYWNjZXNzVG9rZW5FeHBpcmVzIiwiRGF0ZSIsIm5vdyIsImV4cGlyZXNfaW4iLCJlcnJvciIsImNvbnNvbGUiLCJhdXRoT3B0aW9ucyIsInByb3ZpZGVycyIsImNsaWVudElkIiwiY2xpZW50U2VjcmV0IiwiaXNzdWVyIiwiYXV0aG9yaXphdGlvbiIsInBhcmFtcyIsInNjb3BlIiwicHJvZmlsZSIsImxvZyIsInJhd1Byb2ZpbGUiLCJyYXdSb2xlcyIsInJvbGVzIiwicmVhbG1BY2Nlc3MiLCJyZWFsbV9hY2Nlc3MiLCJncm91cHMiLCJjbGVhblJvbGVzIiwibWFwIiwicm9sZSIsInJlcGxhY2UiLCJ0b0xvd2VyQ2FzZSIsImlkIiwic3ViIiwicHJlZmVycmVkX3VzZXJuYW1lIiwiZW1haWwiLCJmaXJzdF9uYW1lIiwiZ2l2ZW5fbmFtZSIsImxhc3RfbmFtZSIsImZhbWlseV9uYW1lIiwidXNlcm5hbWUiLCJzcGxpdCIsInNlc3Npb24iLCJzdHJhdGVneSIsIm1heEFnZSIsImNhbGxiYWNrcyIsImp3dCIsImFjY291bnQiLCJrZXljbG9ha1Byb2ZpbGUiLCJleHBpcmVzX2F0IiwiZGVjb2RlZCIsInVzZXJSb2xlcyIsIkFycmF5IiwiaXNBcnJheSIsInVzZXIiLCJpbWFnZSIsIm5leHRjbG91ZEluaXRpYWxpemVkIiwicGFnZXMiLCJzaWduSW4iLCJkZWJ1ZyIsImhhbmRsZXIiLCJHRVQiLCJQT1NUIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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__) => {
|
|
|
|
"use strict";
|
|
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é\"\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écupération 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é\"\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éation 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvYXBpL2NhbGVuZGFycy9yb3V0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBd0Q7QUFDTjtBQUNlO0FBQzNCO0FBRXRDOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDTSxlQUFlSSxJQUFJQyxHQUFnQjtJQUN4QyxNQUFNQyxVQUFVLE1BQU1MLGdFQUFnQkEsQ0FBQ0MscUVBQVdBO0lBRWxELElBQUksQ0FBQ0ksU0FBU0MsTUFBTUMsSUFBSTtRQUN0QixPQUFPUixxREFBWUEsQ0FBQ1MsSUFBSSxDQUFDO1lBQUVDLE9BQU87UUFBa0IsR0FBRztZQUFFQyxRQUFRO1FBQUk7SUFDdkU7SUFFQSxJQUFJO1FBQ0YsTUFBTUMsWUFBWSxNQUFNVCwrQ0FBTUEsQ0FBQ1UsUUFBUSxDQUFDQyxRQUFRLENBQUM7WUFDL0NDLE9BQU87Z0JBQ0xDLFFBQVFWLFFBQVFDLElBQUksQ0FBQ0MsRUFBRTtZQUN6QjtZQUNBUyxTQUFTO2dCQUNQQyxRQUFRO29CQUNOQyxTQUFTO3dCQUNQQyxPQUFPO29CQUNUO2dCQUNGO1lBQ0Y7WUFDQUQsU0FBUztnQkFDUEUsV0FBVztZQUNiO1FBQ0Y7UUFFQUMsUUFBUUMsR0FBRyxDQUFDLGtDQUFrQ1g7UUFDOUMsT0FBT1oscURBQVlBLENBQUNTLElBQUksQ0FBQ0c7SUFDM0IsRUFBRSxPQUFPRixPQUFPO1FBQ2RZLFFBQVFaLEtBQUssQ0FBQyxtREFBbURBO1FBQ2pFLE9BQU9WLHFEQUFZQSxDQUFDUyxJQUFJLENBQUM7WUFBRUMsT0FBTztRQUFpQixHQUFHO1lBQUVDLFFBQVE7UUFBSTtJQUN0RTtBQUNGO0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnQkMsR0FDTSxlQUFlYSxLQUFLbkIsR0FBZ0I7SUFDekMsTUFBTUMsVUFBVSxNQUFNTCxnRUFBZ0JBLENBQUNDLHFFQUFXQTtJQUVsRCxJQUFJLENBQUNJLFNBQVNDLE1BQU1DLElBQUk7UUFDdEIsT0FBT1IscURBQVlBLENBQUNTLElBQUksQ0FBQztZQUFFQyxPQUFPO1FBQWtCLEdBQUc7WUFBRUMsUUFBUTtRQUFJO0lBQ3ZFO0lBRUEsSUFBSTtRQUNGLE1BQU0sRUFBRWMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLFdBQVcsRUFBRSxHQUFHLE1BQU10QixJQUFJSSxJQUFJO1FBRW5ELGFBQWE7UUFDYixJQUFJLENBQUNnQixNQUFNO1lBQ1QsT0FBT3pCLHFEQUFZQSxDQUFDUyxJQUFJLENBQ3RCO2dCQUFFQyxPQUFPO1lBQWtDLEdBQzNDO2dCQUFFQyxRQUFRO1lBQUk7UUFFbEI7UUFFQSxNQUFNRSxXQUFXLE1BQU1WLCtDQUFNQSxDQUFDVSxRQUFRLENBQUNlLE1BQU0sQ0FBQztZQUM1Q0MsTUFBTTtnQkFDSko7Z0JBQ0FDLE9BQU9BLFNBQVM7Z0JBQ2hCQztnQkFDQVgsUUFBUVYsUUFBUUMsSUFBSSxDQUFDQyxFQUFFO1lBQ3pCO1FBQ0Y7UUFFQSxPQUFPUixxREFBWUEsQ0FBQ1MsSUFBSSxDQUFDSSxVQUFVO1lBQUVGLFFBQVE7UUFBSTtJQUNuRCxFQUFFLE9BQU9ELE9BQU87UUFDZFksUUFBUVosS0FBSyxDQUFDLDZDQUE2Q0E7UUFDM0QsT0FBT1YscURBQVlBLENBQUNTLElBQUksQ0FBQztZQUFFQyxPQUFPO1FBQWlCLEdBQUc7WUFBRUMsUUFBUTtRQUFJO0lBQ3RFO0FBQ0YiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvYXBwL2FwaS9jYWxlbmRhcnMvcm91dGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV4dFJlcXVlc3QsIE5leHRSZXNwb25zZSB9IGZyb20gXCJuZXh0L3NlcnZlclwiO1xuaW1wb3J0IHsgZ2V0U2VydmVyU2Vzc2lvbiB9IGZyb20gXCJuZXh0LWF1dGgvbmV4dFwiO1xuaW1wb3J0IHsgYXV0aE9wdGlvbnMgfSBmcm9tIFwiQC9hcHAvYXBpL2F1dGgvWy4uLm5leHRhdXRoXS9yb3V0ZVwiO1xuaW1wb3J0IHsgcHJpc21hIH0gZnJvbSBcIkAvbGliL3ByaXNtYVwiO1xuXG4vKipcbiAqIEhhbmRsZXMgdGhlIEdFVCByZXF1ZXN0IHRvIHJldHJpZXZlIGNhbGVuZGFycyBmb3IgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlci5cbiAqXG4gKiBAcGFyYW0ge05leHRSZXF1ZXN0fSByZXEgLSBUaGUgaW5jb21pbmcgcmVxdWVzdCBvYmplY3QuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxOZXh0UmVzcG9uc2U+fSAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgSlNPTiByZXNwb25zZSBjb250YWluaW5nIHRoZSBjYWxlbmRhcnMgb3IgYW4gZXJyb3IgbWVzc2FnZS5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gcGVyZm9ybXMgdGhlIGZvbGxvd2luZyBzdGVwczpcbiAqIDEuIFJldHJpZXZlcyB0aGUgc2VydmVyIHNlc3Npb24gdXNpbmcgYGdldFNlcnZlclNlc3Npb25gLlxuICogMi4gQ2hlY2tzIGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQgYnkgdmVyaWZ5aW5nIHRoZSBwcmVzZW5jZSBvZiBgc2Vzc2lvbi51c2VyLmlkYC5cbiAqICAgIC0gSWYgbm90IGF1dGhlbnRpY2F0ZWQsIHJldHVybnMgYSA0MDEgcmVzcG9uc2Ugd2l0aCBhbiBlcnJvciBtZXNzYWdlLlxuICogMy4gQXR0ZW1wdHMgdG8gZmV0Y2ggdGhlIGNhbGVuZGFycyBhc3NvY2lhdGVkIHdpdGggdGhlIGF1dGhlbnRpY2F0ZWQgdXNlciBmcm9tIHRoZSBkYXRhYmFzZS5cbiAqICAgIC0gSWYgc3VjY2Vzc2Z1bCwgcmV0dXJucyB0aGUgY2FsZW5kYXJzIGluIGEgSlNPTiByZXNwb25zZS5cbiAqICAgIC0gSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZGF0YWJhc2UgcXVlcnksIGxvZ3MgdGhlIGVycm9yIGFuZCByZXR1cm5zIGEgNTAwIHJlc3BvbnNlIHdpdGggYW4gZXJyb3IgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIEdFVChyZXE6IE5leHRSZXF1ZXN0KSB7XG4gIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBnZXRTZXJ2ZXJTZXNzaW9uKGF1dGhPcHRpb25zKTtcblxuICBpZiAoIXNlc3Npb24/LnVzZXI/LmlkKSB7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKHsgZXJyb3I6IFwiTm9uIGF1dGhlbnRpZmnDqVwiIH0sIHsgc3RhdHVzOiA0MDEgfSk7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGNhbGVuZGFycyA9IGF3YWl0IHByaXNtYS5jYWxlbmRhci5maW5kTWFueSh7XG4gICAgICB3aGVyZToge1xuICAgICAgICB1c2VySWQ6IHNlc3Npb24udXNlci5pZCxcbiAgICAgIH0sXG4gICAgICBpbmNsdWRlOiB7XG4gICAgICAgIGV2ZW50czoge1xuICAgICAgICAgIG9yZGVyQnk6IHtcbiAgICAgICAgICAgIHN0YXJ0OiAnYXNjJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIG9yZGVyQnk6IHtcbiAgICAgICAgY3JlYXRlZEF0OiBcImRlc2NcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhcIkZldGNoZWQgY2FsZW5kYXJzIHdpdGggZXZlbnRzOlwiLCBjYWxlbmRhcnMpO1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbihjYWxlbmRhcnMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJldXIgbG9ycyBkZSBsYSByw6ljdXDDqXJhdGlvbiBkZXMgY2FsZW5kcmllcnM6XCIsIGVycm9yKTtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBlcnJvcjogXCJFcnJldXIgc2VydmV1clwiIH0sIHsgc3RhdHVzOiA1MDAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBIYW5kbGVzIHRoZSBQT1NUIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSB7TmV4dFJlcXVlc3R9IHJlcSAtIFRoZSBpbmNvbWluZyByZXF1ZXN0IG9iamVjdC5cbiAqIEByZXR1cm5zIHtQcm9taXNlPE5leHRSZXNwb25zZT59IFRoZSByZXNwb25zZSBvYmplY3QgY29udGFpbmluZyB0aGUgY3JlYXRlZCBjYWxlbmRhciBvciBhbiBlcnJvciBtZXNzYWdlLlxuICpcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSBpcyBhbiBpc3N1ZSB3aXRoIHRoZSByZXF1ZXN0IG9yIHNlcnZlci5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gcGVyZm9ybXMgdGhlIGZvbGxvd2luZyBzdGVwczpcbiAqIDEuIFJldHJpZXZlcyB0aGUgc2VydmVyIHNlc3Npb24gdXNpbmcgYGdldFNlcnZlclNlc3Npb25gLlxuICogMi4gQ2hlY2tzIGlmIHRoZSB1c2VyIGlzIGF1dGhlbnRpY2F0ZWQgYnkgdmVyaWZ5aW5nIHRoZSBwcmVzZW5jZSBvZiBgc2Vzc2lvbi51c2VyLmlkYC5cbiAqIDMuIFBhcnNlcyB0aGUgcmVxdWVzdCBib2R5IHRvIGV4dHJhY3QgYG5hbWVgLCBgY29sb3JgLCBhbmQgYGRlc2NyaXB0aW9uYC5cbiAqIDQuIFZhbGlkYXRlcyB0aGF0IHRoZSBgbmFtZWAgZmllbGQgaXMgcHJvdmlkZWQuXG4gKiA1LiBDcmVhdGVzIGEgbmV3IGNhbGVuZGFyIGVudHJ5IGluIHRoZSBkYXRhYmFzZSB1c2luZyBQcmlzbWEuXG4gKiA2LiBSZXR1cm5zIHRoZSBjcmVhdGVkIGNhbGVuZGFyIHdpdGggYSAyMDEgc3RhdHVzIGNvZGUuXG4gKiA3LiBDYXRjaGVzIGFuZCBsb2dzIGFueSBlcnJvcnMsIHJldHVybmluZyBhIDUwMCBzdGF0dXMgY29kZSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBQT1NUKHJlcTogTmV4dFJlcXVlc3QpIHtcbiAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IGdldFNlcnZlclNlc3Npb24oYXV0aE9wdGlvbnMpO1xuXG4gIGlmICghc2Vzc2lvbj8udXNlcj8uaWQpIHtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBlcnJvcjogXCJOb24gYXV0aGVudGlmacOpXCIgfSwgeyBzdGF0dXM6IDQwMSB9KTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgeyBuYW1lLCBjb2xvciwgZGVzY3JpcHRpb24gfSA9IGF3YWl0IHJlcS5qc29uKCk7XG5cbiAgICAvLyBWYWxpZGF0aW9uXG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oXG4gICAgICAgIHsgZXJyb3I6IFwiTGUgbm9tIGR1IGNhbGVuZHJpZXIgZXN0IHJlcXVpc1wiIH0sXG4gICAgICAgIHsgc3RhdHVzOiA0MDAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWxlbmRhciA9IGF3YWl0IHByaXNtYS5jYWxlbmRhci5jcmVhdGUoe1xuICAgICAgZGF0YToge1xuICAgICAgICBuYW1lLFxuICAgICAgICBjb2xvcjogY29sb3IgfHwgXCIjMDA4MmM5XCIsXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICB1c2VySWQ6IHNlc3Npb24udXNlci5pZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oY2FsZW5kYXIsIHsgc3RhdHVzOiAyMDEgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcihcIkVycmV1ciBsb3JzIGRlIGxhIGNyw6lhdGlvbiBkdSBjYWxlbmRyaWVyOlwiLCBlcnJvcik7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKHsgZXJyb3I6IFwiRXJyZXVyIHNlcnZldXJcIiB9LCB7IHN0YXR1czogNTAwIH0pO1xuICB9XG59XG4iXSwibmFtZXMiOlsiTmV4dFJlc3BvbnNlIiwiZ2V0U2VydmVyU2Vzc2lvbiIsImF1dGhPcHRpb25zIiwicHJpc21hIiwiR0VUIiwicmVxIiwic2Vzc2lvbiIsInVzZXIiLCJpZCIsImpzb24iLCJlcnJvciIsInN0YXR1cyIsImNhbGVuZGFycyIsImNhbGVuZGFyIiwiZmluZE1hbnkiLCJ3aGVyZSIsInVzZXJJZCIsImluY2x1ZGUiLCJldmVudHMiLCJvcmRlckJ5Iiwic3RhcnQiLCJjcmVhdGVkQXQiLCJjb25zb2xlIiwibG9nIiwiUE9TVCIsIm5hbWUiLCJjb2xvciIsImRlc2NyaXB0aW9uIiwiY3JlYXRlIiwiZGF0YSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/api/calendars/route.ts\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./lib/env.ts":
|
|
/*!********************!*\
|
|
!*** ./lib/env.ts ***!
|
|
\********************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ env: () => (/* binding */ env)\n/* harmony export */ });\n/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zod */ \"(rsc)/./node_modules/zod/lib/index.mjs\");\n\nconst envSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({\n NODE_ENV: zod__WEBPACK_IMPORTED_MODULE_0__.z.enum([\n \"development\",\n \"test\",\n \"production\"\n ]).default(\"development\"),\n DATABASE_URL: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().url(),\n NEWSDB_URL: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().regex(/^postgresql:\\/\\//, \"Must be a valid PostgreSQL URL\"),\n NEWS_API_URL: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().url(),\n KEYCLOAK_CLIENT_ID: zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n KEYCLOAK_CLIENT_SECRET: zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n KEYCLOAK_REALM: zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n KEYCLOAK_ISSUER: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().url(),\n LEANTIME_TOKEN: zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n LEANTIME_API_URL: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().url(),\n ROCKET_CHAT_TOKEN: zod__WEBPACK_IMPORTED_MODULE_0__.z.string(),\n ROCKET_CHAT_USER_ID: zod__WEBPACK_IMPORTED_MODULE_0__.z.string()\n});\nconst env = envSchema.parse(process.env);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9saWIvZW52LnRzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdCO0FBRXhCLE1BQU1DLFlBQVlELGtDQUFDQSxDQUFDRSxNQUFNLENBQUM7SUFDekJDLFVBQVVILGtDQUFDQSxDQUFDSSxJQUFJLENBQUM7UUFBQztRQUFlO1FBQVE7S0FBYSxFQUFFQyxPQUFPLENBQUM7SUFDaEVDLGNBQWNOLGtDQUFDQSxDQUFDTyxNQUFNLEdBQUdDLEdBQUc7SUFDNUJDLFlBQVlULGtDQUFDQSxDQUFDTyxNQUFNLEdBQUdHLEtBQUssQ0FBQyxvQkFBb0I7SUFDakRDLGNBQWNYLGtDQUFDQSxDQUFDTyxNQUFNLEdBQUdDLEdBQUc7SUFDNUJJLG9CQUFvQlosa0NBQUNBLENBQUNPLE1BQU07SUFDNUJNLHdCQUF3QmIsa0NBQUNBLENBQUNPLE1BQU07SUFDaENPLGdCQUFnQmQsa0NBQUNBLENBQUNPLE1BQU07SUFDeEJRLGlCQUFpQmYsa0NBQUNBLENBQUNPLE1BQU0sR0FBR0MsR0FBRztJQUMvQlEsZ0JBQWdCaEIsa0NBQUNBLENBQUNPLE1BQU07SUFDeEJVLGtCQUFrQmpCLGtDQUFDQSxDQUFDTyxNQUFNLEdBQUdDLEdBQUc7SUFDaENVLG1CQUFtQmxCLGtDQUFDQSxDQUFDTyxNQUFNO0lBQzNCWSxxQkFBcUJuQixrQ0FBQ0EsQ0FBQ08sTUFBTTtBQUMvQjtBQUVPLE1BQU1hLE1BQU1uQixVQUFVb0IsS0FBSyxDQUFDQyxRQUFRRixHQUFHLEVBQUUiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbGliL2Vudi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5jb25zdCBlbnZTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIE5PREVfRU5WOiB6LmVudW0oW1wiZGV2ZWxvcG1lbnRcIiwgXCJ0ZXN0XCIsIFwicHJvZHVjdGlvblwiXSkuZGVmYXVsdChcImRldmVsb3BtZW50XCIpLFxuICBEQVRBQkFTRV9VUkw6IHouc3RyaW5nKCkudXJsKCksXG4gIE5FV1NEQl9VUkw6IHouc3RyaW5nKCkucmVnZXgoL15wb3N0Z3Jlc3FsOlxcL1xcLy8sIFwiTXVzdCBiZSBhIHZhbGlkIFBvc3RncmVTUUwgVVJMXCIpLFxuICBORVdTX0FQSV9VUkw6IHouc3RyaW5nKCkudXJsKCksXG4gIEtFWUNMT0FLX0NMSUVOVF9JRDogei5zdHJpbmcoKSxcbiAgS0VZQ0xPQUtfQ0xJRU5UX1NFQ1JFVDogei5zdHJpbmcoKSxcbiAgS0VZQ0xPQUtfUkVBTE06IHouc3RyaW5nKCksXG4gIEtFWUNMT0FLX0lTU1VFUjogei5zdHJpbmcoKS51cmwoKSxcbiAgTEVBTlRJTUVfVE9LRU46IHouc3RyaW5nKCksXG4gIExFQU5USU1FX0FQSV9VUkw6IHouc3RyaW5nKCkudXJsKCksXG4gIFJPQ0tFVF9DSEFUX1RPS0VOOiB6LnN0cmluZygpLFxuICBST0NLRVRfQ0hBVF9VU0VSX0lEOiB6LnN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBlbnYgPSBlbnZTY2hlbWEucGFyc2UocHJvY2Vzcy5lbnYpOyAiXSwibmFtZXMiOlsieiIsImVudlNjaGVtYSIsIm9iamVjdCIsIk5PREVfRU5WIiwiZW51bSIsImRlZmF1bHQiLCJEQVRBQkFTRV9VUkwiLCJzdHJpbmciLCJ1cmwiLCJORVdTREJfVVJMIiwicmVnZXgiLCJORVdTX0FQSV9VUkwiLCJLRVlDTE9BS19DTElFTlRfSUQiLCJLRVlDTE9BS19DTElFTlRfU0VDUkVUIiwiS0VZQ0xPQUtfUkVBTE0iLCJLRVlDTE9BS19JU1NVRVIiLCJMRUFOVElNRV9UT0tFTiIsIkxFQU5USU1FX0FQSV9VUkwiLCJST0NLRVRfQ0hBVF9UT0tFTiIsIlJPQ0tFVF9DSEFUX1VTRVJfSUQiLCJlbnYiLCJwYXJzZSIsInByb2Nlc3MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./lib/env.ts\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./lib/prisma.ts":
|
|
/*!***********************!*\
|
|
!*** ./lib/prisma.ts ***!
|
|
\***********************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
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/* harmony import */ var _lib_env__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/env */ \"(rsc)/./lib/env.ts\");\n// front/lib/prisma.ts\n\n\nconst globalForPrisma = globalThis;\n// Main database client\nconst prisma = globalForPrisma.prisma || new _prisma_client__WEBPACK_IMPORTED_MODULE_0__.PrismaClient({\n datasources: {\n db: {\n url: _lib_env__WEBPACK_IMPORTED_MODULE_1__.env.DATABASE_URL\n }\n },\n log: [\n 'query'\n ]\n});\nif (true) {\n globalForPrisma.prisma = prisma;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9saWIvcHJpc21hLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxzQkFBc0I7QUFDdUI7QUFDZDtBQUUvQixNQUFNRSxrQkFBa0JDO0FBSXhCLHVCQUF1QjtBQUNoQixNQUFNQyxTQUNYRixnQkFBZ0JFLE1BQU0sSUFDdEIsSUFBSUosd0RBQVlBLENBQUM7SUFDZkssYUFBYTtRQUNYQyxJQUFJO1lBQ0ZDLEtBQUtOLHlDQUFHQSxDQUFDTyxZQUFZO1FBQ3ZCO0lBQ0Y7SUFDQUMsS0FBSztRQUFDO0tBQVE7QUFDaEIsR0FBRTtBQUVKLElBQUlDLElBQXFDLEVBQUU7SUFDekNSLGdCQUFnQkUsTUFBTSxHQUFHQTtBQUMzQiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9saWIvcHJpc21hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGZyb250L2xpYi9wcmlzbWEudHNcbmltcG9ydCB7IFByaXNtYUNsaWVudCB9IGZyb20gJ0BwcmlzbWEvY2xpZW50J1xuaW1wb3J0IHsgZW52IH0gZnJvbSAnQC9saWIvZW52J1xuXG5jb25zdCBnbG9iYWxGb3JQcmlzbWEgPSBnbG9iYWxUaGlzIGFzIHVua25vd24gYXMge1xuICBwcmlzbWE6IFByaXNtYUNsaWVudCB8IHVuZGVmaW5lZDtcbn1cblxuLy8gTWFpbiBkYXRhYmFzZSBjbGllbnRcbmV4cG9ydCBjb25zdCBwcmlzbWEgPVxuICBnbG9iYWxGb3JQcmlzbWEucHJpc21hIHx8XG4gIG5ldyBQcmlzbWFDbGllbnQoe1xuICAgIGRhdGFzb3VyY2VzOiB7XG4gICAgICBkYjoge1xuICAgICAgICB1cmw6IGVudi5EQVRBQkFTRV9VUkxcbiAgICAgIH1cbiAgICB9LFxuICAgIGxvZzogWydxdWVyeSddLFxuICB9KVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBnbG9iYWxGb3JQcmlzbWEucHJpc21hID0gcHJpc21hO1xufVxuIl0sIm5hbWVzIjpbIlByaXNtYUNsaWVudCIsImVudiIsImdsb2JhbEZvclByaXNtYSIsImdsb2JhbFRoaXMiLCJwcmlzbWEiLCJkYXRhc291cmNlcyIsImRiIiwidXJsIiwiREFUQUJBU0VfVVJMIiwibG9nIiwicHJvY2VzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./lib/prisma.ts\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fcalendars%2Froute&page=%2Fapi%2Fcalendars%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fcalendars%2Froute.ts&appDir=%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2Fnextgen%2FNeah-mail&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
|
|
/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fcalendars%2Froute&page=%2Fapi%2Fcalendars%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fcalendars%2Froute.ts&appDir=%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2Fnextgen%2FNeah-mail&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
|
|
\*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ serverHooks: () => (/* binding */ serverHooks),\n/* harmony export */ workAsyncStorage: () => (/* binding */ workAsyncStorage),\n/* harmony export */ workUnitAsyncStorage: () => (/* binding */ workUnitAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/app-route/module.compiled */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(rsc)/./node_modules/next/dist/server/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_nextgen_Neah_mail_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_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppRouteRouteModule({\n definition: {\n kind: next_dist_server_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/nextgen/Neah-mail/app/api/calendars/route.ts\",\n nextConfigOutput,\n userland: _home_alma_nextgen_Neah_mail_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 { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return (0,next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__.patchFetch)({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\n\n\n//# sourceMappingURL=app-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIvaW5kZXguanM/bmFtZT1hcHAlMkZhcGklMkZjYWxlbmRhcnMlMkZyb3V0ZSZwYWdlPSUyRmFwaSUyRmNhbGVuZGFycyUyRnJvdXRlJmFwcFBhdGhzPSZwYWdlUGF0aD1wcml2YXRlLW5leHQtYXBwLWRpciUyRmFwaSUyRmNhbGVuZGFycyUyRnJvdXRlLnRzJmFwcERpcj0lMkZob21lJTJGYWxtYSUyRm5leHRnZW4lMkZOZWFoLW1haWwlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRmhvbWUlMkZhbG1hJTJGbmV4dGdlbiUyRk5lYWgtbWFpbCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBK0Y7QUFDdkM7QUFDcUI7QUFDTztBQUNwRjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IseUdBQW1CO0FBQzNDO0FBQ0EsY0FBYyxrRUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsWUFBWTtBQUNaLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxRQUFRLHNEQUFzRDtBQUM5RDtBQUNBLFdBQVcsNEVBQVc7QUFDdEI7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUMwRjs7QUFFMUYiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBSb3V0ZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcm91dGUvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBwYXRjaEZldGNoIGFzIF9wYXRjaEZldGNoIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3BhdGNoLWZldGNoXCI7XG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9hcHAvYXBpL2NhbGVuZGFycy9yb3V0ZS50c1wiO1xuLy8gV2UgaW5qZWN0IHRoZSBuZXh0Q29uZmlnT3V0cHV0IGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCBuZXh0Q29uZmlnT3V0cHV0ID0gXCJcIlxuY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUm91dGVSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1JPVVRFLFxuICAgICAgICBwYWdlOiBcIi9hcGkvY2FsZW5kYXJzL3JvdXRlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9hcGkvY2FsZW5kYXJzXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcInJvdXRlXCIsXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiYXBwL2FwaS9jYWxlbmRhcnMvcm91dGVcIlxuICAgIH0sXG4gICAgcmVzb2x2ZWRQYWdlUGF0aDogXCIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL2FwcC9hcGkvY2FsZW5kYXJzL3JvdXRlLnRzXCIsXG4gICAgbmV4dENvbmZpZ091dHB1dCxcbiAgICB1c2VybGFuZFxufSk7XG4vLyBQdWxsIG91dCB0aGUgZXhwb3J0cyB0aGF0IHdlIG5lZWQgdG8gZXhwb3NlIGZyb20gdGhlIG1vZHVsZS4gVGhpcyBzaG91bGRcbi8vIGJlIGVsaW1pbmF0ZWQgd2hlbiB3ZSd2ZSBtb3ZlZCB0aGUgb3RoZXIgcm91dGVzIHRvIHRoZSBuZXcgZm9ybWF0LiBUaGVzZVxuLy8gYXJlIHVzZWQgdG8gaG9vayBpbnRvIHRoZSByb3V0ZS5cbmNvbnN0IHsgd29ya0FzeW5jU3RvcmFnZSwgd29ya1VuaXRBc3luY1N0b3JhZ2UsIHNlcnZlckhvb2tzIH0gPSByb3V0ZU1vZHVsZTtcbmZ1bmN0aW9uIHBhdGNoRmV0Y2goKSB7XG4gICAgcmV0dXJuIF9wYXRjaEZldGNoKHtcbiAgICAgICAgd29ya0FzeW5jU3RvcmFnZSxcbiAgICAgICAgd29ya1VuaXRBc3luY1N0b3JhZ2VcbiAgICB9KTtcbn1cbmV4cG9ydCB7IHJvdXRlTW9kdWxlLCB3b3JrQXN5bmNTdG9yYWdlLCB3b3JrVW5pdEFzeW5jU3RvcmFnZSwgc2VydmVySG9va3MsIHBhdGNoRmV0Y2gsICB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fcalendars%2Froute&page=%2Fapi%2Fcalendars%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fcalendars%2Froute.ts&appDir=%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2Fnextgen%2FNeah-mail&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true!":
|
|
/*!******************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true! ***!
|
|
\******************************************************************************************************/
|
|
/***/ (() => {
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true!":
|
|
/*!******************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true! ***!
|
|
\******************************************************************************************************/
|
|
/***/ (() => {
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "../app-render/after-task-async-storage.external":
|
|
/*!***********************************************************************************!*\
|
|
!*** external "next/dist/server/app-render/after-task-async-storage.external.js" ***!
|
|
\***********************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/server/app-render/after-task-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "../app-render/work-async-storage.external":
|
|
/*!*****************************************************************************!*\
|
|
!*** external "next/dist/server/app-render/work-async-storage.external.js" ***!
|
|
\*****************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./work-unit-async-storage.external":
|
|
/*!**********************************************************************************!*\
|
|
!*** external "next/dist/server/app-render/work-unit-async-storage.external.js" ***!
|
|
\**********************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "@prisma/client":
|
|
/*!*********************************!*\
|
|
!*** external "@prisma/client" ***!
|
|
\*********************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("@prisma/client");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "assert":
|
|
/*!*************************!*\
|
|
!*** external "assert" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("assert");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "buffer":
|
|
/*!*************************!*\
|
|
!*** external "buffer" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("buffer");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "crypto":
|
|
/*!*************************!*\
|
|
!*** external "crypto" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("crypto");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "events":
|
|
/*!*************************!*\
|
|
!*** external "events" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("events");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "http":
|
|
/*!***********************!*\
|
|
!*** external "http" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("http");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "https":
|
|
/*!************************!*\
|
|
!*** external "https" ***!
|
|
\************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("https");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
|
|
/*!*************************************************************************!*\
|
|
!*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
|
|
\*************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
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) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/compiled/next-server/app-route.runtime.dev.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "querystring":
|
|
/*!******************************!*\
|
|
!*** external "querystring" ***!
|
|
\******************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("querystring");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "url":
|
|
/*!**********************!*\
|
|
!*** external "url" ***!
|
|
\**********************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("url");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "util":
|
|
/*!***********************!*\
|
|
!*** external "util" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("util");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "zlib":
|
|
/*!***********************!*\
|
|
!*** external "zlib" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("zlib");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
;
|
|
|
|
// 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","vendor-chunks/jwt-decode","vendor-chunks/zod"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fcalendars%2Froute&page=%2Fapi%2Fcalendars%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fcalendars%2Froute.ts&appDir=%2Fhome%2Falma%2Fnextgen%2FNeah-mail%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2Fnextgen%2FNeah-mail&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
|
|
module.exports = __webpack_exports__;
|
|
|
|
})(); |