206 lines
54 KiB
JavaScript
206 lines
54 KiB
JavaScript
"use strict";
|
|
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
(() => {
|
|
var exports = {};
|
|
exports.id = "app/api/leantime/tasks/route";
|
|
exports.ids = ["app/api/leantime/tasks/route"];
|
|
exports.modules = {
|
|
|
|
/***/ "../../client/components/action-async-storage.external":
|
|
/*!*******************************************************************************!*\
|
|
!*** external "next/dist/client/components/action-async-storage.external.js" ***!
|
|
\*******************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("next/dist/client/components/action-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "../../client/components/request-async-storage.external":
|
|
/*!********************************************************************************!*\
|
|
!*** external "next/dist/client/components/request-async-storage.external.js" ***!
|
|
\********************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("next/dist/client/components/request-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "../../client/components/static-generation-async-storage.external":
|
|
/*!******************************************************************************************!*\
|
|
!*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
|
|
\******************************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
|
|
/*!*************************************************************************!*\
|
|
!*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
|
|
\*************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "next/dist/compiled/next-server/app-route.runtime.dev.js":
|
|
/*!**************************************************************************!*\
|
|
!*** external "next/dist/compiled/next-server/app-route.runtime.dev.js" ***!
|
|
\**************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("next/dist/compiled/next-server/app-route.runtime.dev.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "assert":
|
|
/*!*************************!*\
|
|
!*** external "assert" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("assert");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "buffer":
|
|
/*!*************************!*\
|
|
!*** external "buffer" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("buffer");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "crypto":
|
|
/*!*************************!*\
|
|
!*** external "crypto" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("crypto");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "events":
|
|
/*!*************************!*\
|
|
!*** external "events" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("events");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "http":
|
|
/*!***********************!*\
|
|
!*** external "http" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("http");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "https":
|
|
/*!************************!*\
|
|
!*** external "https" ***!
|
|
\************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("https");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "querystring":
|
|
/*!******************************!*\
|
|
!*** external "querystring" ***!
|
|
\******************************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("querystring");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "url":
|
|
/*!**********************!*\
|
|
!*** external "url" ***!
|
|
\**********************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("url");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "util":
|
|
/*!***********************!*\
|
|
!*** external "util" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("util");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "zlib":
|
|
/*!***********************!*\
|
|
!*** external "zlib" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
module.exports = require("zlib");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2Fleantime%2Ftasks%2Froute&page=%2Fapi%2Fleantime%2Ftasks%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fleantime%2Ftasks%2Froute.ts&appDir=%2Fhome%2Falma%2FNeahFront9%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2FNeahFront9&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
|
|
/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2Fleantime%2Ftasks%2Froute&page=%2Fapi%2Fleantime%2Ftasks%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fleantime%2Ftasks%2Froute.ts&appDir=%2Fhome%2Falma%2FNeahFront9%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2FNeahFront9&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
|
|
\**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ requestAsyncStorage: () => (/* binding */ requestAsyncStorage),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ serverHooks: () => (/* binding */ serverHooks),\n/* harmony export */ staticGenerationAsyncStorage: () => (/* binding */ staticGenerationAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-route/module.compiled */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-route/module.compiled.js\");\n/* harmony import */ var next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/lib/patch-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\");\n/* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _home_alma_NeahFront9_app_api_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_future_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppRouteRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_ROUTE,\n page: \"/api/leantime/tasks/route\",\n pathname: \"/api/leantime/tasks\",\n filename: \"route\",\n bundlePath: \"app/api/leantime/tasks/route\"\n },\n resolvedPagePath: \"/home/alma/NeahFront9/app/api/leantime/tasks/route.ts\",\n nextConfigOutput,\n userland: _home_alma_NeahFront9_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 { requestAsyncStorage, staticGenerationAsyncStorage, serverHooks } = routeModule;\nconst originalPathname = \"/api/leantime/tasks/route\";\nfunction patchFetch() {\n return (0,next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__.patchFetch)({\n serverHooks,\n staticGenerationAsyncStorage\n });\n}\n\n\n//# sourceMappingURL=app-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZhcGklMkZsZWFudGltZSUyRnRhc2tzJTJGcm91dGUmcGFnZT0lMkZhcGklMkZsZWFudGltZSUyRnRhc2tzJTJGcm91dGUmYXBwUGF0aHM9JnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGYXBpJTJGbGVhbnRpbWUlMkZ0YXNrcyUyRnJvdXRlLnRzJmFwcERpcj0lMkZob21lJTJGYWxtYSUyRk5lYWhGcm9udDklMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRmhvbWUlMkZhbG1hJTJGTmVhaEZyb250OSZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQXNHO0FBQ3ZDO0FBQ2M7QUFDSztBQUNsRjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0hBQW1CO0FBQzNDO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsWUFBWTtBQUNaLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxRQUFRLGlFQUFpRTtBQUN6RTtBQUNBO0FBQ0EsV0FBVyw0RUFBVztBQUN0QjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ3VIOztBQUV2SCIsInNvdXJjZXMiOlsid2VicGFjazovL25lYWgvPzUwYzgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwUm91dGVSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBwYXRjaEZldGNoIGFzIF9wYXRjaEZldGNoIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3BhdGNoLWZldGNoXCI7XG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiL2hvbWUvYWxtYS9OZWFoRnJvbnQ5L2FwcC9hcGkvbGVhbnRpbWUvdGFza3Mvcm91dGUudHNcIjtcbi8vIFdlIGluamVjdCB0aGUgbmV4dENvbmZpZ091dHB1dCBoZXJlIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRoZSByb3V0ZVxuLy8gbW9kdWxlLlxuY29uc3QgbmV4dENvbmZpZ091dHB1dCA9IFwiXCJcbmNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IEFwcFJvdXRlUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLkFQUF9ST1VURSxcbiAgICAgICAgcGFnZTogXCIvYXBpL2xlYW50aW1lL3Rhc2tzL3JvdXRlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9hcGkvbGVhbnRpbWUvdGFza3NcIixcbiAgICAgICAgZmlsZW5hbWU6IFwicm91dGVcIixcbiAgICAgICAgYnVuZGxlUGF0aDogXCJhcHAvYXBpL2xlYW50aW1lL3Rhc2tzL3JvdXRlXCJcbiAgICB9LFxuICAgIHJlc29sdmVkUGFnZVBhdGg6IFwiL2hvbWUvYWxtYS9OZWFoRnJvbnQ5L2FwcC9hcGkvbGVhbnRpbWUvdGFza3Mvcm91dGUudHNcIixcbiAgICBuZXh0Q29uZmlnT3V0cHV0LFxuICAgIHVzZXJsYW5kXG59KTtcbi8vIFB1bGwgb3V0IHRoZSBleHBvcnRzIHRoYXQgd2UgbmVlZCB0byBleHBvc2UgZnJvbSB0aGUgbW9kdWxlLiBUaGlzIHNob3VsZFxuLy8gYmUgZWxpbWluYXRlZCB3aGVuIHdlJ3ZlIG1vdmVkIHRoZSBvdGhlciByb3V0ZXMgdG8gdGhlIG5ldyBmb3JtYXQuIFRoZXNlXG4vLyBhcmUgdXNlZCB0byBob29rIGludG8gdGhlIHJvdXRlLlxuY29uc3QgeyByZXF1ZXN0QXN5bmNTdG9yYWdlLCBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlLCBzZXJ2ZXJIb29rcyB9ID0gcm91dGVNb2R1bGU7XG5jb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvYXBpL2xlYW50aW1lL3Rhc2tzL3JvdXRlXCI7XG5mdW5jdGlvbiBwYXRjaEZldGNoKCkge1xuICAgIHJldHVybiBfcGF0Y2hGZXRjaCh7XG4gICAgICAgIHNlcnZlckhvb2tzLFxuICAgICAgICBzdGF0aWNHZW5lcmF0aW9uQXN5bmNTdG9yYWdlXG4gICAgfSk7XG59XG5leHBvcnQgeyByb3V0ZU1vZHVsZSwgcmVxdWVzdEFzeW5jU3RvcmFnZSwgc3RhdGljR2VuZXJhdGlvbkFzeW5jU3RvcmFnZSwgc2VydmVySG9va3MsIG9yaWdpbmFsUGF0aG5hbWUsIHBhdGNoRmV0Y2gsICB9O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcm91dGUuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.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%2FNeahFront9%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2FNeahFront9&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./app/api/auth/[...nextauth]/route.ts":
|
|
/*!*********************************************!*\
|
|
!*** ./app/api/auth/[...nextauth]/route.ts ***!
|
|
\*********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GET: () => (/* binding */ handler),\n/* harmony export */ POST: () => (/* binding */ handler),\n/* harmony export */ authOptions: () => (/* binding */ authOptions)\n/* harmony export */ });\n/* harmony import */ var next_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next-auth */ \"(rsc)/./node_modules/next-auth/index.js\");\n/* harmony import */ var next_auth__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_auth__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_auth_providers_keycloak__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next-auth/providers/keycloak */ \"(rsc)/./node_modules/next-auth/providers/keycloak.js\");\n\n\nfunction getRequiredEnvVar(name) {\n const value = process.env[name];\n if (!value) {\n throw new Error(`Missing required environment variable: ${name}`);\n }\n return value;\n}\nconst authOptions = {\n providers: [\n (0,next_auth_providers_keycloak__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n clientId: getRequiredEnvVar(\"KEYCLOAK_CLIENT_ID\"),\n clientSecret: getRequiredEnvVar(\"KEYCLOAK_CLIENT_SECRET\"),\n issuer: getRequiredEnvVar(\"KEYCLOAK_ISSUER\"),\n profile (profile) {\n return {\n id: profile.sub,\n name: profile.name ?? profile.preferred_username,\n email: profile.email,\n first_name: profile.given_name ?? \"\",\n last_name: profile.family_name ?? \"\",\n username: profile.preferred_username ?? profile.email?.split(\"@\")[0] ?? \"\",\n role: profile.groups ?? []\n };\n }\n })\n ],\n session: {\n strategy: \"jwt\",\n maxAge: 30 * 24 * 60 * 60\n },\n callbacks: {\n async jwt ({ token, account, profile }) {\n if (account && profile) {\n token.accessToken = account.access_token;\n token.refreshToken = account.refresh_token;\n token.accessTokenExpires = account.expires_at * 1000;\n token.role = profile.groups ?? [];\n token.username = profile.preferred_username ?? profile.email?.split(\"@\")[0] ?? \"\";\n token.first_name = profile.given_name ?? \"\";\n token.last_name = profile.family_name ?? \"\";\n }\n // Return previous token if not expired\n if (Date.now() < token.accessTokenExpires) {\n return token;\n }\n try {\n const clientId = getRequiredEnvVar(\"KEYCLOAK_CLIENT_ID\");\n const clientSecret = getRequiredEnvVar(\"KEYCLOAK_CLIENT_SECRET\");\n const response = await fetch(`${process.env.KEYCLOAK_BASE_URL}/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/token`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n },\n body: new URLSearchParams({\n grant_type: \"refresh_token\",\n client_id: clientId,\n client_secret: clientSecret,\n refresh_token: token.refreshToken\n })\n });\n const tokens = await response.json();\n if (!response.ok) {\n throw new Error(\"RefreshAccessTokenError\");\n }\n return {\n ...token,\n accessToken: tokens.access_token,\n refreshToken: tokens.refresh_token ?? token.refreshToken,\n accessTokenExpires: Date.now() + tokens.expires_in * 1000\n };\n } catch (error) {\n return {\n ...token,\n error: \"RefreshAccessTokenError\"\n };\n }\n },\n async session ({ session, token }) {\n if (token.error) {\n throw new Error(\"RefreshAccessTokenError\");\n }\n session.accessToken = token.accessToken;\n session.user = {\n ...session.user,\n id: token.sub,\n first_name: token.first_name ?? \"\",\n last_name: token.last_name ?? \"\",\n username: token.username ?? \"\",\n role: token.role ?? []\n };\n return session;\n }\n },\n pages: {\n signIn: \"/signin\",\n error: \"/signin\"\n },\n debug: \"development\" === \"development\"\n};\nconst handler = next_auth__WEBPACK_IMPORTED_MODULE_0___default()(authOptions);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvYXBpL2F1dGgvWy4uLm5leHRhdXRoXS9yb3V0ZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBc0Q7QUFDTTtBQTRCNUQsU0FBU0Usa0JBQWtCQyxJQUFZO0lBQ3JDLE1BQU1DLFFBQVFDLFFBQVFDLEdBQUcsQ0FBQ0gsS0FBSztJQUMvQixJQUFJLENBQUNDLE9BQU87UUFDVixNQUFNLElBQUlHLE1BQU0sQ0FBQyx1Q0FBdUMsRUFBRUosS0FBSyxDQUFDO0lBQ2xFO0lBQ0EsT0FBT0M7QUFDVDtBQUVPLE1BQU1JLGNBQStCO0lBQzFDQyxXQUFXO1FBQ1RSLHdFQUFnQkEsQ0FBQztZQUNmUyxVQUFVUixrQkFBa0I7WUFDNUJTLGNBQWNULGtCQUFrQjtZQUNoQ1UsUUFBUVYsa0JBQWtCO1lBQzFCVyxTQUFRQSxPQUFPO2dCQUNiLE9BQU87b0JBQ0xDLElBQUlELFFBQVFFLEdBQUc7b0JBQ2ZaLE1BQU1VLFFBQVFWLElBQUksSUFBSVUsUUFBUUcsa0JBQWtCO29CQUNoREMsT0FBT0osUUFBUUksS0FBSztvQkFDcEJDLFlBQVlMLFFBQVFNLFVBQVUsSUFBSTtvQkFDbENDLFdBQVdQLFFBQVFRLFdBQVcsSUFBSTtvQkFDbENDLFVBQVVULFFBQVFHLGtCQUFrQixJQUFJSCxRQUFRSSxLQUFLLEVBQUVNLE1BQU0sSUFBSSxDQUFDLEVBQUUsSUFBSTtvQkFDeEVDLE1BQU1YLFFBQVFZLE1BQU0sSUFBSSxFQUFFO2dCQUM1QjtZQUNGO1FBQ0Y7S0FDRDtJQUNEQyxTQUFTO1FBQ1BDLFVBQVU7UUFDVkMsUUFBUSxLQUFLLEtBQUssS0FBSztJQUN6QjtJQUNBQyxXQUFXO1FBQ1QsTUFBTUMsS0FBSSxFQUFFQyxLQUFLLEVBQUVDLE9BQU8sRUFBRW5CLE9BQU8sRUFBRTtZQUNuQyxJQUFJbUIsV0FBV25CLFNBQVM7Z0JBQ3RCa0IsTUFBTUUsV0FBVyxHQUFHRCxRQUFRRSxZQUFZO2dCQUN4Q0gsTUFBTUksWUFBWSxHQUFHSCxRQUFRSSxhQUFhO2dCQUMxQ0wsTUFBTU0sa0JBQWtCLEdBQUdMLFFBQVFNLFVBQVUsR0FBSTtnQkFDakRQLE1BQU1QLElBQUksR0FBRyxRQUFpQkMsTUFBTSxJQUFJLEVBQUU7Z0JBQzFDTSxNQUFNVCxRQUFRLEdBQUcsUUFBaUJOLGtCQUFrQixJQUFJSCxRQUFRSSxLQUFLLEVBQUVNLE1BQU0sSUFBSSxDQUFDLEVBQUUsSUFBSTtnQkFDeEZRLE1BQU1iLFVBQVUsR0FBRyxRQUFpQkMsVUFBVSxJQUFJO2dCQUNsRFksTUFBTVgsU0FBUyxHQUFHLFFBQWlCQyxXQUFXLElBQUk7WUFDcEQ7WUFFQSx1Q0FBdUM7WUFDdkMsSUFBSWtCLEtBQUtDLEdBQUcsS0FBTVQsTUFBTU0sa0JBQWtCLEVBQWE7Z0JBQ3JELE9BQU9OO1lBQ1Q7WUFFQSxJQUFJO2dCQUNGLE1BQU1yQixXQUFXUixrQkFBa0I7Z0JBQ25DLE1BQU1TLGVBQWVULGtCQUFrQjtnQkFFdkMsTUFBTXVDLFdBQVcsTUFBTUMsTUFDckIsQ0FBQyxFQUFFckMsUUFBUUMsR0FBRyxDQUFDcUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFdEMsUUFBUUMsR0FBRyxDQUFDc0MsY0FBYyxDQUFDLDhCQUE4QixDQUFDLEVBQ3JHO29CQUNFQyxRQUFRO29CQUNSQyxTQUFTO3dCQUNQLGdCQUFnQjtvQkFDbEI7b0JBQ0FDLE1BQU0sSUFBSUMsZ0JBQWdCO3dCQUN4QkMsWUFBWTt3QkFDWkMsV0FBV3hDO3dCQUNYeUMsZUFBZXhDO3dCQUNmeUIsZUFBZUwsTUFBTUksWUFBWTtvQkFDbkM7Z0JBQ0Y7Z0JBR0YsTUFBTWlCLFNBQVMsTUFBTVgsU0FBU1ksSUFBSTtnQkFFbEMsSUFBSSxDQUFDWixTQUFTYSxFQUFFLEVBQUU7b0JBQ2hCLE1BQU0sSUFBSS9DLE1BQU07Z0JBQ2xCO2dCQUVBLE9BQU87b0JBQ0wsR0FBR3dCLEtBQUs7b0JBQ1JFLGFBQWFtQixPQUFPbEIsWUFBWTtvQkFDaENDLGNBQWNpQixPQUFPaEIsYUFBYSxJQUFJTCxNQUFNSSxZQUFZO29CQUN4REUsb0JBQW9CRSxLQUFLQyxHQUFHLEtBQUtZLE9BQU9HLFVBQVUsR0FBRztnQkFDdkQ7WUFDRixFQUFFLE9BQU9DLE9BQU87Z0JBQ2QsT0FBTztvQkFDTCxHQUFHekIsS0FBSztvQkFDUnlCLE9BQU87Z0JBQ1Q7WUFDRjtRQUNGO1FBQ0EsTUFBTTlCLFNBQVEsRUFBRUEsT0FBTyxFQUFFSyxLQUFLLEVBQUU7WUFDOUIsSUFBSUEsTUFBTXlCLEtBQUssRUFBRTtnQkFDZixNQUFNLElBQUlqRCxNQUFNO1lBQ2xCO1lBRUFtQixRQUFRTyxXQUFXLEdBQUdGLE1BQU1FLFdBQVc7WUFDdkNQLFFBQVErQixJQUFJLEdBQUc7Z0JBQ2IsR0FBRy9CLFFBQVErQixJQUFJO2dCQUNmM0MsSUFBSWlCLE1BQU1oQixHQUFHO2dCQUNiRyxZQUFZYSxNQUFNYixVQUFVLElBQUk7Z0JBQ2hDRSxXQUFXVyxNQUFNWCxTQUFTLElBQUk7Z0JBQzlCRSxVQUFVUyxNQUFNVCxRQUFRLElBQUk7Z0JBQzVCRSxNQUFNTyxNQUFNUCxJQUFJLElBQUksRUFBRTtZQUN4QjtZQUVBLE9BQU9FO1FBQ1Q7SUFDRjtJQUNBZ0MsT0FBTztRQUNMQyxRQUFRO1FBQ1JILE9BQU87SUFDVDtJQUNBSSxPQUFPdkQsa0JBQXlCO0FBQ2xDLEVBQUU7QUFFRixNQUFNd0QsVUFBVTdELGdEQUFRQSxDQUFDUTtBQUNrQiIsInNvdXJjZXMiOlsid2VicGFjazovL25lYWgvLi9hcHAvYXBpL2F1dGgvWy4uLm5leHRhdXRoXS9yb3V0ZS50cz9jOGE0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOZXh0QXV0aCwgeyBOZXh0QXV0aE9wdGlvbnMgfSBmcm9tIFwibmV4dC1hdXRoXCI7XG5pbXBvcnQgS2V5Y2xvYWtQcm92aWRlciBmcm9tIFwibmV4dC1hdXRoL3Byb3ZpZGVycy9rZXljbG9ha1wiO1xuXG5kZWNsYXJlIG1vZHVsZSBcIm5leHQtYXV0aFwiIHtcbiAgaW50ZXJmYWNlIFNlc3Npb24ge1xuICAgIHVzZXI6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIGltYWdlPzogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgICBsYXN0X25hbWU6IHN0cmluZztcbiAgICAgIHJvbGU6IHN0cmluZ1tdO1xuICAgIH07XG4gICAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgfVxuXG4gIGludGVyZmFjZSBKV1Qge1xuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gICAgcmVmcmVzaFRva2VuOiBzdHJpbmc7XG4gICAgYWNjZXNzVG9rZW5FeHBpcmVzOiBudW1iZXI7XG4gICAgcm9sZTogc3RyaW5nW107XG4gICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICBmaXJzdF9uYW1lOiBzdHJpbmc7XG4gICAgbGFzdF9uYW1lOiBzdHJpbmc7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0UmVxdWlyZWRFbnZWYXIobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdmFsdWUgPSBwcm9jZXNzLmVudltuYW1lXTtcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyByZXF1aXJlZCBlbnZpcm9ubWVudCB2YXJpYWJsZTogJHtuYW1lfWApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGF1dGhPcHRpb25zOiBOZXh0QXV0aE9wdGlvbnMgPSB7XG4gIHByb3ZpZGVyczogW1xuICAgIEtleWNsb2FrUHJvdmlkZXIoe1xuICAgICAgY2xpZW50SWQ6IGdldFJlcXVpcmVkRW52VmFyKFwiS0VZQ0xPQUtfQ0xJRU5UX0lEXCIpLFxuICAgICAgY2xpZW50U2VjcmV0OiBnZXRSZXF1aXJlZEVudlZhcihcIktFWUNMT0FLX0NMSUVOVF9TRUNSRVRcIiksXG4gICAgICBpc3N1ZXI6IGdldFJlcXVpcmVkRW52VmFyKFwiS0VZQ0xPQUtfSVNTVUVSXCIpLFxuICAgICAgcHJvZmlsZShwcm9maWxlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IHByb2ZpbGUuc3ViLFxuICAgICAgICAgIG5hbWU6IHByb2ZpbGUubmFtZSA/PyBwcm9maWxlLnByZWZlcnJlZF91c2VybmFtZSxcbiAgICAgICAgICBlbWFpbDogcHJvZmlsZS5lbWFpbCxcbiAgICAgICAgICBmaXJzdF9uYW1lOiBwcm9maWxlLmdpdmVuX25hbWUgPz8gJycsXG4gICAgICAgICAgbGFzdF9uYW1lOiBwcm9maWxlLmZhbWlseV9uYW1lID8/ICcnLFxuICAgICAgICAgIHVzZXJuYW1lOiBwcm9maWxlLnByZWZlcnJlZF91c2VybmFtZSA/PyBwcm9maWxlLmVtYWlsPy5zcGxpdCgnQCcpWzBdID8/ICcnLFxuICAgICAgICAgIHJvbGU6IHByb2ZpbGUuZ3JvdXBzID8/IFtdLFxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pLFxuICBdLFxuICBzZXNzaW9uOiB7XG4gICAgc3RyYXRlZ3k6IFwiand0XCIsXG4gICAgbWF4QWdlOiAzMCAqIDI0ICogNjAgKiA2MCwgLy8gMzAgZGF5c1xuICB9LFxuICBjYWxsYmFja3M6IHtcbiAgICBhc3luYyBqd3QoeyB0b2tlbiwgYWNjb3VudCwgcHJvZmlsZSB9KSB7XG4gICAgICBpZiAoYWNjb3VudCAmJiBwcm9maWxlKSB7XG4gICAgICAgIHRva2VuLmFjY2Vzc1Rva2VuID0gYWNjb3VudC5hY2Nlc3NfdG9rZW47XG4gICAgICAgIHRva2VuLnJlZnJlc2hUb2tlbiA9IGFjY291bnQucmVmcmVzaF90b2tlbjtcbiAgICAgICAgdG9rZW4uYWNjZXNzVG9rZW5FeHBpcmVzID0gYWNjb3VudC5leHBpcmVzX2F0ISAqIDEwMDA7XG4gICAgICAgIHRva2VuLnJvbGUgPSAocHJvZmlsZSBhcyBhbnkpLmdyb3VwcyA/PyBbXTtcbiAgICAgICAgdG9rZW4udXNlcm5hbWUgPSAocHJvZmlsZSBhcyBhbnkpLnByZWZlcnJlZF91c2VybmFtZSA/PyBwcm9maWxlLmVtYWlsPy5zcGxpdCgnQCcpWzBdID8/ICcnO1xuICAgICAgICB0b2tlbi5maXJzdF9uYW1lID0gKHByb2ZpbGUgYXMgYW55KS5naXZlbl9uYW1lID8/ICcnO1xuICAgICAgICB0b2tlbi5sYXN0X25hbWUgPSAocHJvZmlsZSBhcyBhbnkpLmZhbWlseV9uYW1lID8/ICcnO1xuICAgICAgfVxuXG4gICAgICAvLyBSZXR1cm4gcHJldmlvdXMgdG9rZW4gaWYgbm90IGV4cGlyZWRcbiAgICAgIGlmIChEYXRlLm5vdygpIDwgKHRva2VuLmFjY2Vzc1Rva2VuRXhwaXJlcyBhcyBudW1iZXIpKSB7XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY2xpZW50SWQgPSBnZXRSZXF1aXJlZEVudlZhcihcIktFWUNMT0FLX0NMSUVOVF9JRFwiKTtcbiAgICAgICAgY29uc3QgY2xpZW50U2VjcmV0ID0gZ2V0UmVxdWlyZWRFbnZWYXIoXCJLRVlDTE9BS19DTElFTlRfU0VDUkVUXCIpO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgICAgICAgYCR7cHJvY2Vzcy5lbnYuS0VZQ0xPQUtfQkFTRV9VUkx9L3JlYWxtcy8ke3Byb2Nlc3MuZW52LktFWUNMT0FLX1JFQUxNfS9wcm90b2NvbC9vcGVuaWQtY29ubmVjdC90b2tlbmAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBib2R5OiBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcbiAgICAgICAgICAgICAgZ3JhbnRfdHlwZTogXCJyZWZyZXNoX3Rva2VuXCIsXG4gICAgICAgICAgICAgIGNsaWVudF9pZDogY2xpZW50SWQsXG4gICAgICAgICAgICAgIGNsaWVudF9zZWNyZXQ6IGNsaWVudFNlY3JldCxcbiAgICAgICAgICAgICAgcmVmcmVzaF90b2tlbjogdG9rZW4ucmVmcmVzaFRva2VuIGFzIHN0cmluZyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZnJlc2hBY2Nlc3NUb2tlbkVycm9yXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50b2tlbixcbiAgICAgICAgICBhY2Nlc3NUb2tlbjogdG9rZW5zLmFjY2Vzc190b2tlbixcbiAgICAgICAgICByZWZyZXNoVG9rZW46IHRva2Vucy5yZWZyZXNoX3Rva2VuID8/IHRva2VuLnJlZnJlc2hUb2tlbixcbiAgICAgICAgICBhY2Nlc3NUb2tlbkV4cGlyZXM6IERhdGUubm93KCkgKyB0b2tlbnMuZXhwaXJlc19pbiAqIDEwMDAsXG4gICAgICAgIH07XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnRva2VuLFxuICAgICAgICAgIGVycm9yOiBcIlJlZnJlc2hBY2Nlc3NUb2tlbkVycm9yXCIsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyBzZXNzaW9uKHsgc2Vzc2lvbiwgdG9rZW4gfSkge1xuICAgICAgaWYgKHRva2VuLmVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlZnJlc2hBY2Nlc3NUb2tlbkVycm9yXCIpO1xuICAgICAgfVxuXG4gICAgICBzZXNzaW9uLmFjY2Vzc1Rva2VuID0gdG9rZW4uYWNjZXNzVG9rZW47XG4gICAgICBzZXNzaW9uLnVzZXIgPSB7XG4gICAgICAgIC4uLnNlc3Npb24udXNlcixcbiAgICAgICAgaWQ6IHRva2VuLnN1YiBhcyBzdHJpbmcsXG4gICAgICAgIGZpcnN0X25hbWU6IHRva2VuLmZpcnN0X25hbWUgPz8gJycsXG4gICAgICAgIGxhc3RfbmFtZTogdG9rZW4ubGFzdF9uYW1lID8/ICcnLFxuICAgICAgICB1c2VybmFtZTogdG9rZW4udXNlcm5hbWUgPz8gJycsXG4gICAgICAgIHJvbGU6IHRva2VuLnJvbGUgPz8gW10sXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gc2Vzc2lvbjtcbiAgICB9XG4gIH0sXG4gIHBhZ2VzOiB7XG4gICAgc2lnbkluOiAnL3NpZ25pbicsXG4gICAgZXJyb3I6ICcvc2lnbmluJyxcbiAgfSxcbiAgZGVidWc6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnLFxufTtcblxuY29uc3QgaGFuZGxlciA9IE5leHRBdXRoKGF1dGhPcHRpb25zKTtcbmV4cG9ydCB7IGhhbmRsZXIgYXMgR0VULCBoYW5kbGVyIGFzIFBPU1QgfTtcblxuIl0sIm5hbWVzIjpbIk5leHRBdXRoIiwiS2V5Y2xvYWtQcm92aWRlciIsImdldFJlcXVpcmVkRW52VmFyIiwibmFtZSIsInZhbHVlIiwicHJvY2VzcyIsImVudiIsIkVycm9yIiwiYXV0aE9wdGlvbnMiLCJwcm92aWRlcnMiLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsImlzc3VlciIsInByb2ZpbGUiLCJpZCIsInN1YiIsInByZWZlcnJlZF91c2VybmFtZSIsImVtYWlsIiwiZmlyc3RfbmFtZSIsImdpdmVuX25hbWUiLCJsYXN0X25hbWUiLCJmYW1pbHlfbmFtZSIsInVzZXJuYW1lIiwic3BsaXQiLCJyb2xlIiwiZ3JvdXBzIiwic2Vzc2lvbiIsInN0cmF0ZWd5IiwibWF4QWdlIiwiY2FsbGJhY2tzIiwiand0IiwidG9rZW4iLCJhY2NvdW50IiwiYWNjZXNzVG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJyZWZyZXNoVG9rZW4iLCJyZWZyZXNoX3Rva2VuIiwiYWNjZXNzVG9rZW5FeHBpcmVzIiwiZXhwaXJlc19hdCIsIkRhdGUiLCJub3ciLCJyZXNwb25zZSIsImZldGNoIiwiS0VZQ0xPQUtfQkFTRV9VUkwiLCJLRVlDTE9BS19SRUFMTSIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiVVJMU2VhcmNoUGFyYW1zIiwiZ3JhbnRfdHlwZSIsImNsaWVudF9pZCIsImNsaWVudF9zZWNyZXQiLCJ0b2tlbnMiLCJqc29uIiwib2siLCJleHBpcmVzX2luIiwiZXJyb3IiLCJ1c2VyIiwicGFnZXMiLCJzaWduSW4iLCJkZWJ1ZyIsImhhbmRsZXIiLCJHRVQiLCJQT1NUIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./app/api/auth/[...nextauth]/route.ts\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./app/api/leantime/tasks/route.ts":
|
|
/*!*****************************************!*\
|
|
!*** ./app/api/leantime/tasks/route.ts ***!
|
|
\*****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GET: () => (/* binding */ GET)\n/* harmony export */ });\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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Q0FBQztZQUM3SixPQUFPQTtRQUNULEdBQ0NaLEdBQUcsQ0FBQyxDQUFDQyxPQUFlO2dCQUNuQjVCLElBQUk0QixLQUFLNUIsRUFBRSxDQUFDd0MsUUFBUTtnQkFDcEJULFVBQVVILEtBQUtHLFFBQVE7Z0JBQ3ZCVSxhQUFhYixLQUFLYSxXQUFXO2dCQUM3QkMsV0FBV2QsS0FBS2MsU0FBUztnQkFDekJ0QyxRQUFRd0IsS0FBS3hCLE1BQU07Z0JBQ25CdUMsY0FBY2YsS0FBS2UsWUFBWSxJQUFJO2dCQUNuQ0MsV0FBV2hCLEtBQUtJLElBQUksSUFBSTtnQkFDeEJhLFNBQVNqQixLQUFLa0IsV0FBVyxJQUFJO2dCQUM3QkMsV0FBV25CLEtBQUtvQixXQUFXO2dCQUMzQkMsVUFBVXJCLEtBQUtxQixRQUFRLElBQUk7Z0JBQzNCYixVQUFVUixLQUFLUSxRQUFRO2dCQUN2QmMsaUJBQWlCdEIsS0FBS3NCLGVBQWU7Z0JBQ3JDQyxnQkFBZ0J2QixLQUFLdUIsY0FBYztnQkFDbkNuQixNQUFNSixLQUFLSSxJQUFJLElBQUk7Z0JBQ25CQyxtQkFBbUJMLEtBQUtLLGlCQUFpQixJQUFJLEtBQU0sOEJBQThCO1lBQ25GO1FBRUY5QyxRQUFRRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUV3QyxNQUFNdEMsTUFBTSxDQUFDLHdCQUF3QixFQUFFaUMsT0FBTyxDQUFDO1FBQ3BFLE9BQU83QyxxREFBWUEsQ0FBQzRDLElBQUksQ0FBQ007SUFDM0IsRUFBRSxPQUFPekMsT0FBTztRQUNkRCxRQUFRQyxLQUFLLENBQUMseUJBQXlCQTtRQUN2QyxPQUFPVCxxREFBWUEsQ0FBQzRDLElBQUksQ0FDdEI7WUFBRW5DLE9BQU87UUFBd0IsR0FDakM7WUFBRWdCLFFBQVE7UUFBSTtJQUVsQjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vbmVhaC8uL2FwcC9hcGkvbGVhbnRpbWUvdGFza3Mvcm91dGUudHM/NTA5MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXh0UmVxdWVzdCwgTmV4dFJlc3BvbnNlIH0gZnJvbSBcIm5leHQvc2VydmVyXCI7XG5pbXBvcnQgeyBnZXRTZXJ2ZXJTZXNzaW9uIH0gZnJvbSBcIm5leHQtYXV0aC9uZXh0XCI7XG5pbXBvcnQgeyBhdXRoT3B0aW9ucyB9IGZyb20gXCJAL2FwcC9hcGkvYXV0aC9bLi4ubmV4dGF1dGhdL3JvdXRlXCI7XG5cbmludGVyZmFjZSBUYXNrIHtcbiAgaWQ6IHN0cmluZztcbiAgaGVhZGxpbmU6IHN0cmluZztcbiAgcHJvamVjdE5hbWU6IHN0cmluZztcbiAgcHJvamVjdElkOiBudW1iZXI7XG4gIHN0YXR1czogbnVtYmVyO1xuICBkYXRlVG9GaW5pc2g6IHN0cmluZyB8IG51bGw7XG4gIG1pbGVzdG9uZTogc3RyaW5nIHwgbnVsbDtcbiAgZGV0YWlsczogc3RyaW5nIHwgbnVsbDtcbiAgY3JlYXRlZE9uOiBzdHJpbmc7XG4gIGVkaXRlZE9uOiBzdHJpbmcgfCBudWxsO1xuICBlZGl0b3JJZDogc3RyaW5nO1xuICBlZGl0b3JGaXJzdG5hbWU6IHN0cmluZztcbiAgZWRpdG9yTGFzdG5hbWU6IHN0cmluZztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TGVhbnRpbWVVc2VySWQoZW1haWw6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyIHwgbnVsbD4ge1xuICB0cnkge1xuICAgIGlmICghcHJvY2Vzcy5lbnYuTEVBTlRJTUVfVE9LRU4pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0xFQU5USU1FX1RPS0VOIGlzIG5vdCBzZXQgaW4gZW52aXJvbm1lbnQgdmFyaWFibGVzJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygnRmV0Y2hpbmcgTGVhbnRpbWUgdXNlcnMgZm9yIGVtYWlsOicsIGVtYWlsKTtcbiAgICBjb25zb2xlLmxvZygnQVBJIFVSTDonLCBwcm9jZXNzLmVudi5MRUFOVElNRV9BUElfVVJMKTtcbiAgICBjb25zb2xlLmxvZygnVG9rZW4gbGVuZ3RoOicsIHByb2Nlc3MuZW52LkxFQU5USU1FX1RPS0VOLmxlbmd0aCk7XG4gICAgXG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnWC1BUEktS2V5JzogcHJvY2Vzcy5lbnYuTEVBTlRJTUVfVE9LRU5cbiAgICB9O1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtwcm9jZXNzLmVudi5MRUFOVElNRV9BUElfVVJMfS9hcGkvanNvbnJwY2AsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgICAgIG1ldGhvZDogJ2xlYW50aW1lLnJwYy51c2Vycy5nZXRBbGwnLFxuICAgICAgICBpZDogMVxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZVRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgY29uc29sZS5sb2coJ1JhdyBMZWFudGltZSByZXNwb25zZTonLCByZXNwb25zZVRleHQpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGZldGNoIExlYW50aW1lIHVzZXJzOicsIHtcbiAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsXG4gICAgICAgIHN0YXR1c1RleHQ6IHJlc3BvbnNlLnN0YXR1c1RleHQsXG4gICAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyhyZXNwb25zZS5oZWFkZXJzLmVudHJpZXMoKSlcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGRhdGE7XG4gICAgdHJ5IHtcbiAgICAgIGRhdGEgPSBKU09OLnBhcnNlKHJlc3BvbnNlVGV4dCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHBhcnNlIExlYW50aW1lIHJlc3BvbnNlOicsIGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ0xlYW50aW1lIHVzZXJzIHJlc3BvbnNlOicsIGRhdGEpO1xuXG4gICAgaWYgKCFkYXRhLnJlc3VsdCB8fCAhQXJyYXkuaXNBcnJheShkYXRhLnJlc3VsdCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgcmVzcG9uc2UgZm9ybWF0IGZyb20gTGVhbnRpbWUgdXNlcnMgQVBJJyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VycyA9IGRhdGEucmVzdWx0O1xuICAgIGNvbnN0IHVzZXIgPSB1c2Vycy5maW5kKCh1OiBhbnkpID0+IHUudXNlcm5hbWUgPT09IGVtYWlsKTtcbiAgICBcbiAgICBpZiAodXNlcikge1xuICAgICAgY29uc29sZS5sb2coJ0ZvdW5kIExlYW50aW1lIHVzZXI6JywgeyBpZDogdXNlci5pZCwgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBMZWFudGltZSB1c2VyIGZvdW5kIGZvciB1c2VybmFtZTonLCBlbWFpbCk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiB1c2VyID8gdXNlci5pZCA6IG51bGw7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgTGVhbnRpbWUgdXNlciBJRDonLCBlcnJvcik7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIEdFVChyZXF1ZXN0OiBOZXh0UmVxdWVzdCkge1xuICB0cnkge1xuICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBnZXRTZXJ2ZXJTZXNzaW9uKGF1dGhPcHRpb25zKTtcbiAgICBpZiAoIXNlc3Npb24/LnVzZXI/LmVtYWlsKSB7XG4gICAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBlcnJvcjogXCJVbmF1dGhvcml6ZWRcIiB9LCB7IHN0YXR1czogNDAxIH0pO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCdGZXRjaGluZyB0YXNrcyBmb3IgdXNlcjonLCBzZXNzaW9uLnVzZXIuZW1haWwpO1xuICAgIGNvbnN0IHVzZXJJZCA9IGF3YWl0IGdldExlYW50aW1lVXNlcklkKHNlc3Npb24udXNlci5lbWFpbCk7XG4gICAgXG4gICAgaWYgKCF1c2VySWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1VzZXIgbm90IGZvdW5kIGluIExlYW50aW1lJyk7XG4gICAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBlcnJvcjogXCJVc2VyIG5vdCBmb3VuZCBpbiBMZWFudGltZVwiIH0sIHsgc3RhdHVzOiA0MDQgfSk7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ0ZldGNoaW5nIHRhc2tzIGZvciBMZWFudGltZSB1c2VyIElEOicsIHVzZXJJZCk7XG4gICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAnWC1BUEktS2V5JzogcHJvY2Vzcy5lbnYuTEVBTlRJTUVfVE9LRU4hXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7cHJvY2Vzcy5lbnYuTEVBTlRJTUVfQVBJX1VSTH0vYXBpL2pzb25ycGNgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnMsXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGpzb25ycGM6ICcyLjAnLFxuICAgICAgICBtZXRob2Q6ICdsZWFudGltZS5ycGMudGlja2V0cy5nZXRBbGwnLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICB1c2VySWQ6IHVzZXJJZCxcbiAgICAgICAgICBzdGF0dXM6IFwiYWxsXCJcbiAgICAgICAgfSxcbiAgICAgICAgaWQ6IDFcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzcG9uc2VUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgIGNvbnNvbGUubG9nKCdUYXNrcyBBUEkgcmVzcG9uc2Ugc3RhdHVzOicsIHJlc3BvbnNlLnN0YXR1cyk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZmV0Y2ggdGFza3MgZnJvbSBMZWFudGltZTonLCB7XG4gICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICBzdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0XG4gICAgICB9KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIHRhc2tzIGZyb20gTGVhbnRpbWUnKTtcbiAgICB9XG5cbiAgICBsZXQgZGF0YTtcbiAgICB0cnkge1xuICAgICAgZGF0YSA9IEpTT04ucGFyc2UocmVzcG9uc2VUZXh0KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcGFyc2UgdGFza3MgcmVzcG9uc2UnKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCByZXNwb25zZSBmb3JtYXQgZnJvbSBMZWFudGltZScpO1xuICAgIH1cblxuICAgIGlmICghZGF0YS5yZXN1bHQgfHwgIUFycmF5LmlzQXJyYXkoZGF0YS5yZXN1bHQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIHJlc3BvbnNlIGZvcm1hdCBmcm9tIExlYW50aW1lIHRhc2tzIEFQSScpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlc3BvbnNlIGZvcm1hdCBmcm9tIExlYW50aW1lJyk7XG4gICAgfVxuXG4gICAgLy8gTG9nIG9ubHkgdGhlIG51bWJlciBvZiB0YXNrcyBhbmQgdGhlaXIgSURzXG4gICAgY29uc29sZS5sb2coJ1JlY2VpdmVkIHRhc2tzIGNvdW50OicsIGRhdGEucmVzdWx0Lmxlbmd0aCk7XG4gICAgY29uc29sZS5sb2coJ1Rhc2sgSURzOicsIGRhdGEucmVzdWx0Lm1hcCgodGFzazogYW55KSA9PiB0YXNrLmlkKSk7XG5cbiAgICBjb25zdCB0YXNrcyA9IGRhdGEucmVzdWx0XG4gICAgICAuZmlsdGVyKCh0YXNrOiBhbnkpID0+IHtcbiAgICAgICAgLy8gTG9nIHJhdyB0YXNrIGRhdGEgZm9yIGRlYnVnZ2luZ1xuICAgICAgICBjb25zb2xlLmxvZygnUmF3IHRhc2sgZGF0YTonLCB7XG4gICAgICAgICAgaWQ6IHRhc2suaWQsXG4gICAgICAgICAgaGVhZGxpbmU6IHRhc2suaGVhZGxpbmUsXG4gICAgICAgICAgc3RhdHVzOiB0YXNrLnN0YXR1cyxcbiAgICAgICAgICB0eXBlOiB0YXNrLnR5cGUsXG4gICAgICAgICAgZGVwZW5kaW5nVGlja2V0SWQ6IHRhc2suZGVwZW5kaW5nVGlja2V0SWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRmlsdGVyIG91dCBhbnkgdGFzayAobWFpbiBvciBzdWJ0YXNrKSB0aGF0IGhhcyBzdGF0dXMgRG9uZSAoNSlcbiAgICAgICAgaWYgKHRhc2suc3RhdHVzID09PSA1KSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYEZpbHRlcmluZyBvdXQgRG9uZSB0YXNrICR7dGFzay5pZH0gKHR5cGU6ICR7dGFzay50eXBlIHx8ICdtYWluJ30sIHN0YXR1czogJHt0YXNrLnN0YXR1c30pYCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29udmVydCBib3RoIHRvIHN0cmluZ3MgZm9yIGNvbXBhcmlzb24gdG8gaGFuZGxlIGFueSB0eXBlIG1pc21hdGNoZXNcbiAgICAgICAgY29uc3QgdGFza0VkaXRvcklkID0gU3RyaW5nKHRhc2suZWRpdG9ySWQpLnRyaW0oKTtcbiAgICAgICAgY29uc3QgY3VycmVudFVzZXJJZCA9IFN0cmluZyh1c2VySWQpLnRyaW0oKTtcbiAgICAgICAgXG4gICAgICAgIC8vIE9ubHkgc2hvdyB0YXNrcyB3aGVyZSB0aGUgdXNlciBpcyB0aGUgZWRpdG9yXG4gICAgICAgIGNvbnN0IGlzVXNlckVkaXRvciA9IHRhc2tFZGl0b3JJZCA9PT0gY3VycmVudFVzZXJJZDtcbiAgICAgICAgY29uc29sZS5sb2coYFRhc2sgJHt0YXNrLmlkfTogc3RhdHVzPSR7dGFzay5zdGF0dXN9LCB0eXBlPSR7dGFzay50eXBlIHx8ICdtYWluJ30sIHBhcmVudElkPSR7dGFzay5kZXBlbmRpbmdUaWNrZXRJZCB8fCAnbm9uZSd9LCBpc1VzZXJFZGl0b3I9JHtpc1VzZXJFZGl0b3J9YCk7XG4gICAgICAgIHJldHVybiBpc1VzZXJFZGl0b3I7XG4gICAgICB9KVxuICAgICAgLm1hcCgodGFzazogYW55KSA9PiAoe1xuICAgICAgICBpZDogdGFzay5pZC50b1N0cmluZygpLFxuICAgICAgICBoZWFkbGluZTogdGFzay5oZWFkbGluZSxcbiAgICAgICAgcHJvamVjdE5hbWU6IHRhc2sucHJvamVjdE5hbWUsXG4gICAgICAgIHByb2plY3RJZDogdGFzay5wcm9qZWN0SWQsXG4gICAgICAgIHN0YXR1czogdGFzay5zdGF0dXMsXG4gICAgICAgIGRhdGVUb0ZpbmlzaDogdGFzay5kYXRlVG9GaW5pc2ggfHwgbnVsbCxcbiAgICAgICAgbWlsZXN0b25lOiB0YXNrLnR5cGUgfHwgbnVsbCxcbiAgICAgICAgZGV0YWlsczogdGFzay5kZXNjcmlwdGlvbiB8fCBudWxsLFxuICAgICAgICBjcmVhdGVkT246IHRhc2suZGF0ZUNyZWF0ZWQsXG4gICAgICAgIGVkaXRlZE9uOiB0YXNrLmVkaXRlZE9uIHx8IG51bGwsXG4gICAgICAgIGVkaXRvcklkOiB0YXNrLmVkaXRvcklkLFxuICAgICAgICBlZGl0b3JGaXJzdG5hbWU6IHRhc2suZWRpdG9yRmlyc3RuYW1lLFxuICAgICAgICBlZGl0b3JMYXN0bmFtZTogdGFzay5lZGl0b3JMYXN0bmFtZSxcbiAgICAgICAgdHlwZTogdGFzay50eXBlIHx8IG51bGwsICAvLyBBZGRlZCB0eXBlIGZpZWxkIHRvIGlkZW50aWZ5IHN1YnRhc2tzXG4gICAgICAgIGRlcGVuZGluZ1RpY2tldElkOiB0YXNrLmRlcGVuZGluZ1RpY2tldElkIHx8IG51bGwgIC8vIEFkZGVkIHBhcmVudCB0YXNrIHJlZmVyZW5jZVxuICAgICAgfSkpO1xuXG4gICAgY29uc29sZS5sb2coYEZvdW5kICR7dGFza3MubGVuZ3RofSB0YXNrcyBhc3NpZ25lZCB0byB1c2VyICR7dXNlcklkfWApO1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbih0YXNrcyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gdGFza3Mgcm91dGU6JywgZXJyb3IpO1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbihcbiAgICAgIHsgZXJyb3I6IFwiRmFpbGVkIHRvIGZldGNoIHRhc2tzXCIgfSxcbiAgICAgIHsgc3RhdHVzOiA1MDAgfVxuICAgICk7XG4gIH1cbn0gIl0sIm5hbWVzIjpbIk5leHRSZXNwb25zZSIsImdldFNlcnZlclNlc3Npb24iLCJhdXRoT3B0aW9ucyIsImdldExlYW50aW1lVXNlcklkIiwiZW1haWwiLCJwcm9jZXNzIiwiZW52IiwiTEVBTlRJTUVfVE9LRU4iLCJjb25zb2xlIiwiZXJyb3IiLCJsb2ciLCJMRUFOVElNRV9BUElfVVJMIiwibGVuZ3RoIiwiaGVhZGVycyIsInJlc3BvbnNlIiwiZmV0Y2giLCJtZXRob2QiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsImpzb25ycGMiLCJpZCIsInJlc3BvbnNlVGV4dCIsInRleHQiLCJvayIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsImVudHJpZXMiLCJkYXRhIiwicGFyc2UiLCJlIiwicmVzdWx0IiwiQXJyYXkiLCJpc0FycmF5IiwidXNlcnMiLCJ1c2VyIiwiZmluZCIsInUiLCJ1c2VybmFtZSIsIkdFVCIsInJlcXVlc3QiLCJzZXNzaW9uIiwianNvbiIsInVzZXJJZCIsInBhcmFtcyIsIkVycm9yIiwibWFwIiwidGFzayIsInRhc2tzIiwiZmlsdGVyIiwiaGVhZGxpbmUiLCJ0eXBlIiwiZGVwZW5kaW5nVGlja2V0SWQiLCJ0YXNrRWRpdG9ySWQiLCJTdHJpbmciLCJlZGl0b3JJZCIsInRyaW0iLCJjdXJyZW50VXNlcklkIiwiaXNVc2VyRWRpdG9yIiwidG9TdHJpbmciLCJwcm9qZWN0TmFtZSIsInByb2plY3RJZCIsImRhdGVUb0ZpbmlzaCIsIm1pbGVzdG9uZSIsImRldGFpbHMiLCJkZXNjcmlwdGlvbiIsImNyZWF0ZWRPbiIsImRhdGVDcmVhdGVkIiwiZWRpdGVkT24iLCJlZGl0b3JGaXJzdG5hbWUiLCJlZGl0b3JMYXN0bmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./app/api/leantime/tasks/route.ts\n");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
;
|
|
|
|
// load runtime
|
|
var __webpack_require__ = require("../../../../webpack-runtime.js");
|
|
__webpack_require__.C(exports);
|
|
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/jose","vendor-chunks/next-auth","vendor-chunks/openid-client","vendor-chunks/@babel","vendor-chunks/oauth","vendor-chunks/preact","vendor-chunks/uuid","vendor-chunks/yallist","vendor-chunks/preact-render-to-string","vendor-chunks/cookie","vendor-chunks/oidc-token-hash","vendor-chunks/@panva"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fapi%2Fleantime%2Ftasks%2Froute&page=%2Fapi%2Fleantime%2Ftasks%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fleantime%2Ftasks%2Froute.ts&appDir=%2Fhome%2Falma%2FNeahFront9%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Falma%2FNeahFront9&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
|
|
module.exports = __webpack_exports__;
|
|
|
|
})(); |