"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = postLoginResponseHandler; const encrypt_1 = __importDefault(require("../../dsql/encrypt")); const debug_log_1 = __importDefault(require("../../../utils/logging/debug-log")); const get_auth_cookie_names_1 = __importDefault(require("../cookies/get-auth-cookie-names")); const write_auth_files_1 = require("./write-auth-files"); const grab_cookie_expirt_date_1 = __importDefault(require("../../../utils/grab-cookie-expirt-date")); function debugFn(log, label) { (0, debug_log_1.default)({ log, addTime: true, title: "loginUser", label }); } /** * # Login A user */ function postLoginResponseHandler({ database, httpResponse, response, encryptionKey, encryptionSalt, debug, token, skipWriteAuthFile, cleanupTokens, secureCookie, }) { var _a, _b; const COOKIE_EXPIRY_DATE = (0, grab_cookie_expirt_date_1.default)(); if (httpResponse === null || httpResponse === void 0 ? void 0 : httpResponse.success) { let encryptedPayload = (0, encrypt_1.default)({ data: JSON.stringify(httpResponse.payload), encryptionKey, encryptionSalt, }); try { if (token && encryptedPayload) httpResponse["token"] = encryptedPayload; } catch (error) { console.log("Login User HTTP Response Error:", error.message); } const cookieNames = (0, get_auth_cookie_names_1.default)({ database, }); if (httpResponse.csrf && !skipWriteAuthFile) { (0, write_auth_files_1.writeAuthFile)(httpResponse.csrf, JSON.stringify(httpResponse.payload), cleanupTokens && ((_a = httpResponse.payload) === null || _a === void 0 ? void 0 : _a.id) ? { userId: httpResponse.payload.id } : undefined); } httpResponse["cookieNames"] = cookieNames; httpResponse["key"] = String(encryptedPayload); const authKeyName = cookieNames.keyCookieName; const csrfName = cookieNames.csrfCookieName; if (debug) { debugFn(authKeyName, "authKeyName"); debugFn(csrfName, "csrfName"); debugFn(encryptedPayload, "encryptedPayload"); } response === null || response === void 0 ? void 0 : response.setHeader("Set-Cookie", [ `${authKeyName}=${encryptedPayload};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}${secureCookie ? ";Secure=true" : ""}`, `${csrfName}=${(_b = httpResponse.payload) === null || _b === void 0 ? void 0 : _b.csrf_k};samesite=strict;path=/;HttpOnly=true;Expires=${COOKIE_EXPIRY_DATE}`, ]); if (debug) { debugFn("Response Sent!"); } return true; } else { return false; } }