deckhearth/.next/server/pages/api/auth/verify.js

106 lines
42 KiB
JavaScript
Raw Normal View History

"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 = "pages/api/auth/verify";
exports.ids = ["pages/api/auth/verify"];
exports.modules = {
/***/ "(api-node)/./lib/database.js":
/*!*************************!*\
!*** ./lib/database.js ***!
\*************************/
/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ db: () => (/* binding */ db)\n/* harmony export */ });\n/* harmony import */ var _neondatabase_serverless__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @neondatabase/serverless */ \"@neondatabase/serverless\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_neondatabase_serverless__WEBPACK_IMPORTED_MODULE_0__]);\n_neondatabase_serverless__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n// Get the database URL from environment variables\nconst sql = (0,_neondatabase_serverless__WEBPACK_IMPORTED_MODULE_0__.neon)(process.env.POSTGRES_URL);\n// Database adapter that works with Neon\nclass DatabaseAdapter {\n async query(sqlString, params = []) {\n try {\n // For Neon, we need to use tagged template literals\n // This is a simplified approach - in production you'd want more robust parameter handling\n let result;\n if (params.length === 0) {\n // No parameters\n result = await sql`${sql.unsafe(sqlString)}`;\n } else {\n // With parameters - this is a simplified approach\n // In production, you'd want proper parameter escaping\n const escapedParams = params.map((param)=>typeof param === 'string' ? `'${param.replace(/'/g, \"''\")}'` : param);\n let query = sqlString;\n for(let i = 0; i < escapedParams.length; i++){\n query = query.replace(`$${i + 1}`, escapedParams[i]);\n }\n result = await sql`${sql.unsafe(query)}`;\n }\n return {\n rows: Array.isArray(result) ? result : [\n result\n ],\n rowCount: Array.isArray(result) ? result.length : 1\n };\n } catch (error) {\n console.error('Database query error:', error);\n throw error;\n }\n }\n async raw(sqlString, params = []) {\n return await this.query(sqlString, params);\n }\n}\nconst db = new DatabaseAdapter();\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaS1ub2RlKS8uL2xpYi9kYXRhYmFzZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFnRDtBQUVoRCxrREFBa0Q7QUFDbEQsTUFBTUMsTUFBTUQsOERBQUlBLENBQUNFLFFBQVFDLEdBQUcsQ0FBQ0MsWUFBWTtBQUV6Qyx3Q0FBd0M7QUFDeEMsTUFBTUM7SUFDSixNQUFNQyxNQUFNQyxTQUFTLEVBQUVDLFNBQVMsRUFBRSxFQUFFO1FBQ2xDLElBQUk7WUFDRixvREFBb0Q7WUFDcEQsMEZBQTBGO1lBQzFGLElBQUlDO1lBRUosSUFBSUQsT0FBT0UsTUFBTSxLQUFLLEdBQUc7Z0JBQ3ZCLGdCQUFnQjtnQkFDaEJELFNBQVMsTUFBTVIsR0FBRyxDQUFDLEVBQUVBLElBQUlVLE1BQU0sQ0FBQ0osV0FBVyxDQUFDO1lBQzlDLE9BQU87Z0JBQ0wsa0RBQWtEO2dCQUNsRCxzREFBc0Q7Z0JBQ3RELE1BQU1LLGdCQUFnQkosT0FBT0ssR0FBRyxDQUFDQyxDQUFBQSxRQUMvQixPQUFPQSxVQUFVLFdBQVcsQ0FBQyxDQUFDLEVBQUVBLE1BQU1DLE9BQU8sQ0FBQyxNQUFNLE1BQU0sQ0FBQyxDQUFDLEdBQUdEO2dCQUdqRSxJQUFJUixRQUFRQztnQkFDWixJQUFLLElBQUlTLElBQUksR0FBR0EsSUFBSUosY0FBY0YsTUFBTSxFQUFFTSxJQUFLO29CQUM3Q1YsUUFBUUEsTUFBTVMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFQyxJQUFJLEdBQUcsRUFBRUosYUFBYSxDQUFDSSxFQUFFO2dCQUNyRDtnQkFFQVAsU0FBUyxNQUFNUixHQUFHLENBQUMsRUFBRUEsSUFBSVUsTUFBTSxDQUFDTCxPQUFPLENBQUM7WUFDMUM7WUFFQSxPQUFPO2dCQUNMVyxNQUFNQyxNQUFNQyxPQUFPLENBQUNWLFVBQVVBLFNBQVM7b0JBQUNBO2lCQUFPO2dCQUMvQ1csVUFBVUYsTUFBTUMsT0FBTyxDQUFDVixVQUFVQSxPQUFPQyxNQUFNLEdBQUc7WUFDcEQ7UUFDRixFQUFFLE9BQU9XLE9BQU87WUFDZEMsUUFBUUQsS0FBSyxDQUFDLHlCQUF5QkE7WUFDdkMsTUFBTUE7UUFDUjtJQUNGO0lBRUEsTUFBTUUsSUFBSWhCLFNBQVMsRUFBRUMsU0FBUyxFQUFFLEVBQUU7UUFDaEMsT0FBTyxNQUFNLElBQUksQ0FBQ0YsS0FBSyxDQUFDQyxXQUFXQztJQUNyQztBQUNGO0FBRU8sTUFBTWdCLEtBQUssSUFBSW5CLGtCQUFrQiIsInNvdXJjZXMiOlsiL1VzZXJzL
/***/ }),
/***/ "(api-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fauth%2Fverify&preferredRegion=&absolutePagePath=.%2Fpages%2Fapi%2Fauth%2Fverify.js&middlewareConfigBase64=e30%3D!":
/*!********************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fauth%2Fverify&preferredRegion=&absolutePagePath=.%2Fpages%2Fapi%2Fauth%2Fverify.js&middlewareConfigBase64=e30%3D! ***!
\********************************************************************************************************************************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__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 */ handler: () => (/* binding */ handler)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_api_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/api-utils */ \"(api-node)/./node_modules/next/dist/server/api-utils/index.js\");\n/* harmony import */ var next_dist_server_api_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_api_utils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(api-node)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/route-modules/pages-api/module.compiled */ \"(api-node)/./node_modules/next/dist/server/route-modules/pages-api/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"(api-node)/./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var _pages_api_auth_verify_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pages/api/auth/verify.js */ \"(api-node)/./pages/api/auth/verify.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(api-node)/./node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(api-node)/./node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_6__);\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_pages_api_auth_verify_js__WEBPACK_IMPORTED_MODULE_4__]);\n_pages_api_auth_verify_js__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\n\n\n// Import the userland code.\n\n\n\n// Re-export the handler (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_3__.hoist)(_pages_api_auth_verify_js__WEBPACK_IMPORTED_MODULE_4__, 'default'));\n// Re-export config.\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_3__.hoist)(_pages_api_auth_verify_js__WEBPACK_IMPORTED_MODULE_4__, 'config');\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_pages_api_module_compiled__WEBPACK_IMPORTED_MODULE_2__.PagesAPIRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES_API,\n page: \"/api/auth/verify\",\n pathname: \"/api/auth/verify\",\n // The following aren't used in production.\n bundlePa
/***/ }),
/***/ "(api-node)/./pages/api/auth-utils.js":
/*!*********************************!*\
!*** ./pages/api/auth-utils.js ***!
\*********************************/
/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ generateToken: () => (/* binding */ generateToken),\n/* harmony export */ getUserById: () => (/* binding */ getUserById),\n/* harmony export */ hashPassword: () => (/* binding */ hashPassword),\n/* harmony export */ isAdmin: () => (/* binding */ isAdmin),\n/* harmony export */ verifyPassword: () => (/* binding */ verifyPassword),\n/* harmony export */ verifyToken: () => (/* binding */ verifyToken)\n/* harmony export */ });\n/* harmony import */ var jsonwebtoken__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jsonwebtoken */ \"jsonwebtoken\");\n/* harmony import */ var _lib_database_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../lib/database.js */ \"(api-node)/./lib/database.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_lib_database_js__WEBPACK_IMPORTED_MODULE_1__]);\n_lib_database_js__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\nconst JWT_SECRET = process.env.JWT_SECRET || 'your-secret-key';\nasync function hashPassword(password) {\n const bcrypt = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! bcryptjs */ \"bcryptjs\"));\n return await bcrypt.hash(password, 12);\n}\nasync function verifyPassword(password, hashedPassword) {\n const bcrypt = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! bcryptjs */ \"bcryptjs\"));\n return await bcrypt.compare(password, hashedPassword);\n}\nfunction generateToken(user) {\n return jsonwebtoken__WEBPACK_IMPORTED_MODULE_0__.sign({\n userId: user.id,\n email: user.email,\n role: user.role\n }, JWT_SECRET, {\n expiresIn: '7d'\n });\n}\nfunction verifyToken(token) {\n try {\n return jsonwebtoken__WEBPACK_IMPORTED_MODULE_0__.verify(token, JWT_SECRET);\n } catch (error) {\n return null;\n }\n}\nasync function isAdmin(userId) {\n try {\n const result = await _lib_database_js__WEBPACK_IMPORTED_MODULE_1__.db.query(`\n SELECT role FROM users WHERE id = $1\n `, [\n userId\n ]);\n return result.rows[0]?.role === 'admin';\n } catch (error) {\n console.error('Error checking admin status:', error);\n return false;\n }\n}\nasync function getUserById(userId) {\n try {\n const result = await _lib_database_js__WEBPACK_IMPORTED_MODULE_1__.db.query(`\n SELECT id, email, role, created_at FROM users WHERE id = $1\n `, [\n userId\n ]);\n return result.rows[0];\n } catch (error) {\n console.error('Error getting user:', error);\n return null;\n }\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaS1ub2RlKS8uL3BhZ2VzL2FwaS9hdXRoLXV0aWxzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQStCO0FBQ1k7QUFFM0MsTUFBTUUsYUFBYUMsUUFBUUMsR0FBRyxDQUFDRixVQUFVLElBQUk7QUFFdEMsZUFBZUcsYUFBYUMsUUFBUTtJQUN6QyxNQUFNQyxTQUFTLE1BQU0sZ0hBQWtCO0lBQ3ZDLE9BQU8sTUFBTUEsT0FBT0MsSUFBSSxDQUFDRixVQUFVO0FBQ3JDO0FBRU8sZUFBZUcsZUFBZUgsUUFBUSxFQUFFSSxjQUFjO0lBQzNELE1BQU1ILFNBQVMsTUFBTSxnSEFBa0I7SUFDdkMsT0FBTyxNQUFNQSxPQUFPSSxPQUFPLENBQUNMLFVBQVVJO0FBQ3hDO0FBRU8sU0FBU0UsY0FBY0MsSUFBSTtJQUNoQyxPQUFPYiw4Q0FBUSxDQUNiO1FBQ0VlLFFBQVFGLEtBQUtHLEVBQUU7UUFDZkMsT0FBT0osS0FBS0ksS0FBSztRQUNqQkMsTUFBTUwsS0FBS0ssSUFBSTtJQUNqQixHQUNBaEIsWUFDQTtRQUFFaUIsV0FBVztJQUFLO0FBRXRCO0FBRU8sU0FBU0MsWUFBWUMsS0FBSztJQUMvQixJQUFJO1FBQ0YsT0FBT3JCLGdEQUFVLENBQUNxQixPQUFPbkI7SUFDM0IsRUFBRSxPQUFPcUIsT0FBTztRQUNkLE9BQU87SUFDVDtBQUNGO0FBRU8sZUFBZUMsUUFBUVQsTUFBTTtJQUNsQyxJQUFJO1FBQ0YsTUFBTVUsU0FBUyxNQUFNeEIsZ0RB
/***/ }),
/***/ "(api-node)/./pages/api/auth/verify.js":
/*!**********************************!*\
!*** ./pages/api/auth/verify.js ***!
\**********************************/
/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => {
eval("__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ handler)\n/* harmony export */ });\n/* harmony import */ var _auth_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../auth-utils.js */ \"(api-node)/./pages/api/auth-utils.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_auth_utils_js__WEBPACK_IMPORTED_MODULE_0__]);\n_auth_utils_js__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\nasync function handler(req, res) {\n // Set CORS headers\n res.setHeader('Access-Control-Allow-Origin', '*');\n res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');\n res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');\n // Handle preflight requests\n if (req.method === 'OPTIONS') {\n res.status(200).end();\n return;\n }\n if (req.method !== 'GET') {\n return res.status(405).json({\n error: 'Method not allowed'\n });\n }\n try {\n const authHeader = req.headers.authorization;\n if (!authHeader || !authHeader.startsWith('Bearer ')) {\n return res.status(401).json({\n error: 'No token provided'\n });\n }\n const token = authHeader.substring(7);\n const decoded = (0,_auth_utils_js__WEBPACK_IMPORTED_MODULE_0__.verifyToken)(token);\n if (!decoded) {\n return res.status(401).json({\n error: 'Invalid token'\n });\n }\n // Get user data\n const user = await (0,_auth_utils_js__WEBPACK_IMPORTED_MODULE_0__.getUserById)(decoded.userId);\n if (!user) {\n return res.status(401).json({\n error: 'User not found'\n });\n }\n res.status(200).json({\n success: true,\n user: {\n id: user.id,\n email: user.email,\n role: user.role,\n created_at: user.created_at\n }\n });\n } catch (error) {\n console.error('Token verification error:', error);\n res.status(500).json({\n error: 'Internal server error'\n });\n }\n}\n\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwaS1ub2RlKS8uL3BhZ2VzL2FwaS9hdXRoL3ZlcmlmeS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUE0RDtBQUU3QyxlQUFlRSxRQUFRQyxHQUFHLEVBQUVDLEdBQUc7SUFDNUMsbUJBQW1CO0lBQ25CQSxJQUFJQyxTQUFTLENBQUMsK0JBQStCO0lBQzdDRCxJQUFJQyxTQUFTLENBQUMsZ0NBQWdDO0lBQzlDRCxJQUFJQyxTQUFTLENBQUMsZ0NBQWdDO0lBRTlDLDRCQUE0QjtJQUM1QixJQUFJRixJQUFJRyxNQUFNLEtBQUssV0FBVztRQUM1QkYsSUFBSUcsTUFBTSxDQUFDLEtBQUtDLEdBQUc7UUFDbkI7SUFDRjtJQUVBLElBQUlMLElBQUlHLE1BQU0sS0FBSyxPQUFPO1FBQ3hCLE9BQU9GLElBQUlHLE1BQU0sQ0FBQyxLQUFLRSxJQUFJLENBQUM7WUFBRUMsT0FBTztRQUFxQjtJQUM1RDtJQUVBLElBQUk7UUFDRixNQUFNQyxhQUFhUixJQUFJUyxPQUFPLENBQUNDLGFBQWE7UUFFNUMsSUFBSSxDQUFDRixjQUFjLENBQUNBLFdBQVdHLFVBQVUsQ0FBQyxZQUFZO1lBQ3BELE9BQU9WLElBQUlHLE1BQU0sQ0FBQyxLQUFLRSxJQUFJLENBQUM7Z0JBQUVDLE9BQU87WUFBb0I7UUFDM0Q7UUFFQSxNQUFNSyxRQUFRSixXQUFXSyxTQUFTLENBQUM7UUFDbkMsTUFBTUMsVUFBVWpCLDJEQUFXQSxDQUFDZTtRQUU1QixJQUFJLENBQUNFLFNBQVM7WUFDWixPQUFPYixJQUFJRyxNQUFNLENBQUMsS0FBS0UsSUFBSSxDQUFDO2dCQUFFQyxPQUFPO1lBQWdCO1FBQ3ZEO1FBRUEsZ0JBQWdCO1FBQ2hCLE1BQU1RLE9BQU8sTUFBTWpCLDJEQUFXQSxDQUFDZ0IsUUFBUUUsTUFBTTtRQUU3QyxJQUFJLENBQUNELE1BQU07WUFDVCxPQUFPZCxJQUFJRyxNQUFNLENBQUMsS0FBS0UsSUFBSSxDQUFDO2dCQUFFQyxPQUFPO1lBQWlCO1FBQ3hEO1FBRUFOLElBQUlHLE1BQU0sQ0FBQyxLQUFLRSxJQUFJLENBQUM7WUFDbkJXLFNBQVM7WUFDVEYsTUFBTTtnQkFDSkcsSUFBSUgsS0FBS0csRUFBRTtnQkFDWEMsT0FBT0osS0FBS0ksS0FBSztnQkFDakJDLE1BQU1MLEtBQUtLLElBQUk7Z0JBQ2ZDLFlBQVl
/***/ }),
/***/ "@neondatabase/serverless":
/*!*******************************************!*\
!*** external "@neondatabase/serverless" ***!
\*******************************************/
/***/ ((module) => {
module.exports = import("@neondatabase/serverless");;
/***/ }),
/***/ "bcryptjs":
/*!***************************!*\
!*** external "bcryptjs" ***!
\***************************/
/***/ ((module) => {
module.exports = import("bcryptjs");;
/***/ }),
/***/ "jsonwebtoken":
/*!*******************************!*\
!*** external "jsonwebtoken" ***!
\*******************************/
/***/ ((module) => {
module.exports = require("jsonwebtoken");
/***/ }),
/***/ "next/dist/compiled/next-server/pages-api.runtime.dev.js":
/*!**************************************************************************!*\
!*** external "next/dist/compiled/next-server/pages-api.runtime.dev.js" ***!
\**************************************************************************/
/***/ ((module) => {
module.exports = require("next/dist/compiled/next-server/pages-api.runtime.dev.js");
/***/ })
};
;
// load runtime
var __webpack_require__ = require("../../../webpack-api-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"], () => (__webpack_exec__("(api-node)/./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES_API&page=%2Fapi%2Fauth%2Fverify&preferredRegion=&absolutePagePath=.%2Fpages%2Fapi%2Fauth%2Fverify.js&middlewareConfigBase64=e30%3D!")));
module.exports = __webpack_exports__;
})();