UNPKG

fuzz-search-js

Version:
1 lines 2.98 kB
module.exports=(()=>{var t={290:t=>{t.exports=function(t,e){let r=[];for(let t=0;t<=e.length;t+=1)r[t]=[t];for(let e=0;e<=t.length;e+=1)r[0][e]=e;for(let l=1;l<=e.length;l+=1)for(let o=1;o<=t.length;o+=1){let n=1;e.charAt(l-1)==t.charAt(o-1)&&(n=0),r[l][o]=Math.min(r[l-1][o]+1,r[l][o-1]+1,r[l-1][o-1]+n),l>2&&o>2&&e.charAt(l-1)==t.charAt(o-2)&&e.charAt(l-2)==t.charAt(o-1)&&(r[l][o]=Math.min(r[l][o],r[l-2][o-2]+1))}return r[e.length][t.length]}},442:t=>{t.exports=function(t,e){if(t.toString().length!=e.toString().length)throw new Error(t+","+e+": length not same");count=0;for(let r in t)t[r]!=e[r]&&(count+=1);return count}},579:(t,e,r)=>{const l=r(290),o=r(442),n=r(900),i=r(365);t.exports=class{static getHamDis(t,e){return o(t,e)}static getDamLevDis(t,e){return l(t,e)}static getLevenDis(t,e){return n(t,e)}static getLongSubq(t,e){return i(t,e)}constructor(t){if("object"!=typeof t)throw new Error("array parameter required");let e=[];t.forEach((t=>{e.includes(t)||e.push(t)}));let r=0;for(let t of e)try{this[t.length].push(t)}catch{this[t.length]=[t],r<t.length&&(r=t.length)}this.max=r}dal(t,e={level:3,max:5}){return this._calculate(t,e,l)}lev(t,e={level:3,max:5}){return this._calculate(t,e,n)}_calculate(t,e,r){this._checkOptions(e);let l=[],o=0,n=t.length,i=n,h=n;if(null!=this[n])for(let e of this[n])l.push({word:e,score:r(t,e)});for(;o!=e.level;){let e=this._setLimits(i-1,h+1);if(e.lowerLimit==i&&e.upperLimit==h)break;if(e.lowerLimit!=i&&null!=this[e.lowerLimit]){i=e.lowerLimit;for(let e of this[i])l.push({word:e,score:r(t,e)})}if(e.upperLimit!=h&&null!=this[e.upperLimit]){h=e.upperLimit;for(let e of this[h])l.push({word:e,score:r(t,e)})}o+=1}return this._sort(e.max,l)}_checkOptions(t){if(null==t.level)throw new Error("options:level not provided");if(null==t.max)throw new Error("options:max not provided");if(t.level<1)throw new Error("options:level has to be a minimum of 1")}_setLimits(t,e){for(;null==this[t]&&-1!=t;)t-=1;for(;null==this[e]&&e!=this.max+1;)e+=1;return{lowerLimit:t,upperLimit:e}}_sort(t,e){for(let r=0;r<(t<e.length?t:e.length);r+=1){let t=r;for(let l=r;l<e.length;l+=1)e[t].score>e[l].score&&(t=l);let l=e[t];e[t]=e[r],e[r]=l}return e.slice(0,t<e.length?t:e.length)}}},900:t=>{t.exports=function(t,e){let r=[];for(let t=0;t<=e.length;t+=1)r[t]=[t];for(let e=0;e<=t.length;e+=1)r[0][e]=e;for(let l=1;l<=e.length;l+=1)for(let o=1;o<=t.length;o+=1)e.charAt(l-1)==t.charAt(o-1)?r[l][o]=r[l][o]=Math.min(r[l-1][o-1],r[l][o-1]+1,r[l-1][o]+1):r[l][o]=Math.min(r[l-1][o-1]+1,r[l][o-1]+1,r[l-1][o]+1);return r[e.length][t.length]}},365:t=>{t.exports=function(t,e){let r=[];for(let t=0;t<=e.length;t+=1)r[t]=[0];for(let e=0;e<=t.length;e+=1)r[0][e]=0;for(let l=1;l<=e.length;l+=1)for(j=1;j<=t.length;j+=1)e[l-1]==t[j-1]?r[l][j]=r[l-1][j-1]+1:r[l][j]=Math.max(r[l-1][j],r[l][j-1]);return r[e.length][t.length]}}},e={};return function r(l){if(e[l])return e[l].exports;var o=e[l]={exports:{}};return t[l](o,o.exports,r),o.exports}(579)})();