UNPKG

password-generation

Version:

Password generation and complexity checking without headache

52 lines (51 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.specials = "?:;\'$*\=+,!.`~\"%^/#@|&"; exports.charsLowerCase = "abcdefghijklmnopqrstuvwxyz"; exports.charsUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; exports.charsNumber = "1234567890"; /** * Shuffle array values using Fisher-Yates algorithm * * @param {Array} array Source array * * @returns {Array} Shuffled array */ exports.shuffle = function (array) { var i = array.length; while (i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = array[i]; array[i] = array[j]; array[j] = temp; } return array; }; exports.upperChar = function () { return exports.charFrom(exports.charsUpperCase); }; exports.lowerChar = function () { return exports.charFrom(exports.charsLowerCase); }; exports.anyChar = function (key) { if (key === 'lowers') { return exports.charFrom(exports.charsLowerCase); } if (key === 'uppers') { return exports.charFrom(exports.charsUpperCase); } if (key === 'specials') { return exports.charFrom(exports.specials); } return exports.charFrom(exports.charsNumber); }; exports.special = function () { return exports.charFrom(exports.specials); }; exports.charFrom = function (chars) { return chars.charAt(exports.random(chars.length - 1)); }; exports.random = function (max, min) { if (min === void 0) { min = 0; } return Math.floor(Math.random() * (max - min + 1) + min); };