@cto.ai/ops-rc
Version:
💻 CTO.ai Ops - The CLI built for Teams 🚀
33 lines (32 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidOpFullName = exports.validateCpassword = exports.validatePasswordFormat = exports.validateEmail = exports.isValidOpVersion = exports.isValidTeamName = exports.isValidOpName = exports.validOpsAddArg = exports.validVersionChars = exports.validCharsTeamName = exports.validChars = void 0;
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.isValidOpName = (opName) => {
return typeof opName === 'string' && exports.validChars.test(opName);
};
exports.isValidTeamName = (teamName) => typeof teamName === 'string' && exports.validCharsTeamName.test(teamName);
exports.isValidOpVersion = (version) => {
return typeof version === 'string' && exports.validVersionChars.test(version);
};
// RFCC 5322 official standard to validate emails
exports.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.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.validateCpassword = (input, answers) => {
if (input !== answers.password) {
return `❗ Password doesn't match, please try again.`;
}
return true;
};
exports.isValidOpFullName = (opFullName) => {
return exports.validOpsAddArg.test(opFullName);
};