1
0
mirror of https://github.com/nextapps-de/flexsearch.git synced 2025-09-25 04:51:29 +02:00

FIX generic object injection issues

This commit is contained in:
Thomas Wilkerling
2018-04-24 21:28:57 +02:00
parent bb167344bb
commit ed46def05c
5 changed files with 84 additions and 65 deletions

View File

@@ -3,10 +3,12 @@
<img src="https://rawgithub.com/nextapps-de/flexsearch/master/doc/flexsearch.svg" alt="Search Library" width="50%">
<br><br>
<a target="_blank" href="https://www.npmjs.com/package/flexsearch"><img src="https://img.shields.io/npm/v/flexsearch.svg"></a>
<img src="https://img.shields.io/badge/status-BETA-orange.svg">
<!--<img src="https://img.shields.io/badge/status-BETA-orange.svg">-->
<a target="_blank" href="https://travis-ci.org/nextapps-de/flexsearch"><img src="https://travis-ci.org/nextapps-de/flexsearch.svg?branch=master"></a>
<a target="_blank" href="https://coveralls.io/github/nextapps-de/flexsearch?branch=master"><img src="https://coveralls.io/repos/github/nextapps-de/flexsearch/badge.svg?branch=master"></a>
<a target="_blank" href="https://github.com/nextapps-de/flexsearch/issues"><img src="https://img.shields.io/github/issues/nextapps-de/xone.svg"></a><!--<img src="https://badges.greenkeeper.io/nextapps-de/flexsearch.svg">-->
<a target="_blank" href="https://www.codacy.com/app/ts-thomas/FlexSearch?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=nextapps-de/flexsearch&amp;utm_campaign=Badge_Grade"><img src="https://api.codacy.com/project/badge/Grade/a896e010f6b4429aa7bc9a89550320a7"/></a>
<a target="_blank" href="https://github.com/nextapps-de/flexsearch/issues"><img src="https://img.shields.io/github/issues/nextapps-de/xone.svg"></a>
<!--<img src="https://badges.greenkeeper.io/nextapps-de/flexsearch.svg">-->
<a target="_blank" href="https://github.com/nextapps-de/flexsearch/blob/master/LICENSE.md"><img src="https://img.shields.io/npm/l/xone.svg"></a>
</p>

View File

