(() => {
var exports = {};
exports.id = 7141;
exports.ids = [7141,7206];
exports.modules = {

/***/ 402391:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "E": () => (/* binding */ LOGIN_STYLE)
/* harmony export */ });
const LOGIN_STYLE = {
    maxWidth: "400px",
    margin: "auto",
    border: "1px solid lightgrey",
    borderRadius: "5px",
    padding: "10px 20px 20px 20px",
    backgroundColor: "#fafafa",
    fontSize: "12pt",
    color: "#606060"
};


/***/ }),

/***/ 373306:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "Z": () => (/* binding */ Head)
/* harmony export */ });
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(920997);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(40968);
/* harmony import */ var next_head__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_head__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lib_customize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(400054);
/* harmony import */ var lib_base_path__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(348397);
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(371017);
/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);




const FAVICON = "/webapp/favicon-32x32.png";

function Head({ title  }) {
    const { siteName  } = (0,lib_customize__WEBPACK_IMPORTED_MODULE_2__/* .useCustomize */ .i)();
    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)((next_head__WEBPACK_IMPORTED_MODULE_1___default()), {
        children: [
            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("title", {
                children: [
                    siteName,
                    " ",
                    siteName ? "–" : "",
                    " ",
                    title
                ]
            }),
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("meta", {
                name: "description",
                content: "CoCalc landing pages and documentation"
            }),
            /*#__PURE__*/ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx("link", {
                rel: "icon",
                href: (0,path__WEBPACK_IMPORTED_MODULE_3__.join)(lib_base_path__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z ?? "", FAVICON)
            })
        ]
    });
};


/***/ }),

/***/ 866082:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  "default": () => (/* binding */ PasswordReset),
  "getServerSideProps": () => (/* binding */ getServerSideProps)
});

// EXTERNAL MODULE: external "react/jsx-runtime"
var jsx_runtime_ = __webpack_require__(920997);
// EXTERNAL MODULE: external "antd"
var external_antd_ = __webpack_require__(545725);
// EXTERNAL MODULE: ./lib/api/post.ts
var post = __webpack_require__(194184);
// EXTERNAL MODULE: external "react"
var external_react_ = __webpack_require__(616689);
// EXTERNAL MODULE: ../frontend/dist/components/icon.js
var icon = __webpack_require__(807772);
// EXTERNAL MODULE: ./components/logo-square.tsx
var logo_square = __webpack_require__(961429);
// EXTERNAL MODULE: ./components/auth/shared.ts
var shared = __webpack_require__(402391);
// EXTERNAL MODULE: ./components/landing/contact.tsx
var contact = __webpack_require__(892771);
;// CONCATENATED MODULE: ./components/auth/redeem-verify-email.tsx








function RedeemVerifyEmail({ token , email_address  }) {
    const { 0: redeeming , 1: setRedeeming  } = (0,external_react_.useState)(false);
    const { 0: error , 1: setError  } = (0,external_react_.useState)("");
    const { 0: success , 1: setSuccess  } = (0,external_react_.useState)("");
    async function redeem() {
        setRedeeming(true);
        setError("");
        setSuccess("");
        try {
            await (0,post/* default */.Z)("/auth/redeem-verify-email", {
                email_address,
                token
            });
            setSuccess("Successfully verified your email address. Thanks!");
        } catch (err) {
            setError(`${err}`);
        } finally{
            setRedeeming(false);
        }
    }
    (0,external_react_.useEffect)(()=>{
        redeem();
        return;
    }, []);
    function Body() {
        if (redeeming) {
            return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx(icon.Icon, {
                        name: "spinner",
                        spin: true
                    }),
                    " Verifying your email address..."
                ]
            });
        }
        return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
            children: [
                error && /*#__PURE__*/ jsx_runtime_.jsx(external_antd_.Alert, {
                    style: {
                        marginTop: "20px"
                    },
                    message: "Error",
                    description: /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                        style: {
                            fontSize: "12pt"
                        },
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx("b", {
                                children: error
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx("br", {}),
                            "If you are stuck ",
                            /*#__PURE__*/ jsx_runtime_.jsx(contact/* default */.Z, {
                                lower: true
                            }),
                            "."
                        ]
                    }),
                    type: "error",
                    showIcon: true
                }),
                success && /*#__PURE__*/ jsx_runtime_.jsx(external_antd_.Alert, {
                    style: {
                        marginTop: "20px"
                    },
                    message: /*#__PURE__*/ jsx_runtime_.jsx("b", {
                        children: "Success"
                    }),
                    description: /*#__PURE__*/ jsx_runtime_.jsx("div", {
                        style: {
                            fontSize: "12pt"
                        },
                        children: success
                    }),
                    type: "success",
                    showIcon: true
                })
            ]
        });
    }
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
        style: {
            padding: "15px"
        },
        children: [
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)("div", {
                style: {
                    textAlign: "center",
                    marginBottom: "15px"
                },
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx(logo_square/* default */.Z, {
                        style: {
                            width: "100px",
                            height: "100px"
                        }
                    }),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)("h1", {
                        children: [
                            success ? "Successfully " : "",
                            "Verif",
                            success ? "ied" : "y",
                            " Your Email Address"
                        ]
                    })
                ]
            }),
            /*#__PURE__*/ jsx_runtime_.jsx("div", {
                style: shared/* LOGIN_STYLE */.E,
                children: /*#__PURE__*/ jsx_runtime_.jsx(Body, {})
            })
        ]
    });
};

