"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateSettings = exports.TC_OLDEST_COMPATIBLE_VERSION = void 0; const consts_1 = require("./consts"); const texts_1 = require("./texts"); const semver_1 = __importDefault(require("semver")); const jsonwebtoken_1 = require("jsonwebtoken"); // TODO: we should ask TC Dashboard exports.TC_OLDEST_COMPATIBLE_VERSION = '1.14.2'; function validateSettings(settings, tcVersion, logger) { const { authenticationToken, buildId, dashboardUrl } = settings; let areSettingsValid = true; if (!authenticationToken) { logger.error(texts_1.AUTHENTICATION_TOKEN_NOT_DEFINED); areSettingsValid = false; } else { const token = jsonwebtoken_1.decode(authenticationToken); if (!token || !token.projectId) throw new Error(texts_1.AUTHENTICATION_TOKEN_INVALID); } if (!dashboardUrl) { logger.error(texts_1.DASHBOARD_LOCATION_NOT_DEFINED); areSettingsValid = false; } if (buildId && buildId.length > consts_1.MAX_BUILD_ID_LENGTH) { logger.error(texts_1.createLongBuildIdError(buildId)); areSettingsValid = false; } if (!semver_1.default.valid(tcVersion)) throw new Error(texts_1.createTestCafeVersionInvalidError(tcVersion)); else if (semver_1.default.lt(tcVersion, exports.TC_OLDEST_COMPATIBLE_VERSION)) throw new Error(texts_1.createTestCafeVersionIncompatibledError(tcVersion)); return areSettingsValid; } exports.validateSettings = validateSettings; ;