data-validator-js
Version:
Validation Methods for all types of Data
241 lines (240 loc) • 8.26 kB
JavaScript
"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;