password-entropy-thermostat
Version:
<h1 align="center"> password-entropy-thermostat </h1>
1 lines • 5.06 kB
JavaScript
module.exports=function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(a,r,function(t){return e[t]}.bind(null,r));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="dist",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(1);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}var l=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config={minLength:6},this.minLengthWeight=.1,this.lengthWeight=.1,this.hasNumberAndLetter=.2,this.especialCharWeight=.3,this.capitalAndSmallChar=.2,this.patternsWeight=.1}var t,n,l;return t=e,(n=[{key:"sumWeightConfig",value:function(e){return parseFloat(e.minLengthValue+e.lengthValue+e.hasNumberAndLetter+e.hasSpecialChar+e.capitalAndSmallChar+e.sequenceAndPatterns).toFixed(2)}},{key:"setWeight",value:function(e){if(!e||"object"!==r(e))throw"config should be an object";if(this.sumWeightConfig(e)<1||this.sumWeightConfig(e)>1)throw"the sum of weight should be between 0 - 1";this.minLengthWeight="number"==typeof e.minLengthValue?e.minLengthValue:this.minLengthWeight,this.lengthWeight="number"==typeof e.lengthValue?e.lengthValue:this.lengthWeight,this.hasNumberAndLetter="number"==typeof e.hasNumberAndLetter?e.hasNumberAndLetter:this.minLengthWeight,this.especialCharWeight="number"==typeof e.hasSpecialChar?e.hasSpecialChar:this.especialCharWeight,this.capitalAndSmallChar="number"==typeof e.capitalAndSmallChar?e.capitalAndSmallChar:this.capitalAndSmallChar,this.patternsWeight="number"==typeof e.sequenceAndPatterns?e.sequenceAndPatterns:this.patternsWeight}},{key:"calculateLengthValue",value:function(e){var t=e.length;return t<this.config.minLength?0:t==this.config.minLength?this.lengthWeight/2:this.lengthWeight}},{key:"calculateMinLengthValue",value:function(e){return(0,a.minLength)(e,6)?this.minLengthWeight:0}},{key:"calculateHasNumberValue",value:function(e){var t=(0,a.hasNumber)(e),n=(0,a.hasLetter)(e);return t&&n?this.hasNumberAndLetter:0}},{key:"calculateHasSpecialChar",value:function(e){return(0,a.hasSpecialChar)(e)?this.especialCharWeight:0}},{key:"calculateHasCapitalAndSmallLetters",value:function(e){var t=(0,a.hasCapitalLetter)(e),n=(0,a.hasSmallLetter)(e);return t&&n?this.capitalAndSmallChar:0}},{key:"calculateContainPatterns",value:function(e){return(0,a.containPatterns)(e)?0:this.patternsWeight}},{key:"calculateLevel",value:function(e){var t=0;return e.forEach((function(e){return t+=e.value})),t}},{key:"getPasswordLevel",value:function(e){var t=[{method:"minLengthValue",value:this.calculateMinLengthValue(e)},{method:"lengthValue",value:this.calculateLengthValue(e)},{method:"hasNumberAndLetter",value:this.calculateHasNumberValue(e)},{method:"hasSpecialChar",value:this.calculateHasSpecialChar(e)},{method:"capitalAndSmallChar",value:this.calculateHasCapitalAndSmallLetters(e)},{method:"sequenceAndPatterns",value:this.calculateContainPatterns(e)}],n=this.calculateLevel(t);return{results:t,value:parseFloat(n.toFixed(2))}}},{key:"measurePassword",value:function(e){if(!e||"string"!=typeof e||e.length<1)throw"password is required";return this.getPasswordLevel(e)}}])&&i(t.prototype,n),l&&i(t,l),e}());t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.containPatterns=t.hasLetter=t.hasSmallLetter=t.hasCapitalLetter=t.hasSpecialChar=t.hasNumber=t.minLength=void 0;t.minLength=function(e,t){return e.length>=t};t.hasNumber=function(e){return-1!=e.search(/\d/)};t.hasSpecialChar=function(e){return-1!=e.search(/[!@#$%^&*(),.?":{}|<>]/)};t.hasCapitalLetter=function(e){return-1!=e.search(/[A-Z]/)};t.hasSmallLetter=function(e){return-1!=e.search(/[a-z]/)};t.hasLetter=function(e){return-1!=e.search(/[a-z, A-Z]/)};t.containPatterns=function(e){var t=!1;return["abc","abcd","abcde","123","1234","12345","123456","qwe","qwer","asd","asdf","zxcv"].forEach((function(n){-1===e.search(n)||(t=!0)})),t}}]);