UNPKG

@cto.ai/ops

Version:

💻 CTO.ai - The CLI built for Teams 🚀

54 lines (53 loc) 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidServiceDomain = exports.isValidOpFullName = exports.validateOpIsJob = exports.validateCpassword = exports.validatePasswordFormat = exports.validateEmail = exports.isValidOpVersion = exports.isValidTeamName = exports.isValidOpName = exports.validServiceDomain = exports.validOpsAddArg = exports.validVersionChars = exports.validCharsTeamName = exports.validChars = void 0; const opConfig_1 = require("../constants/opConfig"); const strings_1 = require("../constants/strings"); exports.validChars = /^[a-zA-Z0-9-_]+$/; exports.validCharsTeamName = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/; exports.validVersionChars = /^[\w][\w.-]{0,127}$/; exports.validOpsAddArg = /^@[a-z0-9]+([._-][a-z0-9]+)*\/[\w\d-_]+\:*([\w.-])*$/; exports.validServiceDomain = /^(\*\.)?(([a-zA-Z0-9_]|[a-zA-Z0-9_][a-zA-Z0-9_\-]*[a-zA-Z0-9_])\.)*([A-Za-z0-9_]|[A-Za-z0-9_][A-Za-z0-9_\-]*[A-Za-z0-9_](\.?))$/; const isValidOpName = (opName) => { return typeof opName === 'string' && exports.validChars.test(opName); }; exports.isValidOpName = isValidOpName; const isValidTeamName = (teamName) => typeof teamName === 'string' && exports.validCharsTeamName.test(teamName); exports.isValidTeamName = isValidTeamName; const isValidOpVersion = (version) => { return typeof version === 'string' && exports.validVersionChars.test(version); }; exports.isValidOpVersion = isValidOpVersion; // RFCC 5322 official standard to validate emails const validateEmail = (email) => { return /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email); }; exports.validateEmail = validateEmail; const validatePasswordFormat = (input) => { if (input.length < 8) return `❗ This password is too short, please choose a password that is at least 8 characters long`; return true; }; exports.validatePasswordFormat = validatePasswordFormat; const validateCpassword = (input, answers) => { if (input !== answers.password) { return `❗ Password doesn't match, please try again.`; } return true; }; exports.validateCpassword = validateCpassword; const validateOpIsJob = (apiOp) => { const isJob = apiOp.type === opConfig_1.JOB_TYPE; const haveJobDescription = apiOp.publishDescription && apiOp.publishDescription.includes(strings_1.PIPELINE_PUBLISH_DESCRIPTION); return isJob || haveJobDescription; }; exports.validateOpIsJob = validateOpIsJob; const isValidOpFullName = (opFullName) => { return exports.validOpsAddArg.test(opFullName); }; exports.isValidOpFullName = isValidOpFullName; const isValidServiceDomain = (domain) => { return exports.validServiceDomain.test(domain); }; exports.isValidServiceDomain = isValidServiceDomain;