@@ -1,5 +1,5 @@
;/**!
* @preserve FlexSearch v0.2.66
* @preserve FlexSearch v0.2.67
* Copyright 2018 Thomas Wilkerling
* Released under the Apache 2.0 Licence
* https://github.com/nextapps-de/flexsearch
@@ -126,9 +126,9 @@ var SUPPORT_ASYNC = true;
/** @const {RegExp} */
var regexSplit = regex("[ -\/]");
var filter = {};
var filter = Object.create(null);
var stemmer = {};
var stemmer = Object.create(null);
/**
* @param {string|Object<string, number|string|boolean|Object|function(string):string>=} options
@@ -268,7 +268,7 @@ var SUPPORT_ASYNC = true;
options || (options = defaults);
var custom = options["profile"];
var profile = custom ? profiles[custom] : {};
var profile = custom && profiles.hasOwnProperty(custom) ? profiles[custom] : Object.create(null);
// initialize worker
@@ -424,13 +424,21 @@ var SUPPORT_ASYNC = true;
this._map = [
{/* 0 */}, {/* 1 */}, {/* 2 */}, {/* 3 */}, {/* 4 */},
{/* 5 */}, {/* 6 */}, {/* 7 */}, {/* 8 */}, {/* 9 */}
Object.create(null/* 0 */),
Object.create(null/* 1 */),
Object.create(null/* 2 */),
Object.create(null/* 3 */),
Object.create(null/* 4 */),
Object.create(null/* 5 */),
Object.create(null/* 6 */),
Object.create(null/* 7 */),
Object.create(null/* 8 */),
Object.create(null/* 9 */)
];
this._ctx = {};
this._ids = {};
this._stack = {};
this._ctx = Object.create(null);
this._ids = Object.create(null);
this._stack = Object.create(null);
this._stackKeys = [];
/**
@@ -632,7 +640,7 @@ var SUPPORT_ASYNC = true;
var dupes = {
"_ctx": {}
"_ctx": Object.create(null)
};
var threshold = this.threshold;
@@ -745,11 +753,19 @@ var SUPPORT_ASYNC = true;
if(depth && (wordLength > 1) && (score >= threshold)){
var ctxDupes = dupes["_ctx"][value] || (dupes["_ctx"][value] = {});
var ctxDupes = dupes["_ctx"][value] || (dupes["_ctx"][value] = Object.create(null));
var ctxTmp = this._ctx[value] || (this._ctx[value] = [
{/* 0 */}, {/* 1 */}, {/* 2 */}, {/* 3 */}, {/* 4 */},
{/* 5 */}, {/* 6 */}, {/* 7 */}, {/* 8 */}, {/* 9 */}
Object.create(null/* 0 */),
Object.create(null/* 1 */),
Object.create(null/* 2 */),
Object.create(null/* 3 */),
Object.create(null/* 4 */),
Object.create(null/* 5 */),
Object.create(null/* 6 */),
Object.create(null/* 7 */),
Object.create(null/* 8 */),
Object.create(null/* 9 */)
]);
var x = i - depth;
@@ -1007,7 +1023,7 @@ var SUPPORT_ASYNC = true;
var length = words.length;
var found = true;
var check = [];
var checkWords = {};
var checkWords = Object.create(null);
if(length > 1){
@@ -1266,7 +1282,7 @@ var SUPPORT_ASYNC = true;
* @final
*/
var globalEncoder = SUPPORT_BUILTINS ? {
var globalEncoder = Object.create(SUPPORT_BUILTINS ? {
// case insensitive search
@@ -1467,13 +1483,13 @@ var SUPPORT_ASYNC = true;
"icase": globalEncoderIcase,
"balance": globalEncoderBalance
};
});
// Xone Async Handler Fallback
var queue = SUPPORT_ASYNC ? (function(){
var stack = {};
var stack = Object.create(null);
return function(fn, delay, id){
@@ -1507,9 +1523,9 @@ var SUPPORT_ASYNC = true;
/** @this {Cache} */
Cache.prototype.reset = function(){
this.cache = {};
this.count = {};
this.index = {};
this.cache = Object.create(null);
this.count = Object.create(null);
this.index = Object.create(null);
this.ids = [];
};
@@ -1919,7 +1935,7 @@ var SUPPORT_ASYNC = true;
function initFilter(words, encoder){
var final = {};
var final = Object.create(null);
if(words){
@@ -2034,7 +2050,7 @@ var SUPPORT_ASYNC = true;
// fill initial map
var check = {};
var check = Object.create(null);
var arr = arrays[0];
var length = arr.length;
var i = 0;
@@ -2549,7 +2565,7 @@ var SUPPORT_ASYNC = true;
SUPPORT_WORKER ? (function registerWorker(){
var workerStack = {};
var workerStack = Object.create(null);
var inlineSupported = !!((typeof Blob !== "undefined") && (typeof URL !== "undefined") && URL.createObjectURL);
return (

View File

@@ -1,19 +1,20 @@
/*
FlexSearch v0.2.66
FlexSearch v0.2.67
Copyright 2018 Thomas Wilkerling
Released under the Apache 2.0 Licence
https://github.com/nextapps-de/flexsearch
*/
'use strict';(function(d,v,n){var t;(t=n.define)&&t.amd?t([],function(){return v}):(t=n.modules)?t[d.toLowerCase()]=v:"undefined"!==typeof module?module.exports=v:n[d]=v})("FlexSearch",function(){function d(a){"string"===typeof a&&A.hasOwnProperty(a)&&(a=A[a]);a||(a=w);this.id=a.id||G++;this.init(a);v(this,"index",function(){return this.a});v(this,"length",function(){return Object.keys(this.a).length})}function v(a,b,c){Object.defineProperty(a,b,{get:c})}function n(a){return new RegExp(a,"g")}function t(a,
b,c){if("undefined"===typeof c){for(c=0;c<b.length;c+=2)a=a.replace(b[c],b[c+1]);return a}return a.replace(b,c)}function x(a,b,c,e,f,p,g){if("undefined"===typeof b[c]){var h=f?(9-(g||6))*p+(g||6)*f:p;b[c]=h;h>=g&&(a=a[h+.5|0],a=a[c]||(a[c]=[]),a[a.length]=e)}return h||b[c]}function z(a,b){if(a)for(var c=Object.keys(a),e=0,f=c.length;e<f;e++){var p=c[e],g=a[p];if(g)for(var h=0,k=g.length;h<k;h++)if(g[h]===b){1===k?delete a[p]:g.splice(h,1);break}else"object"===typeof g[h]&&z(g[h],b)}}function C(a){var b=
[];if(!a)return b;for(var c=0,e=0,f=0,p="",g=a.length,h=0;h<g;h++){var k=a[h];"a"===k||"e"===k||"i"===k||"o"===k||"u"===k||"y"===k?c++:e++;" "!==k&&(p+=k);if(" "===k||c>=(8<g?2:1)&&2<=e||2<=c&&e>=(8<g?2:1)||h===g-1)p&&(b[f]&&2<p.length&&f++,b[f]=b[f]?b[f]+p:p," "===k&&f++,p=""),e=c=0}return b}function H(a,b){a=a.length-b.length;return 0>a?1:0<a?-1:0}function I(a,b){a=a.length-b.length;return 0>a?-1:0<a?1:0}function J(a,b,c){var e=[],f=[],p=a.length;if(1<p){a.sort(I);for(var g={},h=a[0],k=h.length,
y=0;y<k;)g[h[y++]]=1;for(var q,d=0,m=1;m<p;){var l=!1,n=m===p-1;f=[];h=a[m];k=h.length;for(y=-1;y<k;){var r=g[q=h[++y]];if(r===m){if(n&&(e[d++]=q,b&&d===b))return e;l=!0;g[q]=m+1}else c&&(r=f[r]||(f[r]=[]),r[r.length]=q)}if(!l&&!c)break;m++}if(c&&(b||(b=1E3),d=e.length,k=f.length,d<b&&k))for(m=k-1;0<=m;m--)if(q=f[m])for(y=0;y<q.length;y++)if(e[d++]=q[y],b&&d===b)return e}else p&&(e=a[0],b&&e.length>b&&(e=e.slice(0,b)));return e}var w={encode:"icase",mode:"forward",f:!1,cache:!1,async:!1,i:!1,threshold:0,
depth:0},A={memory:{encode:"extra",mode:"strict",threshold:7},speed:{encode:"icase",mode:"strict",threshold:7,depth:2},match:{encode:"extra",mode:"full"},score:{encode:"extra",mode:"strict",threshold:5,depth:4},balance:{encode:"balance",mode:"ngram",threshold:6,depth:3},fastest:{encode:"icase",mode:"strict",threshold:9,depth:1}},B=[],G=0,D=n("[ -/]"),E={},F={};d.new=function(a){return new this(a)};d.create=function(a){return d.new(a)};d.registerMatcher=function(a){for(var b in a)a.hasOwnProperty(b)&&
B.push(n(b),a[b]);return this};d.registerEncoder=function(a,b){u[a]=b;return this};d.registerLanguage=function(a,b){E[a]=b.filter;F[a]=b.stemmer;return this};d.encode=function(a,b){return u[a].call(u,b)};d.prototype.init=function(a){this.h=[];a||(a=w);var b=a.profile;b=b?A[b]:{};this.mode=a.mode||b.mode||this.mode||w.mode;this.threshold=a.threshold||b.threshold||this.threshold||w.threshold;this.depth=a.depth||b.depth||this.depth||w.depth;this.f=a.suggest||this.f||w.f;this.c=(b=a.encode||b.encode)&&
u[b]||("function"===typeof b?b:this.c||!1);(b=a.matcher)&&this.addMatcher(b);if(b=a.filter){b=E[b]||b;var c=this.c,e={};if(b)for(var f=0;f<b.length;f++){var p=c?c.call(u,b[f]):b[f];e[p]=String.fromCharCode(65E3-b.length+f)}this.filter=e}if(b=a.stemmer){a=F[b]||b;b=this.c;c=[];if(a){e=0;for(var g in a)a.hasOwnProperty(g)&&(f=b?b.call(u,g):g,c[e++]=n("(?=.{"+(f.length+3)+",})"+f+"$"),c[e++]=b?b.call(u,a[g]):a[g])}this.stemmer=c}this.g=[{},{},{},{},{},{},{},{},{},{}];this.b={};this.a={};return this};
d.prototype.encode=function(a){a&&B.length&&(a=t(a,B));a&&this.h.length&&(a=t(a,this.h));a&&this.c&&(a=this.c.call(u,a));a&&this.stemmer&&(a=t(a,this.stemmer));return a};d.prototype.addMatcher=function(a){var b=this.h,c;for(c in a)a.hasOwnProperty(c)&&(b[b.length]=n(c),b[b.length]=a[c]);return this};d.prototype.add=function(a,b,c){if("string"===typeof b&&b&&(a||0===a))if(this.a[a]&&!c)this.update(a,b);else{b=this.encode(b);if(!b.length)return this;c=this.mode;b="function"===typeof c?c(b):"ngram"===
c?C(b):b.split(D);for(var e={_ctx:{}},f=this.threshold,p=this.depth,g=this.g,h=b.length,k=0;k<h;k++){var d=b[k];if(d){var q=d.length,n=(h-k)/h;switch(c){case "reverse":case "both":for(var m="",l=q-1;1<=l;l--)m=d[l]+m,x(g,e,m,a,(q-l)/q,n,f);case "forward":m="";for(l=0;l<q;l++)m+=d[l],x(g,e,m,a,1,n,f);break;case "full":for(l=0;l<q;l++)for(var t=(q-l)/q,r=q;r>l;r--)m=d.substring(l,r),x(g,e,m,a,t,n,f);break;default:if(l=x(g,e,d,a,1,n,f),p&&1<h&&l>=f)for(q=e._ctx[d]||(e._ctx[d]={}),d=this.b[d]||(this.b[d]=
[{},{},{},{},{},{},{},{},{},{}]),l=k-p,r=k+p+1,0>l&&(l=0),r>h&&(r=h);l<r;l++)l!==k&&x(d,q,b[l],a,0,10-(l<k?k-l:l-k),f)}}}this.a[a]="1"}return this};d.prototype.update=function(a,b){this.a[a]&&b&&"string"===typeof b&&(this.remove(a),this.add(a,b,!0));return this};d.prototype.remove=function(a){if(this.a[a]){for(var b=0;10>b;b++)z(this.g[b],a);this.depth&&z(this.b,a);delete this.a[a]}return this};d.prototype.search=function(a,b,c){var e=[];if(a&&"object"===typeof a){c=a.callback||b;b=a.limit;var f=
a.threshold;a=a.query}f=(f||this.threshold||0)|0;"function"===typeof b?(c=b,b=1E3):b||(b=1E3);if(c){var d=this;K(function(){c(d.search(a,b));d=null},1,"search-"+this.id);return null}if(!a||"string"!==typeof a)return e;var g=this.encode(a);if(!g.length)return e;var h=this.mode;g="function"===typeof h?h(g):"ngram"===h?C(g):g.split(D);h=g.length;var k=!0,n=[],q={};if(1<h)if(this.depth){var t=!0,m=g[0];q[m]="1"}else g.sort(H);var l;if(!t||(l=this.b)[m])for(var u=t?1:0;u<h;u++){var r=g[u];if(r&&!q[r]){for(var v,
w=!1,x=[],A=0,z=9;z>=f;z--)if(v=(t?l[m]:this.g)[z][r])x[A++]=v,w=!0;if(w)n[n.length]=1<A?n.concat.apply([],x):x[0];else if(!this.f){k=!1;break}q[r]="1"}m=r}else k=!1;k&&(e=J(n,b,this.f));return e};d.prototype.reset=function(){this.destroy();return this.init()};d.prototype.destroy=function(){this.filter=this.stemmer=this.g=this.b=this.a=null;return this};var u={icase:function(a){return a.toLowerCase()},balance:function(){var a=[n("[-/]")," ",n("[^a-z0-9 ]"),"",n("\\s\\s+")," "];return function(b){b=
t(b.toLowerCase(),a);for(var c="",e="",f="",d=0;d<b.length;d++){var g=b[d];if(g!==e)if(d&&"h"===g){if(f="a"===f||"e"===f||"i"===f||"o"===f||"u"===f||"y"===f,("a"===e||"e"===e||"i"===e||"o"===e||"u"===e||"y"===e)&&f||" "===e)c+=g}else c+=g;f=d===b.length-1?"":b[d+1];e=g}return c}}()},K=null;return d}(!1),this);
'use strict';(function(d,v,n){var t;(t=n.define)&&t.amd?t([],function(){return v}):(t=n.modules)?t[d.toLowerCase()]=v:"undefined"!==typeof module?module.exports=v:n[d]=v})("FlexSearch",function(){function d(a){"string"===typeof a&&z.hasOwnProperty(a)&&(a=z[a]);a||(a=w);this.id=a.id||G++;this.init(a);v(this,"index",function(){return this.a});v(this,"length",function(){return Object.keys(this.a).length})}function v(a,b,c){Object.defineProperty(a,b,{get:c})}function n(a){return new RegExp(a,"g")}function t(a,
b,c){if("undefined"===typeof c){for(c=0;c<b.length;c+=2)a=a.replace(b[c],b[c+1]);return a}return a.replace(b,c)}function x(a,b,c,e,f,p,g){if("undefined"===typeof b[c]){var h=f?(9-(g||6))*p+(g||6)*f:p;b[c]=h;h>=g&&(a=a[h+.5|0],a=a[c]||(a[c]=[]),a[a.length]=e)}return h||b[c]}function A(a,b){if(a)for(var c=Object.keys(a),e=0,f=c.length;e<f;e++){var p=c[e],g=a[p];if(g)for(var h=0,k=g.length;h<k;h++)if(g[h]===b){1===k?delete a[p]:g.splice(h,1);break}else"object"===typeof g[h]&&A(g[h],b)}}function C(a){var b=
[];if(!a)return b;for(var c=0,e=0,f=0,p="",g=a.length,h=0;h<g;h++){var k=a[h];"a"===k||"e"===k||"i"===k||"o"===k||"u"===k||"y"===k?c++:e++;" "!==k&&(p+=k);if(" "===k||c>=(8<g?2:1)&&2<=e||2<=c&&e>=(8<g?2:1)||h===g-1)p&&(b[f]&&2<p.length&&f++,b[f]=b[f]?b[f]+p:p," "===k&&f++,p=""),e=c=0}return b}function H(a,b){a=a.length-b.length;return 0>a?1:0<a?-1:0}function I(a,b){a=a.length-b.length;return 0>a?-1:0<a?1:0}function J(a,b,c){var e=[],f=[],p=a.length;if(1<p){a.sort(I);for(var g=Object.create(null),
h=a[0],k=h.length,y=0;y<k;)g[h[y++]]=1;for(var q,d=0,m=1;m<p;){var l=!1,n=m===p-1;f=[];h=a[m];k=h.length;for(y=-1;y<k;){var r=g[q=h[++y]];if(r===m){if(n&&(e[d++]=q,b&&d===b))return e;l=!0;g[q]=m+1}else c&&(r=f[r]||(f[r]=[]),r[r.length]=q)}if(!l&&!c)break;m++}if(c&&(b||(b=1E3),d=e.length,k=f.length,d<b&&k))for(m=k-1;0<=m;m--)if(q=f[m])for(y=0;y<q.length;y++)if(e[d++]=q[y],b&&d===b)return e}else p&&(e=a[0],b&&e.length>b&&(e=e.slice(0,b)));return e}var w={encode:"icase",mode:"forward",f:!1,cache:!1,
async:!1,i:!1,threshold:0,depth:0},z={memory:{encode:"extra",mode:"strict",threshold:7},speed:{encode:"icase",mode:"strict",threshold:7,depth:2},match:{encode:"extra",mode:"full"},score:{encode:"extra",mode:"strict",threshold:5,depth:4},balance:{encode:"balance",mode:"ngram",threshold:6,depth:3},fastest:{encode:"icase",mode:"strict",threshold:9,depth:1}},B=[],G=0,D=n("[ -/]"),E=Object.create(null),F=Object.create(null);d.new=function(a){return new this(a)};d.create=function(a){return d.new(a)};d.registerMatcher=
function(a){for(var b in a)a.hasOwnProperty(b)&&B.push(n(b),a[b]);return this};d.registerEncoder=function(a,b){u[a]=b;return this};d.registerLanguage=function(a,b){E[a]=b.filter;F[a]=b.stemmer;return this};d.encode=function(a,b){return u[a].call(u,b)};d.prototype.init=function(a){this.h=[];a||(a=w);var b=a.profile;b=b&&z.hasOwnProperty(b)?z[b]:Object.create(null);this.mode=a.mode||b.mode||this.mode||w.mode;this.threshold=a.threshold||b.threshold||this.threshold||w.threshold;this.depth=a.depth||b.depth||
this.depth||w.depth;this.f=a.suggest||this.f||w.f;this.c=(b=a.encode||b.encode)&&u[b]||("function"===typeof b?b:this.c||!1);(b=a.matcher)&&this.addMatcher(b);if(b=a.filter){b=E[b]||b;var c=this.c,e=Object.create(null);if(b)for(var f=0;f<b.length;f++){var p=c?c.call(u,b[f]):b[f];e[p]=String.fromCharCode(65E3-b.length+f)}this.filter=e}if(b=a.stemmer){a=F[b]||b;b=this.c;c=[];if(a){e=0;for(var g in a)a.hasOwnProperty(g)&&(f=b?b.call(u,g):g,c[e++]=n("(?=.{"+(f.length+3)+",})"+f+"$"),c[e++]=b?b.call(u,
a[g]):a[g])}this.stemmer=c}this.g=[Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null)];this.b=Object.create(null);this.a=Object.create(null);Object.create(null);return this};d.prototype.encode=function(a){a&&B.length&&(a=t(a,B));a&&this.h.length&&(a=t(a,this.h));a&&this.c&&(a=this.c.call(u,a));a&&this.stemmer&&(a=t(a,this.stemmer));return a};d.prototype.addMatcher=
function(a){var b=this.h,c;for(c in a)a.hasOwnProperty(c)&&(b[b.length]=n(c),b[b.length]=a[c]);return this};d.prototype.add=function(a,b,c){if("string"===typeof b&&b&&(a||0===a))if(this.a[a]&&!c)this.update(a,b);else{b=this.encode(b);if(!b.length)return this;c=this.mode;b="function"===typeof c?c(b):"ngram"===c?C(b):b.split(D);for(var e={_ctx:Object.create(null)},f=this.threshold,p=this.depth,g=this.g,h=b.length,k=0;k<h;k++){var d=b[k];if(d){var q=d.length,n=(h-k)/h;switch(c){case "reverse":case "both":for(var m=
"",l=q-1;1<=l;l--)m=d[l]+m,x(g,e,m,a,(q-l)/q,n,f);case "forward":m="";for(l=0;l<q;l++)m+=d[l],x(g,e,m,a,1,n,f);break;case "full":for(l=0;l<q;l++)for(var t=(q-l)/q,r=q;r>l;r--)m=d.substring(l,r),x(g,e,m,a,t,n,f);break;default:if(l=x(g,e,d,a,1,n,f),p&&1<h&&l>=f)for(q=e._ctx[d]||(e._ctx[d]=Object.create(null)),d=this.b[d]||(this.b[d]=[Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),
Object.create(null)]),l=k-p,r=k+p+1,0>l&&(l=0),r>h&&(r=h);l<r;l++)l!==k&&x(d,q,b[l],a,0,10-(l<k?k-l:l-k),f)}}}this.a[a]="1"}return this};d.prototype.update=function(a,b){this.a[a]&&b&&"string"===typeof b&&(this.remove(a),this.add(a,b,!0));return this};d.prototype.remove=function(a){if(this.a[a]){for(var b=0;10>b;b++)A(this.g[b],a);this.depth&&A(this.b,a);delete this.a[a]}return this};d.prototype.search=function(a,b,c){var e=[];if(a&&"object"===typeof a){c=a.callback||b;b=a.limit;var f=a.threshold;
a=a.query}f=(f||this.threshold||0)|0;"function"===typeof b?(c=b,b=1E3):b||(b=1E3);if(c){var d=this;K(function(){c(d.search(a,b));d=null},1,"search-"+this.id);return null}if(!a||"string"!==typeof a)return e;var g=this.encode(a);if(!g.length)return e;var h=this.mode;g="function"===typeof h?h(g):"ngram"===h?C(g):g.split(D);h=g.length;var k=!0,n=[],q=Object.create(null);if(1<h)if(this.depth){var t=!0,m=g[0];q[m]="1"}else g.sort(H);var l;if(!t||(l=this.b)[m])for(var u=t?1:0;u<h;u++){var r=g[u];if(r&&!q[r]){for(var v,
w=!1,x=[],z=0,A=9;A>=f;A--)if(v=(t?l[m]:this.g)[A][r])x[z++]=v,w=!0;if(w)n[n.length]=1<z?n.concat.apply([],x):x[0];else if(!this.f){k=!1;break}q[r]="1"}m=r}else k=!1;k&&(e=J(n,b,this.f));return e};d.prototype.reset=function(){this.destroy();return this.init()};d.prototype.destroy=function(){this.filter=this.stemmer=this.g=this.b=this.a=null;return this};var u=Object.create({icase:function(a){return a.toLowerCase()},balance:function(){var a=[n("[-/]")," ",n("[^a-z0-9 ]"),"",n("\\s\\s+")," "];return function(b){b=
t(b.toLowerCase(),a);for(var c="",e="",f="",d=0;d<b.length;d++){var g=b[d];if(g!==e)if(d&&"h"===g){if(f="a"===f||"e"===f||"i"===f||"o"===f||"u"===f||"y"===f,("a"===e||"e"===e||"i"===e||"o"===e||"u"===e||"y"===e)&&f||" "===e)c+=g}else c+=g;f=d===b.length-1?"":b[d+1];e=g}return c}}()}),K=null;return d}(!1),this);

45
flexsearch.min.js vendored
View File

@@ -1,30 +1,31 @@
/*
FlexSearch v0.2.66
FlexSearch v0.2.67
Copyright 2018 Thomas Wilkerling
Released under the Apache 2.0 Licence
https://github.com/nextapps-de/flexsearch
*/
'use strict';(function(v,B,f){var w;(w=f.define)&&w.amd?w([],function(){return B}):(w=f.modules)?w[v.toLowerCase()]=B:"undefined"!==typeof module?module.exports=B:f[v]=B})("FlexSearch",function N(v){function f(a){"string"===typeof a&&E.hasOwnProperty(a)&&(a=E[a]);a||(a=y);this.id=a.id||O++;this.init(a);w(this,"index",function(){return this.a});w(this,"length",function(){return Object.keys(this.a).length})}function w(a,b,e){Object.defineProperty(a,b,{get:e})}function d(a){return new RegExp(a,"g")}
'use strict';(function(v,B,f){var w;(w=f.define)&&w.amd?w([],function(){return B}):(w=f.modules)?w[v.toLowerCase()]=B:"undefined"!==typeof module?module.exports=B:f[v]=B})("FlexSearch",function N(v){function f(a){"string"===typeof a&&C.hasOwnProperty(a)&&(a=C[a]);a||(a=y);this.id=a.id||O++;this.init(a);w(this,"index",function(){return this.a});w(this,"length",function(){return Object.keys(this.a).length})}function w(a,b,e){Object.defineProperty(a,b,{get:e})}function d(a){return new RegExp(a,"g")}
function x(a,b,e){if("undefined"===typeof e){for(e=0;e<b.length;e+=2)a=a.replace(b[e],b[e+1]);return a}return a.replace(b,e)}function z(a,b,e,c,k,t,g){if("undefined"===typeof b[e]){var h=k?(9-(g||6))*t+(g||6)*k:t;b[e]=h;h>=g&&(a=a[h+.5|0],a=a[e]||(a[e]=[]),a[a.length]=c)}return h||b[e]}function q(a,b){if(a)for(var e=Object.keys(a),c=0,k=e.length;c<k;c++){var t=e[c],g=a[t];if(g)for(var h=0,d=g.length;h<d;h++)if(g[h]===b){1===d?delete a[t]:g.splice(h,1);break}else"object"===typeof g[h]&&q(g[h],b)}}
function H(a){var b=[];if(!a)return b;for(var e=0,c=0,k=0,t="",g=a.length,h=0;h<g;h++){var d=a[h];"a"===d||"e"===d||"i"===d||"o"===d||"u"===d||"y"===d?e++:c++;" "!==d&&(t+=d);if(" "===d||e>=(8<g?2:1)&&2<=c||2<=e&&c>=(8<g?2:1)||h===g-1)t&&(b[k]&&2<t.length&&k++,b[k]=b[k]?b[k]+t:t," "===d&&k++,t=""),c=e=0}return b}function F(a){for(var b="",e="",c="",k=0;k<a.length;k++){var d=a[k];if(d!==e)if(k&&"h"===d){if(c="a"===c||"e"===c||"i"===c||"o"===c||"u"===c||"y"===c,("a"===e||"e"===e||"i"===e||"o"===e||
"u"===e||"y"===e)&&c||" "===e)b+=d}else b+=d;c=k===a.length-1?"":a[k+1];e=d}return b}function P(a,b){var e={};if(a)for(var c=0;c<a.length;c++){var k=b?b.call(A,a[c]):a[c];e[k]=String.fromCharCode(65E3-a.length+c)}return e}function Q(a,b){var e=[];if(a){var c=0,k;for(k in a)if(a.hasOwnProperty(k)){var t=b?b.call(A,k):k;e[c++]=d("(?=.{"+(t.length+3)+",})"+t+"$");e[c++]=b?b.call(A,a[k]):a[k]}}return e}function R(a,b){a=a.length-b.length;return 0>a?1:0<a?-1:0}function S(a,b){a=a.length-b.length;return 0>
a?-1:0<a?1:0}function T(a,b,e){var c=[],k=[],d=a.length;if(1<d){a.sort(S);for(var g={},h=a[0],f=h.length,m=0;m<f;)g[h[m++]]=1;for(var p,u=0,n=1;n<d;){var l=!1,q=n===d-1;k=[];h=a[n];f=h.length;for(m=-1;m<f;){var r=g[p=h[++m]];if(r===n){if(q&&(c[u++]=p,b&&u===b))return c;l=!0;g[p]=n+1}else e&&(r=k[r]||(k[r]=[]),r[r.length]=p)}if(!l&&!e)break;n++}if(e&&(b||(b=1E3),u=c.length,f=k.length,u<b&&f))for(n=f-1;0<=n;n--)if(p=k[n])for(m=0;m<p.length;m++)if(c[u++]=p[m],b&&u===b)return c}else d&&(c=a[0],b&&c.length>
b&&(c=c.slice(0,b)));return c}function G(a){a.B||(a.B=I(function(){a.B=null;var b=a.async;b&&(a.async=!1);if(a.b.length){for(var e=J(),c;(c=a.b.shift())||0===c;){var d=a.f[c];switch(d[0]){case C.add:a.add(d[1],d[2]);break;case C.remove:a.remove(d[1])}a.f[c]=null;delete a.f[c];if(100<J()-e)break}a.b.length&&G(a)}b&&(a.async=b)},1,"search-async-"+a.id))}function J(){return"undefined"!==typeof performance?performance.now():(new Date).getTime()}function U(a,b,e,c){a=v("flexsearch","id"+a,function(){var a,
b;self.onmessage=function(c){if(c=c.data)if(c.search){var e=b.search(c.content,c.threshold?{limit:c.limit,threshold:c.threshold}:c.limit);self.postMessage({id:a,content:c.content,limit:c.limit,result:e})}else c.add?b.add(c.id,c.content):c.update?b.update(c.id,c.content):c.remove?b.remove(c.id):c.reset?b.reset():c.info?(c=b.info(),c.worker=a,b.debug&&console.log(c)):c.register&&(a=c.id,c.options.cache=!1,c.options.async=!0,c.options.worker=!1,b=(new Function(c.register.substring(c.register.indexOf("{")+
1,c.register.lastIndexOf("}"))))(),b=new b(c.options))}},function(a){(a=a.data)&&a.result?c(a.id,a.content,a.result,a.limit):e.debug&&console.log(a)},b);var d=N.toString();e.id=b;a.postMessage(b,{register:d,options:e,id:b});return a}var y={encode:"icase",mode:"forward",u:!1,cache:!1,async:!1,c:!1,threshold:0,depth:0},E={memory:{encode:"extra",mode:"strict",threshold:7},speed:{encode:"icase",mode:"strict",threshold:7,depth:2},match:{encode:"extra",mode:"full"},score:{encode:"extra",mode:"strict",threshold:5,
depth:4},balance:{encode:"balance",mode:"ngram",threshold:6,depth:3},fastest:{encode:"icase",mode:"strict",threshold:9,depth:1}},D=[],O=0,C={add:0,update:1,remove:2},K=d("[ -/]"),L={},M={};f.new=function(a){return new this(a)};f.create=function(a){return f.new(a)};f.registerMatcher=function(a){for(var b in a)a.hasOwnProperty(b)&&D.push(d(b),a[b]);return this};f.registerEncoder=function(a,b){A[a]=b;return this};f.registerLanguage=function(a,b){L[a]=b.filter;M[a]=b.stemmer;return this};f.encode=function(a,
b){return A[a].call(A,b)};f.prototype.init=function(a){this.A=[];a||(a=y);var b=a.profile,e=b?E[b]:{};if(b=a.worker)if("undefined"===typeof Worker)a.worker=!1,this.h=null;else{var c=this;b=parseInt(b,10)||4;c.m=-1;c.o=0;c.g=[];c.w=null;c.h=Array(b);for(var d=0;d<b;d++)c.h[d]=U(c.id,d,a,function(a,b,e,d){if(c.o!==c.c)return c.g=c.g.concat(e),c.o++,d&&c.g.length>=d&&(c.o=c.c),c.w&&c.o===c.c&&(c.cache&&c.i.set(b,c.g),c.w(c.g),c.g=[]),c})}this.mode=a.mode||e.mode||this.mode||y.mode;this.async=a.async||
this.async||y.async;this.c=a.worker||this.c||y.c;this.threshold=a.threshold||e.threshold||this.threshold||y.threshold;this.depth=a.depth||e.depth||this.depth||y.depth;this.u=a.suggest||this.u||y.u;this.s=(b=a.encode||e.encode)&&A[b]||("function"===typeof b?b:this.s||!1);this.debug=a.debug||this.debug;(b=a.matcher)&&this.addMatcher(b);if(b=a.filter)this.filter=P(L[b]||b,this.s);if(b=a.stemmer)this.stemmer=Q(M[b]||b,this.s);this.j=[{},{},{},{},{},{},{},{},{},{}];this.l={};this.a={};this.f={};this.b=
[];this.B=null;this.v=!0;this.i=(this.cache=b=a.cache||this.cache||y.cache)?new V(b):!1;return this};f.prototype.encode=function(a){a&&D.length&&(a=x(a,D));a&&this.A.length&&(a=x(a,this.A));a&&this.s&&(a=this.s.call(A,a));a&&this.stemmer&&(a=x(a,this.stemmer));return a};f.prototype.addMatcher=function(a){var b=this.A,e;for(e in a)a.hasOwnProperty(e)&&(b[b.length]=d(e),b[b.length]=a[e]);return this};f.prototype.add=function(a,b,e){if("string"===typeof b&&b&&(a||0===a))if(this.a[a]&&!e)this.update(a,
b);else{if(this.c)return++this.m>=this.h.length&&(this.m=0),this.h[this.m].postMessage(this.m,{add:!0,id:a,content:b}),this.a[a]=""+this.m,this;if(this.async)return this.f[a]||(this.b[this.b.length]=a),this.f[a]=[C.add,a,b],G(this),this;b=this.encode(b);if(!b.length)return this;e=this.mode;b="function"===typeof e?e(b):"ngram"===e?H(b):b.split(K);for(var c={_ctx:{}},d=this.threshold,t=this.depth,g=this.j,h=b.length,f=0;f<h;f++){var m=b[f];if(m){var p=m.length,u=(h-f)/h;switch(e){case "reverse":case "both":for(var n=
"",l=p-1;1<=l;l--)n=m[l]+n,z(g,c,n,a,(p-l)/p,u,d);case "forward":n="";for(l=0;l<p;l++)n+=m[l],z(g,c,n,a,1,u,d);break;case "full":for(l=0;l<p;l++)for(var q=(p-l)/p,r=p;r>l;r--)n=m.substring(l,r),z(g,c,n,a,q,u,d);break;default:if(l=z(g,c,m,a,1,u,d),t&&1<h&&l>=d)for(p=c._ctx[m]||(c._ctx[m]={}),m=this.l[m]||(this.l[m]=[{},{},{},{},{},{},{},{},{},{}]),l=f-t,r=f+t+1,0>l&&(l=0),r>h&&(r=h);l<r;l++)l!==f&&z(m,p,b[l],a,0,10-(l<f?f-l:l-f),d)}}}this.a[a]="1";this.v=!1}return this};f.prototype.update=function(a,
b){this.a[a]&&b&&"string"===typeof b&&(this.remove(a),this.add(a,b,!0));return this};f.prototype.remove=function(a){if(this.a[a]){if(this.c){var b=parseInt(this.a[a],10);this.h[b].postMessage(b,{remove:!0,id:a});delete this.a[a];return this}if(this.async)return this.f[a]||(this.b[this.b.length]=a),this.f[a]=[C.remove,a],G(this),this;for(b=0;10>b;b++)q(this.j[b],a);this.depth&&q(this.l,a);delete this.a[a];this.v=!1}return this};f.prototype.search=function(a,b,e){var c=[];if(a&&"object"===typeof a){e=
a.callback||b;b=a.limit;var d=a.threshold;a=a.query}d=(d||this.threshold||0)|0;"function"===typeof b?(e=b,b=1E3):b||(b=1E3);if(this.c){this.w=e;this.o=0;this.g=[];for(c=0;c<this.c;c++)this.h[c].postMessage(c,{search:!0,limit:b,threshold:d,content:a});return null}if(e){var f=this;I(function(){e(f.search(a,b));f=null},1,"search-"+this.id);return null}if(!a||"string"!==typeof a)return c;var g=a;if(this.cache)if(this.v){var h=this.i.get(a);if(h)return h}else this.i.reset(),this.v=!0;g=this.encode(g);
if(!g.length)return c;h=this.mode;g="function"===typeof h?h(g):"ngram"===h?H(g):g.split(K);h=g.length;var q=!0,m=[],p={};if(1<h)if(this.depth){var u=!0,n=g[0];p[n]="1"}else g.sort(R);var l;if(!u||(l=this.l)[n])for(var v=u?1:0;v<h;v++){var r=g[v];if(r&&!p[r]){for(var w,y=!1,x=[],z=0,A=9;A>=d;A--)if(w=(u?l[n]:this.j)[A][r])x[z++]=w,y=!0;if(y)m[m.length]=1<z?m.concat.apply([],x):x[0];else if(!this.u){q=!1;break}p[r]="1"}n=r}else q=!1;q&&(c=T(m,b,this.u));this.cache&&this.i.set(a,c);return c};f.prototype.info=
function(){if(this.c)for(var a=0;a<this.c;a++)this.h[a].postMessage(a,{info:!0,id:this.id});else{for(var b,e,c=0,d=0,f=0,g=0;10>g;g++)for(b=Object.keys(this.j[g]),a=0;a<b.length;a++)e=this.j[g][b[a]].length,c+=1*e+2*b[a].length+4,d+=e,f+=2*b[a].length;b=Object.keys(this.a);e=b.length;for(a=0;a<e;a++)c+=2*b[a].length+2;return{id:this.id,memory:c,items:e,sequences:d,chars:f,cache:this.b.length,matcher:D.length,worker:this.c}}};f.prototype.reset=function(){this.destroy();return this.init()};f.prototype.destroy=
function(){this.cache&&(this.i.reset(),this.i=null);this.filter=this.stemmer=this.j=this.l=this.a=this.f=this.b=null;return this};var A={icase:function(a){return a.toLowerCase()},simple:function(){var a=[d("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",d("[\u00e8\u00e9\u00ea\u00eb]"),"e",d("[\u00ec\u00ed\u00ee\u00ef]"),"i",d("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",d("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",d("[\u00fd\u0177\u00ff]"),"y",d("\u00f1"),"n",d("\u00e7"),"c",d("\u00df"),"s",d(" & "),
" and ",d("[-/]")," ",d("[^a-z0-9 ]"),"",d("\\s\\s+")," "];return function(b){b=x(b.toLowerCase(),a);return" "!==b?b:""}}(),advanced:function(){var a=[d("ae"),"a",d("ai"),"ei",d("ay"),"ei",d("ey"),"ei",d("oe"),"o",d("ue"),"u",d("ie"),"i",d("sz"),"s",d("zs"),"s",d("sh"),"s",d("ck"),"k",d("cc"),"k",d("dt"),"t",d("ph"),"f",d("pf"),"f",d("ou"),"o",d("uo"),"u"];return function(b,d){if(!b)return b;b=this.simple(b);2<b.length&&(b=x(b,a));d||1<b.length&&(b=F(b));return b}}(),extra:function(){var a=[d("p"),
"b",d("z"),"s",d("[cgq]"),"k",d("n"),"m",d("d"),"t",d("[vw]"),"f",d("[aeiouy]"),""];return function(b){if(!b)return b;b=this.advanced(b,!0);if(1<b.length){b=b.split(" ");for(var d=0;d<b.length;d++){var c=b[d];1<c.length&&(b[d]=c[0]+x(c.substring(1),a))}b=b.join(" ");b=F(b)}return b}}(),balance:function(){var a=[d("[-/]")," ",d("[^a-z0-9 ]"),"",d("\\s\\s+")," "];return function(b){return F(x(b.toLowerCase(),a))}}()},I=function(){var a={};return function(b,d,c){var e=a[c];e&&clearTimeout(e);return a[c]=
setTimeout(b,d)}}(),V=function(){function a(a){this.reset();this.b=!0!==a&&a}a.prototype.reset=function(){this.cache={};this.count={};this.index={};this.a=[]};a.prototype.set=function(a,d){if(this.b&&"undefined"===typeof this.cache[a]){var b=this.a.length;if(b===this.b){b--;var e=this.a[b];delete this.cache[e];delete this.count[e];delete this.index[e]}this.index[a]=b;this.a[b]=a;this.count[a]=-1;this.cache[a]=d;this.get(a)}else this.cache[a]=d};a.prototype.get=function(a){var b=this.cache[a];if(this.b&&
b){var c=++this.count[a],d=this.index,f=d[a];if(0<f){for(var g=this.a,h=f;this.count[g[--f]]<=c&&-1!==f;);f++;if(f!==h){for(c=h;c>f;c--)h=g[c-1],g[c]=h,d[h]=c;g[f]=a;d[a]=f}}}return b};return a}();return f}(function(){var v={},B=!("undefined"===typeof Blob||"undefined"===typeof URL||!URL.createObjectURL);return function(f,w,d,x,z){var q=f;f=B?URL.createObjectURL(new Blob(["var SUPPORT_WORKER = true;var SUPPORT_BUILTINS = true;var SUPPORT_DEBUG = true;var SUPPORT_CACHE = true;var SUPPORT_ASYNC = true;("+
"u"===e||"y"===e)&&c||" "===e)b+=d}else b+=d;c=k===a.length-1?"":a[k+1];e=d}return b}function P(a,b){var e=Object.create(null);if(a)for(var c=0;c<a.length;c++){var k=b?b.call(A,a[c]):a[c];e[k]=String.fromCharCode(65E3-a.length+c)}return e}function Q(a,b){var e=[];if(a){var c=0,k;for(k in a)if(a.hasOwnProperty(k)){var t=b?b.call(A,k):k;e[c++]=d("(?=.{"+(t.length+3)+",})"+t+"$");e[c++]=b?b.call(A,a[k]):a[k]}}return e}function R(a,b){a=a.length-b.length;return 0>a?1:0<a?-1:0}function S(a,b){a=a.length-
b.length;return 0>a?-1:0<a?1:0}function T(a,b,e){var c=[],k=[],d=a.length;if(1<d){a.sort(S);for(var g=Object.create(null),h=a[0],f=h.length,m=0;m<f;)g[h[m++]]=1;for(var p,u=0,n=1;n<d;){var l=!1,q=n===d-1;k=[];h=a[n];f=h.length;for(m=-1;m<f;){var r=g[p=h[++m]];if(r===n){if(q&&(c[u++]=p,b&&u===b))return c;l=!0;g[p]=n+1}else e&&(r=k[r]||(k[r]=[]),r[r.length]=p)}if(!l&&!e)break;n++}if(e&&(b||(b=1E3),u=c.length,f=k.length,u<b&&f))for(n=f-1;0<=n;n--)if(p=k[n])for(m=0;m<p.length;m++)if(c[u++]=p[m],b&&u===
b)return c}else d&&(c=a[0],b&&c.length>b&&(c=c.slice(0,b)));return c}function G(a){a.B||(a.B=I(function(){a.B=null;var b=a.async;b&&(a.async=!1);if(a.b.length){for(var e=J(),c;(c=a.b.shift())||0===c;){var d=a.f[c];switch(d[0]){case D.add:a.add(d[1],d[2]);break;case D.remove:a.remove(d[1])}a.f[c]=null;delete a.f[c];if(100<J()-e)break}a.b.length&&G(a)}b&&(a.async=b)},1,"search-async-"+a.id))}function J(){return"undefined"!==typeof performance?performance.now():(new Date).getTime()}function U(a,b,e,
c){a=v("flexsearch","id"+a,function(){var a,b;self.onmessage=function(c){if(c=c.data)if(c.search){var e=b.search(c.content,c.threshold?{limit:c.limit,threshold:c.threshold}:c.limit);self.postMessage({id:a,content:c.content,limit:c.limit,result:e})}else c.add?b.add(c.id,c.content):c.update?b.update(c.id,c.content):c.remove?b.remove(c.id):c.reset?b.reset():c.info?(c=b.info(),c.worker=a,b.debug&&console.log(c)):c.register&&(a=c.id,c.options.cache=!1,c.options.async=!0,c.options.worker=!1,b=(new Function(c.register.substring(c.register.indexOf("{")+
1,c.register.lastIndexOf("}"))))(),b=new b(c.options))}},function(a){(a=a.data)&&a.result?c(a.id,a.content,a.result,a.limit):e.debug&&console.log(a)},b);var d=N.toString();e.id=b;a.postMessage(b,{register:d,options:e,id:b});return a}var y={encode:"icase",mode:"forward",u:!1,cache:!1,async:!1,c:!1,threshold:0,depth:0},C={memory:{encode:"extra",mode:"strict",threshold:7},speed:{encode:"icase",mode:"strict",threshold:7,depth:2},match:{encode:"extra",mode:"full"},score:{encode:"extra",mode:"strict",threshold:5,
depth:4},balance:{encode:"balance",mode:"ngram",threshold:6,depth:3},fastest:{encode:"icase",mode:"strict",threshold:9,depth:1}},E=[],O=0,D={add:0,update:1,remove:2},K=d("[ -/]"),L=Object.create(null),M=Object.create(null);f.new=function(a){return new this(a)};f.create=function(a){return f.new(a)};f.registerMatcher=function(a){for(var b in a)a.hasOwnProperty(b)&&E.push(d(b),a[b]);return this};f.registerEncoder=function(a,b){A[a]=b;return this};f.registerLanguage=function(a,b){L[a]=b.filter;M[a]=b.stemmer;
return this};f.encode=function(a,b){return A[a].call(A,b)};f.prototype.init=function(a){this.A=[];a||(a=y);var b=a.profile,e=b&&C.hasOwnProperty(b)?C[b]:Object.create(null);if(b=a.worker)if("undefined"===typeof Worker)a.worker=!1,this.h=null;else{var c=this;b=parseInt(b,10)||4;c.m=-1;c.o=0;c.g=[];c.w=null;c.h=Array(b);for(var d=0;d<b;d++)c.h[d]=U(c.id,d,a,function(a,b,e,d){if(c.o!==c.c)return c.g=c.g.concat(e),c.o++,d&&c.g.length>=d&&(c.o=c.c),c.w&&c.o===c.c&&(c.cache&&c.i.set(b,c.g),c.w(c.g),c.g=
[]),c})}this.mode=a.mode||e.mode||this.mode||y.mode;this.async=a.async||this.async||y.async;this.c=a.worker||this.c||y.c;this.threshold=a.threshold||e.threshold||this.threshold||y.threshold;this.depth=a.depth||e.depth||this.depth||y.depth;this.u=a.suggest||this.u||y.u;this.s=(b=a.encode||e.encode)&&A[b]||("function"===typeof b?b:this.s||!1);this.debug=a.debug||this.debug;(b=a.matcher)&&this.addMatcher(b);if(b=a.filter)this.filter=P(L[b]||b,this.s);if(b=a.stemmer)this.stemmer=Q(M[b]||b,this.s);this.j=
[Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null)];this.l=Object.create(null);this.a=Object.create(null);this.f=Object.create(null);this.b=[];this.B=null;this.v=!0;this.i=(this.cache=b=a.cache||this.cache||y.cache)?new V(b):!1;return this};f.prototype.encode=function(a){a&&E.length&&(a=x(a,E));a&&this.A.length&&(a=x(a,this.A));a&&this.s&&(a=this.s.call(A,
a));a&&this.stemmer&&(a=x(a,this.stemmer));return a};f.prototype.addMatcher=function(a){var b=this.A,e;for(e in a)a.hasOwnProperty(e)&&(b[b.length]=d(e),b[b.length]=a[e]);return this};f.prototype.add=function(a,b,e){if("string"===typeof b&&b&&(a||0===a))if(this.a[a]&&!e)this.update(a,b);else{if(this.c)return++this.m>=this.h.length&&(this.m=0),this.h[this.m].postMessage(this.m,{add:!0,id:a,content:b}),this.a[a]=""+this.m,this;if(this.async)return this.f[a]||(this.b[this.b.length]=a),this.f[a]=[D.add,
a,b],G(this),this;b=this.encode(b);if(!b.length)return this;e=this.mode;b="function"===typeof e?e(b):"ngram"===e?H(b):b.split(K);for(var c={_ctx:Object.create(null)},d=this.threshold,t=this.depth,g=this.j,h=b.length,f=0;f<h;f++){var m=b[f];if(m){var p=m.length,u=(h-f)/h;switch(e){case "reverse":case "both":for(var n="",l=p-1;1<=l;l--)n=m[l]+n,z(g,c,n,a,(p-l)/p,u,d);case "forward":n="";for(l=0;l<p;l++)n+=m[l],z(g,c,n,a,1,u,d);break;case "full":for(l=0;l<p;l++)for(var q=(p-l)/p,r=p;r>l;r--)n=m.substring(l,
r),z(g,c,n,a,q,u,d);break;default:if(l=z(g,c,m,a,1,u,d),t&&1<h&&l>=d)for(p=c._ctx[m]||(c._ctx[m]=Object.create(null)),m=this.l[m]||(this.l[m]=[Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null),Object.create(null)]),l=f-t,r=f+t+1,0>l&&(l=0),r>h&&(r=h);l<r;l++)l!==f&&z(m,p,b[l],a,0,10-(l<f?f-l:l-f),d)}}}this.a[a]="1";this.v=!1}return this};f.prototype.update=function(a,b){this.a[a]&&
b&&"string"===typeof b&&(this.remove(a),this.add(a,b,!0));return this};f.prototype.remove=function(a){if(this.a[a]){if(this.c){var b=parseInt(this.a[a],10);this.h[b].postMessage(b,{remove:!0,id:a});delete this.a[a];return this}if(this.async)return this.f[a]||(this.b[this.b.length]=a),this.f[a]=[D.remove,a],G(this),this;for(b=0;10>b;b++)q(this.j[b],a);this.depth&&q(this.l,a);delete this.a[a];this.v=!1}return this};f.prototype.search=function(a,b,e){var c=[];if(a&&"object"===typeof a){e=a.callback||
b;b=a.limit;var d=a.threshold;a=a.query}d=(d||this.threshold||0)|0;"function"===typeof b?(e=b,b=1E3):b||(b=1E3);if(this.c){this.w=e;this.o=0;this.g=[];for(c=0;c<this.c;c++)this.h[c].postMessage(c,{search:!0,limit:b,threshold:d,content:a});return null}if(e){var f=this;I(function(){e(f.search(a,b));f=null},1,"search-"+this.id);return null}if(!a||"string"!==typeof a)return c;var g=a;if(this.cache)if(this.v){var h=this.i.get(a);if(h)return h}else this.i.reset(),this.v=!0;g=this.encode(g);if(!g.length)return c;
h=this.mode;g="function"===typeof h?h(g):"ngram"===h?H(g):g.split(K);h=g.length;var q=!0,m=[],p=Object.create(null);if(1<h)if(this.depth){var u=!0,n=g[0];p[n]="1"}else g.sort(R);var l;if(!u||(l=this.l)[n])for(var v=u?1:0;v<h;v++){var r=g[v];if(r&&!p[r]){for(var w,y=!1,x=[],z=0,A=9;A>=d;A--)if(w=(u?l[n]:this.j)[A][r])x[z++]=w,y=!0;if(y)m[m.length]=1<z?m.concat.apply([],x):x[0];else if(!this.u){q=!1;break}p[r]="1"}n=r}else q=!1;q&&(c=T(m,b,this.u));this.cache&&this.i.set(a,c);return c};f.prototype.info=
function(){if(this.c)for(var a=0;a<this.c;a++)this.h[a].postMessage(a,{info:!0,id:this.id});else{for(var b,e,c=0,d=0,f=0,g=0;10>g;g++)for(b=Object.keys(this.j[g]),a=0;a<b.length;a++)e=this.j[g][b[a]].length,c+=1*e+2*b[a].length+4,d+=e,f+=2*b[a].length;b=Object.keys(this.a);e=b.length;for(a=0;a<e;a++)c+=2*b[a].length+2;return{id:this.id,memory:c,items:e,sequences:d,chars:f,cache:this.b.length,matcher:E.length,worker:this.c}}};f.prototype.reset=function(){this.destroy();return this.init()};f.prototype.destroy=
function(){this.cache&&(this.i.reset(),this.i=null);this.filter=this.stemmer=this.j=this.l=this.a=this.f=this.b=null;return this};var A=Object.create({icase:function(a){return a.toLowerCase()},simple:function(){var a=[d("[\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5]"),"a",d("[\u00e8\u00e9\u00ea\u00eb]"),"e",d("[\u00ec\u00ed\u00ee\u00ef]"),"i",d("[\u00f2\u00f3\u00f4\u00f5\u00f6\u0151]"),"o",d("[\u00f9\u00fa\u00fb\u00fc\u0171]"),"u",d("[\u00fd\u0177\u00ff]"),"y",d("\u00f1"),"n",d("\u00e7"),"c",d("\u00df"),
"s",d(" & ")," and ",d("[-/]")," ",d("[^a-z0-9 ]"),"",d("\\s\\s+")," "];return function(b){b=x(b.toLowerCase(),a);return" "!==b?b:""}}(),advanced:function(){var a=[d("ae"),"a",d("ai"),"ei",d("ay"),"ei",d("ey"),"ei",d("oe"),"o",d("ue"),"u",d("ie"),"i",d("sz"),"s",d("zs"),"s",d("sh"),"s",d("ck"),"k",d("cc"),"k",d("dt"),"t",d("ph"),"f",d("pf"),"f",d("ou"),"o",d("uo"),"u"];return function(b,d){if(!b)return b;b=this.simple(b);2<b.length&&(b=x(b,a));d||1<b.length&&(b=F(b));return b}}(),extra:function(){var a=
[d("p"),"b",d("z"),"s",d("[cgq]"),"k",d("n"),"m",d("d"),"t",d("[vw]"),"f",d("[aeiouy]"),""];return function(b){if(!b)return b;b=this.advanced(b,!0);if(1<b.length){b=b.split(" ");for(var d=0;d<b.length;d++){var c=b[d];1<c.length&&(b[d]=c[0]+x(c.substring(1),a))}b=b.join(" ");b=F(b)}return b}}(),balance:function(){var a=[d("[-/]")," ",d("[^a-z0-9 ]"),"",d("\\s\\s+")," "];return function(b){return F(x(b.toLowerCase(),a))}}()}),I=function(){var a=Object.create(null);return function(b,d,c){var e=a[c];
e&&clearTimeout(e);return a[c]=setTimeout(b,d)}}(),V=function(){function a(a){this.reset();this.b=!0!==a&&a}a.prototype.reset=function(){this.cache=Object.create(null);this.count=Object.create(null);this.index=Object.create(null);this.a=[]};a.prototype.set=function(a,d){if(this.b&&"undefined"===typeof this.cache[a]){var b=this.a.length;if(b===this.b){b--;var e=this.a[b];delete this.cache[e];delete this.count[e];delete this.index[e]}this.index[a]=b;this.a[b]=a;this.count[a]=-1;this.cache[a]=d;this.get(a)}else this.cache[a]=
d};a.prototype.get=function(a){var b=this.cache[a];if(this.b&&b){var c=++this.count[a],d=this.index,f=d[a];if(0<f){for(var g=this.a,h=f;this.count[g[--f]]<=c&&-1!==f;);f++;if(f!==h){for(c=h;c>f;c--)h=g[c-1],g[c]=h,d[h]=c;g[f]=a;d[a]=f}}}return b};return a}();return f}(function(){var v=Object.create(null),B=!("undefined"===typeof Blob||"undefined"===typeof URL||!URL.createObjectURL);return function(f,w,d,x,z){var q=f;f=B?URL.createObjectURL(new Blob(["var SUPPORT_WORKER = true;var SUPPORT_BUILTINS = true;var SUPPORT_DEBUG = true;var SUPPORT_CACHE = true;var SUPPORT_ASYNC = true;("+
d.toString()+")()"],{type:"text/javascript"})):"../"+q+".js";q+="-"+w;v[q]||(v[q]=[]);v[q][z]=new Worker(f);v[q][z].onmessage=x;console.log("Register Worker: "+q+"@"+z);return{postMessage:function(d,f){v[q][d].postMessage(f)}}}}()),this);

View File

@@ -1,6 +1,6 @@
{
"name": "flexsearch",
"version": "0.2.66",
"version": "0.2.67",
"description": "Next-Generation full text search library with zero dependencies.",
"homepage": "https://github.com/nextapps-de/flexsearch/",
"author": "Thomas Wilkerling",
@@ -47,11 +47,10 @@
"LICENSE"
],
"readme": "README.md",
"dependencies": {
"codacy-coverage": "^2.1.1"
},
"dependencies": {},
"devDependencies": {
"chai": "^4.1.2",
"codacy-coverage": "^2.1.1",
"coveralls": "^3.0.0",
"google-closure-compiler": "^20180402.0.0",
"mocha": "^5.1.1",