22 lines
11 KiB
JavaScript
22 lines
11 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/).
|
|
*/
|
|
self["webpackHotUpdate_N_E"]("middleware",{
|
|
|
|
/***/ "(middleware)/./src/middleware.ts":
|
|
/*!***************************!*\
|
|
!*** ./src/middleware.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 */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _clerk_nextjs_server__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @clerk/nextjs/server */ \"(middleware)/./node_modules/@clerk/nextjs/dist/esm/server/routeMatcher.js\");\n/* harmony import */ var _clerk_nextjs_server__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @clerk/nextjs/server */ \"(middleware)/./node_modules/@clerk/nextjs/dist/esm/server/clerkMiddleware.js\");\n/* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/server */ \"(middleware)/./node_modules/next/dist/esm/api/server.js\");\n/* harmony import */ var _lib_admin_session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/lib/admin-session */ \"(middleware)/./src/lib/admin-session.ts\");\n\n\n\nconst isProtectedRoute = (0,_clerk_nextjs_server__WEBPACK_IMPORTED_MODULE_2__.createRouteMatcher)([\n \"/dashboard(.*)\",\n \"/onboarding(.*)\",\n \"/api/publish(.*)\",\n \"/api/upload(.*)\",\n \"/api/user(.*)\"\n]);\nfunction isAdminRoute(pathname) {\n return pathname.startsWith(\"/admin\") || pathname.startsWith(\"/api/admin\");\n}\nfunction getSubdomain(req) {\n const host = req.headers.get(\"host\");\n if (!host) return null;\n const apex = \"testbed.mk\" || 0;\n const portIndex = host.indexOf(\":\");\n const hostname = portIndex !== -1 ? host.slice(0, portIndex) : host;\n const reserved = [\n \"www\",\n \"coolify\",\n \"mail\",\n \"accounts\",\n \"clerk\",\n \"clk\",\n \"clk2\",\n \"clkmail\"\n ];\n if (hostname === apex || reserved.includes(hostname) || hostname === `www.${apex}`) return null;\n if (hostname.endsWith(`.${apex}`)) {\n const sub = hostname.slice(0, hostname.length - apex.length - 1);\n if (sub && !reserved.includes(sub)) return sub;\n }\n return null;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_clerk_nextjs_server__WEBPACK_IMPORTED_MODULE_3__.clerkMiddleware)(async (auth, req)=>{\n if (isAdminRoute(req.nextUrl.pathname)) {\n if (req.nextUrl.pathname === \"/admin/login\") {\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.next();\n }\n const token = req.cookies.get(_lib_admin_session__WEBPACK_IMPORTED_MODULE_1__.COOKIE_NAME_ADMIN)?.value;\n if (!token || !await (0,_lib_admin_session__WEBPACK_IMPORTED_MODULE_1__.verifyAdminSession)(token)) {\n if (req.nextUrl.pathname.startsWith(\"/api/\")) {\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Неавторизирано\"\n }, {\n status: 401\n });\n }\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.redirect(new URL(\"/admin/login\", req.url));\n }\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.next();\n }\n if (isProtectedRoute(req)) {\n await auth.protect();\n }\n const subdomain = getSubdomain(req);\n if (subdomain && !req.nextUrl.pathname.startsWith(\"/api\")) {\n const url = req.nextUrl.clone();\n url.pathname = `/${subdomain}${url.pathname === \"/\" ? \"\" : url.pathname}`;\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.rewrite(url);\n }\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.next();\n}));\nconst config = {\n matcher: [\n \"/(api|trpc)(.*)\",\n \"/__clerk/:path*\",\n \"/((?!_next|api/static|.*\\\\..*).*)\"\n ]\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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OlsiL2FwcC9zcmMvbWlkZGxld2FyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbGVya01pZGRsZXdhcmUsIGNyZWF0ZVJvdXRlTWF0Y2hlciB9IGZyb20gXCJAY2xlcmsvbmV4dGpzL3NlcnZlclwiO1xuaW1wb3J0IHsgTmV4dFJlc3BvbnNlIH0gZnJvbSBcIm5leHQvc2VydmVyXCI7XG5pbXBvcnQgdHlwZSB7IE5leHRSZXF1ZXN0IH0gZnJvbSBcIm5leHQvc2VydmVyXCI7XG5pbXBvcnQgeyB2ZXJpZnlBZG1pblNlc3Npb24sIENPT0tJRV9OQU1FX0FETUlOIH0gZnJvbSBcIkAvbGliL2FkbWluLXNlc3Npb25cIjtcblxuY29uc3QgaXNQcm90ZWN0ZWRSb3V0ZSA9IGNyZWF0ZVJvdXRlTWF0Y2hlcihbXCIvZGFzaGJvYXJkKC4qKVwiLCBcIi9vbmJvYXJkaW5nKC4qKVwiLCBcIi9hcGkvcHVibGlzaCguKilcIiwgXCIvYXBpL3VwbG9hZCguKilcIiwgXCIvYXBpL3VzZXIoLiopXCJdKTtcblxuZnVuY3Rpb24gaXNBZG1pblJvdXRlKHBhdGhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBhdGhuYW1lLnN0YXJ0c1dpdGgoXCIvYWRtaW5cIikgfHwgcGF0aG5hbWUuc3RhcnRzV2l0aChcIi9hcGkvYWRtaW5cIik7XG59XG5cbmZ1bmN0aW9uIGdldFN1YmRvbWFpbihyZXE6IE5leHRSZXF1ZXN0KTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGhvc3QgPSByZXEuaGVhZGVycy5nZXQoXCJob3N0XCIpO1xuICBpZiAoIWhvc3QpIHJldHVybiBudWxsO1xuXG4gIGNvbnN0IGFwZXggPSBwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19BUFBfRE9NQUlOIHx8IFwidGVzdGJlZC5ta1wiO1xuICBjb25zdCBwb3J0SW5kZXggPSBob3N0LmluZGV4T2YoXCI6XCIpO1xuICBjb25zdCBob3N0bmFtZSA9IHBvcnRJbmRleCAhPT0gLTEgPyBob3N0LnNsaWNlKDAsIHBvcnRJbmRleCkgOiBob3N0O1xuXG4gIGNvbnN0IHJlc2VydmVkID0gW1wid3d3XCIsIFwiY29vbGlmeVwiLCBcIm1haWxcIiwgXCJhY2NvdW50c1wiLCBcImNsZXJrXCIsIFwiY2xrXCIsIFwiY2xrMlwiLCBcImNsa21haWxcIl07XG5cbiAgaWYgKGhvc3RuYW1lID09PSBhcGV4IHx8IHJlc2VydmVkLmluY2x1ZGVzKGhvc3RuYW1lKSB8fCBob3N0bmFtZSA9PT0gYHd3dy4ke2FwZXh9YCkgcmV0dXJuIG51bGw7XG5cbiAgaWYgKGhvc3RuYW1lLmVuZHNXaXRoKGAuJHthcGV4fWApKSB7XG4gICAgY29uc3Qgc3ViID0gaG9zdG5hbWUuc2xpY2UoMCwgaG9zdG5hbWUubGVuZ3RoIC0gYXBleC5sZW5ndGggLSAxKTtcbiAgICBpZiAoc3ViICYmICFyZXNlcnZlZC5pbmNsdWRlcyhzdWIpKSByZXR1cm4gc3ViO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsZXJrTWlkZGxld2FyZShhc3luYyAoYXV0aCwgcmVxOiBOZXh0UmVxdWVzdCkgPT4ge1xuICBpZiAoaXNBZG1pblJvdXRlKHJlcS5uZXh0VXJsLnBhdGhuYW1lKSkge1xuICAgIGlmIChyZXEubmV4dFVybC5wYXRobmFtZSA9PT0gXCIvYWRtaW4vbG9naW5cIikge1xuICAgICAgcmV0dXJuIE5leHRSZXNwb25zZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgdG9rZW4gPSByZXEuY29va2llcy5nZXQoQ09PS0lFX05BTUVfQURNSU4pPy52YWx1ZTtcbiAgICBpZiAoIXRva2VuIHx8ICEoYXdhaXQgdmVyaWZ5QWRtaW5TZXNzaW9uKHRva2VuKSkpIHtcbiAgICAgIGlmIChyZXEubmV4dFVybC5wYXRobmFtZS5zdGFydHNXaXRoKFwiL2FwaS9cIikpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKHsgZXJyb3I6IFwi0J3QtdCw0LLRgtC+0YDQuNC30LjRgNCw0L3QvlwiIH0sIHsgc3RhdHVzOiA0MDEgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gTmV4dFJlc3BvbnNlLnJlZGlyZWN0KG5ldyBVUkwoXCIvYWRtaW4vbG9naW5cIiwgcmVxLnVybCkpO1xuICAgIH1cblxuICAgIHJldHVybiBOZXh0UmVzcG9uc2UubmV4dCgpO1xuICB9XG5cbiAgaWYgKGlzUHJvdGVjdGVkUm91dGUocmVxKSkge1xuICAgIGF3YWl0IGF1dGgucHJvdGVjdCgpO1xuICB9XG5cbiAgY29uc3Qgc3ViZG9tYWluID0gZ2V0U3ViZG9tYWluKHJlcSk7XG4gIGlmIChzdWJkb21haW4gJiYgIXJlcS5uZXh0VXJsLnBhdGhuYW1lLnN0YXJ0c1dpdGgoXCIvYXBpXCIpKSB7XG4gICAgY29uc3QgdXJsID0gcmVxLm5leHRVcmwuY2xvbmUoKTtcbiAgICB1cmwucGF0aG5hbWUgPSBgLyR7c3ViZG9tYWlufSR7dXJsLnBhdGhuYW1lID09PSBcIi9cIiA/IFwiXCIgOiB1cmwucGF0aG5hbWV9YDtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLnJld3JpdGUodXJsKTtcbiAgfVxuXG4gIHJldHVybiBOZXh0UmVzcG9uc2UubmV4dCgpO1xufSk7XG5cbmV4cG9ydCBjb25zdCBjb25maWcgPSB7XG4gIG1hdGNoZXI6IFtcIi8oYXBpfHRycGMpKC4qKVwiLCBcIi9fX2NsZXJrLzpwYXRoKlwiLCBcIi8oKD8hX25leHR8YXBpL3N0YXRpY3wuKlxcXFwuLiopLiopXCJdLFxufTtcbiJdLCJuYW1lcyI6WyJjbGVya01pZGRsZXdhcmUiLCJjcmVhdGVSb3V0ZU1hdGNoZXIiLCJOZXh0UmVzcG9uc2UiLCJ2ZXJpZnlBZG1pblNlc3Npb24iLCJDT09LSUVfTkFNRV9BRE1JTiIsImlzUHJvdGVjdGVkUm91dGUiLCJpc0FkbWluUm91dGUiLCJwYXRobmFtZSIsInN0YXJ0c1dpdGgiLCJnZXRTdWJkb21haW4iLCJyZXEiLCJob3N0IiwiaGVhZGVycyIsImdldCIsImFwZXgiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9QVUJMSUNfQVBQX0RPTUFJTiIsInBvcnRJbmRleCIsImluZGV4T2YiLCJob3N0bmFtZSIsInNsaWNlIiwicmVzZXJ2ZWQiLCJpbmNsdWRlcyIsImVuZHNXaXRoIiwic3ViIiwibGVuZ3RoIiwiYXV0aCIsIm5leHRVcmwiLCJuZXh0IiwidG9rZW4iLCJjb29raWVzIiwidmFsdWUiLCJqc29uIiwiZXJyb3IiLCJzdGF0dXMiLCJyZWRpcmVjdCIsIlVSTCIsInVybCIsInByb3RlY3QiLCJzdWJkb21haW4iLCJjbG9uZSIsInJld3JpdGUiLCJjb25maWciLCJtYXRjaGVyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(middleware)/./src/middleware.ts\n");
|
|
|
|
/***/ })
|
|
|
|
}); |