Files
2026-04-28 21:14:25 +03:00

4 lines
14 KiB
JavaScript

/* pwstrength-bootstrap 2018-08-28 - GPLv3 & MIT License */
!function(s){var r={};!function(o,s){"use strict";o.fallback={wordMinLength:"Your password is too short",wordMaxLength:"Your password is too long",wordInvalidChar:"Your password contains an invalid character",wordNotEmail:"Do not use your email as your password",wordSimilarToUsername:"Your password cannot contain your username",wordTwoCharacterClasses:"Use different character classes",wordRepetitions:"Too many repetitions",wordSequences:"Your password contains sequences",errorList:"Errors:",veryWeak:"Very Weak",weak:"Weak",normal:"Normal",medium:"Medium",strong:"Strong",veryStrong:"Very Strong"},o.t=function(r){var e="";return(e=s?s.t(r):o.fallback[r])===r?"":e}}(r,window.i18next);var u={};try{if(!s&&module&&module.exports){s=require("jquery");var e=require("jsdom").jsdom;s=s(e().defaultView)}}catch(r){}!function(u,d){"use strict";var r={};d.forbiddenSequences=["0123456789","abcdefghijklmnopqrstuvwxyz","qwertyuiop","asdfghjkl","zxcvbnm","!@#$%^&*()_+"],r.wordNotEmail=function(r,e,o){return e.match(/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i)?o:0},r.wordMinLength=function(r,e,o){var s=e.length,t=Math.pow(s,r.rules.raisePower);return s<r.common.minChar&&(t+=o),t},r.wordMaxLength=function(r,e,o){var s=e.length,t=Math.pow(s,r.rules.raisePower);return s>r.common.maxChar?o:t},r.wordInvalidChar=function(r,e,o){return r.common.invalidCharsRegExp.test(e)?o:0},r.wordMinLengthStaticScore=function(r,e,o){return e.length<r.common.minChar?0:o},r.wordMaxLengthStaticScore=function(r,e,o){return e.length>r.common.maxChar?0:o},r.wordSimilarToUsername=function(r,e,o){var s=u(r.common.usernameField).val();return s&&e.toLowerCase().match(s.replace(/[\-\[\]\/\{\}\(\)\*\+\=\?\:\.\\\^\$\|\!\,]/g,"\\$&").toLowerCase())?o:0},r.wordTwoCharacterClasses=function(r,e,o){return e.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)||e.match(/([a-zA-Z])/)&&e.match(/([0-9])/)||e.match(/(.[!,@,#,$,%,\^,&,*,?,_,~])/)&&e.match(/[a-zA-Z0-9_]/)?o:0},r.wordRepetitions=function(r,e,o){return e.match(/(.)\1\1/)?o:0},r.wordSequences=function(r,s,e){var t,n=!1;return 2<s.length&&(u.each(d.forbiddenSequences,function(r,e){if(!n){var o=[e,e.split("").reverse().join("")];u.each(o,function(r,e){for(t=0;t<s.length-2;t+=1)-1<e.indexOf(s.toLowerCase().substring(t,t+3))&&(n=!0)})}}),n)?e:0},r.wordLowercase=function(r,e,o){return e.match(/[a-z]/)&&o},r.wordUppercase=function(r,e,o){return e.match(/[A-Z]/)&&o},r.wordOneNumber=function(r,e,o){return e.match(/\d+/)&&o},r.wordThreeNumbers=function(r,e,o){return e.match(/(.*[0-9].*[0-9].*[0-9])/)&&o},r.wordOneSpecialChar=function(r,e,o){return e.match(/[!,@,#,$,%,\^,&,*,?,_,~]/)&&o},r.wordTwoSpecialChar=function(r,e,o){return e.match(/(.*[!,@,#,$,%,\^,&,*,?,_,~].*[!,@,#,$,%,\^,&,*,?,_,~])/)&&o},r.wordUpperLowerCombo=function(r,e,o){return e.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)&&o},r.wordLetterNumberCombo=function(r,e,o){return e.match(/([a-zA-Z])/)&&e.match(/([0-9])/)&&o},r.wordLetterNumberCharCombo=function(r,e,o){return e.match(/([a-zA-Z0-9].*[!,@,#,$,%,\^,&,*,?,_,~])|([!,@,#,$,%,\^,&,*,?,_,~].*[a-zA-Z0-9])/)&&o},r.wordIsACommonPassword=function(r,e,o){return 0<=u.inArray(e,r.rules.commonPasswords)?o:0},d.validation=r,d.executeRules=function(a,i){var c=0;return u.each(a.rules.activated,function(r,e){if(e){var o,s,t=a.rules.scores[r],n=d.validation[r];u.isFunction(n)||(n=a.rules.extra[r]),u.isFunction(n)&&((o=n(a,i,t))&&(c+=o),(o<0||!u.isNumeric(o)&&!o)&&0<(s=a.ui.spanError(a,r)).length&&a.instances.errors.push(s))}}),c}}(s,u);try{module&&module.exports&&(module.exports=u)}catch(r){}var d={common:{}};d.common.minChar=6,d.common.maxChar=20,d.common.usernameField="#username",d.common.invalidCharsRegExp=new RegExp(/[\s,'"]/),d.common.userInputs=[],d.common.onLoad=void 0,d.common.onKeyUp=void 0,d.common.onScore=void 0,d.common.zxcvbn=!1,d.common.zxcvbnTerms=[],d.common.events=["keyup","change","paste"],d.common.debug=!1,d.rules={},d.rules.extra={},d.rules.scores={wordNotEmail:-100,wordMinLength:-50,wordMaxLength:-50,wordInvalidChar:-100,wordSimilarToUsername:-100,wordSequences:-20,wordTwoCharacterClasses:2,wordRepetitions:-25,wordLowercase:1,wordUppercase:3,wordOneNumber:3,wordThreeNumbers:5,wordOneSpecialChar:3,wordTwoSpecialChar:5,wordUpperLowerCombo:2,wordLetterNumberCombo:2,wordLetterNumberCharCombo:2,wordIsACommonPassword:-100},d.rules.activated={wordNotEmail:!0,wordMinLength:!0,wordMaxLength:!1,wordInvalidChar:!1,wordSimilarToUsername:!0,wordSequences:!0,wordTwoCharacterClasses:!0,wordRepetitions:!0,wordLowercase:!0,wordUppercase:!0,wordOneNumber:!0,wordThreeNumbers:!0,wordOneSpecialChar:!0,wordTwoSpecialChar:!0,wordUpperLowerCombo:!0,wordLetterNumberCombo:!0,wordLetterNumberCharCombo:!0,wordIsACommonPassword:!0},d.rules.raisePower=1.4,d.rules.commonPasswords=["123456","password","12345678","qwerty","123456789","12345","1234","111111","1234567","dragon","123123","baseball","abc123","football","monkey","letmein","696969","shadow","master","666666","qwertyuiop","123321","mustang","1234567890","michael","654321","pussy","superman","1qaz2wsx","7777777","fuckyou","121212","000000","qazwsx","123qwe","killer","trustno1","jordan","jennifer","zxcvbnm","asdfgh","hunter","buster","soccer","harley","batman","andrew","tigger","sunshine","iloveyou","fuckme","2000","charlie","robert","thomas","hockey","ranger","daniel","starwars","klaster","112233","george","asshole","computer","michelle","jessica","pepper","1111","zxcvbn","555555","11111111","131313","freedom","777777","pass","fuck","maggie","159753","aaaaaa","ginger","princess","joshua","cheese","amanda","summer","love","ashley","6969","nicole","chelsea","biteme","matthew","access","yankees","987654321","dallas","austin","thunder","taylor","matrix"],d.ui={},d.ui.bootstrap2=!1,d.ui.bootstrap3=!1,d.ui.colorClasses=["danger","danger","danger","warning","warning","success"],d.ui.showProgressBar=!0,d.ui.progressBarEmptyPercentage=1,d.ui.progressBarMinPercentage=1,d.ui.progressExtraCssClasses="",d.ui.progressBarExtraCssClasses="",d.ui.showPopover=!1,d.ui.popoverPlacement="bottom",d.ui.showStatus=!1,d.ui.spanError=function(r,e){"use strict";var o=r.i18n.t(e);return o?'<span style="color: #d52929">'+o+"</span>":""},d.ui.popoverError=function(r){"use strict";var e=r.instances.errors,o="<div>"+r.i18n.t("errorList")+"<ul class='error-list' style='margin-bottom: 0;'>";return s.each(e,function(r,e){o+="<li>"+e+"</li>"}),o+="</ul></div>"},d.ui.showVerdicts=!0,d.ui.showVerdictsInsideProgressBar=!1,d.ui.useVerdictCssClass=!1,d.ui.showErrors=!1,d.ui.showScore=!1,d.ui.container=void 0,d.ui.viewports={progress:void 0,verdict:void 0,errors:void 0,score:void 0},d.ui.scores=[0,14,26,38,50],d.i18n={},d.i18n.t=r.t;var p={};!function(i,c){"use strict";var n=["error","warning","success"],t=["veryWeak","weak","normal","medium","strong","veryStrong"];c.getContainer=function(r,e){var o;return(o=i(r.ui.container))&&1===o.length||(o=e.parent()),o},c.findElement=function(r,e,o){return e?r.find(e).find(o):r.find(o)},c.getUIElements=function(r,e){var o,s;return r.instances.viewports?r.instances.viewports:(o=c.getContainer(r,e),(s={}).$progressbar=c.findElement(o,r.ui.viewports.progress,"div.progress"),r.ui.showVerdictsInsideProgressBar&&(s.$verdict=s.$progressbar.find("span.password-verdict")),r.ui.showPopover||(r.ui.showVerdictsInsideProgressBar||(s.$verdict=c.findElement(o,r.ui.viewports.verdict,"span.password-verdict")),s.$errors=c.findElement(o,r.ui.viewports.errors,"ul.error-list")),s.$score=c.findElement(o,r.ui.viewports.score,"span.password-score"),r.instances.viewports=s)},c.initProgressBar=function(r,e){var o=c.getContainer(r,e),s="<div class='progress ";r.ui.bootstrap2?s+=r.ui.progressBarExtraCssClasses+"'><div class='":s+=r.ui.progressExtraCssClasses+"'><div class='"+r.ui.progressBarExtraCssClasses+" progress-",s+="bar'>",r.ui.showVerdictsInsideProgressBar&&(s+="<span class='password-verdict'></span>"),s+="</div></div>",r.ui.viewports.progress?o.find(r.ui.viewports.progress).append(s):i(s).insertAfter(e)},c.initHelper=function(r,e,o,s){var t=c.getContainer(r,e);s?t.find(s).append(o):i(o).insertAfter(e)},c.initVerdict=function(r,e){c.initHelper(r,e,"<span class='password-verdict'></span>",r.ui.viewports.verdict)},c.initErrorList=function(r,e){c.initHelper(r,e,"<ul class='error-list'></ul>",r.ui.viewports.errors)},c.initScore=function(r,e){c.initHelper(r,e,"<span class='password-score'></span>",r.ui.viewports.score)},c.initPopover=function(r,e){e.popover("destroy"),e.popover({html:!0,placement:r.ui.popoverPlacement,trigger:"manual",content:" "})},c.initUI=function(r,e){r.ui.showPopover?c.initPopover(r,e):(r.ui.showErrors&&c.initErrorList(r,e),r.ui.showVerdicts&&!r.ui.showVerdictsInsideProgressBar&&c.initVerdict(r,e)),r.ui.showProgressBar&&c.initProgressBar(r,e),r.ui.showScore&&c.initScore(r,e)},c.updateProgressBar=function(o,r,e,s){var t=c.getUIElements(o,r).$progressbar,n=t.find(".progress-bar"),a="progress-";o.ui.bootstrap2&&(n=t.find(".bar"),a=""),i.each(o.ui.colorClasses,function(r,e){o.ui.bootstrap2||o.ui.bootstrap3?n.removeClass(a+"bar-"+e):n.removeClass("bg-"+e)}),o.ui.bootstrap2||o.ui.bootstrap3?n.addClass(a+"bar-"+o.ui.colorClasses[e]):n.addClass("bg-"+o.ui.colorClasses[e]),n.css("width",s+"%")},c.updateVerdict=function(r,e,o,s){var t=c.getUIElements(r,e).$verdict;t.removeClass(r.ui.colorClasses.join(" ")),-1<o&&t.addClass(r.ui.colorClasses[o]),r.ui.showVerdictsInsideProgressBar&&t.css("white-space","nowrap"),t.html(s)},c.updateErrors=function(r,e,o){var s=c.getUIElements(r,e).$errors,t="";o||i.each(r.instances.errors,function(r,e){t+="<li>"+e+"</li>"}),s.html(t)},c.updateScore=function(r,e,o,s){var t=c.getUIElements(r,e).$score,n="";s||(n=o.toFixed(2)),t.html(n)},c.updatePopover=function(r,e,o,s){var t=e.data("bs.popover"),n="",a=!0;r.ui.showVerdicts&&!r.ui.showVerdictsInsideProgressBar&&0<o.length&&(n="<h5><span class='password-verdict'>"+o+"</span></h5>",a=!1),r.ui.showErrors&&(0<r.instances.errors.length&&(a=!1),n+=r.ui.popoverError(r)),a||s?e.popover("hide"):(r.ui.bootstrap2&&(t=e.data("popover")),t.$arrow&&0<t.$arrow.parents("body").length?e.find("+ .popover .popover-content").html(n):(r.ui.bootstrap2||r.ui.bootstrap3?t.options.content=n:t.config.content=n,e.popover("show")))},c.updateFieldStatus=function(o,r,e,s){var t=r;o.ui.bootstrap2?t=r.parents(".control-group").first():o.ui.bootstrap3&&(t=r.parents(".form-group").first()),i.each(n,function(r,e){o.ui.bootstrap3?e="has-"+e:o.ui.bootstrap2||("error"===e&&(e="danger"),e="border-"+e),t.removeClass(e)}),s||(e=n[Math.floor(e/2)],o.ui.bootstrap3?e="has-"+e:o.ui.bootstrap2||("error"===e&&(e="danger"),e="border-"+e),t.addClass(e))},c.percentage=function(r,e,o){var s=Math.floor(100*e/o),t=r.ui.progressBarMinPercentage;return s=100<(s=s<=t?t:s)?100:s},c.getVerdictAndCssClass=function(r,e){var o,s;return void 0===e?["",0]:(o=e<=r.ui.scores[0]?0:e<r.ui.scores[1]?1:e<r.ui.scores[2]?2:e<r.ui.scores[3]?3:e<r.ui.scores[4]?4:5,s=t[o],[r.i18n.t(s),o])},c.updateUI=function(r,e,o){var s,t,n,a;s=c.getVerdictAndCssClass(r,o),n=0===o?"":s[0],s=s[1],a=r.ui.useVerdictCssClass?s:-1,r.ui.showProgressBar&&(t=void 0===o?r.ui.progressBarEmptyPercentage:c.percentage(r,o,r.ui.scores[4]),c.updateProgressBar(r,e,s,t),r.ui.showVerdictsInsideProgressBar&&c.updateVerdict(r,e,a,n)),r.ui.showStatus&&c.updateFieldStatus(r,e,s,void 0===o),r.ui.showPopover?c.updatePopover(r,e,n,void 0===o):(r.ui.showVerdicts&&!r.ui.showVerdictsInsideProgressBar&&c.updateVerdict(r,e,a,n),r.ui.showErrors&&c.updateErrors(r,e,void 0===o)),r.ui.showScore&&c.updateScore(r,e,o,void 0===o)}}(s,p);!function(c,o){"use strict";var a,i,s;a=function(r){var s,e,o,t,n=c(r.target),a=n.data("pwstrength-bootstrap"),i=n.val();void 0!==a&&(a.instances.errors=[],0===i.length?t=void 0:(a.common.zxcvbn?(s=[],c.each(a.common.userInputs.concat([a.common.usernameField]),function(r,e){var o=c(e).val();o&&s.push(o)}),s=s.concat(a.common.zxcvbnTerms),t=zxcvbn(i,s).guesses,t=Math.log(t)*Math.LOG2E):t=u.executeRules(a,i),c.isFunction(a.common.onScore)&&(t=a.common.onScore(a,i,t))),p.updateUI(a,n,t),o=(e=p.getVerdictAndCssClass(a,t))[1],e=e[0],a.common.debug&&console.log(t+" - "+e),c.isFunction(a.common.onKeyUp)&&a.common.onKeyUp(r,{score:t,verdictText:e,verdictLevel:o}))},i=function(r){var e,o=c(r.target),s=o.val(),t=0;e=function(){o.val()!==s?a(r):t<3&&(t+=1,setTimeout(e,100))},setTimeout(e,100)},o.init=function(n){return this.each(function(r,e){var o=c.extend(!0,{},d),s=c.extend(!0,o,n),t=c(e);s.instances={},t.data("pwstrength-bootstrap",s),c.each(s.common.events,function(r,e){var o="paste"===e?i:a;t.on(e,o)}),p.initUI(s,t),t.trigger("keyup"),c.isFunction(s.common.onLoad)&&s.common.onLoad()}),this},o.destroy=function(){this.each(function(r,e){var o=c(e),s=o.data("pwstrength-bootstrap"),t=p.getUIElements(s,o);t.$progressbar.remove(),t.$verdict.remove(),t.$errors.remove(),o.removeData("pwstrength-bootstrap")})},o.forceUpdate=function(){this.each(function(r,e){a({target:e})})},o.addRule=function(s,t,n,a){this.each(function(r,e){var o=c(e).data("pwstrength-bootstrap");o.rules.activated[s]=a,o.rules.scores[s]=n,o.rules.extra[s]=t})},s=function(o,s,t){this.each(function(r,e){c(e).data("pwstrength-bootstrap").rules[s][o]=t})},o.changeScore=function(r,e){s.call(this,r,"scores",e)},o.ruleActive=function(r,e){s.call(this,r,"activated",e)},o.ruleIsMet=function(s){if(c.isFunction(u.validation[s])){"wordMinLength"===s?s="wordMinLengthStaticScore":"wordMaxLength"===s&&(s="wordMaxLengthStaticScore");var t=0;return this.each(function(r,e){var o=c(e).data("pwstrength-bootstrap");t+=u.validation[s](o,c(e).val(),1)}),t===this.length}c.error("Rule "+s+" does not exist on jQuery.pwstrength-bootstrap.validation")},c.fn.pwstrength=function(r){var e;return o[r]?e=o[r].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof r&&r?c.error("Method "+r+" does not exist on jQuery.pwstrength-bootstrap"):e=o.init.apply(this,arguments),e}}(s,{})}(jQuery);
//# sourceMappingURL=pwstrength-bootstrap.min.map