// EXTERNAL MODULE: ./components/landing/footer.tsx + 1 modules
var footer = __webpack_require__(831910);
// EXTERNAL MODULE: ./components/landing/head.tsx
var head = __webpack_require__(373306);
// EXTERNAL MODULE: ./components/landing/header.tsx + 2 modules
var header = __webpack_require__(131498);
// EXTERNAL MODULE: ./lib/customize.ts
var lib_customize = __webpack_require__(400054);
// EXTERNAL MODULE: ./lib/with-customize.ts
var with_customize = __webpack_require__(601880);
// EXTERNAL MODULE: external "next/router"
var router_ = __webpack_require__(371853);
;// CONCATENATED MODULE: ./pages/auth/verify/[token].tsx
/*
 *  This file is part of CoCalc: Copyright © 2021 Sagemath, Inc.
 *  License: AGPLv3 s.t. "Commons Clause" – see LICENSE.md for details
 */ // Password reset page
// WARNING: this can't work and isn't used – no idea what's going on here.
// as of 2022-07: hub/auth.ts is handing the `/auth/verify?email=...&token=...` route to the verify email addresses.









function PasswordReset({ token , customize  }) {
    const router = (0,router_.useRouter)();
    const { email  } = router.query;
    return /*#__PURE__*/ (0,jsx_runtime_.jsxs)(lib_customize/* Customize */.l, {
        value: customize,
        children: [
            /*#__PURE__*/ jsx_runtime_.jsx(head/* default */.Z, {
                title: "Verify Email Address"
            }),
            /*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_antd_.Layout, {
                children: [
                    /*#__PURE__*/ jsx_runtime_.jsx(header/* default */.Z, {}),
                    /*#__PURE__*/ (0,jsx_runtime_.jsxs)(external_antd_.Layout.Content, {
                        style: {
                            backgroundColor: "white"
                        },
                        children: [
                            /*#__PURE__*/ jsx_runtime_.jsx(RedeemVerifyEmail, {
                                token: token,
                                email_address: `${email}`
                            }),
                            /*#__PURE__*/ jsx_runtime_.jsx(footer/* default */.Z, {})
                        ]
                    })
                ]
            })
        ]
    });
};
async function getServerSideProps(context) {
    const { token  } = context.params;
    return await (0,with_customize/* default */.Z)({
        context,
        props: {
            token
        }
    });
}


/***/ }),

/***/ 689685:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var crypto = __webpack_require__(706113);

var rn = function(max) {
  var rnBytes = crypto.randomBytes(2);
  var randomNum = rnBytes.readUInt8(0) * 256 + rnBytes.readUInt8(1);
  return randomNum % max;
}

var digits = '0123456789'
var base62 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'
var base30 = '0123456789ABCDFHKLMNPQRSTUVWXYZ'  // 1-9, A-Z exclude(E, G, I, J, O) for human read

exports.generate = function(len, chars) {
  len = len || 16;
  chars = chars || base62;
  var key = '';
  var charsLen = chars.length;
  for (var i=0; i<len; i++) {
    key += chars[rn(charsLen)];
  }
  return key;
};

exports.generateDigits = function(len) {
  len = len || 16;
  return exports.generate(len, digits)
};

exports.generateBase30 = function(len) {
  len = len || 16;
  return exports.generate(len, base30)
}


/***/ }),

/***/ 545725:
/***/ ((module) => {

"use strict";
module.exports = require("antd");

/***/ }),

/***/ 770640:
/***/ ((module) => {

"use strict";
module.exports = require("cookies");

/***/ }),

