index-9f9c48fd.js 27 KB

12
  1. var Oe=Object.defineProperty,Ne=Object.defineProperties;var qe=Object.getOwnPropertyDescriptors;var mt=Object.getOwnPropertySymbols;var Fe=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var L=Math.pow,bt=(k,m,b)=>m in k?Oe(k,m,{enumerable:!0,configurable:!0,writable:!0,value:b}):k[m]=b,C=(k,m)=>{for(var b in m||(m={}))Fe.call(m,b)&&bt(k,b,m[b]);if(mt)for(var b of mt(m))We.call(m,b)&&bt(k,b,m[b]);return k},E=(k,m)=>Ne(k,qe(m));var yt=(k,m,b)=>new Promise((z,R)=>{var F=T=>{try{O(b.next(T))}catch(P){R(P)}},Y=T=>{try{O(b.throw(T))}catch(P){R(P)}},O=T=>T.done?z(T.value):Promise.resolve(T.value).then(F,Y);O((b=b.apply(k,m)).next())});import{d as $e,I as ze,aG as B,r as Ye,W as Ge,A as _e,a6 as He,j as Ue,u as V,_ as Be,y as Ve,o as wt,l as Ze,c as Xe,ap as Ke,O as Je,w as Qe,ai as ts,aq as es,ar as ss,P as ns,H as as,a as kt,X as Z,ax as rs,__tla as is}from"./index-b5895273.js";let xt,os=Promise.all([(()=>{try{return is}catch(k){}})()]).then(()=>yt(void 0,null,function*(){const k=(a,t)=>a.push.apply(a,t),m=a=>a.sort((t,e)=>t.i-e.i||t.j-e.j),b=a=>{const t={};let e=1;return a.forEach(s=>{t[s]=e,e+=1}),t};var z={4:[[1,2],[2,3]],5:[[1,3],[2,3],[2,4]],6:[[1,2],[2,4],[4,5]],7:[[1,3],[2,3],[4,5],[4,6]],8:[[2,4],[4,6]]};const R=2050,F=1e3,Y=z,O=10,T=1e4,P=10,X=50,K=20,J=/^[A-Z\xbf-\xdf][^A-Z\xbf-\xdf]+$/,Mt=/^[^A-Z\xbf-\xdf]+[A-Z\xbf-\xdf]$/,St=/^[A-Z\xbf-\xdf]+$/,Q=/^[^a-z\xdf-\xff]+$/,vt=/^[a-z\xdf-\xff]+$/,Ct=/^[^A-Z\xbf-\xdf]+$/,jt=/[a-z\xdf-\xff]/,It=/[A-Z\xbf-\xdf]/,Tt=/[^A-Za-z\xbf-\xdf]/gi,At=/^\d+$/,G=new Date().getFullYear(),Dt={recentYear:/19\d\d|200\d|201\d|202\d/g},tt=[" ",",",";",":","|","/","\\","_",".","-"],Et=tt.length;class Pt{match({password:t}){const e=[...this.getMatchesWithoutSeparator(t),...this.getMatchesWithSeparator(t)],s=this.filterNoise(e);return m(s)}getMatchesWithSeparator(t){const e=[],s=/^(\d{1,4})([\s/\\_.-])(\d{1,2})\2(\d{1,4})$/;for(let n=0;n<=Math.abs(t.length-6);n+=1)for(let r=n+5;r<=n+9&&!(r>=t.length);r+=1){const i=t.slice(n,+r+1||9e9),o=s.exec(i);if(o!=null){const l=this.mapIntegersToDayMonthYear([parseInt(o[1],10),parseInt(o[3],10),parseInt(o[4],10)]);l!=null&&e.push({pattern:"date",token:i,i:n,j:r,separator:o[2],year:l.year,month:l.month,day:l.day})}}return e}getMatchesWithoutSeparator(t){const e=[],s=/^\d{4,8}$/,n=r=>Math.abs(r.year-G);for(let r=0;r<=Math.abs(t.length-4);r+=1)for(let i=r+3;i<=r+7&&!(i>=t.length);i+=1){const o=t.slice(r,+i+1||9e9);if(s.exec(o)){const l=[],c=o.length;if(Y[c].forEach(([u,p])=>{const f=this.mapIntegersToDayMonthYear([parseInt(o.slice(0,u),10),parseInt(o.slice(u,p),10),parseInt(o.slice(p),10)]);f!=null&&l.push(f)}),l.length>0){let u=l[0],p=n(l[0]);l.slice(1).forEach(f=>{const y=n(f);y<p&&(u=f,p=y)}),e.push({pattern:"date",token:o,i:r,j:i,separator:"",year:u.year,month:u.month,day:u.day})}}}return e}filterNoise(t){return t.filter(e=>{let s=!1;const n=t.length;for(let r=0;r<n;r+=1){const i=t[r];if(e!==i&&i.i<=e.i&&i.j>=e.j){s=!0;break}}return!s})}mapIntegersToDayMonthYear(t){if(t[1]>31||t[1]<=0)return null;let e=0,s=0,n=0;for(let r=0,i=t.length;r<i;r+=1){const o=t[r];if(o>99&&o<F||o>R)return null;o>31&&(s+=1),o>12&&(e+=1),o<=0&&(n+=1)}return s>=2||e===3||n>=2?null:this.getDayMonth(t)}getDayMonth(t){const e=[[t[2],t.slice(0,2)],[t[0],t.slice(1,3)]],s=e.length;for(let n=0;n<s;n+=1){const[r,i]=e[n];if(F<=r&&r<=R){const o=this.mapIntegersToDayMonth(i);return o!=null?{year:r,month:o.month,day:o.day}:null}}for(let n=0;n<s;n+=1){const[r,i]=e[n],o=this.mapIntegersToDayMonth(i);if(o!=null)return{year:this.twoToFourDigitYear(r),month:o.month,day:o.day}}return null}mapIntegersToDayMonth(t){const e=[t,t.slice().reverse()];for(let s=0;s<e.length;s+=1){const n=e[s],r=n[0],i=n[1];if(r>=1&&r<=31&&i>=1&&i<=12)return{day:r,month:i}}return null}twoToFourDigitYear(t){return t>99?t:t>50?t+1900:t+2e3}}const A=new Uint32Array(65536),Lt=(a,t)=>{const e=a.length,s=t.length,n=1<<e-1;let r=-1,i=0,o=e,l=e;for(;l--;)A[a.charCodeAt(l)]|=1<<l;for(l=0;l<s;l++){let c=A[t.charCodeAt(l)];const u=c|i;c|=(c&r)+r^r,i|=~(c|r),r&=c,i&n&&o++,r&n&&o--,i=i<<1|1,r=r<<1|~(u|i),i&=u}for(l=e;l--;)A[a.charCodeAt(l)]=0;return o},Rt=(a,t)=>{const e=t.length,s=a.length,n=[],r=[],i=Math.ceil(e/32),o=Math.ceil(s/32);for(let d=0;d<i;d++)r[d]=-1,n[d]=0;let l=0;for(;l<o-1;l++){let d=0,w=-1;const j=l*32,M=Math.min(32,s)+j;for(let g=j;g<M;g++)A[a.charCodeAt(g)]|=1<<g;for(let g=0;g<e;g++){const v=A[t.charCodeAt(g)],S=r[g/32|0]>>>g&1,I=n[g/32|0]>>>g&1,pt=v|d,ft=((v|I)&w)+w^w|v|I;let q=d|~(ft|w),$=w&ft;q>>>31^S&&(r[g/32|0]^=1<<g),$>>>31^I&&(n[g/32|0]^=1<<g),q=q<<1|S,$=$<<1|I,w=$|~(pt|q),d=q&pt}for(let g=j;g<M;g++)A[a.charCodeAt(g)]=0}let c=0,u=-1;const p=l*32,f=Math.min(32,s-p)+p;for(let d=p;d<f;d++)A[a.charCodeAt(d)]|=1<<d;let y=s;for(let d=0;d<e;d++){const w=A[t.charCodeAt(d)],j=r[d/32|0]>>>d&1,M=n[d/32|0]>>>d&1,g=w|c,v=((w|M)&u)+u^u|w|M;let S=c|~(v|u),I=u&v;y+=S>>>s-1&1,y-=I>>>s-1&1,S>>>31^j&&(r[d/32|0]^=1<<d),I>>>31^M&&(n[d/32|0]^=1<<d),S=S<<1|j,I=I<<1|M,u=I|~(g|S),c=S&g}for(let d=p;d<f;d++)A[a.charCodeAt(d)]=0;return y},Ot=(a,t)=>{if(a.length<t.length){const e=t;t=a,a=e}return t.length===0?a.length:a.length<=32?Lt(a,t):Rt(a,t)},Nt=(a,t,e)=>{const s=a.length<=t.length,n=a.length<=e;return s||n?Math.ceil(a.length/4):e},qt=(a,t,e)=>{let s=0;const n=Object.keys(t).find(r=>{const i=Nt(a,r,e);if(Math.abs(a.length-r.length)>i)return!1;const o=Ot(a,r),l=o<=i;return l&&(s=o),l});return n?{levenshteinDistance:s,levenshteinDistanceEntry:n}:{}};var et={a:["4","@"],b:["8"],c:["(","{","[","<"],d:["6","|)"],e:["3"],f:["#"],g:["6","9","&"],h:["#","|-|"],i:["1","!","|"],k:["<","|<"],l:["!","1","|","7"],m:["^^","nn","2n","/\\\\/\\\\"],n:["//"],o:["0","()"],q:["9"],u:["|_|"],s:["$","5"],t:["+","7"],v:["<",">","/"],w:["^/","uu","vv","2u","2v","\\\\/\\\\/"],x:["%","><"],z:["2"]},_={warnings:{straightRow:"straightRow",keyPattern:"keyPattern",simpleRepeat:"simpleRepeat",extendedRepeat:"extendedRepeat",sequences:"sequences",recentYears:"recentYears",dates:"dates",topTen:"topTen",topHundred:"topHundred",common:"common",similarToCommon:"similarToCommon",wordByItself:"wordByItself",namesByThemselves:"namesByThemselves",commonNames:"commonNames",userInputs:"userInputs",pwned:"pwned"},suggestions:{l33t:"l33t",reverseWords:"reverseWords",allUppercase:"allUppercase",capitalization:"capitalization",dates:"dates",recentYears:"recentYears",associatedYears:"associatedYears",sequences:"sequences",repeated:"repeated",longerKeyboardPattern:"longerKeyboardPattern",anotherWord:"anotherWord",useWords:"useWords",noNeed:"noNeed",pwned:"pwned"},timeEstimation:{ltSecond:"ltSecond",second:"second",seconds:"seconds",minute:"minute",minutes:"minutes",hour:"hour",hours:"hours",day:"day",days:"days",month:"month",months:"months",year:"year",years:"years",centuries:"centuries"}};class N{constructor(t=[]){this.parents=t,this.children=new Map}addSub(t,...e){const s=t.charAt(0);this.children.has(s)||this.children.set(s,new N([...this.parents,s]));let n=this.children.get(s);for(let r=1;r<t.length;r+=1){const i=t.charAt(r);n.hasChild(i)||n.addChild(i),n=n.getChild(i)}return n.subs=(n.subs||[]).concat(e),this}getChild(t){return this.children.get(t)}isTerminal(){return!!this.subs}addChild(t){this.hasChild(t)||this.children.set(t,new N([...this.parents,t]))}hasChild(t){return this.children.has(t)}}var st=(a,t)=>(Object.entries(a).forEach(([e,s])=>{s.forEach(n=>{t.addSub(n,e)})}),t);class Ft{constructor(){this.matchers={},this.l33tTable=et,this.trieNodeRoot=st(et,new N),this.dictionary={userInputs:[]},this.rankedDictionaries={},this.rankedDictionariesMaxWordSize={},this.translations=_,this.graphs={},this.useLevenshteinDistance=!1,this.levenshteinThreshold=2,this.l33tMaxSubstitutions=100,this.maxLength=256,this.setRankedDictionaries()}setOptions(t={}){t.l33tTable&&(this.l33tTable=t.l33tTable,this.trieNodeRoot=st(t.l33tTable,new N)),t.dictionary&&(this.dictionary=t.dictionary,this.setRankedDictionaries()),t.translations&&this.setTranslations(t.translations),t.graphs&&(this.graphs=t.graphs),t.useLevenshteinDistance!==void 0&&(this.useLevenshteinDistance=t.useLevenshteinDistance),t.levenshteinThreshold!==void 0&&(this.levenshteinThreshold=t.levenshteinThreshold),t.l33tMaxSubstitutions!==void 0&&(this.l33tMaxSubstitutions=t.l33tMaxSubstitutions),t.maxLength!==void 0&&(this.maxLength=t.maxLength)}setTranslations(t){if(this.checkCustomTranslations(t))this.translations=t;else throw new Error("Invalid translations object fallback to keys")}checkCustomTranslations(t){let e=!0;return Object.keys(_).forEach(s=>{if(s in t){const n=s;Object.keys(_[n]).forEach(r=>{r in t[n]||(e=!1)})}else e=!1}),e}setRankedDictionaries(){const t={},e={};Object.keys(this.dictionary).forEach(s=>{t[s]=b(this.dictionary[s]),e[s]=this.getRankedDictionariesMaxWordSize(this.dictionary[s])}),this.rankedDictionaries=t,this.rankedDictionariesMaxWordSize=e}getRankedDictionariesMaxWordSize(t){const e=t.map(s=>typeof s!="string"?s.toString().length:s.length);return e.length===0?0:e.reduce((s,n)=>Math.max(s,n),-1/0)}buildSanitizedRankedDictionary(t){const e=[];return t.forEach(s=>{const n=typeof s;(n==="string"||n==="number"||n==="boolean")&&e.push(s.toString().toLowerCase())}),b(e)}extendUserInputsDictionary(t){this.dictionary.userInputs||(this.dictionary.userInputs=[]);const e=[...this.dictionary.userInputs,...t];this.rankedDictionaries.userInputs=this.buildSanitizedRankedDictionary(e),this.rankedDictionariesMaxWordSize.userInputs=this.getRankedDictionariesMaxWordSize(e)}addMatcher(t,e){this.matchers[t]||(this.matchers[t]=e)}}const h=new Ft;class Wt{constructor(t){this.defaultMatch=t}match({password:t}){const e=t.split("").reverse().join("");return this.defaultMatch({password:e}).map(s=>E(C({},s),{token:s.token.split("").reverse().join(""),reversed:!0,i:t.length-1-s.j,j:t.length-1-s.i}))}}class $t{constructor({substr:t,limit:e,trieRoot:s}){this.buffer=[],this.finalPasswords=[],this.substr=t,this.limit=e,this.trieRoot=s}getAllPossibleSubsAtIndex(t){const e=[];let s=this.trieRoot;for(let n=t;n<this.substr.length;n+=1){const r=this.substr.charAt(n);if(s=s.getChild(r),!s)break;e.push(s)}return e}helper({onlyFullSub:t,isFullSub:e,index:s,subIndex:n,changes:r,lastSubLetter:i,consecutiveSubCount:o}){if(this.finalPasswords.length>=this.limit)return;if(s===this.substr.length){t===e&&this.finalPasswords.push({password:this.buffer.join(""),changes:r});return}const l=[...this.getAllPossibleSubsAtIndex(s)];let c=!1;for(let u=s+l.length-1;u>=s;u-=1){const p=l[u-s];if(p.isTerminal()){if(i===p.parents.join("")&&o>=3)continue;c=!0;const f=p.subs;for(const y of f){this.buffer.push(y);const d=r.concat({i:n,letter:y,substitution:p.parents.join("")});if(this.helper({onlyFullSub:t,isFullSub:e,index:u+1,subIndex:n+y.length,changes:d,lastSubLetter:p.parents.join(""),consecutiveSubCount:i===p.parents.join("")?o+1:1}),this.buffer.pop(),this.finalPasswords.length>=this.limit)return}}}if(!t||!c){const u=this.substr.charAt(s);this.buffer.push(u),this.helper({onlyFullSub:t,isFullSub:e&&!c,index:s+1,subIndex:n+1,changes:r,lastSubLetter:i,consecutiveSubCount:o}),this.buffer.pop()}}getAll(){return this.helper({onlyFullSub:!0,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.helper({onlyFullSub:!1,isFullSub:!0,index:0,subIndex:0,changes:[],lastSubLetter:void 0,consecutiveSubCount:0}),this.finalPasswords}}const zt=(a,t,e)=>new $t({substr:a,limit:t,trieRoot:e}).getAll(),Yt=(a,t,e)=>{const s=a.changes.filter(l=>l.i<t).reduce((l,c)=>l-c.letter.length+c.substitution.length,t),n=a.changes.filter(l=>l.i>=t&&l.i<=e),r=n.reduce((l,c)=>l-c.letter.length+c.substitution.length,e-t+s),i=[],o=[];return n.forEach(l=>{i.findIndex(c=>c.letter===l.letter&&c.substitution===l.substitution)<0&&(i.push({letter:l.letter,substitution:l.substitution}),o.push(`${l.substitution} -> ${l.letter}`))}),{i:s,j:r,subs:i,subDisplay:o.join(", ")}};class Gt{constructor(t){this.defaultMatch=t}isAlreadyIncluded(t,e){return t.some(s=>Object.entries(s).every(([n,r])=>n==="subs"||r===e[n]))}match({password:t}){const e=[],s=zt(t,h.l33tMaxSubstitutions,h.trieNodeRoot);let n=!1,r=!0;return s.forEach(i=>{if(n)return;const o=this.defaultMatch({password:i.password,useLevenshtein:r});r=!1,o.forEach(l=>{n||(n=l.i===0&&l.j===t.length-1);const c=Yt(i,l.i,l.j),u=t.slice(c.i,+c.j+1||9e9),p=C(E(C({},l),{l33t:!0,token:u}),c),f=this.isAlreadyIncluded(e,p);u.toLowerCase()!==l.matchedWord&&!f&&e.push(p)})}),e.filter(i=>i.token.length>1)}}class _t{constructor(){this.l33t=new Gt(this.defaultMatch),this.reverse=new Wt(this.defaultMatch)}match({password:t}){const e=[...this.defaultMatch({password:t}),...this.reverse.match({password:t}),...this.l33t.match({password:t})];return m(e)}defaultMatch({password:t,useLevenshtein:e=!0}){const s=[],n=t.length,r=t.toLowerCase();return Object.keys(h.rankedDictionaries).forEach(i=>{const o=h.rankedDictionaries[i],l=h.rankedDictionariesMaxWordSize[i],c=Math.min(l,n);for(let u=0;u<n;u+=1){const p=Math.min(u+c,n);for(let f=u;f<p;f+=1){const y=r.slice(u,+f+1||9e9),d=y in o;let w={};const j=u===0&&f===n-1;h.useLevenshteinDistance&&j&&!d&&e&&(w=qt(y,o,h.levenshteinThreshold));const M=Object.keys(w).length!==0;if(d||M){const g=M?w.levenshteinDistanceEntry:y,v=o[g];s.push(C({pattern:"dictionary",i:u,j:f,token:t.slice(u,+f+1||9e9),matchedWord:y,rank:v,dictionaryName:i,reversed:!1,l33t:!1},w))}}}}),s}}class Ht{match({password:t,regexes:e=Dt}){const s=[];return Object.keys(e).forEach(n=>{const r=e[n];r.lastIndex=0;let i;for(;i=r.exec(t);)if(i){const o=i[0];s.push({pattern:"regex",token:o,i:i.index,j:i.index+i[0].length-1,regexName:n,regexMatch:i})}}),m(s)}}var D={nCk(a,t){let e=a;if(t>e)return 0;if(t===0)return 1;let s=1;for(let n=1;n<=t;n+=1)s*=e,s/=n,e-=1;return s},log10(a){return a===0?0:Math.log(a)/Math.log(10)},log2(a){return Math.log(a)/Math.log(2)},factorial(a){let t=1;for(let e=2;e<=a;e+=1)t*=e;return t}},Ut=({token:a})=>{let t=L(O,a.length);t===Number.POSITIVE_INFINITY&&(t=Number.MAX_VALUE);let e;return a.length===1?e=P+1:e=X+1,Math.max(t,e)},Bt=({year:a,separator:t})=>{let e=Math.max(Math.abs(a-G),K)*365;return t&&(e*=4),e};const Vt=a=>{const t=a.split(""),e=t.filter(i=>i.match(It)).length,s=t.filter(i=>i.match(jt)).length;let n=0;const r=Math.min(e,s);for(let i=1;i<=r;i+=1)n+=D.nCk(e+s,i);return n};var Zt=a=>{const t=a.replace(Tt,"");if(t.match(Ct)||t.toLowerCase()===t)return 1;const e=[J,Mt,Q],s=e.length;for(let n=0;n<s;n+=1){const r=e[n];if(t.match(r))return 2}return Vt(t)};const nt=(a,t)=>{let e=0,s=a.indexOf(t);for(;s>=0;)e+=1,s=a.indexOf(t,s+t.length);return e},Xt=({sub:a,token:t})=>{const e=t.toLowerCase(),s=nt(e,a.substitution),n=nt(e,a.letter);return{subbedCount:s,unsubbedCount:n}};var Kt=({l33t:a,subs:t,token:e})=>{if(!a)return 1;let s=1;return t.forEach(n=>{const{subbedCount:r,unsubbedCount:i}=Xt({sub:n,token:e});if(r===0||i===0)s*=2;else{const o=Math.min(i,r);let l=0;for(let c=1;c<=o;c+=1)l+=D.nCk(i+r,c);s*=l}}),s},Jt=({rank:a,reversed:t,l33t:e,subs:s,token:n,dictionaryName:r})=>{const i=a,o=Zt(n),l=Kt({l33t:e,subs:s,token:n}),c=t&&2||1;let u;return r==="diceware"?u=L(6,5)/2:u=i*o*l*c,{baseGuesses:i,uppercaseVariations:o,l33tVariations:l,calculation:u}},Qt=({regexName:a,regexMatch:t,token:e})=>{const s={alphaLower:26,alphaUpper:26,alpha:52,alphanumeric:62,digits:10,symbols:33};if(a in s)return L(s[a],e.length);switch(a){case"recentYear":return Math.max(Math.abs(parseInt(t[0],10)-G),K)}return 0},te=({baseGuesses:a,repeatCount:t})=>a*t,ee=({token:a,ascending:t})=>{const e=a.charAt(0);let s=0;return["a","A","z","Z","0","1","9"].includes(e)?s=4:e.match(/\d/)?s=10:s=26,t||(s*=2),s*a.length};const se=a=>{let t=0;return Object.keys(a).forEach(e=>{const s=a[e];t+=s.filter(n=>!!n).length}),t/=Object.entries(a).length,t},ne=({token:a,graph:t,turns:e})=>{const s=Object.keys(h.graphs[t]).length,n=se(h.graphs[t]);let r=0;const i=a.length;for(let o=2;o<=i;o+=1){const l=Math.min(e,o-1);for(let c=1;c<=l;c+=1)r+=D.nCk(o-1,c-1)*s*L(n,c)}return r};var ae=({graph:a,token:t,shiftedCount:e,turns:s})=>{let n=ne({token:t,graph:a,turns:s});if(e){const r=t.length-e;if(e===0||r===0)n*=2;else{let i=0;for(let o=1;o<=Math.min(e,r);o+=1)i+=D.nCk(e+r,o);n*=i}}return Math.round(n)},re=()=>Et;const ie=(a,t)=>{let e=1;return a.token.length<t.length&&(a.token.length===1?e=P:e=X),e},at={bruteforce:Ut,date:Bt,dictionary:Jt,regex:Qt,repeat:te,sequence:ee,spatial:ae,separator:re},oe=(a,t)=>at[a]?at[a](t):h.matchers[a]&&"scoring"in h.matchers[a]?h.matchers[a].scoring(t):0;var le=(a,t)=>{const e={};if("guesses"in a&&a.guesses!=null)return a;const s=ie(a,t),n=oe(a.pattern,a);let r=0;typeof n=="number"?r=n:a.pattern==="dictionary"&&(r=n.calculation,e.baseGuesses=n.baseGuesses,e.uppercaseVariations=n.uppercaseVariations,e.l33tVariations=n.l33tVariations);const i=Math.max(r,s);return E(C(C({},a),e),{guesses:i,guessesLog10:D.log10(i)})};const x={password:"",optimal:{},excludeAdditive:!1,separatorRegex:void 0,fillArray(a,t){const e=[];for(let s=0;s<a;s+=1){let n=[];t==="object"&&(n={}),e.push(n)}return e},makeBruteforceMatch(a,t){return{pattern:"bruteforce",token:this.password.slice(a,+t+1||9e9),i:a,j:t}},update(a,t){const e=a.j,s=le(a,this.password);let n=s.guesses;t>1&&(n*=this.optimal.pi[s.i-1][t-1]);let r=D.factorial(t)*n;this.excludeAdditive||(r+=L(T,t-1));let i=!1;Object.keys(this.optimal.g[e]).forEach(o=>{const l=this.optimal.g[e][o];parseInt(o,10)<=t&&l<=r&&(i=!0)}),i||(this.optimal.g[e][t]=r,this.optimal.m[e][t]=s,this.optimal.pi[e][t]=n)},bruteforceUpdate(a){let t=this.makeBruteforceMatch(0,a);this.update(t,1);for(let e=1;e<=a;e+=1){t=this.makeBruteforceMatch(e,a);const s=this.optimal.m[e-1];Object.keys(s).forEach(n=>{s[n].pattern!=="bruteforce"&&this.update(t,parseInt(n,10)+1)})}},unwind(a){const t=[];let e=a-1,s=0,n=1/0;const r=this.optimal.g[e];for(r&&Object.keys(r).forEach(i=>{const o=r[i];o<n&&(s=parseInt(i,10),n=o)});e>=0;){const i=this.optimal.m[e][s];t.unshift(i),e=i.i-1,s-=1}return t}};var H={mostGuessableMatchSequence(a,t,e=!1){x.password=a,x.excludeAdditive=e;const s=a.length;let n=x.fillArray(s,"array");t.forEach(l=>{n[l.j].push(l)}),n=n.map(l=>l.sort((c,u)=>c.i-u.i)),x.optimal={m:x.fillArray(s,"object"),pi:x.fillArray(s,"object"),g:x.fillArray(s,"object")};for(let l=0;l<s;l+=1)n[l].forEach(c=>{c.i>0?Object.keys(x.optimal.m[c.i-1]).forEach(u=>{x.update(c,parseInt(u,10)+1)}):x.update(c,1)}),x.bruteforceUpdate(l);const r=x.unwind(s),i=r.length,o=this.getGuesses(a,i);return{password:a,guesses:o,guessesLog10:D.log10(o),sequence:r}},getGuesses(a,t){const e=a.length;let s=0;return a.length===0?s=1:s=x.optimal.g[e-1][t],s}};class ce{match({password:t,omniMatch:e}){const s=[];let n=0;for(;n<t.length;){const r=this.getGreedyMatch(t,n),i=this.getLazyMatch(t,n);if(r==null)break;const{match:o,baseToken:l}=this.setMatchToken(r,i);if(o){const c=o.index+o[0].length-1,u=this.getBaseGuesses(l,e);s.push(this.normalizeMatch(l,c,o,u)),n=c+1}}return s.some(r=>r instanceof Promise)?Promise.all(s):s}normalizeMatch(t,e,s,n){const r={pattern:"repeat",i:s.index,j:e,token:s[0],baseToken:t,baseGuesses:0,repeatCount:s[0].length/t.length};return n instanceof Promise?n.then(i=>E(C({},r),{baseGuesses:i})):E(C({},r),{baseGuesses:n})}getGreedyMatch(t,e){const s=/(.+)\1+/g;return s.lastIndex=e,s.exec(t)}getLazyMatch(t,e){const s=/(.+?)\1+/g;return s.lastIndex=e,s.exec(t)}setMatchToken(t,e){const s=/^(.+?)\1+$/;let n,r="";if(e&&t[0].length>e[0].length){n=t;const i=s.exec(n[0]);i&&(r=i[1])}else n=e,n&&(r=n[1]);return{match:n,baseToken:r}}getBaseGuesses(t,e){const s=e.match(t);return s instanceof Promise?s.then(n=>H.mostGuessableMatchSequence(t,n).guesses):H.mostGuessableMatchSequence(t,s).guesses}}class he{constructor(){this.MAX_DELTA=5}match({password:t}){const e=[];if(t.length===1)return[];let s=0,n=null;const r=t.length;for(let i=1;i<r;i+=1){const o=t.charCodeAt(i)-t.charCodeAt(i-1);if(n==null&&(n=o),o!==n){const l=i-1;this.update({i:s,j:l,delta:n,password:t,result:e}),s=l,n=o}}return this.update({i:s,j:r-1,delta:n,password:t,result:e}),e}update({i:t,j:e,delta:s,password:n,result:r}){if(e-t>1||Math.abs(s)===1){const i=Math.abs(s);if(i>0&&i<=this.MAX_DELTA){const o=n.slice(t,+e+1||9e9),{sequenceName:l,sequenceSpace:c}=this.getSequence(o);return r.push({pattern:"sequence",i:t,j:e,token:n.slice(t,+e+1||9e9),sequenceName:l,sequenceSpace:c,ascending:s>0})}}return null}getSequence(t){let e="unicode",s=26;return vt.test(t)?(e="lower",s=26):St.test(t)?(e="upper",s=26):At.test(t)&&(e="digits",s=10),{sequenceName:e,sequenceSpace:s}}}class ue{constructor(){this.SHIFTED_RX=/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?]/}match({password:t}){const e=[];return Object.keys(h.graphs).forEach(s=>{const n=h.graphs[s];k(e,this.helper(t,n,s))}),m(e)}checkIfShifted(t,e,s){return!t.includes("keypad")&&this.SHIFTED_RX.test(e.charAt(s))?1:0}helper(t,e,s){let n;const r=[];let i=0;const o=t.length;for(;i<o-1;){let l=i+1,c=null,u=0;for(n=this.checkIfShifted(s,t,i);;){const p=t.charAt(l-1),f=e[p]||[];let y=!1,d=-1,w=-1;if(l<o){const j=t.charAt(l),M=f.length;for(let g=0;g<M;g+=1){const v=f[g];if(w+=1,v){const S=v.indexOf(j);if(S!==-1){y=!0,d=w,S===1&&(n+=1),c!==d&&(u+=1,c=d);break}}}}if(y)l+=1;else{l-i>2&&r.push({pattern:"spatial",i,j:l-1,token:t.slice(i,l),graph:s,turns:u,shiftedCount:n}),i=l;break}}}return r}}const de=new RegExp(`[${tt.join("")}]`);class W{static getMostUsedSeparatorChar(t){const e=[...t.split("").filter(n=>de.test(n)).reduce((n,r)=>{const i=n.get(r);return i?n.set(r,i+1):n.set(r,1),n},new Map).entries()].sort(([n,r],[i,o])=>o-r);if(!e.length)return;const s=e[0];if(!(s[1]<2))return s[0]}static getSeparatorRegex(t){return new RegExp(`([^${t}
  2. ])(${t})(?!${t})`,"g")}match({password:t}){const e=[];if(t.length===0)return e;const s=W.getMostUsedSeparatorChar(t);if(s===void 0)return e;const n=W.getSeparatorRegex(s);for(const r of t.matchAll(n)){if(r.index===void 0)continue;const i=r.index+1;e.push({pattern:"separator",token:s,i,j:i})}return e}}class ge{constructor(){this.matchers={date:Pt,dictionary:_t,regex:Ht,repeat:ce,sequence:he,spatial:ue,separator:W}}match(t){const e=[],s=[];return[...Object.keys(this.matchers),...Object.keys(h.matchers)].forEach(n=>{if(!this.matchers[n]&&!h.matchers[n])return;const r=this.matchers[n]?this.matchers[n]:h.matchers[n].Matching,i=new r().match({password:t,omniMatch:this});i instanceof Promise?(i.then(o=>{k(e,o)}),s.push(i)):k(e,i)}),s.length>0?new Promise((n,r)=>{Promise.all(s).then(()=>{n(m(e))}).catch(i=>{r(i)})}):m(e)}}const rt=1,it=rt*60,ot=it*60,lt=ot*24,ct=lt*31,ht=ct*12,pe=ht*100,U={second:rt,minute:it,hour:ot,day:lt,month:ct,year:ht,century:pe};class fe{translate(t,e){let s=t;e!==void 0&&e!==1&&(s+="s");const{timeEstimation:n}=h.translations;return n[s].replace("{base}",`${e}`)}estimateAttackTimes(t){const e={onlineThrottling100PerHour:t/.027777777777777776,onlineNoThrottling10PerSecond:t/10,offlineSlowHashing1e4PerSecond:t/1e4,offlineFastHashing1e10PerSecond:t/1e10},s={onlineThrottling100PerHour:"",onlineNoThrottling10PerSecond:"",offlineSlowHashing1e4PerSecond:"",offlineFastHashing1e10PerSecond:""};return Object.keys(e).forEach(n=>{const r=e[n];s[n]=this.displayTime(r)}),{crackTimesSeconds:e,crackTimesDisplay:s,score:this.guessesToScore(t)}}guessesToScore(t){return t<1e3+5?0:t<1e6+5?1:t<1e8+5?2:t<1e10+5?3:4}displayTime(t){let e="centuries",s;const n=Object.keys(U),r=n.findIndex(i=>t<U[i]);return r>-1&&(e=n[r-1],r!==0?s=Math.round(t/U[e]):e="ltSecond"),this.translate(e,s)}}var me=()=>null,be=()=>({warning:h.translations.warnings.dates,suggestions:[h.translations.suggestions.dates]});const ye=(a,t)=>{let e=null;return t&&!a.l33t&&!a.reversed?a.rank<=10?e=h.translations.warnings.topTen:a.rank<=100?e=h.translations.warnings.topHundred:e=h.translations.warnings.common:a.guessesLog10<=4&&(e=h.translations.warnings.similarToCommon),e},we=(a,t)=>{let e=null;return t&&(e=h.translations.warnings.wordByItself),e},ke=(a,t)=>t?h.translations.warnings.namesByThemselves:h.translations.warnings.commonNames,xe=(a,t)=>{let e=null;const s=a.dictionaryName,n=s==="lastnames"||s.toLowerCase().includes("firstnames");return s==="passwords"?e=ye(a,t):s.includes("wikipedia")?e=we(a,t):n?e=ke(a,t):s==="userInputs"&&(e=h.translations.warnings.userInputs),e};var Me=(a,t)=>{const e=xe(a,t),s=[],n=a.token;return n.match(J)?s.push(h.translations.suggestions.capitalization):n.match(Q)&&n.toLowerCase()!==n&&s.push(h.translations.suggestions.allUppercase),a.reversed&&a.token.length>=4&&s.push(h.translations.suggestions.reverseWords),a.l33t&&s.push(h.translations.suggestions.l33t),{warning:e,suggestions:s}},Se=a=>a.regexName==="recentYear"?{warning:h.translations.warnings.recentYears,suggestions:[h.translations.suggestions.recentYears,h.translations.suggestions.associatedYears]}:{warning:null,suggestions:[]},ve=a=>{let t=h.translations.warnings.extendedRepeat;return a.baseToken.length===1&&(t=h.translations.warnings.simpleRepeat),{warning:t,suggestions:[h.translations.suggestions.repeated]}},Ce=()=>({warning:h.translations.warnings.sequences,suggestions:[h.translations.suggestions.sequences]}),je=a=>{let t=h.translations.warnings.keyPattern;return a.turns===1&&(t=h.translations.warnings.straightRow),{warning:t,suggestions:[h.translations.suggestions.longerKeyboardPattern]}},Ie=()=>null;const ut={warning:null,suggestions:[]};class Te{constructor(){this.matchers={bruteforce:me,date:be,dictionary:Me,regex:Se,repeat:ve,sequence:Ce,spatial:je,separator:Ie},this.defaultFeedback={warning:null,suggestions:[]},this.setDefaultSuggestions()}setDefaultSuggestions(){this.defaultFeedback.suggestions.push(h.translations.suggestions.useWords,h.translations.suggestions.noNeed)}getFeedback(t,e){if(e.length===0)return this.defaultFeedback;if(t>2)return ut;const s=h.translations.suggestions.anotherWord,n=this.getLongestMatch(e);let r=this.getMatchFeedback(n,e.length===1);return r!=null?r.suggestions.unshift(s):r={warning:null,suggestions:[s]},r}getLongestMatch(t){let e=t[0];return t.slice(1).forEach(s=>{s.token.length>e.token.length&&(e=s)}),e}getMatchFeedback(t,e){return this.matchers[t.pattern]?this.matchers[t.pattern](t,e):h.matchers[t.pattern]&&"feedback"in h.matchers[t.pattern]?h.matchers[t.pattern].feedback(t,e):ut}}const dt=()=>new Date().getTime(),Ae=(a,t,e)=>{const s=new Te,n=new fe,r=H.mostGuessableMatchSequence(t,a),i=dt()-e,o=n.estimateAttackTimes(r.guesses);return E(C(C({calcTime:i},r),o),{feedback:s.getFeedback(o.score,r.sequence)})},De=(a,t)=>(t&&h.extendUserInputsDictionary(t),new ge().match(a)),Ee=(a,t)=>{const e=dt(),s=De(a,t);if(s instanceof Promise)throw new Error("You are using a Promised matcher, please use `zxcvbnAsync` for it.");return Ae(s,a,e)},Pe=$e({name:"StrengthMeter",components:{InputPassword:ze.Password},props:{value:B.string,showInput:B.bool.def(!0),disabled:B.bool},emits:["score-change","change"],setup(a,{emit:t}){const e=Ye(""),{prefixCls:s}=Ge("strength-meter"),n=_e(()=>{const{disabled:i}=a;if(i)return-1;const o=V(e)?Ee(V(e)).score:-1;return t("score-change",o),o});function r(i){e.value=i.target.value}return He(()=>{e.value=a.value||""}),Ue(()=>V(e),i=>{t("change",i)}),{getPasswordStrength:n,handleChange:r,prefixCls:s,innerValueRef:e}}}),Le=["data-score"];function Re(a,t,e,s,n,r){const i=Ve("InputPassword");return wt(),Ze("div",{class:Z([a.prefixCls,"relative"])},[a.showInput?(wt(),Xe(i,ns({key:0},a.$attrs,{allowClear:"",value:a.innerValueRef,onChange:a.handleChange,disabled:a.disabled}),Ke({_:2},[Je(Object.keys(a.$slots),o=>({name:o,fn:Qe(l=>[ts(a.$slots,o,es(ss(l||{})),void 0,!0)])}))]),1040,["value","onChange","disabled"])):as("",!0),kt("div",{class:Z(`${a.prefixCls}-bar`)},[kt("div",{class:Z(`${a.prefixCls}-bar--fill`),"data-score":a.getPasswordStrength},null,10,Le)],2)],2)}let gt;gt=Be(Pe,[["render",Re],["__scopeId","data-v-6c475c78"]]),xt=rs(gt)}));export{xt as S,os as __tla};