UNPKG

@brontosaurus/db

Version:
64 lines (63 loc) 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validatePassword = exports.PASSWORD_VALIDATE_RESPONSE = exports.validateUsername = exports.USERNAME_VALIDATE_RESPONSE = void 0; var USERNAME_VALIDATE_RESPONSE; (function (USERNAME_VALIDATE_RESPONSE) { USERNAME_VALIDATE_RESPONSE["TOO_SHORT"] = "TOO_SHORT"; USERNAME_VALIDATE_RESPONSE["NO_SPACE"] = "NO_SPACE"; USERNAME_VALIDATE_RESPONSE["MUST_START_WITH_LETTER"] = "MUST_START_WITH_LETTER"; USERNAME_VALIDATE_RESPONSE["ONLY_LETTERS_OR_NUMBERS"] = "ONLY_LETTERS_OR_NUMBERS"; USERNAME_VALIDATE_RESPONSE["OK"] = "OK"; })(USERNAME_VALIDATE_RESPONSE = exports.USERNAME_VALIDATE_RESPONSE || (exports.USERNAME_VALIDATE_RESPONSE = {})); const validateUsername = (username, length = 2, startWithLetter = true) => { if (username.length < length) { return USERNAME_VALIDATE_RESPONSE.TOO_SHORT; } if (startWithLetter) { if (!/^[A-Za-z]$/.test(username.substring(0, 1))) { return USERNAME_VALIDATE_RESPONSE.MUST_START_WITH_LETTER; } } if (username.includes(' ')) { return USERNAME_VALIDATE_RESPONSE.NO_SPACE; } if (!/^([A-Za-z0-9]|-)+$/.test(username)) { return USERNAME_VALIDATE_RESPONSE.ONLY_LETTERS_OR_NUMBERS; } return USERNAME_VALIDATE_RESPONSE.OK; }; exports.validateUsername = validateUsername; var PASSWORD_VALIDATE_RESPONSE; (function (PASSWORD_VALIDATE_RESPONSE) { PASSWORD_VALIDATE_RESPONSE["TOO_SHORT"] = "TOO_SHORT"; PASSWORD_VALIDATE_RESPONSE["ONLY_KEYBOARD_CHARACTER_AVAILABLE"] = "ONLY_KEYBOARD_CHARACTER_AVAILABLE"; PASSWORD_VALIDATE_RESPONSE["HAVE_TO_INCLUDE_LETTER"] = "HAVE_TO_INCLUDE_LETTER"; PASSWORD_VALIDATE_RESPONSE["HAVE_TO_INCLUDE_NUMBER"] = "HAVE_TO_INCLUDE_NUMBER"; PASSWORD_VALIDATE_RESPONSE["HAVE_TO_INCLUDE_SYMBOL"] = "HAVE_TO_INCLUDE_SYMBOL"; PASSWORD_VALIDATE_RESPONSE["OK"] = "OK"; })(PASSWORD_VALIDATE_RESPONSE = exports.PASSWORD_VALIDATE_RESPONSE || (exports.PASSWORD_VALIDATE_RESPONSE = {})); const validatePassword = (password, length = 8, haveToIncludeLetter = true, haveToIncludeNumber = true, haveToIncludeSymbol = false) => { if (password.length < length) { return PASSWORD_VALIDATE_RESPONSE.TOO_SHORT; } if (!/^([A-Za-z0-9]|[!@#$%^&*()[\]{};:'",./<>?~`\-+_=\\| ])+$/.test(password)) { return PASSWORD_VALIDATE_RESPONSE.ONLY_KEYBOARD_CHARACTER_AVAILABLE; } if (haveToIncludeLetter) { if (!/^.*[A-Za-z].*$/.test(password)) { return PASSWORD_VALIDATE_RESPONSE.HAVE_TO_INCLUDE_LETTER; } } if (haveToIncludeNumber) { if (!/^.*[0-9].*$/.test(password)) { return PASSWORD_VALIDATE_RESPONSE.HAVE_TO_INCLUDE_NUMBER; } } if (haveToIncludeSymbol) { if (!/.+[!@#$%^&*()[\]{};:'",./<>?~`-+_=].+/.test(password)) { return PASSWORD_VALIDATE_RESPONSE.HAVE_TO_INCLUDE_SYMBOL; } } return PASSWORD_VALIDATE_RESPONSE.OK; }; exports.validatePassword = validatePassword;