/***/ 65680:
/***/ ((module) => {

"use strict";
module.exports = require("lru-cache");

/***/ }),

/***/ 903280:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/app-router-context.js");

/***/ }),

/***/ 492796:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/head-manager-context.js");

/***/ }),

/***/ 294957:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/head.js");

/***/ }),

/***/ 703539:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/i18n/detect-domain-locale.js");

/***/ }),

/***/ 734014:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/i18n/normalize-locale-path.js");

/***/ }),

/***/ 450744:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/image-config-context.js");

/***/ }),

/***/ 435843:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/image-config.js");

/***/ }),

/***/ 278524:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/is-plain-object.js");

/***/ }),

/***/ 878020:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/mitt.js");

/***/ }),

/***/ 664406:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/page-path/denormalize-page-path.js");

/***/ }),

/***/ 424964:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router-context.js");

/***/ }),

/***/ 493431:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/add-locale.js");

/***/ }),

/***/ 611751:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/add-path-prefix.js");

/***/ }),

/***/ 746220:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/compare-states.js");

/***/ }),

/***/ 110299:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/format-next-pathname-info.js");

/***/ }),

/***/ 623938:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/format-url.js");

/***/ }),

/***/ 329565:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/get-asset-path-from-route.js");

/***/ }),

/***/ 735789:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/get-next-pathname-info.js");

/***/ }),

/***/ 901428:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/is-dynamic.js");

/***/ }),

/***/ 528854:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/parse-path.js");

/***/ }),

/***/ 491292:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/parse-relative-url.js");

/***/ }),

/***/ 734567:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/path-has-prefix.js");

/***/ }),

/***/ 980979:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/querystring.js");

/***/ }),

/***/ 393297:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/remove-trailing-slash.js");

/***/ }),

/***/ 836052:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/resolve-rewrites.js");

/***/ }),

/***/ 584226:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/route-matcher.js");

/***/ }),

/***/ 95052:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/router/utils/route-regex.js");

/***/ }),

/***/ 359232:
/***/ ((module) => {

"use strict";
module.exports = require("next/dist/shared/lib/utils.js");

/***/ }),

/***/ 40968:
/***/ ((module) => {

"use strict";
module.exports = require("next/head");

/***/ }),

/***/ 371853:
/***/ ((module) => {

"use strict";
module.exports = require("next/router");

/***/ }),

/***/ 616689:
/***/ ((module) => {

"use strict";
module.exports = require("react");

/***/ }),

/***/ 920997:
/***/ ((module) => {

"use strict";
module.exports = require("react/jsx-runtime");

/***/ }),

/***/ 439491:
/***/ ((module) => {

"use strict";
module.exports = require("assert");

/***/ }),

/***/ 714300:
/***/ ((module) => {

"use strict";
module.exports = require("buffer");

/***/ }),

/***/ 706113:
/***/ ((module) => {

"use strict";
module.exports = require("crypto");

/***/ }),

/***/ 809523:
/***/ ((module) => {

"use strict";
module.exports = require("dns");

/***/ }),

/***/ 582361:
/***/ ((module) => {

"use strict";
module.exports = require("events");

/***/ }),

/***/ 657147:
/***/ ((module) => {

"use strict";
module.exports = require("fs");

/***/ }),

/***/ 241808:
/***/ ((module) => {

"use strict";
module.exports = require("net");

/***/ }),

/***/ 822037:
/***/ ((module) => {

"use strict";
module.exports = require("os");

/***/ }),

/***/ 371017:
/***/ ((module) => {

"use strict";
module.exports = require("path");

/***/ }),

/***/ 677282:
/***/ ((module) => {

"use strict";
module.exports = require("process");

/***/ }),

/***/ 12781:
/***/ ((module) => {

"use strict";
module.exports = require("stream");

/***/ }),

/***/ 371576:
/***/ ((module) => {

"use strict";
module.exports = require("string_decoder");

/***/ }),

/***/ 924404:
/***/ ((module) => {

"use strict";
module.exports = require("tls");

/***/ }),

/***/ 76224:
/***/ ((module) => {

"use strict";
module.exports = require("tty");

/***/ }),

/***/ 257310:
/***/ ((module) => {

"use strict";
module.exports = require("url");

/***/ }),

/***/ 473837:
/***/ ((module) => {

"use strict";
module.exports = require("util");

/***/ })

};
;

// 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, [6918,582,676,1746,1664,7545,9715,9554,9066,981,5997,6202], () => (__webpack_exec__(866082)));
module.exports = __webpack_exports__;

})();