243 lines
61 KiB
JavaScript
243 lines
61 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/leantime/tasks/route";
|
|
exports.ids = ["app/api/leantime/tasks/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/leantime/tasks/route.ts":
|
|
/*!*****************************************!*\
|
|
!*** ./app/api/leantime/tasks/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 */ });\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\n\n\nasync function getLeantimeUserId(email) {\n try {\n if (!process.env.LEANTIME_TOKEN) {\n console.error('LEANTIME_TOKEN is not set in environment variables');\n return null;\n }\n console.log('Fetching Leantime users for email:', email);\n console.log('API URL:', process.env.LEANTIME_API_URL);\n console.log('Token length:', process.env.LEANTIME_TOKEN.length);\n const headers = {\n 'Content-Type': 'application/json',\n 'X-API-Key': process.env.LEANTIME_TOKEN\n };\n const response = await fetch(`${process.env.LEANTIME_API_URL}/api/jsonrpc`, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'leantime.rpc.users.getAll',\n id: 1\n })\n });\n const responseText = await response.text();\n console.log('Raw Leantime response:', responseText);\n if (!response.ok) {\n console.error('Failed to fetch Leantime users:', {\n status: response.status,\n statusText: response.statusText,\n headers: Object.fromEntries(response.headers.entries())\n });\n return null;\n }\n let data;\n try {\n data = JSON.parse(responseText);\n } catch (e) {\n console.error('Failed to parse Leantime response:', e);\n return null;\n }\n console.log('Leantime users response:', data);\n if (!data.result || !Array.isArray(data.result)) {\n console.error('Invalid response format from Leantime users API');\n return null;\n }\n const users = data.result;\n const user = users.find((u)=>u.username === email);\n if (user) {\n console.log('Found Leantime user:', {\n id: user.id,\n username: user.username\n });\n } else {\n console.log('No Leantime user found for username:', email);\n }\n return user ? user.id : null;\n } catch (error) {\n console.error('Error fetching Leantime user ID:', error);\n return null;\n }\n}\nasync function GET(request) {\n try {\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?.email) {\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Unauthorized\"\n }, {\n status: 401\n });\n }\n console.log('Fetching tasks for user:', session.user.email);\n const userId = await getLeantimeUserId(session.user.email);\n if (!userId) {\n console.error('User not found in Leantime');\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"User not found in Leantime\"\n }, {\n status: 404\n });\n }\n console.log('Fetching tasks for Leantime user ID:', userId);\n const headers = {\n 'Content-Type': 'application/json',\n 'X-API-Key': process.env.LEANTIME_TOKEN\n };\n const response = await fetch(`${process.env.LEANTIME_API_URL}/api/jsonrpc`, {\n method: 'POST',\n headers,\n body: JSON.stringify({\n jsonrpc: '2.0',\n method: 'leantime.rpc.tickets.getAll',\n params: {\n userId: userId,\n status: \"all\"\n },\n id: 1\n })\n });\n const responseText = await response.text();\n console.log('Tasks API response status:', response.status);\n if (!response.ok) {\n console.error('Failed to fetch tasks from Leantime:', {\n status: response.status,\n statusText: response.statusText\n });\n throw new Error('Failed to fetch tasks from Leantime');\n }\n let data;\n try {\n data = JSON.parse(responseText);\n } catch (e) {\n console.error('Failed to parse tasks response');\n throw new Error('Invalid response format from Leantime');\n }\n if (!data.result || !Array.isArray(data.result)) {\n console.error('Invalid response format from Leantime tasks API');\n throw new Error('Invalid response format from Leantime');\n }\n // Log only the number of tasks and their IDs\n console.log('Received tasks count:', data.result.length);\n console.log('Task IDs:', data.result.map((task)=>task.id));\n const tasks = data.result.filter((task)=>{\n // Log raw task data for debugging\n console.log('Raw task data:', {\n id: task.id,\n headline: task.headline,\n status: task.status,\n type: task.type,\n dependingTicketId: task.dependingTicketId\n });\n // Filter out any task (main or subtask) that has status Done (5)\n if (task.status === 5) {\n console.log(`Filtering out Done task ${task.id} (type: ${task.type || 'main'}, status: ${task.status})`);\n return false;\n }\n // Convert both to strings for comparison to handle any type mismatches\n const taskEditorId = String(task.editorId).trim();\n const currentUserId = String(userId).trim();\n // Only show tasks where the user is the editor\n const isUserEditor = taskEditorId === currentUserId;\n console.log(`Task ${task.id}: status=${task.status}, type=${task.type || 'main'}, parentId=${task.dependingTicketId || 'none'}, isUserEditor=${isUserEditor}`);\n return isUserEditor;\n }).map((task)=>({\n id: task.id.toString(),\n headline: task.headline,\n projectName: task.projectName,\n projectId: task.projectId,\n status: task.status,\n dateToFinish: task.dateToFinish || null,\n milestone: task.type || null,\n details: task.description || null,\n createdOn: task.dateCreated,\n editedOn: task.editedOn || null,\n editorId: task.editorId,\n editorFirstname: task.editorFirstname,\n editorLastname: task.editorLastname,\n type: task.type || null,\n dependingTicketId: task.dependingTicketId || null // Added parent task reference\n }));\n console.log(`Found ${tasks.length} tasks assigned to user ${userId}`);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json(tasks);\n } catch (error) {\n console.error('Error in tasks route:', error);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Failed to fetch tasks\"\n }, {\n status: 500\n });\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QTtRQUNULEdBQ0NaLEdBQUcsQ0FBQyxDQUFDQyxPQUFlO2dCQUNuQjVCLElBQUk0QixLQUFLNUIsRUFBRSxDQUFDd0MsUUFBUTtnQkFDcEJULFVBQVVILEtBQUtHLFFBQVE7Z0JBQ3ZCVSxhQUFhYixLQUFLYSxXQUFXO2dCQUM3QkMsV0FBV2QsS0FBS2MsU0FBUztnQkFDekJ0QyxRQUFRd0IsS0FBS3hCLE1BQU07Z0JBQ25CdUMsY0FBY2YsS0FBS2UsWUFBWSxJQUFJO2dCQUNuQ0MsV0FBV2hCLEtBQUtJLElBQUksSUFBSTtnQkFDeEJhLFNBQVNqQixLQUFLa0IsV0FBVyxJQUFJO2dCQUM3QkMsV0FBV25CLEtBQUtvQixXQUFXO2dCQUMzQkMsVUFBVXJCLEtBQUtxQixRQUFRLElBQUk7Z0JBQzNCYixVQUFVUixLQUFLUSxRQUFRO2dCQUN2QmMsaUJBQWlCdEIsS0FBS3NCLGVBQWU7Z0JBQ3JDQyxnQkFBZ0J2QixLQUFLdUIsY0FBYztnQkFDbkNuQixNQUFNSixLQUFLSSxJQUFJLElBQUk7Z0JBQ25CQyxtQkFBbUJMLEtBQUtLLGlCQUFpQixJQUFJLEtBQU0sOEJBQThCO1lBQ25GO1FBRUY5QyxRQUFRRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUV3QyxNQUFNdEMsTUFBTSxDQUFDLHdCQUF3QixFQUFFaUMsUUFBUTtRQUNwRSxPQUFPN0MscURBQVlBLENBQUM0QyxJQUFJLENBQUNNO0lBQzNCLEVBQUUsT0FBT3pDLE9BQU87UUFDZEQsUUFBUUMsS0FBSyxDQUFDLHlCQUF5QkE7UUFDdkMsT0FBT1QscURBQVlBLENBQUM0QyxJQUFJLENBQ3RCO1lBQUVuQyxPQUFPO1FBQXdCLEdBQ2pDO1lBQUVnQixRQUFRO1FBQUk7SUFFbEI7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9hcHAvYXBpL2xlYW50aW1lL3Rhc2tzL3JvdXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5leHRSZXF1ZXN0LCBOZXh0UmVzcG9uc2UgfSBmcm9tIFwibmV4dC9zZXJ2ZXJcIjtcbmltcG9ydCB7IGdldFNlcnZlclNlc3Npb24gfSBmcm9tIFwibmV4dC1hdXRoL25leHRcIjtcbmltcG9ydCB7IGF1dGhPcHRpb25zIH0gZnJvbSBcIkAvYXBwL2FwaS9hdXRoL1suLi5uZXh0YXV0aF0vcm91dGVcIjtcblxuaW50ZXJmYWNlIFRhc2sge1xuICBpZDogc3RyaW5nO1xuICBoZWFkbGluZTogc3RyaW5nO1xuICBwcm9qZWN0TmFtZTogc3RyaW5nO1xuICBwcm9qZWN0SWQ6IG51bWJlcjtcbiAgc3RhdHVzOiBudW1iZXI7XG4gIGRhdGVUb0ZpbmlzaDogc3RyaW5nIHwgbnVsbDtcbiAgbWlsZXN0b25lOiBzdHJpbmcgfCBudWxsO1xuICBkZXRhaWxzOiBzdHJpbmcgfCBudWxsO1xuICBjcmVhdGVkT246IHN0cmluZztcbiAgZWRpdGVkT246IHN0cmluZyB8IG51bGw7XG4gIGVkaXRvcklkOiBzdHJpbmc7XG4gIGVkaXRvckZpcnN0bmFtZTogc3RyaW5nO1xuICBlZGl0b3JMYXN0bmFtZTogc3RyaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRMZWFudGltZVVzZXJJZChlbWFpbDogc3RyaW5nKTogUHJvbWlzZTxudW1iZXIgfCBudWxsPiB7XG4gIHRyeSB7XG4gICAgaWYgKCFwcm9jZXNzLmVudi5MRUFOVElNRV9UT0tFTikge1xuICAgICAgY29uc29sZS5lcnJvcignTEVBTlRJTUVfVE9LRU4gaXMgbm90IHNldCBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCdGZXRjaGluZyBMZWFudGltZSB1c2VycyBmb3IgZW1haWw6JywgZW1haWwpO1xuICAgIGNvbnNvbGUubG9nKCdBUEkgVVJMOicsIHByb2Nlc3MuZW52LkxFQU5USU1FX0FQSV9VUkwpO1xuICAgIGNvbnNvbGUubG9nKCdUb2tlbiBsZW5ndGg6JywgcHJvY2Vzcy5lbnYuTEVBTlRJTUVfVE9LRU4ubGVuZ3RoKTtcbiAgICBcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdYLUFQSS1LZXknOiBwcm9jZXNzLmVudi5MRUFOVElNRV9UT0tFTlxuICAgIH07XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke3Byb2Nlc3MuZW52LkxFQU5USU1FX0FQSV9VUkx9L2FwaS9qc29ucnBjYCwge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzLFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICAgICAgbWV0aG9kOiAnbGVhbnRpbWUucnBjLnVzZXJzLmdldEFsbCcsXG4gICAgICAgIGlkOiAxXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlVGV4dCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICBjb25zb2xlLmxvZygnUmF3IExlYW50aW1lIHJlc3BvbnNlOicsIHJlc3BvbnNlVGV4dCk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggTGVhbnRpbWUgdXNlcnM6Jywge1xuICAgICAgICBzdGF0dXM6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcbiAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHJlc3BvbnNlLmhlYWRlcnMuZW50cmllcygpKVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgZGF0YTtcbiAgICB0cnkge1xuICAgICAgZGF0YSA9IEpTT04ucGFyc2UocmVzcG9uc2VUZXh0KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcGFyc2UgTGVhbnRpbWUgcmVzcG9uc2U6JywgZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygnTGVhbnRpbWUgdXNlcnMgcmVzcG9uc2U6JywgZGF0YSk7XG5cbiAgICBpZiAoIWRhdGEucmVzdWx0IHx8ICFBcnJheS5pc0FycmF5KGRhdGEucmVzdWx0KSkge1xuICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCByZXNwb25zZSBmb3JtYXQgZnJvbSBMZWFudGltZSB1c2VycyBBUEknKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJzID0gZGF0YS5yZXN1bHQ7XG4gICAgY29uc3QgdXNlciA9IHVzZXJzLmZpbmQoKHU6IGFueSkgPT4gdS51c2VybmFtZSA9PT0gZW1haWwpO1xuICAgIFxuICAgIGlmICh1c2VyKSB7XG4gICAgICBjb25zb2xlLmxvZygnRm91bmQgTGVhbnRpbWUgdXNlcjonLCB7IGlkOiB1c2VyLmlkLCB1c2VybmFtZTogdXNlci51c2VybmFtZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ05vIExlYW50aW1lIHVzZXIgZm91bmQgZm9yIHVzZXJuYW1lOicsIGVtYWlsKTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIHVzZXIgPyB1c2VyLmlkIDogbnVsbDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBMZWFudGltZSB1c2VyIElEOicsIGVycm9yKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gR0VUKHJlcXVlc3Q6IE5leHRSZXF1ZXN0KSB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IGdldFNlcnZlclNlc3Npb24oYXV0aE9wdGlvbnMpO1xuICAgIGlmICghc2Vzc2lvbj8udXNlcj8uZW1haWwpIHtcbiAgICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbih7IGVycm9yOiBcIlVuYXV0aG9yaXplZFwiIH0sIHsgc3RhdHVzOiA0MDEgfSk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ0ZldGNoaW5nIHRhc2tzIGZvciB1c2VyOicsIHNlc3Npb24udXNlci5lbWFpbCk7XG4gICAgY29uc3QgdXNlcklkID0gYXdhaXQgZ2V0TGVhbnRpbWVVc2VySWQoc2Vzc2lvbi51c2VyLmVtYWlsKTtcbiAgICBcbiAgICBpZiAoIXVzZXJJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignVXNlciBub3QgZm91bmQgaW4gTGVhbnRpbWUnKTtcbiAgICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbih7IGVycm9yOiBcIlVzZXIgbm90IGZvdW5kIGluIExlYW50aW1lXCIgfSwgeyBzdGF0dXM6IDQwNCB9KTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygnRmV0Y2hpbmcgdGFza3MgZm9yIExlYW50aW1lIHVzZXIgSUQ6JywgdXNlcklkKTtcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICdYLUFQSS1LZXknOiBwcm9jZXNzLmVudi5MRUFOVElNRV9UT0tFTiFcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtwcm9jZXNzLmVudi5MRUFOVElNRV9BUElfVVJMfS9hcGkvanNvbnJwY2AsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgICAgIG1ldGhvZDogJ2xlYW50aW1lLnJwYy50aWNrZXRzLmdldEFsbCcsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIHVzZXJJZDogdXNlcklkLFxuICAgICAgICAgIHN0YXR1czogXCJhbGxcIlxuICAgICAgICB9LFxuICAgICAgICBpZDogMVxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZVRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgY29uc29sZS5sb2coJ1Rhc2tzIEFQSSByZXNwb25zZSBzdGF0dXM6JywgcmVzcG9uc2Uuc3RhdHVzKTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCB0YXNrcyBmcm9tIExlYW50aW1lOicsIHtcbiAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IHJlc3BvbnNlLnN0YXR1c1RleHRcbiAgICAgIH0pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggdGFza3MgZnJvbSBMZWFudGltZScpO1xuICAgIH1cblxuICAgIGxldCBkYXRhO1xuICAgIHRyeSB7XG4gICAgICBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZVRleHQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSB0YXNrcyByZXNwb25zZScpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlc3BvbnNlIGZvcm1hdCBmcm9tIExlYW50aW1lJyk7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRhLnJlc3VsdCB8fCAhQXJyYXkuaXNBcnJheShkYXRhLnJlc3VsdCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gTGVhbnRpbWUgdGFza3MgQVBJJyk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gTGVhbnRpbWUnKTtcbiAgICB9XG5cbiAgICAvLyBMb2cgb25seSB0aGUgbnVtYmVyIG9mIHRhc2tzIGFuZCB0aGVpciBJRHNcbiAgICBjb25zb2xlLmxvZygnUmVjZWl2ZWQgdGFza3MgY291bnQ6JywgZGF0YS5yZXN1bHQubGVuZ3RoKTtcbiAgICBjb25zb2xlLmxvZygnVGFzayBJRHM6JywgZGF0YS5yZXN1bHQubWFwKCh0YXNrOiBhbnkpID0+IHRhc2suaWQpKTtcblxuICAgIGNvbnN0IHRhc2tzID0gZGF0YS5yZXN1bHRcbiAgICAgIC5maWx0ZXIoKHRhc2s6IGFueSkgPT4ge1xuICAgICAgICAvLyBMb2cgcmF3IHRhc2sgZGF0YSBmb3IgZGVidWdnaW5nXG4gICAgICAgIGNvbnNvbGUubG9nKCdSYXcgdGFzayBkYXRhOicsIHtcbiAgICAgICAgICBpZDogdGFzay5pZCxcbiAgICAgICAgICBoZWFkbGluZTogdGFzay5oZWFkbGluZSxcbiAgICAgICAgICBzdGF0dXM6IHRhc2suc3RhdHVzLFxuICAgICAgICAgIHR5cGU6IHRhc2sudHlwZSxcbiAgICAgICAgICBkZXBlbmRpbmdUaWNrZXRJZDogdGFzay5kZXBlbmRpbmdUaWNrZXRJZFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBGaWx0ZXIgb3V0IGFueSB0YXNrIChtYWluIG9yIHN1YnRhc2spIHRoYXQgaGFzIHN0YXR1cyBEb25lICg1KVxuICAgICAgICBpZiAodGFzay5zdGF0dXMgPT09IDUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgRmlsdGVyaW5nIG91dCBEb25lIHRhc2sgJHt0YXNrLmlkfSAodHlwZTogJHt0YXNrLnR5cGUgfHwgJ21haW4nfSwgc3RhdHVzOiAke3Rhc2suc3RhdHVzfSlgKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IGJvdGggdG8gc3RyaW5ncyBmb3IgY29tcGFyaXNvbiB0byBoYW5kbGUgYW55IHR5cGUgbWlzbWF0Y2hlc1xuICAgICAgICBjb25zdCB0YXNrRWRpdG9ySWQgPSBTdHJpbmcodGFzay5lZGl0b3JJZCkudHJpbSgpO1xuICAgICAgICBjb25zdCBjdXJyZW50VXNlcklkID0gU3RyaW5nKHVzZXJJZCkudHJpbSgpO1xuICAgICAgICBcbiAgICAgICAgLy8gT25seSBzaG93IHRhc2tzIHdoZXJlIHRoZSB1c2VyIGlzIHRoZSBlZGl0b3JcbiAgICAgICAgY29uc3QgaXNVc2VyRWRpdG9yID0gdGFza0VkaXRvcklkID09PSBjdXJyZW50VXNlcklkO1xuICAgICAgICBjb25zb2xlLmxvZyhgVGFzayAke3Rhc2suaWR9OiBzdGF0dXM9JHt0YXNrLnN0YXR1c30sIHR5cGU9JHt0YXNrLnR5cGUgfHwgJ21haW4nfSwgcGFyZW50SWQ9JHt0YXNrLmRlcGVuZGluZ1RpY2tldElkIHx8ICdub25lJ30sIGlzVXNlckVkaXRvcj0ke2lzVXNlckVkaXRvcn1gKTtcbiAgICAgICAgcmV0dXJuIGlzVXNlckVkaXRvcjtcbiAgICAgIH0pXG4gICAgICAubWFwKCh0YXNrOiBhbnkpID0+ICh7XG4gICAgICAgIGlkOiB0YXNrLmlkLnRvU3RyaW5nKCksXG4gICAgICAgIGhlYWRsaW5lOiB0YXNrLmhlYWRsaW5lLFxuICAgICAgICBwcm9qZWN0TmFtZTogdGFzay5wcm9qZWN0TmFtZSxcbiAgICAgICAgcHJvamVjdElkOiB0YXNrLnByb2plY3RJZCxcbiAgICAgICAgc3RhdHVzOiB0YXNrLnN0YXR1cyxcbiAgICAgICAgZGF0ZVRvRmluaXNoOiB0YXNrLmRhdGVUb0ZpbmlzaCB8fCBudWxsLFxuICAgICAgICBtaWxlc3RvbmU6IHRhc2sudHlwZSB8fCBudWxsLFxuICAgICAgICBkZXRhaWxzOiB0YXNrLmRlc2NyaXB0aW9uIHx8IG51bGwsXG4gICAgICAgIGNyZWF0ZWRPbjogdGFzay5kYXRlQ3JlYXRlZCxcbiAgICAgICAgZWRpdGVkT246IHRhc2suZWRpdGVkT24gfHwgbnVsbCxcbiAgICAgICAgZWRpdG9ySWQ6IHRhc2suZWRpdG9ySWQsXG4gICAgICAgIGVkaXRvckZpcnN0bmFtZTogdGFzay5lZGl0b3JGaXJzdG5hbWUsXG4gICAgICAgIGVkaXRvckxhc3RuYW1lOiB0YXNrLmVkaXRvckxhc3RuYW1lLFxuICAgICAgICB0eXBlOiB0YXNrLnR5cGUgfHwgbnVsbCwgIC8vIEFkZGVkIHR5cGUgZmllbGQgdG8gaWRlbnRpZnkgc3VidGFza3NcbiAgICAgICAgZGVwZW5kaW5nVGlja2V0SWQ6IHRhc2suZGVwZW5kaW5nVGlja2V0SWQgfHwgbnVsbCAgLy8gQWRkZWQgcGFyZW50IHRhc2sgcmVmZXJlbmNlXG4gICAgICB9KSk7XG5cbiAgICBjb25zb2xlLmxvZyhgRm91bmQgJHt0YXNrcy5sZW5ndGh9IHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIgJHt1c2VySWR9YCk7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKHRhc2tzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiB0YXNrcyByb3V0ZTonLCBlcnJvcik7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKFxuICAgICAgeyBlcnJvcjogXCJGYWlsZWQgdG8gZmV0Y2ggdGFza3NcIiB9LFxuICAgICAgeyBzdGF0dXM6IDUwMCB9XG4gICAgKTtcbiAgfVxufSAiXSwibmFtZXMiOlsiTmV4dFJlc3BvbnNlIiwiZ2V0U2VydmVyU2Vzc2lvbiIsImF1dGhPcHRpb25zIiwiZ2V0TGVhbnRpbWVVc2VySWQiLCJlbWFpbCIsInByb2Nlc3MiLCJlbnYiLCJMRUFOVElNRV9UT0tFTiIsImNvbnNvbGUiLCJlcnJvciIsImxvZyIsIkxFQU5USU1FX0FQSV9VUkwiLCJsZW5ndGgiLCJoZWFkZXJzIiwicmVzcG9uc2UiLCJmZXRjaCIsIm1ldGhvZCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwianNvbnJwYyIsImlkIiwicmVzcG9uc2VUZXh0IiwidGV4dCIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiZW50cmllcyIsImRhdGEiLCJwYXJzZSIsImUiLCJyZXN1bHQiLCJBcnJheSIsImlzQXJyYXkiLCJ1c2VycyIsInVzZXIiLCJmaW5kIiwidSIsInVzZXJuYW1lIiwiR0VUIiwicmVxdWVzdCIsInNlc3Npb24iLCJqc29uIiwidXNlcklkIiwicGFyYW1zIiwiRXJyb3IiLCJtYXAiLCJ0YXNrIiwidGFza3MiLCJmaWx0ZXIiLCJoZWFkbGluZSIsInR5cGUiLCJkZXBlbmRpbmdUaWNrZXRJZCIsInRhc2tFZGl0b3JJZCIsIlN0cmluZyIsImVkaXRvcklkIiwidHJpbSIsImN1cnJlbnRVc2VySWQiLCJpc1VzZXJFZGl0b3IiLCJ0b1N0cmluZyIsInByb2plY3ROYW1lIiwicHJvamVjdElkIiwiZGF0ZVRvRmluaXNoIiwibWlsZXN0b25lIiwiZGV0YWlscyIsImRlc2NyaXB0aW9uIiwiY3JlYXRlZE9uIiwiZGF0ZUNyZWF0ZWQiLCJlZGl0ZWRPbiIsImVkaXRvckZpcnN0bmFtZSIsImVkaXRvckxhc3RuYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/api/leantime/tasks/route.ts\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fleantime%2Ftasks%2Froute&page=%2Fapi%2Fleantime%2Ftasks%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fleantime%2Ftasks%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%2Fleantime%2Ftasks%2Froute&page=%2Fapi%2Fleantime%2Ftasks%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fleantime%2Ftasks%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_leantime_tasks_route_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app/api/leantime/tasks/route.ts */ \"(rsc)/./app/api/leantime/tasks/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/leantime/tasks/route\",\n pathname: \"/api/leantime/tasks\",\n filename: \"route\",\n bundlePath: \"app/api/leantime/tasks/route\"\n },\n resolvedPagePath: \"/home/alma/nextgen/Neah-mail/app/api/leantime/tasks/route.ts\",\n nextConfigOutput,\n userland: _home_alma_nextgen_Neah_mail_app_api_leantime_tasks_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/bmFtZT1hcHAlMkZhcGklMkZsZWFudGltZSUyRnRhc2tzJTJGcm91dGUmcGFnZT0lMkZhcGklMkZsZWFudGltZSUyRnRhc2tzJTJGcm91dGUmYXBwUGF0aHM9JnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGYXBpJTJGbGVhbnRpbWUlMkZ0YXNrcyUyRnJvdXRlLnRzJmFwcERpcj0lMkZob21lJTJGYWxtYSUyRm5leHRnZW4lMkZOZWFoLW1haWwlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRmhvbWUlMkZhbG1hJTJGbmV4dGdlbiUyRk5lYWgtbWFpbCZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBK0Y7QUFDdkM7QUFDcUI7QUFDWTtBQUN6RjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IseUdBQW1CO0FBQzNDO0FBQ0EsY0FBYyxrRUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsWUFBWTtBQUNaLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxRQUFRLHNEQUFzRDtBQUM5RDtBQUNBLFdBQVcsNEVBQVc7QUFDdEI7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUMwRjs7QUFFMUYiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBSb3V0ZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcm91dGUvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBwYXRjaEZldGNoIGFzIF9wYXRjaEZldGNoIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3BhdGNoLWZldGNoXCI7XG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9hcHAvYXBpL2xlYW50aW1lL3Rhc2tzL3JvdXRlLnRzXCI7XG4vLyBXZSBpbmplY3QgdGhlIG5leHRDb25maWdPdXRwdXQgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IG5leHRDb25maWdPdXRwdXQgPSBcIlwiXG5jb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBSb3V0ZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUk9VVEUsXG4gICAgICAgIHBhZ2U6IFwiL2FwaS9sZWFudGltZS90YXNrcy9yb3V0ZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvYXBpL2xlYW50aW1lL3Rhc2tzXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcInJvdXRlXCIsXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiYXBwL2FwaS9sZWFudGltZS90YXNrcy9yb3V0ZVwiXG4gICAgfSxcbiAgICByZXNvbHZlZFBhZ2VQYXRoOiBcIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvYXBwL2FwaS9sZWFudGltZS90YXNrcy9yb3V0ZS50c1wiLFxuICAgIG5leHRDb25maWdPdXRwdXQsXG4gICAgdXNlcmxhbmRcbn0pO1xuLy8gUHVsbCBvdXQgdGhlIGV4cG9ydHMgdGhhdCB3ZSBuZWVkIHRvIGV4cG9zZSBmcm9tIHRoZSBtb2R1bGUuIFRoaXMgc2hvdWxkXG4vLyBiZSBlbGltaW5hdGVkIHdoZW4gd2UndmUgbW92ZWQgdGhlIG90aGVyIHJvdXRlcyB0byB0aGUgbmV3IGZvcm1hdC4gVGhlc2Vcbi8vIGFyZSB1c2VkIHRvIGhvb2sgaW50byB0aGUgcm91dGUuXG5jb25zdCB7IHdvcmtBc3luY1N0b3JhZ2UsIHdvcmtVbml0QXN5bmNTdG9yYWdlLCBzZXJ2ZXJIb29rcyB9ID0gcm91dGVNb2R1bGU7XG5mdW5jdGlvbiBwYXRjaEZldGNoKCkge1xuICAgIHJldHVybiBfcGF0Y2hGZXRjaCh7XG4gICAgICAgIHdvcmtBc3luY1N0b3JhZ2UsXG4gICAgICAgIHdvcmtVbml0QXN5bmNTdG9yYWdlXG4gICAgfSk7XG59XG5leHBvcnQgeyByb3V0ZU1vZHVsZSwgd29ya0FzeW5jU3RvcmFnZSwgd29ya1VuaXRBc3luY1N0b3JhZ2UsIHNlcnZlckhvb2tzLCBwYXRjaEZldGNoLCAgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fleantime%2Ftasks%2Froute&page=%2Fapi%2Fleantime%2Ftasks%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fleantime%2Ftasks%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");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "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"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fleantime%2Ftasks%2Froute&page=%2Fapi%2Fleantime%2Ftasks%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fleantime%2Ftasks%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__;
|
|
|
|
})(); |