UNPKG

@walletpack/core

Version:

> TODO: description

59 lines (52 loc) 1.95 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var PasswordService = /*#__PURE__*/ function () { function PasswordService() { (0, _classCallCheck2["default"])(this, PasswordService); } (0, _createClass2["default"])(PasswordService, null, [{ key: "isLongEnough", value: function isLongEnough(password) { var suggested = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8; return password.length >= suggested; } }, { key: "uppercaseCount", value: function uppercaseCount(password) { return password.split('').filter(function (x) { return x === x.toUpperCase(); }).length; } }, { key: "lowercaseCount", value: function lowercaseCount(password) { return password.split('').filter(function (x) { return x !== x.toUpperCase(); }).length; } }, { key: "specialCharCount", value: function specialCharCount(password) { return password.replace(/[0-9a-zA-Z]/gi, '').length; } }, { key: "hasError", value: function hasError(password) { if (!this.isLongEnough(password)) return 'Your password is not long enough (8 characters)'; if (this.uppercaseCount(password) < 2) return "Passwords must have at least two uppercase letters"; if (this.lowercaseCount(password) < 2) return "Passwords must have at least two lowercase letters"; if (this.specialCharCount(password) < 2) return "Passwords must have at least two special characters (like # or @)"; return false; } }]); return PasswordService; }(); exports["default"] = PasswordService;