UNPKG

data-validator-js

Version:
241 lines (240 loc) 8.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var passwordStrength_1 = require("../passwordStrength"); var PasswordUtilities = /** @class */ (function () { function PasswordUtilities() { } PasswordUtilities.GenerateSimplePassword = function () { var retVal = ''; for (var i = 0, n = this.charset.length; i < this.passwordDefaultOptions.weekOptions.minAlphabets; ++i) { retVal += this.charset.charAt(Math.floor(Math.random() * n)); } for (var i = 0, n = this.numericset.length; i < this.passwordDefaultOptions.weekOptions.minNumerics; ++i) { retVal += this.numericset.charAt(Math.floor(Math.random() * n)); } var inpArray = retVal.split(''); var retValArray = this.shuffle(inpArray); return retValArray; }; /** * GenerateGoodPassword */ PasswordUtilities.GenerateGoodPassword = function () { var retVal = ''; for (var i = 0, n = this.charset.length; i < this.passwordDefaultOptions.mediumOptions.minAlphabets; ++i) { retVal += this.charset.charAt(Math.floor(Math.random() * n)); } for (var i = 0, n = this.numericset.length; i < this.passwordDefaultOptions.mediumOptions.minNumerics; ++i) { retVal += this.numericset.charAt(Math.floor(Math.random() * n)); } for (var i = 0, n = this.specialCharSet.length; i < this.passwordDefaultOptions.mediumOptions.minSpecialChars; ++i) { retVal += this.specialCharSet.charAt(Math.floor(Math.random() * n)); } var inpArray = retVal.split(''); var retValArray = this.shuffle(inpArray); return retValArray; }; /** * GenerateStrongePassword */ PasswordUtilities.GenerateStrongPassword = function () { var retVal = ''; for (var i = 0, n = this.charset.length; i < this.passwordDefaultOptions.strongOptions.minAlphabets; ++i) { retVal += this.charset.charAt(Math.floor(Math.random() * n)); } for (var i = 0, n = this.numericset.length; i < this.passwordDefaultOptions.strongOptions.minNumerics; ++i) { retVal += this.numericset.charAt(Math.floor(Math.random() * n)); } for (var i = 0, n = this.specialCharSet.length; i < this.passwordDefaultOptions.strongOptions.minSpecialChars; ++i) { retVal += this.specialCharSet.charAt(Math.floor(Math.random() * n)); } var inpArray = retVal.split(''); var retValArray = this.shuffle(inpArray); return retValArray; }; /** * IsPasswordWeek */ PasswordUtilities.IsPasswordWeek = function (value) { var defaultOptions = this.passwordDefaultOptions.weekOptions; if (this.isValid(value, defaultOptions)) { return true; } else { return false; } }; /** * IsPasswordGood */ PasswordUtilities.IsPasswordGood = function (value) { var mediumoptions = this.passwordDefaultOptions.mediumOptions; if (this.isValid(value, mediumoptions)) { return true; } else { return false; } }; /** * IsPasswordStrong */ PasswordUtilities.IsPasswordStrong = function (value) { var strongoptions = this.passwordDefaultOptions.strongOptions; if (this.isValid(value, strongoptions)) { return true; } else { return false; } }; /** * checkPasswordStrength */ PasswordUtilities.CheckPasswordStrength = function (value, options) { var defaultOptions = this.passwordDefaultOptions; Object.assign(defaultOptions, options); var weekCheck = this.isValid(value, defaultOptions.weekOptions); var mediumCheck = this.isValid(value, defaultOptions.mediumOptions); var strongCheck = this.isValid(value, defaultOptions.strongOptions); if (weekCheck) { return passwordStrength_1.default.Week; } else if (mediumCheck) { return passwordStrength_1.default.Good; } else if (strongCheck) { return passwordStrength_1.default.Strong; } else { return ''; } }; /** * Shuffle the inputarray */ PasswordUtilities.shuffle = function (array) { var currentIndex = array.length; var temporaryValue; var randomIndex; // While there remain elements to shuffle... while (0 !== currentIndex) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; // And swap it with the current element. temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; }; /* **Passwordoperations check */ PasswordUtilities.getPasswordStringObject = function (value) { var _this = this; var strings = []; var nums = []; var specialCharacters = []; var inpArray = value.split(''); inpArray.map(function (val) { if (_this.stringArray.indexOf(val.toLowerCase()) > -1) { strings.push(val); } else if (_this.numArray.indexOf(val) > -1) { nums.push(val); } else if (_this.specialChars.indexOf(val) > -1) { specialCharacters.push(val); } }); return { alphabets: strings, numerics: nums, specialCharacter: specialCharacters, }; }; PasswordUtilities.isValid = function (val, options) { var passwordDevidedArray = this.getPasswordStringObject(val); var strings = passwordDevidedArray.alphabets; var nums = passwordDevidedArray.numerics; var specialCharacters = passwordDevidedArray.specialCharacter; var stringCheck = this.isValidLength(strings.length, options.minAlphabets, options.maxAlphabets); var numsCheck = this.isValidLength(nums.length, options.minNumerics, options.maxNumberics); var specialCharCheck = this.isValidLength(specialCharacters.length, options.minSpecialChars, options.maxSpecialChars); if (stringCheck && numsCheck && specialCharCheck) { return true; } else { return false; } }; PasswordUtilities.isValidLength = function (val, minLength, maxLength) { return val >= minLength && val <= maxLength; }; /** * GenerateSimplePassword */ PasswordUtilities.charset = 'abcdefghijklmnopqrstuvwxyz'; PasswordUtilities.numericset = '0123456789'; PasswordUtilities.specialCharSet = '!@#$%^&*()_+{}[]:<>?/'; PasswordUtilities.passwordDefaultOptions = { mediumOptions: { maxAlphabets: 20, maxNumberics: 8, maxSpecialChars: 4, minAlphabets: 12, minNumerics: 4, minSpecialChars: 2, }, strongOptions: { maxAlphabets: 25, maxNumberics: 10, maxSpecialChars: 8, minAlphabets: 20, minNumerics: 8, minSpecialChars: 6, }, weekOptions: { maxAlphabets: 10, maxNumberics: 4, maxSpecialChars: 0, minAlphabets: 6, minNumerics: 2, minSpecialChars: 0, }, }; PasswordUtilities.stringArray = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ]; PasswordUtilities.numArray = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']; PasswordUtilities.specialChars = ['!', '@', '#', '$', '%', '^', '&', '*']; return PasswordUtilities; }()); exports.default = PasswordUtilities;