diff --git a/README.md b/README.md
index e5684a2..c1170c7 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,7 @@ npm install git+https://github.com/nextapps-de/flexsearch/tree/v0.8-preview
- Enhanced Worker Support
- Improved Build System + Bundler (Supported: CommonJS, ESM, Global Namespace), also the import of language packs are now supported for Node.js
- Full covering index.d.ts type definitions
+- Fast-Boot Serialization optimized for Server-Side-Rendering (PHP, Python, Ruby, Rust, Java, Go, Node.js, ...)
Compare Benchmark: [0.7.0](https://nextapps-de.github.io/flexsearch/test/flexsearch-0.7.0/) vs. [0.8.0](https://nextapps-de.github.io/flexsearch/test/flexsearch-0.8.0/)
@@ -1633,6 +1634,72 @@ const index = new Index({
If you get some good results please feel free to share your encoder.
+## Fast-Boot Serialization for Server-Side-Rendering (PHP, Python, Ruby, Rust, Java, Go, Node.js, ...)
+
+When using Server-Side-Rendering you can create a different export which instantly boot up. Especially when using Server-side rendered content, this could help to restore an index on page load.
+
+> When your index is too large you should use the default export/import mechanism.
+
+As the first step populate the FlexSearch index with your contents.
+
+You have two options:
+
+### 1. Create a function as string
+
+```js
+const fn_string = index.serialize();
+```
+
+The contents of `fn_string` is a valid Javascript-Function declared as `inject(index)`. Store it or place this somewhere in your code.
+
+This function basically looks like:
+
+```js
+function inject(index){
+ index.reg = new Set([/* ... */]);
+ index.map = new Map([/* ... */]);
+ index.ctx = new Map([/* ... */]);
+}
+```
+
+After creating the index on client side just call the inject method like:
+
+```js
+const index = new Index();
+inject(index);
+```
+
+That's it.
+
+### 2. Create just a function body as string
+
+Alternatively you can use lazy function declaration by passing `false` to the serialize function:
+
+```js
+const fn_body = index.serialize(false);
+```
+
+You will get just the function body which looks like:
+
+```js
+index.reg = new Set([/* ... */]);
+index.map = new Map([/* ... */]);
+index.ctx = new Map([/* ... */]);
+```
+
+Now you can place this in your code directly (name your index as `index`), or you can also create an inject function from it, e.g.:
+
+```js
+const inject = new Function("index", fn_body);
+```
+
+This function is callable like the above example:
+
+```js
+const index = new Index();
+inject(index);
+```
+
## Load Library (Node.js, ESM, Legacy Browser)
> Please do not use the `/src/` folder of this repo. It isn't meant to be used directly, instead it needs [conditional compilation](https://en.wikipedia.org/wiki/Conditional_compilation). You can easily perform a custom build, but you shouldn't use the source folder for production. You will need at least any kind of compiler which resolve the compiler flags within the code like [Closure Compiler](https://github.com/google/closure-compiler) (Advanced Compilation) or with [Babel conditional-compile](https://github.com/brianZeng/babel-plugin-conditional-compile) plugin. The `/dist/` folder is containing every version which you probably need including unminified ESM modules.
diff --git a/dist/flexsearch.bundle.debug.js b/dist/flexsearch.bundle.debug.js
index f9eafad..426c42c 100644
--- a/dist/flexsearch.bundle.debug.js
+++ b/dist/flexsearch.bundle.debug.js
@@ -129,32 +129,32 @@ G.prototype.assign = function(a) {
this.minlength = y(a.minlength, 1, this.minlength);
this.maxlength = y(a.maxlength, 0, this.maxlength);
if (this.cache = c = y(a.cache, !0, this.cache)) {
- this.O = null, this.V = "number" === typeof c ? c : 2e5, this.J = new Map(), this.M = new Map(), this.B = this.h = 128;
+ this.M = null, this.T = "number" === typeof c ? c : 2e5, this.H = new Map(), this.K = new Map(), this.A = this.h = 128;
}
- this.C = "";
- this.S = null;
- this.P = "";
- this.T = null;
+ this.B = "";
+ this.P = null;
+ this.N = "";
+ this.R = null;
if (this.matcher) {
for (const d of this.matcher.keys()) {
- this.C += (this.C ? "|" : "") + d;
+ this.B += (this.B ? "|" : "") + d;
}
}
if (this.stemmer) {
for (const d of this.stemmer.keys()) {
- this.P += (this.P ? "|" : "") + d;
+ this.N += (this.N ? "|" : "") + d;
}
}
return this;
};
G.prototype.encode = function(a) {
if (this.cache && a.length <= this.h) {
- if (this.O) {
- if (this.J.has(a)) {
- return this.J.get(a);
+ if (this.M) {
+ if (this.H.has(a)) {
+ return this.H.get(a);
}
} else {
- this.O = setTimeout(la, 0, this);
+ this.M = setTimeout(la, 0, this);
}
}
this.normalize && (a = "function" === typeof this.normalize ? this.normalize(a) : ka ? a.normalize("NFKD").replace(ka, "").toLowerCase() : a.toLowerCase());
@@ -176,20 +176,20 @@ G.prototype.encode = function(a) {
if (this.filter && this.filter.has(g)) {
continue;
}
- if (this.cache && g.length <= this.B) {
- if (this.O) {
- var e = this.M.get(g);
+ if (this.cache && g.length <= this.A) {
+ if (this.M) {
+ var e = this.K.get(g);
if (e || "" === e) {
e && c.push(e);
continue;
}
} else {
- this.O = setTimeout(la, 0, this);
+ this.M = setTimeout(la, 0, this);
}
}
let k;
- this.stemmer && 2 < g.length && (this.T || (this.T = new RegExp("(?!^)(" + this.P + ")$")), g = g.replace(this.T, l => this.stemmer.get(l)), k = 1);
- this.matcher && 1 < g.length && (this.S || (this.S = new RegExp("(" + this.C + ")", "g")), g = g.replace(this.S, l => this.matcher.get(l)), k = 1);
+ this.stemmer && 2 < g.length && (this.R || (this.R = new RegExp("(?!^)(" + this.N + ")$")), g = g.replace(this.R, l => this.stemmer.get(l)), k = 1);
+ this.matcher && 1 < g.length && (this.P || (this.P = new RegExp("(" + this.B + ")", "g")), g = g.replace(this.P, l => this.matcher.get(l)), k = 1);
g && k && (g.length < this.minlength || this.filter && this.filter.has(g)) && (g = "");
if (g && (this.mapper || this.dedupe && 1 < g.length)) {
e = "";
@@ -203,17 +203,17 @@ G.prototype.encode = function(a) {
g = g.replace(this.replacer[e], this.replacer[e + 1]);
}
}
- this.cache && h.length <= this.B && (this.M.set(h, g), this.M.size > this.V && (this.M.clear(), this.B = this.B / 1.1 | 0));
+ this.cache && h.length <= this.A && (this.K.set(h, g), this.K.size > this.T && (this.K.clear(), this.A = this.A / 1.1 | 0));
g && c.push(g);
}
this.finalize && (c = this.finalize(c) || c);
- this.cache && a.length <= this.h && (this.J.set(a, c), this.J.size > this.V && (this.J.clear(), this.h = this.h / 1.1 | 0));
+ this.cache && a.length <= this.h && (this.H.set(a, c), this.H.size > this.T && (this.H.clear(), this.h = this.h / 1.1 | 0));
return c;
};
function la(a) {
- a.O = null;
- a.J.clear();
- a.M.clear();
+ a.M = null;
+ a.H.clear();
+ a.K.clear();
}
;function ma(a, b, c) {
a = ("object" === typeof a ? "" + a.query : a).toLowerCase();
@@ -376,9 +376,9 @@ function L(a = 8) {
return new L(a);
}
this.index = z();
- this.C = [];
+ this.B = [];
this.size = 0;
- 32 < a ? (this.h = xa, this.B = BigInt(a)) : (this.h = ya, this.B = a);
+ 32 < a ? (this.h = xa, this.A = BigInt(a)) : (this.h = ya, this.A = a);
}
L.prototype.get = function(a) {
const b = this.index[this.h(a)];
@@ -387,7 +387,7 @@ L.prototype.get = function(a) {
L.prototype.set = function(a, b) {
var c = this.h(a);
let d = this.index[c];
- d ? (c = d.size, d.set(a, b), (c -= d.size) && this.size++) : (this.index[c] = d = new Map([[a, b]]), this.C.push(d));
+ d ? (c = d.size, d.set(a, b), (c -= d.size) && this.size++) : (this.index[c] = d = new Map([[a, b]]), this.B.push(d));
};
function M(a = 8) {
if (!this) {
@@ -395,20 +395,20 @@ function M(a = 8) {
}
this.index = z();
this.h = [];
- 32 < a ? (this.C = xa, this.B = BigInt(a)) : (this.C = ya, this.B = a);
+ 32 < a ? (this.B = xa, this.A = BigInt(a)) : (this.B = ya, this.A = a);
}
M.prototype.add = function(a) {
- var b = this.C(a);
+ var b = this.B(a);
let c = this.index[b];
c ? (b = c.size, c.add(a), (b -= c.size) && this.size++) : (this.index[b] = c = new Set([a]), this.h.push(c));
};
u = L.prototype;
u.has = M.prototype.has = function(a) {
- const b = this.index[this.C(a)];
+ const b = this.index[this.B(a)];
return b && b.has(a);
};
u.delete = M.prototype.delete = function(a) {
- const b = this.index[this.C(a)];
+ const b = this.index[this.B(a)];
b && b.delete(a) && this.size--;
};
u.clear = M.prototype.clear = function() {
@@ -438,18 +438,18 @@ u.entries = M.prototype.entries = function*() {
}
};
function ya(a) {
- let b = 2 ** this.B - 1;
+ let b = 2 ** this.A - 1;
if ("number" == typeof a) {
return a & b;
}
- let c = 0, d = this.B + 1;
+ let c = 0, d = this.A + 1;
for (let e = 0; e < a.length; e++) {
c = (c * d ^ a.charCodeAt(e)) & b;
}
- return 32 === this.B ? c + 2 ** 31 : c;
+ return 32 === this.A ? c + 2 ** 31 : c;
}
function xa(a) {
- let b = BigInt(2) ** this.B - BigInt(1);
+ let b = BigInt(2) ** this.A - BigInt(1);
var c = typeof a;
if ("bigint" === c) {
return a & b;
@@ -458,7 +458,7 @@ function xa(a) {
return BigInt(a) & b;
}
c = BigInt(0);
- let d = this.B + BigInt(1);
+ let d = this.A + BigInt(1);
for (let e = 0; e < a.length; e++) {
c = (c * d ^ BigInt(a.charCodeAt(e))) & b;
}
@@ -493,7 +493,7 @@ function N(a) {
;z();
O.prototype.add = function(a, b, c, d) {
if (b && (a || 0 === a)) {
- if (!d && !c && this.A.has(a)) {
+ if (!d && !c && this.reg.has(a)) {
return this.update(a, b);
}
b = this.encoder.encode(b);
@@ -532,7 +532,7 @@ O.prototype.add = function(a, b, c, d) {
}
default:
if (Q(this, m, p, f, a, c), n && 1 < d && r < d - 1) {
- for (e = z(), g = this.U, f = p, h = Math.min(n + 1, d - r), e[f] = 1, k = 1; k < h; k++) {
+ for (e = z(), g = this.S, f = p, h = Math.min(n + 1, d - r), e[f] = 1, k = 1; k < h; k++) {
if ((p = b[this.rtl ? d - 1 - r - k : r + k]) && !e[p]) {
e[p] = 1;
const t = this.score ? this.score(b, f, r, p, k) : P(g + (d / 2 > g ? 0 : 1), d, r, h - 1, k - 1), x = this.bidirectional && p > f;
@@ -543,29 +543,29 @@ O.prototype.add = function(a, b, c, d) {
}
}
}
- this.fastupdate || this.A.add(a);
+ this.fastupdate || this.reg.add(a);
} else {
b = "";
}
}
- this.db && (b || this.K.push({del:a}), this.W && Ca(this));
+ this.db && (b || this.I.push({del:a}), this.U && Ca(this));
return this;
};
function Q(a, b, c, d, e, f, g) {
- let h = g ? a.F : a.map, k;
+ let h = g ? a.ctx : a.map, k;
if (!b[c] || !g || !(k = b[c])[g]) {
if (g ? (b = k || (b[c] = z()), b[g] = 1, (k = h.get(g)) ? h = k : h.set(g, h = new Map())) : b[c] = 1, (k = h.get(c)) ? h = k : h.set(c, h = k = []), h = h[d] || (h[d] = []), !f || !h.includes(e)) {
if (h.length === 2 ** 31 - 1) {
b = new K(h);
if (a.fastupdate) {
- for (let l of a.A.values()) {
+ for (let l of a.reg.values()) {
l.includes(h) && (l[l.indexOf(h)] = b);
}
}
k[d] = h = b;
}
h.push(e);
- a.fastupdate && ((d = a.A.get(e)) ? d.push(h) : a.A.set(e, [h]));
+ a.fastupdate && ((d = a.reg.get(e)) ? d.push(h) : a.reg.set(e, [h]));
}
}
}
@@ -656,12 +656,12 @@ function Da(a) {
if (c.length) {
return Promise.all(c).then(function() {
a.result.length && (d = [a.result].concat(d));
- a.result = Ea(d, e, f, g, h, a.G);
+ a.result = Ea(d, e, f, g, h, a.D);
return h ? a.result : a;
});
}
this.result.length && (d = [this.result].concat(d));
- this.result = Ea(d, e, f, g, h, a.G);
+ this.result = Ea(d, e, f, g, h, a.D);
return h ? this.result : this;
};
function Ea(a, b, c, d, e, f) {
@@ -746,12 +746,12 @@ function Ea(a, b, c, d, e, f) {
if (a.length) {
return Promise.all(a).then(function() {
d = [b.result].concat(d);
- b.result = Fa(d, e, f, g, b.G);
+ b.result = Fa(d, e, f, g, b.D);
return g ? b.result : b;
});
}
d = [this.result].concat(d);
- this.result = Fa(d, e, f, g, b.G);
+ this.result = Fa(d, e, f, g, b.D);
return g ? this.result : this;
}
return this;
@@ -842,12 +842,12 @@ function Fa(a, b, c, d, e) {
if (c.length) {
return Promise.all(c).then(function() {
a.result.length && (d = [a.result].concat(d));
- a.result = Ga(d, e, f, g, !h, a.G);
+ a.result = Ga(d, e, f, g, !h, a.D);
return h ? a.result : a;
});
}
this.result.length && (d = [this.result].concat(d));
- this.result = Ga(d, e, f, g, !h, a.G);
+ this.result = Ga(d, e, f, g, !h, a.D);
return h ? this.result : this;
};
function Ga(a, b, c, d, e, f) {
@@ -957,7 +957,7 @@ function Ha(a, b) {
}
this.index = null;
this.result = a || [];
- this.G = 0;
+ this.D = 0;
}
S.prototype.limit = function(a) {
if (this.result.length) {
@@ -987,7 +987,7 @@ S.prototype.offset = function(a) {
return this;
};
S.prototype.boost = function(a) {
- this.G += a;
+ this.D += a;
return this;
};
S.prototype.resolve = function(a, b, c) {
@@ -1122,7 +1122,7 @@ O.prototype.search = function(a, b, c) {
return async function() {
for (let t, x; q < e; q++) {
x = a[q];
- r ? (t = await V(p, x, r), t = Ka(t, d, f, p.U, b, g, 2 === e), f && !1 === t && d.length || (r = x)) : (t = await V(p, x), t = Ka(t, d, f, p.resolution, b, g, 1 === e));
+ r ? (t = await V(p, x, r), t = Ka(t, d, f, p.S, b, g, 2 === e), f && !1 === t && d.length || (r = x)) : (t = await V(p, x), t = Ka(t, d, f, p.resolution, b, g, 1 === e));
if (t) {
return t;
}
@@ -1146,7 +1146,7 @@ O.prototype.search = function(a, b, c) {
}
for (let p, t; q < e; q++) {
t = a[q];
- r ? (p = V(this, t, r), p = Ka(p, d, f, this.U, b, g, 2 === e), f && !1 === p && d.length || (r = t)) : (p = V(this, t), p = Ka(p, d, f, this.resolution, b, g, 1 === e));
+ r ? (p = V(this, t, r), p = Ka(p, d, f, this.S, b, g, 2 === e), f && !1 === p && d.length || (r = t)) : (p = V(this, t), p = Ka(p, d, f, this.resolution, b, g, 1 === e));
if (p) {
return p;
}
@@ -1201,11 +1201,11 @@ function V(a, b, c, d, e, f, g, h) {
if (a.db) {
return c ? a.db.get(k ? c : b, k ? b : c, d, e, f, g, h) : a.db.get(b, "", d, e, f, g, h);
}
- a = c ? (a = a.F.get(k ? b : c)) && a.get(k ? c : b) : a.map.get(b);
+ a = c ? (a = a.ctx.get(k ? b : c)) && a.get(k ? c : b) : a.map.get(b);
return a;
}
;O.prototype.remove = function(a, b) {
- const c = this.A.size && (this.fastupdate ? this.A.get(a) : this.A.has(a));
+ const c = this.reg.size && (this.fastupdate ? this.reg.get(a) : this.reg.has(a));
if (c) {
if (this.fastupdate) {
for (let d = 0, e; d < c.length; d++) {
@@ -1219,11 +1219,11 @@ function V(a, b, c, d, e, f, g, h) {
}
}
} else {
- La(this.map, a), this.depth && La(this.F, a);
+ La(this.map, a), this.depth && La(this.ctx, a);
}
- b || this.A.delete(a);
+ b || this.reg.delete(a);
}
- this.db && (this.K.push({del:a}), this.W && Ca(this));
+ this.db && (this.I.push({del:a}), this.U && Ca(this));
this.cache && this.cache.remove(a);
return this;
};
@@ -1270,17 +1270,17 @@ function La(a, b) {
this.score = a.score || null;
(e = a.keystore || 0) && (this.keystore = e);
this.map = e ? new L(e) : new Map();
- this.F = e ? new L(e) : new Map();
- this.A = b || (this.fastupdate ? e ? new L(e) : new Map() : e ? new M(e) : new Set());
- this.U = c.resolution || 1;
+ this.ctx = e ? new L(e) : new Map();
+ this.reg = b || (this.fastupdate ? e ? new L(e) : new Map() : e ? new M(e) : new Set());
+ this.S = c.resolution || 1;
this.rtl = d.rtl || a.rtl || !1;
this.cache = (e = a.cache || null) && new H(e);
this.resolve = !1 !== a.resolve;
if (e = a.db) {
this.db = e.mount(this);
}
- this.W = !1 !== a.commit;
- this.K = [];
+ this.U = !1 !== a.commit;
+ this.I = [];
this.h = null;
}
u = O.prototype;
@@ -1300,17 +1300,17 @@ function Ca(a) {
}
u.clear = function() {
this.map.clear();
- this.F.clear();
- this.A.clear();
+ this.ctx.clear();
+ this.reg.clear();
this.cache && this.cache.clear();
- this.db && (this.h && clearTimeout(this.h), this.h = null, this.K = [{clear:!0}]);
+ this.db && (this.h && clearTimeout(this.h), this.h = null, this.I = [{clear:!0}]);
return this;
};
u.append = function(a, b) {
return this.add(a, b, !0);
};
u.contain = function(a) {
- return this.db ? this.db.has(a) : this.A.has(a);
+ return this.db ? this.db.has(a) : this.reg.has(a);
};
u.update = function(a, b) {
if (this.async) {
@@ -1338,7 +1338,7 @@ u.cleanup = function() {
return console.info('Cleanup the index isn\'t required when not using "fastupdate".'), this;
}
Ma(this.map);
- this.depth && Ma(this.F);
+ this.depth && Ma(this.ctx);
return this;
};
u.searchCache = ma;
@@ -1353,16 +1353,16 @@ u.export = function(a, b, c, d, e, f) {
h = "reg";
if (this.fastupdate) {
k = z();
- for (let l of this.A.keys()) {
+ for (let l of this.reg.keys()) {
k[l] = 1;
}
} else {
- k = this.A;
+ k = this.reg;
}
break;
case 1:
h = "cfg";
- k = {doc:0, opt:this.B ? 1 : 0};
+ k = {doc:0, opt:this.A ? 1 : 0};
break;
case 2:
h = "map";
@@ -1370,7 +1370,7 @@ u.export = function(a, b, c, d, e, f) {
break;
case 3:
h = "ctx";
- k = this.F;
+ k = this.ctx;
break;
default:
"undefined" === typeof c && f && f();
@@ -1383,20 +1383,70 @@ u.import = function(a, b) {
if (b) {
switch(B(b) && (b = JSON.parse(b)), a) {
case "cfg":
- this.B = !!b.opt;
+ this.A = !!b.opt;
break;
case "reg":
this.fastupdate = !1;
- this.A = b;
+ this.reg = b;
break;
case "map":
this.map = b;
break;
case "ctx":
- this.F = b;
+ this.ctx = b;
}
}
};
+u.serialize = function(a = !0) {
+ if (!this.reg.size) {
+ return "";
+ }
+ let b = "", c = "";
+ for (var d of this.reg.keys()) {
+ c || (c = typeof d), b += (b ? "," : "") + ("string" === c ? '"' + d + '"' : d);
+ }
+ b = "index.reg=new Set([" + b + "]);";
+ d = "";
+ for (var e of this.map.entries()) {
+ var f = e[0], g = e[1], h = "";
+ for (let m = 0, n; m < g.length; m++) {
+ n = g[m] || [""];
+ var k = "";
+ for (var l = 0; l < n.length; l++) {
+ k += (k ? "," : "") + ("string" === c ? '"' + n[l] + '"' : n[l]);
+ }
+ k = "[" + k + "]";
+ h += (h ? "," : "") + k;
+ }
+ h = '["' + f + '",[' + h + "]]";
+ d += (d ? "," : "") + h;
+ }
+ d = "index.map=new Map([" + d + "]);";
+ e = "";
+ for (const m of this.ctx.entries()) {
+ f = m[0];
+ g = m[1];
+ for (const n of g.entries()) {
+ g = n[0];
+ h = n[1];
+ k = "";
+ for (let q = 0, r; q < h.length; q++) {
+ r = h[q] || [""];
+ l = "";
+ for (let p = 0; p < r.length; p++) {
+ l += (l ? "," : "") + ("string" === c ? '"' + r[p] + '"' : r[p]);
+ }
+ l = "[" + l + "]";
+ k += (k ? "," : "") + l;
+ }
+ k = 'new Map([["' + g + '",[' + k + "]]])";
+ k = '["' + f + '",' + k + "]";
+ e += (e ? "," : "") + k;
+ }
+ }
+ e = "index.ctx=new Map([" + e + "]);";
+ return a ? "function inject(index){" + b + d + e + "}" : b + d + e;
+};
Ba(O.prototype);
async function Na(a) {
a = a.data;
@@ -1467,24 +1517,24 @@ function Pa(a, b, c) {
;Y.prototype.add = function(a, b, c) {
C(a) && (b = a, a = ca(b, this.key));
if (b && (a || 0 === a)) {
- if (!c && this.A.has(a)) {
+ if (!c && this.reg.has(a)) {
return this.update(a, b);
}
for (let h = 0, k; h < this.field.length; h++) {
- k = this.I[h];
+ k = this.G[h];
var d = this.index.get(this.field[h]);
if ("function" === typeof k) {
var e = k(b);
e && d.add(a, e, !1, !0);
} else {
- if (e = k.L, !e || e(b)) {
- k.constructor === String ? k = ["" + k] : B(k) && (k = [k]), Qa(b, k, this.N, 0, d, a, k[0], c);
+ if (e = k.J, !e || e(b)) {
+ k.constructor === String ? k = ["" + k] : B(k) && (k = [k]), Qa(b, k, this.L, 0, d, a, k[0], c);
}
}
}
if (this.tag) {
- for (d = 0; d < this.H.length; d++) {
- var f = this.H[d], g = this.R[d];
+ for (d = 0; d < this.F.length; d++) {
+ var f = this.F[d], g = this.O[d];
e = this.tag.get(g);
let h = z();
if ("function" === typeof f) {
@@ -1492,7 +1542,7 @@ function Pa(a, b, c) {
continue;
}
} else {
- const k = f.L;
+ const k = f.J;
if (k && !k(b)) {
continue;
}
@@ -1506,14 +1556,14 @@ function Pa(a, b, c) {
if (m.length === 2 ** 31 - 1) {
g = new K(m);
if (this.fastupdate) {
- for (let n of this.A.values()) {
+ for (let n of this.reg.values()) {
n.includes(m) && (n[n.indexOf(m)] = g);
}
}
e.set(l, m = g);
}
m.push(a);
- this.fastupdate && ((g = this.A.get(a)) ? g.push(m) : this.A.set(a, [m]));
+ this.fastupdate && ((g = this.reg.get(a)) ? g.push(m) : this.reg.set(a, [m]));
}
}
} else {
@@ -1523,11 +1573,11 @@ function Pa(a, b, c) {
}
if (this.store && (!c || !this.store.has(a))) {
let h;
- if (this.D) {
+ if (this.C) {
h = z();
- for (let k = 0, l; k < this.D.length; k++) {
- l = this.D[k];
- if ((c = l.L) && !c(b)) {
+ for (let k = 0, l; k < this.C.length; k++) {
+ l = this.C[k];
+ if ((c = l.J) && !c(b)) {
continue;
}
let m;
@@ -1536,7 +1586,7 @@ function Pa(a, b, c) {
if (!m) {
continue;
}
- l = [l.X];
+ l = [l.V];
} else if (B(l) || l.constructor === String) {
h[l] = b[l];
continue;
@@ -1673,7 +1723,7 @@ function Qa(a, b, c, d, e, f, g, h) {
let A;
for (let w = 0, v, I, J; w < k.length; w++) {
I = k[w];
- if (this.db && this.tag && !this.I[w]) {
+ if (this.db && this.tag && !this.G[w]) {
continue;
}
let D;
@@ -1681,7 +1731,7 @@ function Qa(a, b, c, d, e, f, g, h) {
if (d) {
v = d[w];
} else {
- if (t = D || c, x = this.index.get(I), n && (this.db && (t.tag = n, A = x.db.Z, t.field = k), A || (t.enrich = !1)), p) {
+ if (t = D || c, x = this.index.get(I), n && (this.db && (t.tag = n, A = x.db.X, t.field = k), A || (t.enrich = !1)), p) {
p[w] = x.searchAsync(a, b, t);
t && q && (t.enrich = q);
continue;
@@ -1822,13 +1872,13 @@ function Ta(a) {
}
const b = a.document || a.doc || a;
var c, d;
- this.I = [];
+ this.G = [];
this.field = [];
- this.N = [];
- this.key = (c = b.key || b.id) && Va(c, this.N) || "id";
+ this.L = [];
+ this.key = (c = b.key || b.id) && Va(c, this.L) || "id";
(d = a.keystore || 0) && (this.keystore = d);
- this.A = (this.fastupdate = !!a.fastupdate) ? d ? new L(d) : new Map() : d ? new M(d) : new Set();
- this.D = (c = b.store || null) && !0 !== c && [];
+ this.reg = (this.fastupdate = !!a.fastupdate) ? d ? new L(d) : new Map() : d ? new M(d) : new Set();
+ this.C = (c = b.store || null) && !0 !== c && [];
this.store = c && (d ? new L(d) : new Map());
this.cache = (c = a.cache || null) && new H(c);
a.cache = !1;
@@ -1846,15 +1896,15 @@ function Ta(a) {
c.set(f, h);
h.worker || (this.worker = !1);
}
- this.worker || c.set(f, new O(g, this.A));
- g.custom ? this.I[e] = g.custom : (this.I[e] = Va(f, this.N), g.filter && ("string" === typeof this.I[e] && (this.I[e] = new String(this.I[e])), this.I[e].L = g.filter));
+ this.worker || c.set(f, new O(g, this.reg));
+ g.custom ? this.G[e] = g.custom : (this.G[e] = Va(f, this.L), g.filter && ("string" === typeof this.G[e] && (this.G[e] = new String(this.G[e])), this.G[e].J = g.filter));
this.field[e] = f;
}
- if (this.D) {
+ if (this.C) {
d = b.store;
B(d) && (d = [d]);
for (let e = 0, f, g; e < d.length; e++) {
- f = d[e], g = f.field || f, f.custom ? (this.D[e] = f.custom, f.custom.X = g) : (this.D[e] = Va(g, this.N), f.filter && ("string" === typeof this.D[e] && (this.D[e] = new String(this.D[e])), this.D[e].L = f.filter));
+ f = d[e], g = f.field || f, f.custom ? (this.C[e] = f.custom, f.custom.V = g) : (this.C[e] = Va(g, this.L), f.filter && ("string" === typeof this.C[e] && (this.C[e] = new String(this.C[e])), this.C[e].J = f.filter));
}
}
this.index = c;
@@ -1862,16 +1912,16 @@ function Ta(a) {
if (c = b.tag) {
if ("string" === typeof c && (c = [c]), c.length) {
this.tag = new Map();
- this.H = [];
- this.R = [];
+ this.F = [];
+ this.O = [];
for (let e = 0, f, g; e < c.length; e++) {
f = c[e];
g = f.field || f;
if (!g) {
throw Error("The tag field from the document descriptor is undefined.");
}
- f.custom ? this.H[e] = f.custom : (this.H[e] = Va(g, this.N), f.filter && ("string" === typeof this.H[e] && (this.H[e] = new String(this.H[e])), this.H[e].L = f.filter));
- this.R[e] = g;
+ f.custom ? this.F[e] = f.custom : (this.F[e] = Va(g, this.L), f.filter && ("string" === typeof this.F[e] && (this.F[e] = new String(this.F[e])), this.F[e].J = f.filter));
+ this.O[e] = g;
this.tag.set(g, new Map());
}
}
@@ -1882,10 +1932,10 @@ u = Y.prototype;
u.mount = function(a) {
let b = this.field;
if (this.tag) {
- for (let e = 0, f; e < this.R.length; e++) {
- f = this.R[e];
+ for (let e = 0, f; e < this.O.length; e++) {
+ f = this.O[e];
var c = this.index.get(f);
- c || (this.index.set(f, c = new O({}, this.A)), b === this.field && (b = b.slice(0)), b.push(f));
+ c || (this.index.set(f, c = new O({}, this.reg)), b === this.field && (b = b.slice(0)), b.push(f));
c.tag = this.tag.get(f);
}
}
@@ -1898,7 +1948,7 @@ u.mount = function(a) {
h.id = a.id;
c[e] = h.mount(f);
f.document = !0;
- e ? f.Y = !0 : f.store = this.store;
+ e ? f.W = !0 : f.store = this.store;
}
this.db = this.async = !0;
return Promise.all(c);
@@ -1909,7 +1959,7 @@ u.commit = async function(a, b) {
c.push(d.db.commit(d, a, b));
}
await Promise.all(c);
- this.A.clear();
+ this.reg.clear();
};
function Va(a, b) {
const c = a.split(":");
@@ -1931,7 +1981,7 @@ u.remove = function(a) {
for (var b of this.index.values()) {
b.remove(a, !0);
}
- if (this.A.has(a)) {
+ if (this.reg.has(a)) {
if (this.tag && !this.fastupdate) {
for (let c of this.tag.values()) {
for (let d of c) {
@@ -1942,7 +1992,7 @@ u.remove = function(a) {
}
}
this.store && this.store.delete(a);
- this.A.delete(a);
+ this.reg.delete(a);
}
this.cache && this.cache.remove(a);
return this;
@@ -1960,7 +2010,7 @@ u.clear = function() {
return this;
};
u.contain = function(a) {
- return this.db ? this.index.get(this.field[0]).db.has(a) : this.A.has(a);
+ return this.db ? this.index.get(this.field[0]).db.has(a) : this.reg.has(a);
};
u.cleanup = function() {
for (const a of this.index.values()) {
@@ -2018,9 +2068,9 @@ u.import = function(a, b) {
break;
case "reg":
this.fastupdate = !1;
- this.A = b;
+ this.reg = b;
for (let d = 0, e; d < this.field.length; d++) {
- e = this.index[this.field[d]], e.A = b, e.fastupdate = !1;
+ e = this.index[this.field[d]], e.reg = b, e.fastupdate = !1;
}
break;
case "store":
@@ -2044,7 +2094,7 @@ function Ya(a, b = {}) {
a || console.info("Default storage space was used, because a name was not passed.");
this.id = "flexsearch" + (a ? ":" + a.toLowerCase().replace(/[^a-z0-9_\-]/g, "") : "");
this.field = b.field ? b.field.toLowerCase().replace(/[^a-z0-9_\-]/g, "") : "";
- this.Z = !1;
+ this.X = !1;
this.db = null;
this.h = {};
}
@@ -2184,22 +2234,22 @@ u.transaction = function(a, b, c) {
};
u.commit = async function(a, b, c) {
if (b) {
- await this.clear(), a.K = [];
+ await this.clear(), a.I = [];
} else {
- let d = a.K;
- a.K = [];
+ let d = a.I;
+ a.I = [];
for (let e = 0, f; e < d.length; e++) {
if (f = d[e], f.clear) {
await this.clear();
b = !0;
break;
} else {
- d[e] = f.$;
+ d[e] = f.Y;
}
}
- b || (c || (d = d.concat(ba(a.A))), d.length && await this.remove(d));
+ b || (c || (d = d.concat(ba(a.reg))), d.length && await this.remove(d));
}
- a.A.size && (await this.transaction("map", "readwrite", function(d) {
+ a.reg.size && (await this.transaction("map", "readwrite", function(d) {
for (const e of a.map) {
const f = e[0], g = e[1];
g.length && (b ? d.put(g, f) : d.get(f).onsuccess = function() {
@@ -2226,7 +2276,7 @@ u.commit = async function(a, b, c) {
});
}
}), await this.transaction("ctx", "readwrite", function(d) {
- for (const e of a.F) {
+ for (const e of a.ctx) {
const f = e[0], g = e[1];
for (const h of g) {
const k = h[0], l = h[1];
@@ -2259,8 +2309,8 @@ u.commit = async function(a, b, c) {
const f = e[0], g = e[1];
d.put("object" === typeof g ? JSON.stringify(g) : 1, f);
}
- }) : a.Y || await this.transaction("reg", "readwrite", function(d) {
- for (const e of a.A.keys()) {
+ }) : a.W || await this.transaction("reg", "readwrite", function(d) {
+ for (const e of a.reg.keys()) {
d.put(1, e);
}
}), a.tag && await this.transaction("tag", "readwrite", function(d) {
@@ -2272,7 +2322,7 @@ u.commit = async function(a, b, c) {
d.put(h, f);
});
}
- }), a.map.clear(), a.F.clear(), a.tag && a.tag.clear(), a.store && a.store.clear(), a.document || a.A.clear());
+ }), a.map.clear(), a.ctx.clear(), a.tag && a.tag.clear(), a.store && a.store.clear(), a.document || a.reg.clear());
};
function $a(a, b, c) {
const d = a.value;
diff --git a/dist/flexsearch.bundle.min.js b/dist/flexsearch.bundle.min.js
index b894c2b..40bfcb2 100644
--- a/dist/flexsearch.bundle.min.js
+++ b/dist/flexsearch.bundle.min.js
@@ -15,74 +15,76 @@ function B(a){return"string"===typeof a}function C(a){return"object"===typeof a}
["\u0477","\u0475"],["\u04c2","\u0436"],["\u04d1","\u0430"],["\u04d3","\u0430"],["\u04d7","\u0435"],["\u04db","\u04d9"],["\u04dd","\u0436"],["\u04df","\u0437"],["\u04e3","\u0438"],["\u04e5","\u0438"],["\u04e7","\u043e"],["\u04eb","\u04e9"],["\u04ed","\u044d"],["\u04ef","\u0443"],["\u04f1","\u0443"],["\u04f3","\u0443"],["\u04f5","\u0447"]];const fa=/[^\p{L}\p{N}]+/u,ha=/(\d{3})/g,ia=/(\D)(\d{3})/g,ja=/(\d{3})(\D)/g,ka="".normalize&&/[\u0300-\u036f]/g;function F(a){if(!this)return new F(...arguments);for(let b=0;bthis.stemmer.get(l)),k=1);this.matcher&&
-1this.matcher.get(l)),k=1);g&&k&&(g.lengththis.V&&(this.M.clear(),this.B=this.B/1.1|0));g&&c.push(g)}this.finalize&&(c=this.finalize(c)||c);this.cache&&a.length<=this.h&&(this.J.set(a,c),this.J.size>this.V&&(this.J.clear(),this.h=this.h/1.1|0));return c};function la(a){a.O=null;a.J.clear();a.M.clear()};function ma(a,b,c){a=("object"===typeof a?""+a.query:a).toLowerCase();let d=this.cache.get(a);if(!d){d=this.search(a,b,c);if(d.then){const e=this;d.then(function(f){e.cache.set(a,f);return f})}this.cache.set(a,d)}return d}function G(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}G.prototype.set=function(a,b){this.cache.set(this.h=a,b);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};
+y(a.maxlength,0,this.maxlength);if(this.cache=c=y(a.cache,!0,this.cache))this.M=null,this.T="number"===typeof c?c:2E5,this.H=new Map,this.K=new Map,this.A=this.h=128;this.B="";this.P=null;this.N="";this.R=null;if(this.matcher)for(const d of this.matcher.keys())this.B+=(this.B?"|":"")+d;if(this.stemmer)for(const d of this.stemmer.keys())this.N+=(this.N?"|":"")+d;return this};
+F.prototype.encode=function(a){if(this.cache&&a.length<=this.h)if(this.M){if(this.H.has(a))return this.H.get(a)}else this.M=setTimeout(la,0,this);this.normalize&&(a="function"===typeof this.normalize?this.normalize(a):ka?a.normalize("NFKD").replace(ka,"").toLowerCase():a.toLowerCase());this.prepare&&(a=this.prepare(a));this.numeric&&3this.stemmer.get(l)),k=1);this.matcher&&
+1this.matcher.get(l)),k=1);g&&k&&(g.lengththis.T&&(this.K.clear(),this.A=this.A/1.1|0));g&&c.push(g)}this.finalize&&(c=this.finalize(c)||c);this.cache&&a.length<=this.h&&(this.H.set(a,c),this.H.size>this.T&&(this.H.clear(),this.h=this.h/1.1|0));return c};function la(a){a.M=null;a.H.clear();a.K.clear()};function ma(a,b,c){a=("object"===typeof a?""+a.query:a).toLowerCase();let d=this.cache.get(a);if(!d){d=this.search(a,b,c);if(d.then){const e=this;d.then(function(f){e.cache.set(a,f);return f})}this.cache.set(a,d)}return d}function G(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}G.prototype.set=function(a,b){this.cache.set(this.h=a,b);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};
G.prototype.get=function(a){const b=this.cache.get(a);b&&this.h!==a&&(this.cache.delete(a),this.cache.set(this.h=a,b));return b};G.prototype.remove=function(a){for(const b of this.cache){const c=b[0];b[1].includes(a)&&this.cache.delete(c)}};G.prototype.clear=function(){this.cache.clear();this.h=""};const na={normalize:function(a){return a.toLowerCase()},dedupe:!1};const oa=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]);const pa=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),qa=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];const ra={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,"\u00df":2,d:3,t:3,l:4,m:5,n:5,r:6};const sa=/[\x00-\x7F]+/g;const ta=/[\x00-\x7F]+/g;const ua=/[\x00-\x7F]+/g;var va={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:na,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:oa},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:oa,replacer:qa,matcher:pa},LatinExtra:{normalize:!0,dedupe:!0,mapper:oa,replacer:qa.concat([/(?!^)[aeoy]/g,""]),matcher:pa},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(let c=0;c=g.length)b-=g.length;else{b=g[d?"splice":"slice"](b,c);const h=b.length;if(h&&(e=e.length?e.concat(b):b,c-=h,d&&(a.length-=h),!c))break;b=0}return e}
function J(a){if(!this)return new J(a);this.index=a?[a]:[];this.length=a?a.length:0;const b=this;return new Proxy([],{get(c,d){if("length"===d)return b.length;if("push"===d)return function(e){b.index[b.index.length-1].push(e);b.length++};if("pop"===d)return function(){if(b.length)return b.length--,b.index[b.index.length-1].pop()};if("indexOf"===d)return function(e){let f=0;for(let g=0,h,k;gf;h--){g=p.substring(f,h);var k=this.score?this.score(b,p,r,g,f):P(q,d,r,e,f);Q(this,m,g,k,a,c)}break}case "reverse":if(1<
-e){for(h=e-1;0g?0:1),d,r,h-1,k-1),x=this.bidirectional&&p>f;Q(this,l,x?f:p,t,a,c,x?p:f)}}}}this.fastupdate||this.A.add(a)}else b=""}this.db&&(b||
-this.K.push({del:a}),this.W&&Ca(this));return this};function Q(a,b,c,d,e,f,g){let h=g?a.F:a.map,k;if(!b[c]||!g||!(k=b[c])[g])if(g?(b=k||(b[c]=z()),b[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):b[c]=1,(k=h.get(c))?h=k:h.set(c,h=k=[]),h=h[d]||(h[d]=[]),!f||!h.includes(e)){if(h.length===2**31-1){b=new J(h);if(a.fastupdate)for(let l of a.A.values())l.includes(h)&&(l[l.indexOf(h)]=b);k[d]=h=b}h.push(e);a.fastupdate&&((d=a.A.get(e))?d.push(h):a.A.set(e,[h]))}}
+function K(a=8){if(!this)return new K(a);this.index=z();this.B=[];this.size=0;32f;h--){g=p.substring(f,h);var k=this.score?this.score(b,p,r,g,f):P(q,d,r,e,f);Q(this,m,g,k,a,c)}break}case "reverse":if(1<
+e){for(h=e-1;0g?0:1),d,r,h-1,k-1),x=this.bidirectional&&p>f;Q(this,l,x?f:p,t,a,c,x?p:f)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
+(b||this.I.push({del:a}),this.U&&Ca(this));return this};function Q(a,b,c,d,e,f,g){let h=g?a.ctx:a.map,k;if(!b[c]||!g||!(k=b[c])[g])if(g?(b=k||(b[c]=z()),b[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):b[c]=1,(k=h.get(c))?h=k:h.set(c,h=k=[]),h=h[d]||(h[d]=[]),!f||!h.includes(e)){if(h.length===2**31-1){b=new J(h);if(a.fastupdate)for(let l of a.reg.values())l.includes(h)&&(l[l.indexOf(h)]=b);k[d]=h=b}h.push(e);a.fastupdate&&((d=a.reg.get(e))?d.push(h):a.reg.set(e,[h]))}}
function P(a,b,c,d,e){return c&&1b?b?a.slice(c,c+b):a.slice(c):a,d?Da(a):a;let e=[];for(let f=0,g,h;f=h){c-=h;continue}cb&&(g=g.slice(0,b),h=g.length),e.push(g);else{if(h>=b)return h>b&&(g=g.slice(0,b)),d?Da(g):g;e=[g]}b-=h;if(!b)break}if(!e.length)return e;e=1a.length)return e?R(a[0],b,c,d):a[0];d=[];let g=0,h=z(),k=da(a);for(let l=0,m;la.length)return[];let f=[],g=0,h=z(),k=da(a);if(!k)return f;for(let l=0,m;la.length)return e?R(a[0],b,c,d):a[0];b=[];c=z();for(let g=0,h;gc||d)g=g.slice(d,c+d)}return g}
+Ha.call(a,d,e);return e?a.result:a});this.result=Ha.call(this,d,e);return e?this.result:this};function Ha(a,b){if(!a.length)return this.result;const c=[];a=new Set(a.flat().flat());for(let d=0,e;dc||d)g=g.slice(d,c+d)}return g}
function Ja(a,b){const c=z(),d=z(),e=[];for(let f=0;f=e)))break;if(h.length){if(g)return R(h,e,0);b.push(h);return}}return!c&&h}function V(a,b,c,d,e,f,g,h){let k;c&&(k=a.bidirectional&&b>c);if(a.db)return c?a.db.get(k?c:b,k?b:c,d,e,f,g,h):a.db.get(b,"",d,e,f,g,h);a=c?(a=a.F.get(k?b:c))&&a.get(k?c:b):a.map.get(b);return a};O.prototype.remove=function(a,b){const c=this.A.size&&(this.fastupdate?this.A.get(a):this.A.has(a));if(c){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const f=e.indexOf(a);f===c.length-1?e.pop():e.splice(f,1)}}else La(this.map,a),this.depth&&La(this.F,a);b||this.A.delete(a)}this.db&&(this.K.push({del:a}),this.W&&Ca(this));this.cache&&this.cache.remove(a);return this};
-function La(a,b){let c=0;if(a.constructor===Array)for(let d=0,e,f;dc.add(a,b)):this.add(a,b)}return this.remove(a).add(a,b)};function Ma(a){let b=0;if(a.constructor===Array)for(let c=0,d;c{f=l}));let h,k;switch(e||(e=0)){case 0:h="reg";if(this.fastupdate){k=z();for(let l of this.A.keys())k[l]=1}else k=this.A;break;case 1:h="cfg";k={doc:0,opt:this.B?1:0};break;case 2:h="map";k=this.map;break;case 3:h="ctx";k=this.F;break;default:"undefined"===typeof c&&f&&f();return}za(a,b||this,c,h,d,e,k,f);return g};
-u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "cfg":this.B=!!b.opt;break;case "reg":this.fastupdate=!1;this.A=b;break;case "map":this.map=b;break;case "ctx":this.F=b}};Ba(O.prototype);async function Na(a){a=a.data;var b=self._index;const c=a.args;var d=a.task;switch(d){case "init":d=a.options||{};(b=d.config)&&(d=await import(b));(b=a.factory)?(Function("return "+b)()(self),self._index=new self.FlexSearch.Index(d),delete self.FlexSearch):self._index=new O(d);postMessage({id:a.id});break;default:a=a.id,b=b[d].apply(b,c),postMessage("search"===d?{id:a,msg:b}:{id:a})}};let Oa=0;
+function Ka(a,b,c,d,e,f,g){let h=[];if(a){d=Math.min(a.length,d);for(let k=0,l=0,m;k=e)))break;if(h.length){if(g)return R(h,e,0);b.push(h);return}}return!c&&h}function V(a,b,c,d,e,f,g,h){let k;c&&(k=a.bidirectional&&b>c);if(a.db)return c?a.db.get(k?c:b,k?b:c,d,e,f,g,h):a.db.get(b,"",d,e,f,g,h);a=c?(a=a.ctx.get(k?b:c))&&a.get(k?c:b):a.map.get(b);return a};O.prototype.remove=function(a,b){const c=this.reg.size&&(this.fastupdate?this.reg.get(a):this.reg.has(a));if(c){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const f=e.indexOf(a);f===c.length-1?e.pop():e.splice(f,1)}}else La(this.map,a),this.depth&&La(this.ctx,a);b||this.reg.delete(a)}this.db&&(this.I.push({del:a}),this.U&&Ca(this));this.cache&&this.cache.remove(a);return this};
+function La(a,b){let c=0;if(a.constructor===Array)for(let d=0,e,f;dc.add(a,b)):this.add(a,b)}return this.remove(a).add(a,b)};function Ma(a){let b=0;if(a.constructor===Array)for(let c=0,d;c{f=l}));let h,k;switch(e||(e=0)){case 0:h="reg";if(this.fastupdate){k=z();for(let l of this.reg.keys())k[l]=1}else k=this.reg;break;case 1:h="cfg";k={doc:0,opt:this.A?1:0};break;case 2:h="map";k=this.map;break;case 3:h="ctx";k=this.ctx;break;default:"undefined"===typeof c&&f&&f();return}za(a,b||this,c,h,d,e,k,f);return g};
+u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "cfg":this.A=!!b.opt;break;case "reg":this.fastupdate=!1;this.reg=b;break;case "map":this.map=b;break;case "ctx":this.ctx=b}};
+u.serialize=function(a=!0){if(!this.reg.size)return"";let b="",c="";for(var d of this.reg.keys())c||(c=typeof d),b+=(b?",":"")+("string"===c?'"'+d+'"':d);b="index.reg=new Set(["+b+"]);";d="";for(var e of this.map.entries()){var f=e[0],g=e[1],h="";for(let m=0,n;mc||d)a=a.slice(d,d+c);e&&(a=Ta.call(this,a));return a}}
-function Ta(a){const b=Array(a.length);for(let c=0,d;c{f=k}));e||(e=0);d||(d=0);if(d{e.objectStoreNames.contains(f)||e.createObjectStore(f)})};d.onblocked=function(e){console.error("blocked",e);c()};d.onerror=function(e){console.error(this.error,e);c()};d.onsuccess=function(){a.db=this.result;a.db.onversionchange=function(){a.close()};b(a)}})}
u.close=function(){this.db.close();this.db=null};u.clear=function(){const a=this.db.transaction(Xa,"readwrite");for(let b=0;b=m.length){d-=m.length;continue}const n=c?d+Math.min(m.length-d,c):m.length;for(let q=d;q=f.length)return[];if(!b&&!c)return f;f=f.slice(c,c+b);return d?e.enrich(f):f})};
u.enrich=function(a){"object"!==typeof a&&(a=[a]);const b=this.db.transaction("reg","readonly").objectStore("reg"),c=[];for(let d=0;d{e.onerror=h=>{this.h[a+":"+b]=null;e.abort();e=d=null;g(h)};e.oncomplete=h=>{e=d=this.h[a+":"+b]=null;f(h||!0)};return c.call(this,d)})};
-u.commit=async function(a,b,c){if(b)await this.clear(),a.K=[];else{let d=a.K;a.K=[];for(let e=0,f;em&&!f&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(f=1),0<=m)if(e=1,1m&&!f&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(f=1),0<=m)if(e=1,1{a.onsuccess=function(){b(this.result)};a.oncomplete=function(){b(this.result)};a.onerror=c;a=null})};const ab={Index:O,Charset:va,Encoder:F,Document:Y,Worker:W,Resolver:S,IndexedDB:Ya,Language:{}},cb=self;let db;(db=cb.define)&&db.amd?db([],function(){return ab}):"object"===typeof cb.exports?cb.exports=ab:cb.FlexSearch=ab;}(this));
diff --git a/dist/flexsearch.bundle.module.debug.js b/dist/flexsearch.bundle.module.debug.js
index 7f15126..2bd290d 100644
--- a/dist/flexsearch.bundle.module.debug.js
+++ b/dist/flexsearch.bundle.module.debug.js
@@ -128,32 +128,32 @@ G.prototype.assign = function(a) {
this.minlength = y(a.minlength, 1, this.minlength);
this.maxlength = y(a.maxlength, 0, this.maxlength);
if (this.cache = c = y(a.cache, !0, this.cache)) {
- this.O = null, this.V = "number" === typeof c ? c : 2e5, this.J = new Map(), this.M = new Map(), this.B = this.h = 128;
+ this.M = null, this.T = "number" === typeof c ? c : 2e5, this.H = new Map(), this.K = new Map(), this.A = this.h = 128;
}
- this.C = "";
- this.S = null;
- this.P = "";
- this.T = null;
+ this.B = "";
+ this.P = null;
+ this.N = "";
+ this.R = null;
if (this.matcher) {
for (const d of this.matcher.keys()) {
- this.C += (this.C ? "|" : "") + d;
+ this.B += (this.B ? "|" : "") + d;
}
}
if (this.stemmer) {
for (const d of this.stemmer.keys()) {
- this.P += (this.P ? "|" : "") + d;
+ this.N += (this.N ? "|" : "") + d;
}
}
return this;
};
G.prototype.encode = function(a) {
if (this.cache && a.length <= this.h) {
- if (this.O) {
- if (this.J.has(a)) {
- return this.J.get(a);
+ if (this.M) {
+ if (this.H.has(a)) {
+ return this.H.get(a);
}
} else {
- this.O = setTimeout(la, 0, this);
+ this.M = setTimeout(la, 0, this);
}
}
this.normalize && (a = "function" === typeof this.normalize ? this.normalize(a) : ka ? a.normalize("NFKD").replace(ka, "").toLowerCase() : a.toLowerCase());
@@ -175,20 +175,20 @@ G.prototype.encode = function(a) {
if (this.filter && this.filter.has(g)) {
continue;
}
- if (this.cache && g.length <= this.B) {
- if (this.O) {
- var e = this.M.get(g);
+ if (this.cache && g.length <= this.A) {
+ if (this.M) {
+ var e = this.K.get(g);
if (e || "" === e) {
e && c.push(e);
continue;
}
} else {
- this.O = setTimeout(la, 0, this);
+ this.M = setTimeout(la, 0, this);
}
}
let k;
- this.stemmer && 2 < g.length && (this.T || (this.T = new RegExp("(?!^)(" + this.P + ")$")), g = g.replace(this.T, l => this.stemmer.get(l)), k = 1);
- this.matcher && 1 < g.length && (this.S || (this.S = new RegExp("(" + this.C + ")", "g")), g = g.replace(this.S, l => this.matcher.get(l)), k = 1);
+ this.stemmer && 2 < g.length && (this.R || (this.R = new RegExp("(?!^)(" + this.N + ")$")), g = g.replace(this.R, l => this.stemmer.get(l)), k = 1);
+ this.matcher && 1 < g.length && (this.P || (this.P = new RegExp("(" + this.B + ")", "g")), g = g.replace(this.P, l => this.matcher.get(l)), k = 1);
g && k && (g.length < this.minlength || this.filter && this.filter.has(g)) && (g = "");
if (g && (this.mapper || this.dedupe && 1 < g.length)) {
e = "";
@@ -202,17 +202,17 @@ G.prototype.encode = function(a) {
g = g.replace(this.replacer[e], this.replacer[e + 1]);
}
}
- this.cache && h.length <= this.B && (this.M.set(h, g), this.M.size > this.V && (this.M.clear(), this.B = this.B / 1.1 | 0));
+ this.cache && h.length <= this.A && (this.K.set(h, g), this.K.size > this.T && (this.K.clear(), this.A = this.A / 1.1 | 0));
g && c.push(g);
}
this.finalize && (c = this.finalize(c) || c);
- this.cache && a.length <= this.h && (this.J.set(a, c), this.J.size > this.V && (this.J.clear(), this.h = this.h / 1.1 | 0));
+ this.cache && a.length <= this.h && (this.H.set(a, c), this.H.size > this.T && (this.H.clear(), this.h = this.h / 1.1 | 0));
return c;
};
function la(a) {
- a.O = null;
- a.J.clear();
- a.M.clear();
+ a.M = null;
+ a.H.clear();
+ a.K.clear();
}
;function ma(a, b, c) {
a = ("object" === typeof a ? "" + a.query : a).toLowerCase();
@@ -375,9 +375,9 @@ function L(a = 8) {
return new L(a);
}
this.index = z();
- this.C = [];
+ this.B = [];
this.size = 0;
- 32 < a ? (this.h = xa, this.B = BigInt(a)) : (this.h = ya, this.B = a);
+ 32 < a ? (this.h = xa, this.A = BigInt(a)) : (this.h = ya, this.A = a);
}
L.prototype.get = function(a) {
const b = this.index[this.h(a)];
@@ -386,7 +386,7 @@ L.prototype.get = function(a) {
L.prototype.set = function(a, b) {
var c = this.h(a);
let d = this.index[c];
- d ? (c = d.size, d.set(a, b), (c -= d.size) && this.size++) : (this.index[c] = d = new Map([[a, b]]), this.C.push(d));
+ d ? (c = d.size, d.set(a, b), (c -= d.size) && this.size++) : (this.index[c] = d = new Map([[a, b]]), this.B.push(d));
};
function M(a = 8) {
if (!this) {
@@ -394,20 +394,20 @@ function M(a = 8) {
}
this.index = z();
this.h = [];
- 32 < a ? (this.C = xa, this.B = BigInt(a)) : (this.C = ya, this.B = a);
+ 32 < a ? (this.B = xa, this.A = BigInt(a)) : (this.B = ya, this.A = a);
}
M.prototype.add = function(a) {
- var b = this.C(a);
+ var b = this.B(a);
let c = this.index[b];
c ? (b = c.size, c.add(a), (b -= c.size) && this.size++) : (this.index[b] = c = new Set([a]), this.h.push(c));
};
u = L.prototype;
u.has = M.prototype.has = function(a) {
- const b = this.index[this.C(a)];
+ const b = this.index[this.B(a)];
return b && b.has(a);
};
u.delete = M.prototype.delete = function(a) {
- const b = this.index[this.C(a)];
+ const b = this.index[this.B(a)];
b && b.delete(a) && this.size--;
};
u.clear = M.prototype.clear = function() {
@@ -437,18 +437,18 @@ u.entries = M.prototype.entries = function*() {
}
};
function ya(a) {
- let b = 2 ** this.B - 1;
+ let b = 2 ** this.A - 1;
if ("number" == typeof a) {
return a & b;
}
- let c = 0, d = this.B + 1;
+ let c = 0, d = this.A + 1;
for (let e = 0; e < a.length; e++) {
c = (c * d ^ a.charCodeAt(e)) & b;
}
- return 32 === this.B ? c + 2 ** 31 : c;
+ return 32 === this.A ? c + 2 ** 31 : c;
}
function xa(a) {
- let b = BigInt(2) ** this.B - BigInt(1);
+ let b = BigInt(2) ** this.A - BigInt(1);
var c = typeof a;
if ("bigint" === c) {
return a & b;
@@ -457,7 +457,7 @@ function xa(a) {
return BigInt(a) & b;
}
c = BigInt(0);
- let d = this.B + BigInt(1);
+ let d = this.A + BigInt(1);
for (let e = 0; e < a.length; e++) {
c = (c * d ^ BigInt(a.charCodeAt(e))) & b;
}
@@ -492,7 +492,7 @@ function N(a) {
;z();
O.prototype.add = function(a, b, c, d) {
if (b && (a || 0 === a)) {
- if (!d && !c && this.A.has(a)) {
+ if (!d && !c && this.reg.has(a)) {
return this.update(a, b);
}
b = this.encoder.encode(b);
@@ -531,7 +531,7 @@ O.prototype.add = function(a, b, c, d) {
}
default:
if (Q(this, m, p, f, a, c), n && 1 < d && r < d - 1) {
- for (e = z(), g = this.U, f = p, h = Math.min(n + 1, d - r), e[f] = 1, k = 1; k < h; k++) {
+ for (e = z(), g = this.S, f = p, h = Math.min(n + 1, d - r), e[f] = 1, k = 1; k < h; k++) {
if ((p = b[this.rtl ? d - 1 - r - k : r + k]) && !e[p]) {
e[p] = 1;
const t = this.score ? this.score(b, f, r, p, k) : P(g + (d / 2 > g ? 0 : 1), d, r, h - 1, k - 1), x = this.bidirectional && p > f;
@@ -542,29 +542,29 @@ O.prototype.add = function(a, b, c, d) {
}
}
}
- this.fastupdate || this.A.add(a);
+ this.fastupdate || this.reg.add(a);
} else {
b = "";
}
}
- this.db && (b || this.K.push({del:a}), this.W && Ca(this));
+ this.db && (b || this.I.push({del:a}), this.U && Ca(this));
return this;
};
function Q(a, b, c, d, e, f, g) {
- let h = g ? a.F : a.map, k;
+ let h = g ? a.ctx : a.map, k;
if (!b[c] || !g || !(k = b[c])[g]) {
if (g ? (b = k || (b[c] = z()), b[g] = 1, (k = h.get(g)) ? h = k : h.set(g, h = new Map())) : b[c] = 1, (k = h.get(c)) ? h = k : h.set(c, h = k = []), h = h[d] || (h[d] = []), !f || !h.includes(e)) {
if (h.length === 2 ** 31 - 1) {
b = new K(h);
if (a.fastupdate) {
- for (let l of a.A.values()) {
+ for (let l of a.reg.values()) {
l.includes(h) && (l[l.indexOf(h)] = b);
}
}
k[d] = h = b;
}
h.push(e);
- a.fastupdate && ((d = a.A.get(e)) ? d.push(h) : a.A.set(e, [h]));
+ a.fastupdate && ((d = a.reg.get(e)) ? d.push(h) : a.reg.set(e, [h]));
}
}
}
@@ -655,12 +655,12 @@ function Da(a) {
if (c.length) {
return Promise.all(c).then(function() {
a.result.length && (d = [a.result].concat(d));
- a.result = Ea(d, e, f, g, h, a.G);
+ a.result = Ea(d, e, f, g, h, a.D);
return h ? a.result : a;
});
}
this.result.length && (d = [this.result].concat(d));
- this.result = Ea(d, e, f, g, h, a.G);
+ this.result = Ea(d, e, f, g, h, a.D);
return h ? this.result : this;
};
function Ea(a, b, c, d, e, f) {
@@ -745,12 +745,12 @@ function Ea(a, b, c, d, e, f) {
if (a.length) {
return Promise.all(a).then(function() {
d = [b.result].concat(d);
- b.result = Fa(d, e, f, g, b.G);
+ b.result = Fa(d, e, f, g, b.D);
return g ? b.result : b;
});
}
d = [this.result].concat(d);
- this.result = Fa(d, e, f, g, b.G);
+ this.result = Fa(d, e, f, g, b.D);
return g ? this.result : this;
}
return this;
@@ -841,12 +841,12 @@ function Fa(a, b, c, d, e) {
if (c.length) {
return Promise.all(c).then(function() {
a.result.length && (d = [a.result].concat(d));
- a.result = Ga(d, e, f, g, !h, a.G);
+ a.result = Ga(d, e, f, g, !h, a.D);
return h ? a.result : a;
});
}
this.result.length && (d = [this.result].concat(d));
- this.result = Ga(d, e, f, g, !h, a.G);
+ this.result = Ga(d, e, f, g, !h, a.D);
return h ? this.result : this;
};
function Ga(a, b, c, d, e, f) {
@@ -956,7 +956,7 @@ function Ha(a, b) {
}
this.index = null;
this.result = a || [];
- this.G = 0;
+ this.D = 0;
}
S.prototype.limit = function(a) {
if (this.result.length) {
@@ -986,7 +986,7 @@ S.prototype.offset = function(a) {
return this;
};
S.prototype.boost = function(a) {
- this.G += a;
+ this.D += a;
return this;
};
S.prototype.resolve = function(a, b, c) {
@@ -1121,7 +1121,7 @@ O.prototype.search = function(a, b, c) {
return async function() {
for (let t, x; q < e; q++) {
x = a[q];
- r ? (t = await V(p, x, r), t = Ka(t, d, f, p.U, b, g, 2 === e), f && !1 === t && d.length || (r = x)) : (t = await V(p, x), t = Ka(t, d, f, p.resolution, b, g, 1 === e));
+ r ? (t = await V(p, x, r), t = Ka(t, d, f, p.S, b, g, 2 === e), f && !1 === t && d.length || (r = x)) : (t = await V(p, x), t = Ka(t, d, f, p.resolution, b, g, 1 === e));
if (t) {
return t;
}
@@ -1145,7 +1145,7 @@ O.prototype.search = function(a, b, c) {
}
for (let p, t; q < e; q++) {
t = a[q];
- r ? (p = V(this, t, r), p = Ka(p, d, f, this.U, b, g, 2 === e), f && !1 === p && d.length || (r = t)) : (p = V(this, t), p = Ka(p, d, f, this.resolution, b, g, 1 === e));
+ r ? (p = V(this, t, r), p = Ka(p, d, f, this.S, b, g, 2 === e), f && !1 === p && d.length || (r = t)) : (p = V(this, t), p = Ka(p, d, f, this.resolution, b, g, 1 === e));
if (p) {
return p;
}
@@ -1200,11 +1200,11 @@ function V(a, b, c, d, e, f, g, h) {
if (a.db) {
return c ? a.db.get(k ? c : b, k ? b : c, d, e, f, g, h) : a.db.get(b, "", d, e, f, g, h);
}
- a = c ? (a = a.F.get(k ? b : c)) && a.get(k ? c : b) : a.map.get(b);
+ a = c ? (a = a.ctx.get(k ? b : c)) && a.get(k ? c : b) : a.map.get(b);
return a;
}
;O.prototype.remove = function(a, b) {
- const c = this.A.size && (this.fastupdate ? this.A.get(a) : this.A.has(a));
+ const c = this.reg.size && (this.fastupdate ? this.reg.get(a) : this.reg.has(a));
if (c) {
if (this.fastupdate) {
for (let d = 0, e; d < c.length; d++) {
@@ -1218,11 +1218,11 @@ function V(a, b, c, d, e, f, g, h) {
}
}
} else {
- La(this.map, a), this.depth && La(this.F, a);
+ La(this.map, a), this.depth && La(this.ctx, a);
}
- b || this.A.delete(a);
+ b || this.reg.delete(a);
}
- this.db && (this.K.push({del:a}), this.W && Ca(this));
+ this.db && (this.I.push({del:a}), this.U && Ca(this));
this.cache && this.cache.remove(a);
return this;
};
@@ -1269,17 +1269,17 @@ function La(a, b) {
this.score = a.score || null;
(e = a.keystore || 0) && (this.keystore = e);
this.map = e ? new L(e) : new Map();
- this.F = e ? new L(e) : new Map();
- this.A = b || (this.fastupdate ? e ? new L(e) : new Map() : e ? new M(e) : new Set());
- this.U = c.resolution || 1;
+ this.ctx = e ? new L(e) : new Map();
+ this.reg = b || (this.fastupdate ? e ? new L(e) : new Map() : e ? new M(e) : new Set());
+ this.S = c.resolution || 1;
this.rtl = d.rtl || a.rtl || !1;
this.cache = (e = a.cache || null) && new H(e);
this.resolve = !1 !== a.resolve;
if (e = a.db) {
this.db = e.mount(this);
}
- this.W = !1 !== a.commit;
- this.K = [];
+ this.U = !1 !== a.commit;
+ this.I = [];
this.h = null;
}
u = O.prototype;
@@ -1299,17 +1299,17 @@ function Ca(a) {
}
u.clear = function() {
this.map.clear();
- this.F.clear();
- this.A.clear();
+ this.ctx.clear();
+ this.reg.clear();
this.cache && this.cache.clear();
- this.db && (this.h && clearTimeout(this.h), this.h = null, this.K = [{clear:!0}]);
+ this.db && (this.h && clearTimeout(this.h), this.h = null, this.I = [{clear:!0}]);
return this;
};
u.append = function(a, b) {
return this.add(a, b, !0);
};
u.contain = function(a) {
- return this.db ? this.db.has(a) : this.A.has(a);
+ return this.db ? this.db.has(a) : this.reg.has(a);
};
u.update = function(a, b) {
if (this.async) {
@@ -1337,7 +1337,7 @@ u.cleanup = function() {
return console.info('Cleanup the index isn\'t required when not using "fastupdate".'), this;
}
Ma(this.map);
- this.depth && Ma(this.F);
+ this.depth && Ma(this.ctx);
return this;
};
u.searchCache = ma;
@@ -1352,16 +1352,16 @@ u.export = function(a, b, c, d, e, f) {
h = "reg";
if (this.fastupdate) {
k = z();
- for (let l of this.A.keys()) {
+ for (let l of this.reg.keys()) {
k[l] = 1;
}
} else {
- k = this.A;
+ k = this.reg;
}
break;
case 1:
h = "cfg";
- k = {doc:0, opt:this.B ? 1 : 0};
+ k = {doc:0, opt:this.A ? 1 : 0};
break;
case 2:
h = "map";
@@ -1369,7 +1369,7 @@ u.export = function(a, b, c, d, e, f) {
break;
case 3:
h = "ctx";
- k = this.F;
+ k = this.ctx;
break;
default:
"undefined" === typeof c && f && f();
@@ -1382,20 +1382,70 @@ u.import = function(a, b) {
if (b) {
switch(B(b) && (b = JSON.parse(b)), a) {
case "cfg":
- this.B = !!b.opt;
+ this.A = !!b.opt;
break;
case "reg":
this.fastupdate = !1;
- this.A = b;
+ this.reg = b;
break;
case "map":
this.map = b;
break;
case "ctx":
- this.F = b;
+ this.ctx = b;
}
}
};
+u.serialize = function(a = !0) {
+ if (!this.reg.size) {
+ return "";
+ }
+ let b = "", c = "";
+ for (var d of this.reg.keys()) {
+ c || (c = typeof d), b += (b ? "," : "") + ("string" === c ? '"' + d + '"' : d);
+ }
+ b = "index.reg=new Set([" + b + "]);";
+ d = "";
+ for (var e of this.map.entries()) {
+ var f = e[0], g = e[1], h = "";
+ for (let m = 0, n; m < g.length; m++) {
+ n = g[m] || [""];
+ var k = "";
+ for (var l = 0; l < n.length; l++) {
+ k += (k ? "," : "") + ("string" === c ? '"' + n[l] + '"' : n[l]);
+ }
+ k = "[" + k + "]";
+ h += (h ? "," : "") + k;
+ }
+ h = '["' + f + '",[' + h + "]]";
+ d += (d ? "," : "") + h;
+ }
+ d = "index.map=new Map([" + d + "]);";
+ e = "";
+ for (const m of this.ctx.entries()) {
+ f = m[0];
+ g = m[1];
+ for (const n of g.entries()) {
+ g = n[0];
+ h = n[1];
+ k = "";
+ for (let q = 0, r; q < h.length; q++) {
+ r = h[q] || [""];
+ l = "";
+ for (let p = 0; p < r.length; p++) {
+ l += (l ? "," : "") + ("string" === c ? '"' + r[p] + '"' : r[p]);
+ }
+ l = "[" + l + "]";
+ k += (k ? "," : "") + l;
+ }
+ k = 'new Map([["' + g + '",[' + k + "]]])";
+ k = '["' + f + '",' + k + "]";
+ e += (e ? "," : "") + k;
+ }
+ }
+ e = "index.ctx=new Map([" + e + "]);";
+ return a ? "function inject(index){" + b + d + e + "}" : b + d + e;
+};
Ba(O.prototype);
async function Na(a) {
a = a.data;
@@ -1466,24 +1516,24 @@ function Pa(a, b, c) {
;Y.prototype.add = function(a, b, c) {
C(a) && (b = a, a = ca(b, this.key));
if (b && (a || 0 === a)) {
- if (!c && this.A.has(a)) {
+ if (!c && this.reg.has(a)) {
return this.update(a, b);
}
for (let h = 0, k; h < this.field.length; h++) {
- k = this.I[h];
+ k = this.G[h];
var d = this.index.get(this.field[h]);
if ("function" === typeof k) {
var e = k(b);
e && d.add(a, e, !1, !0);
} else {
- if (e = k.L, !e || e(b)) {
- k.constructor === String ? k = ["" + k] : B(k) && (k = [k]), Qa(b, k, this.N, 0, d, a, k[0], c);
+ if (e = k.J, !e || e(b)) {
+ k.constructor === String ? k = ["" + k] : B(k) && (k = [k]), Qa(b, k, this.L, 0, d, a, k[0], c);
}
}
}
if (this.tag) {
- for (d = 0; d < this.H.length; d++) {
- var f = this.H[d], g = this.R[d];
+ for (d = 0; d < this.F.length; d++) {
+ var f = this.F[d], g = this.O[d];
e = this.tag.get(g);
let h = z();
if ("function" === typeof f) {
@@ -1491,7 +1541,7 @@ function Pa(a, b, c) {
continue;
}
} else {
- const k = f.L;
+ const k = f.J;
if (k && !k(b)) {
continue;
}
@@ -1505,14 +1555,14 @@ function Pa(a, b, c) {
if (m.length === 2 ** 31 - 1) {
g = new K(m);
if (this.fastupdate) {
- for (let n of this.A.values()) {
+ for (let n of this.reg.values()) {
n.includes(m) && (n[n.indexOf(m)] = g);
}
}
e.set(l, m = g);
}
m.push(a);
- this.fastupdate && ((g = this.A.get(a)) ? g.push(m) : this.A.set(a, [m]));
+ this.fastupdate && ((g = this.reg.get(a)) ? g.push(m) : this.reg.set(a, [m]));
}
}
} else {
@@ -1522,11 +1572,11 @@ function Pa(a, b, c) {
}
if (this.store && (!c || !this.store.has(a))) {
let h;
- if (this.D) {
+ if (this.C) {
h = z();
- for (let k = 0, l; k < this.D.length; k++) {
- l = this.D[k];
- if ((c = l.L) && !c(b)) {
+ for (let k = 0, l; k < this.C.length; k++) {
+ l = this.C[k];
+ if ((c = l.J) && !c(b)) {
continue;
}
let m;
@@ -1535,7 +1585,7 @@ function Pa(a, b, c) {
if (!m) {
continue;
}
- l = [l.X];
+ l = [l.V];
} else if (B(l) || l.constructor === String) {
h[l] = b[l];
continue;
@@ -1672,7 +1722,7 @@ function Qa(a, b, c, d, e, f, g, h) {
let A;
for (let w = 0, v, I, J; w < k.length; w++) {
I = k[w];
- if (this.db && this.tag && !this.I[w]) {
+ if (this.db && this.tag && !this.G[w]) {
continue;
}
let D;
@@ -1680,7 +1730,7 @@ function Qa(a, b, c, d, e, f, g, h) {
if (d) {
v = d[w];
} else {
- if (t = D || c, x = this.index.get(I), n && (this.db && (t.tag = n, A = x.db.Z, t.field = k), A || (t.enrich = !1)), p) {
+ if (t = D || c, x = this.index.get(I), n && (this.db && (t.tag = n, A = x.db.X, t.field = k), A || (t.enrich = !1)), p) {
p[w] = x.searchAsync(a, b, t);
t && q && (t.enrich = q);
continue;
@@ -1821,13 +1871,13 @@ function Ta(a) {
}
const b = a.document || a.doc || a;
var c, d;
- this.I = [];
+ this.G = [];
this.field = [];
- this.N = [];
- this.key = (c = b.key || b.id) && Va(c, this.N) || "id";
+ this.L = [];
+ this.key = (c = b.key || b.id) && Va(c, this.L) || "id";
(d = a.keystore || 0) && (this.keystore = d);
- this.A = (this.fastupdate = !!a.fastupdate) ? d ? new L(d) : new Map() : d ? new M(d) : new Set();
- this.D = (c = b.store || null) && !0 !== c && [];
+ this.reg = (this.fastupdate = !!a.fastupdate) ? d ? new L(d) : new Map() : d ? new M(d) : new Set();
+ this.C = (c = b.store || null) && !0 !== c && [];
this.store = c && (d ? new L(d) : new Map());
this.cache = (c = a.cache || null) && new H(c);
a.cache = !1;
@@ -1845,15 +1895,15 @@ function Ta(a) {
c.set(f, h);
h.worker || (this.worker = !1);
}
- this.worker || c.set(f, new O(g, this.A));
- g.custom ? this.I[e] = g.custom : (this.I[e] = Va(f, this.N), g.filter && ("string" === typeof this.I[e] && (this.I[e] = new String(this.I[e])), this.I[e].L = g.filter));
+ this.worker || c.set(f, new O(g, this.reg));
+ g.custom ? this.G[e] = g.custom : (this.G[e] = Va(f, this.L), g.filter && ("string" === typeof this.G[e] && (this.G[e] = new String(this.G[e])), this.G[e].J = g.filter));
this.field[e] = f;
}
- if (this.D) {
+ if (this.C) {
d = b.store;
B(d) && (d = [d]);
for (let e = 0, f, g; e < d.length; e++) {
- f = d[e], g = f.field || f, f.custom ? (this.D[e] = f.custom, f.custom.X = g) : (this.D[e] = Va(g, this.N), f.filter && ("string" === typeof this.D[e] && (this.D[e] = new String(this.D[e])), this.D[e].L = f.filter));
+ f = d[e], g = f.field || f, f.custom ? (this.C[e] = f.custom, f.custom.V = g) : (this.C[e] = Va(g, this.L), f.filter && ("string" === typeof this.C[e] && (this.C[e] = new String(this.C[e])), this.C[e].J = f.filter));
}
}
this.index = c;
@@ -1861,16 +1911,16 @@ function Ta(a) {
if (c = b.tag) {
if ("string" === typeof c && (c = [c]), c.length) {
this.tag = new Map();
- this.H = [];
- this.R = [];
+ this.F = [];
+ this.O = [];
for (let e = 0, f, g; e < c.length; e++) {
f = c[e];
g = f.field || f;
if (!g) {
throw Error("The tag field from the document descriptor is undefined.");
}
- f.custom ? this.H[e] = f.custom : (this.H[e] = Va(g, this.N), f.filter && ("string" === typeof this.H[e] && (this.H[e] = new String(this.H[e])), this.H[e].L = f.filter));
- this.R[e] = g;
+ f.custom ? this.F[e] = f.custom : (this.F[e] = Va(g, this.L), f.filter && ("string" === typeof this.F[e] && (this.F[e] = new String(this.F[e])), this.F[e].J = f.filter));
+ this.O[e] = g;
this.tag.set(g, new Map());
}
}
@@ -1881,10 +1931,10 @@ u = Y.prototype;
u.mount = function(a) {
let b = this.field;
if (this.tag) {
- for (let e = 0, f; e < this.R.length; e++) {
- f = this.R[e];
+ for (let e = 0, f; e < this.O.length; e++) {
+ f = this.O[e];
var c = this.index.get(f);
- c || (this.index.set(f, c = new O({}, this.A)), b === this.field && (b = b.slice(0)), b.push(f));
+ c || (this.index.set(f, c = new O({}, this.reg)), b === this.field && (b = b.slice(0)), b.push(f));
c.tag = this.tag.get(f);
}
}
@@ -1897,7 +1947,7 @@ u.mount = function(a) {
h.id = a.id;
c[e] = h.mount(f);
f.document = !0;
- e ? f.Y = !0 : f.store = this.store;
+ e ? f.W = !0 : f.store = this.store;
}
this.db = this.async = !0;
return Promise.all(c);
@@ -1908,7 +1958,7 @@ u.commit = async function(a, b) {
c.push(d.db.commit(d, a, b));
}
await Promise.all(c);
- this.A.clear();
+ this.reg.clear();
};
function Va(a, b) {
const c = a.split(":");
@@ -1930,7 +1980,7 @@ u.remove = function(a) {
for (var b of this.index.values()) {
b.remove(a, !0);
}
- if (this.A.has(a)) {
+ if (this.reg.has(a)) {
if (this.tag && !this.fastupdate) {
for (let c of this.tag.values()) {
for (let d of c) {
@@ -1941,7 +1991,7 @@ u.remove = function(a) {
}
}
this.store && this.store.delete(a);
- this.A.delete(a);
+ this.reg.delete(a);
}
this.cache && this.cache.remove(a);
return this;
@@ -1959,7 +2009,7 @@ u.clear = function() {
return this;
};
u.contain = function(a) {
- return this.db ? this.index.get(this.field[0]).db.has(a) : this.A.has(a);
+ return this.db ? this.index.get(this.field[0]).db.has(a) : this.reg.has(a);
};
u.cleanup = function() {
for (const a of this.index.values()) {
@@ -2017,9 +2067,9 @@ u.import = function(a, b) {
break;
case "reg":
this.fastupdate = !1;
- this.A = b;
+ this.reg = b;
for (let d = 0, e; d < this.field.length; d++) {
- e = this.index[this.field[d]], e.A = b, e.fastupdate = !1;
+ e = this.index[this.field[d]], e.reg = b, e.fastupdate = !1;
}
break;
case "store":
@@ -2043,7 +2093,7 @@ function Ya(a, b = {}) {
a || console.info("Default storage space was used, because a name was not passed.");
this.id = "flexsearch" + (a ? ":" + a.toLowerCase().replace(/[^a-z0-9_\-]/g, "") : "");
this.field = b.field ? b.field.toLowerCase().replace(/[^a-z0-9_\-]/g, "") : "";
- this.Z = !1;
+ this.X = !1;
this.db = null;
this.h = {};
}
@@ -2183,22 +2233,22 @@ u.transaction = function(a, b, c) {
};
u.commit = async function(a, b, c) {
if (b) {
- await this.clear(), a.K = [];
+ await this.clear(), a.I = [];
} else {
- let d = a.K;
- a.K = [];
+ let d = a.I;
+ a.I = [];
for (let e = 0, f; e < d.length; e++) {
if (f = d[e], f.clear) {
await this.clear();
b = !0;
break;
} else {
- d[e] = f.$;
+ d[e] = f.Y;
}
}
- b || (c || (d = d.concat(ba(a.A))), d.length && await this.remove(d));
+ b || (c || (d = d.concat(ba(a.reg))), d.length && await this.remove(d));
}
- a.A.size && (await this.transaction("map", "readwrite", function(d) {
+ a.reg.size && (await this.transaction("map", "readwrite", function(d) {
for (const e of a.map) {
const f = e[0], g = e[1];
g.length && (b ? d.put(g, f) : d.get(f).onsuccess = function() {
@@ -2225,7 +2275,7 @@ u.commit = async function(a, b, c) {
});
}
}), await this.transaction("ctx", "readwrite", function(d) {
- for (const e of a.F) {
+ for (const e of a.ctx) {
const f = e[0], g = e[1];
for (const h of g) {
const k = h[0], l = h[1];
@@ -2258,8 +2308,8 @@ u.commit = async function(a, b, c) {
const f = e[0], g = e[1];
d.put("object" === typeof g ? JSON.stringify(g) : 1, f);
}
- }) : a.Y || await this.transaction("reg", "readwrite", function(d) {
- for (const e of a.A.keys()) {
+ }) : a.W || await this.transaction("reg", "readwrite", function(d) {
+ for (const e of a.reg.keys()) {
d.put(1, e);
}
}), a.tag && await this.transaction("tag", "readwrite", function(d) {
@@ -2271,7 +2321,7 @@ u.commit = async function(a, b, c) {
d.put(h, f);
});
}
- }), a.map.clear(), a.F.clear(), a.tag && a.tag.clear(), a.store && a.store.clear(), a.document || a.A.clear());
+ }), a.map.clear(), a.ctx.clear(), a.tag && a.tag.clear(), a.store && a.store.clear(), a.document || a.reg.clear());
};
function ab(a, b, c) {
const d = a.value;
diff --git a/dist/flexsearch.bundle.module.min.js b/dist/flexsearch.bundle.module.min.js
index acb2e7f..243d45d 100644
--- a/dist/flexsearch.bundle.module.min.js
+++ b/dist/flexsearch.bundle.module.min.js
@@ -15,75 +15,77 @@ function B(a){return"string"===typeof a}function C(a){return"object"===typeof a}
["\u0477","\u0475"],["\u04c2","\u0436"],["\u04d1","\u0430"],["\u04d3","\u0430"],["\u04d7","\u0435"],["\u04db","\u04d9"],["\u04dd","\u0436"],["\u04df","\u0437"],["\u04e3","\u0438"],["\u04e5","\u0438"],["\u04e7","\u043e"],["\u04eb","\u04e9"],["\u04ed","\u044d"],["\u04ef","\u0443"],["\u04f1","\u0443"],["\u04f3","\u0443"],["\u04f5","\u0447"]];const fa=/[^\p{L}\p{N}]+/u,ha=/(\d{3})/g,ia=/(\D)(\d{3})/g,ja=/(\d{3})(\D)/g,ka="".normalize&&/[\u0300-\u036f]/g;function F(a){if(!this)return new F(...arguments);for(let b=0;bthis.stemmer.get(l)),k=1);this.matcher&&
-1this.matcher.get(l)),k=1);g&&k&&(g.lengththis.V&&(this.M.clear(),this.B=this.B/1.1|0));g&&c.push(g)}this.finalize&&(c=this.finalize(c)||c);this.cache&&a.length<=this.h&&(this.J.set(a,c),this.J.size>this.V&&(this.J.clear(),this.h=this.h/1.1|0));return c};function la(a){a.O=null;a.J.clear();a.M.clear()};function ma(a,b,c){a=("object"===typeof a?""+a.query:a).toLowerCase();let d=this.cache.get(a);if(!d){d=this.search(a,b,c);if(d.then){const e=this;d.then(function(f){e.cache.set(a,f);return f})}this.cache.set(a,d)}return d}function G(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}G.prototype.set=function(a,b){this.cache.set(this.h=a,b);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};
+y(a.maxlength,0,this.maxlength);if(this.cache=c=y(a.cache,!0,this.cache))this.M=null,this.T="number"===typeof c?c:2E5,this.H=new Map,this.K=new Map,this.A=this.h=128;this.B="";this.P=null;this.N="";this.R=null;if(this.matcher)for(const d of this.matcher.keys())this.B+=(this.B?"|":"")+d;if(this.stemmer)for(const d of this.stemmer.keys())this.N+=(this.N?"|":"")+d;return this};
+F.prototype.encode=function(a){if(this.cache&&a.length<=this.h)if(this.M){if(this.H.has(a))return this.H.get(a)}else this.M=setTimeout(la,0,this);this.normalize&&(a="function"===typeof this.normalize?this.normalize(a):ka?a.normalize("NFKD").replace(ka,"").toLowerCase():a.toLowerCase());this.prepare&&(a=this.prepare(a));this.numeric&&3this.stemmer.get(l)),k=1);this.matcher&&
+1this.matcher.get(l)),k=1);g&&k&&(g.lengththis.T&&(this.K.clear(),this.A=this.A/1.1|0));g&&c.push(g)}this.finalize&&(c=this.finalize(c)||c);this.cache&&a.length<=this.h&&(this.H.set(a,c),this.H.size>this.T&&(this.H.clear(),this.h=this.h/1.1|0));return c};function la(a){a.M=null;a.H.clear();a.K.clear()};function ma(a,b,c){a=("object"===typeof a?""+a.query:a).toLowerCase();let d=this.cache.get(a);if(!d){d=this.search(a,b,c);if(d.then){const e=this;d.then(function(f){e.cache.set(a,f);return f})}this.cache.set(a,d)}return d}function G(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}G.prototype.set=function(a,b){this.cache.set(this.h=a,b);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};
G.prototype.get=function(a){const b=this.cache.get(a);b&&this.h!==a&&(this.cache.delete(a),this.cache.set(this.h=a,b));return b};G.prototype.remove=function(a){for(const b of this.cache){const c=b[0];b[1].includes(a)&&this.cache.delete(c)}};G.prototype.clear=function(){this.cache.clear();this.h=""};const na={normalize:function(a){return a.toLowerCase()},dedupe:!1};const oa=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]);const pa=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),qa=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];const ra={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,"\u00df":2,d:3,t:3,l:4,m:5,n:5,r:6};const sa=/[\x00-\x7F]+/g;const ta=/[\x00-\x7F]+/g;const ua=/[\x00-\x7F]+/g;var va={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:na,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:oa},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:oa,replacer:qa,matcher:pa},LatinExtra:{normalize:!0,dedupe:!0,mapper:oa,replacer:qa.concat([/(?!^)[aeoy]/g,""]),matcher:pa},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(let c=0;c=g.length)b-=g.length;else{b=g[d?"splice":"slice"](b,c);const h=b.length;if(h&&(e=e.length?e.concat(b):b,c-=h,d&&(a.length-=h),!c))break;b=0}return e}
function J(a){if(!this)return new J(a);this.index=a?[a]:[];this.length=a?a.length:0;const b=this;return new Proxy([],{get(c,d){if("length"===d)return b.length;if("push"===d)return function(e){b.index[b.index.length-1].push(e);b.length++};if("pop"===d)return function(){if(b.length)return b.length--,b.index[b.index.length-1].pop()};if("indexOf"===d)return function(e){let f=0;for(let g=0,h,k;gf;h--){g=p.substring(f,h);var k=this.score?this.score(b,p,r,g,f):P(q,d,r,e,f);Q(this,m,g,k,a,c)}break}case "reverse":if(1<
-e){for(h=e-1;0g?0:1),d,r,h-1,k-1),x=this.bidirectional&&p>f;Q(this,l,x?f:p,t,a,c,x?p:f)}}}}this.fastupdate||this.A.add(a)}else b=""}this.db&&(b||
-this.K.push({del:a}),this.W&&Ca(this));return this};function Q(a,b,c,d,e,f,g){let h=g?a.F:a.map,k;if(!b[c]||!g||!(k=b[c])[g])if(g?(b=k||(b[c]=z()),b[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):b[c]=1,(k=h.get(c))?h=k:h.set(c,h=k=[]),h=h[d]||(h[d]=[]),!f||!h.includes(e)){if(h.length===2**31-1){b=new J(h);if(a.fastupdate)for(let l of a.A.values())l.includes(h)&&(l[l.indexOf(h)]=b);k[d]=h=b}h.push(e);a.fastupdate&&((d=a.A.get(e))?d.push(h):a.A.set(e,[h]))}}
+function K(a=8){if(!this)return new K(a);this.index=z();this.B=[];this.size=0;32f;h--){g=p.substring(f,h);var k=this.score?this.score(b,p,r,g,f):P(q,d,r,e,f);Q(this,m,g,k,a,c)}break}case "reverse":if(1<
+e){for(h=e-1;0g?0:1),d,r,h-1,k-1),x=this.bidirectional&&p>f;Q(this,l,x?f:p,t,a,c,x?p:f)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
+(b||this.I.push({del:a}),this.U&&Ca(this));return this};function Q(a,b,c,d,e,f,g){let h=g?a.ctx:a.map,k;if(!b[c]||!g||!(k=b[c])[g])if(g?(b=k||(b[c]=z()),b[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):b[c]=1,(k=h.get(c))?h=k:h.set(c,h=k=[]),h=h[d]||(h[d]=[]),!f||!h.includes(e)){if(h.length===2**31-1){b=new J(h);if(a.fastupdate)for(let l of a.reg.values())l.includes(h)&&(l[l.indexOf(h)]=b);k[d]=h=b}h.push(e);a.fastupdate&&((d=a.reg.get(e))?d.push(h):a.reg.set(e,[h]))}}
function P(a,b,c,d,e){return c&&1b?b?a.slice(c,c+b):a.slice(c):a,d?Da(a):a;let e=[];for(let f=0,g,h;f=h){c-=h;continue}cb&&(g=g.slice(0,b),h=g.length),e.push(g);else{if(h>=b)return h>b&&(g=g.slice(0,b)),d?Da(g):g;e=[g]}b-=h;if(!b)break}if(!e.length)return e;e=1a.length)return e?R(a[0],b,c,d):a[0];d=[];let g=0,h=z(),k=da(a);for(let l=0,m;la.length)return[];let f=[],g=0,h=z(),k=da(a);if(!k)return f;for(let l=0,m;la.length)return e?R(a[0],b,c,d):a[0];b=[];c=z();for(let g=0,h;gc||d)g=g.slice(d,c+d)}return g}
+Ha.call(a,d,e);return e?a.result:a});this.result=Ha.call(this,d,e);return e?this.result:this};function Ha(a,b){if(!a.length)return this.result;const c=[];a=new Set(a.flat().flat());for(let d=0,e;dc||d)g=g.slice(d,c+d)}return g}
function Ja(a,b){const c=z(),d=z(),e=[];for(let f=0;f=e)))break;if(h.length){if(g)return R(h,e,0);b.push(h);return}}return!c&&h}function V(a,b,c,d,e,f,g,h){let k;c&&(k=a.bidirectional&&b>c);if(a.db)return c?a.db.get(k?c:b,k?b:c,d,e,f,g,h):a.db.get(b,"",d,e,f,g,h);a=c?(a=a.F.get(k?b:c))&&a.get(k?c:b):a.map.get(b);return a};O.prototype.remove=function(a,b){const c=this.A.size&&(this.fastupdate?this.A.get(a):this.A.has(a));if(c){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const f=e.indexOf(a);f===c.length-1?e.pop():e.splice(f,1)}}else La(this.map,a),this.depth&&La(this.F,a);b||this.A.delete(a)}this.db&&(this.K.push({del:a}),this.W&&Ca(this));this.cache&&this.cache.remove(a);return this};
-function La(a,b){let c=0;if(a.constructor===Array)for(let d=0,e,f;dc.add(a,b)):this.add(a,b)}return this.remove(a).add(a,b)};function Ma(a){let b=0;if(a.constructor===Array)for(let c=0,d;c{f=l}));let h,k;switch(e||(e=0)){case 0:h="reg";if(this.fastupdate){k=z();for(let l of this.A.keys())k[l]=1}else k=this.A;break;case 1:h="cfg";k={doc:0,opt:this.B?1:0};break;case 2:h="map";k=this.map;break;case 3:h="ctx";k=this.F;break;default:"undefined"===typeof c&&f&&f();return}za(a,b||this,c,h,d,e,k,f);return g};
-u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "cfg":this.B=!!b.opt;break;case "reg":this.fastupdate=!1;this.A=b;break;case "map":this.map=b;break;case "ctx":this.F=b}};Ba(O.prototype);async function Na(a){a=a.data;var b=self._index;const c=a.args;var d=a.task;switch(d){case "init":d=a.options||{};(b=d.config)&&(d=await import(b));(b=a.factory)?(Function("return "+b)()(self),self._index=new self.FlexSearch.Index(d),delete self.FlexSearch):self._index=new O(d);postMessage({id:a.id});break;default:a=a.id,b=b[d].apply(b,c),postMessage("search"===d?{id:a,msg:b}:{id:a})}};let Oa=0;
+function Ka(a,b,c,d,e,f,g){let h=[];if(a){d=Math.min(a.length,d);for(let k=0,l=0,m;k=e)))break;if(h.length){if(g)return R(h,e,0);b.push(h);return}}return!c&&h}function V(a,b,c,d,e,f,g,h){let k;c&&(k=a.bidirectional&&b>c);if(a.db)return c?a.db.get(k?c:b,k?b:c,d,e,f,g,h):a.db.get(b,"",d,e,f,g,h);a=c?(a=a.ctx.get(k?b:c))&&a.get(k?c:b):a.map.get(b);return a};O.prototype.remove=function(a,b){const c=this.reg.size&&(this.fastupdate?this.reg.get(a):this.reg.has(a));if(c){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const f=e.indexOf(a);f===c.length-1?e.pop():e.splice(f,1)}}else La(this.map,a),this.depth&&La(this.ctx,a);b||this.reg.delete(a)}this.db&&(this.I.push({del:a}),this.U&&Ca(this));this.cache&&this.cache.remove(a);return this};
+function La(a,b){let c=0;if(a.constructor===Array)for(let d=0,e,f;dc.add(a,b)):this.add(a,b)}return this.remove(a).add(a,b)};function Ma(a){let b=0;if(a.constructor===Array)for(let c=0,d;c{f=l}));let h,k;switch(e||(e=0)){case 0:h="reg";if(this.fastupdate){k=z();for(let l of this.reg.keys())k[l]=1}else k=this.reg;break;case 1:h="cfg";k={doc:0,opt:this.A?1:0};break;case 2:h="map";k=this.map;break;case 3:h="ctx";k=this.ctx;break;default:"undefined"===typeof c&&f&&f();return}za(a,b||this,c,h,d,e,k,f);return g};
+u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "cfg":this.A=!!b.opt;break;case "reg":this.fastupdate=!1;this.reg=b;break;case "map":this.map=b;break;case "ctx":this.ctx=b}};
+u.serialize=function(a=!0){if(!this.reg.size)return"";let b="",c="";for(var d of this.reg.keys())c||(c=typeof d),b+=(b?",":"")+("string"===c?'"'+d+'"':d);b="index.reg=new Set(["+b+"]);";d="";for(var e of this.map.entries()){var f=e[0],g=e[1],h="";for(let m=0,n;mc||d)a=a.slice(d,d+c);e&&(a=Ta.call(this,a));return a}}
-function Ta(a){const b=Array(a.length);for(let c=0,d;c{f=k}));e||(e=0);d||(d=0);if(d{e.objectStoreNames.contains(f)||e.createObjectStore(f)})};d.onblocked=function(e){console.error("blocked",e);c()};d.onerror=function(e){console.error(this.error,e);c()};d.onsuccess=function(){a.db=this.result;a.db.onversionchange=function(){a.close()};b(a)}})}
u.close=function(){this.db.close();this.db=null};u.clear=function(){const a=this.db.transaction(Xa,"readwrite");for(let b=0;b=m.length){d-=m.length;continue}const n=c?d+Math.min(m.length-d,c):m.length;for(let q=d;q=f.length)return[];if(!b&&!c)return f;f=f.slice(c,c+b);return d?e.enrich(f):f})};
u.enrich=function(a){"object"!==typeof a&&(a=[a]);const b=this.db.transaction("reg","readonly").objectStore("reg"),c=[];for(let d=0;d{e.onerror=h=>{this.h[a+":"+b]=null;e.abort();e=d=null;g(h)};e.oncomplete=h=>{e=d=this.h[a+":"+b]=null;f(h||!0)};return c.call(this,d)})};
-u.commit=async function(a,b,c){if(b)await this.clear(),a.K=[];else{let d=a.K;a.K=[];for(let e=0,f;em&&!f&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(f=1),0<=m)if(e=1,1m&&!f&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(f=1),0<=m)if(e=1,1{a.onsuccess=function(){b(this.result)};a.oncomplete=function(){b(this.result)};a.onerror=c;a=null})};export default {Index:O,Charset:va,Encoder:F,Document:Y,Worker:W,Resolver:S,IndexedDB:Ya,Language:{}};
export const Index=O;export const Charset=va;export const Encoder=F;export const Document=Y;export const Worker=W;export const Resolver=S;export const IndexedDB=Ya;export const Language={};
\ No newline at end of file
diff --git a/dist/flexsearch.compact.debug.js b/dist/flexsearch.compact.debug.js
index c7ebb66..43d57e7 100644
--- a/dist/flexsearch.compact.debug.js
+++ b/dist/flexsearch.compact.debug.js
@@ -115,32 +115,32 @@ J.prototype.assign = function(a) {
this.minlength = x(a.minlength, 1, this.minlength);
this.maxlength = x(a.maxlength, 0, this.maxlength);
if (this.cache = b = x(a.cache, !0, this.cache)) {
- this.L = null, this.R = "number" === typeof b ? b : 2e5, this.H = new Map(), this.J = new Map(), this.G = this.A = 128;
+ this.J = null, this.O = "number" === typeof b ? b : 2e5, this.F = new Map(), this.H = new Map(), this.D = this.h = 128;
}
- this.M = "";
- this.O = null;
- this.N = "";
- this.P = null;
+ this.K = "";
+ this.M = null;
+ this.L = "";
+ this.N = null;
if (this.matcher) {
for (const e of this.matcher.keys()) {
- this.M += (this.M ? "|" : "") + e;
+ this.K += (this.K ? "|" : "") + e;
}
}
if (this.stemmer) {
for (const e of this.stemmer.keys()) {
- this.N += (this.N ? "|" : "") + e;
+ this.L += (this.L ? "|" : "") + e;
}
}
return this;
};
J.prototype.encode = function(a) {
- if (this.cache && a.length <= this.A) {
- if (this.L) {
- if (this.H.has(a)) {
- return this.H.get(a);
+ if (this.cache && a.length <= this.h) {
+ if (this.J) {
+ if (this.F.has(a)) {
+ return this.F.get(a);
}
} else {
- this.L = setTimeout(ha, 0, this);
+ this.J = setTimeout(ha, 0, this);
}
}
this.normalize && (a = "function" === typeof this.normalize ? this.normalize(a) : I ? a.normalize("NFKD").replace(I, "").toLowerCase() : a.toLowerCase());
@@ -162,25 +162,25 @@ J.prototype.encode = function(a) {
if (this.filter && this.filter.has(g)) {
continue;
}
- if (this.cache && g.length <= this.G) {
- if (this.L) {
- var d = this.J.get(g);
+ if (this.cache && g.length <= this.D) {
+ if (this.J) {
+ var d = this.H.get(g);
if (d || "" === d) {
d && b.push(d);
continue;
}
} else {
- this.L = setTimeout(ha, 0, this);
+ this.J = setTimeout(ha, 0, this);
}
}
let k;
- this.stemmer && 2 < g.length && (this.P || (this.P = new RegExp("(?!^)(" + this.N + ")$")), g = g.replace(this.P, l => this.stemmer.get(l)), k = 1);
- this.matcher && 1 < g.length && (this.O || (this.O = new RegExp("(" + this.M + ")", "g")), g = g.replace(this.O, l => this.matcher.get(l)), k = 1);
+ this.stemmer && 2 < g.length && (this.N || (this.N = new RegExp("(?!^)(" + this.L + ")$")), g = g.replace(this.N, l => this.stemmer.get(l)), k = 1);
+ this.matcher && 1 < g.length && (this.M || (this.M = new RegExp("(" + this.K + ")", "g")), g = g.replace(this.M, l => this.matcher.get(l)), k = 1);
g && k && (g.length < this.minlength || this.filter && this.filter.has(g)) && (g = "");
if (g && (this.mapper || this.dedupe && 1 < g.length)) {
d = "";
- for (let l = 0, m = "", r, t; l < g.length; l++) {
- r = g.charAt(l), r === m && this.dedupe || ((t = this.mapper && this.mapper.get(r)) || "" === t ? t === m && this.dedupe || !(m = t) || (d += t) : d += m = r);
+ for (let l = 0, m = "", q, t; l < g.length; l++) {
+ q = g.charAt(l), q === m && this.dedupe || ((t = this.mapper && this.mapper.get(q)) || "" === t ? t === m && this.dedupe || !(m = t) || (d += t) : d += m = q);
}
g = d;
}
@@ -189,17 +189,17 @@ J.prototype.encode = function(a) {
g = g.replace(this.replacer[d], this.replacer[d + 1]);
}
}
- this.cache && h.length <= this.G && (this.J.set(h, g), this.J.size > this.R && (this.J.clear(), this.G = this.G / 1.1 | 0));
+ this.cache && h.length <= this.D && (this.H.set(h, g), this.H.size > this.O && (this.H.clear(), this.D = this.D / 1.1 | 0));
g && b.push(g);
}
this.finalize && (b = this.finalize(b) || b);
- this.cache && a.length <= this.A && (this.H.set(a, b), this.H.size > this.R && (this.H.clear(), this.A = this.A / 1.1 | 0));
+ this.cache && a.length <= this.h && (this.F.set(a, b), this.F.size > this.O && (this.F.clear(), this.h = this.h / 1.1 | 0));
return b;
};
function ha(a) {
- a.L = null;
+ a.J = null;
+ a.F.clear();
a.H.clear();
- a.J.clear();
}
;function ia(a, c, b) {
a = ("object" === typeof a ? "" + a.query : a).toLowerCase();
@@ -220,15 +220,15 @@ function ha(a) {
function K(a) {
this.limit = a && !0 !== a ? a : 1000;
this.cache = new Map();
- this.A = "";
+ this.h = "";
}
K.prototype.set = function(a, c) {
- this.cache.set(this.A = a, c);
+ this.cache.set(this.h = a, c);
this.cache.size > this.limit && this.cache.delete(this.cache.keys().next().value);
};
K.prototype.get = function(a) {
const c = this.cache.get(a);
- c && this.A !== a && (this.cache.delete(a), this.cache.set(this.A = a, c));
+ c && this.h !== a && (this.cache.delete(a), this.cache.set(this.h = a, c));
return c;
};
K.prototype.remove = function(a) {
@@ -239,7 +239,7 @@ K.prototype.remove = function(a) {
};
K.prototype.clear = function() {
this.cache.clear();
- this.A = "";
+ this.h = "";
};
const ja = {normalize:function(a) {
return a.toLowerCase();
@@ -294,16 +294,16 @@ function M(a) {
;y();
N.prototype.add = function(a, c, b, e) {
if (c && (a || 0 === a)) {
- if (!e && !b && this.h.has(a)) {
+ if (!e && !b && this.reg.has(a)) {
return this.update(a, c);
}
c = this.encoder.encode(c);
if (e = c.length) {
- const l = y(), m = y(), r = this.depth, t = this.resolution;
+ const l = y(), m = y(), q = this.depth, t = this.resolution;
for (let p = 0; p < e; p++) {
let n = c[this.rtl ? e - 1 - p : p];
var d = n.length;
- if (d && (r || !m[n])) {
+ if (d && (q || !m[n])) {
var f = this.score ? this.score(c, n, p, null, 0) : O(t, e, p), g = "";
switch(this.tokenize) {
case "full":
@@ -332,8 +332,8 @@ N.prototype.add = function(a, c, b, e) {
break;
}
default:
- if (P(this, m, n, f, a, b), r && 1 < e && p < e - 1) {
- for (d = y(), g = this.S, f = n, h = Math.min(r + 1, e - p), d[f] = 1, k = 1; k < h; k++) {
+ if (P(this, m, n, f, a, b), q && 1 < e && p < e - 1) {
+ for (d = y(), g = this.P, f = n, h = Math.min(q + 1, e - p), d[f] = 1, k = 1; k < h; k++) {
if ((n = c[this.rtl ? e - 1 - p - k : p + k]) && !d[n]) {
d[n] = 1;
const w = this.score ? this.score(c, f, p, n, k) : O(g + (e / 2 > g ? 0 : 1), e, p, h - 1, k - 1), B = this.bidirectional && n > f;
@@ -344,14 +344,14 @@ N.prototype.add = function(a, c, b, e) {
}
}
}
- this.fastupdate || this.h.add(a);
+ this.fastupdate || this.reg.add(a);
}
}
return this;
};
function P(a, c, b, e, d, f, g) {
- let h = g ? a.D : a.map, k;
- c[b] && g && (k = c[b])[g] || (g ? (c = k || (c[b] = y()), c[g] = 1, (k = h.get(g)) ? h = k : h.set(g, h = new Map())) : c[b] = 1, (k = h.get(b)) ? h = k : h.set(b, h = []), h = h[e] || (h[e] = []), f && h.includes(d) || (h.push(d), a.fastupdate && ((c = a.h.get(d)) ? c.push(h) : a.h.set(d, [h]))));
+ let h = g ? a.ctx : a.map, k;
+ c[b] && g && (k = c[b])[g] || (g ? (c = k || (c[b] = y()), c[g] = 1, (k = h.get(g)) ? h = k : h.set(g, h = new Map())) : c[b] = 1, (k = h.get(b)) ? h = k : h.set(b, h = []), h = h[e] || (h[e] = []), f && h.includes(d) || (h.push(d), a.fastupdate && ((c = a.reg.get(d)) ? c.push(h) : a.reg.set(d, [h]))));
}
function O(a, c, b, e, d) {
return b && 1 < a ? c + (e || 0) <= a ? b + (d || 0) : (a - 1) / (c + (e || 0)) * (b + (d || 0)) + 1 | 0 : 0;
@@ -422,11 +422,11 @@ function O(a, c, b, e, d) {
var h = 0, k = 0;
if (1 < b) {
var l = y();
- const r = [];
+ const q = [];
for (let t = 0, p; t < b; t++) {
if ((p = a[t]) && !l[p]) {
if (g || S(this, p)) {
- r.push(p), l[p] = 1;
+ q.push(p), l[p] = 1;
} else {
return e;
}
@@ -435,7 +435,7 @@ function O(a, c, b, e, d) {
k = k ? Math.min(k, n) : n;
}
}
- a = r;
+ a = q;
b = a.length;
}
if (!b) {
@@ -456,11 +456,11 @@ function O(a, c, b, e, d) {
9 < h && 3 < h / k && a.sort(aa);
}
}
- for (let r, t; l < b; l++) {
+ for (let q, t; l < b; l++) {
t = a[l];
- m ? (r = S(this, t, m), r = va(r, e, g, this.S, c, d, 2 === b), g && !1 === r && e.length || (m = t)) : (r = S(this, t), r = va(r, e, g, this.resolution, c, d, 1 === b));
- if (r) {
- return r;
+ m ? (q = S(this, t, m), q = va(q, e, g, this.P, c, d, 2 === b), g && !1 === q && e.length || (m = t)) : (q = S(this, t), q = va(q, e, g, this.resolution, c, d, 1 === b));
+ if (q) {
+ return q;
}
if (g && l === b - 1) {
f = e.length;
@@ -483,9 +483,9 @@ function O(a, c, b, e, d) {
m = a.length;
b = [];
f = y();
- for (let r = 0, t, p, n, w; r < e; r++) {
+ for (let q = 0, t, p, n, w; q < e; q++) {
for (k = 0; k < m; k++) {
- if (n = a[k], r < n.length && (t = n[r])) {
+ if (n = a[k], q < n.length && (t = n[q])) {
for (l = 0; l < t.length; l++) {
p = t[l], (h = f[p]) ? f[p]++ : (h = 0, f[p] = 1), w = b[h] || (b[h] = []), w.push(p);
}
@@ -559,11 +559,11 @@ function va(a, c, b, e, d, f, g) {
function S(a, c, b) {
let e;
b && (e = a.bidirectional && c > b);
- a = b ? (a = a.D.get(e ? c : b)) && a.get(e ? b : c) : a.map.get(c);
+ a = b ? (a = a.ctx.get(e ? c : b)) && a.get(e ? b : c) : a.map.get(c);
return a;
}
;N.prototype.remove = function(a, c) {
- const b = this.h.size && (this.fastupdate ? this.h.get(a) : this.h.has(a));
+ const b = this.reg.size && (this.fastupdate ? this.reg.get(a) : this.reg.has(a));
if (b) {
if (this.fastupdate) {
for (let e = 0, d; e < b.length; e++) {
@@ -577,9 +577,9 @@ function S(a, c, b) {
}
}
} else {
- T(this.map, a), this.depth && T(this.D, a);
+ T(this.map, a), this.depth && T(this.ctx, a);
}
- c || this.h.delete(a);
+ c || this.reg.delete(a);
}
this.cache && this.cache.remove(a);
return this;
@@ -627,17 +627,17 @@ function T(a, c) {
this.score = a.score || null;
d = !1;
this.map = new Map();
- this.D = new Map();
- this.h = c || (this.fastupdate ? new Map() : new Set());
- this.S = b.resolution || 1;
+ this.ctx = new Map();
+ this.reg = c || (this.fastupdate ? new Map() : new Set());
+ this.P = b.resolution || 1;
this.rtl = e.rtl || a.rtl || !1;
this.cache = (d = a.cache || null) && new K(d);
}
u = N.prototype;
u.clear = function() {
this.map.clear();
- this.D.clear();
- this.h.clear();
+ this.ctx.clear();
+ this.reg.clear();
this.cache && this.cache.clear();
return this;
};
@@ -645,7 +645,7 @@ u.append = function(a, c) {
return this.add(a, c, !0);
};
u.contain = function(a) {
- return this.h.has(a);
+ return this.reg.has(a);
};
u.update = function(a, c) {
if (this.async) {
@@ -673,7 +673,7 @@ u.cleanup = function() {
return console.info('Cleanup the index isn\'t required when not using "fastupdate".'), this;
}
U(this.map);
- this.depth && U(this.D);
+ this.depth && U(this.ctx);
return this;
};
u.searchCache = ia;
@@ -688,16 +688,16 @@ u.export = function(a, c, b, e, d, f) {
h = "reg";
if (this.fastupdate) {
k = y();
- for (let l of this.h.keys()) {
+ for (let l of this.reg.keys()) {
k[l] = 1;
}
} else {
- k = this.h;
+ k = this.reg;
}
break;
case 1:
h = "cfg";
- k = {doc:0, opt:this.A ? 1 : 0};
+ k = {doc:0, opt:this.h ? 1 : 0};
break;
case 2:
h = "map";
@@ -705,7 +705,7 @@ u.export = function(a, c, b, e, d, f) {
break;
case 3:
h = "ctx";
- k = this.D;
+ k = this.ctx;
break;
default:
"undefined" === typeof b && f && f();
@@ -718,42 +718,92 @@ u.import = function(a, c) {
if (c) {
switch(z(c) && (c = JSON.parse(c)), a) {
case "cfg":
- this.A = !!c.opt;
+ this.h = !!c.opt;
break;
case "reg":
this.fastupdate = !1;
- this.h = c;
+ this.reg = c;
break;
case "map":
this.map = c;
break;
case "ctx":
- this.D = c;
+ this.ctx = c;
}
}
};
+u.serialize = function(a = !0) {
+ if (!this.reg.size) {
+ return "";
+ }
+ let c = "", b = "";
+ for (var e of this.reg.keys()) {
+ b || (b = typeof e), c += (c ? "," : "") + ("string" === b ? '"' + e + '"' : e);
+ }
+ c = "index.reg=new Set([" + c + "]);";
+ e = "";
+ for (var d of this.map.entries()) {
+ var f = d[0], g = d[1], h = "";
+ for (let m = 0, q; m < g.length; m++) {
+ q = g[m] || [""];
+ var k = "";
+ for (var l = 0; l < q.length; l++) {
+ k += (k ? "," : "") + ("string" === b ? '"' + q[l] + '"' : q[l]);
+ }
+ k = "[" + k + "]";
+ h += (h ? "," : "") + k;
+ }
+ h = '["' + f + '",[' + h + "]]";
+ e += (e ? "," : "") + h;
+ }
+ e = "index.map=new Map([" + e + "]);";
+ d = "";
+ for (const m of this.ctx.entries()) {
+ f = m[0];
+ g = m[1];
+ for (const q of g.entries()) {
+ g = q[0];
+ h = q[1];
+ k = "";
+ for (let t = 0, p; t < h.length; t++) {
+ p = h[t] || [""];
+ l = "";
+ for (let n = 0; n < p.length; n++) {
+ l += (l ? "," : "") + ("string" === b ? '"' + p[n] + '"' : p[n]);
+ }
+ l = "[" + l + "]";
+ k += (k ? "," : "") + l;
+ }
+ k = 'new Map([["' + g + '",[' + k + "]]])";
+ k = '["' + f + '",' + k + "]";
+ d += (d ? "," : "") + k;
+ }
+ }
+ d = "index.ctx=new Map([" + d + "]);";
+ return a ? "function inject(index){" + c + e + d + "}" : c + e + d;
+};
ta(N.prototype);
V.prototype.add = function(a, c, b) {
E(a) && (c = a, a = F(c, this.key));
if (c && (a || 0 === a)) {
- if (!b && this.h.has(a)) {
+ if (!b && this.reg.has(a)) {
return this.update(a, c);
}
for (let h = 0, k; h < this.field.length; h++) {
- k = this.F[h];
+ k = this.C[h];
var e = this.index.get(this.field[h]);
if ("function" === typeof k) {
var d = k(c);
d && e.add(a, d, !1, !0);
} else {
- if (d = k.I, !d || d(c)) {
- k.constructor === String ? k = ["" + k] : z(k) && (k = [k]), W(c, k, this.K, 0, e, a, k[0], b);
+ if (d = k.G, !d || d(c)) {
+ k.constructor === String ? k = ["" + k] : z(k) && (k = [k]), W(c, k, this.I, 0, e, a, k[0], b);
}
}
}
if (this.tag) {
- for (e = 0; e < this.C.length; e++) {
- var f = this.C[e], g = this.T[e];
+ for (e = 0; e < this.B.length; e++) {
+ var f = this.B[e], g = this.R[e];
d = this.tag.get(g);
let h = y();
if ("function" === typeof f) {
@@ -761,7 +811,7 @@ V.prototype.add = function(a, c, b) {
continue;
}
} else {
- const k = f.I;
+ const k = f.G;
if (k && !k(c)) {
continue;
}
@@ -771,7 +821,7 @@ V.prototype.add = function(a, c, b) {
if (d && f) {
z(f) && (f = [f]);
for (let k = 0, l, m; k < f.length; k++) {
- l = f[k], h[l] || (h[l] = 1, (g = d.get(l)) ? m = g : d.set(l, m = []), b && m.includes(a) || (m.push(a), this.fastupdate && ((g = this.h.get(a)) ? g.push(m) : this.h.set(a, [m]))));
+ l = f[k], h[l] || (h[l] = 1, (g = d.get(l)) ? m = g : d.set(l, m = []), b && m.includes(a) || (m.push(a), this.fastupdate && ((g = this.reg.get(a)) ? g.push(m) : this.reg.set(a, [m]))));
}
} else {
d || console.warn("Tag '" + g + "' was not found");
@@ -780,11 +830,11 @@ V.prototype.add = function(a, c, b) {
}
if (this.store && (!b || !this.store.has(a))) {
let h;
- if (this.B) {
+ if (this.A) {
h = y();
- for (let k = 0, l; k < this.B.length; k++) {
- l = this.B[k];
- if ((b = l.I) && !b(c)) {
+ for (let k = 0, l; k < this.A.length; k++) {
+ l = this.A[k];
+ if ((b = l.G) && !b(c)) {
continue;
}
let m;
@@ -793,7 +843,7 @@ V.prototype.add = function(a, c, b) {
if (!m) {
continue;
}
- l = [l.U];
+ l = [l.S];
} else if (z(l) || l.constructor === String) {
h[l] = c[l];
continue;
@@ -849,7 +899,7 @@ function W(a, c, b, e, d, f, g, h) {
let d = [];
var f = [];
let g, h, k, l, m;
- let r = 0;
+ let q = 0;
if (b) {
b.constructor === Array && (b = {index:b});
a = b.query || a;
@@ -865,24 +915,24 @@ function W(a, c, b, e, d, f, g, h) {
if (m) {
m.constructor !== Array && (m = [m]);
var n = [];
- for (let v = 0, q; v < m.length; v++) {
- q = m[v];
- if (z(q)) {
+ for (let v = 0, r; v < m.length; v++) {
+ r = m[v];
+ if (z(r)) {
throw Error("A tag option can't be a string, instead it needs a { field: tag } format.");
}
- if (q.field && q.tag) {
- var w = q.tag;
+ if (r.field && r.tag) {
+ var w = r.tag;
if (w.constructor === Array) {
for (var B = 0; B < w.length; B++) {
- n.push(q.field, w[B]);
+ n.push(r.field, w[B]);
}
} else {
- n.push(q.field, w);
+ n.push(r.field, w);
}
} else {
- w = Object.keys(q);
+ w = Object.keys(r);
for (let C = 0, D, A; C < w.length; C++) {
- if (D = w[C], A = q[D], A.constructor === Array) {
+ if (D = w[C], A = r[D], A.constructor === Array) {
for (B = 0; B < A.length; B++) {
n.push(D, A[B]);
}
@@ -904,8 +954,8 @@ function W(a, c, b, e, d, f, g, h) {
}
}
return e.length ? Promise.all(e).then(function(v) {
- for (let q = 0; q < v.length; q++) {
- d[q].result = v[q];
+ for (let r = 0; r < v.length; r++) {
+ d[r].result = v[r];
}
return d;
}) : d;
@@ -915,22 +965,22 @@ function W(a, c, b, e, d, f, g, h) {
}
l || (l = this.field);
p = !e && (this.worker || this.async) && [];
- for (let v = 0, q, C, D; v < l.length; v++) {
+ for (let v = 0, r, C, D; v < l.length; v++) {
C = l[v];
let A;
z(C) || (A = C, C = A.field, a = A.query || a, c = A.limit || c, k = A.suggest || k);
if (e) {
- q = e[v];
+ r = e[v];
} else {
if (n = A || b, w = this.index.get(C), m && (n.enrich = !1), p) {
p[v] = w.searchAsync(a, c, n);
n && g && (n.enrich = g);
continue;
} else {
- q = w.search(a, c, n), n && g && (n.enrich = g);
+ r = w.search(a, c, n), n && g && (n.enrich = g);
}
}
- D = q && q.length;
+ D = r && r.length;
if (m && D) {
n = [];
w = 0;
@@ -950,8 +1000,8 @@ function W(a, c, b, e, d, f, g, h) {
}
}
if (w) {
- q = ua(q, n);
- D = q.length;
+ r = ua(r, n);
+ D = r.length;
if (!D && !k) {
return d;
}
@@ -959,31 +1009,31 @@ function W(a, c, b, e, d, f, g, h) {
}
}
if (D) {
- f[r] = C, d.push(q), r++;
+ f[q] = C, d.push(r), q++;
} else if (1 === l.length) {
return d;
}
}
if (p) {
const v = this;
- return Promise.all(p).then(function(q) {
- return q.length ? v.search(a, c, b, q) : q;
+ return Promise.all(p).then(function(r) {
+ return r.length ? v.search(a, c, b, r) : r;
});
}
- if (!r) {
+ if (!q) {
return d;
}
if (t && (!g || !this.store)) {
return d[0];
}
p = [];
- for (let v = 0, q; v < f.length; v++) {
- q = d[v];
- g && q.length && !q[0].doc && q.length && (q = xa.call(this, q));
+ for (let v = 0, r; v < f.length; v++) {
+ r = d[v];
+ g && r.length && !r[0].doc && r.length && (r = xa.call(this, r));
if (t) {
- return q;
+ return r;
}
- d[v] = {field:f[v], result:q};
+ d[v] = {field:f[v], result:r};
}
return h ? ya(d, c) : d;
};
@@ -1032,12 +1082,12 @@ function xa(a) {
}
const c = a.document || a.doc || a;
var b;
- this.F = [];
+ this.C = [];
this.field = [];
- this.K = [];
- this.key = (b = c.key || c.id) && Y(b, this.K) || "id";
- this.h = (this.fastupdate = !!a.fastupdate) ? new Map() : new Set();
- this.B = (b = c.store || null) && !0 !== b && [];
+ this.I = [];
+ this.key = (b = c.key || c.id) && Y(b, this.I) || "id";
+ this.reg = (this.fastupdate = !!a.fastupdate) ? new Map() : new Set();
+ this.A = (b = c.store || null) && !0 !== b && [];
this.store = b && new Map();
this.cache = (b = a.cache || null) && new K(b);
this.async = a.cache = !1;
@@ -1045,13 +1095,13 @@ function xa(a) {
let e = c.index || c.field || c;
z(e) && (e = [e]);
for (let d = 0, f, g; d < e.length; d++) {
- f = e[d], z(f) || (g = f, f = f.field), g = E(g) ? Object.assign({}, a, g) : a, b.set(f, new N(g, this.h)), g.custom ? this.F[d] = g.custom : (this.F[d] = Y(f, this.K), g.filter && ("string" === typeof this.F[d] && (this.F[d] = new String(this.F[d])), this.F[d].I = g.filter)), this.field[d] = f;
+ f = e[d], z(f) || (g = f, f = f.field), g = E(g) ? Object.assign({}, a, g) : a, b.set(f, new N(g, this.reg)), g.custom ? this.C[d] = g.custom : (this.C[d] = Y(f, this.I), g.filter && ("string" === typeof this.C[d] && (this.C[d] = new String(this.C[d])), this.C[d].G = g.filter)), this.field[d] = f;
}
- if (this.B) {
+ if (this.A) {
a = c.store;
z(a) && (a = [a]);
for (let d = 0, f, g; d < a.length; d++) {
- f = a[d], g = f.field || f, f.custom ? (this.B[d] = f.custom, f.custom.U = g) : (this.B[d] = Y(g, this.K), f.filter && ("string" === typeof this.B[d] && (this.B[d] = new String(this.B[d])), this.B[d].I = f.filter));
+ f = a[d], g = f.field || f, f.custom ? (this.A[d] = f.custom, f.custom.S = g) : (this.A[d] = Y(g, this.I), f.filter && ("string" === typeof this.A[d] && (this.A[d] = new String(this.A[d])), this.A[d].G = f.filter));
}
}
this.index = b;
@@ -1059,16 +1109,16 @@ function xa(a) {
if (b = c.tag) {
if ("string" === typeof b && (b = [b]), b.length) {
this.tag = new Map();
- this.C = [];
- this.T = [];
+ this.B = [];
+ this.R = [];
for (let d = 0, f, g; d < b.length; d++) {
f = b[d];
g = f.field || f;
if (!g) {
throw Error("The tag field from the document descriptor is undefined.");
}
- f.custom ? this.C[d] = f.custom : (this.C[d] = Y(g, this.K), f.filter && ("string" === typeof this.C[d] && (this.C[d] = new String(this.C[d])), this.C[d].I = f.filter));
- this.T[d] = g;
+ f.custom ? this.B[d] = f.custom : (this.B[d] = Y(g, this.I), f.filter && ("string" === typeof this.B[d] && (this.B[d] = new String(this.B[d])), this.B[d].G = f.filter));
+ this.R[d] = g;
this.tag.set(g, new Map());
}
}
@@ -1095,7 +1145,7 @@ u.remove = function(a) {
for (var c of this.index.values()) {
c.remove(a, !0);
}
- if (this.h.has(a)) {
+ if (this.reg.has(a)) {
if (this.tag && !this.fastupdate) {
for (let b of this.tag.values()) {
for (let e of b) {
@@ -1106,7 +1156,7 @@ u.remove = function(a) {
}
}
this.store && this.store.delete(a);
- this.h.delete(a);
+ this.reg.delete(a);
}
this.cache && this.cache.remove(a);
return this;
@@ -1124,7 +1174,7 @@ u.clear = function() {
return this;
};
u.contain = function(a) {
- return this.h.has(a);
+ return this.reg.has(a);
};
u.cleanup = function() {
for (const a of this.index.values()) {
@@ -1156,7 +1206,7 @@ u.export = function(a, c, b, e, d, f) {
switch(d) {
case 1:
c = "tag";
- h = this.G;
+ h = this.D;
b = null;
break;
case 2:
@@ -1176,13 +1226,13 @@ u.import = function(a, c) {
if (c) {
switch(z(c) && (c = JSON.parse(c)), a) {
case "tag":
- this.G = c;
+ this.D = c;
break;
case "reg":
this.fastupdate = !1;
- this.h = c;
+ this.reg = c;
for (let e = 0, d; e < this.field.length; e++) {
- d = this.index[this.field[e]], d.h = c, d.fastupdate = !1;
+ d = this.index[this.field[e]], d.reg = c, d.fastupdate = !1;
}
break;
case "store":
diff --git a/dist/flexsearch.compact.min.js b/dist/flexsearch.compact.min.js
index 498cc83..4977752 100644
--- a/dist/flexsearch.compact.min.js
+++ b/dist/flexsearch.compact.min.js
@@ -15,35 +15,37 @@ function z(a){return"string"===typeof a}function E(a){return"object"===typeof a}
["\u0477","\u0475"],["\u04c2","\u0436"],["\u04d1","\u0430"],["\u04d3","\u0430"],["\u04d7","\u0435"],["\u04db","\u04d9"],["\u04dd","\u0436"],["\u04df","\u0437"],["\u04e3","\u0438"],["\u04e5","\u0438"],["\u04e7","\u043e"],["\u04eb","\u04e9"],["\u04ed","\u044d"],["\u04ef","\u0443"],["\u04f1","\u0443"],["\u04f3","\u0443"],["\u04f5","\u0447"]];const ca=/[^\p{L}\p{N}]+/u,da=/(\d{3})/g,ea=/(\D)(\d{3})/g,fa=/(\d{3})(\D)/g,H="".normalize&&/[\u0300-\u036f]/g;function I(a){if(!this)return new I(...arguments);for(let c=0;cthis.stemmer.get(l)),k=1);this.matcher&&
-1this.matcher.get(l)),k=1);g&&k&&(g.lengththis.R&&(this.J.clear(),this.G=this.G/1.1|0));g&&b.push(g)}this.finalize&&(b=this.finalize(b)||b);this.cache&&a.length<=this.A&&(this.H.set(a,b),this.H.size>this.R&&(this.H.clear(),this.A=this.A/1.1|0));return b};function ha(a){a.L=null;a.H.clear();a.J.clear()};function ia(a,c,b){a=("object"===typeof a?""+a.query:a).toLowerCase();let e=this.cache.get(a);if(!e){e=this.search(a,c,b);if(e.then){const d=this;e.then(function(f){d.cache.set(a,f);return f})}this.cache.set(a,e)}return e}function J(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.A=""}J.prototype.set=function(a,c){this.cache.set(this.A=a,c);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};
-J.prototype.get=function(a){const c=this.cache.get(a);c&&this.A!==a&&(this.cache.delete(a),this.cache.set(this.A=a,c));return c};J.prototype.remove=function(a){for(const c of this.cache){const b=c[0];c[1].includes(a)&&this.cache.delete(b)}};J.prototype.clear=function(){this.cache.clear();this.A=""};const ja={normalize:function(a){return a.toLowerCase()},dedupe:!1};const K=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]);const ka=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),la=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];const ma={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,"\u00df":2,d:3,t:3,l:4,m:5,n:5,r:6};const na=/[\x00-\x7F]+/g;const oa=/[\x00-\x7F]+/g;const pa=/[\x00-\x7F]+/g;var qa={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:ja,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:K},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:K,replacer:la,matcher:ka},LatinExtra:{normalize:!0,dedupe:!0,mapper:K,replacer:la.concat([/(?!^)[aeoy]/g,""]),matcher:ka},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(let b=0;bf;h--){g=n.substring(f,h);var k=this.score?this.score(c,n,p,g,f):N(t,e,p,d,f);O(this,m,g,k,a,b)}break}case "reverse":if(1<
-d){for(h=d-1;0g?0:1),e,p,h-1,k-1),B=this.bidirectional&&n>f;O(this,l,B?f:n,w,a,b,B?n:f)}}}}this.fastupdate||this.h.add(a)}}return this};
-function O(a,c,b,e,d,f,g){let h=g?a.D:a.map,k;c[b]&&g&&(k=c[b])[g]||(g?(c=k||(c[b]=y()),c[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):c[b]=1,(k=h.get(b))?h=k:h.set(b,h=[]),h=h[e]||(h[e]=[]),f&&h.includes(d)||(h.push(d),a.fastupdate&&((c=a.h.get(d))?c.push(h):a.h.set(d,[h]))))}function N(a,c,b,e,d){return b&&1c?c?a.slice(b,b+c):a.slice(b):a;let e=[];for(let d=0,f,g;d=g){b-=g;continue}bc&&(f=f.slice(0,c),g=f.length),e.push(f);else{if(g>=c)return g>c&&(f=f.slice(0,c)),f;e=[f]}c-=g;if(!c)break}return e.length?e=1c||d)b=b.slice(d,c+d)}e=b}return e};function R(a,c,b,e){return(a=S(this,a,c))&&a.length?Q(a,b,e):[]}
-function va(a,c,b,e,d,f,g){let h=[];if(a){e=Math.min(a.length,e);for(let k=0,l=0,m;k=d)))break;if(h.length){if(g)return Q(h,d,0);c.push(h);return}}return!b&&h}function S(a,c,b){let e;b&&(e=a.bidirectional&&c>b);a=b?(a=a.D.get(e?c:b))&&a.get(e?b:c):a.map.get(c);return a};M.prototype.remove=function(a,c){const b=this.h.size&&(this.fastupdate?this.h.get(a):this.h.has(a));if(b){if(this.fastupdate)for(let e=0,d;ed.length)d.pop();else{const f=d.indexOf(a);f===b.length-1?d.pop():d.splice(f,1)}}else T(this.map,a),this.depth&&T(this.D,a);c||this.h.delete(a)}this.cache&&this.cache.remove(a);return this};
-function T(a,c){let b=0;if(a.constructor===Array)for(let e=0,d,f;eb.add(a,c)):this.add(a,c)}return this.remove(a).add(a,c)};
-function U(a){let c=0;if(a.constructor===Array)for(let b=0,e;b{f=l}));let h,k;switch(d||(d=0)){case 0:h="reg";if(this.fastupdate){k=y();for(let l of this.h.keys())k[l]=1}else k=this.h;break;case 1:h="cfg";k={doc:0,opt:this.A?1:0};break;case 2:h="map";k=this.map;break;case 3:h="ctx";k=this.D;break;default:"undefined"===typeof b&&f&&f();return}ra(a,c||this,b,h,e,d,k,f);return g};
-u.import=function(a,c){if(c)switch(z(c)&&(c=JSON.parse(c)),a){case "cfg":this.A=!!c.opt;break;case "reg":this.fastupdate=!1;this.h=c;break;case "map":this.map=c;break;case "ctx":this.D=c}};ta(M.prototype);V.prototype.add=function(a,c,b){E(a)&&(c=a,a=F(c,this.key));if(c&&(a||0===a)){if(!b&&this.h.has(a))return this.update(a,c);for(let h=0,k;hthis.stemmer.get(l)),k=1);this.matcher&&
+1this.matcher.get(l)),k=1);g&&k&&(g.lengththis.O&&(this.H.clear(),this.D=this.D/1.1|0));g&&b.push(g)}this.finalize&&(b=this.finalize(b)||b);this.cache&&a.length<=this.h&&(this.F.set(a,b),this.F.size>this.O&&(this.F.clear(),this.h=this.h/1.1|0));return b};function ha(a){a.J=null;a.F.clear();a.H.clear()};function ia(a,c,b){a=("object"===typeof a?""+a.query:a).toLowerCase();let e=this.cache.get(a);if(!e){e=this.search(a,c,b);if(e.then){const d=this;e.then(function(f){d.cache.set(a,f);return f})}this.cache.set(a,e)}return e}function J(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}J.prototype.set=function(a,c){this.cache.set(this.h=a,c);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};
+J.prototype.get=function(a){const c=this.cache.get(a);c&&this.h!==a&&(this.cache.delete(a),this.cache.set(this.h=a,c));return c};J.prototype.remove=function(a){for(const c of this.cache){const b=c[0];c[1].includes(a)&&this.cache.delete(b)}};J.prototype.clear=function(){this.cache.clear();this.h=""};const ja={normalize:function(a){return a.toLowerCase()},dedupe:!1};const K=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]);const ka=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),la=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];const ma={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,"\u00df":2,d:3,t:3,l:4,m:5,n:5,r:6};const na=/[\x00-\x7F]+/g;const oa=/[\x00-\x7F]+/g;const pa=/[\x00-\x7F]+/g;var qa={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:ja,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:K},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:K,replacer:la,matcher:ka},LatinExtra:{normalize:!0,dedupe:!0,mapper:K,replacer:la.concat([/(?!^)[aeoy]/g,""]),matcher:ka},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(let b=0;bf;h--){g=n.substring(f,h);var k=this.score?this.score(c,n,p,g,f):N(t,e,p,d,f);O(this,m,g,k,a,b)}break}case "reverse":if(1<
+d){for(h=d-1;0g?0:1),e,p,h-1,k-1),B=this.bidirectional&&n>f;O(this,l,B?f:n,w,a,b,B?n:f)}}}}this.fastupdate||this.reg.add(a)}}return this};
+function O(a,c,b,e,d,f,g){let h=g?a.ctx:a.map,k;c[b]&&g&&(k=c[b])[g]||(g?(c=k||(c[b]=y()),c[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):c[b]=1,(k=h.get(b))?h=k:h.set(b,h=[]),h=h[e]||(h[e]=[]),f&&h.includes(d)||(h.push(d),a.fastupdate&&((c=a.reg.get(d))?c.push(h):a.reg.set(d,[h]))))}function N(a,c,b,e,d){return b&&1c?c?a.slice(b,b+c):a.slice(b):a;let e=[];for(let d=0,f,g;d=g){b-=g;continue}bc&&(f=f.slice(0,c),g=f.length),e.push(f);else{if(g>=c)return g>c&&(f=f.slice(0,c)),f;e=[f]}c-=g;if(!c)break}return e.length?e=1c||d)b=b.slice(d,c+d)}e=b}return e};function R(a,c,b,e){return(a=S(this,a,c))&&a.length?Q(a,b,e):[]}
+function va(a,c,b,e,d,f,g){let h=[];if(a){e=Math.min(a.length,e);for(let k=0,l=0,m;k=d)))break;if(h.length){if(g)return Q(h,d,0);c.push(h);return}}return!b&&h}function S(a,c,b){let e;b&&(e=a.bidirectional&&c>b);a=b?(a=a.ctx.get(e?c:b))&&a.get(e?b:c):a.map.get(c);return a};M.prototype.remove=function(a,c){const b=this.reg.size&&(this.fastupdate?this.reg.get(a):this.reg.has(a));if(b){if(this.fastupdate)for(let e=0,d;ed.length)d.pop();else{const f=d.indexOf(a);f===b.length-1?d.pop():d.splice(f,1)}}else T(this.map,a),this.depth&&T(this.ctx,a);c||this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
+function T(a,c){let b=0;if(a.constructor===Array)for(let e=0,d,f;eb.add(a,c)):this.add(a,c)}return this.remove(a).add(a,c)};
+function U(a){let c=0;if(a.constructor===Array)for(let b=0,e;b{f=l}));let h,k;switch(d||(d=0)){case 0:h="reg";if(this.fastupdate){k=y();for(let l of this.reg.keys())k[l]=1}else k=this.reg;break;case 1:h="cfg";k={doc:0,opt:this.h?1:0};break;case 2:h="map";k=this.map;break;case 3:h="ctx";k=this.ctx;break;default:"undefined"===typeof b&&f&&f();return}ra(a,c||this,b,h,e,d,k,f);return g};
+u.import=function(a,c){if(c)switch(z(c)&&(c=JSON.parse(c)),a){case "cfg":this.h=!!c.opt;break;case "reg":this.fastupdate=!1;this.reg=c;break;case "map":this.map=c;break;case "ctx":this.ctx=c}};
+u.serialize=function(a=!0){if(!this.reg.size)return"";let c="",b="";for(var e of this.reg.keys())b||(b=typeof e),c+=(c?",":"")+("string"===b?'"'+e+'"':e);c="index.reg=new Set(["+c+"]);";e="";for(var d of this.map.entries()){var f=d[0],g=d[1],h="";for(let m=0,q;mb||e)a=a.slice(e,e+b);d&&(a=xa.call(this,a));return a}}
-function xa(a){const c=Array(a.length);for(let b=0,e;b{f=k}));d||(d=0);e||(e=0);if(e{f=k}));d||(d=0);e||(e=0);if(e this.stemmer.get(h)), g = 1);
- this.matcher && 1 < d.length && (this.H || (this.H = new RegExp("(" + this.F + ")", "g")), d = d.replace(this.H, h => this.matcher.get(h)), g = 1);
- d && g && (d.length < this.minlength || this.filter && this.filter.has(d)) && (d = "");
- if (d && (this.mapper || this.dedupe && 1 < d.length)) {
- var e = "";
- for (let h = 0, k = "", n, l; h < d.length; h++) {
- n = d.charAt(h), n === k && this.dedupe || ((l = this.mapper && this.mapper.get(n)) || "" === l ? l === k && this.dedupe || !(k = l) || (e += l) : e += k = n);
+ this.stemmer && 2 < e.length && (this.G || (this.G = new RegExp("(?!^)(" + this.B + ")$")), e = e.replace(this.G, h => this.stemmer.get(h)), g = 1);
+ this.matcher && 1 < e.length && (this.F || (this.F = new RegExp("(" + this.C + ")", "g")), e = e.replace(this.F, h => this.matcher.get(h)), g = 1);
+ e && g && (e.length < this.minlength || this.filter && this.filter.has(e)) && (e = "");
+ if (e && (this.mapper || this.dedupe && 1 < e.length)) {
+ var d = "";
+ for (let h = 0, k = "", m, l; h < e.length; h++) {
+ m = e.charAt(h), m === k && this.dedupe || ((l = this.mapper && this.mapper.get(m)) || "" === l ? l === k && this.dedupe || !(k = l) || (d += l) : d += k = m);
}
- d = e;
+ e = d;
}
- if (d && this.replacer) {
- for (e = 0; d && e < this.replacer.length; e += 2) {
- d = d.replace(this.replacer[e], this.replacer[e + 1]);
+ if (e && this.replacer) {
+ for (d = 0; e && d < this.replacer.length; d += 2) {
+ e = e.replace(this.replacer[d], this.replacer[d + 1]);
}
}
- d && b.push(d);
+ e && b.push(e);
}
this.finalize && (b = this.finalize(b) || b);
return b;
@@ -183,10 +183,10 @@ const la = /[\x00-\x7F]+/g;
var ma = {LatinExact:{normalize:!1, dedupe:!1}, LatinDefault:K, LatinSimple:{normalize:!0, dedupe:!0}, LatinBalance:{normalize:!0, dedupe:!0, mapper:L}, LatinAdvanced:{normalize:!0, dedupe:!0, mapper:L, replacer:ha, matcher:M}, LatinExtra:{normalize:!0, dedupe:!0, mapper:L, replacer:ha.concat([/(?!^)[aeoy]/g, ""]), matcher:M}, LatinSoundex:{normalize:!0, dedupe:!1, include:{letter:!0}, finalize:function(a) {
for (let b = 0; b < a.length; b++) {
var c = a[b];
- let e = c.charAt(0), f = ia[e];
- for (let d = 1, g; d < c.length && (g = c.charAt(d), "h" === g || "w" === g || !(g = ia[g]) || g === f || (e += g, f = g, 4 !== e.length)); d++) {
+ let d = c.charAt(0), f = ia[d];
+ for (let e = 1, g; e < c.length && (g = c.charAt(e), "h" === g || "w" === g || !(g = ia[g]) || g === f || (d += g, f = g, 4 !== d.length)); e++) {
}
- a[b] = e;
+ a[b] = d;
}
}}, ArabicDefault:{rtl:!0, normalize:!1, dedupe:!0, prepare:function(a) {
return ("" + a).replace(ja, " ");
@@ -195,10 +195,10 @@ var ma = {LatinExact:{normalize:!1, dedupe:!1}, LatinDefault:K, LatinSimple:{nor
}}, CyrillicDefault:{normalize:!1, dedupe:!0, prepare:function(a) {
return ("" + a).replace(la, " ");
}}};
-function na(a, c, b, e, f, d, g, h) {
- (e = a(b ? b + "." + e : e, JSON.stringify(g))) && e.then ? e.then(function() {
- c.export(a, c, b, f, d + 1, h);
- }) : c.export(a, c, b, f, d + 1, h);
+function na(a, c, b, d, f, e, g, h) {
+ (d = a(b ? b + "." + d : d, JSON.stringify(g))) && d.then ? d.then(function() {
+ c.export(a, c, b, f, e + 1, h);
+ }) : c.export(a, c, b, f, e + 1, h);
}
;const oa = {memory:{resolution:1}, performance:{resolution:6, fastupdate:!0, context:{depth:1, resolution:3}}, match:{tokenize:"forward"}, score:{resolution:9, context:{depth:2, resolution:9}}};
function pa(a) {
@@ -212,36 +212,36 @@ function N(a) {
this[a + "Async"] = function() {
var c = arguments;
const b = c[c.length - 1];
- let e;
- "function" === typeof b && (e = b, delete c[c.length - 1]);
+ let d;
+ "function" === typeof b && (d = b, delete c[c.length - 1]);
this.async = !0;
c = this[a].apply(this, c);
this.async = !1;
- e && (c.then ? c.then(e) : e(c));
+ d && (c.then ? c.then(d) : d(c));
return c;
};
}
;y();
-O.prototype.add = function(a, c, b, e) {
+O.prototype.add = function(a, c, b, d) {
if (c && (a || 0 === a)) {
- if (!e && !b && this.h.has(a)) {
+ if (!d && !b && this.reg.has(a)) {
return this.update(a, c);
}
c = this.encoder.encode(c);
- if (e = c.length) {
- const n = y(), l = y(), r = this.depth, t = this.resolution;
- for (let p = 0; p < e; p++) {
- let m = c[this.rtl ? e - 1 - p : p];
- var f = m.length;
- if (f && (r || !l[m])) {
- var d = this.score ? this.score(c, m, p, null, 0) : P(t, e, p), g = "";
+ if (d = c.length) {
+ const m = y(), l = y(), r = this.depth, t = this.resolution;
+ for (let p = 0; p < d; p++) {
+ let n = c[this.rtl ? d - 1 - p : p];
+ var f = n.length;
+ if (f && (r || !l[n])) {
+ var e = this.score ? this.score(c, n, p, null, 0) : P(t, d, p), g = "";
switch(this.tokenize) {
case "full":
if (2 < f) {
- for (d = 0; d < f; d++) {
- for (var h = f; h > d; h--) {
- g = m.substring(d, h);
- var k = this.score ? this.score(c, m, p, g, d) : P(t, e, p, f, d);
+ for (e = 0; e < f; e++) {
+ for (var h = f; h > e; h--) {
+ g = n.substring(e, h);
+ var k = this.score ? this.score(c, n, p, g, e) : P(t, d, p, f, e);
Q(this, l, g, k, a, b);
}
}
@@ -250,63 +250,63 @@ O.prototype.add = function(a, c, b, e) {
case "reverse":
if (1 < f) {
for (h = f - 1; 0 < h; h--) {
- g = m[h] + g, k = this.score ? this.score(c, m, p, g, h) : P(t, e, p, f, h), Q(this, l, g, k, a, b);
+ g = n[h] + g, k = this.score ? this.score(c, n, p, g, h) : P(t, d, p, f, h), Q(this, l, g, k, a, b);
}
g = "";
}
case "forward":
if (1 < f) {
for (h = 0; h < f; h++) {
- g += m[h], Q(this, l, g, d, a, b);
+ g += n[h], Q(this, l, g, e, a, b);
}
break;
}
default:
- if (Q(this, l, m, d, a, b), r && 1 < e && p < e - 1) {
- for (f = y(), g = this.K, d = m, h = Math.min(r + 1, e - p), f[d] = 1, k = 1; k < h; k++) {
- if ((m = c[this.rtl ? e - 1 - p - k : p + k]) && !f[m]) {
- f[m] = 1;
- const w = this.score ? this.score(c, d, p, m, k) : P(g + (e / 2 > g ? 0 : 1), e, p, h - 1, k - 1), B = this.bidirectional && m > d;
- Q(this, n, B ? d : m, w, a, b, B ? m : d);
+ if (Q(this, l, n, e, a, b), r && 1 < d && p < d - 1) {
+ for (f = y(), g = this.I, e = n, h = Math.min(r + 1, d - p), f[e] = 1, k = 1; k < h; k++) {
+ if ((n = c[this.rtl ? d - 1 - p - k : p + k]) && !f[n]) {
+ f[n] = 1;
+ const w = this.score ? this.score(c, e, p, n, k) : P(g + (d / 2 > g ? 0 : 1), d, p, h - 1, k - 1), B = this.bidirectional && n > e;
+ Q(this, m, B ? e : n, w, a, b, B ? n : e);
}
}
}
}
}
}
- this.fastupdate || this.h.add(a);
+ this.fastupdate || this.reg.add(a);
}
}
return this;
};
-function Q(a, c, b, e, f, d, g) {
- let h = g ? a.B : a.map, k;
- c[b] && g && (k = c[b])[g] || (g ? (c = k || (c[b] = y()), c[g] = 1, (k = h.get(g)) ? h = k : h.set(g, h = new Map())) : c[b] = 1, (k = h.get(b)) ? h = k : h.set(b, h = []), h = h[e] || (h[e] = []), d && h.includes(f) || (h.push(f), a.fastupdate && ((c = a.h.get(f)) ? c.push(h) : a.h.set(f, [h]))));
+function Q(a, c, b, d, f, e, g) {
+ let h = g ? a.ctx : a.map, k;
+ c[b] && g && (k = c[b])[g] || (g ? (c = k || (c[b] = y()), c[g] = 1, (k = h.get(g)) ? h = k : h.set(g, h = new Map())) : c[b] = 1, (k = h.get(b)) ? h = k : h.set(b, h = []), h = h[d] || (h[d] = []), e && h.includes(f) || (h.push(f), a.fastupdate && ((c = a.reg.get(f)) ? c.push(h) : a.reg.set(f, [h]))));
}
-function P(a, c, b, e, f) {
- return b && 1 < a ? c + (e || 0) <= a ? b + (f || 0) : (a - 1) / (c + (e || 0)) * (b + (f || 0)) + 1 | 0 : 0;
+function P(a, c, b, d, f) {
+ return b && 1 < a ? c + (d || 0) <= a ? b + (f || 0) : (a - 1) / (c + (d || 0)) * (b + (f || 0)) + 1 | 0 : 0;
}
;function R(a, c, b) {
if (1 === a.length) {
return a = a[0], a = b || a.length > c ? c ? a.slice(b, b + c) : a.slice(b) : a;
}
- let e = [];
- for (let f = 0, d, g; f < a.length; f++) {
- if ((d = a[f]) && (g = d.length)) {
+ let d = [];
+ for (let f = 0, e, g; f < a.length; f++) {
+ if ((e = a[f]) && (g = e.length)) {
if (b) {
if (b >= g) {
b -= g;
continue;
}
- b < g && (d = c ? d.slice(b, b + c) : d.slice(b), g = d.length, b = 0);
+ b < g && (e = c ? e.slice(b, b + c) : e.slice(b), g = e.length, b = 0);
}
- if (e.length) {
- g > c && (d = d.slice(0, c), g = d.length), e.push(d);
+ if (d.length) {
+ g > c && (e = e.slice(0, c), g = e.length), d.push(e);
} else {
if (g >= c) {
- return g > c && (d = d.slice(0, c)), d;
+ return g > c && (e = e.slice(0, c)), e;
}
- e = [d];
+ d = [e];
}
c -= g;
if (!c) {
@@ -314,29 +314,29 @@ function P(a, c, b, e, f) {
}
}
}
- return e.length ? e = 1 < e.length ? [].concat.apply([], e) : e[0] : e;
+ return d.length ? d = 1 < d.length ? [].concat.apply([], d) : d[0] : d;
}
;function qa(a, c) {
- const b = y(), e = y(), f = [];
- for (let d = 0; d < a.length; d++) {
- b[a[d]] = 1;
+ const b = y(), d = y(), f = [];
+ for (let e = 0; e < a.length; e++) {
+ b[a[e]] = 1;
}
- for (let d = 0, g; d < c.length; d++) {
- g = c[d];
+ for (let e = 0, g; e < c.length; e++) {
+ g = c[e];
for (let h = 0, k; h < g.length; h++) {
- k = g[h], b[k] && !e[k] && (e[k] = 1, f.push(k));
+ k = g[h], b[k] && !d[k] && (d[k] = 1, f.push(k));
}
}
return f;
}
;O.prototype.search = function(a, c, b) {
b || (!c && E(a) ? (b = a, a = "") : E(c) && (b = c, c = 0));
- var e = [], f = 0;
+ var d = [], f = 0;
if (b) {
a = b.query || a;
c = b.limit || c;
f = b.offset || 0;
- var d = b.context;
+ var e = b.context;
var g = b.suggest;
}
a = this.encoder.encode(a);
@@ -345,79 +345,79 @@ function P(a, c, b, e, f) {
if (1 === b) {
return S.call(this, a[0], "", c, f);
}
- d = this.depth && !1 !== d;
- if (2 === b && d && !g) {
+ e = this.depth && !1 !== e;
+ if (2 === b && e && !g) {
return S.call(this, a[0], a[1], c, f);
}
var h = 0, k = 0;
if (1 < b) {
- var n = y();
+ var m = y();
const r = [];
for (let t = 0, p; t < b; t++) {
- if ((p = a[t]) && !n[p]) {
+ if ((p = a[t]) && !m[p]) {
if (g || T(this, p)) {
- r.push(p), n[p] = 1;
+ r.push(p), m[p] = 1;
} else {
- return e;
+ return d;
}
- const m = p.length;
- h = Math.max(h, m);
- k = k ? Math.min(k, m) : m;
+ const n = p.length;
+ h = Math.max(h, n);
+ k = k ? Math.min(k, n) : n;
}
}
a = r;
b = a.length;
}
if (!b) {
- return e;
+ return d;
}
- n = 0;
+ m = 0;
if (1 === b) {
return S.call(this, a[0], "", c, f);
}
- if (2 === b && d && !g) {
+ if (2 === b && e && !g) {
return S.call(this, a[0], a[1], c, f);
}
if (1 < b) {
- if (d) {
+ if (e) {
var l = a[0];
- n = 1;
+ m = 1;
} else {
9 < h && 3 < h / k && a.sort(aa);
}
}
- for (let r, t; n < b; n++) {
- t = a[n];
- l ? (r = T(this, t, l), r = ra(r, e, g, this.K, c, f, 2 === b), g && !1 === r && e.length || (l = t)) : (r = T(this, t), r = ra(r, e, g, this.resolution, c, f, 1 === b));
+ for (let r, t; m < b; m++) {
+ t = a[m];
+ l ? (r = T(this, t, l), r = ra(r, d, g, this.I, c, f, 2 === b), g && !1 === r && d.length || (l = t)) : (r = T(this, t), r = ra(r, d, g, this.resolution, c, f, 1 === b));
if (r) {
return r;
}
- if (g && n === b - 1) {
- d = e.length;
- if (!d) {
+ if (g && m === b - 1) {
+ e = d.length;
+ if (!e) {
if (l) {
l = "";
- n = -1;
+ m = -1;
continue;
}
- return e;
+ return d;
}
- if (1 === d) {
- return R(e[0], c, f);
+ if (1 === e) {
+ return R(d[0], c, f);
}
}
}
a: {
- a = e;
- e = this.resolution;
+ a = d;
+ d = this.resolution;
l = a.length;
b = [];
- d = y();
- for (let r = 0, t, p, m, w; r < e; r++) {
+ e = y();
+ for (let r = 0, t, p, n, w; r < d; r++) {
for (k = 0; k < l; k++) {
- if (m = a[k], r < m.length && (t = m[r])) {
- for (n = 0; n < t.length; n++) {
- p = t[n], (h = d[p]) ? d[p]++ : (h = 0, d[p] = 1), w = b[h] || (b[h] = []), w.push(p);
+ if (n = a[k], r < n.length && (t = n[r])) {
+ for (m = 0; m < t.length; m++) {
+ p = t[m], (h = e[p]) ? e[p]++ : (h = 0, e[p] = 1), w = b[h] || (b[h] = []), w.push(p);
}
}
}
@@ -427,12 +427,12 @@ function P(a, c, b, e, f) {
if (1 < b.length) {
g = b;
a = [];
- e = y();
- d = g.length;
- for (k = 0; k < d; k++) {
- for (l = g[k], h = l.length, n = 0; n < h; n++) {
- if (b = l[n], !e[b]) {
- if (e[b] = 1, f) {
+ d = y();
+ e = g.length;
+ for (k = 0; k < e; k++) {
+ for (l = g[k], h = l.length, m = 0; m < h; m++) {
+ if (b = l[m], !d[b]) {
+ if (d[b] = 1, f) {
f--;
} else {
if (a.push(b), a.length === c) {
@@ -449,7 +449,7 @@ function P(a, c, b, e, f) {
b = c;
} else {
if (a < l) {
- e = [];
+ d = [];
break a;
}
b = b[a - 1];
@@ -458,20 +458,20 @@ function P(a, c, b, e, f) {
}
}
}
- e = b;
+ d = b;
}
- return e;
+ return d;
};
-function S(a, c, b, e) {
- return (a = T(this, a, c)) && a.length ? R(a, b, e) : [];
+function S(a, c, b, d) {
+ return (a = T(this, a, c)) && a.length ? R(a, b, d) : [];
}
-function ra(a, c, b, e, f, d, g) {
+function ra(a, c, b, d, f, e, g) {
let h = [];
if (a) {
- e = Math.min(a.length, e);
- for (let k = 0, n = 0, l; k < e; k++) {
+ d = Math.min(a.length, d);
+ for (let k = 0, m = 0, l; k < d; k++) {
if (l = a[k]) {
- if (d && l && g && (l.length <= d ? (d -= l.length, l = null) : (l = l.slice(d), d = 0)), l && (h[k] = l, g && (n += l.length, n >= f))) {
+ if (e && l && g && (l.length <= e ? (e -= l.length, l = null) : (l = l.slice(e), e = 0)), l && (h[k] = l, g && (m += l.length, m >= f))) {
break;
}
}
@@ -487,39 +487,39 @@ function ra(a, c, b, e, f, d, g) {
return !b && h;
}
function T(a, c, b) {
- let e;
- b && (e = a.bidirectional && c > b);
- a = b ? (a = a.B.get(e ? c : b)) && a.get(e ? b : c) : a.map.get(c);
+ let d;
+ b && (d = a.bidirectional && c > b);
+ a = b ? (a = a.ctx.get(d ? c : b)) && a.get(d ? b : c) : a.map.get(c);
return a;
}
;O.prototype.remove = function(a, c) {
- const b = this.h.size && (this.fastupdate ? this.h.get(a) : this.h.has(a));
+ const b = this.reg.size && (this.fastupdate ? this.reg.get(a) : this.reg.has(a));
if (b) {
if (this.fastupdate) {
- for (let e = 0, f; e < b.length; e++) {
- if (f = b[e]) {
+ for (let d = 0, f; d < b.length; d++) {
+ if (f = b[d]) {
if (2 > f.length) {
f.pop();
} else {
- const d = f.indexOf(a);
- d === b.length - 1 ? f.pop() : f.splice(d, 1);
+ const e = f.indexOf(a);
+ e === b.length - 1 ? f.pop() : f.splice(e, 1);
}
}
}
} else {
- U(this.map, a), this.depth && U(this.B, a);
+ U(this.map, a), this.depth && U(this.ctx, a);
}
- c || this.h.delete(a);
+ c || this.reg.delete(a);
}
return this;
};
function U(a, c) {
let b = 0;
if (a.constructor === Array) {
- for (let e = 0, f, d; e < a.length; e++) {
- if ((f = a[e]) && f.length) {
- if (d = f.indexOf(c), 0 <= d) {
- 1 < f.length ? (f.splice(d, 1), b++) : delete a[e];
+ for (let d = 0, f, e; d < a.length; d++) {
+ if ((f = a[d]) && f.length) {
+ if (e = f.indexOf(c), 0 <= e) {
+ 1 < f.length ? (f.splice(e, 1), b++) : delete a[d];
break;
} else {
b++;
@@ -527,9 +527,9 @@ function U(a, c) {
}
}
} else {
- for (let e of a) {
- const f = e[0], d = U(e[1], c);
- d ? b += d : a.delete(f);
+ for (let d of a) {
+ const f = d[0], e = U(d[1], c);
+ e ? b += e : a.delete(f);
}
}
return b;
@@ -545,8 +545,8 @@ function U(a, c) {
a = {};
}
b = a.context || {};
- const e = a.encode || a.encoder || K;
- this.encoder = e.encode ? e : "object" === typeof e ? new J(e) : {encode:e};
+ const d = a.encode || a.encoder || K;
+ this.encoder = d.encode ? d : "object" === typeof d ? new J(d) : {encode:d};
let f;
this.resolution = a.resolution || 9;
this.tokenize = f = a.tokenize || "strict";
@@ -555,57 +555,57 @@ function U(a, c) {
this.fastupdate = !!a.fastupdate;
this.score = a.score || null;
this.map = new Map();
- this.B = new Map();
- this.h = c || (this.fastupdate ? new Map() : new Set());
- this.K = b.resolution || 1;
- this.rtl = e.rtl || a.rtl || !1;
+ this.ctx = new Map();
+ this.reg = c || (this.fastupdate ? new Map() : new Set());
+ this.I = b.resolution || 1;
+ this.rtl = d.rtl || a.rtl || !1;
}
-v = O.prototype;
-v.clear = function() {
+u = O.prototype;
+u.clear = function() {
this.map.clear();
- this.B.clear();
- this.h.clear();
+ this.ctx.clear();
+ this.reg.clear();
return this;
};
-v.append = function(a, c) {
+u.append = function(a, c) {
return this.add(a, c, !0);
};
-v.contain = function(a) {
- return this.h.has(a);
+u.contain = function(a) {
+ return this.reg.has(a);
};
-v.update = function(a, c) {
+u.update = function(a, c) {
if (this.async) {
- const b = this, e = this.remove(a);
- return e.then ? e.then(() => b.add(a, c)) : this.add(a, c);
+ const b = this, d = this.remove(a);
+ return d.then ? d.then(() => b.add(a, c)) : this.add(a, c);
}
return this.remove(a).add(a, c);
};
function V(a) {
let c = 0;
if (a.constructor === Array) {
- for (let b = 0, e; b < a.length; b++) {
- (e = a[b]) && (c += e.length);
+ for (let b = 0, d; b < a.length; b++) {
+ (d = a[b]) && (c += d.length);
}
} else {
for (const b of a) {
- const e = b[0], f = V(b[1]);
- f ? c += f : a.delete(e);
+ const d = b[0], f = V(b[1]);
+ f ? c += f : a.delete(d);
}
}
return c;
}
-v.cleanup = function() {
+u.cleanup = function() {
if (!this.fastupdate) {
return console.info('Cleanup the index isn\'t required when not using "fastupdate".'), this;
}
V(this.map);
- this.depth && V(this.B);
+ this.depth && V(this.ctx);
return this;
};
-v.export = function(a, c, b, e, f, d) {
+u.export = function(a, c, b, d, f, e) {
let g = !0;
- "undefined" === typeof d && (g = new Promise(n => {
- d = n;
+ "undefined" === typeof e && (g = new Promise(m => {
+ e = m;
}));
let h, k;
switch(f || (f = 0)) {
@@ -613,16 +613,16 @@ v.export = function(a, c, b, e, f, d) {
h = "reg";
if (this.fastupdate) {
k = y();
- for (let n of this.h.keys()) {
- k[n] = 1;
+ for (let m of this.reg.keys()) {
+ k[m] = 1;
}
} else {
- k = this.h;
+ k = this.reg;
}
break;
case 1:
h = "cfg";
- k = {doc:0, opt:this.F ? 1 : 0};
+ k = {doc:0, opt:this.C ? 1 : 0};
break;
case 2:
h = "map";
@@ -630,59 +630,109 @@ v.export = function(a, c, b, e, f, d) {
break;
case 3:
h = "ctx";
- k = this.B;
+ k = this.ctx;
break;
default:
- "undefined" === typeof b && d && d();
+ "undefined" === typeof b && e && e();
return;
}
- na(a, c || this, b, h, e, f, k, d);
+ na(a, c || this, b, h, d, f, k, e);
return g;
};
-v.import = function(a, c) {
+u.import = function(a, c) {
if (c) {
switch(z(c) && (c = JSON.parse(c)), a) {
case "cfg":
- this.F = !!c.opt;
+ this.C = !!c.opt;
break;
case "reg":
this.fastupdate = !1;
- this.h = c;
+ this.reg = c;
break;
case "map":
this.map = c;
break;
case "ctx":
- this.B = c;
+ this.ctx = c;
}
}
};
+u.serialize = function(a = !0) {
+ if (!this.reg.size) {
+ return "";
+ }
+ let c = "", b = "";
+ for (var d of this.reg.keys()) {
+ b || (b = typeof d), c += (c ? "," : "") + ("string" === b ? '"' + d + '"' : d);
+ }
+ c = "index.reg=new Set([" + c + "]);";
+ d = "";
+ for (var f of this.map.entries()) {
+ var e = f[0], g = f[1], h = "";
+ for (let l = 0, r; l < g.length; l++) {
+ r = g[l] || [""];
+ var k = "";
+ for (var m = 0; m < r.length; m++) {
+ k += (k ? "," : "") + ("string" === b ? '"' + r[m] + '"' : r[m]);
+ }
+ k = "[" + k + "]";
+ h += (h ? "," : "") + k;
+ }
+ h = '["' + e + '",[' + h + "]]";
+ d += (d ? "," : "") + h;
+ }
+ d = "index.map=new Map([" + d + "]);";
+ f = "";
+ for (const l of this.ctx.entries()) {
+ e = l[0];
+ g = l[1];
+ for (const r of g.entries()) {
+ g = r[0];
+ h = r[1];
+ k = "";
+ for (let t = 0, p; t < h.length; t++) {
+ p = h[t] || [""];
+ m = "";
+ for (let n = 0; n < p.length; n++) {
+ m += (m ? "," : "") + ("string" === b ? '"' + p[n] + '"' : p[n]);
+ }
+ m = "[" + m + "]";
+ k += (k ? "," : "") + m;
+ }
+ k = 'new Map([["' + g + '",[' + k + "]]])";
+ k = '["' + e + '",' + k + "]";
+ f += (f ? "," : "") + k;
+ }
+ }
+ f = "index.ctx=new Map([" + f + "]);";
+ return a ? "function inject(index){" + c + d + f + "}" : c + d + f;
+};
pa(O.prototype);
W.prototype.add = function(a, c, b) {
E(a) && (c = a, a = F(c, this.key));
if (c && (a || 0 === a)) {
- if (!b && this.h.has(a)) {
+ if (!b && this.reg.has(a)) {
return this.update(a, c);
}
- for (let f = 0, d; f < this.field.length; f++) {
- d = this.C[f];
+ for (let f = 0, e; f < this.field.length; f++) {
+ e = this.A[f];
const g = this.index.get(this.field[f]);
- if ("function" === typeof d) {
- var e = d(c);
- e && g.add(a, e, !1, !0);
+ if ("function" === typeof e) {
+ var d = e(c);
+ d && g.add(a, d, !1, !0);
} else {
- if (e = d.J, !e || e(c)) {
- d.constructor === String ? d = ["" + d] : z(d) && (d = [d]), X(c, d, this.G, 0, g, a, d[0], b);
+ if (d = e.H, !d || d(c)) {
+ e.constructor === String ? e = ["" + e] : z(e) && (e = [e]), X(c, e, this.D, 0, g, a, e[0], b);
}
}
}
if (this.store && (!b || !this.store.has(a))) {
let f;
- if (this.A) {
+ if (this.h) {
f = y();
- for (let d = 0, g; d < this.A.length; d++) {
- g = this.A[d];
- if ((b = g.J) && !b(c)) {
+ for (let e = 0, g; e < this.h.length; e++) {
+ g = this.h[e];
+ if ((b = g.H) && !b(c)) {
continue;
}
let h;
@@ -691,7 +741,7 @@ W.prototype.add = function(a, c, b) {
if (!h) {
continue;
}
- g = [g.L];
+ g = [g.J];
} else if (z(g) || g.constructor === String) {
f[g] = c[g];
continue;
@@ -704,56 +754,56 @@ W.prototype.add = function(a, c, b) {
}
return this;
};
-function Y(a, c, b, e, f, d) {
+function Y(a, c, b, d, f, e) {
a = a[f];
- if (e === b.length - 1) {
- c[f] = d || a;
+ if (d === b.length - 1) {
+ c[f] = e || a;
} else if (a) {
if (a.constructor === Array) {
for (c = c[f] = Array(a.length), f = 0; f < a.length; f++) {
- Y(a, c, b, e, f);
+ Y(a, c, b, d, f);
}
} else {
- c = c[f] || (c[f] = y()), f = b[++e], Y(a, c, b, e, f);
+ c = c[f] || (c[f] = y()), f = b[++d], Y(a, c, b, d, f);
}
}
}
-function X(a, c, b, e, f, d, g, h) {
+function X(a, c, b, d, f, e, g, h) {
if (a = a[g]) {
- if (e === c.length - 1) {
+ if (d === c.length - 1) {
if (a.constructor === Array) {
- if (b[e]) {
+ if (b[d]) {
for (c = 0; c < a.length; c++) {
- f.add(d, a[c], !0, !0);
+ f.add(e, a[c], !0, !0);
}
return;
}
a = a.join(" ");
}
- f.add(d, a, h, !0);
+ f.add(e, a, h, !0);
} else {
if (a.constructor === Array) {
for (g = 0; g < a.length; g++) {
- X(a, c, b, e, f, d, g, h);
+ X(a, c, b, d, f, e, g, h);
}
} else {
- g = c[++e], X(a, c, b, e, f, d, g, h);
+ g = c[++d], X(a, c, b, d, f, e, g, h);
}
}
}
}
-;W.prototype.search = function(a, c, b, e) {
+;W.prototype.search = function(a, c, b, d) {
b || (!c && E(a) ? (b = a, a = "") : E(c) && (b = c, c = 0));
let f = [];
- var d = [];
- let g, h, k, n, l;
+ var e = [];
+ let g, h, k, m, l;
let r = 0;
if (b) {
b.constructor === Array && (b = {index:b});
a = b.query || a;
var t = b.pluck;
h = b.merge;
- n = t || b.field || b.index;
+ m = t || b.field || b.index;
l = !1;
g = this.store && b.enrich;
k = b.suggest;
@@ -762,9 +812,9 @@ function X(a, c, b, e, f, d, g, h) {
c || (c = 100);
if (l) {
l.constructor !== Array && (l = [l]);
- var m = [];
- for (let u = 0, q; u < l.length; u++) {
- q = l[u];
+ var n = [];
+ for (let v = 0, q; v < l.length; v++) {
+ q = l[v];
if (z(q)) {
throw Error("A tag option can't be a string, instead it needs a { field: tag } format.");
}
@@ -772,65 +822,65 @@ function X(a, c, b, e, f, d, g, h) {
var w = q.tag;
if (w.constructor === Array) {
for (var B = 0; B < w.length; B++) {
- m.push(q.field, w[B]);
+ n.push(q.field, w[B]);
}
} else {
- m.push(q.field, w);
+ n.push(q.field, w);
}
} else {
w = Object.keys(q);
for (let C = 0, D, A; C < w.length; C++) {
if (D = w[C], A = q[D], A.constructor === Array) {
for (B = 0; B < A.length; B++) {
- m.push(D, A[B]);
+ n.push(D, A[B]);
}
} else {
- m.push(D, A);
+ n.push(D, A);
}
}
}
}
- if (!m.length) {
+ if (!n.length) {
throw Error("Your tag definition within the search options is probably wrong. No valid tags found.");
}
- l = m;
+ l = n;
if (!a) {
- e = [];
- if (m.length) {
- for (d = 0; d < m.length; d += 2) {
- t = sa.call(this, m[d], m[d + 1], c, p, g), f.push({field:m[d], tag:m[d + 1], result:t});
+ d = [];
+ if (n.length) {
+ for (e = 0; e < n.length; e += 2) {
+ t = sa.call(this, n[e], n[e + 1], c, p, g), f.push({field:n[e], tag:n[e + 1], result:t});
}
}
- return e.length ? Promise.all(e).then(function(u) {
- for (let q = 0; q < u.length; q++) {
- f[q].result = u[q];
+ return d.length ? Promise.all(d).then(function(v) {
+ for (let q = 0; q < v.length; q++) {
+ f[q].result = v[q];
}
return f;
}) : f;
}
}
- z(n) && (n = [n]);
+ z(m) && (m = [m]);
}
- n || (n = this.field);
- p = !e && (this.worker || this.async) && [];
- for (let u = 0, q, C, D; u < n.length; u++) {
- C = n[u];
+ m || (m = this.field);
+ p = !d && (this.worker || this.async) && [];
+ for (let v = 0, q, C, D; v < m.length; v++) {
+ C = m[v];
let A;
z(C) || (A = C, C = A.field, a = A.query || a, c = A.limit || c, k = A.suggest || k);
- if (e) {
- q = e[u];
+ if (d) {
+ q = d[v];
} else {
- if (m = A || b, w = this.index.get(C), l && (m.enrich = !1), p) {
- p[u] = w.searchAsync(a, c, m);
- m && g && (m.enrich = g);
+ if (n = A || b, w = this.index.get(C), l && (n.enrich = !1), p) {
+ p[v] = w.searchAsync(a, c, n);
+ n && g && (n.enrich = g);
continue;
} else {
- q = w.search(a, c, m), m && g && (m.enrich = g);
+ q = w.search(a, c, n), n && g && (n.enrich = g);
}
}
D = q && q.length;
if (l && D) {
- m = [];
+ n = [];
w = 0;
for (let G = 0, H, ua; G < l.length; G += 2) {
H = this.tag.get(l[G]);
@@ -842,13 +892,13 @@ function X(a, c, b, e, f, d, g, h) {
}
}
if (ua = (H = H && H.get(l[G + 1])) && H.length) {
- w++, m.push(H);
+ w++, n.push(H);
} else if (!k) {
return f;
}
}
if (w) {
- q = qa(q, m);
+ q = qa(q, n);
D = q.length;
if (!D && !k) {
return f;
@@ -857,15 +907,15 @@ function X(a, c, b, e, f, d, g, h) {
}
}
if (D) {
- d[r] = C, f.push(q), r++;
- } else if (1 === n.length) {
+ e[r] = C, f.push(q), r++;
+ } else if (1 === m.length) {
return f;
}
}
if (p) {
- const u = this;
+ const v = this;
return Promise.all(p).then(function(q) {
- return q.length ? u.search(a, c, b, q) : q;
+ return q.length ? v.search(a, c, b, q) : q;
});
}
if (!r) {
@@ -875,52 +925,52 @@ function X(a, c, b, e, f, d, g, h) {
return f[0];
}
p = [];
- for (let u = 0, q; u < d.length; u++) {
- q = f[u];
+ for (let v = 0, q; v < e.length; v++) {
+ q = f[v];
g && q.length && !q[0].doc && q.length && (q = ta.call(this, q));
if (t) {
return q;
}
- f[u] = {field:d[u], result:q};
+ f[v] = {field:e[v], result:q};
}
return h ? va(f, c) : f;
};
function va(a, c) {
- const b = [], e = y();
- for (let f = 0, d, g; f < a.length; f++) {
- d = a[f];
- g = d.result;
- for (let h = 0, k, n, l; h < g.length; h++) {
- if (n = g[h], k = n.id, l = e[k]) {
- l.push(d.field);
+ const b = [], d = y();
+ for (let f = 0, e, g; f < a.length; f++) {
+ e = a[f];
+ g = e.result;
+ for (let h = 0, k, m, l; h < g.length; h++) {
+ if (m = g[h], k = m.id, l = d[k]) {
+ l.push(e.field);
} else {
if (b.length === c) {
return b;
}
- n.field = e[k] = [d.field];
- b.push(n);
+ m.field = d[k] = [e.field];
+ b.push(m);
}
}
}
return b;
}
-function sa(a, c, b, e, f) {
- let d = this.tag.get(a);
- if (!d) {
+function sa(a, c, b, d, f) {
+ let e = this.tag.get(a);
+ if (!e) {
return console.warn("Tag '" + a + "' was not found"), [];
}
- if ((a = (d = d && d.get(c)) && d.length - e) && 0 < a) {
- if (a > b || e) {
- d = d.slice(e, e + b);
+ if ((a = (e = e && e.get(c)) && e.length - d) && 0 < a) {
+ if (a > b || d) {
+ e = e.slice(d, d + b);
}
- f && (d = ta.call(this, d));
- return d;
+ f && (e = ta.call(this, e));
+ return e;
}
}
function ta(a) {
const c = Array(a.length);
- for (let b = 0, e; b < a.length; b++) {
- e = a[b], c[b] = {id:e, doc:this.store.get(e)};
+ for (let b = 0, d; b < a.length; b++) {
+ d = a[b], c[b] = {id:d, doc:this.store.get(d)};
}
return c;
}
@@ -930,93 +980,93 @@ function ta(a) {
}
const c = a.document || a.doc || a;
var b;
- this.C = [];
+ this.A = [];
this.field = [];
- this.G = [];
- this.key = (b = c.key || c.id) && Z(b, this.G) || "id";
- this.h = (this.fastupdate = !!a.fastupdate) ? new Map() : new Set();
- this.A = (b = c.store || null) && !0 !== b && [];
+ this.D = [];
+ this.key = (b = c.key || c.id) && Z(b, this.D) || "id";
+ this.reg = (this.fastupdate = !!a.fastupdate) ? new Map() : new Set();
+ this.h = (b = c.store || null) && !0 !== b && [];
this.store = b && new Map();
this.async = !1;
b = new Map();
- let e = c.index || c.field || c;
- z(e) && (e = [e]);
- for (let f = 0, d, g; f < e.length; f++) {
- d = e[f], z(d) || (g = d, d = d.field), g = E(g) ? Object.assign({}, a, g) : a, b.set(d, new O(g, this.h)), g.custom ? this.C[f] = g.custom : (this.C[f] = Z(d, this.G), g.filter && ("string" === typeof this.C[f] && (this.C[f] = new String(this.C[f])), this.C[f].J = g.filter)), this.field[f] = d;
+ let d = c.index || c.field || c;
+ z(d) && (d = [d]);
+ for (let f = 0, e, g; f < d.length; f++) {
+ e = d[f], z(e) || (g = e, e = e.field), g = E(g) ? Object.assign({}, a, g) : a, b.set(e, new O(g, this.reg)), g.custom ? this.A[f] = g.custom : (this.A[f] = Z(e, this.D), g.filter && ("string" === typeof this.A[f] && (this.A[f] = new String(this.A[f])), this.A[f].H = g.filter)), this.field[f] = e;
}
- if (this.A) {
+ if (this.h) {
a = c.store;
z(a) && (a = [a]);
- for (let f = 0, d, g; f < a.length; f++) {
- d = a[f], g = d.field || d, d.custom ? (this.A[f] = d.custom, d.custom.L = g) : (this.A[f] = Z(g, this.G), d.filter && ("string" === typeof this.A[f] && (this.A[f] = new String(this.A[f])), this.A[f].J = d.filter));
+ for (let f = 0, e, g; f < a.length; f++) {
+ e = a[f], g = e.field || e, e.custom ? (this.h[f] = e.custom, e.custom.J = g) : (this.h[f] = Z(g, this.D), e.filter && ("string" === typeof this.h[f] && (this.h[f] = new String(this.h[f])), this.h[f].H = e.filter));
}
}
this.index = b;
}
function Z(a, c) {
const b = a.split(":");
- let e = 0;
+ let d = 0;
for (let f = 0; f < b.length; f++) {
- a = b[f], "]" === a[a.length - 1] && (a = a.substring(0, a.length - 2)) && (c[e] = !0), a && (b[e++] = a);
+ a = b[f], "]" === a[a.length - 1] && (a = a.substring(0, a.length - 2)) && (c[d] = !0), a && (b[d++] = a);
}
- e < b.length && (b.length = e);
- return 1 < e ? b : b[0];
+ d < b.length && (b.length = d);
+ return 1 < d ? b : b[0];
}
-v = W.prototype;
-v.append = function(a, c) {
+u = W.prototype;
+u.append = function(a, c) {
return this.add(a, c, !0);
};
-v.update = function(a, c) {
+u.update = function(a, c) {
return this.remove(a).add(a, c);
};
-v.remove = function(a) {
+u.remove = function(a) {
E(a) && (a = F(a, this.key));
for (const c of this.index.values()) {
c.remove(a, !0);
}
- this.h.has(a) && (this.store && this.store.delete(a), this.h.delete(a));
+ this.reg.has(a) && (this.store && this.store.delete(a), this.reg.delete(a));
return this;
};
-v.clear = function() {
+u.clear = function() {
for (const a of this.index.values()) {
a.clear();
}
this.store && this.store.clear();
return this;
};
-v.contain = function(a) {
- return this.h.has(a);
+u.contain = function(a) {
+ return this.reg.has(a);
};
-v.cleanup = function() {
+u.cleanup = function() {
for (const a of this.index.values()) {
a.cleanup();
}
return this;
};
-v.get = function(a) {
+u.get = function(a) {
return this.store.get(a);
};
-v.set = function(a, c) {
+u.set = function(a, c) {
this.store.set(a, c);
return this;
};
-v.export = function(a, c, b, e, f, d) {
+u.export = function(a, c, b, d, f, e) {
let g;
- "undefined" === typeof d && (g = new Promise(k => {
- d = k;
+ "undefined" === typeof e && (g = new Promise(k => {
+ e = k;
}));
f || (f = 0);
- e || (e = 0);
- if (e < this.field.length) {
- b = this.field[e];
+ d || (d = 0);
+ if (d < this.field.length) {
+ b = this.field[d];
var h = this.index[b];
c = this;
- h.export(a, c, f ? b : "", e, f++, d) || (e++, c.export(a, c, b, e, 1, d));
+ h.export(a, c, f ? b : "", d, f++, e) || (d++, c.export(a, c, b, d, 1, e));
} else {
switch(f) {
case 1:
c = "tag";
- h = this.D;
+ h = this.B;
b = null;
break;
case 2:
@@ -1025,24 +1075,24 @@ v.export = function(a, c, b, e, f, d) {
b = null;
break;
default:
- d();
+ e();
return;
}
- na(a, this, b, c, e, f, h, d);
+ na(a, this, b, c, d, f, h, e);
}
return g;
};
-v.import = function(a, c) {
+u.import = function(a, c) {
if (c) {
switch(z(c) && (c = JSON.parse(c)), a) {
case "tag":
- this.D = c;
+ this.B = c;
break;
case "reg":
this.fastupdate = !1;
- this.h = c;
- for (let e = 0, f; e < this.field.length; e++) {
- f = this.index[this.field[e]], f.h = c, f.fastupdate = !1;
+ this.reg = c;
+ for (let d = 0, f; d < this.field.length; d++) {
+ f = this.index[this.field[d]], f.reg = c, f.fastupdate = !1;
}
break;
case "store":
diff --git a/dist/flexsearch.compact.module.min.js b/dist/flexsearch.compact.module.min.js
index 9ffb669..5b761ee 100644
--- a/dist/flexsearch.compact.module.min.js
+++ b/dist/flexsearch.compact.module.min.js
@@ -5,7 +5,7 @@
* Hosted by Nextapps GmbH
* https://github.com/nextapps-de/flexsearch
*/
-var v;function x(a,c,b){const d=typeof b,e=typeof a;if("undefined"!==d){if("undefined"!==e){if(b){if("function"===e&&d===e)return function(h){return a(b(h))};c=a.constructor;if(c===b.constructor){if(c===Array)return b.concat(a);if(c===Map){var f=new Map(b);for(var g of a)f.set(g[0],g[1]);return f}if(c===Set){g=new Set(b);for(f of a.values())g.add(f);return g}}}return a}return b}return"undefined"===e?c:a}function y(){return Object.create(null)}function aa(a,c){return c.length-a.length}
+var u;function x(a,c,b){const d=typeof b,e=typeof a;if("undefined"!==d){if("undefined"!==e){if(b){if("function"===e&&d===e)return function(h){return a(b(h))};c=a.constructor;if(c===b.constructor){if(c===Array)return b.concat(a);if(c===Map){var f=new Map(b);for(var g of a)f.set(g[0],g[1]);return f}if(c===Set){g=new Set(b);for(f of a.values())g.add(f);return g}}}return a}return b}return"undefined"===e?c:a}function y(){return Object.create(null)}function aa(a,c){return c.length-a.length}
function A(a){return"string"===typeof a}function E(a){return"object"===typeof a}function F(a,c){if(A(c))a=a[c];else for(let b=0;a&&bthis.stemmer.get(h)),g=1);this.matcher&&1this.matcher.get(h)),g=1);f&&g&&(f.lengthf;h--){g=m.substring(f,h);var k=this.score?this.score(c,m,p,g,f):P(t,d,p,e,f);Q(this,l,g,k,a,b)}break}case "reverse":if(1<
-e){for(h=e-1;0g?0:1),d,p,h-1,k-1),B=this.bidirectional&&m>f;Q(this,n,B?f:m,w,a,b,B?m:f)}}}}this.fastupdate||this.h.add(a)}}return this};
-function Q(a,c,b,d,e,f,g){let h=g?a.B:a.map,k;c[b]&&g&&(k=c[b])[g]||(g?(c=k||(c[b]=y()),c[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):c[b]=1,(k=h.get(b))?h=k:h.set(b,h=[]),h=h[d]||(h[d]=[]),f&&h.includes(e)||(h.push(e),a.fastupdate&&((c=a.h.get(e))?c.push(h):a.h.set(e,[h]))))}function P(a,c,b,d,e){return b&&1c?c?a.slice(b,b+c):a.slice(b):a;let d=[];for(let e=0,f,g;e=g){b-=g;continue}bc&&(f=f.slice(0,c),g=f.length),d.push(f);else{if(g>=c)return g>c&&(f=f.slice(0,c)),f;d=[f]}c-=g;if(!c)break}return d.length?d=1c||e)b=b.slice(e,c+e)}d=b}return d};function S(a,c,b,d){return(a=T(this,a,c))&&a.length?R(a,b,d):[]}
-function ra(a,c,b,d,e,f,g){let h=[];if(a){d=Math.min(a.length,d);for(let k=0,n=0,l;k=e)))break;if(h.length){if(g)return R(h,e,0);c.push(h);return}}return!b&&h}function T(a,c,b){let d;b&&(d=a.bidirectional&&c>b);a=b?(a=a.B.get(d?c:b))&&a.get(d?b:c):a.map.get(c);return a};N.prototype.remove=function(a,c){const b=this.h.size&&(this.fastupdate?this.h.get(a):this.h.has(a));if(b){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const f=e.indexOf(a);f===b.length-1?e.pop():e.splice(f,1)}}else U(this.map,a),this.depth&&U(this.B,a);c||this.h.delete(a)}return this};
-function U(a,c){let b=0;if(a.constructor===Array)for(let d=0,e,f;db.add(a,c)):this.add(a,c)}return this.remove(a).add(a,c)};
-function V(a){let c=0;if(a.constructor===Array)for(let b=0,d;b{f=n}));let h,k;switch(e||(e=0)){case 0:h="reg";if(this.fastupdate){k=y();for(let n of this.h.keys())k[n]=1}else k=this.h;break;case 1:h="cfg";k={doc:0,opt:this.F?1:0};break;case 2:h="map";k=this.map;break;case 3:h="ctx";k=this.B;break;default:"undefined"===typeof b&&f&&f();return}na(a,c||this,b,h,d,e,k,f);return g};
-v.import=function(a,c){if(c)switch(A(c)&&(c=JSON.parse(c)),a){case "cfg":this.F=!!c.opt;break;case "reg":this.fastupdate=!1;this.h=c;break;case "map":this.map=c;break;case "ctx":this.B=c}};pa(N.prototype);W.prototype.add=function(a,c,b){E(a)&&(c=a,a=F(c,this.key));if(c&&(a||0===a)){if(!b&&this.h.has(a))return this.update(a,c);for(let e=0,f;eb||d)a=a.slice(d,d+b);e&&(a=ta.call(this,a));return a}}
-function ta(a){const c=Array(a.length);for(let b=0,d;b{f=k}));e||(e=0);d||(d=0);if(dthis.stemmer.get(h)),g=1);this.matcher&&1this.matcher.get(h)),g=1);f&&g&&(f.lengthf;h--){g=n.substring(f,h);var k=this.score?this.score(c,n,p,g,f):P(t,d,p,e,f);Q(this,l,g,k,a,b)}break}case "reverse":if(1<
+e){for(h=e-1;0g?0:1),d,p,h-1,k-1),B=this.bidirectional&&n>f;Q(this,m,B?f:n,w,a,b,B?n:f)}}}}this.fastupdate||this.reg.add(a)}}return this};
+function Q(a,c,b,d,e,f,g){let h=g?a.ctx:a.map,k;c[b]&&g&&(k=c[b])[g]||(g?(c=k||(c[b]=y()),c[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):c[b]=1,(k=h.get(b))?h=k:h.set(b,h=[]),h=h[d]||(h[d]=[]),f&&h.includes(e)||(h.push(e),a.fastupdate&&((c=a.reg.get(e))?c.push(h):a.reg.set(e,[h]))))}function P(a,c,b,d,e){return b&&1c?c?a.slice(b,b+c):a.slice(b):a;let d=[];for(let e=0,f,g;e=g){b-=g;continue}bc&&(f=f.slice(0,c),g=f.length),d.push(f);else{if(g>=c)return g>c&&(f=f.slice(0,c)),f;d=[f]}c-=g;if(!c)break}return d.length?d=1c||e)b=b.slice(e,c+e)}d=b}return d};function S(a,c,b,d){return(a=T(this,a,c))&&a.length?R(a,b,d):[]}
+function ra(a,c,b,d,e,f,g){let h=[];if(a){d=Math.min(a.length,d);for(let k=0,m=0,l;k=e)))break;if(h.length){if(g)return R(h,e,0);c.push(h);return}}return!b&&h}function T(a,c,b){let d;b&&(d=a.bidirectional&&c>b);a=b?(a=a.ctx.get(d?c:b))&&a.get(d?b:c):a.map.get(c);return a};N.prototype.remove=function(a,c){const b=this.reg.size&&(this.fastupdate?this.reg.get(a):this.reg.has(a));if(b){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const f=e.indexOf(a);f===b.length-1?e.pop():e.splice(f,1)}}else U(this.map,a),this.depth&&U(this.ctx,a);c||this.reg.delete(a)}return this};
+function U(a,c){let b=0;if(a.constructor===Array)for(let d=0,e,f;db.add(a,c)):this.add(a,c)}return this.remove(a).add(a,c)};
+function V(a){let c=0;if(a.constructor===Array)for(let b=0,d;b{f=m}));let h,k;switch(e||(e=0)){case 0:h="reg";if(this.fastupdate){k=y();for(let m of this.reg.keys())k[m]=1}else k=this.reg;break;case 1:h="cfg";k={doc:0,opt:this.C?1:0};break;case 2:h="map";k=this.map;break;case 3:h="ctx";k=this.ctx;break;default:"undefined"===typeof b&&f&&f();return}na(a,c||this,b,h,d,e,k,f);return g};
+u.import=function(a,c){if(c)switch(A(c)&&(c=JSON.parse(c)),a){case "cfg":this.C=!!c.opt;break;case "reg":this.fastupdate=!1;this.reg=c;break;case "map":this.map=c;break;case "ctx":this.ctx=c}};
+u.serialize=function(a=!0){if(!this.reg.size)return"";let c="",b="";for(var d of this.reg.keys())b||(b=typeof d),c+=(c?",":"")+("string"===b?'"'+d+'"':d);c="index.reg=new Set(["+c+"]);";d="";for(var e of this.map.entries()){var f=e[0],g=e[1],h="";for(let l=0,r;lb||d)a=a.slice(d,d+b);e&&(a=ta.call(this,a));return a}}
+function ta(a){const c=Array(a.length);for(let b=0,d;b{f=k}));e||(e=0);d||(d=0);if(d this.L && (this.V.clear(), this.A = this.A / 1.1 | 0));
+ this.cache && h.length <= this.A && (this.T.set(h, f), this.T.size > this.J && (this.T.clear(), this.A = this.A / 1.1 | 0));
f && d.push(f);
}
}
}
}
this.finalize && (d = this.finalize(d) || d);
- this.cache && a.length <= this.h && (this.P.set(a, d), this.P.size > this.L && (this.P.clear(), this.h = this.h / 1.1 | 0));
+ this.cache && a.length <= this.h && (this.N.set(a, d), this.N.size > this.J && (this.N.clear(), this.h = this.h / 1.1 | 0));
return d;
};
function Ga(a) {
- a.X = null;
- a.P.clear();
- a.V.clear();
+ a.V = null;
+ a.N.clear();
+ a.T.clear();
}
;function Ha(a, b, c) {
a = ("object" === typeof a ? "" + a.query : a).toLowerCase();
@@ -1202,7 +1202,7 @@ function S(a) {
return new S(a);
}
this.index = K();
- this.C = [];
+ this.B = [];
this.size = 0;
32 < a ? (this.h = Sa, this.A = BigInt(a)) : (this.h = Ta, this.A = a);
}
@@ -1212,7 +1212,7 @@ S.prototype.get = function(a) {
};
S.prototype.set = function(a, b) {
var c = this.h(a), d = this.index[c];
- d ? (c = d.size, d.set(a, b), (c -= d.size) && this.size++) : (this.index[c] = d = new Map([[a, b]]), this.C.push(d));
+ d ? (c = d.size, d.set(a, b), (c -= d.size) && this.size++) : (this.index[c] = d = new Map([[a, b]]), this.B.push(d));
};
function T(a) {
a = void 0 === a ? 8 : a;
@@ -1221,19 +1221,19 @@ function T(a) {
}
this.index = K();
this.h = [];
- 32 < a ? (this.C = Sa, this.A = BigInt(a)) : (this.C = Ta, this.A = a);
+ 32 < a ? (this.B = Sa, this.A = BigInt(a)) : (this.B = Ta, this.A = a);
}
T.prototype.add = function(a) {
- var b = this.C(a), c = this.index[b];
+ var b = this.B(a), c = this.index[b];
c ? (b = c.size, c.add(a), (b -= c.size) && this.size++) : (this.index[b] = c = new Set([a]), this.h.push(c));
};
w = S.prototype;
w.has = T.prototype.has = function(a) {
- var b = this.C(a);
+ var b = this.B(a);
return (b = this.index[b]) && b.has(a);
};
w.delete = T.prototype.delete = function(a) {
- var b = this.C(a);
+ var b = this.B(a);
(b = this.index[b]) && b.delete(a) && this.size--;
};
w.clear = T.prototype.clear = function() {
@@ -1362,7 +1362,7 @@ function U(a) {
;K();
V.prototype.add = function(a, b, c, d) {
if (b && (a || 0 === a)) {
- if (!d && !c && this.B.has(a)) {
+ if (!d && !c && this.reg.has(a)) {
return this.update(a, b);
}
b = this.encoder.encode(b);
@@ -1399,7 +1399,7 @@ V.prototype.add = function(a, b, c, d) {
}
default:
if (ab(this, g, l, n, a, c), f && 1 < d && k < d - 1) {
- for (m = K(), p = this.da, n = l, q = Math.min(f + 1, d - k), r = m[n] = 1; r < q; r++) {
+ for (m = K(), p = this.ba, n = l, q = Math.min(f + 1, d - k), r = m[n] = 1; r < q; r++) {
if ((l = b[this.rtl ? d - 1 - k - r : k + r]) && !m[l]) {
m[l] = 1;
var y = this.score ? this.score(b, n, k, l, r) : $a(p + (d / 2 > p ? 0 : 1), d, k, q - 1, r - 1), u = this.bidirectional && l > n;
@@ -1410,29 +1410,29 @@ V.prototype.add = function(a, b, c, d) {
}
}
}
- this.fastupdate || this.B.add(a);
+ this.fastupdate || this.reg.add(a);
} else {
b = "";
}
}
- this.db && (b || this.R.push({del:a}), this.ga && bb(this));
+ this.db && (b || this.O.push({del:a}), this.ea && bb(this));
return this;
};
function ab(a, b, c, d, e, g, f) {
- var h = f ? a.J : a.map, k;
+ var h = f ? a.ctx : a.map, k;
if (!b[c] || !f || !(k = b[c])[f]) {
if (f ? (b = k || (b[c] = K()), b[f] = 1, (k = h.get(f)) ? h = k : h.set(f, h = new Map())) : b[c] = 1, (k = h.get(c)) ? h = k : h.set(c, h = k = []), h = h[d] || (h[d] = []), !g || !h.includes(e)) {
if (h.length === Math.pow(2, 31) - 1) {
b = new R(h);
if (a.fastupdate) {
- for (c = x(a.B.values()), g = c.next(); !g.done; g = c.next()) {
+ for (c = x(a.reg.values()), g = c.next(); !g.done; g = c.next()) {
g = g.value, g.includes(h) && (g[g.indexOf(h)] = b);
}
}
k[d] = h = b;
}
h.push(e);
- a.fastupdate && ((d = a.B.get(e)) ? d.push(h) : a.B.set(e, [h]));
+ a.fastupdate && ((d = a.reg.get(e)) ? d.push(h) : a.reg.set(e, [h]));
}
}
}
@@ -1519,12 +1519,12 @@ function cb(a) {
if (c.length) {
return Promise.all(c).then(function() {
a.result.length && (d = [a.result].concat(d));
- a.result = db(d, e, g, f, h, a.M);
+ a.result = db(d, e, g, f, h, a.K);
return h ? a.result : a;
});
}
this.result.length && (d = [this.result].concat(d));
- this.result = db(d, e, g, f, h, a.M);
+ this.result = db(d, e, g, f, h, a.K);
return h ? this.result : this;
};
function db(a, b, c, d, e, g) {
@@ -1605,12 +1605,12 @@ function db(a, b, c, d, e, g) {
if (c.length) {
return Promise.all(c).then(function() {
d = [a.result].concat(d);
- a.result = eb(d, e, g, f, a.M);
+ a.result = eb(d, e, g, f, a.K);
return f ? a.result : a;
});
}
d = [this.result].concat(d);
- this.result = eb(d, e, g, f, a.M);
+ this.result = eb(d, e, g, f, a.K);
return f ? this.result : this;
}
return this;
@@ -1697,12 +1697,12 @@ function eb(a, b, c, d, e) {
if (c.length) {
return Promise.all(c).then(function() {
a.result.length && (d = [a.result].concat(d));
- a.result = fb(d, e, g, f, !h, a.M);
+ a.result = fb(d, e, g, f, !h, a.K);
return h ? a.result : a;
});
}
this.result.length && (d = [this.result].concat(d));
- this.result = fb(d, e, g, f, !h, a.M);
+ this.result = fb(d, e, g, f, !h, a.K);
return h ? this.result : this;
};
function fb(a, b, c, d, e, g) {
@@ -1818,7 +1818,7 @@ function gb(a, b) {
}
this.index = null;
this.result = a || [];
- this.M = 0;
+ this.K = 0;
}
X.prototype.limit = function(a) {
if (this.result.length) {
@@ -1844,7 +1844,7 @@ X.prototype.offset = function(a) {
return this;
};
X.prototype.boost = function(a) {
- this.M += a;
+ this.K += a;
return this;
};
X.prototype.resolve = function(a, b, c) {
@@ -1994,12 +1994,12 @@ V.prototype.search = function(a, b, c) {
D = a[u];
return t ? F(E, Y(v, D, t), 8) : F(E, Y(v, D), 7);
case 7:
- A = E.G;
+ A = E.F;
A = lb(A, d, h, v.resolution, b, e, 1 === m);
E.h = 6;
break;
case 8:
- A = E.G, A = lb(A, d, h, v.da, b, e, 2 === m), h && !1 === A && d.length || (t = D);
+ A = E.F, A = lb(A, d, h, v.ba, b, e, 2 === m), h && !1 === A && d.length || (t = D);
case 6:
if (A) {
return E.return(A);
@@ -2031,7 +2031,7 @@ V.prototype.search = function(a, b, c) {
}
for (k = f = void 0; u < m; u++) {
k = a[u];
- t ? (f = Y(this, k, t), f = lb(f, d, h, this.da, b, e, 2 === m), h && !1 === f && d.length || (t = k)) : (f = Y(this, k), f = lb(f, d, h, this.resolution, b, e, 1 === m));
+ t ? (f = Y(this, k, t), f = lb(f, d, h, this.ba, b, e, 2 === m), h && !1 === f && d.length || (t = k)) : (f = Y(this, k), f = lb(f, d, h, this.resolution, b, e, 1 === m));
if (f) {
return f;
}
@@ -2086,11 +2086,11 @@ function Y(a, b, c, d, e, g, f, h) {
if (a.db) {
return c ? a.db.get(k ? c : b, k ? b : c, d, e, g, f, h) : a.db.get(b, "", d, e, g, f, h);
}
- a = c ? (a = a.J.get(k ? b : c)) && a.get(k ? c : b) : a.map.get(b);
+ a = c ? (a = a.ctx.get(k ? b : c)) && a.get(k ? c : b) : a.map.get(b);
return a;
}
;V.prototype.remove = function(a, b) {
- var c = this.B.size && (this.fastupdate ? this.B.get(a) : this.B.has(a));
+ var c = this.reg.size && (this.fastupdate ? this.reg.get(a) : this.reg.has(a));
if (c) {
if (this.fastupdate) {
for (var d = 0, e; d < c.length; d++) {
@@ -2104,11 +2104,11 @@ function Y(a, b, c, d, e, g, f, h) {
}
}
} else {
- mb(this.map, a), this.depth && mb(this.J, a);
+ mb(this.map, a), this.depth && mb(this.ctx, a);
}
- b || this.B.delete(a);
+ b || this.reg.delete(a);
}
- this.db && (this.R.push({del:a}), this.ga && bb(this));
+ this.db && (this.O.push({del:a}), this.ea && bb(this));
this.cache && this.cache.remove(a);
return this;
};
@@ -2154,17 +2154,17 @@ function mb(a, b) {
this.score = a.score || null;
(e = a.keystore || 0) && (this.keystore = e);
this.map = e ? new S(e) : new Map();
- this.J = e ? new S(e) : new Map();
- this.B = b || (this.fastupdate ? e ? new S(e) : new Map() : e ? new T(e) : new Set());
- this.da = c.resolution || 1;
+ this.ctx = e ? new S(e) : new Map();
+ this.reg = b || (this.fastupdate ? e ? new S(e) : new Map() : e ? new T(e) : new Set());
+ this.ba = c.resolution || 1;
this.rtl = d.rtl || a.rtl || !1;
this.cache = (e = a.cache || null) && new Q(e);
this.resolve = !1 !== a.resolve;
if (e = a.db) {
this.db = e.mount(this);
}
- this.ga = !1 !== a.commit;
- this.R = [];
+ this.ea = !1 !== a.commit;
+ this.O = [];
this.h = null;
}
w = V.prototype;
@@ -2184,17 +2184,17 @@ function bb(a) {
}
w.clear = function() {
this.map.clear();
- this.J.clear();
- this.B.clear();
+ this.ctx.clear();
+ this.reg.clear();
this.cache && this.cache.clear();
- this.db && (this.h && clearTimeout(this.h), this.h = null, this.R = [{clear:!0}]);
+ this.db && (this.h && clearTimeout(this.h), this.h = null, this.O = [{clear:!0}]);
return this;
};
w.append = function(a, b) {
return this.add(a, b, !0);
};
w.contain = function(a) {
- return this.db ? this.db.has(a) : this.B.has(a);
+ return this.db ? this.db.has(a) : this.reg.has(a);
};
w.update = function(a, b) {
if (this.async) {
@@ -2225,7 +2225,7 @@ w.cleanup = function() {
return console.info('Cleanup the index isn\'t required when not using "fastupdate".'), this;
}
nb(this.map);
- this.depth && nb(this.J);
+ this.depth && nb(this.ctx);
return this;
};
w.searchCache = Ha;
@@ -2239,11 +2239,11 @@ w.export = function(a, b, c, d, e, g) {
var h = "reg";
if (this.fastupdate) {
var k = K();
- for (var l = x(this.B.keys()), m = l.next(); !m.done; m = l.next()) {
+ for (var l = x(this.reg.keys()), m = l.next(); !m.done; m = l.next()) {
k[m.value] = 1;
}
} else {
- k = this.B;
+ k = this.reg;
}
break;
case 1:
@@ -2256,7 +2256,7 @@ w.export = function(a, b, c, d, e, g) {
break;
case 3:
h = "ctx";
- k = this.J;
+ k = this.ctx;
break;
default:
"undefined" === typeof c && g && g();
@@ -2273,16 +2273,68 @@ w.import = function(a, b) {
break;
case "reg":
this.fastupdate = !1;
- this.B = b;
+ this.reg = b;
break;
case "map":
this.map = b;
break;
case "ctx":
- this.J = b;
+ this.ctx = b;
}
}
};
+w.serialize = function(a) {
+ a = void 0 === a ? !0 : a;
+ if (!this.reg.size) {
+ return "";
+ }
+ for (var b = "", c = "", d = x(this.reg.keys()), e = d.next(); !e.done; e = d.next()) {
+ e = e.value, c || (c = typeof e), b += (b ? "," : "") + ("string" === c ? '"' + e + '"' : e);
+ }
+ b = "index.reg=new Set([" + b + "]);";
+ d = "";
+ e = x(this.map.entries());
+ for (var g = e.next(); !g.done; g = e.next()) {
+ var f = g.value;
+ g = f[0];
+ f = f[1];
+ for (var h = "", k = 0, l; k < f.length; k++) {
+ l = f[k] || [""];
+ for (var m = "", n = 0; n < l.length; n++) {
+ m += (m ? "," : "") + ("string" === c ? '"' + l[n] + '"' : l[n]);
+ }
+ m = "[" + m + "]";
+ h += (h ? "," : "") + m;
+ }
+ h = '["' + g + '",[' + h + "]]";
+ d += (d ? "," : "") + h;
+ }
+ d = "index.map=new Map([" + d + "]);";
+ e = "";
+ g = x(this.ctx.entries());
+ for (f = g.next(); !f.done; f = g.next()) {
+ for (h = f.value, f = h[0], h = x(h[1].entries()), k = h.next(); !k.done; k = h.next()) {
+ l = k.value;
+ k = l[0];
+ l = l[1];
+ m = "";
+ n = 0;
+ for (var p; n < l.length; n++) {
+ p = l[n] || [""];
+ for (var q = "", r = 0; r < p.length; r++) {
+ q += (q ? "," : "") + ("string" === c ? '"' + p[r] + '"' : p[r]);
+ }
+ q = "[" + q + "]";
+ m += (m ? "," : "") + q;
+ }
+ m = 'new Map([["' + k + '",[' + m + "]]])";
+ m = '["' + f + '",' + m + "]";
+ e += (e ? "," : "") + m;
+ }
+ }
+ e = "index.ctx=new Map([" + e + "]);";
+ return a ? "function inject(index){" + b + d + e + "}" : b + d + e;
+};
Za(V.prototype);
function ob(a) {
var b, c, d, e, g, f, h, k;
@@ -2358,25 +2410,25 @@ function rb(a, b, c) {
;Z.prototype.add = function(a, b, c) {
M(a) && (b = a, a = ya(b, this.key));
if (b && (a || 0 === a)) {
- if (!c && this.B.has(a)) {
+ if (!c && this.reg.has(a)) {
return this.update(a, b);
}
for (var d = 0, e; d < this.field.length; d++) {
- e = this.O[d];
+ e = this.M[d];
var g = this.index.get(this.field[d]);
if ("function" === typeof e) {
(e = e(b)) && g.add(a, e, !1, !0);
} else {
- var f = e.U;
+ var f = e.S;
if (!f || f(b)) {
- e.constructor === String ? e = ["" + e] : L(e) && (e = [e]), tb(b, e, this.W, 0, g, a, e[0], c);
+ e.constructor === String ? e = ["" + e] : L(e) && (e = [e]), tb(b, e, this.U, 0, g, a, e[0], c);
}
}
}
if (this.tag) {
- for (d = 0; d < this.N.length; d++) {
- f = this.N[d];
- var h = this.ca[d];
+ for (d = 0; d < this.L.length; d++) {
+ f = this.L[d];
+ var h = this.aa[d];
g = this.tag.get(h);
e = K();
if ("function" === typeof f) {
@@ -2384,7 +2436,7 @@ function rb(a, b, c) {
continue;
}
} else {
- var k = f.U;
+ var k = f.S;
if (k && !k(b)) {
continue;
}
@@ -2402,14 +2454,14 @@ function rb(a, b, c) {
if (k.length === Math.pow(2, 31) - 1) {
m = new R(k);
if (this.fastupdate) {
- for (var n = x(this.B.values()), p = n.next(); !p.done; p = n.next()) {
+ for (var n = x(this.reg.values()), p = n.next(); !p.done; p = n.next()) {
p = p.value, p.includes(k) && (p[p.indexOf(k)] = m);
}
}
g.set(l, k = m);
}
k.push(a);
- this.fastupdate && ((l = this.B.get(a)) ? l.push(k) : this.B.set(a, [k]));
+ this.fastupdate && ((l = this.reg.get(a)) ? l.push(k) : this.reg.set(a, [k]));
}
}
}
@@ -2419,17 +2471,17 @@ function rb(a, b, c) {
}
}
if (this.store && (!c || !this.store.has(a))) {
- if (this.I) {
+ if (this.H) {
var q = K();
- for (c = 0; c < this.I.length; c++) {
- if (d = this.I[c], g = d.U, !g || g(b)) {
+ for (c = 0; c < this.H.length; c++) {
+ if (d = this.H[c], g = d.S, !g || g(b)) {
g = void 0;
if ("function" === typeof d) {
g = d(b);
if (!g) {
continue;
}
- d = [d.oa];
+ d = [d.ma];
} else if (L(d) || d.constructor === String) {
q[d] = b[d];
continue;
@@ -2564,7 +2616,7 @@ function tb(a, b, c, d, e, g, f, h) {
r = !d && (this.worker || this.async) && [];
y = 0;
for (v = u = t = void 0; y < l.length; y++) {
- if (u = l[y], !this.db || !this.tag || this.O[y]) {
+ if (u = l[y], !this.db || !this.tag || this.M[y]) {
t = void 0;
L(u) || (t = u, u = t.field, a = t.query || a, b = t.limit || b, p = t.suggest || p);
if (d) {
@@ -2575,7 +2627,7 @@ function tb(a, b, c, d, e, g, f, h) {
if (m) {
if (this.db) {
v.tag = m;
- var E = t.db.sa;
+ var E = t.db.qa;
v.field = l;
}
E || (v.enrich = !1);
@@ -2721,13 +2773,13 @@ function wb(a) {
return new Z(a);
}
var b = a.document || a.doc || a, c, d;
- this.O = [];
+ this.M = [];
this.field = [];
- this.W = [];
- this.key = (c = b.key || b.id) && yb(c, this.W) || "id";
+ this.U = [];
+ this.key = (c = b.key || b.id) && yb(c, this.U) || "id";
(d = a.keystore || 0) && (this.keystore = d);
- this.B = (this.fastupdate = !!a.fastupdate) ? d ? new S(d) : new Map() : d ? new T(d) : new Set();
- this.I = (c = b.store || null) && !0 !== c && [];
+ this.reg = (this.fastupdate = !!a.fastupdate) ? d ? new S(d) : new Map() : d ? new T(d) : new Set();
+ this.H = (c = b.store || null) && !0 !== c && [];
this.store = c && (d ? new S(d) : new Map());
this.cache = (c = a.cache || null) && new Q(c);
a.cache = !1;
@@ -2745,27 +2797,27 @@ function wb(a) {
c.set(g, h);
h.worker || (this.worker = !1);
}
- this.worker || c.set(g, new V(f, this.B));
- f.custom ? this.O[e] = f.custom : (this.O[e] = yb(g, this.W), f.filter && ("string" === typeof this.O[e] && (this.O[e] = new String(this.O[e])), this.O[e].U = f.filter));
+ this.worker || c.set(g, new V(f, this.reg));
+ f.custom ? this.M[e] = f.custom : (this.M[e] = yb(g, this.U), f.filter && ("string" === typeof this.M[e] && (this.M[e] = new String(this.M[e])), this.M[e].S = f.filter));
this.field[e] = g;
}
- if (this.I) {
+ if (this.H) {
for (d = b.store, L(d) && (d = [d]), e = 0; e < d.length; e++) {
- g = d[e], f = g.field || g, g.custom ? (this.I[e] = g.custom, g.custom.oa = f) : (this.I[e] = yb(f, this.W), g.filter && ("string" === typeof this.I[e] && (this.I[e] = new String(this.I[e])), this.I[e].U = g.filter));
+ g = d[e], f = g.field || g, g.custom ? (this.H[e] = g.custom, g.custom.ma = f) : (this.H[e] = yb(f, this.U), g.filter && ("string" === typeof this.H[e] && (this.H[e] = new String(this.H[e])), this.H[e].S = g.filter));
}
}
this.index = c;
this.tag = null;
if (c = b.tag) {
if ("string" === typeof c && (c = [c]), c.length) {
- for (this.tag = new Map(), this.N = [], this.ca = [], b = 0; b < c.length; b++) {
+ for (this.tag = new Map(), this.L = [], this.aa = [], b = 0; b < c.length; b++) {
d = c[b];
e = d.field || d;
if (!e) {
throw Error("The tag field from the document descriptor is undefined.");
}
- d.custom ? this.N[b] = d.custom : (this.N[b] = yb(e, this.W), d.filter && ("string" === typeof this.N[b] && (this.N[b] = new String(this.N[b])), this.N[b].U = d.filter));
- this.ca[b] = e;
+ d.custom ? this.L[b] = d.custom : (this.L[b] = yb(e, this.U), d.filter && ("string" === typeof this.L[b] && (this.L[b] = new String(this.L[b])), this.L[b].S = d.filter));
+ this.aa[b] = e;
this.tag.set(e, new Map());
}
}
@@ -2776,10 +2828,10 @@ w = Z.prototype;
w.mount = function(a) {
var b = this.field;
if (this.tag) {
- for (var c = 0, d; c < this.ca.length; c++) {
- d = this.ca[c];
+ for (var c = 0, d; c < this.aa.length; c++) {
+ d = this.aa[c];
var e = this.index.get(d);
- e || (this.index.set(d, e = new V({}, this.B)), b === this.field && (b = b.slice(0)), b.push(d));
+ e || (this.index.set(d, e = new V({}, this.reg)), b === this.field && (b = b.slice(0)), b.push(d));
e.tag = this.tag.get(d);
}
}
@@ -2793,7 +2845,7 @@ w.mount = function(a) {
f.id = a.id;
c[e] = f.mount(g);
g.document = !0;
- e ? g.pa = !0 : g.store = this.store;
+ e ? g.na = !0 : g.store = this.store;
}
this.db = this.async = !0;
return Promise.all(c);
@@ -2809,7 +2861,7 @@ w.commit = function(a, b) {
}
return F(h, Promise.all(d), 2);
}
- c.B.clear();
+ c.reg.clear();
h.h = 0;
});
};
@@ -2831,7 +2883,7 @@ w.remove = function(a) {
for (var b = x(this.index.values()), c = b.next(); !c.done; c = b.next()) {
c.value.remove(a, !0);
}
- if (this.B.has(a)) {
+ if (this.reg.has(a)) {
if (this.tag && !this.fastupdate) {
for (b = x(this.tag.values()), c = b.next(); !c.done; c = b.next()) {
c = c.value;
@@ -2845,7 +2897,7 @@ w.remove = function(a) {
}
}
this.store && this.store.delete(a);
- this.B.delete(a);
+ this.reg.delete(a);
}
this.cache && this.cache.remove(a);
return this;
@@ -2863,7 +2915,7 @@ w.clear = function() {
return this;
};
w.contain = function(a) {
- return this.db ? this.index.get(this.field[0]).db.has(a) : this.B.has(a);
+ return this.db ? this.index.get(this.field[0]).db.has(a) : this.reg.has(a);
};
w.cleanup = function() {
for (var a = x(this.index.values()), b = a.next(); !b.done; b = a.next()) {
@@ -2921,10 +2973,10 @@ w.import = function(a, b) {
break;
case "reg":
this.fastupdate = !1;
- this.B = b;
+ this.reg = b;
a = 0;
for (var c; a < this.field.length; a++) {
- c = this.index[this.field[a]], c.B = b, c.fastupdate = !1;
+ c = this.index[this.field[a]], c.reg = b, c.fastupdate = !1;
}
break;
case "store":
@@ -2946,7 +2998,7 @@ function Bb(a, b) {
a || console.info("Default storage space was used, because a name was not passed.");
this.id = "flexsearch" + (a ? ":" + a.toLowerCase().replace(/[^a-z0-9_\-]/g, "") : "");
this.field = b.field ? b.field.toLowerCase().replace(/[^a-z0-9_\-]/g, "") : "";
- this.sa = !1;
+ this.qa = !1;
this.db = null;
this.h = {};
}
@@ -3096,8 +3148,8 @@ w.commit = function(a, b, c) {
if (b) {
return F(h, d.clear(), 12);
}
- e = a.R;
- a.R = [];
+ e = a.O;
+ a.O = [];
g = 0;
f = void 0;
case 4:
@@ -3107,7 +3159,7 @@ w.commit = function(a, b, c) {
}
f = e[g];
if (!f.clear) {
- e[g] = f.ta;
+ e[g] = f.ra;
h.h = 5;
break;
}
@@ -3125,7 +3177,7 @@ w.commit = function(a, b, c) {
h.h = 3;
break;
}
- c || (e = e.concat(xa(a.B)));
+ c || (e = e.concat(xa(a.reg)));
if (!e.length) {
h.h = 10;
break;
@@ -3136,16 +3188,16 @@ w.commit = function(a, b, c) {
h.h = 3;
break;
case 12:
- a.R = [];
+ a.O = [];
case 3:
- return a.B.size ? F(h, d.transaction("map", "readwrite", function(k) {
- for (var l = x(a.map), m = l.next(), n = {}; !m.done; n = {S:void 0, aa:void 0}, m = l.next()) {
- m = m.value, n.aa = m[0], n.S = m[1], n.S.length && (b ? k.put(n.S, n.aa) : k.get(n.aa).onsuccess = function(p) {
+ return a.reg.size ? F(h, d.transaction("map", "readwrite", function(k) {
+ for (var l = x(a.map), m = l.next(), n = {}; !m.done; n = {P:void 0, Z:void 0}, m = l.next()) {
+ m = m.value, n.Z = m[0], n.P = m[1], n.P.length && (b ? k.put(n.P, n.Z) : k.get(n.Z).onsuccess = function(p) {
return function() {
var q = this.result, r;
if (q && q.length) {
- for (var y = Math.max(q.length, p.S.length), u = 0, t; u < y; u++) {
- if ((t = p.S[u]) && t.length) {
+ for (var y = Math.max(q.length, p.P.length), u = 0, t; u < y; u++) {
+ if ((t = p.P[u]) && t.length) {
if ((r = q[u]) && r.length) {
for (var v = 0; v < t.length; v++) {
r.push(t[v]);
@@ -3157,26 +3209,26 @@ w.commit = function(a, b, c) {
}
}
} else {
- q = p.S, r = 1;
+ q = p.P, r = 1;
}
- r && k.put(q, p.aa);
+ r && k.put(q, p.Z);
};
}(n));
}
}), 13) : h.return();
case 13:
return F(h, d.transaction("ctx", "readwrite", function(k) {
- for (var l = x(a.J), m = l.next(), n = {}; !m.done; n = {Z:void 0}, m = l.next()) {
+ for (var l = x(a.ctx), m = l.next(), n = {}; !m.done; n = {X:void 0}, m = l.next()) {
m = m.value;
- n.Z = m[0];
+ n.X = m[0];
m = x(m[1]);
- for (var p = m.next(), q = {}; !p.done; q = {T:void 0, ba:void 0}, p = m.next()) {
- p = p.value, q.ba = p[0], q.T = p[1], q.T.length && (b ? k.put(q.T, n.Z + ":" + q.ba) : k.get(n.Z + ":" + q.ba).onsuccess = function(r, y) {
+ for (var p = m.next(), q = {}; !p.done; q = {R:void 0, $:void 0}, p = m.next()) {
+ p = p.value, q.$ = p[0], q.R = p[1], q.R.length && (b ? k.put(q.R, n.X + ":" + q.$) : k.get(n.X + ":" + q.$).onsuccess = function(r, y) {
return function() {
var u = this.result, t;
if (u && u.length) {
- for (var v = Math.max(u.length, r.T.length), A = 0, D; A < v; A++) {
- if ((D = r.T[A]) && D.length) {
+ for (var v = Math.max(u.length, r.R.length), A = 0, D; A < v; A++) {
+ if ((D = r.R[A]) && D.length) {
if ((t = u[A]) && t.length) {
for (var C = 0; C < D.length; C++) {
t.push(D[C]);
@@ -3188,9 +3240,9 @@ w.commit = function(a, b, c) {
}
}
} else {
- u = r.T, t = 1;
+ u = r.R, t = 1;
}
- t && k.put(u, y.Z + ":" + r.ba);
+ t && k.put(u, y.X + ":" + r.$);
};
}(q, n));
}
@@ -3207,12 +3259,12 @@ w.commit = function(a, b, c) {
}
}), 16);
}
- if (a.pa) {
+ if (a.na) {
h.h = 16;
break;
}
return F(h, d.transaction("reg", "readwrite", function(k) {
- for (var l = x(a.B.keys()), m = l.next(); !m.done; m = l.next()) {
+ for (var l = x(a.reg.keys()), m = l.next(); !m.done; m = l.next()) {
k.put(1, m.value);
}
}), 16);
@@ -3222,18 +3274,18 @@ w.commit = function(a, b, c) {
break;
}
return F(h, d.transaction("tag", "readwrite", function(k) {
- for (var l = x(a.tag), m = l.next(), n = {}; !m.done; n = {$:void 0, ea:void 0}, m = l.next()) {
- m = m.value, n.ea = m[0], n.$ = m[1], n.$.length && (k.get(n.ea).onsuccess = function(p) {
+ for (var l = x(a.tag), m = l.next(), n = {}; !m.done; n = {Y:void 0, ca:void 0}, m = l.next()) {
+ m = m.value, n.ca = m[0], n.Y = m[1], n.Y.length && (k.get(n.ca).onsuccess = function(p) {
return function() {
var q = this.result;
- q = q && q.length ? q.concat(p.$) : p.$;
- k.put(q, p.ea);
+ q = q && q.length ? q.concat(p.Y) : p.Y;
+ k.put(q, p.ca);
};
}(n));
}
}), 20);
case 20:
- a.map.clear(), a.J.clear(), a.tag && a.tag.clear(), a.store && a.store.clear(), a.document || a.B.clear(), h.h = 0;
+ a.map.clear(), a.ctx.clear(), a.tag && a.tag.clear(), a.store && a.store.clear(), a.document || a.reg.clear(), h.h = 0;
}
});
};
diff --git a/dist/flexsearch.es5.min.js b/dist/flexsearch.es5.min.js
index 6c58eae..4a658e3 100644
--- a/dist/flexsearch.es5.min.js
+++ b/dist/flexsearch.es5.min.js
@@ -7,115 +7,118 @@
*/
(function(self){'use strict';var w;function aa(a){var b=0;return function(){return b>>0)+"_",e=0;return b});
+if("function"==typeof Object.setPrototypeOf)da=Object.setPrototypeOf;else{var ea;a:{var fa={a:!0},ha={};try{ha.__proto__=fa;ea=ha.a;break a}catch(a){}ea=!1}da=ea?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ia=da;function ja(){this.C=!1;this.A=null;this.F=void 0;this.h=1;this.J=0;this.B=null}function ka(a){if(a.C)throw new TypeError("Generator is already running");a.C=!0}ja.prototype.G=function(a){this.F=a};
+function la(a,b){a.B={oa:b,pa:!0};a.h=a.J}ja.prototype.return=function(a){this.B={return:a};this.h=this.J};function F(a,b,c){a.h=c;return{value:b}}function ma(a){this.h=new ja;this.A=a}function na(a,b){ka(a.h);var c=a.h.A;if(c)return oa(a,"return"in c?c["return"]:function(d){return{value:d,done:!0}},b,a.h.return);a.h.return(b);return G(a)}
+function oa(a,b,c,d){try{var e=b.call(a.h.A,c);if(!(e instanceof Object))throw new TypeError("Iterator result "+e+" is not an object");if(!e.done)return a.h.C=!1,e;var h=e.value}catch(f){return a.h.A=null,la(a.h,f),G(a)}a.h.A=null;d.call(a.h,h);return G(a)}function G(a){for(;a.h.h;)try{var b=a.A(a.h);if(b)return a.h.C=!1,{value:b.value,done:!1}}catch(c){a.h.F=void 0,la(a.h,c)}a.h.C=!1;if(a.h.B){b=a.h.B;a.h.B=null;if(b.pa)throw b.oa;return{value:b.return,done:!0}}return{value:void 0,done:!0}}
+function pa(a){this.next=function(b){ka(a.h);a.h.A?b=oa(a,a.h.A.next,b,a.h.G):(a.h.G(b),b=G(a));return b};this.throw=function(b){ka(a.h);a.h.A?b=oa(a,a.h.A["throw"],b,a.h.G):(la(a.h,b),b=G(a));return b};this.return=function(b){return na(a,b)};this[Symbol.iterator]=function(){return this}}function qa(a,b){b=new pa(new ma(b));ia&&a.prototype&&ia(b,a.prototype);return b}
+function ra(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function h(f){f.done?d(f.value):Promise.resolve(f.value).then(b,c).then(h,e)}h(a.next())})}function sa(a){return ra(new pa(new ma(a)))}
+B("Symbol",function(a){function b(h){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(h||"")+"_"+e++,h)}function c(h,f){this.h=h;ba(this,"description",{configurable:!0,writable:!0,value:f})}if(a)return a;c.prototype.toString=function(){return this.h};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",e=0;return b});
B("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;cc&&(c=Math.max(c+e,0));cc&&(c=Math.max(c+e,0));cthis.L&&(this.V.clear(),this.A=this.A/1.1|0));f&&d.push(f)}this.finalize&&(d=this.finalize(d)||d);this.cache&&a.length<=this.h&&(this.P.set(a,d),this.P.size>this.L&&(this.P.clear(),this.h=this.h/1.1|0));return d};function Ga(a){a.X=null;a.P.clear();a.V.clear()};function Ha(a,b,c){a=("object"===typeof a?""+a.query:a).toLowerCase();var d=this.cache.get(a);if(!d){d=this.search(a,b,c);if(d.then){var e=this;d.then(function(g){e.cache.set(a,g);return g})}this.cache.set(a,d)}return d}function Q(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}Q.prototype.set=function(a,b){this.cache.set(this.h=a,b);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};
-Q.prototype.get=function(a){var b=this.cache.get(a);b&&this.h!==a&&(this.cache.delete(a),this.cache.set(this.h=a,b));return b};Q.prototype.remove=function(a){for(var b=x(this.cache),c=b.next();!c.done;c=b.next()){c=c.value;var d=c[0];c[1].includes(a)&&this.cache.delete(d)}};Q.prototype.clear=function(){this.cache.clear();this.h=""};var Ia={normalize:function(a){return a.toLowerCase()},dedupe:!1};var Ja=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]);var Ka=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),La=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];var Ma={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,"\u00df":2,d:3,t:3,l:4,m:5,n:5,r:6};var Na=/[\x00-\x7F]+/g;var Oa=/[\x00-\x7F]+/g;var Pa=/[\x00-\x7F]+/g;var Qa={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:Ia,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:Ja},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:Ja,replacer:La,matcher:Ka},LatinExtra:{normalize:!0,dedupe:!0,mapper:Ja,replacer:La.concat([/(?!^)[aeoy]/g,""]),matcher:Ka},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(var b=0;b=f.length)b-=f.length;else{b=f[d?"splice":"slice"](b,c);if(f=b.length)if(e=e.length?e.concat(b):b,c-=f,d&&(a.length-=f),!c)break;b=0}return e}
-function R(a){if(!this)return new R(a);this.index=a?[a]:[];this.length=a?a.length:0;var b=this;return new Proxy([],{get:function(c,d){if("length"===d)return b.length;if("push"===d)return function(e){b.index[b.index.length-1].push(e);b.length++};if("pop"===d)return function(){if(b.length)return b.length--,b.index[b.index.length-1].pop()};if("indexOf"===d)return function(e){for(var g=0,f=0,h,k;fn;q--){p=l.substring(n,q);var r=this.score?this.score(b,l,k,p,n):$a(h,d,k,m,n);ab(this,g,p,r,a,c)}break}case "reverse":if(1<
-m){for(q=m-1;0p?0:1),d,k,q-1,r-1),u=this.bidirectional&&l>n;ab(this,e,u?n:l,y,a,c,u?l:n)}}}}this.fastupdate||this.B.add(a)}else b=""}this.db&&
-(b||this.R.push({del:a}),this.ga&&bb(this));return this};
-function ab(a,b,c,d,e,g,f){var h=f?a.J:a.map,k;if(!b[c]||!f||!(k=b[c])[f])if(f?(b=k||(b[c]=K()),b[f]=1,(k=h.get(f))?h=k:h.set(f,h=new Map)):b[c]=1,(k=h.get(c))?h=k:h.set(c,h=k=[]),h=h[d]||(h[d]=[]),!g||!h.includes(e)){if(h.length===Math.pow(2,31)-1){b=new R(h);if(a.fastupdate)for(c=x(a.B.values()),g=c.next();!g.done;g=c.next())g=g.value,g.includes(h)&&(g[g.indexOf(h)]=b);k[d]=h=b}h.push(e);a.fastupdate&&((d=a.B.get(e))?d.push(h):a.B.set(e,[h]))}}
-function $a(a,b,c,d,e){return c&&1b?b?a.slice(c,c+b):a.slice(c):a,d?cb(a):a;for(var e=[],g=0,f=void 0,h=void 0;g=h){c-=h;continue}cb&&(f=f.slice(0,b),h=f.length),e.push(f);else{if(h>=b)return h>b&&(f=f.slice(0,b)),d?cb(f):f;e=[f]}b-=h;if(!b)break}if(!e.length)return e;e=1a.length)return e?W(a[0],b,c,d):a[0];d=[];for(var f=0,h=K(),k=za(a),l=0,m;la.length)return[];var g=[],f=0,h=K(),k=za(a);if(!k)return g;for(var l=0,m;la.length)return e?W(a[0],b,c,d):a[0];b=[];c=K();d=0;for(var f;dc||d)f=f.slice(d,c+d)}return f}
-function jb(a,b){for(var c=K(),d=K(),e=[],g=0;g=e)))break;if(h.length){if(f)return W(h,e,0);b.push(h);return}}return!c&&h}function Y(a,b,c,d,e,g,f,h){var k;c&&(k=a.bidirectional&&b>c);if(a.db)return c?a.db.get(k?c:b,k?b:c,d,e,g,f,h):a.db.get(b,"",d,e,g,f,h);a=c?(a=a.J.get(k?b:c))&&a.get(k?c:b):a.map.get(b);return a};V.prototype.remove=function(a,b){var c=this.B.size&&(this.fastupdate?this.B.get(a):this.B.has(a));if(c){if(this.fastupdate)for(var d=0,e;de.length)e.pop();else{var g=e.indexOf(a);g===c.length-1?e.pop():e.splice(g,1)}}else mb(this.map,a),this.depth&&mb(this.J,a);b||this.B.delete(a)}this.db&&(this.R.push({del:a}),this.ga&&bb(this));this.cache&&this.cache.remove(a);return this};
-function mb(a,b){var c=0;if(a.constructor===Array)for(var d=0,e=void 0,g;dc||d)a=a.slice(d,d+c);e&&(a=wb.call(this,a));return a}}function wb(a){for(var b=Array(a.length),c=0,d;cthis.J&&(this.T.clear(),this.A=this.A/1.1|0));f&&d.push(f)}this.finalize&&(d=this.finalize(d)||d);this.cache&&a.length<=this.h&&(this.N.set(a,d),this.N.size>this.J&&(this.N.clear(),this.h=this.h/1.1|0));return d};function Ga(a){a.V=null;a.N.clear();a.T.clear()};function Ha(a,b,c){a=("object"===typeof a?""+a.query:a).toLowerCase();var d=this.cache.get(a);if(!d){d=this.search(a,b,c);if(d.then){var e=this;d.then(function(h){e.cache.set(a,h);return h})}this.cache.set(a,d)}return d}function Q(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}Q.prototype.set=function(a,b){this.cache.set(this.h=a,b);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};
+Q.prototype.get=function(a){var b=this.cache.get(a);b&&this.h!==a&&(this.cache.delete(a),this.cache.set(this.h=a,b));return b};Q.prototype.remove=function(a){for(var b=x(this.cache),c=b.next();!c.done;c=b.next()){c=c.value;var d=c[0];c[1].includes(a)&&this.cache.delete(d)}};Q.prototype.clear=function(){this.cache.clear();this.h=""};var Ia={normalize:function(a){return a.toLowerCase()},dedupe:!1};var Ja=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]);var Ka=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),La=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];var Ma={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,"\u00df":2,d:3,t:3,l:4,m:5,n:5,r:6};var Na=/[\x00-\x7F]+/g;var Oa=/[\x00-\x7F]+/g;var Pa=/[\x00-\x7F]+/g;var Qa={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:Ia,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:Ja},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:Ja,replacer:La,matcher:Ka},LatinExtra:{normalize:!0,dedupe:!0,mapper:Ja,replacer:La.concat([/(?!^)[aeoy]/g,""]),matcher:Ka},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(var b=0;b=f.length)b-=f.length;else{b=f[d?"splice":"slice"](b,c);if(f=b.length)if(e=e.length?e.concat(b):b,c-=f,d&&(a.length-=f),!c)break;b=0}return e}
+function R(a){if(!this)return new R(a);this.index=a?[a]:[];this.length=a?a.length:0;var b=this;return new Proxy([],{get:function(c,d){if("length"===d)return b.length;if("push"===d)return function(e){b.index[b.index.length-1].push(e);b.length++};if("pop"===d)return function(){if(b.length)return b.length--,b.index[b.index.length-1].pop()};if("indexOf"===d)return function(e){for(var h=0,f=0,g,k;fn;q--){p=l.substring(n,q);var r=this.score?this.score(b,l,k,p,n):$a(g,d,k,m,n);ab(this,h,p,r,a,c)}break}case "reverse":if(1<
+m){for(q=m-1;0p?0:1),d,k,q-1,r-1),u=this.bidirectional&&l>n;ab(this,e,u?n:l,y,a,c,u?l:n)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
+(b||this.O.push({del:a}),this.ea&&bb(this));return this};
+function ab(a,b,c,d,e,h,f){var g=f?a.ctx:a.map,k;if(!b[c]||!f||!(k=b[c])[f])if(f?(b=k||(b[c]=K()),b[f]=1,(k=g.get(f))?g=k:g.set(f,g=new Map)):b[c]=1,(k=g.get(c))?g=k:g.set(c,g=k=[]),g=g[d]||(g[d]=[]),!h||!g.includes(e)){if(g.length===Math.pow(2,31)-1){b=new R(g);if(a.fastupdate)for(c=x(a.reg.values()),h=c.next();!h.done;h=c.next())h=h.value,h.includes(g)&&(h[h.indexOf(g)]=b);k[d]=g=b}g.push(e);a.fastupdate&&((d=a.reg.get(e))?d.push(g):a.reg.set(e,[g]))}}
+function $a(a,b,c,d,e){return c&&1b?b?a.slice(c,c+b):a.slice(c):a,d?cb(a):a;for(var e=[],h=0,f=void 0,g=void 0;h=g){c-=g;continue}cb&&(f=f.slice(0,b),g=f.length),e.push(f);else{if(g>=b)return g>b&&(f=f.slice(0,b)),d?cb(f):f;e=[f]}b-=g;if(!b)break}if(!e.length)return e;e=1a.length)return e?W(a[0],b,c,d):a[0];d=[];for(var f=0,g=K(),k=za(a),l=0,m;la.length)return[];var h=[],f=0,g=K(),k=za(a);if(!k)return h;for(var l=0,m;la.length)return e?W(a[0],b,c,d):a[0];b=[];c=K();d=0;for(var f;dc||d)f=f.slice(d,c+d)}return f}
+function jb(a,b){for(var c=K(),d=K(),e=[],h=0;h=e)))break;if(g.length){if(f)return W(g,e,0);b.push(g);return}}return!c&&g}function Y(a,b,c,d,e,h,f,g){var k;c&&(k=a.bidirectional&&b>c);if(a.db)return c?a.db.get(k?c:b,k?b:c,d,e,h,f,g):a.db.get(b,"",d,e,h,f,g);a=c?(a=a.ctx.get(k?b:c))&&a.get(k?c:b):a.map.get(b);return a};V.prototype.remove=function(a,b){var c=this.reg.size&&(this.fastupdate?this.reg.get(a):this.reg.has(a));if(c){if(this.fastupdate)for(var d=0,e;de.length)e.pop();else{var h=e.indexOf(a);h===c.length-1?e.pop():e.splice(h,1)}}else mb(this.map,a),this.depth&&mb(this.ctx,a);b||this.reg.delete(a)}this.db&&(this.O.push({del:a}),this.ea&&bb(this));this.cache&&this.cache.remove(a);return this};
+function mb(a,b){var c=0;if(a.constructor===Array)for(var d=0,e=void 0,h;dc||d)a=a.slice(d,d+c);e&&(a=wb.call(this,a));return a}}function wb(a){for(var b=Array(a.length),c=0,d;c=m.length)d-=m.length;else{for(var n=c?d+Math.min(m.length-d,c):m.length,p=d;p=g.length)return[];if(!b&&!c)return g;g=g.slice(c,c+b);return d?e.enrich(g):g})};
-w.enrich=function(a){"object"!==typeof a&&(a=[a]);for(var b=this.db.transaction("reg","readonly").objectStore("reg"),c=[],d=0;dm&&!g&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(g=1),0<=m)if(e=1,1=m.length)d-=m.length;else{for(var n=c?d+Math.min(m.length-d,c):m.length,p=d;p=h.length)return[];if(!b&&!c)return h;h=h.slice(c,c+b);return d?e.enrich(h):h})};
+w.enrich=function(a){"object"!==typeof a&&(a=[a]);for(var b=this.db.transaction("reg","readonly").objectStore("reg"),c=[],d=0;dm&&!h&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(h=1),0<=m)if(e=1,1 this.stemmer.get(m)), k = 1);
- this.matcher && 1 < f.length && (this.v || (this.v = new RegExp("(" + this.s + ")", "g")), f = f.replace(this.v, m => this.matcher.get(m)), k = 1);
+ this.stemmer && 2 < f.length && (this.u || (this.u = new RegExp("(?!^)(" + this.o + ")$")), f = f.replace(this.u, m => this.stemmer.get(m)), k = 1);
+ this.matcher && 1 < f.length && (this.s || (this.s = new RegExp("(" + this.m + ")", "g")), f = f.replace(this.s, m => this.matcher.get(m)), k = 1);
f && k && (f.length < this.minlength || this.filter && this.filter.has(f)) && (f = "");
if (f && (this.mapper || this.dedupe && 1 < f.length)) {
e = "";
@@ -163,30 +163,30 @@ C.prototype.encode = function(a) {
f = f.replace(this.replacer[e], this.replacer[e + 1]);
}
}
- this.cache && h.length <= this.o && (this.j.set(h, f), this.j.size > this.B && (this.j.clear(), this.o = this.o / 1.1 | 0));
+ this.cache && h.length <= this.l && (this.i.set(h, f), this.i.size > this.v && (this.i.clear(), this.l = this.l / 1.1 | 0));
f && b.push(f);
}
this.finalize && (b = this.finalize(b) || b);
- this.cache && a.length <= this.h && (this.i.set(a, b), this.i.size > this.B && (this.i.clear(), this.h = this.h / 1.1 | 0));
+ this.cache && a.length <= this.g && (this.h.set(a, b), this.h.size > this.v && (this.h.clear(), this.g = this.g / 1.1 | 0));
return b;
};
function D(a) {
- a.m = null;
+ a.j = null;
+ a.h.clear();
a.i.clear();
- a.j.clear();
}
;function E(a) {
this.limit = a && !0 !== a ? a : 1000;
this.cache = new Map();
- this.h = "";
+ this.g = "";
}
E.prototype.set = function(a, c) {
- this.cache.set(this.h = a, c);
+ this.cache.set(this.g = a, c);
this.cache.size > this.limit && this.cache.delete(this.cache.keys().next().value);
};
E.prototype.get = function(a) {
const c = this.cache.get(a);
- c && this.h !== a && (this.cache.delete(a), this.cache.set(this.h = a, c));
+ c && this.g !== a && (this.cache.delete(a), this.cache.set(this.g = a, c));
return c;
};
E.prototype.remove = function(a) {
@@ -197,7 +197,7 @@ E.prototype.remove = function(a) {
};
E.prototype.clear = function() {
this.cache.clear();
- this.h = "";
+ this.g = "";
};
const F = {normalize:function(a) {
return a.toLowerCase();
@@ -206,7 +206,7 @@ const G = {memory:{resolution:1}, performance:{resolution:6, fastupdate:!0, cont
u();
H.prototype.add = function(a, c, b, d) {
if (c && (a || 0 === a)) {
- if (!d && !b && this.g.has(a)) {
+ if (!d && !b && this.reg.has(a)) {
return this.update(a, c);
}
c = this.encoder.encode(c);
@@ -245,7 +245,7 @@ H.prototype.add = function(a, c, b, d) {
}
default:
if (J(this, l, q, g, a, b), p && 1 < d && n < d - 1) {
- for (e = u(), f = this.C, g = q, h = Math.min(p + 1, d - n), e[g] = 1, k = 1; k < h; k++) {
+ for (e = u(), f = this.A, g = q, h = Math.min(p + 1, d - n), e[g] = 1, k = 1; k < h; k++) {
if ((q = c[this.rtl ? d - 1 - n - k : n + k]) && !e[q]) {
e[q] = 1;
const A = this.score ? this.score(c, g, n, q, k) : I(f + (d / 2 > f ? 0 : 1), d, n, h - 1, k - 1), M = this.bidirectional && q > g;
@@ -256,14 +256,14 @@ H.prototype.add = function(a, c, b, d) {
}
}
}
- this.fastupdate || this.g.add(a);
+ this.fastupdate || this.reg.add(a);
}
}
return this;
};
function J(a, c, b, d, e, g, f) {
- let h = f ? a.l : a.map, k;
- c[b] && f && (k = c[b])[f] || (f ? (c = k || (c[b] = u()), c[f] = 1, (k = h.get(f)) ? h = k : h.set(f, h = new Map())) : c[b] = 1, (k = h.get(b)) ? h = k : h.set(b, h = []), h = h[d] || (h[d] = []), g && h.includes(e) || (h.push(e), a.fastupdate && ((c = a.g.get(e)) ? c.push(h) : a.g.set(e, [h]))));
+ let h = f ? a.ctx : a.map, k;
+ c[b] && f && (k = c[b])[f] || (f ? (c = k || (c[b] = u()), c[f] = 1, (k = h.get(f)) ? h = k : h.set(f, h = new Map())) : c[b] = 1, (k = h.get(b)) ? h = k : h.set(b, h = []), h = h[d] || (h[d] = []), g && h.includes(e) || (h.push(e), a.fastupdate && ((c = a.reg.get(e)) ? c.push(h) : a.reg.set(e, [h]))));
}
function I(a, c, b, d, e) {
return b && 1 < a ? c + (d || 0) <= a ? b + (e || 0) : (a - 1) / (c + (d || 0)) * (b + (e || 0)) + 1 | 0 : 0;
@@ -357,7 +357,7 @@ function I(a, c, b, d, e) {
}
for (let p, r; m < b; m++) {
r = a[m];
- l ? (p = N(this, r, l), p = O(p, d, f, this.C, c, e, 2 === b), f && !1 === p && d.length || (l = r)) : (p = N(this, r), p = O(p, d, f, this.resolution, c, e, 1 === b));
+ l ? (p = N(this, r, l), p = O(p, d, f, this.A, c, e, 2 === b), f && !1 === p && d.length || (l = r)) : (p = N(this, r), p = O(p, d, f, this.resolution, c, e, 1 === b));
if (p) {
return p;
}
@@ -458,11 +458,11 @@ function O(a, c, b, d, e, g, f) {
function N(a, c, b) {
let d;
b && (d = a.bidirectional && c > b);
- a = b ? (a = a.l.get(d ? c : b)) && a.get(d ? b : c) : a.map.get(c);
+ a = b ? (a = a.ctx.get(d ? c : b)) && a.get(d ? b : c) : a.map.get(c);
return a;
}
;H.prototype.remove = function(a, c) {
- const b = this.g.size && (this.fastupdate ? this.g.get(a) : this.g.has(a));
+ const b = this.reg.size && (this.fastupdate ? this.reg.get(a) : this.reg.has(a));
if (b) {
if (this.fastupdate) {
for (let d = 0, e; d < b.length; d++) {
@@ -476,9 +476,9 @@ function N(a, c, b) {
}
}
} else {
- P(this.map, a), this.depth && P(this.l, a);
+ P(this.map, a), this.depth && P(this.ctx, a);
}
- c || this.g.delete(a);
+ c || this.reg.delete(a);
}
this.cache && this.cache.remove(a);
return this;
@@ -526,16 +526,16 @@ function P(a, c) {
this.score = a.score || null;
e = !1;
this.map = new Map();
- this.l = new Map();
- this.g = c || (this.fastupdate ? new Map() : new Set());
- this.C = b.resolution || 1;
+ this.ctx = new Map();
+ this.reg = c || (this.fastupdate ? new Map() : new Set());
+ this.A = b.resolution || 1;
this.rtl = d.rtl || a.rtl || !1;
this.cache = (e = a.cache || null) && new E(e);
}
H.prototype.clear = function() {
this.map.clear();
- this.l.clear();
- this.g.clear();
+ this.ctx.clear();
+ this.reg.clear();
this.cache && this.cache.clear();
return this;
};
@@ -543,7 +543,7 @@ H.prototype.append = function(a, c) {
return this.add(a, c, !0);
};
H.prototype.contain = function(a) {
- return this.g.has(a);
+ return this.reg.has(a);
};
H.prototype.update = function(a, c) {
if (this.async) {
@@ -571,7 +571,7 @@ H.prototype.cleanup = function() {
return console.info('Cleanup the index isn\'t required when not using "fastupdate".'), this;
}
Q(this.map);
- this.depth && Q(this.l);
+ this.depth && Q(this.ctx);
return this;
};
H.prototype.searchCache = function(a, c, b) {
diff --git a/dist/flexsearch.light.min.js b/dist/flexsearch.light.min.js
index 0da94ac..dffb152 100644
--- a/dist/flexsearch.light.min.js
+++ b/dist/flexsearch.light.min.js
@@ -8,18 +8,18 @@
(function(self){'use strict';function t(a,c,b){const d=typeof b,e=typeof a;if("undefined"!==d){if("undefined"!==e){if(b){if("function"===e&&d===e)return function(h){return a(b(h))};c=a.constructor;if(c===b.constructor){if(c===Array)return b.concat(a);if(c===Map){var g=new Map(b);for(var f of a)g.set(f[0],f[1]);return g}if(c===Set){f=new Set(b);for(g of a.values())f.add(g);return f}}}return a}return b}return"undefined"===e?c:a}function u(){return Object.create(null)}function v(a,c){return c.length-a.length};const w=/[^\p{L}\p{N}]+/u,x=/(\d{3})/g,y=/(\D)(\d{3})/g,z=/(\d{3})(\D)/g,B="".normalize&&/[\u0300-\u036f]/g;function C(a){if(!this)return new C(...arguments);for(let c=0;cthis.stemmer.get(m)),k=1);this.matcher&&1this.matcher.get(m)),k=1);f&&k&&(f.lengththis.B&&(this.j.clear(),this.o=this.o/1.1|0));f&&b.push(f)}this.finalize&&(b=this.finalize(b)||b);this.cache&&a.length<=this.h&&(this.i.set(a,b),this.i.size>this.B&&(this.i.clear(),this.h=this.h/1.1|0));return b};function D(a){a.m=null;a.i.clear();a.j.clear()};function E(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}E.prototype.set=function(a,c){this.cache.set(this.h=a,c);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};E.prototype.get=function(a){const c=this.cache.get(a);c&&this.h!==a&&(this.cache.delete(a),this.cache.set(this.h=a,c));return c};E.prototype.remove=function(a){for(const c of this.cache){const b=c[0];c[1].includes(a)&&this.cache.delete(b)}};
-E.prototype.clear=function(){this.cache.clear();this.h=""};const F={normalize:function(a){return a.toLowerCase()},dedupe:!1};const G={memory:{resolution:1},performance:{resolution:6,fastupdate:!0,context:{depth:1,resolution:3}},match:{tokenize:"forward"},score:{resolution:9,context:{depth:2,resolution:9}}};u();H.prototype.add=function(a,c,b,d){if(c&&(a||0===a)){if(!d&&!b&&this.g.has(a))return this.update(a,c);c=this.encoder.encode(c);if(d=c.length){const m=u(),l=u(),p=this.depth,r=this.resolution;for(let n=0;ng;h--){f=q.substring(g,h);var k=this.score?this.score(c,q,n,f,g):I(r,d,n,e,g);J(this,l,f,k,a,b)}break}case "reverse":if(1<
-e){for(h=e-1;0f?0:1),d,n,h-1,k-1),L=this.bidirectional&&q>g;J(this,m,L?g:q,A,a,b,L?q:g)}}}}this.fastupdate||this.g.add(a)}}return this};
-function J(a,c,b,d,e,g,f){let h=f?a.l:a.map,k;c[b]&&f&&(k=c[b])[f]||(f?(c=k||(c[b]=u()),c[f]=1,(k=h.get(f))?h=k:h.set(f,h=new Map)):c[b]=1,(k=h.get(b))?h=k:h.set(b,h=[]),h=h[d]||(h[d]=[]),g&&h.includes(e)||(h.push(e),a.fastupdate&&((c=a.g.get(e))?c.push(h):a.g.set(e,[h]))))}function I(a,c,b,d,e){return b&&1c?c?a.slice(b,b+c):a.slice(b):a;let d=[];for(let e=0,g,f;e=f){b-=f;continue}bc&&(g=g.slice(0,c),f=g.length),d.push(g);else{if(f>=c)return f>c&&(g=g.slice(0,c)),g;d=[g]}c-=f;if(!c)break}return d.length?d=1this.stemmer.get(m)),k=1);this.matcher&&1this.matcher.get(m)),k=1);f&&k&&(f.lengththis.v&&(this.i.clear(),this.l=this.l/1.1|0));f&&b.push(f)}this.finalize&&(b=this.finalize(b)||b);this.cache&&a.length<=this.g&&(this.h.set(a,b),this.h.size>this.v&&(this.h.clear(),this.g=this.g/1.1|0));return b};function D(a){a.j=null;a.h.clear();a.i.clear()};function E(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.g=""}E.prototype.set=function(a,c){this.cache.set(this.g=a,c);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};E.prototype.get=function(a){const c=this.cache.get(a);c&&this.g!==a&&(this.cache.delete(a),this.cache.set(this.g=a,c));return c};E.prototype.remove=function(a){for(const c of this.cache){const b=c[0];c[1].includes(a)&&this.cache.delete(b)}};
+E.prototype.clear=function(){this.cache.clear();this.g=""};const F={normalize:function(a){return a.toLowerCase()},dedupe:!1};const G={memory:{resolution:1},performance:{resolution:6,fastupdate:!0,context:{depth:1,resolution:3}},match:{tokenize:"forward"},score:{resolution:9,context:{depth:2,resolution:9}}};u();H.prototype.add=function(a,c,b,d){if(c&&(a||0===a)){if(!d&&!b&&this.reg.has(a))return this.update(a,c);c=this.encoder.encode(c);if(d=c.length){const m=u(),l=u(),p=this.depth,r=this.resolution;for(let n=0;ng;h--){f=q.substring(g,h);var k=this.score?this.score(c,q,n,f,g):I(r,d,n,e,g);J(this,l,f,k,a,b)}break}case "reverse":if(1<
+e){for(h=e-1;0f?0:1),d,n,h-1,k-1),L=this.bidirectional&&q>g;J(this,m,L?g:q,A,a,b,L?q:g)}}}}this.fastupdate||this.reg.add(a)}}return this};
+function J(a,c,b,d,e,g,f){let h=f?a.ctx:a.map,k;c[b]&&f&&(k=c[b])[f]||(f?(c=k||(c[b]=u()),c[f]=1,(k=h.get(f))?h=k:h.set(f,h=new Map)):c[b]=1,(k=h.get(b))?h=k:h.set(b,h=[]),h=h[d]||(h[d]=[]),g&&h.includes(e)||(h.push(e),a.fastupdate&&((c=a.reg.get(e))?c.push(h):a.reg.set(e,[h]))))}function I(a,c,b,d,e){return b&&1c?c?a.slice(b,b+c):a.slice(b):a;let d=[];for(let e=0,g,f;e=f){b-=f;continue}bc&&(g=g.slice(0,c),f=g.length),d.push(g);else{if(f>=c)return f>c&&(g=g.slice(0,c)),g;d=[g]}c-=f;if(!c)break}return d.length?d=1c||e)b=b.slice(e,c+e)}d=b}return d};
-function M(a,c,b,d){return(a=N(this,a,c))&&a.length?K(a,b,d):[]}function O(a,c,b,d,e,g,f){let h=[];if(a){d=Math.min(a.length,d);for(let k=0,m=0,l;k=e)))break;if(h.length){if(f)return K(h,e,0);c.push(h);return}}return!b&&h}function N(a,c,b){let d;b&&(d=a.bidirectional&&c>b);a=b?(a=a.l.get(d?c:b))&&a.get(d?b:c):a.map.get(c);return a};H.prototype.remove=function(a,c){const b=this.g.size&&(this.fastupdate?this.g.get(a):this.g.has(a));if(b){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const g=e.indexOf(a);g===b.length-1?e.pop():e.splice(g,1)}}else P(this.map,a),this.depth&&P(this.l,a);c||this.g.delete(a)}this.cache&&this.cache.remove(a);return this};
-function P(a,c){let b=0;if(a.constructor===Array)for(let d=0,e,g;db.add(a,c)):this.add(a,c)}return this.remove(a).add(a,c)};
-function Q(a){let c=0;if(a.constructor===Array)for(let b=0,d;b=e)))break;if(h.length){if(f)return K(h,e,0);c.push(h);return}}return!b&&h}function N(a,c,b){let d;b&&(d=a.bidirectional&&c>b);a=b?(a=a.ctx.get(d?c:b))&&a.get(d?b:c):a.map.get(c);return a};H.prototype.remove=function(a,c){const b=this.reg.size&&(this.fastupdate?this.reg.get(a):this.reg.has(a));if(b){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const g=e.indexOf(a);g===b.length-1?e.pop():e.splice(g,1)}}else P(this.map,a),this.depth&&P(this.ctx,a);c||this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
+function P(a,c){let b=0;if(a.constructor===Array)for(let d=0,e,g;db.add(a,c)):this.add(a,c)}return this.remove(a).add(a,c)};
+function Q(a){let c=0;if(a.constructor===Array)for(let b=0,d;b this.limit && this.cache.delete(this.cache.keys().next().value);
};
v.prototype.get = function(a) {
const c = this.cache.get(a);
- c && this.B !== a && (this.cache.delete(a), this.cache.set(this.B = a, c));
+ c && this.h !== a && (this.cache.delete(a), this.cache.set(this.h = a, c));
return c;
};
v.prototype.remove = function(a) {
@@ -33,7 +33,7 @@ v.prototype.remove = function(a) {
};
v.prototype.clear = function() {
this.cache.clear();
- this.B = "";
+ this.h = "";
};
const w = new Map([["b", "p"], ["v", "f"], ["w", "f"], ["z", "s"], ["x", "s"], ["d", "t"], ["n", "m"], ["c", "k"], ["g", "k"], ["j", "k"], ["q", "k"], ["i", "e"], ["y", "e"], ["u", "o"]]);
const x = new Map([["ai", "ei"], ["ae", "a"], ["oe", "o"], ["ue", "u"], ["sh", "s"], ["ch", "c"], ["th", "t"], ["ph", "f"], ["pf", "f"]]), z = [/([^aeo])h([aeo$])/g, "$1$2", /([aeo])h([^aeo]|$)/g, "$1$2"];
@@ -67,7 +67,7 @@ function G(a) {
;t();
H.prototype.add = function(a, c, b, d) {
if (c && (a || 0 === a)) {
- if (!d && !b && this.h.has(a)) {
+ if (!d && !b && this.reg.has(a)) {
return this.update(a, c);
}
c = this.encoder.encode(c);
@@ -106,7 +106,7 @@ H.prototype.add = function(a, c, b, d) {
}
default:
if (K(this, m, n, f, a, b), q && 1 < d && l < d - 1) {
- for (e = t(), g = this.C, f = n, h = Math.min(q + 1, d - l), e[f] = 1, k = 1; k < h; k++) {
+ for (e = t(), g = this.A, f = n, h = Math.min(q + 1, d - l), e[f] = 1, k = 1; k < h; k++) {
if ((n = c[this.rtl ? d - 1 - l - k : l + k]) && !e[n]) {
e[n] = 1;
const y = this.score ? this.score(c, f, l, n, k) : I(g + (d / 2 > g ? 0 : 1), d, l, h - 1, k - 1), J = this.bidirectional && n > f;
@@ -117,14 +117,14 @@ H.prototype.add = function(a, c, b, d) {
}
}
}
- this.fastupdate || this.h.add(a);
+ this.fastupdate || this.reg.add(a);
}
}
return this;
};
function K(a, c, b, d, e, f, g) {
- let h = g ? a.A : a.map, k;
- c[b] && g && (k = c[b])[g] || (g ? (c = k || (c[b] = t()), c[g] = 1, (k = h.get(g)) ? h = k : h.set(g, h = new Map())) : c[b] = 1, (k = h.get(b)) ? h = k : h.set(b, h = []), h = h[d] || (h[d] = []), f && h.includes(e) || (h.push(e), a.fastupdate && ((c = a.h.get(e)) ? c.push(h) : a.h.set(e, [h]))));
+ let h = g ? a.ctx : a.map, k;
+ c[b] && g && (k = c[b])[g] || (g ? (c = k || (c[b] = t()), c[g] = 1, (k = h.get(g)) ? h = k : h.set(g, h = new Map())) : c[b] = 1, (k = h.get(b)) ? h = k : h.set(b, h = []), h = h[d] || (h[d] = []), f && h.includes(e) || (h.push(e), a.fastupdate && ((c = a.reg.get(e)) ? c.push(h) : a.reg.set(e, [h]))));
}
function I(a, c, b, d, e) {
return b && 1 < a ? c + (d || 0) <= a ? b + (e || 0) : (a - 1) / (c + (d || 0)) * (b + (e || 0)) + 1 | 0 : 0;
@@ -218,7 +218,7 @@ function I(a, c, b, d, e) {
}
for (let q, r; p < b; p++) {
r = a[p];
- m ? (q = N(this, r, m), q = O(q, d, g, this.C, c, e, 2 === b), g && !1 === q && d.length || (m = r)) : (q = N(this, r), q = O(q, d, g, this.resolution, c, e, 1 === b));
+ m ? (q = N(this, r, m), q = O(q, d, g, this.A, c, e, 2 === b), g && !1 === q && d.length || (m = r)) : (q = N(this, r), q = O(q, d, g, this.resolution, c, e, 1 === b));
if (q) {
return q;
}
@@ -319,11 +319,11 @@ function O(a, c, b, d, e, f, g) {
function N(a, c, b) {
let d;
b && (d = a.bidirectional && c > b);
- a = b ? (a = a.A.get(d ? c : b)) && a.get(d ? b : c) : a.map.get(c);
+ a = b ? (a = a.ctx.get(d ? c : b)) && a.get(d ? b : c) : a.map.get(c);
return a;
}
;H.prototype.remove = function(a, c) {
- const b = this.h.size && (this.fastupdate ? this.h.get(a) : this.h.has(a));
+ const b = this.reg.size && (this.fastupdate ? this.reg.get(a) : this.reg.has(a));
if (b) {
if (this.fastupdate) {
for (let d = 0, e; d < b.length; d++) {
@@ -337,9 +337,9 @@ function N(a, c, b) {
}
}
} else {
- P(this.map, a), this.depth && P(this.A, a);
+ P(this.map, a), this.depth && P(this.ctx, a);
}
- c || this.h.delete(a);
+ c || this.reg.delete(a);
}
this.cache && this.cache.remove(a);
return this;
@@ -383,16 +383,16 @@ function P(a, c) {
this.score = a.score || null;
e = !1;
this.map = new Map();
- this.A = new Map();
- this.h = c || (this.fastupdate ? new Map() : new Set());
- this.C = b.resolution || 1;
+ this.ctx = new Map();
+ this.reg = c || (this.fastupdate ? new Map() : new Set());
+ this.A = b.resolution || 1;
this.rtl = d.rtl || a.rtl || !1;
this.cache = (e = a.cache || null) && new v(e);
}
H.prototype.clear = function() {
this.map.clear();
- this.A.clear();
- this.h.clear();
+ this.ctx.clear();
+ this.reg.clear();
this.cache && this.cache.clear();
return this;
};
@@ -400,7 +400,7 @@ H.prototype.append = function(a, c) {
return this.add(a, c, !0);
};
H.prototype.contain = function(a) {
- return this.h.has(a);
+ return this.reg.has(a);
};
H.prototype.update = function(a, c) {
if (this.async) {
@@ -428,7 +428,7 @@ H.prototype.cleanup = function() {
return console.info('Cleanup the index isn\'t required when not using "fastupdate".'), this;
}
Q(this.map);
- this.depth && Q(this.A);
+ this.depth && Q(this.ctx);
return this;
};
H.prototype.searchCache = function(a, c, b) {
diff --git a/dist/flexsearch.light.module.min.js b/dist/flexsearch.light.module.min.js
index 32d6991..86a7a73 100644
--- a/dist/flexsearch.light.module.min.js
+++ b/dist/flexsearch.light.module.min.js
@@ -5,16 +5,16 @@
* Hosted by Nextapps GmbH
* https://github.com/nextapps-de/flexsearch
*/
-function t(){return Object.create(null)}function u(a,c){return c.length-a.length};function v(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.B=""}v.prototype.set=function(a,c){this.cache.set(this.B=a,c);this.cache.size>this.limit&&this.cache.delete(this.cache.keys().next().value)};v.prototype.get=function(a){const c=this.cache.get(a);c&&this.B!==a&&(this.cache.delete(a),this.cache.set(this.B=a,c));return c};v.prototype.remove=function(a){for(const c of this.cache){const b=c[0];c[1].includes(a)&&this.cache.delete(b)}};
-v.prototype.clear=function(){this.cache.clear();this.B=""};const w=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]);const x=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),z=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];const A={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,"\u00df":2,d:3,t:3,l:4,m:5,n:5,r:6};const B=/[\x00-\x7F]+/g;const C=/[\x00-\x7F]+/g;const D=/[\x00-\x7F]+/g;var E={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:{normalize:function(a){return a.toLowerCase()},dedupe:!1},LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:w},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:w,replacer:z,matcher:x},LatinExtra:{normalize:!0,dedupe:!0,mapper:w,replacer:z.concat([/(?!^)[aeoy]/g,""]),matcher:x},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(let b=0;bf;h--){g=n.substring(f,h);var k=this.score?this.score(c,n,l,g,f):J(r,d,l,e,f);K(this,m,g,k,a,b)}break}case "reverse":if(1<
-e){for(h=e-1;0g?0:1),d,l,h-1,k-1),I=this.bidirectional&&n>f;K(this,p,I?f:n,y,a,b,I?n:f)}}}}this.fastupdate||this.h.add(a)}}return this};
-function K(a,c,b,d,e,f,g){let h=g?a.A:a.map,k;c[b]&&g&&(k=c[b])[g]||(g?(c=k||(c[b]=t()),c[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):c[b]=1,(k=h.get(b))?h=k:h.set(b,h=[]),h=h[d]||(h[d]=[]),f&&h.includes(e)||(h.push(e),a.fastupdate&&((c=a.h.get(e))?c.push(h):a.h.set(e,[h]))))}function J(a,c,b,d,e){return b&&1c?c?a.slice(b,b+c):a.slice(b):a;let d=[];for(let e=0,f,g;e=g){b-=g;continue}bc&&(f=f.slice(0,c),g=f.length),d.push(f);else{if(g>=c)return g>c&&(f=f.slice(0,c)),f;d=[f]}c-=g;if(!c)break}return d.length?d=1this.limit&&this.cache.delete(this.cache.keys().next().value)};v.prototype.get=function(a){const c=this.cache.get(a);c&&this.h!==a&&(this.cache.delete(a),this.cache.set(this.h=a,c));return c};v.prototype.remove=function(a){for(const c of this.cache){const b=c[0];c[1].includes(a)&&this.cache.delete(b)}};
+v.prototype.clear=function(){this.cache.clear();this.h=""};const w=new Map([["b","p"],["v","f"],["w","f"],["z","s"],["x","s"],["d","t"],["n","m"],["c","k"],["g","k"],["j","k"],["q","k"],["i","e"],["y","e"],["u","o"]]);const x=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),z=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];const A={a:"",e:"",i:"",o:"",u:"",y:"",b:1,f:1,p:1,v:1,c:2,g:2,j:2,k:2,q:2,s:2,x:2,z:2,"\u00df":2,d:3,t:3,l:4,m:5,n:5,r:6};const B=/[\x00-\x7F]+/g;const C=/[\x00-\x7F]+/g;const D=/[\x00-\x7F]+/g;var E={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:{normalize:function(a){return a.toLowerCase()},dedupe:!1},LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:w},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:w,replacer:z,matcher:x},LatinExtra:{normalize:!0,dedupe:!0,mapper:w,replacer:z.concat([/(?!^)[aeoy]/g,""]),matcher:x},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(let b=0;bf;h--){g=n.substring(f,h);var k=this.score?this.score(c,n,l,g,f):J(r,d,l,e,f);K(this,m,g,k,a,b)}break}case "reverse":if(1<
+e){for(h=e-1;0g?0:1),d,l,h-1,k-1),I=this.bidirectional&&n>f;K(this,p,I?f:n,y,a,b,I?n:f)}}}}this.fastupdate||this.reg.add(a)}}return this};
+function K(a,c,b,d,e,f,g){let h=g?a.ctx:a.map,k;c[b]&&g&&(k=c[b])[g]||(g?(c=k||(c[b]=t()),c[g]=1,(k=h.get(g))?h=k:h.set(g,h=new Map)):c[b]=1,(k=h.get(b))?h=k:h.set(b,h=[]),h=h[d]||(h[d]=[]),f&&h.includes(e)||(h.push(e),a.fastupdate&&((c=a.reg.get(e))?c.push(h):a.reg.set(e,[h]))))}function J(a,c,b,d,e){return b&&1c?c?a.slice(b,b+c):a.slice(b):a;let d=[];for(let e=0,f,g;e=g){b-=g;continue}bc&&(f=f.slice(0,c),g=f.length),d.push(f);else{if(g>=c)return g>c&&(f=f.slice(0,c)),f;d=[f]}c-=g;if(!c)break}return d.length?d=1c||e)b=b.slice(e,c+e)}d=b}return d};
-function M(a,c,b,d){return(a=N(this,a,c))&&a.length?L(a,b,d):[]}function O(a,c,b,d,e,f,g){let h=[];if(a){d=Math.min(a.length,d);for(let k=0,p=0,m;k=e)))break;if(h.length){if(g)return L(h,e,0);c.push(h);return}}return!b&&h}function N(a,c,b){let d;b&&(d=a.bidirectional&&c>b);a=b?(a=a.A.get(d?c:b))&&a.get(d?b:c):a.map.get(c);return a};H.prototype.remove=function(a,c){const b=this.h.size&&(this.fastupdate?this.h.get(a):this.h.has(a));if(b){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const f=e.indexOf(a);f===b.length-1?e.pop():e.splice(f,1)}}else P(this.map,a),this.depth&&P(this.A,a);c||this.h.delete(a)}this.cache&&this.cache.remove(a);return this};
-function P(a,c){let b=0;if(a.constructor===Array)for(let d=0,e,f;db.add(a,c)):this.add(a,c)}return this.remove(a).add(a,c)};
-function Q(a){let c=0;if(a.constructor===Array)for(let b=0,d;b=e)))break;if(h.length){if(g)return L(h,e,0);c.push(h);return}}return!b&&h}function N(a,c,b){let d;b&&(d=a.bidirectional&&c>b);a=b?(a=a.ctx.get(d?c:b))&&a.get(d?b:c):a.map.get(c);return a};H.prototype.remove=function(a,c){const b=this.reg.size&&(this.fastupdate?this.reg.get(a):this.reg.has(a));if(b){if(this.fastupdate)for(let d=0,e;de.length)e.pop();else{const f=e.indexOf(a);f===b.length-1?e.pop():e.splice(f,1)}}else P(this.map,a),this.depth&&P(this.ctx,a);c||this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
+function P(a,c){let b=0;if(a.constructor===Array)for(let d=0,e,f;db.add(a,c)):this.add(a,c)}return this.remove(a).add(a,c)};
+function Q(a){let c=0;if(a.constructor===Array)for(let b=0,d;b {
+// const split = res.split(":");
+// split[1] = split[1].split("|").map(ids => ids ? ids.split(",") : null);
+// return split;
+// });
+// flexsearch.map = new Map(map);
+//
+// input = input.substring(pos_map + 1);
+// if(input){
+// const ctx = input.split(";").map(res => {
+// const split = res.split(":");
+// const context = split[0].split("+");
+// const map = new Map([
+// [context[1], split[1].split("|").map(ids => ids ? ids.split(",") : null)]
+// ]);
+// return [context[0], map]
+// });
+// flexsearch.ctx = new Map(ctx);
+// }
+// }
\ No newline at end of file
diff --git a/dist/module-debug/webpack.js b/dist/module-debug/webpack.js
index 4481606..0a1343e 100644
--- a/dist/module-debug/webpack.js
+++ b/dist/module-debug/webpack.js
@@ -24,10 +24,15 @@ import Charset from "./charset.js";
/** @export */Index.prototype.removeAsync;
/** @export */Index.prototype.export;
/** @export */Index.prototype.import;
+/** @export */Index.prototype.serialize;
/** @export */Index.prototype.mount;
/** @export */Index.prototype.commit;
/** @export */Index.db;
+/** @export */Index.prototype.reg;
+/** @export */Index.prototype.map;
+/** @export */Index.prototype.ctx;
+
/** @export */Document.prototype.add;
/** @export */Document.prototype.append;
/** @export */Document.prototype.search;
diff --git a/dist/module-min/index.js b/dist/module-min/index.js
index e34a00e..99be301 100644
--- a/dist/module-min/index.js
+++ b/dist/module-min/index.js
@@ -1 +1 @@
-import{IndexOptions,ContextOptions}from"./type.js";import Encoder from"./encoder.js";import Cache,{searchCache}from"./cache.js";import Charset from"./charset.js";import{KeystoreMap,KeystoreSet}from"./keystore.js";import{is_array,is_string}from"./common.js";import{exportIndex,importIndex}from"./serialize.js";import default_encoder from"./charset/latin/default.js";import apply_preset from"./preset.js";import apply_async from"./async.js";import tick from"./profiler.js";import"./index/add.js";import"./index/search.js";import"./index/remove.js";export default function Index(a,b){if(!this)return new Index(a);!1,a=a?apply_preset(a):{};const c=a.context||{},d=a.encode||a.encoder||default_encoder;this.encoder=d.encode?d:"object"==typeof d?new Encoder(d):{encode:d},this.compress=a.compress||a.compression||!1;let e;this.resolution=a.resolution||9,this.tokenize=e=a.tokenize||"strict",this.depth="strict"===e&&c.depth||0,this.bidirectional=!1!==c.bidirectional,this.fastupdate=!!a.fastupdate,this.score=a.score||null,e=a.keystore||0,e&&(this.keystore=e),this.map=e&&!0?new KeystoreMap(e):new Map,this.ctx=e&&!0?new KeystoreMap(e):new Map,this.reg=b||(this.fastupdate?e&&!0?new KeystoreMap(e):new Map:e&&!0?new KeystoreSet(e):new Set),this.resolution_ctx=c.resolution||1,this.rtl=d.rtl||a.rtl||!1,this.cache=(e=a.cache||null)&&new Cache(e),this.resolve=!1!==a.resolve,(e=a.db)&&(this.db=e.mount(this)),this.commit_auto=!1!==a.commit,this.commit_task=[],this.commit_timer=null}Index.prototype.mount=function(a){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),a.mount(this)},Index.prototype.commit=function(a,b){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.commit(this,a,b)};export function autoCommit(a,b,c){a.commit_timer||(a.commit_timer=setTimeout(function(){a.commit_timer=null,a.db.commit(a,b,c)},0))}Index.prototype.clear=function(){return this.map.clear(),this.ctx.clear(),this.reg.clear(),this.cache&&this.cache.clear(),this.db&&(this.commit_timer&&clearTimeout(this.commit_timer),this.commit_timer=null,this.commit_task=[{clear:!0}]),this},Index.prototype.append=function(a,b){return this.add(a,b,!0)},Index.prototype.contain=function(a){return this.db?this.db.has(a):this.reg.has(a)},Index.prototype.update=function(a,b){if(this.async){const c=this,d=this.remove(a);return d.then?d.then(()=>c.add(a,b)):this.add(a,b)}return this.remove(a).add(a,b)};function cleanup_index(a){let b=0;if(is_array(a))for(let c,d=0;dc.add(a,b)):this.add(a,b)}return this.remove(a).add(a,b)};function cleanup_index(a){let b=0;if(is_array(a))for(let c,d=0;d{f=a}));let h,i;switch(e||(e=0)){case 0:if(h="reg",this.fastupdate){i=create_object();for(let a of this.reg.keys())i[a]=1}else i=this.reg;break;case 1:h="cfg",i={doc:0,opt:this.optimize?1:0};break;case 2:h="map",i=this.map;break;case 3:h="ctx",i=this.ctx;break;default:return void("undefined"==typeof c&&f&&f());}return async(a,b||this,c,h,d,e,i,f),g}export function importIndex(a,b){b&&(is_string(b)&&(b=JSON.parse(b)),"cfg"===a?this.optimize=!!b.opt:"reg"===a?(this.fastupdate=!1,this.reg=b):"map"===a?this.map=b:"ctx"===a?this.ctx=b:void 0)}export function exportDocument(a,b,c,d,e,f){let g;if("undefined"==typeof f&&(g=new Promise(a=>{f=a})),e||(e=0),d||(d=0),d{f=a}));let h,i;switch(e||(e=0)){case 0:if(h="reg",this.fastupdate){i=create_object();for(let a of this.reg.keys())i[a]=1}else i=this.reg;break;case 1:h="cfg",i={doc:0,opt:this.optimize?1:0};break;case 2:h="map",i=this.map;break;case 3:h="ctx",i=this.ctx;break;default:return void("undefined"==typeof c&&f&&f());}return async(a,b||this,c,h,d,e,i,f),g}export function importIndex(a,b){b&&(is_string(b)&&(b=JSON.parse(b)),"cfg"===a?this.optimize=!!b.opt:"reg"===a?(this.fastupdate=!1,this.reg=b):"map"===a?this.map=b:"ctx"===a?this.ctx=b:void 0)}export function exportDocument(a,b,c,d,e,f){let g;if("undefined"==typeof f&&(g=new Promise(a=>{f=a})),e||(e=0),d||(d=0),d {
+// const split = res.split(":");
+// split[1] = split[1].split("|").map(ids => ids ? ids.split(",") : null);
+// return split;
+// });
+// flexsearch.map = new Map(map);
+//
+// input = input.substring(pos_map + 1);
+// if(input){
+// const ctx = input.split(";").map(res => {
+// const split = res.split(":");
+// const context = split[0].split("+");
+// const map = new Map([
+// [context[1], split[1].split("|").map(ids => ids ? ids.split(",") : null)]
+// ]);
+// return [context[0], map]
+// });
+// flexsearch.ctx = new Map(ctx);
+// }
+// }
\ No newline at end of file
diff --git a/dist/module/webpack.js b/dist/module/webpack.js
index 4481606..0a1343e 100644
--- a/dist/module/webpack.js
+++ b/dist/module/webpack.js
@@ -24,10 +24,15 @@ import Charset from "./charset.js";
/** @export */Index.prototype.removeAsync;
/** @export */Index.prototype.export;
/** @export */Index.prototype.import;
+/** @export */Index.prototype.serialize;
/** @export */Index.prototype.mount;
/** @export */Index.prototype.commit;
/** @export */Index.db;
+/** @export */Index.prototype.reg;
+/** @export */Index.prototype.map;
+/** @export */Index.prototype.ctx;
+
/** @export */Document.prototype.add;
/** @export */Document.prototype.append;
/** @export */Document.prototype.search;
diff --git a/src/index.js b/src/index.js
index fa6be4d..c611952 100644
--- a/src/index.js
+++ b/src/index.js
@@ -30,7 +30,7 @@ import Cache, { searchCache } from "./cache.js";
import Charset from "./charset.js";
import { KeystoreMap, KeystoreSet } from "./keystore.js";
import { is_array, is_string } from "./common.js";
-import { exportIndex, importIndex } from "./serialize.js";
+import { exportIndex, importIndex, serialize } from "./serialize.js";
import default_encoder from "./charset/latin/default.js";
import apply_preset from "./preset.js";
import apply_async from "./async.js";
@@ -262,6 +262,7 @@ if(SUPPORT_SERIALIZE){
Index.prototype.export = exportIndex;
Index.prototype.import = importIndex;
+ Index.prototype.serialize = serialize;
}
if(SUPPORT_ASYNC){
diff --git a/src/serialize.js b/src/serialize.js
index d7dac2b..5b74fb8 100644
--- a/src/serialize.js
+++ b/src/serialize.js
@@ -279,3 +279,162 @@ export function importDocument(key, data){
}
}
}
+
+/*
+reg: "1,2,3,4,5,6,7,8,9"
+map: "gulliver:1,2,3|4,5,6|7,8,9;"
+ctx: "gulliver+travel:1,2,3|4,5,6|7,8,9;"
+*/
+
+/**
+ * @this Index
+ * @param {boolean} withFunctionWrapper
+ * @return {string}
+ */
+
+export function serialize(withFunctionWrapper = true){
+
+ if(!this.reg.size) return "";
+
+ let reg = '';
+ let type = "";
+ for(const key of this.reg.keys()){
+ type || (type = typeof key);
+ reg += (reg ? ',' : '') + (type === "string" ? '"' + key + '"' : key);
+ }
+ reg = 'index.reg=new Set([' + reg + ']);';
+
+ let map = '';
+ for(const item of this.map.entries()){
+ const key = item[0];
+ const value = item[1];
+ let res = '';
+ for(let i = 0, ids; i < value.length; i++){
+ ids = value[i] || [''];
+ let str = '';
+ for(let j = 0; j < ids.length; j++){
+ str += (str ? ',' : '') + (type === "string" ? '"' + ids[j] + '"' : ids[j]);
+ }
+ str = '[' + str + ']';
+ res += (res ? ',' : '') + str;
+ }
+ res = '["' + key + '",[' + res + ']]';
+ map += (map ? ',' : '') + res;
+ }
+ map = "index.map=new Map([" + map + "]);";
+
+ let ctx = '';
+ for(const context of this.ctx.entries()){
+ const key_ctx = context[0];
+ const value_ctx = context[1];
+
+ for(const item of value_ctx.entries()){
+ const key = item[0];
+ const value = item[1];
+
+ let res = '';
+ for(let i = 0, ids; i < value.length; i++){
+ ids = value[i] || [''];
+ let str = '';
+ for(let j = 0; j < ids.length; j++){
+ str += (str ? ',' : '') + (type === "string" ? '"' + ids[j] + '"' : ids[j]);
+ }
+ str = '[' + str + ']';
+ res += (res ? ',' : '') + str;
+ }
+ res = 'new Map([["' + key + '",[' + res + ']]])';
+ res = '["' + key_ctx + '",' + res + ']';
+ ctx += (ctx ? ',' : '') + res;
+ }
+ }
+ ctx = "index.ctx=new Map([" + ctx + "]);";
+
+ return withFunctionWrapper
+ ? "function inject(index){" + reg + map + ctx + "}"
+ : reg + map + ctx
+}
+
+// export function exportSnapshot(flexsearch){
+//
+// if(!flexsearch.reg.size) return;
+//
+// let reg = '';
+// let type = "";
+// for(const key of flexsearch.reg.keys()){
+// type || (type = typeof key);
+// reg += (reg ? ',' : '') + (type === "string" ? '"' + key + '"' : key);
+// }
+// reg = "f.reg=[" + reg + "];";
+//
+// let map = '';
+// for(const item of flexsearch.map.entries()){
+// const key = item[0];
+// const value = item[1];
+// let res = '';
+// for(let i = 0, ids; i < value.length; i++){
+// ids = value[i] || [''];
+// let str = '';
+// for(let j = 0; j < ids.length; j++){
+// str += (str ? ',' : '') + (type === "string" ? '"' + ids[j] + '"' : ids[j]);
+// }
+// str = "[
+// res += (res ? '|' : '') + str;
+// }
+// map += (map ? ';' : '') + key + ':' + res;
+// }
+//
+//
+// let ctx = '';
+// for(const context of flexsearch.ctx.entries()){
+// const key_ctx = context[0];
+// const value_ctx = context[1];
+//
+// for(const item of value_ctx.entries()){
+// const key = item[0];
+// const value = item[1];
+//
+// let res = '';
+// for(let i = 0, ids; i < value.length; i++){
+// ids = value[i] || [''];
+// let str = '';
+// for(let j = 0; j < ids.length; j++){
+// str += (str ? ',' : '') + (type === "string" ? '"' + ids[j] + '"' : ids[j]);
+// }
+// res += (res ? '|' : '') + str;
+// }
+// ctx += (ctx ? ';' : '') + key_ctx + '+' + key + ':' + res;
+// }
+// }
+//
+// return reg + '#' + map + '#' + ctx;
+// }
+//
+// export function importSnapshot(flexsearch, input){
+//
+// if(!input) return;
+//
+// let pos_reg = input.indexOf("#");
+// const reg = input.substring(0, pos_reg).split(",");
+// flexsearch.reg = new Set(reg);
+//
+// let pos_map = input.indexOf("#", pos_reg + 1);
+// const map = input.substring(pos_reg + 1, pos_map).split(";").map(res => {
+// const split = res.split(":");
+// split[1] = split[1].split("|").map(ids => ids ? ids.split(",") : null);
+// return split;
+// });
+// flexsearch.map = new Map(map);
+//
+// input = input.substring(pos_map + 1);
+// if(input){
+// const ctx = input.split(";").map(res => {
+// const split = res.split(":");
+// const context = split[0].split("+");
+// const map = new Map([
+// [context[1], split[1].split("|").map(ids => ids ? ids.split(",") : null)]
+// ]);
+// return [context[0], map]
+// });
+// flexsearch.ctx = new Map(ctx);
+// }
+// }
diff --git a/src/webpack.js b/src/webpack.js
index 0255f2c..60e510b 100644
--- a/src/webpack.js
+++ b/src/webpack.js
@@ -6,7 +6,8 @@ import {
SUPPORT_ENCODER,
SUPPORT_CHARSET,
SUPPORT_PERSISTENT,
- SUPPORT_RESOLVER
+ SUPPORT_RESOLVER,
+ SUPPORT_SERIALIZE
} from "./config.js";
// <-- COMPILER BLOCK
import {
@@ -46,10 +47,17 @@ import Charset from "./charset.js";
/** @export */ Index.prototype.removeAsync;
/** @export */ Index.prototype.export;
/** @export */ Index.prototype.import;
+/** @export */ Index.prototype.serialize;
/** @export */ Index.prototype.mount;
/** @export */ Index.prototype.commit;
/** @export */ Index.db;
+if(SUPPORT_SERIALIZE){
+/** @export */ Index.prototype.reg;
+/** @export */ Index.prototype.map;
+/** @export */ Index.prototype.ctx;
+}
+
/** @export */ Document.prototype.add;
/** @export */ Document.prototype.append;
/** @export */ Document.prototype.search;