1
0
mirror of https://github.com/nextapps-de/flexsearch.git synced 2025-09-26 13:28:58 +02:00

fix imports

This commit is contained in:
Thomas Wilkerling
2025-03-12 15:07:16 +01:00
parent 59e95a2951
commit 4fe11882ca
53 changed files with 1918 additions and 1843 deletions

View File

@@ -138,12 +138,12 @@ 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.L = null, this.T = "number" === typeof c ? c : 2e5, this.H = new Map(), this.J = new Map(), this.A = this.h = 128;
this.L = null, this.S = "number" === typeof c ? c : 2e5, this.H = new Map(), this.J = new Map(), this.A = this.h = 128;
}
this.B = "";
this.P = null;
this.O = null;
this.M = "";
this.R = null;
this.P = null;
if (this.matcher) {
for (const d of this.matcher.keys()) {
this.B += (this.B ? "|" : "") + d;
@@ -197,8 +197,8 @@ G.prototype.encode = function(a) {
}
}
let k;
this.stemmer && 2 < g.length && (this.R || (this.R = new RegExp("(?!^)(" + this.M + ")$")), 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);
this.stemmer && 2 < g.length && (this.P || (this.P = new RegExp("(?!^)(" + this.M + ")$")), g = g.replace(this.P, l => this.stemmer.get(l)), k = 1);
this.matcher && 1 < g.length && (this.O || (this.O = new RegExp("(" + this.B + ")", "g")), g = g.replace(this.O, 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 = "";
@@ -212,11 +212,11 @@ G.prototype.encode = function(a) {
g = g.replace(this.replacer[e], this.replacer[e + 1]);
}
}
this.cache && h.length <= this.A && (this.J.set(h, g), this.J.size > this.T && (this.J.clear(), this.A = this.A / 1.1 | 0));
this.cache && h.length <= this.A && (this.J.set(h, g), this.J.size > this.S && (this.J.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));
this.cache && a.length <= this.h && (this.H.set(a, c), this.H.size > this.S && (this.H.clear(), this.h = this.h / 1.1 | 0));
return c;
};
function la(a) {
@@ -542,7 +542,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.S, f = p, h = Math.min(n + 1, d - r), e[f] = 1, k = 1; k < h; k++) {
for (e = z(), g = this.R, 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;
@@ -558,7 +558,7 @@ O.prototype.add = function(a, b, c, d) {
b = "";
}
}
this.db && (b || this.commit_task.push({del:a}), this.U && Ca(this));
this.db && (b || this.commit_task.push({del:a}), this.T && Ca(this));
return this;
};
function Q(a, b, c, d, e, f, g) {
@@ -1132,7 +1132,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.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));
r ? (t = await V(p, x, r, 0, 0, !1, !1), t = Ka(t, d, f, p.R), f && !1 === t && d.length || (r = x)) : (t = await V(p, x, "", 0, 0, !1, !1), t = Ka(t, d, f, p.resolution));
if (t) {
return t;
}
@@ -1156,7 +1156,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.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));
r ? (p = V(this, t, r, 0, 0, !1, !1), p = Ka(p, d, f, this.R), f && !1 === p && d.length || (r = t)) : (p = V(this, t, "", 0, 0, !1, !1), p = Ka(p, d, f, this.resolution));
if (p) {
return p;
}
@@ -1184,26 +1184,19 @@ function U(a, b, c, d, e, f, g) {
return e ? h : h && h.length ? e ? R(h, c, d) : new S(h) : e ? [] : new S([]);
}) : a && a.length ? e ? R(a, c, d) : new S(a) : e ? [] : new S([]);
}
function Ka(a, b, c, d, e, f, g) {
let h = [];
function Ka(a, b, c, d) {
let e = [];
if (a) {
d = Math.min(a.length, d);
for (let k = 0, l = 0, m; k < d; k++) {
if (m = a[k]) {
if (f && m && g && (m.length <= f ? (f -= m.length, m = null) : (m = m.slice(f), f = 0)), m && (h[k] = m, g && (l += m.length, l >= e))) {
break;
for (let f = 0, g; f < d; f++) {
(g = a[f]) && g && (e[f] = g);
}
}
}
if (h.length) {
if (g) {
return R(h, e, 0);
}
b.push(h);
if (e.length) {
b.push(e);
return;
}
}
return !c && h;
return !c && e;
}
function V(a, b, c, d, e, f, g, h) {
let k;
@@ -1233,7 +1226,7 @@ function V(a, b, c, d, e, f, g, h) {
}
b || this.reg.delete(a);
}
this.db && (this.commit_task.push({del:a}), this.U && Ca(this));
this.db && (this.commit_task.push({del:a}), this.T && Ca(this));
this.cache && this.cache.remove(a);
return this;
};
@@ -1269,7 +1262,7 @@ function La(a, b) {
a = {};
}
c = a.context || {};
const d = a.encode || a.encoder || na;
const d = B(a.encoder) ? va[a.encoder] : a.encode || a.encoder || na;
this.encoder = d.encode ? d : "object" === typeof d ? new G(d) : {encode:d};
let e;
this.resolution = a.resolution || 9;
@@ -1282,14 +1275,14 @@ function La(a, b) {
this.map = e ? new L(e) : new Map();
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.R = 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.db = this.mount(e);
}
this.U = !1 !== a.commit;
this.T = !1 !== a.commit;
this.commit_task = [];
this.commit_timer = null;
}
@@ -1476,35 +1469,39 @@ async function Na(a) {
}
}
;let Oa = 0;
function W(a) {
function W(a = {}) {
function b(f) {
function g(h) {
h = h.data || h;
const k = h.id, l = k && e.h[k];
l && (l(h.msg), delete e.h[k]);
}
this.worker = f || Pa(c, d, a.worker);
if (this.worker.then) {
return this.worker.then(b);
}
this.h = z();
if (this.worker) {
d ? this.worker.on("message", g) : this.worker.onmessage = g;
if (a.config) {
return new Promise(function(h) {
e.h[++Oa] = function() {
h(e);
};
e.worker.postMessage({id:Oa, task:"init", factory:c, options:a});
});
}
this.worker.postMessage({task:"init", factory:c, options:a});
return this.worker;
}
}
if (!this) {
return new W(a);
}
a || (a = {});
let b = "undefined" !== typeof self && (self || window)._factory;
b && (b = b.toString());
const c = "undefined" === typeof window, d = this;
(async function() {
function e(f) {
f = f.data || f;
const g = f.id, h = g && d.N[g];
h && (h(f.msg), delete d.N[g]);
}
this.worker = await Pa(b, c, a.worker);
this.N = z();
if (this.worker) {
c ? this.worker.on("message", e) : this.worker.onmessage = e;
if (a.config) {
return delete a.db, new Promise(function(f) {
d.N[++Oa] = function() {
f(d);
};
d.worker.postMessage({id:Oa, task:"init", factory:b, options:a});
});
}
this.worker.postMessage({task:"init", factory:b, options:a});
}
}).call(this);
let c = "undefined" !== typeof self ? self._factory : "undefined" !== typeof window ? window._factory : null;
c && (c = c.toString());
const d = "undefined" === typeof window, e = this;
this.worker = b.call(this);
}
X("add");
X("append");
@@ -1512,20 +1509,20 @@ X("search");
X("update");
X("remove");
function X(a) {
W.prototype[a] = W.prototype[a + "Async"] = function() {
W.prototype[a] = W.prototype[a + "Async"] = async function() {
const b = this, c = [].slice.call(arguments);
var d = c[c.length - 1];
let e;
"function" === typeof d && (e = d, c.splice(c.length - 1, 1));
d = new Promise(function(f) {
b.N[++Oa] = f;
b.h[++Oa] = f;
b.worker.postMessage({task:a, id:Oa, args:c});
});
return e ? (d.then(e), this) : d;
};
}
async function Pa(a, b, c) {
return b ? "undefined" !== typeof module ? new (require("worker_threads")["Worker"])(__dirname + "/node/node.js") : new ((await import("worker_threads"))["Worker"])((1,eval)("import.meta.dirname") + "/node/node.mjs") : a ? new window.Worker(URL.createObjectURL(new Blob(["onmessage=" + Na.toString()], {type:"text/javascript"}))) : new window.Worker(B(c) ? c : "worker/worker.js", {type:"module"});
function Pa(a, b, c) {
return b ? "undefined" !== typeof module ? new (require("worker_threads")["Worker"])(__dirname + "/node/node.js") : import("worker_threads").then(function(worker){ return new worker["Worker"]((1,eval)("import.meta.dirname") + "/node/node.mjs"); }) : a ? new window.Worker(URL.createObjectURL(new Blob(["onmessage=" + Na.toString()], {type:"text/javascript"}))) : new window.Worker(B(c) ? c : "worker/worker.js", {type:"module"});
}
;Y.prototype.add = function(a, b, c) {
C(a) && (b = a, a = ca(b, this.key));
@@ -1547,7 +1544,7 @@ async function Pa(a, b, c) {
}
if (this.tag) {
for (d = 0; d < this.F.length; d++) {
var f = this.F[d], g = this.O[d];
var f = this.F[d], g = this.N[d];
e = this.tag.get(g);
let h = z();
if ("function" === typeof f) {
@@ -1599,7 +1596,7 @@ async function Pa(a, b, c) {
if (!m) {
continue;
}
l = [l.V];
l = [l.U];
} else if (B(l) || l.constructor === String) {
h[l] = b[l];
continue;
@@ -1884,7 +1881,7 @@ function Ta(a) {
return new Y(a);
}
const b = a.document || a.doc || a;
var c, d;
let c, d;
this.G = [];
this.field = [];
this.K = [];
@@ -1896,36 +1893,13 @@ function Ta(a) {
this.cache = (c = a.cache || null) && new H(c);
a.cache = !1;
this.worker = a.worker;
c = new Map();
d = b.index || b.field || b;
B(d) && (d = [d]);
for (let e = 0, f, g; e < d.length; e++) {
f = d[e];
B(f) || (g = f, f = f.field);
g = C(g) ? Object.assign({}, a, g) : a;
if (this.worker) {
const h = new W(g);
c.set(f, h);
h.worker || (this.worker = !1);
}
this.worker || c.set(f, new O(g, this.reg));
g.custom ? this.G[e] = g.custom : (this.G[e] = Va(f, this.K), g.filter && ("string" === typeof this.G[e] && (this.G[e] = new String(this.G[e])), this.G[e].I = g.filter));
this.field[e] = f;
}
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.C[e] = f.custom, f.custom.V = g) : (this.C[e] = Va(g, this.K), f.filter && ("string" === typeof this.C[e] && (this.C[e] = new String(this.C[e])), this.C[e].I = f.filter));
}
}
this.index = c;
this.index = Wa.call(this, a, b);
this.tag = null;
if (c = b.tag) {
if ("string" === typeof c && (c = [c]), c.length) {
this.tag = new Map();
this.F = [];
this.O = [];
this.N = [];
for (let e = 0, f, g; e < c.length; e++) {
f = c[e];
g = f.field || f;
@@ -1933,19 +1907,32 @@ function Ta(a) {
throw Error("The tag field from the document descriptor is undefined.");
}
f.custom ? this.F[e] = f.custom : (this.F[e] = Va(g, this.K), f.filter && ("string" === typeof this.F[e] && (this.F[e] = new String(this.F[e])), this.F[e].I = f.filter));
this.O[e] = g;
this.N[e] = g;
this.tag.set(g, new Map());
}
}
}
if (this.worker) {
a = [];
for (const e of this.index.values()) {
e.worker.then && a.push(e.worker);
}
if (a.length) {
const e = this;
return Promise.all(a).then(function() {
return e;
});
}
} else {
a.db && this.mount(a.db);
}
}
u = Y.prototype;
u.mount = function(a) {
let b = this.field;
if (this.tag) {
for (let e = 0, f; e < this.O.length; e++) {
f = this.O[e];
for (let e = 0, f; e < this.N.length; e++) {
f = this.N[e];
var c = void 0;
this.index.set(f, c = new O({}, this.reg));
b === this.field && (b = b.slice(0));
@@ -1982,6 +1969,31 @@ u.destroy = function() {
}
return Promise.all(a);
};
function Wa(a, b) {
const c = new Map();
let d = b.index || b.field || b;
B(d) && (d = [d]);
for (let e = 0, f, g; e < d.length; e++) {
f = d[e];
B(f) || (g = f, f = f.field);
g = C(g) ? Object.assign({}, a, g) : a;
if (this.worker) {
const h = new W(g);
h.worker ? c.set(f, h) : this.worker = !1;
}
this.worker || c.set(f, new O(g, this.reg));
g.custom ? this.G[e] = g.custom : (this.G[e] = Va(f, this.K), g.filter && ("string" === typeof this.G[e] && (this.G[e] = new String(this.G[e])), this.G[e].I = g.filter));
this.field[e] = f;
}
if (this.C) {
a = b.store;
B(a) && (a = [a]);
for (let e = 0, f, g; e < a.length; e++) {
f = a[e], g = f.field || f, f.custom ? (this.C[e] = f.custom, f.custom.U = g) : (this.C[e] = Va(g, this.K), f.filter && ("string" === typeof this.C[e] && (this.C[e] = new String(this.C[e])), this.C[e].I = f.filter));
}
}
return c;
}
function Va(a, b) {
const c = a.split(":");
let d = 0;
@@ -2106,10 +2118,10 @@ u.import = function(a, b) {
}
};
Ba(Y.prototype);
const Wa = "undefined" !== typeof window && (window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB), Xa = ["map", "ctx", "tag", "reg", "cfg"];
function Ya(a, b = {}) {
const Xa = "undefined" !== typeof window && (window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB), Ya = ["map", "ctx", "tag", "reg", "cfg"];
function Za(a, b = {}) {
if (!this) {
return new Ya(a, b);
return new Za(a, b);
}
"object" === typeof a && (b = a = a.name);
a || console.info("Default storage space was used, because a name was not passed.");
@@ -2119,7 +2131,7 @@ function Ya(a, b = {}) {
this.db = null;
this.h = {};
}
u = Ya.prototype;
u = Za.prototype;
u.mount = function(a) {
if (!a.encoder) {
return a.mount(this);
@@ -2131,10 +2143,10 @@ u.open = function() {
let a = this;
navigator.storage && navigator.storage.persist();
return this.db || new Promise(function(b, c) {
const d = Wa.open(a.id + (a.field ? ":" + a.field : ""), 1);
const d = Xa.open(a.id + (a.field ? ":" + a.field : ""), 1);
d.onupgradeneeded = function() {
const e = a.db = this.result;
Xa.forEach(f => {
Ya.forEach(f => {
e.objectStoreNames.contains(f) || e.createObjectStore(f);
});
};
@@ -2160,16 +2172,17 @@ u.close = function() {
this.db = null;
};
u.destroy = function() {
return Wa.deleteDatabase(this.id + (this.field ? ":" + this.field : ""));
return Xa.deleteDatabase(this.id + (this.field ? ":" + this.field : ""));
};
u.clear = function() {
const a = this.db.transaction(Xa, "readwrite");
for (let b = 0; b < Xa.length; b++) {
a.objectStore(Xa[b]).clear();
const a = this.db.transaction(Ya, "readwrite");
for (let b = 0; b < Ya.length; b++) {
a.objectStore(Ya[b]).clear();
}
return Z(a);
};
u.get = function(a, b, c = 0, d = 0, e = !0, f = !1) {
console.log("!!!!!!!!!!!");
a = this.db.transaction(b ? "ctx" : "map", "readonly").objectStore(b ? "ctx" : "map").get(b ? b + ":" + a : a);
const g = this;
return Z(a).then(function(h) {
@@ -2269,7 +2282,7 @@ u.commit = async function(a, b, c) {
b = !0;
break;
} else {
d[e] = f.W;
d[e] = f.V;
}
}
b || (c || (d = d.concat(ba(a.reg))), d.length && await this.remove(d));
@@ -2349,7 +2362,7 @@ u.commit = async function(a, b, c) {
}
}), a.map.clear(), a.ctx.clear(), a.tag && a.tag.clear(), a.store && a.store.clear(), a.document || a.reg.clear());
};
function Za(a, b, c) {
function $a(a, b, c) {
const d = a.value;
let e, f, g = 0;
for (let h = 0, k; h < d.length; h++) {
@@ -2378,17 +2391,17 @@ u.remove = function(a) {
return Promise.all([this.transaction("map", "readwrite", function(b) {
b.openCursor().onsuccess = function() {
const c = this.result;
c && Za(c, a);
c && $a(c, a);
};
}), this.transaction("ctx", "readwrite", function(b) {
b.openCursor().onsuccess = function() {
const c = this.result;
c && Za(c, a);
c && $a(c, a);
};
}), this.transaction("tag", "readwrite", function(b) {
b.openCursor().onsuccess = function() {
const c = this.result;
c && Za(c, a, !0);
c && $a(c, a, !0);
};
}), this.transaction("reg", "readwrite", function(b) {
for (let c = 0; c < a.length; c++) {
@@ -2408,9 +2421,9 @@ function Z(a) {
a = null;
});
}
;const $a = {Index:O, Charset:va, Encoder:G, Document:Y, Worker:W, Resolver:S, IndexedDB:Ya, Language:{}}, ab = self;
let bb;
(bb = ab.define) && bb.amd ? bb([], function() {
return $a;
}) : "object" === typeof ab.exports ? ab.exports = $a : ab.FlexSearch = $a;
;const ab = {Index:O, Charset:va, Encoder:G, Document:Y, Worker:W, Resolver:S, IndexedDB:Za, Language:{}}, bb = self;
let db;
(db = bb.define) && db.amd ? db([], function() {
return ab;
}) : "object" === typeof bb.exports ? bb.exports = ab : bb.FlexSearch = ab;
}(this));

View File

@@ -15,21 +15,21 @@ 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;b<arguments.length;b++)this.assign(arguments[b])}
F.prototype.assign=function(a){this.normalize=y(a.normalize,!0,this.normalize);let b=a.include,c=b||a.exclude||a.split;if("object"===typeof c){let d=!b,e="";a.include||(e+="\\p{Z}");c.letter&&(e+="\\p{L}");c.number&&(e+="\\p{N}",d=!!b);c.symbol&&(e+="\\p{S}");c.punctuation&&(e+="\\p{P}");c.control&&(e+="\\p{C}");if(c=c.char)e+="object"===typeof c?c.join(""):c;try{this.split=new RegExp("["+(b?"^":"")+e+"]+","u")}catch(f){this.split=/\s+/}this.numeric=d}else{try{this.split=y(c,fa,this.split)}catch(d){this.split=
/\s+/}this.numeric=y(this.numeric,!0)}this.prepare=y(a.prepare,null,this.prepare);this.finalize=y(a.finalize,null,this.finalize);ka||(this.mapper=new Map(ea));this.rtl=a.rtl||!1;this.dedupe=y(a.dedupe,!0,this.dedupe);this.filter=y((c=a.filter)&&new Set(c),null,this.filter);this.matcher=y((c=a.matcher)&&new Map(c),null,this.matcher);this.mapper=y((c=a.mapper)&&new Map(c),null,this.mapper);this.stemmer=y((c=a.stemmer)&&new Map(c),null,this.stemmer);this.replacer=y(a.replacer,null,this.replacer);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.L=null,this.T="number"===typeof c?c:2E5,this.H=new Map,this.J=new Map,this.A=this.h=128;this.B="";this.P=null;this.M="";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.M+=(this.M?"|":"")+d;return this};
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.L=null,this.S="number"===typeof c?c:2E5,this.H=new Map,this.J=new Map,this.A=this.h=128;this.B="";this.O=null;this.M="";this.P=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.M+=(this.M?"|":"")+d;return this};
F.prototype.encode=function(a){if(this.cache&&a.length<=this.h)if(this.L){if(this.H.has(a))return this.H.get(a)}else this.L=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&&3<a.length&&(a=a.replace(ia,"$1 $2").replace(ja,"$1 $2").replace(ha,"$1 "));const b=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer);
let c=[],d=this.split||""===this.split?a.split(this.split):a;for(let f=0,g,h;f<d.length;f++){if(!(g=h=d[f]))continue;if(g.length<this.minlength)continue;if(b){c.push(g);continue}if(this.filter&&this.filter.has(g))continue;if(this.cache&&g.length<=this.A)if(this.L){var e=this.J.get(g);if(e||""===e){e&&c.push(e);continue}}else this.L=setTimeout(la,0,this);let k;this.stemmer&&2<g.length&&(this.R||(this.R=new RegExp("(?!^)("+this.M+")$")),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="";for(let l=0,m="",n,q;l<g.length;l++)n=g.charAt(l),n===m&&this.dedupe||((q=this.mapper&&this.mapper.get(n))||""===q?q===m&&this.dedupe||!(m=q)||(e+=q):e+=m=n);g=e}if(g&&this.replacer)for(e=0;g&&e<this.replacer.length;e+=2)g=g.replace(this.replacer[e],this.replacer[e+1]);
this.cache&&h.length<=this.A&&(this.J.set(h,g),this.J.size>this.T&&(this.J.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.L=null;a.H.clear();a.J.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)};
let c=[],d=this.split||""===this.split?a.split(this.split):a;for(let f=0,g,h;f<d.length;f++){if(!(g=h=d[f]))continue;if(g.length<this.minlength)continue;if(b){c.push(g);continue}if(this.filter&&this.filter.has(g))continue;if(this.cache&&g.length<=this.A)if(this.L){var e=this.J.get(g);if(e||""===e){e&&c.push(e);continue}}else this.L=setTimeout(la,0,this);let k;this.stemmer&&2<g.length&&(this.P||(this.P=new RegExp("(?!^)("+this.M+")$")),g=g.replace(this.P,l=>this.stemmer.get(l)),k=1);this.matcher&&
1<g.length&&(this.O||(this.O=new RegExp("("+this.B+")","g")),g=g.replace(this.O,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="";for(let l=0,m="",n,q;l<g.length;l++)n=g.charAt(l),n===m&&this.dedupe||((q=this.mapper&&this.mapper.get(n))||""===q?q===m&&this.dedupe||!(m=q)||(e+=q):e+=m=n);g=e}if(g&&this.replacer)for(e=0;g&&e<this.replacer.length;e+=2)g=g.replace(this.replacer[e],this.replacer[e+1]);
this.cache&&h.length<=this.A&&(this.J.set(h,g),this.J.size>this.S&&(this.J.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.S&&(this.H.clear(),this.h=this.h/1.1|0));return c};function la(a){a.L=null;a.H.clear();a.J.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<a.length;c++){var b=a[c];let d=b.charAt(0),e=ra[d];for(let f=1,g;f<b.length&&(g=b.charAt(f),"h"===
g||"w"===g||!(g=ra[g])||g===e||(d+=g,e=g,4!==d.length));f++);a[c]=d}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(sa," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(ta,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(ua," ")}}};function wa(a,b,c,d){let e=[];for(let f=0,g;f<a.index.length;f++)if(g=a.index[f],b>=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;g<b.index.length;g++){h=b.index[g];k=h.indexOf(e);if(0<=k)return f+k;f+=h.length}return-1};if("includes"===d)return function(e){for(let f=
0;f<b.index.length;f++)if(b.index[f].includes(e))return!0;return!1};if("slice"===d)return function(e,f){return wa(b,e||0,f||b.length,!1)};if("splice"===d)return function(e,f){return wa(b,e||0,f||b.length,!0)};if("constructor"===d)return Array;if("symbol"!==typeof d)return(c=b.index[d/2**31|0])&&c[d]},set(c,d,e){c=d/2**31|0;(b.index[c]||(b.index[c]=[]))[d]=e;b.length++;return!0}})}J.prototype.clear=function(){this.index.length=0};J.prototype.destroy=function(){this.proxy=this.index=null};
J.prototype.push=function(){};function K(a=8){if(!this)return new K(a);this.index=z();this.B=[];this.size=0;32<a?(this.h=xa,this.A=BigInt(a)):(this.h=ya,this.A=a)}K.prototype.get=function(a){const b=this.index[this.h(a)];return b&&b.get(a)};K.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.B.push(d))};
function M(a=8){if(!this)return new M(a);this.index=z();this.h=[];32<a?(this.B=xa,this.A=BigInt(a)):(this.B=ya,this.A=a)}M.prototype.add=function(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=K.prototype;u.has=M.prototype.has=function(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.B(a)];b&&b.delete(a)&&this.size--};
J.prototype.push=function(){};function L(a=8){if(!this)return new L(a);this.index=z();this.B=[];this.size=0;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)];return b&&b.get(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.B.push(d))};
function M(a=8){if(!this)return new M(a);this.index=z();this.h=[];32<a?(this.B=xa,this.A=BigInt(a)):(this.B=ya,this.A=a)}M.prototype.add=function(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.B(a)];return b&&b.has(a)};u.delete=M.prototype.delete=function(a){const b=this.index[this.B(a)];b&&b.delete(a)&&this.size--};
u.clear=M.prototype.clear=function(){this.index=z();this.h=[];this.size=0};u.values=M.prototype.values=function*(){for(let a=0;a<this.h.length;a++)for(let b of this.h[a].values())yield b};u.keys=M.prototype.keys=function*(){for(let a=0;a<this.h.length;a++)for(let b of this.h[a].keys())yield b};u.entries=M.prototype.entries=function*(){for(let a=0;a<this.h.length;a++)for(let b of this.h[a].entries())yield b};
function ya(a){let b=2**this.A-1;if("number"==typeof a)return a&b;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.A?c+2**31:c}function xa(a){let b=BigInt(2)**this.A-BigInt(1);var c=typeof a;if("bigint"===c)return a&b;if("number"===c)return BigInt(a)&b;c=BigInt(0);let d=this.A+BigInt(1);for(let e=0;e<a.length;e++)c=(c*d^BigInt(a.charCodeAt(e)))&b;return c};function za(a,b,c,d,e,f,g,h){(d=a(c?c+"."+d:d,JSON.stringify(g)))&&d.then?d.then(function(){b.export(a,b,c,e,f+1,h)}):b.export(a,b,c,e,f+1,h)};const Aa={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 Ba(a){N.call(a,"add");N.call(a,"append");N.call(a,"search");N.call(a,"update");N.call(a,"remove")}function N(a){this[a+"Async"]=function(){var b=arguments;const c=b[b.length-1];let d;"function"===typeof c&&(d=c,delete b[b.length-1]);b=this[a].apply(this,b);d&&(b.then?b.then(d):d(b));return b}};z();O.prototype.add=function(a,b,c,d){if(b&&(a||0===a)){if(!d&&!c&&this.reg.has(a))return this.update(a,b);b=this.encoder.encode(b);if(d=b.length){const l=z(),m=z(),n=this.depth,q=this.resolution;for(let r=0;r<d;r++){let p=b[this.rtl?d-1-r:r];var e=p.length;if(e&&(n||!m[p])){var f=this.score?this.score(b,p,r,null,0):P(q,d,r),g="";switch(this.tokenize){case "full":if(2<e){for(f=0;f<e;f++)for(var h=e;h>f;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;0<h;h--)g=p[h]+g,k=this.score?this.score(b,p,r,g,h):P(q,d,r,e,h),Q(this,m,g,k,a,c);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=p[h],Q(this,m,g,f,a,c);break}default:if(Q(this,m,p,f,a,c),n&&1<d&&r<d-1)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;Q(this,l,x?f:p,t,a,c,x?p:f)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
(b||this.commit_task.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]))}}
e){for(h=e-1;0<h;h--)g=p[h]+g,k=this.score?this.score(b,p,r,g,h):P(q,d,r,e,h),Q(this,m,g,k,a,c);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=p[h],Q(this,m,g,f,a,c);break}default:if(Q(this,m,p,f,a,c),n&&1<d&&r<d-1)for(e=z(),g=this.R,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;Q(this,l,x?f:p,t,a,c,x?p:f)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
(b||this.commit_task.push({del:a}),this.T&&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&&1<a?b+(d||0)<=a?c+(e||0):(a-1)/(b+(d||0))*(c+(e||0))+1|0:0};function R(a,b,c,d){if(1===a.length)return a=a[0],a=c||a.length>b?b?a.slice(c,c+b):a.slice(c):a,d?Da(a):a;let e=[];for(let f=0,g,h;f<a.length;f++)if((g=a[f])&&(h=g.length)){if(c){if(c>=h){c-=h;continue}c<h&&(g=b?g.slice(c,c+b):g.slice(c),h=g.length,c=0)}if(e.length)h>b&&(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=1<e.length?[].concat.apply([],e):e[0];return d?Da(e):e}
function Da(a){for(let b=0;b<a.length;b++)a[b]={score:b,id:a[b]};return a};S.prototype.or=function(){const a=this;let b=arguments;var c=b[0];if(c.then)return c.then(function(){return a.or.apply(a,b)});if(c[0]&&c[0].index)return this.or.apply(this,c);let d=[];c=[];let e=0,f=0,g,h;for(let k=0,l;k<b.length;k++)if(l=b[k]){let m;if(l.constructor===S)m=l.result;else if(l.constructor===Array)m=l;else if(l.index)l.resolve=!1,m=l.index.search(l).result;else if(l.and)m=this.and(l.and);else if(l.xor)m=this.xor(l.xor);else if(l.not)m=this.not(l.not);else{e=l.limit||0;f=l.offset||0;
g=l.enrich;h=l.resolve;continue}d[k]=m;m.then&&c.push(m)}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.D);return h?a.result:a});this.result.length&&(d=[this.result].concat(d));this.result=Ea(d,e,f,g,h,a.D);return h?this.result:this};
@@ -42,12 +42,12 @@ Ha.call(a,d,e);return e?a.result:a});this.result=Ha.call(this,d,e);return e?this
S.prototype.offset=function(a){if(this.result.length){const b=[];let c=0;for(let d=0,e;d<this.result.length;d++)e=this.result[d],e.length+c<a?c+=e.length:(b[d]=e.slice(a-c),c=a);this.result=b}return this};S.prototype.boost=function(a){this.D+=a;return this};S.prototype.resolve=function(a,b,c){T=1;const d=this.result;this.result=this.index=null;return d.length?("object"===typeof a&&(c=a.enrich,b=a.offset,a=a.limit),R(d,a||100,b,c)):d};function Ia(a,b,c,d,e){var f=a.length,g=[],h;var k=z();for(let n=0,q,r,p,t;n<b;n++)for(var l=0;l<f;l++)if(p=a[l],n<p.length&&(q=p[n]))for(var m=0;m<q.length;m++)r=q[m],(h=k[r])?k[r]++:(h=0,k[r]=1),t=g[h]||(g[h]=[]),t.push(r);if(a=g.length)if(e){if(1<g.length){e=g;f=[];g=z();k=e.length;for(l=0;l<k;l++)for(a=e[l],h=a.length,m=0;m<h;m++)if(b=a[m],!g[b])if(g[b]=1,d)d--;else if(f.push(b),f.length===c)break;c=f}else c=g[0];g=c}else{if(a<f)return[];g=g[a-1];if(g.length>c||d)g=g.slice(d,c+d)}return g}
function Ja(a,b){const c=z(),d=[];for(let e=0,f;e<b.length;e++){f=b[e];for(let g=0;g<f.length;g++)c[f[g]]=1}for(let e=0,f;e<a.length;e++)f=a[e],1===c[f]&&(d.push(f),c[f]=2);return d};let T=1;
O.prototype.search=function(a,b,c){c||(!b&&C(a)?(c=a,a=""):C(b)&&(c=b,b=0));let d=[],e;let f,g=0,h,k,l;if(c){a=c.query||a;b=c.limit||b;g=c.offset||0;var m=c.context;f=c.suggest;(h=T&&!1!==c.resolve)||(T=0);k=h&&c.enrich;l=this.db&&c.tag}else h=this.resolve||T;a=this.encoder.encode(a);e=a.length;b||!h||(b=100);if(1===e)return U.call(this,a[0],"",b,g,h,k,l);m=this.depth&&!1!==m;if(2===e&&m&&!f)return U.call(this,a[0],a[1],b,g,h,k,l);let n=c=0;if(1<e){const p=z(),t=[];for(let x=0,A;x<e;x++)if((A=a[x])&&
!p[A]){if(f||this.db||V(this,A))t.push(A),p[A]=1;else return h?d:new S(d);const w=A.length;c=Math.max(c,w);n=n?Math.min(n,w):w}a=t;e=a.length}if(!e)return h?d:new S(d);let q=0,r;if(1===e)return U.call(this,a[0],"",b,g,h,k,l);if(2===e&&m&&!f)return U.call(this,a[0],a[1],b,g,h,k,l);1<e&&(m?(r=a[0],q=1):9<c&&3<c/n&&a.sort(aa));if(this.db){if(this.db.search&&(m=this.db.search(this,a,b,g,f,h,k,l),!1!==m))return m;const p=this;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.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;if(f&&q===e-1){let A=d.length;if(!A){if(r){r="";q=-1;continue}return d}if(1===A)return h?R(d[0],b,g):new S(d[0])}}return h?Ia(d,p.resolution,b,g,f):new S(d[0])}()}for(let p,t;q<e;q++){t=a[q];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;if(f&&q===e-1){m=d.length;if(!m){if(r){r="";q=-1;continue}return d}if(1===
m)return h?R(d[0],b,g):new S(d[0])}}d=Ia(d,this.resolution,b,g,f);return h?d:new S(d)};function U(a,b,c,d,e,f,g){a=V(this,a,b,c,d,e,f,g);return this.db?a.then(function(h){return e?h:h&&h.length?e?R(h,c,d):new S(h):e?[]:new S([])}):a&&a.length?e?R(a,c,d):new S(a):e?[]:new S([])}
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<d;k++)if(m=a[k])if(f&&m&&g&&(m.length<=f?(f-=m.length,m=null):(m=m.slice(f),f=0)),m&&(h[k]=m,g&&(l+=m.length,l>=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;d<c.length;d++){if(e=c[d])if(2>e.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.commit_task.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;d<a.length;d++){if((e=a[d])&&e.length)if(f=e.indexOf(b),0<=f){1<e.length?(e.splice(f,1),c++):delete a[d];break}else c++}else for(let d of a){const e=d[0],f=La(d[1],b);f?c+=f:a.delete(e)}return c};function O(a,b){if(!this)return new O(a);if(a){var c=B(a)?a:a.preset;c&&(a=Object.assign({},Aa[c],a))}else a={};c=a.context||{};const d=a.encode||a.encoder||na;this.encoder=d.encode?d:"object"===typeof d?new F(d):{encode:d};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)&&(this.keystore=e);this.map=e?new K(e):new Map;this.ctx=
e?new K(e):new Map;this.reg=b||(this.fastupdate?e?new K(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 G(e);this.resolve=!1!==a.resolve;if(e=a.db)this.db=e.mount(this);this.U=!1!==a.commit;this.commit_task=[];this.commit_timer=null}u=O.prototype;u.mount=function(a){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return a.mount(this)};
!p[A]){if(f||this.db||V(this,A))t.push(A),p[A]=1;else return h?d:new S(d);const w=A.length;c=Math.max(c,w);n=n?Math.min(n,w):w}a=t;e=a.length}if(!e)return h?d:new S(d);let q=0,r;if(1===e)return U.call(this,a[0],"",b,g,h,k,l);if(2===e&&m&&!f)return U.call(this,a[0],a[1],b,g,h,k,l);1<e&&(m?(r=a[0],q=1):9<c&&3<c/n&&a.sort(aa));if(this.db){if(this.db.search&&(m=this.db.search(this,a,b,g,f,h,k,l),!1!==m))return m;const p=this;return async function(){for(let t,x;q<e;q++){x=a[q];r?(t=await V(p,x,r,0,0,!1,
!1),t=Ka(t,d,f,p.R),f&&!1===t&&d.length||(r=x)):(t=await V(p,x,"",0,0,!1,!1),t=Ka(t,d,f,p.resolution));if(t)return t;if(f&&q===e-1){let A=d.length;if(!A){if(r){r="";q=-1;continue}return d}if(1===A)return h?R(d[0],b,g):new S(d[0])}}return h?Ia(d,p.resolution,b,g,f):new S(d[0])}()}for(let p,t;q<e;q++){t=a[q];r?(p=V(this,t,r,0,0,!1,!1),p=Ka(p,d,f,this.R),f&&!1===p&&d.length||(r=t)):(p=V(this,t,"",0,0,!1,!1),p=Ka(p,d,f,this.resolution));if(p)return p;if(f&&q===e-1){m=d.length;if(!m){if(r){r="";q=-1;continue}return d}if(1===
m)return h?R(d[0],b,g):new S(d[0])}}d=Ia(d,this.resolution,b,g,f);return h?d:new S(d)};function U(a,b,c,d,e,f,g){a=V(this,a,b,c,d,e,f,g);return this.db?a.then(function(h){return e?h:h&&h.length?e?R(h,c,d):new S(h):e?[]:new S([])}):a&&a.length?e?R(a,c,d):new S(a):e?[]:new S([])}function Ka(a,b,c,d){let e=[];if(a){d=Math.min(a.length,d);for(let f=0,g;f<d;f++)(g=a[f])&&g&&(e[f]=g);if(e.length){b.push(e);return}}return!c&&e}
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;d<c.length;d++){if(e=c[d])if(2>e.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.commit_task.push({del:a}),this.T&&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;d<a.length;d++){if((e=a[d])&&e.length)if(f=e.indexOf(b),0<=f){1<e.length?(e.splice(f,1),c++):delete a[d];break}else c++}else for(let d of a){const e=d[0],f=La(d[1],b);f?c+=f:a.delete(e)}return c};function O(a,b){if(!this)return new O(a);if(a){var c=B(a)?a:a.preset;c&&(a=Object.assign({},Aa[c],a))}else a={};c=a.context||{};const d=B(a.encoder)?va[a.encoder]:a.encode||a.encoder||na;this.encoder=d.encode?d:"object"===typeof d?new F(d):{encode:d};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)&&(this.keystore=e);this.map=
e?new L(e):new Map;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.R=c.resolution||1;this.rtl=d.rtl||a.rtl||!1;this.cache=(e=a.cache||null)&&new G(e);this.resolve=!1!==a.resolve;if(e=a.db)this.db=this.mount(e);this.T=!1!==a.commit;this.commit_task=[];this.commit_timer=null}u=O.prototype;u.mount=function(a){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return a.mount(this)};
u.commit=function(a,b){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return this.db.commit(this,a,b)};u.destroy=function(){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return this.db.destroy()};function Ca(a){a.commit_timer||(a.commit_timer=setTimeout(function(){a.commit_timer=null;a.db.commit(a,void 0,void 0)},0))}
u.clear=function(){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}]);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.reg.has(a)};u.update=function(a,b){const c=this,d=this.remove(a);return d&&d.then?d.then(()=>c.add(a,b)):this.add(a,b)};
function Ma(a){let b=0;if(a.constructor===Array)for(let c=0,d;c<a.length;c++)(d=a[c])&&(b+=d.length);else for(const c of a){const d=c[0],e=Ma(c[1]);e?b+=e:a.delete(d)}return b}u.cleanup=function(){if(!this.fastupdate)return this;Ma(this.map);this.depth&&Ma(this.ctx);return this};u.searchCache=ma;
@@ -55,37 +55,39 @@ u.export=function(a,b,c,d,e,f){let g=!0;"undefined"===typeof f&&(g=new Promise(l
u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "cfg":this.h=!!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;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;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 W(a){if(!this)return new W(a);a||(a={});let b="undefined"!==typeof self&&(self||window)._factory;b&&(b=b.toString());const c="undefined"===typeof window,d=this;(async function(){function e(f){f=f.data||f;const g=f.id,h=g&&d.N[g];h&&(h(f.msg),delete d.N[g])}this.worker=await Pa(b,c,a.worker);this.N=z();if(this.worker){c?this.worker.on("message",e):this.worker.onmessage=e;if(a.config)return delete a.db,new Promise(function(f){d.N[++Oa]=function(){f(d)};d.worker.postMessage({id:Oa,task:"init",
factory:b,options:a})});this.worker.postMessage({task:"init",factory:b,options:a})}}).call(this)}X("add");X("append");X("search");X("update");X("remove");function X(a){W.prototype[a]=W.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;"function"===typeof d&&(e=d,c.splice(c.length-1,1));d=new Promise(function(f){b.N[++Oa]=f;b.worker.postMessage({task:a,id:Oa,args:c})});return e?(d.then(e),this):d}}
async function Pa(a,b,c){return b?"undefined"!==typeof module?new (require("worker_threads")["Worker"])(__dirname + "/node/node.js"):new ((await import("worker_threads"))["Worker"])((1,eval)("import.meta.dirname") + "/node/node.mjs"):a?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+Na.toString()],{type:"text/javascript"}))):new window.Worker(B(c)?c:"worker/worker.js",{type:"module"})};Y.prototype.add=function(a,b,c){C(a)&&(b=a,a=ca(b,this.key));if(b&&(a||0===a)){if(!c&&this.reg.has(a))return this.update(a,b);for(let h=0,k;h<this.field.length;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.I,!e||e(b))k.constructor===String?k=[""+k]:B(k)&&(k=[k]),Qa(b,k,this.K,0,d,a,k[0],c)}if(this.tag)for(d=0;d<this.F.length;d++){var f=this.F[d];e=this.tag.get(this.O[d]);let h=z();if("function"===typeof f){if(f=f(b),!f)continue}else{var g=
function W(a={}){function b(f){function g(h){h=h.data||h;const k=h.id,l=k&&e.h[k];l&&(l(h.msg),delete e.h[k])}this.worker=f||Pa(c,d,a.worker);if(this.worker.then)return this.worker.then(b);this.h=z();if(this.worker){d?this.worker.on("message",g):this.worker.onmessage=g;if(a.config)return new Promise(function(h){e.h[++Oa]=function(){h(e)};e.worker.postMessage({id:Oa,task:"init",factory:c,options:a})});this.worker.postMessage({task:"init",factory:c,options:a});return this.worker}}if(!this)return new W(a);let c=
"undefined"!==typeof self?self._factory:"undefined"!==typeof window?window._factory:null;c&&(c=c.toString());const d="undefined"===typeof window,e=this;this.worker=b.call(this)}X("add");X("append");X("search");X("update");X("remove");
function X(a){W.prototype[a]=W.prototype[a+"Async"]=async function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;"function"===typeof d&&(e=d,c.splice(c.length-1,1));d=new Promise(function(f){b.h[++Oa]=f;b.worker.postMessage({task:a,id:Oa,args:c})});return e?(d.then(e),this):d}}
function Pa(a,b,c){return b?"undefined"!==typeof module?new (require("worker_threads")["Worker"])(__dirname + "/node/node.js"):import("worker_threads").then(function(worker){ return new worker["Worker"]((1,eval)("import.meta.dirname") + "/node/node.mjs"); }):a?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+Na.toString()],{type:"text/javascript"}))):new window.Worker(B(c)?c:"worker/worker.js",{type:"module"})};Y.prototype.add=function(a,b,c){C(a)&&(b=a,a=ca(b,this.key));if(b&&(a||0===a)){if(!c&&this.reg.has(a))return this.update(a,b);for(let h=0,k;h<this.field.length;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.I,!e||e(b))k.constructor===String?k=[""+k]:B(k)&&(k=[k]),Qa(b,k,this.K,0,d,a,k[0],c)}if(this.tag)for(d=0;d<this.F.length;d++){var f=this.F[d];e=this.tag.get(this.N[d]);let h=z();if("function"===typeof f){if(f=f(b),!f)continue}else{var g=
f.I;if(g&&!g(b))continue;f.constructor===String&&(f=""+f);f=ca(b,f)}if(e&&f){B(f)&&(f=[f]);for(let k=0,l,m;k<f.length;k++)if(l=f[k],!h[l]&&(h[l]=1,(g=e.get(l))?m=g:e.set(l,m=[]),!c||!m.includes(a))){if(m.length===2**31-1){g=new J(m);if(this.fastupdate)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.reg.get(a))?g.push(m):this.reg.set(a,[m]))}}}if(this.store&&(!c||!this.store.has(a))){let h;if(this.C){h=z();for(let k=0,l;k<this.C.length;k++){l=
this.C[k];if((c=l.I)&&!c(b))continue;let m;if("function"===typeof l){m=l(b);if(!m)continue;l=[l.V]}else if(B(l)||l.constructor===String){h[l]=b[l];continue}Ra(b,h,l,0,l[0],m)}}this.store.set(a,h||b)}}return this};function Ra(a,b,c,d,e,f){a=a[e];if(d===c.length-1)b[e]=f||a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)Ra(a,b,c,d,e);else b=b[e]||(b[e]=z()),e=c[++d],Ra(a,b,c,d,e)}
this.C[k];if((c=l.I)&&!c(b))continue;let m;if("function"===typeof l){m=l(b);if(!m)continue;l=[l.U]}else if(B(l)||l.constructor===String){h[l]=b[l];continue}Ra(b,h,l,0,l[0],m)}}this.store.set(a,h||b)}}return this};function Ra(a,b,c,d,e,f){a=a[e];if(d===c.length-1)b[e]=f||a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)Ra(a,b,c,d,e);else b=b[e]||(b[e]=z()),e=c[++d],Ra(a,b,c,d,e)}
function Qa(a,b,c,d,e,f,g,h){if(a=a[g])if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(f,a[b],!0,!0);return}a=a.join(" ")}e.add(f,a,h,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)Qa(a,b,c,d,e,f,g,h);else g=b[++d],Qa(a,b,c,d,e,f,g,h);else e.db&&e.remove(f)};Y.prototype.search=function(a,b,c,d){c||(!b&&C(a)?(c=a,a=""):C(b)&&(c=b,b=0));let e=[],f=[],g;let h;let k;let l,m=0;if(c){c.constructor===Array&&(c={index:c});a=c.query||a;g=c.pluck;h=c.merge;k=g||c.field||c.index;var n=this.tag&&c.tag;var q=this.store&&c.enrich;var r=c.suggest;b=c.limit||b;l=c.offset||0;b||(b=100);if(n&&(!this.db||!d)){n.constructor!==Array&&(n=[n]);var p=[];for(let w=0,v;w<n.length;w++)if(v=n[w],v.field&&v.tag){var t=v.tag;if(t.constructor===Array)for(var x=0;x<t.length;x++)p.push(v.field,
t[x]);else p.push(v.field,t)}else{t=Object.keys(v);for(let H=0,I,D;H<t.length;H++)if(I=t[H],D=v[I],D.constructor===Array)for(x=0;x<D.length;x++)p.push(I,D[x]);else p.push(I,D)}n=p;if(!a){r=[];if(p.length)for(n=0;n<p.length;n+=2){if(this.db){d=this.index.get(p[n]);if(!d)continue;r.push(d=d.db.tag(p[n+1],b,l,q))}else d=Sa.call(this,p[n],p[n+1],b,l,q);e.push({field:p[n],tag:p[n+1],result:d})}return r.length?Promise.all(r).then(function(w){for(let v=0;v<w.length;v++)e[v].result=w[v];return e}):e}}B(k)&&
(k=[k])}k||(k=this.field);p=!d&&(this.worker||this.db)&&[];let A;for(let w=0,v,H,I;w<k.length;w++){H=k[w];if(this.db&&this.tag&&!this.G[w])continue;let D;B(H)||(D=H,H=D.field,a=D.query||a,b=D.limit||b,r=D.suggest||r);if(d)v=d[w];else if(t=D||c,x=this.index.get(H),n&&(this.db&&(t.tag=n,A=x.db.support_tag_search,t.field=k),A||(t.enrich=!1)),p){p[w]=x.searchAsync(a,b,t);t&&q&&(t.enrich=q);continue}else v=x.search(a,b,t),t&&q&&(t.enrich=q);I=v&&v.length;if(n&&I){t=[];x=0;if(this.db&&d){if(!A)for(let L=
k.length;L<d.length;L++){let E=d[L];if(E&&E.length)x++,t.push(E);else if(!r)return e}}else for(let L=0,E,cb;L<n.length;L+=2){E=this.tag.get(n[L]);if(!E)if(r)continue;else return e;if(cb=(E=E&&E.get(n[L+1]))&&E.length)x++,t.push(E);else if(!r)return e}if(x){v=Ja(v,t);I=v.length;if(!I&&!r)return e;x--}}if(I)f[m]=H,e.push(v),m++;else if(1===k.length)return e}if(p){if(this.db&&n&&n.length&&!A)for(q=0;q<n.length;q+=2){d=this.index.get(n[q]);if(!d)if(r)continue;else return e;p.push(d.db.tag(n[q+1],b,l,
(k=[k])}k||(k=this.field);p=!d&&(this.worker||this.db)&&[];let A;for(let w=0,v,H,I;w<k.length;w++){H=k[w];if(this.db&&this.tag&&!this.G[w])continue;let D;B(H)||(D=H,H=D.field,a=D.query||a,b=D.limit||b,r=D.suggest||r);if(d)v=d[w];else if(t=D||c,x=this.index.get(H),n&&(this.db&&(t.tag=n,A=x.db.support_tag_search,t.field=k),A||(t.enrich=!1)),p){p[w]=x.searchAsync(a,b,t);t&&q&&(t.enrich=q);continue}else v=x.search(a,b,t),t&&q&&(t.enrich=q);I=v&&v.length;if(n&&I){t=[];x=0;if(this.db&&d){if(!A)for(let K=
k.length;K<d.length;K++){let E=d[K];if(E&&E.length)x++,t.push(E);else if(!r)return e}}else for(let K=0,E,cb;K<n.length;K+=2){E=this.tag.get(n[K]);if(!E)if(r)continue;else return e;if(cb=(E=E&&E.get(n[K+1]))&&E.length)x++,t.push(E);else if(!r)return e}if(x){v=Ja(v,t);I=v.length;if(!I&&!r)return e;x--}}if(I)f[m]=H,e.push(v),m++;else if(1===k.length)return e}if(p){if(this.db&&n&&n.length&&!A)for(q=0;q<n.length;q+=2){d=this.index.get(n[q]);if(!d)if(r)continue;else return e;p.push(d.db.tag(n[q+1],b,l,
!1))}const w=this;return Promise.all(p).then(function(v){return v.length?w.search(a,b,c,v):v})}if(!m)return e;if(g&&(!q||!this.store))return e[0];p=[];for(let w=0,v;w<f.length;w++){v=e[w];q&&v.length&&!v[0].doc&&(this.db?p.push(v=this.index.get(this.field[0]).db.enrich(v)):v.length&&(v=Ta.call(this,v)));if(g)return v;e[w]={field:f[w],result:v}}return q&&this.db&&p.length?Promise.all(p).then(function(w){for(let v=0;v<w.length;v++)e[v].result=w[v];return h?Ua(e,b):e}):h?Ua(e,b):e};
function Ua(a,b){const c=[],d=z();for(let e=0,f,g;e<a.length;e++){f=a[e];g=f.result;for(let h=0,k,l,m;h<g.length;h++)if(l=g[h],k=l.id,m=d[k])m.push(f.field);else{if(c.length===b)return c;l.field=d[k]=[f.field];c.push(l)}}return c}function Sa(a,b,c,d,e){a=this.tag.get(a);if(!a)return[];if((b=(a=a&&a.get(b))&&a.length-d)&&0<b){if(b>c||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<a.length;c++)d=a[c],b[c]={id:d,doc:this.store.get(d)};return b};function Y(a){if(!this)return new Y(a);const b=a.document||a.doc||a;var c,d;this.G=[];this.field=[];this.K=[];this.key=(c=b.key||b.id)&&Va(c,this.K)||"id";(d=a.keystore||0)&&(this.keystore=d);this.reg=(this.fastupdate=!!a.fastupdate)?d?new K(d):new Map:d?new M(d):new Set;this.C=(c=b.store||null)&&!0!==c&&[];this.store=c&&(d?new K(d):new Map);this.cache=(c=a.cache||null)&&new G(c);a.cache=!1;this.worker=a.worker;c=new Map;d=b.index||b.field||b;B(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++){f=d[e];B(f)||
(g=f,f=f.field);g=C(g)?Object.assign({},a,g):a;if(this.worker){const h=new W(g);c.set(f,h);h.worker||(this.worker=!1)}this.worker||c.set(f,new O(g,this.reg));g.custom?this.G[e]=g.custom:(this.G[e]=Va(f,this.K),g.filter&&("string"===typeof this.G[e]&&(this.G[e]=new String(this.G[e])),this.G[e].I=g.filter));this.field[e]=f}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.C[e]=f.custom,f.custom.V=g):(this.C[e]=Va(g,this.K),f.filter&&("string"===typeof this.C[e]&&
(this.C[e]=new String(this.C[e])),this.C[e].I=f.filter))}this.index=c;this.tag=null;if(c=b.tag)if("string"===typeof c&&(c=[c]),c.length){this.tag=new Map;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.F[e]=f.custom:(this.F[e]=Va(g,this.K),f.filter&&("string"===typeof this.F[e]&&(this.F[e]=new String(this.F[e])),this.F[e].I=f.filter));this.O[e]=g;this.tag.set(g,new Map)}}a.db&&this.mount(a.db)}
u=Y.prototype;u.mount=function(a){let b=this.field;if(this.tag)for(let e=0,f;e<this.O.length;e++){f=this.O[e];var c=void 0;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)}c=[];const d={db:a.db,type:a.type,fastupdate:a.fastupdate};for(let e=0,f,g;e<b.length;e++){d.field=g=b[e];f=this.index.get(g);const h=new a.constructor(a.id,d);h.id=a.id;c[e]=h.mount(f);f.document=!0;e?f.bypass=!0:f.store=this.store}this.db=!0;return Promise.all(c)};
u.commit=async function(a,b){const c=[];for(const d of this.index.values())c.push(d.db.commit(d,a,b));await Promise.all(c);this.reg.clear()};u.destroy=function(){const a=[];for(const b of this.index.values())a.push(b.destroy());return Promise.all(a)};function Va(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}u.append=function(a,b){return this.add(a,b,!0)};
u.update=function(a,b){return this.remove(a).add(a,b)};u.remove=function(a){C(a)&&(a=ca(a,this.key));for(var b of this.index.values())b.remove(a,!0);if(this.reg.has(a)){if(this.tag&&!this.fastupdate)for(let c of this.tag.values())for(let d of c){b=d[0];const e=d[1],f=e.indexOf(a);-1<f&&(1<e.length?e.splice(f,1):c.delete(b))}this.store&&this.store.delete(a);this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
function Ta(a){const b=Array(a.length);for(let c=0,d;c<a.length;c++)d=a[c],b[c]={id:d,doc:this.store.get(d)};return b};function Y(a){if(!this)return new Y(a);const b=a.document||a.doc||a;let c,d;this.G=[];this.field=[];this.K=[];this.key=(c=b.key||b.id)&&Va(c,this.K)||"id";(d=a.keystore||0)&&(this.keystore=d);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 G(c);a.cache=!1;this.worker=a.worker;this.index=Wa.call(this,a,b);this.tag=null;if(c=b.tag)if("string"===typeof c&&(c=[c]),
c.length){this.tag=new Map;this.F=[];this.N=[];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.F[e]=f.custom:(this.F[e]=Va(g,this.K),f.filter&&("string"===typeof this.F[e]&&(this.F[e]=new String(this.F[e])),this.F[e].I=f.filter));this.N[e]=g;this.tag.set(g,new Map)}}if(this.worker){a=[];for(const e of this.index.values())e.worker.then&&a.push(e.worker);if(a.length){const e=this;return Promise.all(a).then(function(){return e})}}else a.db&&
this.mount(a.db)}u=Y.prototype;u.mount=function(a){let b=this.field;if(this.tag)for(let e=0,f;e<this.N.length;e++){f=this.N[e];var c=void 0;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)}c=[];const d={db:a.db,type:a.type,fastupdate:a.fastupdate};for(let e=0,f,g;e<b.length;e++){d.field=g=b[e];f=this.index.get(g);const h=new a.constructor(a.id,d);h.id=a.id;c[e]=h.mount(f);f.document=!0;e?f.bypass=!0:f.store=this.store}this.db=!0;return Promise.all(c)};
u.commit=async function(a,b){const c=[];for(const d of this.index.values())c.push(d.db.commit(d,a,b));await Promise.all(c);this.reg.clear()};u.destroy=function(){const a=[];for(const b of this.index.values())a.push(b.destroy());return Promise.all(a)};
function Wa(a,b){const c=new Map;let d=b.index||b.field||b;B(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++){f=d[e];B(f)||(g=f,f=f.field);g=C(g)?Object.assign({},a,g):a;if(this.worker){const h=new W(g);h.worker?c.set(f,h):this.worker=!1}this.worker||c.set(f,new O(g,this.reg));g.custom?this.G[e]=g.custom:(this.G[e]=Va(f,this.K),g.filter&&("string"===typeof this.G[e]&&(this.G[e]=new String(this.G[e])),this.G[e].I=g.filter));this.field[e]=f}if(this.C){a=b.store;B(a)&&(a=[a]);for(let e=0,f,g;e<a.length;e++)f=
a[e],g=f.field||f,f.custom?(this.C[e]=f.custom,f.custom.U=g):(this.C[e]=Va(g,this.K),f.filter&&("string"===typeof this.C[e]&&(this.C[e]=new String(this.C[e])),this.C[e].I=f.filter))}return c}function Va(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){C(a)&&(a=ca(a,this.key));for(var b of this.index.values())b.remove(a,!0);if(this.reg.has(a)){if(this.tag&&!this.fastupdate)for(let c of this.tag.values())for(let d of c){b=d[0];const e=d[1],f=e.indexOf(a);-1<f&&(1<e.length?e.splice(f,1):c.delete(b))}this.store&&this.store.delete(a);this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
u.clear=function(){for(const a of this.index.values())a.clear();if(this.tag)for(const a of this.tag.values())a.clear();this.store&&this.store.clear();return this};u.contain=function(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())a.cleanup();return this};u.get=function(a){return this.db?this.index.get(this.field[0]).db.enrich(a).then(function(b){return b[0]&&b[0].doc}):this.store.get(a)};
u.set=function(a,b){this.store.set(a,b);return this};u.searchCache=ma;u.export=function(a,b,c,d,e,f){let g;"undefined"===typeof f&&(g=new Promise(k=>{f=k}));e||(e=0);d||(d=0);if(d<this.field.length){c=this.field[d];var h=this.index[c];b=this;h.export(a,b,e?c:"",d,e++,f)||(d++,b.export(a,b,c,d,1,f))}else{switch(e){case 1:b="tag";h=this.A;c=null;break;case 2:b="store";h=this.store;c=null;break;default:f();return}za(a,this,c,b,d,e,h,f)}return g};
u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "tag":this.A=b;break;case "reg":this.fastupdate=!1;this.reg=b;for(let d=0,e;d<this.field.length;d++)e=this.index[this.field[d]],e.reg=b,e.fastupdate=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.index[c].import(a,b)}};Ba(Y.prototype);const Wa="undefined"!==typeof window&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Xa=["map","ctx","tag","reg","cfg"];
function Ya(a,b={}){if(!this)return new Ya(a,b);"object"===typeof a&&(b=a=a.name);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.support_tag_search=!1;this.db=null;this.h={}}u=Ya.prototype;u.mount=function(a){if(!a.encoder)return a.mount(this);a.db=this;return this.open()};
u.open=function(){let a=this;navigator.storage&&navigator.storage.persist();return this.db||new Promise(function(b,c){const d=Wa.open(a.id+(a.field?":"+a.field:""),1);d.onupgradeneeded=function(){const e=a.db=this.result;Xa.forEach(f=>{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.destroy=function(){return Wa.deleteDatabase(this.id+(this.field?":"+this.field:""))};u.clear=function(){const a=this.db.transaction(Xa,"readwrite");for(let b=0;b<Xa.length;b++)a.objectStore(Xa[b]).clear();return Z(a)};
u.get=function(a,b,c=0,d=0,e=!0,f=!1){a=this.db.transaction(b?"ctx":"map","readonly").objectStore(b?"ctx":"map").get(b?b+":"+a:a);const g=this;return Z(a).then(function(h){let k=[];if(!h||!h.length)return k;if(e){if(!c&&!d&&1===h.length)return h[0];for(let l=0,m;l<h.length;l++)if((m=h[l])&&m.length){if(d>=m.length){d-=m.length;continue}const n=c?d+Math.min(m.length-d,c):m.length;for(let q=d;q<n;q++)k.push(m[q]);d=0;if(k.length===c)break}return f?g.enrich(k):k}return h})};
u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "tag":this.A=b;break;case "reg":this.fastupdate=!1;this.reg=b;for(let d=0,e;d<this.field.length;d++)e=this.index[this.field[d]],e.reg=b,e.fastupdate=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.index[c].import(a,b)}};Ba(Y.prototype);const Xa="undefined"!==typeof window&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Ya=["map","ctx","tag","reg","cfg"];
function Za(a,b={}){if(!this)return new Za(a,b);"object"===typeof a&&(b=a=a.name);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.support_tag_search=!1;this.db=null;this.h={}}u=Za.prototype;u.mount=function(a){if(!a.encoder)return a.mount(this);a.db=this;return this.open()};
u.open=function(){let a=this;navigator.storage&&navigator.storage.persist();return this.db||new Promise(function(b,c){const d=Xa.open(a.id+(a.field?":"+a.field:""),1);d.onupgradeneeded=function(){const e=a.db=this.result;Ya.forEach(f=>{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.destroy=function(){return Xa.deleteDatabase(this.id+(this.field?":"+this.field:""))};u.clear=function(){const a=this.db.transaction(Ya,"readwrite");for(let b=0;b<Ya.length;b++)a.objectStore(Ya[b]).clear();return Z(a)};
u.get=function(a,b,c=0,d=0,e=!0,f=!1){console.log("!!!!!!!!!!!");a=this.db.transaction(b?"ctx":"map","readonly").objectStore(b?"ctx":"map").get(b?b+":"+a:a);const g=this;return Z(a).then(function(h){let k=[];if(!h||!h.length)return k;if(e){if(!c&&!d&&1===h.length)return h[0];for(let l=0,m;l<h.length;l++)if((m=h[l])&&m.length){if(d>=m.length){d-=m.length;continue}const n=c?d+Math.min(m.length-d,c):m.length;for(let q=d;q<n;q++)k.push(m[q]);d=0;if(k.length===c)break}return f?g.enrich(k):k}return h})};
u.tag=function(a,b=0,c=0,d=!1){a=this.db.transaction("tag","readonly").objectStore("tag").get(a);const e=this;return Z(a).then(function(f){if(!f||!f.length||c>=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<a.length;d++)c[d]=Z(b.get(a[d]));return Promise.all(c).then(function(d){for(let e=0;e<d.length;e++)d[e]={id:a[e],doc:d[e]?JSON.parse(d[e]):null};return d})};u.has=function(a){a=this.db.transaction("reg","readonly").objectStore("reg").getKey(a);return Z(a)};u.search=null;u.info=function(){};
u.transaction=function(a,b,c){let d=this.h[a+":"+b];if(d)return c.call(this,d);let e=this.db.transaction(a,b);this.h[a+":"+b]=d=e.objectStore(a);return new Promise((f,g)=>{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.commit_task=[];else{let d=a.commit_task;a.commit_task=[];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.W;b||(c||(d=d.concat(ba(a.reg))),d.length&&await this.remove(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(){let h=this.result;var k;if(h&&h.length){const l=Math.max(h.length,g.length);
u.commit=async function(a,b,c){if(b)await this.clear(),a.commit_task=[];else{let d=a.commit_task;a.commit_task=[];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.V;b||(c||(d=d.concat(ba(a.reg))),d.length&&await this.remove(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(){let h=this.result;var k;if(h&&h.length){const l=Math.max(h.length,g.length);
for(let m=0,n,q;m<l;m++)if((q=g[m])&&q.length){if((n=h[m])&&n.length)for(k=0;k<q.length;k++)n.push(q[k]);else h[m]=q;k=1}}else h=g,k=1;k&&d.put(h,f)})}}),await this.transaction("ctx","readwrite",function(d){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];l.length&&(b?d.put(l,f+":"+k):d.get(f+":"+k).onsuccess=function(){let m=this.result;var n;if(m&&m.length){const q=Math.max(m.length,l.length);for(let r=0,p,t;r<q;r++)if((t=l[r])&&t.length){if((p=m[r])&&p.length)for(n=
0;n<t.length;n++)p.push(t[n]);else m[r]=t;n=1}}else m=l,n=1;n&&d.put(m,f+":"+k)})}}}),a.store?await this.transaction("reg","readwrite",function(d){for(const e of a.store){const f=e[0],g=e[1];d.put("object"===typeof g?JSON.stringify(g):1,f)}}):a.bypass||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){for(const e of a.tag){const f=e[0],g=e[1];g.length&&(d.get(f).onsuccess=function(){let h=this.result;
h=h&&h.length?h.concat(g):g;d.put(h,f)})}}),a.map.clear(),a.ctx.clear(),a.tag&&a.tag.clear(),a.store&&a.store.clear(),a.document||a.reg.clear())};
function Za(a,b,c){const d=a.value;let e,f,g=0;for(let h=0,k;h<d.length;h++){if(k=c?d:d[h]){for(let l=0,m,n;l<b.length;l++)if(n=b[l],m=k.indexOf(f?parseInt(n,10):n),0>m&&!f&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(f=1),0<=m)if(e=1,1<k.length)k.splice(m,1);else{d[h]=[];break}g+=k.length}if(c)break}g?e&&a.update(d):a.delete();a.continue()}
u.remove=function(a){"object"!==typeof a&&(a=[a]);return Promise.all([this.transaction("map","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&Za(c,a)}}),this.transaction("ctx","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&Za(c,a)}}),this.transaction("tag","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&Za(c,a,!0)}}),this.transaction("reg","readwrite",function(b){for(let c=0;c<a.length;c++)b.delete(a[c])})])};
function Z(a){return new Promise((b,c)=>{a.onsuccess=function(){b(this.result)};a.oncomplete=function(){b(this.result)};a.onerror=c;a=null})};const $a={Index:O,Charset:va,Encoder:F,Document:Y,Worker:W,Resolver:S,IndexedDB:Ya,Language:{}},ab=self;let bb;(bb=ab.define)&&bb.amd?bb([],function(){return $a}):"object"===typeof ab.exports?ab.exports=$a:ab.FlexSearch=$a;}(this));
function $a(a,b,c){const d=a.value;let e,f,g=0;for(let h=0,k;h<d.length;h++){if(k=c?d:d[h]){for(let l=0,m,n;l<b.length;l++)if(n=b[l],m=k.indexOf(f?parseInt(n,10):n),0>m&&!f&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(f=1),0<=m)if(e=1,1<k.length)k.splice(m,1);else{d[h]=[];break}g+=k.length}if(c)break}g?e&&a.update(d):a.delete();a.continue()}
u.remove=function(a){"object"!==typeof a&&(a=[a]);return Promise.all([this.transaction("map","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&$a(c,a)}}),this.transaction("ctx","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&$a(c,a)}}),this.transaction("tag","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&$a(c,a,!0)}}),this.transaction("reg","readwrite",function(b){for(let c=0;c<a.length;c++)b.delete(a[c])})])};
function Z(a){return new Promise((b,c)=>{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:Za,Language:{}},bb=self;let db;(db=bb.define)&&db.amd?db([],function(){return ab}):"object"===typeof bb.exports?bb.exports=ab:bb.FlexSearch=ab;}(this));

View File

@@ -137,12 +137,12 @@ 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.L = null, this.T = "number" === typeof c ? c : 2e5, this.H = new Map(), this.J = new Map(), this.A = this.h = 128;
this.L = null, this.S = "number" === typeof c ? c : 2e5, this.H = new Map(), this.J = new Map(), this.A = this.h = 128;
}
this.B = "";
this.P = null;
this.O = null;
this.M = "";
this.R = null;
this.P = null;
if (this.matcher) {
for (const d of this.matcher.keys()) {
this.B += (this.B ? "|" : "") + d;
@@ -196,8 +196,8 @@ G.prototype.encode = function(a) {
}
}
let k;
this.stemmer && 2 < g.length && (this.R || (this.R = new RegExp("(?!^)(" + this.M + ")$")), 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);
this.stemmer && 2 < g.length && (this.P || (this.P = new RegExp("(?!^)(" + this.M + ")$")), g = g.replace(this.P, l => this.stemmer.get(l)), k = 1);
this.matcher && 1 < g.length && (this.O || (this.O = new RegExp("(" + this.B + ")", "g")), g = g.replace(this.O, 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 = "";
@@ -211,11 +211,11 @@ G.prototype.encode = function(a) {
g = g.replace(this.replacer[e], this.replacer[e + 1]);
}
}
this.cache && h.length <= this.A && (this.J.set(h, g), this.J.size > this.T && (this.J.clear(), this.A = this.A / 1.1 | 0));
this.cache && h.length <= this.A && (this.J.set(h, g), this.J.size > this.S && (this.J.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));
this.cache && a.length <= this.h && (this.H.set(a, c), this.H.size > this.S && (this.H.clear(), this.h = this.h / 1.1 | 0));
return c;
};
function la(a) {
@@ -541,7 +541,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.S, f = p, h = Math.min(n + 1, d - r), e[f] = 1, k = 1; k < h; k++) {
for (e = z(), g = this.R, 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;
@@ -557,7 +557,7 @@ O.prototype.add = function(a, b, c, d) {
b = "";
}
}
this.db && (b || this.commit_task.push({del:a}), this.U && Ca(this));
this.db && (b || this.commit_task.push({del:a}), this.T && Ca(this));
return this;
};
function Q(a, b, c, d, e, f, g) {
@@ -1131,7 +1131,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.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));
r ? (t = await V(p, x, r, 0, 0, !1, !1), t = Ka(t, d, f, p.R), f && !1 === t && d.length || (r = x)) : (t = await V(p, x, "", 0, 0, !1, !1), t = Ka(t, d, f, p.resolution));
if (t) {
return t;
}
@@ -1155,7 +1155,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.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));
r ? (p = V(this, t, r, 0, 0, !1, !1), p = Ka(p, d, f, this.R), f && !1 === p && d.length || (r = t)) : (p = V(this, t, "", 0, 0, !1, !1), p = Ka(p, d, f, this.resolution));
if (p) {
return p;
}
@@ -1183,26 +1183,19 @@ function U(a, b, c, d, e, f, g) {
return e ? h : h && h.length ? e ? R(h, c, d) : new S(h) : e ? [] : new S([]);
}) : a && a.length ? e ? R(a, c, d) : new S(a) : e ? [] : new S([]);
}
function Ka(a, b, c, d, e, f, g) {
let h = [];
function Ka(a, b, c, d) {
let e = [];
if (a) {
d = Math.min(a.length, d);
for (let k = 0, l = 0, m; k < d; k++) {
if (m = a[k]) {
if (f && m && g && (m.length <= f ? (f -= m.length, m = null) : (m = m.slice(f), f = 0)), m && (h[k] = m, g && (l += m.length, l >= e))) {
break;
for (let f = 0, g; f < d; f++) {
(g = a[f]) && g && (e[f] = g);
}
}
}
if (h.length) {
if (g) {
return R(h, e, 0);
}
b.push(h);
if (e.length) {
b.push(e);
return;
}
}
return !c && h;
return !c && e;
}
function V(a, b, c, d, e, f, g, h) {
let k;
@@ -1232,7 +1225,7 @@ function V(a, b, c, d, e, f, g, h) {
}
b || this.reg.delete(a);
}
this.db && (this.commit_task.push({del:a}), this.U && Ca(this));
this.db && (this.commit_task.push({del:a}), this.T && Ca(this));
this.cache && this.cache.remove(a);
return this;
};
@@ -1268,7 +1261,7 @@ function La(a, b) {
a = {};
}
c = a.context || {};
const d = a.encode || a.encoder || na;
const d = B(a.encoder) ? va[a.encoder] : a.encode || a.encoder || na;
this.encoder = d.encode ? d : "object" === typeof d ? new G(d) : {encode:d};
let e;
this.resolution = a.resolution || 9;
@@ -1281,14 +1274,14 @@ function La(a, b) {
this.map = e ? new L(e) : new Map();
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.R = 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.db = this.mount(e);
}
this.U = !1 !== a.commit;
this.T = !1 !== a.commit;
this.commit_task = [];
this.commit_timer = null;
}
@@ -1475,35 +1468,39 @@ async function Na(a) {
}
}
;let Oa = 0;
function W(a) {
function W(a = {}) {
function b(f) {
function g(h) {
h = h.data || h;
const k = h.id, l = k && e.h[k];
l && (l(h.msg), delete e.h[k]);
}
this.worker = f || Pa(c, d, a.worker);
if (this.worker.then) {
return this.worker.then(b);
}
this.h = z();
if (this.worker) {
d ? this.worker.on("message", g) : this.worker.onmessage = g;
if (a.config) {
return new Promise(function(h) {
e.h[++Oa] = function() {
h(e);
};
e.worker.postMessage({id:Oa, task:"init", factory:c, options:a});
});
}
this.worker.postMessage({task:"init", factory:c, options:a});
return this.worker;
}
}
if (!this) {
return new W(a);
}
a || (a = {});
let b = "undefined" !== typeof self && (self || window)._factory;
b && (b = b.toString());
const c = "undefined" === typeof window, d = this;
(async function() {
function e(f) {
f = f.data || f;
const g = f.id, h = g && d.N[g];
h && (h(f.msg), delete d.N[g]);
}
this.worker = await Pa(b, c, a.worker);
this.N = z();
if (this.worker) {
c ? this.worker.on("message", e) : this.worker.onmessage = e;
if (a.config) {
return delete a.db, new Promise(function(f) {
d.N[++Oa] = function() {
f(d);
};
d.worker.postMessage({id:Oa, task:"init", factory:b, options:a});
});
}
this.worker.postMessage({task:"init", factory:b, options:a});
}
}).call(this);
let c = "undefined" !== typeof self ? self._factory : "undefined" !== typeof window ? window._factory : null;
c && (c = c.toString());
const d = "undefined" === typeof window, e = this;
this.worker = b.call(this);
}
X("add");
X("append");
@@ -1511,20 +1508,20 @@ X("search");
X("update");
X("remove");
function X(a) {
W.prototype[a] = W.prototype[a + "Async"] = function() {
W.prototype[a] = W.prototype[a + "Async"] = async function() {
const b = this, c = [].slice.call(arguments);
var d = c[c.length - 1];
let e;
"function" === typeof d && (e = d, c.splice(c.length - 1, 1));
d = new Promise(function(f) {
b.N[++Oa] = f;
b.h[++Oa] = f;
b.worker.postMessage({task:a, id:Oa, args:c});
});
return e ? (d.then(e), this) : d;
};
}
async function Pa(a, b, c) {
return b ? "undefined" !== typeof module ? new (require("worker_threads")["Worker"])(__dirname + "/node/node.js") : new ((await import("worker_threads"))["Worker"])(import.meta.dirname + "/node/node.mjs") : a ? new window.Worker(URL.createObjectURL(new Blob(["onmessage=" + Na.toString()], {type:"text/javascript"}))) : new window.Worker(B(c) ? c : "worker/worker.js", {type:"module"});
function Pa(a, b, c) {
return b ? "undefined" !== typeof module ? new (require("worker_threads")["Worker"])(__dirname + "/node/node.js") : import("worker_threads").then(function(worker){ return new worker["Worker"]($1 + "/node/node.mjs"); }) : a ? new window.Worker(URL.createObjectURL(new Blob(["onmessage=" + Na.toString()], {type:"text/javascript"}))) : new window.Worker(B(c) ? c : "worker/worker.js", {type:"module"});
}
;Y.prototype.add = function(a, b, c) {
C(a) && (b = a, a = ca(b, this.key));
@@ -1546,7 +1543,7 @@ async function Pa(a, b, c) {
}
if (this.tag) {
for (d = 0; d < this.F.length; d++) {
var f = this.F[d], g = this.O[d];
var f = this.F[d], g = this.N[d];
e = this.tag.get(g);
let h = z();
if ("function" === typeof f) {
@@ -1598,7 +1595,7 @@ async function Pa(a, b, c) {
if (!m) {
continue;
}
l = [l.V];
l = [l.U];
} else if (B(l) || l.constructor === String) {
h[l] = b[l];
continue;
@@ -1883,7 +1880,7 @@ function Ta(a) {
return new Y(a);
}
const b = a.document || a.doc || a;
var c, d;
let c, d;
this.G = [];
this.field = [];
this.K = [];
@@ -1895,36 +1892,13 @@ function Ta(a) {
this.cache = (c = a.cache || null) && new H(c);
a.cache = !1;
this.worker = a.worker;
c = new Map();
d = b.index || b.field || b;
B(d) && (d = [d]);
for (let e = 0, f, g; e < d.length; e++) {
f = d[e];
B(f) || (g = f, f = f.field);
g = C(g) ? Object.assign({}, a, g) : a;
if (this.worker) {
const h = new W(g);
c.set(f, h);
h.worker || (this.worker = !1);
}
this.worker || c.set(f, new O(g, this.reg));
g.custom ? this.G[e] = g.custom : (this.G[e] = Va(f, this.K), g.filter && ("string" === typeof this.G[e] && (this.G[e] = new String(this.G[e])), this.G[e].I = g.filter));
this.field[e] = f;
}
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.C[e] = f.custom, f.custom.V = g) : (this.C[e] = Va(g, this.K), f.filter && ("string" === typeof this.C[e] && (this.C[e] = new String(this.C[e])), this.C[e].I = f.filter));
}
}
this.index = c;
this.index = Wa.call(this, a, b);
this.tag = null;
if (c = b.tag) {
if ("string" === typeof c && (c = [c]), c.length) {
this.tag = new Map();
this.F = [];
this.O = [];
this.N = [];
for (let e = 0, f, g; e < c.length; e++) {
f = c[e];
g = f.field || f;
@@ -1932,19 +1906,32 @@ function Ta(a) {
throw Error("The tag field from the document descriptor is undefined.");
}
f.custom ? this.F[e] = f.custom : (this.F[e] = Va(g, this.K), f.filter && ("string" === typeof this.F[e] && (this.F[e] = new String(this.F[e])), this.F[e].I = f.filter));
this.O[e] = g;
this.N[e] = g;
this.tag.set(g, new Map());
}
}
}
if (this.worker) {
a = [];
for (const e of this.index.values()) {
e.worker.then && a.push(e.worker);
}
if (a.length) {
const e = this;
return Promise.all(a).then(function() {
return e;
});
}
} else {
a.db && this.mount(a.db);
}
}
u = Y.prototype;
u.mount = function(a) {
let b = this.field;
if (this.tag) {
for (let e = 0, f; e < this.O.length; e++) {
f = this.O[e];
for (let e = 0, f; e < this.N.length; e++) {
f = this.N[e];
var c = void 0;
this.index.set(f, c = new O({}, this.reg));
b === this.field && (b = b.slice(0));
@@ -1981,6 +1968,31 @@ u.destroy = function() {
}
return Promise.all(a);
};
function Wa(a, b) {
const c = new Map();
let d = b.index || b.field || b;
B(d) && (d = [d]);
for (let e = 0, f, g; e < d.length; e++) {
f = d[e];
B(f) || (g = f, f = f.field);
g = C(g) ? Object.assign({}, a, g) : a;
if (this.worker) {
const h = new W(g);
h.worker ? c.set(f, h) : this.worker = !1;
}
this.worker || c.set(f, new O(g, this.reg));
g.custom ? this.G[e] = g.custom : (this.G[e] = Va(f, this.K), g.filter && ("string" === typeof this.G[e] && (this.G[e] = new String(this.G[e])), this.G[e].I = g.filter));
this.field[e] = f;
}
if (this.C) {
a = b.store;
B(a) && (a = [a]);
for (let e = 0, f, g; e < a.length; e++) {
f = a[e], g = f.field || f, f.custom ? (this.C[e] = f.custom, f.custom.U = g) : (this.C[e] = Va(g, this.K), f.filter && ("string" === typeof this.C[e] && (this.C[e] = new String(this.C[e])), this.C[e].I = f.filter));
}
}
return c;
}
function Va(a, b) {
const c = a.split(":");
let d = 0;
@@ -2105,10 +2117,10 @@ u.import = function(a, b) {
}
};
Ba(Y.prototype);
const Wa = "undefined" !== typeof window && (window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB), Xa = ["map", "ctx", "tag", "reg", "cfg"];
function Ya(a, b = {}) {
const Xa = "undefined" !== typeof window && (window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB), Ya = ["map", "ctx", "tag", "reg", "cfg"];
function Za(a, b = {}) {
if (!this) {
return new Ya(a, b);
return new Za(a, b);
}
"object" === typeof a && (b = a = a.name);
a || console.info("Default storage space was used, because a name was not passed.");
@@ -2118,7 +2130,7 @@ function Ya(a, b = {}) {
this.db = null;
this.h = {};
}
u = Ya.prototype;
u = Za.prototype;
u.mount = function(a) {
if (!a.encoder) {
return a.mount(this);
@@ -2130,10 +2142,10 @@ u.open = function() {
let a = this;
navigator.storage && navigator.storage.persist();
return this.db || new Promise(function(b, c) {
const d = Wa.open(a.id + (a.field ? ":" + a.field : ""), 1);
const d = Xa.open(a.id + (a.field ? ":" + a.field : ""), 1);
d.onupgradeneeded = function() {
const e = a.db = this.result;
Xa.forEach(f => {
Ya.forEach(f => {
e.objectStoreNames.contains(f) || e.createObjectStore(f);
});
};
@@ -2159,16 +2171,17 @@ u.close = function() {
this.db = null;
};
u.destroy = function() {
return Wa.deleteDatabase(this.id + (this.field ? ":" + this.field : ""));
return Xa.deleteDatabase(this.id + (this.field ? ":" + this.field : ""));
};
u.clear = function() {
const a = this.db.transaction(Xa, "readwrite");
for (let b = 0; b < Xa.length; b++) {
a.objectStore(Xa[b]).clear();
const a = this.db.transaction(Ya, "readwrite");
for (let b = 0; b < Ya.length; b++) {
a.objectStore(Ya[b]).clear();
}
return Z(a);
};
u.get = function(a, b, c = 0, d = 0, e = !0, f = !1) {
console.log("!!!!!!!!!!!");
a = this.db.transaction(b ? "ctx" : "map", "readonly").objectStore(b ? "ctx" : "map").get(b ? b + ":" + a : a);
const g = this;
return Z(a).then(function(h) {
@@ -2268,7 +2281,7 @@ u.commit = async function(a, b, c) {
b = !0;
break;
} else {
d[e] = f.W;
d[e] = f.V;
}
}
b || (c || (d = d.concat(ba(a.reg))), d.length && await this.remove(d));
@@ -2348,7 +2361,7 @@ u.commit = async function(a, b, c) {
}
}), a.map.clear(), a.ctx.clear(), a.tag && a.tag.clear(), a.store && a.store.clear(), a.document || a.reg.clear());
};
function Za(a, b, c) {
function ab(a, b, c) {
const d = a.value;
let e, f, g = 0;
for (let h = 0, k; h < d.length; h++) {
@@ -2377,17 +2390,17 @@ u.remove = function(a) {
return Promise.all([this.transaction("map", "readwrite", function(b) {
b.openCursor().onsuccess = function() {
const c = this.result;
c && Za(c, a);
c && ab(c, a);
};
}), this.transaction("ctx", "readwrite", function(b) {
b.openCursor().onsuccess = function() {
const c = this.result;
c && Za(c, a);
c && ab(c, a);
};
}), this.transaction("tag", "readwrite", function(b) {
b.openCursor().onsuccess = function() {
const c = this.result;
c && Za(c, a, !0);
c && ab(c, a, !0);
};
}), this.transaction("reg", "readwrite", function(b) {
for (let c = 0; c < a.length; c++) {
@@ -2407,6 +2420,6 @@ function Z(a) {
a = null;
});
}
;export default {Index:O, Charset:va, Encoder:G, Document:Y, Worker:W, Resolver:S, IndexedDB:Ya, Language:{}};
;export default {Index:O, Charset:va, Encoder:G, Document:Y, Worker:W, Resolver:S, IndexedDB:Za, Language:{}};
export const Index=O;export const Charset=va;export const Encoder=G;export const Document=Y;export const Worker=W;export const Resolver=S;export const IndexedDB=Ya;export const Language={};
export const Index=O;export const Charset=va;export const Encoder=G;export const Document=Y;export const Worker=W;export const Resolver=S;export const IndexedDB=Za;export const Language={};

View File

@@ -15,21 +15,21 @@ 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;b<arguments.length;b++)this.assign(arguments[b])}
F.prototype.assign=function(a){this.normalize=y(a.normalize,!0,this.normalize);let b=a.include,c=b||a.exclude||a.split;if("object"===typeof c){let d=!b,e="";a.include||(e+="\\p{Z}");c.letter&&(e+="\\p{L}");c.number&&(e+="\\p{N}",d=!!b);c.symbol&&(e+="\\p{S}");c.punctuation&&(e+="\\p{P}");c.control&&(e+="\\p{C}");if(c=c.char)e+="object"===typeof c?c.join(""):c;try{this.split=new RegExp("["+(b?"^":"")+e+"]+","u")}catch(f){this.split=/\s+/}this.numeric=d}else{try{this.split=y(c,fa,this.split)}catch(d){this.split=
/\s+/}this.numeric=y(this.numeric,!0)}this.prepare=y(a.prepare,null,this.prepare);this.finalize=y(a.finalize,null,this.finalize);ka||(this.mapper=new Map(ea));this.rtl=a.rtl||!1;this.dedupe=y(a.dedupe,!0,this.dedupe);this.filter=y((c=a.filter)&&new Set(c),null,this.filter);this.matcher=y((c=a.matcher)&&new Map(c),null,this.matcher);this.mapper=y((c=a.mapper)&&new Map(c),null,this.mapper);this.stemmer=y((c=a.stemmer)&&new Map(c),null,this.stemmer);this.replacer=y(a.replacer,null,this.replacer);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.L=null,this.T="number"===typeof c?c:2E5,this.H=new Map,this.J=new Map,this.A=this.h=128;this.B="";this.P=null;this.M="";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.M+=(this.M?"|":"")+d;return this};
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.L=null,this.S="number"===typeof c?c:2E5,this.H=new Map,this.J=new Map,this.A=this.h=128;this.B="";this.O=null;this.M="";this.P=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.M+=(this.M?"|":"")+d;return this};
F.prototype.encode=function(a){if(this.cache&&a.length<=this.h)if(this.L){if(this.H.has(a))return this.H.get(a)}else this.L=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&&3<a.length&&(a=a.replace(ia,"$1 $2").replace(ja,"$1 $2").replace(ha,"$1 "));const b=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer);
let c=[],d=this.split||""===this.split?a.split(this.split):a;for(let f=0,g,h;f<d.length;f++){if(!(g=h=d[f]))continue;if(g.length<this.minlength)continue;if(b){c.push(g);continue}if(this.filter&&this.filter.has(g))continue;if(this.cache&&g.length<=this.A)if(this.L){var e=this.J.get(g);if(e||""===e){e&&c.push(e);continue}}else this.L=setTimeout(la,0,this);let k;this.stemmer&&2<g.length&&(this.R||(this.R=new RegExp("(?!^)("+this.M+")$")),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="";for(let l=0,m="",n,q;l<g.length;l++)n=g.charAt(l),n===m&&this.dedupe||((q=this.mapper&&this.mapper.get(n))||""===q?q===m&&this.dedupe||!(m=q)||(e+=q):e+=m=n);g=e}if(g&&this.replacer)for(e=0;g&&e<this.replacer.length;e+=2)g=g.replace(this.replacer[e],this.replacer[e+1]);
this.cache&&h.length<=this.A&&(this.J.set(h,g),this.J.size>this.T&&(this.J.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.L=null;a.H.clear();a.J.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)};
let c=[],d=this.split||""===this.split?a.split(this.split):a;for(let f=0,g,h;f<d.length;f++){if(!(g=h=d[f]))continue;if(g.length<this.minlength)continue;if(b){c.push(g);continue}if(this.filter&&this.filter.has(g))continue;if(this.cache&&g.length<=this.A)if(this.L){var e=this.J.get(g);if(e||""===e){e&&c.push(e);continue}}else this.L=setTimeout(la,0,this);let k;this.stemmer&&2<g.length&&(this.P||(this.P=new RegExp("(?!^)("+this.M+")$")),g=g.replace(this.P,l=>this.stemmer.get(l)),k=1);this.matcher&&
1<g.length&&(this.O||(this.O=new RegExp("("+this.B+")","g")),g=g.replace(this.O,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="";for(let l=0,m="",n,q;l<g.length;l++)n=g.charAt(l),n===m&&this.dedupe||((q=this.mapper&&this.mapper.get(n))||""===q?q===m&&this.dedupe||!(m=q)||(e+=q):e+=m=n);g=e}if(g&&this.replacer)for(e=0;g&&e<this.replacer.length;e+=2)g=g.replace(this.replacer[e],this.replacer[e+1]);
this.cache&&h.length<=this.A&&(this.J.set(h,g),this.J.size>this.S&&(this.J.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.S&&(this.H.clear(),this.h=this.h/1.1|0));return c};function la(a){a.L=null;a.H.clear();a.J.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<a.length;c++){var b=a[c];let d=b.charAt(0),e=ra[d];for(let f=1,g;f<b.length&&(g=b.charAt(f),"h"===
g||"w"===g||!(g=ra[g])||g===e||(d+=g,e=g,4!==d.length));f++);a[c]=d}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(sa," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(ta,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(ua," ")}}};function wa(a,b,c,d){let e=[];for(let f=0,g;f<a.index.length;f++)if(g=a.index[f],b>=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;g<b.index.length;g++){h=b.index[g];k=h.indexOf(e);if(0<=k)return f+k;f+=h.length}return-1};if("includes"===d)return function(e){for(let f=
0;f<b.index.length;f++)if(b.index[f].includes(e))return!0;return!1};if("slice"===d)return function(e,f){return wa(b,e||0,f||b.length,!1)};if("splice"===d)return function(e,f){return wa(b,e||0,f||b.length,!0)};if("constructor"===d)return Array;if("symbol"!==typeof d)return(c=b.index[d/2**31|0])&&c[d]},set(c,d,e){c=d/2**31|0;(b.index[c]||(b.index[c]=[]))[d]=e;b.length++;return!0}})}J.prototype.clear=function(){this.index.length=0};J.prototype.destroy=function(){this.proxy=this.index=null};
J.prototype.push=function(){};function K(a=8){if(!this)return new K(a);this.index=z();this.B=[];this.size=0;32<a?(this.h=xa,this.A=BigInt(a)):(this.h=ya,this.A=a)}K.prototype.get=function(a){const b=this.index[this.h(a)];return b&&b.get(a)};K.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.B.push(d))};
function M(a=8){if(!this)return new M(a);this.index=z();this.h=[];32<a?(this.B=xa,this.A=BigInt(a)):(this.B=ya,this.A=a)}M.prototype.add=function(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=K.prototype;u.has=M.prototype.has=function(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.B(a)];b&&b.delete(a)&&this.size--};
J.prototype.push=function(){};function L(a=8){if(!this)return new L(a);this.index=z();this.B=[];this.size=0;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)];return b&&b.get(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.B.push(d))};
function M(a=8){if(!this)return new M(a);this.index=z();this.h=[];32<a?(this.B=xa,this.A=BigInt(a)):(this.B=ya,this.A=a)}M.prototype.add=function(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.B(a)];return b&&b.has(a)};u.delete=M.prototype.delete=function(a){const b=this.index[this.B(a)];b&&b.delete(a)&&this.size--};
u.clear=M.prototype.clear=function(){this.index=z();this.h=[];this.size=0};u.values=M.prototype.values=function*(){for(let a=0;a<this.h.length;a++)for(let b of this.h[a].values())yield b};u.keys=M.prototype.keys=function*(){for(let a=0;a<this.h.length;a++)for(let b of this.h[a].keys())yield b};u.entries=M.prototype.entries=function*(){for(let a=0;a<this.h.length;a++)for(let b of this.h[a].entries())yield b};
function ya(a){let b=2**this.A-1;if("number"==typeof a)return a&b;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.A?c+2**31:c}function xa(a){let b=BigInt(2)**this.A-BigInt(1);var c=typeof a;if("bigint"===c)return a&b;if("number"===c)return BigInt(a)&b;c=BigInt(0);let d=this.A+BigInt(1);for(let e=0;e<a.length;e++)c=(c*d^BigInt(a.charCodeAt(e)))&b;return c};function za(a,b,c,d,e,f,g,h){(d=a(c?c+"."+d:d,JSON.stringify(g)))&&d.then?d.then(function(){b.export(a,b,c,e,f+1,h)}):b.export(a,b,c,e,f+1,h)};const Aa={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 Ba(a){N.call(a,"add");N.call(a,"append");N.call(a,"search");N.call(a,"update");N.call(a,"remove")}function N(a){this[a+"Async"]=function(){var b=arguments;const c=b[b.length-1];let d;"function"===typeof c&&(d=c,delete b[b.length-1]);b=this[a].apply(this,b);d&&(b.then?b.then(d):d(b));return b}};z();O.prototype.add=function(a,b,c,d){if(b&&(a||0===a)){if(!d&&!c&&this.reg.has(a))return this.update(a,b);b=this.encoder.encode(b);if(d=b.length){const l=z(),m=z(),n=this.depth,q=this.resolution;for(let r=0;r<d;r++){let p=b[this.rtl?d-1-r:r];var e=p.length;if(e&&(n||!m[p])){var f=this.score?this.score(b,p,r,null,0):P(q,d,r),g="";switch(this.tokenize){case "full":if(2<e){for(f=0;f<e;f++)for(var h=e;h>f;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;0<h;h--)g=p[h]+g,k=this.score?this.score(b,p,r,g,h):P(q,d,r,e,h),Q(this,m,g,k,a,c);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=p[h],Q(this,m,g,f,a,c);break}default:if(Q(this,m,p,f,a,c),n&&1<d&&r<d-1)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;Q(this,l,x?f:p,t,a,c,x?p:f)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
(b||this.commit_task.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]))}}
e){for(h=e-1;0<h;h--)g=p[h]+g,k=this.score?this.score(b,p,r,g,h):P(q,d,r,e,h),Q(this,m,g,k,a,c);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=p[h],Q(this,m,g,f,a,c);break}default:if(Q(this,m,p,f,a,c),n&&1<d&&r<d-1)for(e=z(),g=this.R,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;Q(this,l,x?f:p,t,a,c,x?p:f)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
(b||this.commit_task.push({del:a}),this.T&&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&&1<a?b+(d||0)<=a?c+(e||0):(a-1)/(b+(d||0))*(c+(e||0))+1|0:0};function R(a,b,c,d){if(1===a.length)return a=a[0],a=c||a.length>b?b?a.slice(c,c+b):a.slice(c):a,d?Da(a):a;let e=[];for(let f=0,g,h;f<a.length;f++)if((g=a[f])&&(h=g.length)){if(c){if(c>=h){c-=h;continue}c<h&&(g=b?g.slice(c,c+b):g.slice(c),h=g.length,c=0)}if(e.length)h>b&&(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=1<e.length?[].concat.apply([],e):e[0];return d?Da(e):e}
function Da(a){for(let b=0;b<a.length;b++)a[b]={score:b,id:a[b]};return a};S.prototype.or=function(){const a=this;let b=arguments;var c=b[0];if(c.then)return c.then(function(){return a.or.apply(a,b)});if(c[0]&&c[0].index)return this.or.apply(this,c);let d=[];c=[];let e=0,f=0,g,h;for(let k=0,l;k<b.length;k++)if(l=b[k]){let m;if(l.constructor===S)m=l.result;else if(l.constructor===Array)m=l;else if(l.index)l.resolve=!1,m=l.index.search(l).result;else if(l.and)m=this.and(l.and);else if(l.xor)m=this.xor(l.xor);else if(l.not)m=this.not(l.not);else{e=l.limit||0;f=l.offset||0;
g=l.enrich;h=l.resolve;continue}d[k]=m;m.then&&c.push(m)}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.D);return h?a.result:a});this.result.length&&(d=[this.result].concat(d));this.result=Ea(d,e,f,g,h,a.D);return h?this.result:this};
@@ -42,12 +42,12 @@ Ha.call(a,d,e);return e?a.result:a});this.result=Ha.call(this,d,e);return e?this
S.prototype.offset=function(a){if(this.result.length){const b=[];let c=0;for(let d=0,e;d<this.result.length;d++)e=this.result[d],e.length+c<a?c+=e.length:(b[d]=e.slice(a-c),c=a);this.result=b}return this};S.prototype.boost=function(a){this.D+=a;return this};S.prototype.resolve=function(a,b,c){T=1;const d=this.result;this.result=this.index=null;return d.length?("object"===typeof a&&(c=a.enrich,b=a.offset,a=a.limit),R(d,a||100,b,c)):d};function Ia(a,b,c,d,e){var f=a.length,g=[],h;var k=z();for(let n=0,q,r,p,t;n<b;n++)for(var l=0;l<f;l++)if(p=a[l],n<p.length&&(q=p[n]))for(var m=0;m<q.length;m++)r=q[m],(h=k[r])?k[r]++:(h=0,k[r]=1),t=g[h]||(g[h]=[]),t.push(r);if(a=g.length)if(e){if(1<g.length){e=g;f=[];g=z();k=e.length;for(l=0;l<k;l++)for(a=e[l],h=a.length,m=0;m<h;m++)if(b=a[m],!g[b])if(g[b]=1,d)d--;else if(f.push(b),f.length===c)break;c=f}else c=g[0];g=c}else{if(a<f)return[];g=g[a-1];if(g.length>c||d)g=g.slice(d,c+d)}return g}
function Ja(a,b){const c=z(),d=[];for(let e=0,f;e<b.length;e++){f=b[e];for(let g=0;g<f.length;g++)c[f[g]]=1}for(let e=0,f;e<a.length;e++)f=a[e],1===c[f]&&(d.push(f),c[f]=2);return d};let T=1;
O.prototype.search=function(a,b,c){c||(!b&&C(a)?(c=a,a=""):C(b)&&(c=b,b=0));let d=[],e;let f,g=0,h,k,l;if(c){a=c.query||a;b=c.limit||b;g=c.offset||0;var m=c.context;f=c.suggest;(h=T&&!1!==c.resolve)||(T=0);k=h&&c.enrich;l=this.db&&c.tag}else h=this.resolve||T;a=this.encoder.encode(a);e=a.length;b||!h||(b=100);if(1===e)return U.call(this,a[0],"",b,g,h,k,l);m=this.depth&&!1!==m;if(2===e&&m&&!f)return U.call(this,a[0],a[1],b,g,h,k,l);let n=c=0;if(1<e){const p=z(),t=[];for(let x=0,A;x<e;x++)if((A=a[x])&&
!p[A]){if(f||this.db||V(this,A))t.push(A),p[A]=1;else return h?d:new S(d);const w=A.length;c=Math.max(c,w);n=n?Math.min(n,w):w}a=t;e=a.length}if(!e)return h?d:new S(d);let q=0,r;if(1===e)return U.call(this,a[0],"",b,g,h,k,l);if(2===e&&m&&!f)return U.call(this,a[0],a[1],b,g,h,k,l);1<e&&(m?(r=a[0],q=1):9<c&&3<c/n&&a.sort(aa));if(this.db){if(this.db.search&&(m=this.db.search(this,a,b,g,f,h,k,l),!1!==m))return m;const p=this;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.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;if(f&&q===e-1){let A=d.length;if(!A){if(r){r="";q=-1;continue}return d}if(1===A)return h?R(d[0],b,g):new S(d[0])}}return h?Ia(d,p.resolution,b,g,f):new S(d[0])}()}for(let p,t;q<e;q++){t=a[q];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;if(f&&q===e-1){m=d.length;if(!m){if(r){r="";q=-1;continue}return d}if(1===
m)return h?R(d[0],b,g):new S(d[0])}}d=Ia(d,this.resolution,b,g,f);return h?d:new S(d)};function U(a,b,c,d,e,f,g){a=V(this,a,b,c,d,e,f,g);return this.db?a.then(function(h){return e?h:h&&h.length?e?R(h,c,d):new S(h):e?[]:new S([])}):a&&a.length?e?R(a,c,d):new S(a):e?[]:new S([])}
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<d;k++)if(m=a[k])if(f&&m&&g&&(m.length<=f?(f-=m.length,m=null):(m=m.slice(f),f=0)),m&&(h[k]=m,g&&(l+=m.length,l>=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;d<c.length;d++){if(e=c[d])if(2>e.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.commit_task.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;d<a.length;d++){if((e=a[d])&&e.length)if(f=e.indexOf(b),0<=f){1<e.length?(e.splice(f,1),c++):delete a[d];break}else c++}else for(let d of a){const e=d[0],f=La(d[1],b);f?c+=f:a.delete(e)}return c};function O(a,b){if(!this)return new O(a);if(a){var c=B(a)?a:a.preset;c&&(a=Object.assign({},Aa[c],a))}else a={};c=a.context||{};const d=a.encode||a.encoder||na;this.encoder=d.encode?d:"object"===typeof d?new F(d):{encode:d};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)&&(this.keystore=e);this.map=e?new K(e):new Map;this.ctx=
e?new K(e):new Map;this.reg=b||(this.fastupdate?e?new K(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 G(e);this.resolve=!1!==a.resolve;if(e=a.db)this.db=e.mount(this);this.U=!1!==a.commit;this.commit_task=[];this.commit_timer=null}u=O.prototype;u.mount=function(a){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return a.mount(this)};
!p[A]){if(f||this.db||V(this,A))t.push(A),p[A]=1;else return h?d:new S(d);const w=A.length;c=Math.max(c,w);n=n?Math.min(n,w):w}a=t;e=a.length}if(!e)return h?d:new S(d);let q=0,r;if(1===e)return U.call(this,a[0],"",b,g,h,k,l);if(2===e&&m&&!f)return U.call(this,a[0],a[1],b,g,h,k,l);1<e&&(m?(r=a[0],q=1):9<c&&3<c/n&&a.sort(aa));if(this.db){if(this.db.search&&(m=this.db.search(this,a,b,g,f,h,k,l),!1!==m))return m;const p=this;return async function(){for(let t,x;q<e;q++){x=a[q];r?(t=await V(p,x,r,0,0,!1,
!1),t=Ka(t,d,f,p.R),f&&!1===t&&d.length||(r=x)):(t=await V(p,x,"",0,0,!1,!1),t=Ka(t,d,f,p.resolution));if(t)return t;if(f&&q===e-1){let A=d.length;if(!A){if(r){r="";q=-1;continue}return d}if(1===A)return h?R(d[0],b,g):new S(d[0])}}return h?Ia(d,p.resolution,b,g,f):new S(d[0])}()}for(let p,t;q<e;q++){t=a[q];r?(p=V(this,t,r,0,0,!1,!1),p=Ka(p,d,f,this.R),f&&!1===p&&d.length||(r=t)):(p=V(this,t,"",0,0,!1,!1),p=Ka(p,d,f,this.resolution));if(p)return p;if(f&&q===e-1){m=d.length;if(!m){if(r){r="";q=-1;continue}return d}if(1===
m)return h?R(d[0],b,g):new S(d[0])}}d=Ia(d,this.resolution,b,g,f);return h?d:new S(d)};function U(a,b,c,d,e,f,g){a=V(this,a,b,c,d,e,f,g);return this.db?a.then(function(h){return e?h:h&&h.length?e?R(h,c,d):new S(h):e?[]:new S([])}):a&&a.length?e?R(a,c,d):new S(a):e?[]:new S([])}function Ka(a,b,c,d){let e=[];if(a){d=Math.min(a.length,d);for(let f=0,g;f<d;f++)(g=a[f])&&g&&(e[f]=g);if(e.length){b.push(e);return}}return!c&&e}
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;d<c.length;d++){if(e=c[d])if(2>e.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.commit_task.push({del:a}),this.T&&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;d<a.length;d++){if((e=a[d])&&e.length)if(f=e.indexOf(b),0<=f){1<e.length?(e.splice(f,1),c++):delete a[d];break}else c++}else for(let d of a){const e=d[0],f=La(d[1],b);f?c+=f:a.delete(e)}return c};function O(a,b){if(!this)return new O(a);if(a){var c=B(a)?a:a.preset;c&&(a=Object.assign({},Aa[c],a))}else a={};c=a.context||{};const d=B(a.encoder)?va[a.encoder]:a.encode||a.encoder||na;this.encoder=d.encode?d:"object"===typeof d?new F(d):{encode:d};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)&&(this.keystore=e);this.map=
e?new L(e):new Map;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.R=c.resolution||1;this.rtl=d.rtl||a.rtl||!1;this.cache=(e=a.cache||null)&&new G(e);this.resolve=!1!==a.resolve;if(e=a.db)this.db=this.mount(e);this.T=!1!==a.commit;this.commit_task=[];this.commit_timer=null}u=O.prototype;u.mount=function(a){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return a.mount(this)};
u.commit=function(a,b){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return this.db.commit(this,a,b)};u.destroy=function(){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return this.db.destroy()};function Ca(a){a.commit_timer||(a.commit_timer=setTimeout(function(){a.commit_timer=null;a.db.commit(a,void 0,void 0)},0))}
u.clear=function(){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}]);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.reg.has(a)};u.update=function(a,b){const c=this,d=this.remove(a);return d&&d.then?d.then(()=>c.add(a,b)):this.add(a,b)};
function Ma(a){let b=0;if(a.constructor===Array)for(let c=0,d;c<a.length;c++)(d=a[c])&&(b+=d.length);else for(const c of a){const d=c[0],e=Ma(c[1]);e?b+=e:a.delete(d)}return b}u.cleanup=function(){if(!this.fastupdate)return this;Ma(this.map);this.depth&&Ma(this.ctx);return this};u.searchCache=ma;
@@ -55,38 +55,40 @@ u.export=function(a,b,c,d,e,f){let g=!0;"undefined"===typeof f&&(g=new Promise(l
u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "cfg":this.h=!!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;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;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 W(a){if(!this)return new W(a);a||(a={});let b="undefined"!==typeof self&&(self||window)._factory;b&&(b=b.toString());const c="undefined"===typeof window,d=this;(async function(){function e(f){f=f.data||f;const g=f.id,h=g&&d.N[g];h&&(h(f.msg),delete d.N[g])}this.worker=await Pa(b,c,a.worker);this.N=z();if(this.worker){c?this.worker.on("message",e):this.worker.onmessage=e;if(a.config)return delete a.db,new Promise(function(f){d.N[++Oa]=function(){f(d)};d.worker.postMessage({id:Oa,task:"init",
factory:b,options:a})});this.worker.postMessage({task:"init",factory:b,options:a})}}).call(this)}X("add");X("append");X("search");X("update");X("remove");function X(a){W.prototype[a]=W.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;"function"===typeof d&&(e=d,c.splice(c.length-1,1));d=new Promise(function(f){b.N[++Oa]=f;b.worker.postMessage({task:a,id:Oa,args:c})});return e?(d.then(e),this):d}}
async function Pa(a,b,c){return b?"undefined"!==typeof module?new (require("worker_threads")["Worker"])(__dirname + "/node/node.js"):new ((await import("worker_threads"))["Worker"])(import.meta.dirname + "/node/node.mjs"):a?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+Na.toString()],{type:"text/javascript"}))):new window.Worker(B(c)?c:"worker/worker.js",{type:"module"})};Y.prototype.add=function(a,b,c){C(a)&&(b=a,a=ca(b,this.key));if(b&&(a||0===a)){if(!c&&this.reg.has(a))return this.update(a,b);for(let h=0,k;h<this.field.length;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.I,!e||e(b))k.constructor===String?k=[""+k]:B(k)&&(k=[k]),Qa(b,k,this.K,0,d,a,k[0],c)}if(this.tag)for(d=0;d<this.F.length;d++){var f=this.F[d];e=this.tag.get(this.O[d]);let h=z();if("function"===typeof f){if(f=f(b),!f)continue}else{var g=
function W(a={}){function b(f){function g(h){h=h.data||h;const k=h.id,l=k&&e.h[k];l&&(l(h.msg),delete e.h[k])}this.worker=f||Pa(c,d,a.worker);if(this.worker.then)return this.worker.then(b);this.h=z();if(this.worker){d?this.worker.on("message",g):this.worker.onmessage=g;if(a.config)return new Promise(function(h){e.h[++Oa]=function(){h(e)};e.worker.postMessage({id:Oa,task:"init",factory:c,options:a})});this.worker.postMessage({task:"init",factory:c,options:a});return this.worker}}if(!this)return new W(a);let c=
"undefined"!==typeof self?self._factory:"undefined"!==typeof window?window._factory:null;c&&(c=c.toString());const d="undefined"===typeof window,e=this;this.worker=b.call(this)}X("add");X("append");X("search");X("update");X("remove");
function X(a){W.prototype[a]=W.prototype[a+"Async"]=async function(){const b=this,c=[].slice.call(arguments);var d=c[c.length-1];let e;"function"===typeof d&&(e=d,c.splice(c.length-1,1));d=new Promise(function(f){b.h[++Oa]=f;b.worker.postMessage({task:a,id:Oa,args:c})});return e?(d.then(e),this):d}}
function Pa(a,b,c){return b?"undefined"!==typeof module?new (require("worker_threads")["Worker"])(__dirname + "/node/node.js"):import("worker_threads").then(function(worker){ return new worker["Worker"]($1 + "/node/node.mjs"); }):a?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+Na.toString()],{type:"text/javascript"}))):new window.Worker(B(c)?c:"worker/worker.js",{type:"module"})};Y.prototype.add=function(a,b,c){C(a)&&(b=a,a=ca(b,this.key));if(b&&(a||0===a)){if(!c&&this.reg.has(a))return this.update(a,b);for(let h=0,k;h<this.field.length;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.I,!e||e(b))k.constructor===String?k=[""+k]:B(k)&&(k=[k]),Qa(b,k,this.K,0,d,a,k[0],c)}if(this.tag)for(d=0;d<this.F.length;d++){var f=this.F[d];e=this.tag.get(this.N[d]);let h=z();if("function"===typeof f){if(f=f(b),!f)continue}else{var g=
f.I;if(g&&!g(b))continue;f.constructor===String&&(f=""+f);f=ca(b,f)}if(e&&f){B(f)&&(f=[f]);for(let k=0,l,m;k<f.length;k++)if(l=f[k],!h[l]&&(h[l]=1,(g=e.get(l))?m=g:e.set(l,m=[]),!c||!m.includes(a))){if(m.length===2**31-1){g=new J(m);if(this.fastupdate)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.reg.get(a))?g.push(m):this.reg.set(a,[m]))}}}if(this.store&&(!c||!this.store.has(a))){let h;if(this.C){h=z();for(let k=0,l;k<this.C.length;k++){l=
this.C[k];if((c=l.I)&&!c(b))continue;let m;if("function"===typeof l){m=l(b);if(!m)continue;l=[l.V]}else if(B(l)||l.constructor===String){h[l]=b[l];continue}Ra(b,h,l,0,l[0],m)}}this.store.set(a,h||b)}}return this};function Ra(a,b,c,d,e,f){a=a[e];if(d===c.length-1)b[e]=f||a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)Ra(a,b,c,d,e);else b=b[e]||(b[e]=z()),e=c[++d],Ra(a,b,c,d,e)}
this.C[k];if((c=l.I)&&!c(b))continue;let m;if("function"===typeof l){m=l(b);if(!m)continue;l=[l.U]}else if(B(l)||l.constructor===String){h[l]=b[l];continue}Ra(b,h,l,0,l[0],m)}}this.store.set(a,h||b)}}return this};function Ra(a,b,c,d,e,f){a=a[e];if(d===c.length-1)b[e]=f||a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)Ra(a,b,c,d,e);else b=b[e]||(b[e]=z()),e=c[++d],Ra(a,b,c,d,e)}
function Qa(a,b,c,d,e,f,g,h){if(a=a[g])if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(f,a[b],!0,!0);return}a=a.join(" ")}e.add(f,a,h,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)Qa(a,b,c,d,e,f,g,h);else g=b[++d],Qa(a,b,c,d,e,f,g,h);else e.db&&e.remove(f)};Y.prototype.search=function(a,b,c,d){c||(!b&&C(a)?(c=a,a=""):C(b)&&(c=b,b=0));let e=[],f=[],g;let h;let k;let l,m=0;if(c){c.constructor===Array&&(c={index:c});a=c.query||a;g=c.pluck;h=c.merge;k=g||c.field||c.index;var n=this.tag&&c.tag;var q=this.store&&c.enrich;var r=c.suggest;b=c.limit||b;l=c.offset||0;b||(b=100);if(n&&(!this.db||!d)){n.constructor!==Array&&(n=[n]);var p=[];for(let w=0,v;w<n.length;w++)if(v=n[w],v.field&&v.tag){var t=v.tag;if(t.constructor===Array)for(var x=0;x<t.length;x++)p.push(v.field,
t[x]);else p.push(v.field,t)}else{t=Object.keys(v);for(let H=0,I,D;H<t.length;H++)if(I=t[H],D=v[I],D.constructor===Array)for(x=0;x<D.length;x++)p.push(I,D[x]);else p.push(I,D)}n=p;if(!a){r=[];if(p.length)for(n=0;n<p.length;n+=2){if(this.db){d=this.index.get(p[n]);if(!d)continue;r.push(d=d.db.tag(p[n+1],b,l,q))}else d=Sa.call(this,p[n],p[n+1],b,l,q);e.push({field:p[n],tag:p[n+1],result:d})}return r.length?Promise.all(r).then(function(w){for(let v=0;v<w.length;v++)e[v].result=w[v];return e}):e}}B(k)&&
(k=[k])}k||(k=this.field);p=!d&&(this.worker||this.db)&&[];let A;for(let w=0,v,H,I;w<k.length;w++){H=k[w];if(this.db&&this.tag&&!this.G[w])continue;let D;B(H)||(D=H,H=D.field,a=D.query||a,b=D.limit||b,r=D.suggest||r);if(d)v=d[w];else if(t=D||c,x=this.index.get(H),n&&(this.db&&(t.tag=n,A=x.db.support_tag_search,t.field=k),A||(t.enrich=!1)),p){p[w]=x.searchAsync(a,b,t);t&&q&&(t.enrich=q);continue}else v=x.search(a,b,t),t&&q&&(t.enrich=q);I=v&&v.length;if(n&&I){t=[];x=0;if(this.db&&d){if(!A)for(let L=
k.length;L<d.length;L++){let E=d[L];if(E&&E.length)x++,t.push(E);else if(!r)return e}}else for(let L=0,E,$a;L<n.length;L+=2){E=this.tag.get(n[L]);if(!E)if(r)continue;else return e;if($a=(E=E&&E.get(n[L+1]))&&E.length)x++,t.push(E);else if(!r)return e}if(x){v=Ja(v,t);I=v.length;if(!I&&!r)return e;x--}}if(I)f[m]=H,e.push(v),m++;else if(1===k.length)return e}if(p){if(this.db&&n&&n.length&&!A)for(q=0;q<n.length;q+=2){d=this.index.get(n[q]);if(!d)if(r)continue;else return e;p.push(d.db.tag(n[q+1],b,l,
(k=[k])}k||(k=this.field);p=!d&&(this.worker||this.db)&&[];let A;for(let w=0,v,H,I;w<k.length;w++){H=k[w];if(this.db&&this.tag&&!this.G[w])continue;let D;B(H)||(D=H,H=D.field,a=D.query||a,b=D.limit||b,r=D.suggest||r);if(d)v=d[w];else if(t=D||c,x=this.index.get(H),n&&(this.db&&(t.tag=n,A=x.db.support_tag_search,t.field=k),A||(t.enrich=!1)),p){p[w]=x.searchAsync(a,b,t);t&&q&&(t.enrich=q);continue}else v=x.search(a,b,t),t&&q&&(t.enrich=q);I=v&&v.length;if(n&&I){t=[];x=0;if(this.db&&d){if(!A)for(let K=
k.length;K<d.length;K++){let E=d[K];if(E&&E.length)x++,t.push(E);else if(!r)return e}}else for(let K=0,E,$a;K<n.length;K+=2){E=this.tag.get(n[K]);if(!E)if(r)continue;else return e;if($a=(E=E&&E.get(n[K+1]))&&E.length)x++,t.push(E);else if(!r)return e}if(x){v=Ja(v,t);I=v.length;if(!I&&!r)return e;x--}}if(I)f[m]=H,e.push(v),m++;else if(1===k.length)return e}if(p){if(this.db&&n&&n.length&&!A)for(q=0;q<n.length;q+=2){d=this.index.get(n[q]);if(!d)if(r)continue;else return e;p.push(d.db.tag(n[q+1],b,l,
!1))}const w=this;return Promise.all(p).then(function(v){return v.length?w.search(a,b,c,v):v})}if(!m)return e;if(g&&(!q||!this.store))return e[0];p=[];for(let w=0,v;w<f.length;w++){v=e[w];q&&v.length&&!v[0].doc&&(this.db?p.push(v=this.index.get(this.field[0]).db.enrich(v)):v.length&&(v=Ta.call(this,v)));if(g)return v;e[w]={field:f[w],result:v}}return q&&this.db&&p.length?Promise.all(p).then(function(w){for(let v=0;v<w.length;v++)e[v].result=w[v];return h?Ua(e,b):e}):h?Ua(e,b):e};
function Ua(a,b){const c=[],d=z();for(let e=0,f,g;e<a.length;e++){f=a[e];g=f.result;for(let h=0,k,l,m;h<g.length;h++)if(l=g[h],k=l.id,m=d[k])m.push(f.field);else{if(c.length===b)return c;l.field=d[k]=[f.field];c.push(l)}}return c}function Sa(a,b,c,d,e){a=this.tag.get(a);if(!a)return[];if((b=(a=a&&a.get(b))&&a.length-d)&&0<b){if(b>c||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<a.length;c++)d=a[c],b[c]={id:d,doc:this.store.get(d)};return b};function Y(a){if(!this)return new Y(a);const b=a.document||a.doc||a;var c,d;this.G=[];this.field=[];this.K=[];this.key=(c=b.key||b.id)&&Va(c,this.K)||"id";(d=a.keystore||0)&&(this.keystore=d);this.reg=(this.fastupdate=!!a.fastupdate)?d?new K(d):new Map:d?new M(d):new Set;this.C=(c=b.store||null)&&!0!==c&&[];this.store=c&&(d?new K(d):new Map);this.cache=(c=a.cache||null)&&new G(c);a.cache=!1;this.worker=a.worker;c=new Map;d=b.index||b.field||b;B(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++){f=d[e];B(f)||
(g=f,f=f.field);g=C(g)?Object.assign({},a,g):a;if(this.worker){const h=new W(g);c.set(f,h);h.worker||(this.worker=!1)}this.worker||c.set(f,new O(g,this.reg));g.custom?this.G[e]=g.custom:(this.G[e]=Va(f,this.K),g.filter&&("string"===typeof this.G[e]&&(this.G[e]=new String(this.G[e])),this.G[e].I=g.filter));this.field[e]=f}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.C[e]=f.custom,f.custom.V=g):(this.C[e]=Va(g,this.K),f.filter&&("string"===typeof this.C[e]&&
(this.C[e]=new String(this.C[e])),this.C[e].I=f.filter))}this.index=c;this.tag=null;if(c=b.tag)if("string"===typeof c&&(c=[c]),c.length){this.tag=new Map;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.F[e]=f.custom:(this.F[e]=Va(g,this.K),f.filter&&("string"===typeof this.F[e]&&(this.F[e]=new String(this.F[e])),this.F[e].I=f.filter));this.O[e]=g;this.tag.set(g,new Map)}}a.db&&this.mount(a.db)}
u=Y.prototype;u.mount=function(a){let b=this.field;if(this.tag)for(let e=0,f;e<this.O.length;e++){f=this.O[e];var c=void 0;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)}c=[];const d={db:a.db,type:a.type,fastupdate:a.fastupdate};for(let e=0,f,g;e<b.length;e++){d.field=g=b[e];f=this.index.get(g);const h=new a.constructor(a.id,d);h.id=a.id;c[e]=h.mount(f);f.document=!0;e?f.bypass=!0:f.store=this.store}this.db=!0;return Promise.all(c)};
u.commit=async function(a,b){const c=[];for(const d of this.index.values())c.push(d.db.commit(d,a,b));await Promise.all(c);this.reg.clear()};u.destroy=function(){const a=[];for(const b of this.index.values())a.push(b.destroy());return Promise.all(a)};function Va(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}u.append=function(a,b){return this.add(a,b,!0)};
u.update=function(a,b){return this.remove(a).add(a,b)};u.remove=function(a){C(a)&&(a=ca(a,this.key));for(var b of this.index.values())b.remove(a,!0);if(this.reg.has(a)){if(this.tag&&!this.fastupdate)for(let c of this.tag.values())for(let d of c){b=d[0];const e=d[1],f=e.indexOf(a);-1<f&&(1<e.length?e.splice(f,1):c.delete(b))}this.store&&this.store.delete(a);this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
function Ta(a){const b=Array(a.length);for(let c=0,d;c<a.length;c++)d=a[c],b[c]={id:d,doc:this.store.get(d)};return b};function Y(a){if(!this)return new Y(a);const b=a.document||a.doc||a;let c,d;this.G=[];this.field=[];this.K=[];this.key=(c=b.key||b.id)&&Va(c,this.K)||"id";(d=a.keystore||0)&&(this.keystore=d);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 G(c);a.cache=!1;this.worker=a.worker;this.index=Wa.call(this,a,b);this.tag=null;if(c=b.tag)if("string"===typeof c&&(c=[c]),
c.length){this.tag=new Map;this.F=[];this.N=[];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.F[e]=f.custom:(this.F[e]=Va(g,this.K),f.filter&&("string"===typeof this.F[e]&&(this.F[e]=new String(this.F[e])),this.F[e].I=f.filter));this.N[e]=g;this.tag.set(g,new Map)}}if(this.worker){a=[];for(const e of this.index.values())e.worker.then&&a.push(e.worker);if(a.length){const e=this;return Promise.all(a).then(function(){return e})}}else a.db&&
this.mount(a.db)}u=Y.prototype;u.mount=function(a){let b=this.field;if(this.tag)for(let e=0,f;e<this.N.length;e++){f=this.N[e];var c=void 0;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)}c=[];const d={db:a.db,type:a.type,fastupdate:a.fastupdate};for(let e=0,f,g;e<b.length;e++){d.field=g=b[e];f=this.index.get(g);const h=new a.constructor(a.id,d);h.id=a.id;c[e]=h.mount(f);f.document=!0;e?f.bypass=!0:f.store=this.store}this.db=!0;return Promise.all(c)};
u.commit=async function(a,b){const c=[];for(const d of this.index.values())c.push(d.db.commit(d,a,b));await Promise.all(c);this.reg.clear()};u.destroy=function(){const a=[];for(const b of this.index.values())a.push(b.destroy());return Promise.all(a)};
function Wa(a,b){const c=new Map;let d=b.index||b.field||b;B(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++){f=d[e];B(f)||(g=f,f=f.field);g=C(g)?Object.assign({},a,g):a;if(this.worker){const h=new W(g);h.worker?c.set(f,h):this.worker=!1}this.worker||c.set(f,new O(g,this.reg));g.custom?this.G[e]=g.custom:(this.G[e]=Va(f,this.K),g.filter&&("string"===typeof this.G[e]&&(this.G[e]=new String(this.G[e])),this.G[e].I=g.filter));this.field[e]=f}if(this.C){a=b.store;B(a)&&(a=[a]);for(let e=0,f,g;e<a.length;e++)f=
a[e],g=f.field||f,f.custom?(this.C[e]=f.custom,f.custom.U=g):(this.C[e]=Va(g,this.K),f.filter&&("string"===typeof this.C[e]&&(this.C[e]=new String(this.C[e])),this.C[e].I=f.filter))}return c}function Va(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){C(a)&&(a=ca(a,this.key));for(var b of this.index.values())b.remove(a,!0);if(this.reg.has(a)){if(this.tag&&!this.fastupdate)for(let c of this.tag.values())for(let d of c){b=d[0];const e=d[1],f=e.indexOf(a);-1<f&&(1<e.length?e.splice(f,1):c.delete(b))}this.store&&this.store.delete(a);this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
u.clear=function(){for(const a of this.index.values())a.clear();if(this.tag)for(const a of this.tag.values())a.clear();this.store&&this.store.clear();return this};u.contain=function(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())a.cleanup();return this};u.get=function(a){return this.db?this.index.get(this.field[0]).db.enrich(a).then(function(b){return b[0]&&b[0].doc}):this.store.get(a)};
u.set=function(a,b){this.store.set(a,b);return this};u.searchCache=ma;u.export=function(a,b,c,d,e,f){let g;"undefined"===typeof f&&(g=new Promise(k=>{f=k}));e||(e=0);d||(d=0);if(d<this.field.length){c=this.field[d];var h=this.index[c];b=this;h.export(a,b,e?c:"",d,e++,f)||(d++,b.export(a,b,c,d,1,f))}else{switch(e){case 1:b="tag";h=this.A;c=null;break;case 2:b="store";h=this.store;c=null;break;default:f();return}za(a,this,c,b,d,e,h,f)}return g};
u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "tag":this.A=b;break;case "reg":this.fastupdate=!1;this.reg=b;for(let d=0,e;d<this.field.length;d++)e=this.index[this.field[d]],e.reg=b,e.fastupdate=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.index[c].import(a,b)}};Ba(Y.prototype);const Wa="undefined"!==typeof window&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Xa=["map","ctx","tag","reg","cfg"];
function Ya(a,b={}){if(!this)return new Ya(a,b);"object"===typeof a&&(b=a=a.name);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.support_tag_search=!1;this.db=null;this.h={}}u=Ya.prototype;u.mount=function(a){if(!a.encoder)return a.mount(this);a.db=this;return this.open()};
u.open=function(){let a=this;navigator.storage&&navigator.storage.persist();return this.db||new Promise(function(b,c){const d=Wa.open(a.id+(a.field?":"+a.field:""),1);d.onupgradeneeded=function(){const e=a.db=this.result;Xa.forEach(f=>{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.destroy=function(){return Wa.deleteDatabase(this.id+(this.field?":"+this.field:""))};u.clear=function(){const a=this.db.transaction(Xa,"readwrite");for(let b=0;b<Xa.length;b++)a.objectStore(Xa[b]).clear();return Z(a)};
u.get=function(a,b,c=0,d=0,e=!0,f=!1){a=this.db.transaction(b?"ctx":"map","readonly").objectStore(b?"ctx":"map").get(b?b+":"+a:a);const g=this;return Z(a).then(function(h){let k=[];if(!h||!h.length)return k;if(e){if(!c&&!d&&1===h.length)return h[0];for(let l=0,m;l<h.length;l++)if((m=h[l])&&m.length){if(d>=m.length){d-=m.length;continue}const n=c?d+Math.min(m.length-d,c):m.length;for(let q=d;q<n;q++)k.push(m[q]);d=0;if(k.length===c)break}return f?g.enrich(k):k}return h})};
u.import=function(a,b){if(b)switch(B(b)&&(b=JSON.parse(b)),a){case "tag":this.A=b;break;case "reg":this.fastupdate=!1;this.reg=b;for(let d=0,e;d<this.field.length;d++)e=this.index[this.field[d]],e.reg=b,e.fastupdate=!1;break;case "store":this.store=b;break;default:a=a.split(".");const c=a[0];a=a[1];c&&a&&this.index[c].import(a,b)}};Ba(Y.prototype);const Xa="undefined"!==typeof window&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Ya=["map","ctx","tag","reg","cfg"];
function Za(a,b={}){if(!this)return new Za(a,b);"object"===typeof a&&(b=a=a.name);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.support_tag_search=!1;this.db=null;this.h={}}u=Za.prototype;u.mount=function(a){if(!a.encoder)return a.mount(this);a.db=this;return this.open()};
u.open=function(){let a=this;navigator.storage&&navigator.storage.persist();return this.db||new Promise(function(b,c){const d=Xa.open(a.id+(a.field?":"+a.field:""),1);d.onupgradeneeded=function(){const e=a.db=this.result;Ya.forEach(f=>{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.destroy=function(){return Xa.deleteDatabase(this.id+(this.field?":"+this.field:""))};u.clear=function(){const a=this.db.transaction(Ya,"readwrite");for(let b=0;b<Ya.length;b++)a.objectStore(Ya[b]).clear();return Z(a)};
u.get=function(a,b,c=0,d=0,e=!0,f=!1){console.log("!!!!!!!!!!!");a=this.db.transaction(b?"ctx":"map","readonly").objectStore(b?"ctx":"map").get(b?b+":"+a:a);const g=this;return Z(a).then(function(h){let k=[];if(!h||!h.length)return k;if(e){if(!c&&!d&&1===h.length)return h[0];for(let l=0,m;l<h.length;l++)if((m=h[l])&&m.length){if(d>=m.length){d-=m.length;continue}const n=c?d+Math.min(m.length-d,c):m.length;for(let q=d;q<n;q++)k.push(m[q]);d=0;if(k.length===c)break}return f?g.enrich(k):k}return h})};
u.tag=function(a,b=0,c=0,d=!1){a=this.db.transaction("tag","readonly").objectStore("tag").get(a);const e=this;return Z(a).then(function(f){if(!f||!f.length||c>=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<a.length;d++)c[d]=Z(b.get(a[d]));return Promise.all(c).then(function(d){for(let e=0;e<d.length;e++)d[e]={id:a[e],doc:d[e]?JSON.parse(d[e]):null};return d})};u.has=function(a){a=this.db.transaction("reg","readonly").objectStore("reg").getKey(a);return Z(a)};u.search=null;u.info=function(){};
u.transaction=function(a,b,c){let d=this.h[a+":"+b];if(d)return c.call(this,d);let e=this.db.transaction(a,b);this.h[a+":"+b]=d=e.objectStore(a);return new Promise((f,g)=>{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.commit_task=[];else{let d=a.commit_task;a.commit_task=[];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.W;b||(c||(d=d.concat(ba(a.reg))),d.length&&await this.remove(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(){let h=this.result;var k;if(h&&h.length){const l=Math.max(h.length,g.length);
u.commit=async function(a,b,c){if(b)await this.clear(),a.commit_task=[];else{let d=a.commit_task;a.commit_task=[];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.V;b||(c||(d=d.concat(ba(a.reg))),d.length&&await this.remove(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(){let h=this.result;var k;if(h&&h.length){const l=Math.max(h.length,g.length);
for(let m=0,n,q;m<l;m++)if((q=g[m])&&q.length){if((n=h[m])&&n.length)for(k=0;k<q.length;k++)n.push(q[k]);else h[m]=q;k=1}}else h=g,k=1;k&&d.put(h,f)})}}),await this.transaction("ctx","readwrite",function(d){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];l.length&&(b?d.put(l,f+":"+k):d.get(f+":"+k).onsuccess=function(){let m=this.result;var n;if(m&&m.length){const q=Math.max(m.length,l.length);for(let r=0,p,t;r<q;r++)if((t=l[r])&&t.length){if((p=m[r])&&p.length)for(n=
0;n<t.length;n++)p.push(t[n]);else m[r]=t;n=1}}else m=l,n=1;n&&d.put(m,f+":"+k)})}}}),a.store?await this.transaction("reg","readwrite",function(d){for(const e of a.store){const f=e[0],g=e[1];d.put("object"===typeof g?JSON.stringify(g):1,f)}}):a.bypass||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){for(const e of a.tag){const f=e[0],g=e[1];g.length&&(d.get(f).onsuccess=function(){let h=this.result;
h=h&&h.length?h.concat(g):g;d.put(h,f)})}}),a.map.clear(),a.ctx.clear(),a.tag&&a.tag.clear(),a.store&&a.store.clear(),a.document||a.reg.clear())};
function Za(a,b,c){const d=a.value;let e,f,g=0;for(let h=0,k;h<d.length;h++){if(k=c?d:d[h]){for(let l=0,m,n;l<b.length;l++)if(n=b[l],m=k.indexOf(f?parseInt(n,10):n),0>m&&!f&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(f=1),0<=m)if(e=1,1<k.length)k.splice(m,1);else{d[h]=[];break}g+=k.length}if(c)break}g?e&&a.update(d):a.delete();a.continue()}
u.remove=function(a){"object"!==typeof a&&(a=[a]);return Promise.all([this.transaction("map","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&Za(c,a)}}),this.transaction("ctx","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&Za(c,a)}}),this.transaction("tag","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&Za(c,a,!0)}}),this.transaction("reg","readwrite",function(b){for(let c=0;c<a.length;c++)b.delete(a[c])})])};
function Z(a){return new Promise((b,c)=>{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={};
function ab(a,b,c){const d=a.value;let e,f,g=0;for(let h=0,k;h<d.length;h++){if(k=c?d:d[h]){for(let l=0,m,n;l<b.length;l++)if(n=b[l],m=k.indexOf(f?parseInt(n,10):n),0>m&&!f&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(f=1),0<=m)if(e=1,1<k.length)k.splice(m,1);else{d[h]=[];break}g+=k.length}if(c)break}g?e&&a.update(d):a.delete();a.continue()}
u.remove=function(a){"object"!==typeof a&&(a=[a]);return Promise.all([this.transaction("map","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&ab(c,a)}}),this.transaction("ctx","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&ab(c,a)}}),this.transaction("tag","readwrite",function(b){b.openCursor().onsuccess=function(){const c=this.result;c&&ab(c,a,!0)}}),this.transaction("reg","readwrite",function(b){for(let c=0;c<a.length;c++)b.delete(a[c])})])};
function Z(a){return new Promise((b,c)=>{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:Za,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=Za;export const Language={};

View File

@@ -363,7 +363,7 @@ function P(a, c, b, e, d, f, g) {
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;
}
;function Q(a, c, b) {
;function ua(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;
}
@@ -393,7 +393,7 @@ function O(a, c, b, e, d) {
}
return e.length ? e = 1 < e.length ? [].concat.apply([], e) : e[0] : e;
}
;function ua(a, c) {
;function va(a, c) {
const b = y(), e = [];
for (let d = 0, f; d < c.length; d++) {
f = c[d];
@@ -420,11 +420,11 @@ function O(a, c, b, e, d) {
b = a.length;
c || (c = 100);
if (1 === b) {
return R.call(this, a[0], "", c, d);
return Q.call(this, a[0], "", c, d);
}
f = this.depth && !1 !== f;
if (2 === b && f && !g) {
return R.call(this, a[0], a[1], c, d);
return Q.call(this, a[0], a[1], c, d);
}
var h = 0, k = 0;
if (1 < b) {
@@ -432,7 +432,7 @@ function O(a, c, b, e, d) {
const q = [];
for (let t = 0, p; t < b; t++) {
if ((p = a[t]) && !l[p]) {
if (g || S(this, p)) {
if (g || R(this, p)) {
q.push(p), l[p] = 1;
} else {
return e;
@@ -450,10 +450,10 @@ function O(a, c, b, e, d) {
}
l = 0;
if (1 === b) {
return R.call(this, a[0], "", c, d);
return Q.call(this, a[0], "", c, d);
}
if (2 === b && f && !g) {
return R.call(this, a[0], a[1], c, d);
return Q.call(this, a[0], a[1], c, d);
}
if (1 < b) {
if (f) {
@@ -465,7 +465,7 @@ function O(a, c, b, e, d) {
}
for (let q, t; l < b; l++) {
t = a[l];
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));
m ? (q = R(this, t, m), q = wa(q, e, g, this.P), g && !1 === q && e.length || (m = t)) : (q = R(this, t, ""), q = wa(q, e, g, this.resolution));
if (q) {
return q;
}
@@ -480,7 +480,7 @@ function O(a, c, b, e, d) {
return e;
}
if (1 === f) {
return Q(e[0], c, d);
return ua(e[0], c, d);
}
}
}
@@ -539,31 +539,24 @@ function O(a, c, b, e, d) {
}
return e;
};
function R(a, c, b, e) {
return (a = S(this, a, c)) && a.length ? Q(a, b, e) : [];
function Q(a, c, b, e) {
return (a = R(this, a, c)) && a.length ? ua(a, b, e) : [];
}
function va(a, c, b, e, d, f, g) {
let h = [];
function wa(a, c, b, e) {
let d = [];
if (a) {
e = Math.min(a.length, e);
for (let k = 0, l = 0, m; k < e; k++) {
if (m = a[k]) {
if (f && m && g && (m.length <= f ? (f -= m.length, m = null) : (m = m.slice(f), f = 0)), m && (h[k] = m, g && (l += m.length, l >= d))) {
break;
for (let f = 0, g; f < e; f++) {
(g = a[f]) && g && (d[f] = g);
}
}
}
if (h.length) {
if (g) {
return Q(h, d, 0);
}
c.push(h);
if (d.length) {
c.push(d);
return;
}
}
return !b && h;
return !b && d;
}
function S(a, c, b) {
function R(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);
@@ -584,14 +577,14 @@ function S(a, c, b) {
}
}
} else {
T(this.map, a), this.depth && T(this.ctx, a);
S(this.map, a), this.depth && S(this.ctx, a);
}
c || this.reg.delete(a);
}
this.cache && this.cache.remove(a);
return this;
};
function T(a, c) {
function S(a, c) {
let b = 0;
if (a.constructor === Array) {
for (let e = 0, d, f; e < a.length; e++) {
@@ -606,7 +599,7 @@ function T(a, c) {
}
} else {
for (let e of a) {
const d = e[0], f = T(e[1], c);
const d = e[0], f = S(e[1], c);
f ? b += f : a.delete(d);
}
}
@@ -623,7 +616,7 @@ function T(a, c) {
a = {};
}
b = a.context || {};
const e = a.encode || a.encoder || ja;
const e = z(a.encoder) ? qa[a.encoder] : a.encode || a.encoder || ja;
this.encoder = e.encode ? e : "object" === typeof e ? new J(e) : {encode:e};
let d;
this.resolution = a.resolution || 9;
@@ -658,7 +651,7 @@ u.update = function(a, c) {
const b = this, e = this.remove(a);
return e && e.then ? e.then(() => b.add(a, c)) : this.add(a, c);
};
function U(a) {
function T(a) {
let c = 0;
if (a.constructor === Array) {
for (let b = 0, e; b < a.length; b++) {
@@ -666,7 +659,7 @@ function U(a) {
}
} else {
for (const b of a) {
const e = b[0], d = U(b[1]);
const e = b[0], d = T(b[1]);
d ? c += d : a.delete(e);
}
}
@@ -676,8 +669,8 @@ u.cleanup = function() {
if (!this.fastupdate) {
return console.info('Cleanup the index isn\'t required when not using "fastupdate".'), this;
}
U(this.map);
this.depth && U(this.ctx);
T(this.map);
this.depth && T(this.ctx);
return this;
};
u.searchCache = ia;
@@ -787,7 +780,7 @@ u.serialize = function(a = !0) {
return a ? "function inject(index){" + c + e + d + "}" : c + e + d;
};
ta(N.prototype);
V.prototype.add = function(a, c, b) {
U.prototype.add = function(a, c, b) {
E(a) && (c = a, a = F(c, this.key));
if (c && (a || 0 === a)) {
if (!b && this.reg.has(a)) {
@@ -801,7 +794,7 @@ V.prototype.add = function(a, c, b) {
d && e.add(a, d, !1, !0);
} else {
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);
k.constructor === String ? k = ["" + k] : z(k) && (k = [k]), V(c, k, this.I, 0, e, a, k[0], b);
}
}
}
@@ -852,7 +845,7 @@ V.prototype.add = function(a, c, b) {
h[l] = c[l];
continue;
}
X(c, h, l, 0, l[0], m);
W(c, h, l, 0, l[0], m);
}
}
this.store.set(a, h || c);
@@ -860,21 +853,21 @@ V.prototype.add = function(a, c, b) {
}
return this;
};
function X(a, c, b, e, d, f) {
function W(a, c, b, e, d, f) {
a = a[d];
if (e === b.length - 1) {
c[d] = f || a;
} else if (a) {
if (a.constructor === Array) {
for (c = c[d] = Array(a.length), d = 0; d < a.length; d++) {
X(a, c, b, e, d);
W(a, c, b, e, d);
}
} else {
c = c[d] || (c[d] = y()), d = b[++e], X(a, c, b, e, d);
c = c[d] || (c[d] = y()), d = b[++e], W(a, c, b, e, d);
}
}
}
function W(a, c, b, e, d, f, g, h) {
function V(a, c, b, e, d, f, g, h) {
if (a = a[g]) {
if (e === c.length - 1) {
if (a.constructor === Array) {
@@ -890,15 +883,15 @@ function W(a, c, b, e, d, f, g, h) {
} else {
if (a.constructor === Array) {
for (g = 0; g < a.length; g++) {
W(a, c, b, e, d, f, g, h);
V(a, c, b, e, d, f, g, h);
}
} else {
g = c[++e], W(a, c, b, e, d, f, g, h);
g = c[++e], V(a, c, b, e, d, f, g, h);
}
}
}
}
;V.prototype.search = function(a, c, b, e) {
;U.prototype.search = function(a, c, b, e) {
b || (!c && E(a) ? (b = a, a = "") : E(c) && (b = c, c = 0));
let d = [];
var f = [];
@@ -954,7 +947,7 @@ function W(a, c, b, e, d, f, g, h) {
e = [];
if (n.length) {
for (f = 0; f < n.length; f += 2) {
t = wa.call(this, n[f], n[f + 1], c, p, g), d.push({field:n[f], tag:n[f + 1], result:t});
t = xa.call(this, n[f], n[f + 1], c, p, g), d.push({field:n[f], tag:n[f + 1], result:t});
}
}
return e.length ? Promise.all(e).then(function(v) {
@@ -1004,7 +997,7 @@ function W(a, c, b, e, d, f, g, h) {
}
}
if (w) {
r = ua(r, n);
r = va(r, n);
D = r.length;
if (!D && !k) {
return d;
@@ -1033,15 +1026,15 @@ function W(a, c, b, e, d, f, g, h) {
p = [];
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));
g && r.length && !r[0].doc && r.length && (r = ya.call(this, r));
if (t) {
return r;
}
d[v] = {field:f[v], result:r};
}
return h ? ya(d, c) : d;
return h ? za(d, c) : d;
};
function ya(a, c) {
function za(a, c) {
const b = [], e = y();
for (let d = 0, f, g; d < a.length; d++) {
f = a[d];
@@ -1060,7 +1053,7 @@ function ya(a, c) {
}
return b;
}
function wa(a, c, b, e, d) {
function xa(a, c, b, e, d) {
let f = this.tag.get(a);
if (!f) {
return console.warn("Tag '" + a + "' was not found"), [];
@@ -1069,27 +1062,27 @@ function wa(a, c, b, e, d) {
if (a > b || e) {
f = f.slice(e, e + b);
}
d && (f = xa.call(this, f));
d && (f = ya.call(this, f));
return f;
}
}
function xa(a) {
function ya(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)};
}
return c;
}
;function V(a) {
;function U(a) {
if (!this) {
return new V(a);
return new U(a);
}
const c = a.document || a.doc || a;
var b;
this.C = [];
this.field = [];
this.I = [];
this.key = (b = c.key || c.id) && Y(b, this.I) || "id";
this.key = (b = c.key || c.id) && X(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();
@@ -1099,13 +1092,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.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;
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] = X(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.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.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));
f = a[d], g = f.field || f, f.custom ? (this.A[d] = f.custom, f.custom.S = g) : (this.A[d] = X(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;
@@ -1121,14 +1114,14 @@ function xa(a) {
if (!g) {
throw Error("The tag field from the document descriptor is undefined.");
}
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));
f.custom ? this.B[d] = f.custom : (this.B[d] = X(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());
}
}
}
}
function Y(a, c) {
function X(a, c) {
const b = a.split(":");
let e = 0;
for (let d = 0; d < b.length; d++) {
@@ -1137,7 +1130,7 @@ function Y(a, c) {
e < b.length && (b.length = e);
return 1 < e ? b : b[0];
}
u = V.prototype;
u = U.prototype;
u.append = function(a, c) {
return this.add(a, c, !0);
};
@@ -1250,10 +1243,10 @@ u.import = function(a, c) {
}
}
};
ta(V.prototype);
const za = {Index:N, Charset:qa, Encoder:J, Document:V, Worker:null, Resolver:null, IndexedDB:null, Language:{}}, Z = self;
ta(U.prototype);
const Y = {Index:N, Charset:qa, Encoder:J, Document:U, Worker:null, Resolver:null, IndexedDB:null, Language:{}}, Z = self;
let Ba;
(Ba = Z.define) && Ba.amd ? Ba([], function() {
return za;
}) : "object" === typeof Z.exports ? Z.exports = za : Z.FlexSearch = za;
return Y;
}) : "object" === typeof Z.exports ? Z.exports = Y : Z.FlexSearch = Y;
}(this));

View File

@@ -23,29 +23,29 @@ this.cache&&h.length<=this.D&&(this.H.set(h,g),this.H.size>this.O&&(this.H.clear
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;b<a.length;b++){var c=a[b];let e=c.charAt(0),d=ma[e];for(let f=1,g;f<c.length&&(g=c.charAt(f),"h"===
g||"w"===g||!(g=ma[g])||g===d||(e+=g,d=g,4!==e.length));f++);a[b]=e}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(na," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(oa,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(pa," ")}}};function ra(a,c,b,e,d,f,g,h){(e=a(b?b+"."+e:e,JSON.stringify(g)))&&e.then?e.then(function(){c.export(a,c,b,d,f+1,h)}):c.export(a,c,b,d,f+1,h)};const sa={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 ta(a){L.call(a,"add");L.call(a,"append");L.call(a,"search");L.call(a,"update");L.call(a,"remove")}function L(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]);c=this[a].apply(this,c);e&&(c.then?c.then(e):e(c));return c}};y();M.prototype.add=function(a,c,b,e){if(c&&(a||0===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(),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&&(q||!m[n])){var f=this.score?this.score(c,n,p,null,0):N(t,e,p),g="";switch(this.tokenize){case "full":if(2<d){for(f=0;f<d;f++)for(var h=d;h>f;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;0<h;h--)g=n[h]+g,k=this.score?this.score(c,n,p,g,h):N(t,e,p,d,h),O(this,m,g,k,a,b);g=""}case "forward":if(1<d){for(h=0;h<d;h++)g+=n[h],O(this,m,g,f,a,b);break}default:if(O(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):N(g+(e/2>g?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&&1<a?c+(e||0)<=a?b+(d||0):(a-1)/(c+(e||0))*(b+(d||0))+1|0:0};function Q(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 d=0,f,g;d<a.length;d++)if((f=a[d])&&(g=f.length)){if(b){if(b>=g){b-=g;continue}b<g&&(f=c?f.slice(b,b+c):f.slice(b),g=f.length,b=0)}if(e.length)g>c&&(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=1<e.length?[].concat.apply([],e):e[0]:e};function ua(a,c){const b=y(),e=[];for(let d=0,f;d<c.length;d++){f=c[d];for(let g=0;g<f.length;g++)b[f[g]]=1}for(let d=0,f;d<a.length;d++)f=a[d],1===b[f]&&(e.push(f),b[f]=2);return e};M.prototype.search=function(a,c,b){b||(!c&&E(a)?(b=a,a=""):E(c)&&(b=c,c=0));var e=[],d=0;if(b){a=b.query||a;c=b.limit||c;d=b.offset||0;var f=b.context;var g=b.suggest}a=this.encoder.encode(a);b=a.length;c||(c=100);if(1===b)return R.call(this,a[0],"",c,d);f=this.depth&&!1!==f;if(2===b&&f&&!g)return R.call(this,a[0],a[1],c,d);var h=0,k=0;if(1<b){var l=y();const q=[];for(let t=0,p;t<b;t++)if((p=a[t])&&!l[p]){if(g||S(this,p))q.push(p),l[p]=1;else return e;const n=p.length;h=Math.max(h,n);k=k?Math.min(k,
n):n}a=q;b=a.length}if(!b)return e;l=0;if(1===b)return R.call(this,a[0],"",c,d);if(2===b&&f&&!g)return R.call(this,a[0],a[1],c,d);if(1<b)if(f){var m=a[0];l=1}else 9<h&&3<h/k&&a.sort(aa);for(let q,t;l<b;l++){t=a[l];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;if(!f){if(m){m="";l=-1;continue}return e}if(1===f)return Q(e[0],c,d)}}a:{a=e;e=this.resolution;m=a.length;b=[];f=y();for(let q=
0,t,p,n,w;q<e;q++)for(k=0;k<m;k++)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);if(a=b.length)if(g){if(1<b.length){g=b;a=[];e=y();f=g.length;for(k=0;k<f;k++)for(m=g[k],h=m.length,l=0;l<h;l++)if(b=m[l],!e[b])if(e[b]=1,d)d--;else if(a.push(b),a.length===c)break;c=a}else c=b[0];b=c}else{if(a<m){e=[];break a}b=b[a-1];if(b.length>c||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<e;k++)if(m=a[k])if(f&&m&&g&&(m.length<=f?(f-=m.length,m=null):(m=m.slice(f),f=0)),m&&(h[k]=m,g&&(l+=m.length,l>=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;e<b.length;e++){if(d=b[e])if(2>d.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;e<a.length;e++){if((d=a[e])&&d.length)if(f=d.indexOf(c),0<=f){1<d.length?(d.splice(f,1),b++):delete a[e];break}else b++}else for(let e of a){const d=e[0],f=T(e[1],c);f?b+=f:a.delete(d)}return b};function M(a,c){if(!this)return new M(a);if(a){var b=z(a)?a:a.preset;b&&(a=Object.assign({},sa[b],a))}else a={};b=a.context||{};const e=a.encode||a.encoder||ja;this.encoder=e.encode?e:"object"===typeof e?new I(e):{encode:e};let d;this.resolution=a.resolution||9;this.tokenize=d=a.tokenize||"strict";this.depth="strict"===d&&b.depth||0;this.bidirectional=!1!==b.bidirectional;this.fastupdate=!!a.fastupdate;this.score=a.score||null;d=!1;this.map=new Map;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 J(d)}u=M.prototype;u.clear=function(){this.map.clear();this.ctx.clear();this.reg.clear();this.cache&&this.cache.clear();return this};u.append=function(a,c){return this.add(a,c,!0)};u.contain=function(a){return this.reg.has(a)};u.update=function(a,c){const b=this,e=this.remove(a);return e&&e.then?e.then(()=>b.add(a,c)):this.add(a,c)};
function U(a){let c=0;if(a.constructor===Array)for(let b=0,e;b<a.length;b++)(e=a[b])&&(c+=e.length);else for(const b of a){const e=b[0],d=U(b[1]);d?c+=d:a.delete(e)}return c}u.cleanup=function(){if(!this.fastupdate)return this;U(this.map);this.depth&&U(this.ctx);return this};u.searchCache=ia;
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&&1<a?c+(e||0)<=a?b+(d||0):(a-1)/(c+(e||0))*(b+(d||0))+1|0:0};function ua(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 d=0,f,g;d<a.length;d++)if((f=a[d])&&(g=f.length)){if(b){if(b>=g){b-=g;continue}b<g&&(f=c?f.slice(b,b+c):f.slice(b),g=f.length,b=0)}if(e.length)g>c&&(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=1<e.length?[].concat.apply([],e):e[0]:e};function va(a,c){const b=y(),e=[];for(let d=0,f;d<c.length;d++){f=c[d];for(let g=0;g<f.length;g++)b[f[g]]=1}for(let d=0,f;d<a.length;d++)f=a[d],1===b[f]&&(e.push(f),b[f]=2);return e};M.prototype.search=function(a,c,b){b||(!c&&E(a)?(b=a,a=""):E(c)&&(b=c,c=0));var e=[],d=0;if(b){a=b.query||a;c=b.limit||c;d=b.offset||0;var f=b.context;var g=b.suggest}a=this.encoder.encode(a);b=a.length;c||(c=100);if(1===b)return Q.call(this,a[0],"",c,d);f=this.depth&&!1!==f;if(2===b&&f&&!g)return Q.call(this,a[0],a[1],c,d);var h=0,k=0;if(1<b){var l=y();const q=[];for(let t=0,p;t<b;t++)if((p=a[t])&&!l[p]){if(g||R(this,p))q.push(p),l[p]=1;else return e;const n=p.length;h=Math.max(h,n);k=k?Math.min(k,
n):n}a=q;b=a.length}if(!b)return e;l=0;if(1===b)return Q.call(this,a[0],"",c,d);if(2===b&&f&&!g)return Q.call(this,a[0],a[1],c,d);if(1<b)if(f){var m=a[0];l=1}else 9<h&&3<h/k&&a.sort(aa);for(let q,t;l<b;l++){t=a[l];m?(q=R(this,t,m),q=wa(q,e,g,this.P),g&&!1===q&&e.length||(m=t)):(q=R(this,t,""),q=wa(q,e,g,this.resolution));if(q)return q;if(g&&l===b-1){f=e.length;if(!f){if(m){m="";l=-1;continue}return e}if(1===f)return ua(e[0],c,d)}}a:{a=e;e=this.resolution;m=a.length;b=[];f=y();for(let q=0,t,p,n,w;q<
e;q++)for(k=0;k<m;k++)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);if(a=b.length)if(g){if(1<b.length){g=b;a=[];e=y();f=g.length;for(k=0;k<f;k++)for(m=g[k],h=m.length,l=0;l<h;l++)if(b=m[l],!e[b])if(e[b]=1,d)d--;else if(a.push(b),a.length===c)break;c=a}else c=b[0];b=c}else{if(a<m){e=[];break a}b=b[a-1];if(b.length>c||d)b=b.slice(d,c+d)}e=b}return e};function Q(a,c,b,e){return(a=R(this,a,c))&&a.length?ua(a,b,e):[]}
function wa(a,c,b,e){let d=[];if(a){e=Math.min(a.length,e);for(let f=0,g;f<e;f++)(g=a[f])&&g&&(d[f]=g);if(d.length){c.push(d);return}}return!b&&d}function R(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;e<b.length;e++){if(d=b[e])if(2>d.length)d.pop();else{const f=d.indexOf(a);f===b.length-1?d.pop():d.splice(f,1)}}else S(this.map,a),this.depth&&S(this.ctx,a);c||this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
function S(a,c){let b=0;if(a.constructor===Array)for(let e=0,d,f;e<a.length;e++){if((d=a[e])&&d.length)if(f=d.indexOf(c),0<=f){1<d.length?(d.splice(f,1),b++):delete a[e];break}else b++}else for(let e of a){const d=e[0],f=S(e[1],c);f?b+=f:a.delete(d)}return b};function M(a,c){if(!this)return new M(a);if(a){var b=z(a)?a:a.preset;b&&(a=Object.assign({},sa[b],a))}else a={};b=a.context||{};const e=z(a.encoder)?qa[a.encoder]:a.encode||a.encoder||ja;this.encoder=e.encode?e:"object"===typeof e?new I(e):{encode:e};let d;this.resolution=a.resolution||9;this.tokenize=d=a.tokenize||"strict";this.depth="strict"===d&&b.depth||0;this.bidirectional=!1!==b.bidirectional;this.fastupdate=!!a.fastupdate;this.score=a.score||null;d=!1;this.map=new Map;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 J(d)}u=M.prototype;u.clear=function(){this.map.clear();this.ctx.clear();this.reg.clear();this.cache&&this.cache.clear();return this};u.append=function(a,c){return this.add(a,c,!0)};u.contain=function(a){return this.reg.has(a)};u.update=function(a,c){const b=this,e=this.remove(a);return e&&e.then?e.then(()=>b.add(a,c)):this.add(a,c)};
function T(a){let c=0;if(a.constructor===Array)for(let b=0,e;b<a.length;b++)(e=a[b])&&(c+=e.length);else for(const b of a){const e=b[0],d=T(b[1]);d?c+=d:a.delete(e)}return c}u.cleanup=function(){if(!this.fastupdate)return this;T(this.map);this.depth&&T(this.ctx);return this};u.searchCache=ia;
u.export=function(a,c,b,e,d,f){let g=!0;"undefined"===typeof f&&(g=new Promise(l=>{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;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(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.reg.has(a))return this.update(a,c);for(let h=0,k;h<this.field.length;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.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.B.length;e++){var f=this.B[e];d=this.tag.get(this.R[e]);let h=y();if("function"===typeof f){if(f=f(c),!f)continue}else{var g=
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(M.prototype);U.prototype.add=function(a,c,b){E(a)&&(c=a,a=F(c,this.key));if(c&&(a||0===a)){if(!b&&this.reg.has(a))return this.update(a,c);for(let h=0,k;h<this.field.length;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.G,!d||d(c))k.constructor===String?k=[""+k]:z(k)&&(k=[k]),V(c,k,this.I,0,e,a,k[0],b)}if(this.tag)for(e=0;e<this.B.length;e++){var f=this.B[e];d=this.tag.get(this.R[e]);let h=y();if("function"===typeof f){if(f=f(c),!f)continue}else{var g=
f.G;if(g&&!g(c))continue;f.constructor===String&&(f=""+f);f=F(c,f)}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.reg.get(a))?g.push(m):this.reg.set(a,[m]))))}}if(this.store&&(!b||!this.store.has(a))){let h;if(this.A){h=y();for(let k=0,l;k<this.A.length;k++){l=this.A[k];if((b=l.G)&&!b(c))continue;let m;if("function"===typeof l){m=l(c);if(!m)continue;l=[l.S]}else if(z(l)||l.constructor===
String){h[l]=c[l];continue}X(c,h,l,0,l[0],m)}}this.store.set(a,h||c)}}return this};function X(a,c,b,e,d,f){a=a[d];if(e===b.length-1)c[d]=f||a;else if(a)if(a.constructor===Array)for(c=c[d]=Array(a.length),d=0;d<a.length;d++)X(a,c,b,e,d);else c=c[d]||(c[d]=y()),d=b[++e],X(a,c,b,e,d)}
function W(a,c,b,e,d,f,g,h){if(a=a[g])if(e===c.length-1){if(a.constructor===Array){if(b[e]){for(c=0;c<a.length;c++)d.add(f,a[c],!0,!0);return}a=a.join(" ")}d.add(f,a,h,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)W(a,c,b,e,d,f,g,h);else g=c[++e],W(a,c,b,e,d,f,g,h)};V.prototype.search=function(a,c,b,e){b||(!c&&E(a)?(b=a,a=""):E(c)&&(b=c,c=0));let d=[];var f=[];let g,h,k,l,m;let q=0;if(b){b.constructor===Array&&(b={index:b});a=b.query||a;var t=b.pluck;h=b.merge;l=t||b.field||b.index;m=this.tag&&b.tag;g=this.store&&b.enrich;k=b.suggest;c=b.limit||c;var p=b.offset||0;c||(c=100);if(m){m.constructor!==Array&&(m=[m]);var n=[];for(let v=0,r;v<m.length;v++)if(r=m[v],r.field&&r.tag){var w=r.tag;if(w.constructor===Array)for(var B=0;B<w.length;B++)n.push(r.field,w[B]);
else n.push(r.field,w)}else{w=Object.keys(r);for(let C=0,D,A;C<w.length;C++)if(D=w[C],A=r[D],A.constructor===Array)for(B=0;B<A.length;B++)n.push(D,A[B]);else n.push(D,A)}m=n;if(!a){e=[];if(n.length)for(f=0;f<n.length;f+=2)t=wa.call(this,n[f],n[f+1],c,p,g),d.push({field:n[f],tag:n[f+1],result:t});return e.length?Promise.all(e).then(function(v){for(let r=0;r<v.length;r++)d[r].result=v[r];return d}):d}}z(l)&&(l=[l])}l||(l=this.field);p=!e&&(this.worker||this.db)&&[];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)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 r=w.search(a,c,n),n&&g&&(n.enrich=g);D=r&&r.length;if(m&&D){n=[];w=0;for(let P=0,G,Aa;P<m.length;P+=2){G=this.tag.get(m[P]);if(!G)if(k)continue;else return d;if(Aa=(G=G&&G.get(m[P+1]))&&G.length)w++,n.push(G);else if(!k)return d}if(w){r=ua(r,n);D=r.length;if(!D&&!k)return d;w--}}if(D)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(r){return r.length?v.search(a,c,b,r):r})}if(!q)return d;if(t&&(!g||!this.store))return d[0];p=[];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 r;d[v]={field:f[v],result:r}}return h?ya(d,c):d};
function ya(a,c){const b=[],e=y();for(let d=0,f,g;d<a.length;d++){f=a[d];g=f.result;for(let h=0,k,l,m;h<g.length;h++)if(l=g[h],k=l.id,m=e[k])m.push(f.field);else{if(b.length===c)return b;l.field=e[k]=[f.field];b.push(l)}}return b}function wa(a,c,b,e,d){a=this.tag.get(a);if(!a)return[];if((c=(a=a&&a.get(c))&&a.length-e)&&0<c){if(c>b||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<a.length;b++)e=a[b],c[b]={id:e,doc:this.store.get(e)};return c};function V(a){if(!this)return new V(a);const c=a.document||a.doc||a;var b;this.C=[];this.field=[];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 J(b);a.cache=!1;b=new Map;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 M(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.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.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;this.tag=null;if(b=c.tag)if("string"===typeof b&&(b=[b]),b.length){this.tag=new Map;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.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)}}}
function Y(a,c){const b=a.split(":");let e=0;for(let d=0;d<b.length;d++)a=b[d],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(c[e]=!0),a&&(b[e++]=a);e<b.length&&(b.length=e);return 1<e?b:b[0]}u=V.prototype;u.append=function(a,c){return this.add(a,c,!0)};u.update=function(a,c){return this.remove(a).add(a,c)};
String){h[l]=c[l];continue}W(c,h,l,0,l[0],m)}}this.store.set(a,h||c)}}return this};function W(a,c,b,e,d,f){a=a[d];if(e===b.length-1)c[d]=f||a;else if(a)if(a.constructor===Array)for(c=c[d]=Array(a.length),d=0;d<a.length;d++)W(a,c,b,e,d);else c=c[d]||(c[d]=y()),d=b[++e],W(a,c,b,e,d)}
function V(a,c,b,e,d,f,g,h){if(a=a[g])if(e===c.length-1){if(a.constructor===Array){if(b[e]){for(c=0;c<a.length;c++)d.add(f,a[c],!0,!0);return}a=a.join(" ")}d.add(f,a,h,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)V(a,c,b,e,d,f,g,h);else g=c[++e],V(a,c,b,e,d,f,g,h)};U.prototype.search=function(a,c,b,e){b||(!c&&E(a)?(b=a,a=""):E(c)&&(b=c,c=0));let d=[];var f=[];let g,h,k,l,m;let q=0;if(b){b.constructor===Array&&(b={index:b});a=b.query||a;var t=b.pluck;h=b.merge;l=t||b.field||b.index;m=this.tag&&b.tag;g=this.store&&b.enrich;k=b.suggest;c=b.limit||c;var p=b.offset||0;c||(c=100);if(m){m.constructor!==Array&&(m=[m]);var n=[];for(let v=0,r;v<m.length;v++)if(r=m[v],r.field&&r.tag){var w=r.tag;if(w.constructor===Array)for(var B=0;B<w.length;B++)n.push(r.field,w[B]);
else n.push(r.field,w)}else{w=Object.keys(r);for(let C=0,D,A;C<w.length;C++)if(D=w[C],A=r[D],A.constructor===Array)for(B=0;B<A.length;B++)n.push(D,A[B]);else n.push(D,A)}m=n;if(!a){e=[];if(n.length)for(f=0;f<n.length;f+=2)t=xa.call(this,n[f],n[f+1],c,p,g),d.push({field:n[f],tag:n[f+1],result:t});return e.length?Promise.all(e).then(function(v){for(let r=0;r<v.length;r++)d[r].result=v[r];return d}):d}}z(l)&&(l=[l])}l||(l=this.field);p=!e&&(this.worker||this.db)&&[];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)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 r=w.search(a,c,n),n&&g&&(n.enrich=g);D=r&&r.length;if(m&&D){n=[];w=0;for(let P=0,G,Aa;P<m.length;P+=2){G=this.tag.get(m[P]);if(!G)if(k)continue;else return d;if(Aa=(G=G&&G.get(m[P+1]))&&G.length)w++,n.push(G);else if(!k)return d}if(w){r=va(r,n);D=r.length;if(!D&&!k)return d;w--}}if(D)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(r){return r.length?v.search(a,c,b,r):r})}if(!q)return d;if(t&&(!g||!this.store))return d[0];p=[];for(let v=0,r;v<f.length;v++){r=d[v];g&&r.length&&!r[0].doc&&r.length&&(r=ya.call(this,r));if(t)return r;d[v]={field:f[v],result:r}}return h?za(d,c):d};
function za(a,c){const b=[],e=y();for(let d=0,f,g;d<a.length;d++){f=a[d];g=f.result;for(let h=0,k,l,m;h<g.length;h++)if(l=g[h],k=l.id,m=e[k])m.push(f.field);else{if(b.length===c)return b;l.field=e[k]=[f.field];b.push(l)}}return b}function xa(a,c,b,e,d){a=this.tag.get(a);if(!a)return[];if((c=(a=a&&a.get(c))&&a.length-e)&&0<c){if(c>b||e)a=a.slice(e,e+b);d&&(a=ya.call(this,a));return a}}
function ya(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)};return c};function U(a){if(!this)return new U(a);const c=a.document||a.doc||a;var b;this.C=[];this.field=[];this.I=[];this.key=(b=c.key||c.id)&&X(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 J(b);a.cache=!1;b=new Map;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 M(g,this.reg)),g.custom?this.C[d]=
g.custom:(this.C[d]=X(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.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.A[d]=f.custom,f.custom.S=g):(this.A[d]=X(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;this.tag=null;if(b=c.tag)if("string"===typeof b&&(b=[b]),b.length){this.tag=new Map;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.B[d]=f.custom:(this.B[d]=X(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)}}}
function X(a,c){const b=a.split(":");let e=0;for(let d=0;d<b.length;d++)a=b[d],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(c[e]=!0),a&&(b[e++]=a);e<b.length&&(b.length=e);return 1<e?b:b[0]}u=U.prototype;u.append=function(a,c){return this.add(a,c,!0)};u.update=function(a,c){return this.remove(a).add(a,c)};
u.remove=function(a){E(a)&&(a=F(a,this.key));for(var c of this.index.values())c.remove(a,!0);if(this.reg.has(a)){if(this.tag&&!this.fastupdate)for(let b of this.tag.values())for(let e of b){c=e[0];const d=e[1],f=d.indexOf(a);-1<f&&(1<d.length?d.splice(f,1):b.delete(c))}this.store&&this.store.delete(a);this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
u.clear=function(){for(const a of this.index.values())a.clear();if(this.tag)for(const a of this.tag.values())a.clear();this.store&&this.store.clear();return this};u.contain=function(a){return this.reg.has(a)};u.cleanup=function(){for(const a of this.index.values())a.cleanup();return this};u.get=function(a){return this.store.get(a)};u.set=function(a,c){this.store.set(a,c);return this};u.searchCache=ia;
u.export=function(a,c,b,e,d,f){let g;"undefined"===typeof f&&(g=new Promise(k=>{f=k}));d||(d=0);e||(e=0);if(e<this.field.length){b=this.field[e];var h=this.index[b];c=this;h.export(a,c,d?b:"",e,d++,f)||(e++,c.export(a,c,b,e,1,f))}else{switch(d){case 1:c="tag";h=this.D;b=null;break;case 2:c="store";h=this.store;b=null;break;default:f();return}ra(a,this,b,c,e,d,h,f)}return g};
u.import=function(a,c){if(c)switch(z(c)&&(c=JSON.parse(c)),a){case "tag":this.D=c;break;case "reg":this.fastupdate=!1;this.reg=c;for(let e=0,d;e<this.field.length;e++)d=this.index[this.field[e]],d.reg=c,d.fastupdate=!1;break;case "store":this.store=c;break;default:a=a.split(".");const b=a[0];a=a[1];b&&a&&this.index[b].import(a,c)}};ta(V.prototype);const za={Index:M,Charset:qa,Encoder:I,Document:V,Worker:null,Resolver:null,IndexedDB:null,Language:{}},Z=self;let Ba;(Ba=Z.define)&&Ba.amd?Ba([],function(){return za}):"object"===typeof Z.exports?Z.exports=za:Z.FlexSearch=za;}(this));
u.import=function(a,c){if(c)switch(z(c)&&(c=JSON.parse(c)),a){case "tag":this.D=c;break;case "reg":this.fastupdate=!1;this.reg=c;for(let e=0,d;e<this.field.length;e++)d=this.index[this.field[e]],d.reg=c,d.fastupdate=!1;break;case "store":this.store=c;break;default:a=a.split(".");const b=a[0];a=a[1];b&&a&&this.index[b].import(a,c)}};ta(U.prototype);const Y={Index:M,Charset:qa,Encoder:I,Document:U,Worker:null,Resolver:null,IndexedDB:null,Language:{}},Z=self;let Ba;(Ba=Z.define)&&Ba.amd?Ba([],function(){return Y}):"object"===typeof Z.exports?Z.exports=Y:Z.FlexSearch=Y;}(this));

View File

@@ -165,8 +165,8 @@ J.prototype.encode = function(a) {
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);
for (let h = 0, k = "", l, n; h < e.length; h++) {
l = e.charAt(h), l === k && this.dedupe || ((n = this.mapper && this.mapper.get(l)) || "" === n ? n === k && this.dedupe || !(k = n) || (d += n) : d += k = l);
}
e = d;
}
@@ -184,40 +184,40 @@ const K = {normalize:function(a) {
return a.toLowerCase();
}, dedupe:!1};
const L = 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 M = new Map([["ai", "ei"], ["ae", "a"], ["oe", "o"], ["ue", "u"], ["sh", "s"], ["ch", "c"], ["th", "t"], ["ph", "f"], ["pf", "f"]]), ha = [/([^aeo])h([aeo$])/g, "$1$2", /([aeo])h([^aeo]|$)/g, "$1$2"];
const ia = {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 M = new Map([["ai", "ei"], ["ae", "a"], ["oe", "o"], ["ue", "u"], ["sh", "s"], ["ch", "c"], ["th", "t"], ["ph", "f"], ["pf", "f"]]), N = [/([^aeo])h([aeo$])/g, "$1$2", /([aeo])h([^aeo]|$)/g, "$1$2"];
const ha = {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 ia = /[\x00-\x7F]+/g;
const ja = /[\x00-\x7F]+/g;
const ka = /[\x00-\x7F]+/g;
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) {
var la = {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:N, matcher:M}, LatinExtra:{normalize:!0, dedupe:!0, mapper:L, replacer:N.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 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++) {
let d = c.charAt(0), f = ha[d];
for (let e = 1, g; e < c.length && (g = c.charAt(e), "h" === g || "w" === g || !(g = ha[g]) || g === f || (d += g, f = g, 4 !== d.length)); e++) {
}
a[b] = d;
}
}}, ArabicDefault:{rtl:!0, normalize:!1, dedupe:!0, prepare:function(a) {
return ("" + a).replace(ja, " ");
return ("" + a).replace(ia, " ");
}}, CjkDefault:{normalize:!1, dedupe:!0, split:"", prepare:function(a) {
return ("" + a).replace(ka, "");
return ("" + a).replace(ja, "");
}}, CyrillicDefault:{normalize:!1, dedupe:!0, prepare:function(a) {
return ("" + a).replace(la, " ");
return ("" + a).replace(ka, " ");
}}};
function na(a, c, b, d, f, e, g, h) {
function ma(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) {
N.call(a, "add");
N.call(a, "append");
N.call(a, "search");
N.call(a, "update");
N.call(a, "remove");
;const na = {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 oa(a) {
O.call(a, "add");
O.call(a, "append");
O.call(a, "search");
O.call(a, "update");
O.call(a, "remove");
}
function N(a) {
function O(a) {
this[a + "Async"] = function() {
var c = arguments;
const b = c[c.length - 1];
@@ -229,27 +229,27 @@ function N(a) {
};
}
;y();
O.prototype.add = function(a, c, b, d) {
P.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 = y(), l = y(), r = this.depth, t = this.resolution;
const l = y(), n = 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 = "";
let m = c[this.rtl ? d - 1 - p : p];
var f = m.length;
if (f && (r || !n[m])) {
var e = this.score ? this.score(c, m, p, null, 0) : Q(t, d, p), g = "";
switch(this.tokenize) {
case "full":
if (2 < f) {
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);
g = m.substring(e, h);
var k = this.score ? this.score(c, m, p, g, e) : Q(t, d, p, f, e);
R(this, n, g, k, a, b);
}
}
break;
@@ -257,24 +257,24 @@ O.prototype.add = function(a, c, b, d) {
case "reverse":
if (1 < f) {
for (h = f - 1; 0 < h; h--) {
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 = m[h] + g, k = this.score ? this.score(c, m, p, g, h) : Q(t, d, p, f, h), R(this, n, g, k, a, b);
}
g = "";
}
case "forward":
if (1 < f) {
for (h = 0; h < f; h++) {
g += n[h], Q(this, l, g, e, a, b);
g += m[h], R(this, n, g, e, a, b);
}
break;
}
default:
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);
if (R(this, n, m, e, a, b), r && 1 < d && p < d - 1) {
for (f = y(), g = this.I, e = m, h = Math.min(r + 1, d - p), f[e] = 1, k = 1; k < h; k++) {
if ((m = c[this.rtl ? d - 1 - p - k : p + k]) && !f[m]) {
f[m] = 1;
const w = this.score ? this.score(c, e, p, m, k) : Q(g + (d / 2 > g ? 0 : 1), d, p, h - 1, k - 1), B = this.bidirectional && m > e;
R(this, l, B ? e : m, w, a, b, B ? m : e);
}
}
}
@@ -286,14 +286,14 @@ O.prototype.add = function(a, c, b, d) {
}
return this;
};
function Q(a, c, b, d, f, e, g) {
function R(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, d, f) {
function Q(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) {
;function pa(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;
}
@@ -336,7 +336,7 @@ function P(a, c, b, d, f) {
}
return d;
}
;O.prototype.search = function(a, c, b) {
;P.prototype.search = function(a, c, b) {
b || (!c && E(a) ? (b = a, a = "") : E(c) && (b = c, c = 0));
var d = [], f = 0;
if (b) {
@@ -358,18 +358,18 @@ function P(a, c, b, d, f) {
}
var h = 0, k = 0;
if (1 < b) {
var m = y();
var l = y();
const r = [];
for (let t = 0, p; t < b; t++) {
if ((p = a[t]) && !m[p]) {
if ((p = a[t]) && !l[p]) {
if (g || T(this, p)) {
r.push(p), m[p] = 1;
r.push(p), l[p] = 1;
} else {
return d;
}
const n = p.length;
h = Math.max(h, n);
k = k ? Math.min(k, n) : n;
const m = p.length;
h = Math.max(h, m);
k = k ? Math.min(k, m) : m;
}
}
a = r;
@@ -378,7 +378,7 @@ function P(a, c, b, d, f) {
if (!b) {
return d;
}
m = 0;
l = 0;
if (1 === b) {
return S.call(this, a[0], "", c, f);
}
@@ -387,44 +387,44 @@ function P(a, c, b, d, f) {
}
if (1 < b) {
if (e) {
var l = a[0];
m = 1;
var n = a[0];
l = 1;
} else {
9 < h && 3 < h / k && a.sort(aa);
}
}
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));
for (let r, t; l < b; l++) {
t = a[l];
n ? (r = T(this, t, n), r = ra(r, d, g, this.I), g && !1 === r && d.length || (n = t)) : (r = T(this, t, ""), r = ra(r, d, g, this.resolution));
if (r) {
return r;
}
if (g && m === b - 1) {
if (g && l === b - 1) {
e = d.length;
if (!e) {
if (l) {
l = "";
m = -1;
if (n) {
n = "";
l = -1;
continue;
}
return d;
}
if (1 === e) {
return R(d[0], c, f);
return pa(d[0], c, f);
}
}
}
a: {
a = d;
d = this.resolution;
l = a.length;
n = a.length;
b = [];
e = y();
for (let r = 0, t, p, n, w; r < d; r++) {
for (k = 0; k < l; k++) {
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);
for (let r = 0, t, p, m, w; r < d; r++) {
for (k = 0; k < n; k++) {
if (m = a[k], r < m.length && (t = m[r])) {
for (l = 0; l < t.length; l++) {
p = t[l], (h = e[p]) ? e[p]++ : (h = 0, e[p] = 1), w = b[h] || (b[h] = []), w.push(p);
}
}
}
@@ -437,8 +437,8 @@ function P(a, c, b, d, 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]) {
for (n = g[k], h = n.length, l = 0; l < h; l++) {
if (b = n[l], !d[b]) {
if (d[b] = 1, f) {
f--;
} else {
@@ -455,7 +455,7 @@ function P(a, c, b, d, f) {
}
b = c;
} else {
if (a < l) {
if (a < n) {
d = [];
break a;
}
@@ -470,28 +470,21 @@ function P(a, c, b, d, f) {
return d;
};
function S(a, c, b, d) {
return (a = T(this, a, c)) && a.length ? R(a, b, d) : [];
return (a = T(this, a, c)) && a.length ? pa(a, b, d) : [];
}
function ra(a, c, b, d, f, e, g) {
let h = [];
function ra(a, c, b, d) {
let f = [];
if (a) {
d = Math.min(a.length, d);
for (let k = 0, m = 0, l; k < d; k++) {
if (l = a[k]) {
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;
for (let e = 0, g; e < d; e++) {
(g = a[e]) && g && (f[e] = g);
}
}
}
if (h.length) {
if (g) {
return R(h, f, 0);
}
c.push(h);
if (f.length) {
c.push(f);
return;
}
}
return !b && h;
return !b && f;
}
function T(a, c, b) {
let d;
@@ -499,7 +492,7 @@ function T(a, 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) {
;P.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) {
@@ -541,18 +534,18 @@ function U(a, c) {
}
return b;
}
;function O(a, c) {
;function P(a, c) {
if (!this) {
return new O(a);
return new P(a);
}
if (a) {
var b = z(a) ? a : a.preset;
b && (oa[b] || console.warn("Preset not found: " + b), a = Object.assign({}, oa[b], a));
b && (na[b] || console.warn("Preset not found: " + b), a = Object.assign({}, na[b], a));
} else {
a = {};
}
b = a.context || {};
const d = a.encode || a.encoder || K;
const d = z(a.encoder) ? la[a.encoder] : 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;
@@ -567,7 +560,7 @@ function U(a, c) {
this.I = b.resolution || 1;
this.rtl = d.rtl || a.rtl || !1;
}
u = O.prototype;
u = P.prototype;
u.clear = function() {
this.map.clear();
this.ctx.clear();
@@ -608,8 +601,8 @@ u.cleanup = function() {
};
u.export = function(a, c, b, d, f, e) {
let g = !0;
"undefined" === typeof e && (g = new Promise(m => {
e = m;
"undefined" === typeof e && (g = new Promise(l => {
e = l;
}));
let h, k;
switch(f || (f = 0)) {
@@ -617,8 +610,8 @@ u.export = function(a, c, b, d, f, e) {
h = "reg";
if (this.fastupdate) {
k = y();
for (let m of this.reg.keys()) {
k[m] = 1;
for (let l of this.reg.keys()) {
k[l] = 1;
}
} else {
k = this.reg;
@@ -640,7 +633,7 @@ u.export = function(a, c, b, d, f, e) {
"undefined" === typeof b && e && e();
return;
}
na(a, c || this, b, h, d, f, k, e);
ma(a, c || this, b, h, d, f, k, e);
return g;
};
u.import = function(a, c) {
@@ -673,11 +666,11 @@ u.serialize = function(a = !0) {
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] || [""];
for (let n = 0, r; n < g.length; n++) {
r = g[n] || [""];
var k = "";
for (var m = 0; m < r.length; m++) {
k += (k ? "," : "") + ("string" === b ? '"' + r[m] + '"' : r[m]);
for (var l = 0; l < r.length; l++) {
k += (k ? "," : "") + ("string" === b ? '"' + r[l] + '"' : r[l]);
}
k = "[" + k + "]";
h += (h ? "," : "") + k;
@@ -687,21 +680,21 @@ u.serialize = function(a = !0) {
}
d = "index.map=new Map([" + d + "]);";
f = "";
for (const l of this.ctx.entries()) {
e = l[0];
g = l[1];
for (const n of this.ctx.entries()) {
e = n[0];
g = n[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]);
l = "";
for (let m = 0; m < p.length; m++) {
l += (l ? "," : "") + ("string" === b ? '"' + p[m] + '"' : p[m]);
}
m = "[" + m + "]";
k += (k ? "," : "") + m;
l = "[" + l + "]";
k += (k ? "," : "") + l;
}
k = 'new Map([["' + g + '",[' + k + "]]])";
k = '["' + e + '",' + k + "]";
@@ -711,7 +704,7 @@ u.serialize = function(a = !0) {
f = "index.ctx=new Map([" + f + "]);";
return a ? "function inject(index){" + c + d + f + "}" : c + d + f;
};
pa(O.prototype);
oa(P.prototype);
W.prototype.add = function(a, c, b) {
E(a) && (c = a, a = F(c, this.key));
if (c && (a || 0 === a)) {
@@ -800,25 +793,25 @@ function X(a, c, b, d, f, e, g, h) {
b || (!c && E(a) ? (b = a, a = "") : E(c) && (b = c, c = 0));
let f = [];
var e = [];
let g, h, k, m, l;
let g, h, k, l, n;
let r = 0;
if (b) {
b.constructor === Array && (b = {index:b});
a = b.query || a;
var t = b.pluck;
h = b.merge;
m = t || b.field || b.index;
l = !1;
l = t || b.field || b.index;
n = !1;
g = this.store && b.enrich;
k = b.suggest;
c = b.limit || c;
var p = b.offset || 0;
c || (c = 100);
if (l) {
l.constructor !== Array && (l = [l]);
var n = [];
for (let v = 0, q; v < l.length; v++) {
q = l[v];
if (n) {
n.constructor !== Array && (n = [n]);
var m = [];
for (let v = 0, q; v < n.length; v++) {
q = n[v];
if (z(q)) {
throw Error("A tag option can't be a string, instead it needs a { field: tag } format.");
}
@@ -826,33 +819,33 @@ function X(a, c, b, d, f, e, g, h) {
var w = q.tag;
if (w.constructor === Array) {
for (var B = 0; B < w.length; B++) {
n.push(q.field, w[B]);
m.push(q.field, w[B]);
}
} else {
n.push(q.field, w);
m.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++) {
n.push(D, A[B]);
m.push(D, A[B]);
}
} else {
n.push(D, A);
m.push(D, A);
}
}
}
}
if (!n.length) {
if (!m.length) {
throw Error("Your tag definition within the search options is probably wrong. No valid tags found.");
}
l = n;
n = m;
if (!a) {
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});
if (m.length) {
for (e = 0; e < m.length; e += 2) {
t = sa.call(this, m[e], m[e + 1], c, p, g), f.push({field:m[e], tag:m[e + 1], result:t});
}
}
return d.length ? Promise.all(d).then(function(v) {
@@ -863,46 +856,46 @@ function X(a, c, b, d, f, e, g, h) {
}) : f;
}
}
z(m) && (m = [m]);
z(l) && (l = [l]);
}
m || (m = this.field);
l || (l = this.field);
p = !d && (this.worker || this.db) && [];
for (let v = 0, q, C, D; v < m.length; v++) {
C = m[v];
for (let v = 0, q, 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 (d) {
q = d[v];
} else {
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);
if (m = A || b, w = this.index.get(C), n && (m.enrich = !1), p) {
p[v] = w.searchAsync(a, c, m);
m && g && (m.enrich = g);
continue;
} else {
q = w.search(a, c, n), n && g && (n.enrich = g);
q = w.search(a, c, m), m && g && (m.enrich = g);
}
}
D = q && q.length;
if (l && D) {
n = [];
if (n && D) {
m = [];
w = 0;
for (let G = 0, H, ua; G < l.length; G += 2) {
H = this.tag.get(l[G]);
for (let G = 0, H, ua; G < n.length; G += 2) {
H = this.tag.get(n[G]);
if (!H) {
if (console.warn("Tag '" + l[G] + ":" + l[G + 1] + "' will be skipped because there is no field '" + l[G] + "'."), k) {
if (console.warn("Tag '" + n[G] + ":" + n[G + 1] + "' will be skipped because there is no field '" + n[G] + "'."), k) {
continue;
} else {
return f;
}
}
if (ua = (H = H && H.get(l[G + 1])) && H.length) {
w++, n.push(H);
if (ua = (H = H && H.get(n[G + 1])) && H.length) {
w++, m.push(H);
} else if (!k) {
return f;
}
}
if (w) {
q = qa(q, n);
q = qa(q, m);
D = q.length;
if (!D && !k) {
return f;
@@ -912,7 +905,7 @@ function X(a, c, b, d, f, e, g, h) {
}
if (D) {
e[r] = C, f.push(q), r++;
} else if (1 === m.length) {
} else if (1 === l.length) {
return f;
}
}
@@ -944,15 +937,15 @@ function va(a, c) {
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);
for (let h = 0, k, l, n; h < g.length; h++) {
if (l = g[h], k = l.id, n = d[k]) {
n.push(e.field);
} else {
if (b.length === c) {
return b;
}
m.field = d[k] = [e.field];
b.push(m);
l.field = d[k] = [e.field];
b.push(l);
}
}
}
@@ -995,7 +988,7 @@ function ta(a) {
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;
e = d[f], z(e) || (g = e, e = e.field), g = E(g) ? Object.assign({}, a, g) : a, b.set(e, new P(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.h) {
a = c.store;
@@ -1081,7 +1074,7 @@ u.export = function(a, c, b, d, f, e) {
e();
return;
}
na(a, this, b, c, d, f, h, e);
ma(a, this, b, c, d, f, h, e);
}
return g;
};
@@ -1109,7 +1102,7 @@ u.import = function(a, c) {
}
}
};
pa(W.prototype);
export default {Index:O, Charset:ma, Encoder:J, Document:W, Worker:null, Resolver:null, IndexedDB:null, Language:{}};
oa(W.prototype);
export default {Index:P, Charset:la, Encoder:J, Document:W, Worker:null, Resolver:null, IndexedDB:null, Language:{}};
export const Index=O;export const Charset=ma;export const Encoder=J;export const Document=W;export const Worker=null;export const Resolver=null;export const IndexedDB=null;export const Language={};
export const Index=P;export const Charset=la;export const Encoder=J;export const Document=W;export const Worker=null;export const Resolver=null;export const IndexedDB=null;export const Language={};

View File

@@ -6,7 +6,7 @@
* https://github.com/nextapps-de/flexsearch
*/
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&&b<c.length;b++)a=a[c[b]];return a};var ba=[["\u00aa","a"],["\u00b2","2"],["\u00b3","3"],["\u00b9","1"],["\u00ba","o"],["\u00bc","1\u20444"],["\u00bd","1\u20442"],["\u00be","3\u20444"],["\u00e0","a"],["\u00e1","a"],["\u00e2","a"],["\u00e3","a"],["\u00e4","a"],["\u00e5","a"],["\u00e7","c"],["\u00e8","e"],["\u00e9","e"],["\u00ea","e"],["\u00eb","e"],["\u00ec","i"],["\u00ed","i"],["\u00ee","i"],["\u00ef","i"],["\u00f1","n"],["\u00f2","o"],["\u00f3","o"],["\u00f4","o"],["\u00f5","o"],["\u00f6","o"],["\u00f9","u"],["\u00fa","u"],["\u00fb",
function z(a){return"string"===typeof a}function E(a){return"object"===typeof a}function F(a,c){if(z(c))a=a[c];else for(let b=0;a&&b<c.length;b++)a=a[c[b]];return a};var ba=[["\u00aa","a"],["\u00b2","2"],["\u00b3","3"],["\u00b9","1"],["\u00ba","o"],["\u00bc","1\u20444"],["\u00bd","1\u20442"],["\u00be","3\u20444"],["\u00e0","a"],["\u00e1","a"],["\u00e2","a"],["\u00e3","a"],["\u00e4","a"],["\u00e5","a"],["\u00e7","c"],["\u00e8","e"],["\u00e9","e"],["\u00ea","e"],["\u00eb","e"],["\u00ec","i"],["\u00ed","i"],["\u00ee","i"],["\u00ef","i"],["\u00f1","n"],["\u00f2","o"],["\u00f3","o"],["\u00f4","o"],["\u00f5","o"],["\u00f6","o"],["\u00f9","u"],["\u00fa","u"],["\u00fb",
"u"],["\u00fc","u"],["\u00fd","y"],["\u00ff","y"],["\u0101","a"],["\u0103","a"],["\u0105","a"],["\u0107","c"],["\u0109","c"],["\u010b","c"],["\u010d","c"],["\u010f","d"],["\u0113","e"],["\u0115","e"],["\u0117","e"],["\u0119","e"],["\u011b","e"],["\u011d","g"],["\u011f","g"],["\u0121","g"],["\u0123","g"],["\u0125","h"],["\u0129","i"],["\u012b","i"],["\u012d","i"],["\u012f","i"],["\u0133","ij"],["\u0135","j"],["\u0137","k"],["\u013a","l"],["\u013c","l"],["\u013e","l"],["\u0140","l"],["\u0144","n"],
["\u0146","n"],["\u0148","n"],["\u0149","n"],["\u014d","o"],["\u014f","o"],["\u0151","o"],["\u0155","r"],["\u0157","r"],["\u0159","r"],["\u015b","s"],["\u015d","s"],["\u015f","s"],["\u0161","s"],["\u0163","t"],["\u0165","t"],["\u0169","u"],["\u016b","u"],["\u016d","u"],["\u016f","u"],["\u0171","u"],["\u0173","u"],["\u0175","w"],["\u0177","y"],["\u017a","z"],["\u017c","z"],["\u017e","z"],["\u017f","s"],["\u01a1","o"],["\u01b0","u"],["\u01c6","dz"],["\u01c9","lj"],["\u01cc","nj"],["\u01ce","a"],["\u01d0",
"i"],["\u01d2","o"],["\u01d4","u"],["\u01d6","u"],["\u01d8","u"],["\u01da","u"],["\u01dc","u"],["\u01df","a"],["\u01e1","a"],["\u01e3","ae"],["\u00e6","ae"],["\u01fd","ae"],["\u01e7","g"],["\u01e9","k"],["\u01eb","o"],["\u01ed","o"],["\u01ef","\u0292"],["\u01f0","j"],["\u01f3","dz"],["\u01f5","g"],["\u01f9","n"],["\u01fb","a"],["\u01ff","\u00f8"],["\u0201","a"],["\u0203","a"],["\u0205","e"],["\u0207","e"],["\u0209","i"],["\u020b","i"],["\u020d","o"],["\u020f","o"],["\u0211","r"],["\u0213","r"],["\u0215",
@@ -17,31 +17,31 @@ I.prototype.assign=function(a){this.normalize=x(a.normalize,!0,this.normalize);l
/\s+/}this.numeric=x(this.numeric,!0)}this.prepare=x(a.prepare,null,this.prepare);this.finalize=x(a.finalize,null,this.finalize);H||(this.mapper=new Map(ba));this.rtl=a.rtl||!1;this.dedupe=x(a.dedupe,!0,this.dedupe);this.filter=x((b=a.filter)&&new Set(b),null,this.filter);this.matcher=x((b=a.matcher)&&new Map(b),null,this.matcher);this.mapper=x((b=a.mapper)&&new Map(b),null,this.mapper);this.stemmer=x((b=a.stemmer)&&new Map(b),null,this.stemmer);this.replacer=x(a.replacer,null,this.replacer);this.minlength=
x(a.minlength,1,this.minlength);this.maxlength=x(a.maxlength,0,this.maxlength);this.C="";this.F=null;this.B="";this.G=null;if(this.matcher)for(const d of this.matcher.keys())this.C+=(this.C?"|":"")+d;if(this.stemmer)for(const d of this.stemmer.keys())this.B+=(this.B?"|":"")+d;return this};
I.prototype.encode=function(a){this.normalize&&(a="function"===typeof this.normalize?this.normalize(a):H?a.normalize("NFKD").replace(H,"").toLowerCase():a.toLowerCase());this.prepare&&(a=this.prepare(a));this.numeric&&3<a.length&&(a=a.replace(ea,"$1 $2").replace(fa,"$1 $2").replace(da,"$1 "));const c=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer);let b=[];a=this.split||""===this.split?a.split(this.split):a;for(let e=0,f;e<a.length;e++){if(!(f=a[e]))continue;if(f.length<
this.minlength)continue;if(c){b.push(f);continue}if(this.filter&&this.filter.has(f))continue;let g;this.stemmer&&2<f.length&&(this.G||(this.G=new RegExp("(?!^)("+this.B+")$")),f=f.replace(this.G,h=>this.stemmer.get(h)),g=1);this.matcher&&1<f.length&&(this.F||(this.F=new RegExp("("+this.C+")","g")),f=f.replace(this.F,h=>this.matcher.get(h)),g=1);f&&g&&(f.length<this.minlength||this.filter&&this.filter.has(f))&&(f="");if(f&&(this.mapper||this.dedupe&&1<f.length)){var d="";for(let h=0,k="",m,l;h<f.length;h++)m=
f.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);f=d}if(f&&this.replacer)for(d=0;f&&d<this.replacer.length;d+=2)f=f.replace(this.replacer[d],this.replacer[d+1]);f&&b.push(f)}this.finalize&&(b=this.finalize(b)||b);return b};const J={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 L=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),ha=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];const ia={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 ja=/[\x00-\x7F]+/g;const ka=/[\x00-\x7F]+/g;const la=/[\x00-\x7F]+/g;var ma={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:J,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:K},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:K,replacer:ha,matcher:L},LatinExtra:{normalize:!0,dedupe:!0,mapper:K,replacer:ha.concat([/(?!^)[aeoy]/g,""]),matcher:L},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(let b=0;b<a.length;b++){var c=a[b];let d=c.charAt(0),e=ia[d];for(let f=1,g;f<c.length&&(g=c.charAt(f),"h"===g||
"w"===g||!(g=ia[g])||g===e||(d+=g,e=g,4!==d.length));f++);a[b]=d}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(ja," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(ka,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(la," ")}}};function na(a,c,b,d,e,f,g,h){(d=a(b?b+"."+d:d,JSON.stringify(g)))&&d.then?d.then(function(){c.export(a,c,b,e,f+1,h)}):c.export(a,c,b,e,f+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){M.call(a,"add");M.call(a,"append");M.call(a,"search");M.call(a,"update");M.call(a,"remove")}function M(a){this[a+"Async"]=function(){var c=arguments;const b=c[c.length-1];let d;"function"===typeof b&&(d=b,delete c[c.length-1]);c=this[a].apply(this,c);d&&(c.then?c.then(d):d(c));return c}};y();N.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=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 e=n.length;if(e&&(r||!l[n])){var f=this.score?this.score(c,n,p,null,0):P(t,d,p),g="";switch(this.tokenize){case "full":if(2<e){for(f=0;f<e;f++)for(var h=e;h>f;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;0<h;h--)g=n[h]+g,k=this.score?this.score(c,n,p,g,h):P(t,d,p,e,h),Q(this,l,g,k,a,b);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=n[h],Q(this,l,g,f,a,b);break}default:if(Q(this,l,n,f,a,b),r&&1<d&&p<d-1)for(e=y(),g=this.I,f=n,h=Math.min(r+1,d-p),e[f]=1,k=1;k<h;k++)if((n=c[this.rtl?d-1-p-k:p+k])&&!e[n]){e[n]=1;const w=this.score?this.score(c,f,p,n,k):P(g+(d/2>g?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&&1<a?c+(d||0)<=a?b+(e||0):(a-1)/(c+(d||0))*(b+(e||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 d=[];for(let e=0,f,g;e<a.length;e++)if((f=a[e])&&(g=f.length)){if(b){if(b>=g){b-=g;continue}b<g&&(f=c?f.slice(b,b+c):f.slice(b),g=f.length,b=0)}if(d.length)g>c&&(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=1<d.length?[].concat.apply([],d):d[0]:d};function qa(a,c){const b=y(),d=[];for(let e=0,f;e<c.length;e++){f=c[e];for(let g=0;g<f.length;g++)b[f[g]]=1}for(let e=0,f;e<a.length;e++)f=a[e],1===b[f]&&(d.push(f),b[f]=2);return d};N.prototype.search=function(a,c,b){b||(!c&&E(a)?(b=a,a=""):E(c)&&(b=c,c=0));var d=[],e=0;if(b){a=b.query||a;c=b.limit||c;e=b.offset||0;var f=b.context;var g=b.suggest}a=this.encoder.encode(a);b=a.length;c||(c=100);if(1===b)return S.call(this,a[0],"",c,e);f=this.depth&&!1!==f;if(2===b&&f&&!g)return S.call(this,a[0],a[1],c,e);var h=0,k=0;if(1<b){var m=y();const r=[];for(let t=0,p;t<b;t++)if((p=a[t])&&!m[p]){if(g||T(this,p))r.push(p),m[p]=1;else return d;const n=p.length;h=Math.max(h,n);k=k?Math.min(k,
n):n}a=r;b=a.length}if(!b)return d;m=0;if(1===b)return S.call(this,a[0],"",c,e);if(2===b&&f&&!g)return S.call(this,a[0],a[1],c,e);if(1<b)if(f){var l=a[0];m=1}else 9<h&&3<h/k&&a.sort(aa);for(let r,t;m<b;m++){t=a[m];l?(r=T(this,t,l),r=ra(r,d,g,this.I,c,e,2===b),g&&!1===r&&d.length||(l=t)):(r=T(this,t),r=ra(r,d,g,this.resolution,c,e,1===b));if(r)return r;if(g&&m===b-1){f=d.length;if(!f){if(l){l="";m=-1;continue}return d}if(1===f)return R(d[0],c,e)}}a:{a=d;d=this.resolution;l=a.length;b=[];f=y();for(let r=
0,t,p,n,w;r<d;r++)for(k=0;k<l;k++)if(n=a[k],r<n.length&&(t=n[r]))for(m=0;m<t.length;m++)p=t[m],(h=f[p])?f[p]++:(h=0,f[p]=1),w=b[h]||(b[h]=[]),w.push(p);if(a=b.length)if(g){if(1<b.length){g=b;a=[];d=y();f=g.length;for(k=0;k<f;k++)for(l=g[k],h=l.length,m=0;m<h;m++)if(b=l[m],!d[b])if(d[b]=1,e)e--;else if(a.push(b),a.length===c)break;c=a}else c=b[0];b=c}else{if(a<l){d=[];break a}b=b[a-1];if(b.length>c||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<d;k++)if(l=a[k])if(f&&l&&g&&(l.length<=f?(f-=l.length,l=null):(l=l.slice(f),f=0)),l&&(h[k]=l,g&&(m+=l.length,m>=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;d<b.length;d++){if(e=b[d])if(2>e.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;d<a.length;d++){if((e=a[d])&&e.length)if(f=e.indexOf(c),0<=f){1<e.length?(e.splice(f,1),b++):delete a[d];break}else b++}else for(let d of a){const e=d[0],f=U(d[1],c);f?b+=f:a.delete(e)}return b};function N(a,c){if(!this)return new N(a);if(a){var b=A(a)?a:a.preset;b&&(a=Object.assign({},oa[b],a))}else a={};b=a.context||{};const d=a.encode||a.encoder||J;this.encoder=d.encode?d:"object"===typeof d?new I(d):{encode:d};let e;this.resolution=a.resolution||9;this.tokenize=e=a.tokenize||"strict";this.depth="strict"===e&&b.depth||0;this.bidirectional=!1!==b.bidirectional;this.fastupdate=!!a.fastupdate;this.score=a.score||null;this.map=new Map;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}u=N.prototype;u.clear=function(){this.map.clear();this.ctx.clear();this.reg.clear();return this};u.append=function(a,c){return this.add(a,c,!0)};u.contain=function(a){return this.reg.has(a)};u.update=function(a,c){const b=this,d=this.remove(a);return d&&d.then?d.then(()=>b.add(a,c)):this.add(a,c)};
this.minlength)continue;if(c){b.push(f);continue}if(this.filter&&this.filter.has(f))continue;let g;this.stemmer&&2<f.length&&(this.G||(this.G=new RegExp("(?!^)("+this.B+")$")),f=f.replace(this.G,h=>this.stemmer.get(h)),g=1);this.matcher&&1<f.length&&(this.F||(this.F=new RegExp("("+this.C+")","g")),f=f.replace(this.F,h=>this.matcher.get(h)),g=1);f&&g&&(f.length<this.minlength||this.filter&&this.filter.has(f))&&(f="");if(f&&(this.mapper||this.dedupe&&1<f.length)){var d="";for(let h=0,k="",l,n;h<f.length;h++)l=
f.charAt(h),l===k&&this.dedupe||((n=this.mapper&&this.mapper.get(l))||""===n?n===k&&this.dedupe||!(k=n)||(d+=n):d+=k=l);f=d}if(f&&this.replacer)for(d=0;f&&d<this.replacer.length;d+=2)f=f.replace(this.replacer[d],this.replacer[d+1]);f&&b.push(f)}this.finalize&&(b=this.finalize(b)||b);return b};const J={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 L=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),M=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];const ha={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 ia=/[\x00-\x7F]+/g;const ja=/[\x00-\x7F]+/g;const ka=/[\x00-\x7F]+/g;var la={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:J,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:K},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:K,replacer:M,matcher:L},LatinExtra:{normalize:!0,dedupe:!0,mapper:K,replacer:M.concat([/(?!^)[aeoy]/g,""]),matcher:L},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(let b=0;b<a.length;b++){var c=a[b];let d=c.charAt(0),e=ha[d];for(let f=1,g;f<c.length&&(g=c.charAt(f),"h"===g||"w"===
g||!(g=ha[g])||g===e||(d+=g,e=g,4!==d.length));f++);a[b]=d}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(ia," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(ja,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(ka," ")}}};function ma(a,c,b,d,e,f,g,h){(d=a(b?b+"."+d:d,JSON.stringify(g)))&&d.then?d.then(function(){c.export(a,c,b,e,f+1,h)}):c.export(a,c,b,e,f+1,h)};const na={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 oa(a){N.call(a,"add");N.call(a,"append");N.call(a,"search");N.call(a,"update");N.call(a,"remove")}function N(a){this[a+"Async"]=function(){var c=arguments;const b=c[c.length-1];let d;"function"===typeof b&&(d=b,delete c[c.length-1]);c=this[a].apply(this,c);d&&(c.then?c.then(d):d(c));return c}};y();P.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 l=y(),n=y(),r=this.depth,t=this.resolution;for(let p=0;p<d;p++){let m=c[this.rtl?d-1-p:p];var e=m.length;if(e&&(r||!n[m])){var f=this.score?this.score(c,m,p,null,0):Q(t,d,p),g="";switch(this.tokenize){case "full":if(2<e){for(f=0;f<e;f++)for(var h=e;h>f;h--){g=m.substring(f,h);var k=this.score?this.score(c,m,p,g,f):Q(t,d,p,e,f);R(this,n,g,k,a,b)}break}case "reverse":if(1<
e){for(h=e-1;0<h;h--)g=m[h]+g,k=this.score?this.score(c,m,p,g,h):Q(t,d,p,e,h),R(this,n,g,k,a,b);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=m[h],R(this,n,g,f,a,b);break}default:if(R(this,n,m,f,a,b),r&&1<d&&p<d-1)for(e=y(),g=this.I,f=m,h=Math.min(r+1,d-p),e[f]=1,k=1;k<h;k++)if((m=c[this.rtl?d-1-p-k:p+k])&&!e[m]){e[m]=1;const w=this.score?this.score(c,f,p,m,k):Q(g+(d/2>g?0:1),d,p,h-1,k-1),B=this.bidirectional&&m>f;R(this,l,B?f:m,w,a,b,B?m:f)}}}}this.fastupdate||this.reg.add(a)}}return this};
function R(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 Q(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};function pa(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 d=[];for(let e=0,f,g;e<a.length;e++)if((f=a[e])&&(g=f.length)){if(b){if(b>=g){b-=g;continue}b<g&&(f=c?f.slice(b,b+c):f.slice(b),g=f.length,b=0)}if(d.length)g>c&&(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=1<d.length?[].concat.apply([],d):d[0]:d};function qa(a,c){const b=y(),d=[];for(let e=0,f;e<c.length;e++){f=c[e];for(let g=0;g<f.length;g++)b[f[g]]=1}for(let e=0,f;e<a.length;e++)f=a[e],1===b[f]&&(d.push(f),b[f]=2);return d};P.prototype.search=function(a,c,b){b||(!c&&E(a)?(b=a,a=""):E(c)&&(b=c,c=0));var d=[],e=0;if(b){a=b.query||a;c=b.limit||c;e=b.offset||0;var f=b.context;var g=b.suggest}a=this.encoder.encode(a);b=a.length;c||(c=100);if(1===b)return S.call(this,a[0],"",c,e);f=this.depth&&!1!==f;if(2===b&&f&&!g)return S.call(this,a[0],a[1],c,e);var h=0,k=0;if(1<b){var l=y();const r=[];for(let t=0,p;t<b;t++)if((p=a[t])&&!l[p]){if(g||T(this,p))r.push(p),l[p]=1;else return d;const m=p.length;h=Math.max(h,m);k=k?Math.min(k,
m):m}a=r;b=a.length}if(!b)return d;l=0;if(1===b)return S.call(this,a[0],"",c,e);if(2===b&&f&&!g)return S.call(this,a[0],a[1],c,e);if(1<b)if(f){var n=a[0];l=1}else 9<h&&3<h/k&&a.sort(aa);for(let r,t;l<b;l++){t=a[l];n?(r=T(this,t,n),r=ra(r,d,g,this.I),g&&!1===r&&d.length||(n=t)):(r=T(this,t,""),r=ra(r,d,g,this.resolution));if(r)return r;if(g&&l===b-1){f=d.length;if(!f){if(n){n="";l=-1;continue}return d}if(1===f)return pa(d[0],c,e)}}a:{a=d;d=this.resolution;n=a.length;b=[];f=y();for(let r=0,t,p,m,w;r<
d;r++)for(k=0;k<n;k++)if(m=a[k],r<m.length&&(t=m[r]))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);if(a=b.length)if(g){if(1<b.length){g=b;a=[];d=y();f=g.length;for(k=0;k<f;k++)for(n=g[k],h=n.length,l=0;l<h;l++)if(b=n[l],!d[b])if(d[b]=1,e)e--;else if(a.push(b),a.length===c)break;c=a}else c=b[0];b=c}else{if(a<n){d=[];break a}b=b[a-1];if(b.length>c||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?pa(a,b,d):[]}
function ra(a,c,b,d){let e=[];if(a){d=Math.min(a.length,d);for(let f=0,g;f<d;f++)(g=a[f])&&g&&(e[f]=g);if(e.length){c.push(e);return}}return!b&&e}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};P.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;d<b.length;d++){if(e=b[d])if(2>e.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;d<a.length;d++){if((e=a[d])&&e.length)if(f=e.indexOf(c),0<=f){1<e.length?(e.splice(f,1),b++):delete a[d];break}else b++}else for(let d of a){const e=d[0],f=U(d[1],c);f?b+=f:a.delete(e)}return b};function P(a,c){if(!this)return new P(a);if(a){var b=z(a)?a:a.preset;b&&(a=Object.assign({},na[b],a))}else a={};b=a.context||{};const d=z(a.encoder)?la[a.encoder]:a.encode||a.encoder||J;this.encoder=d.encode?d:"object"===typeof d?new I(d):{encode:d};let e;this.resolution=a.resolution||9;this.tokenize=e=a.tokenize||"strict";this.depth="strict"===e&&b.depth||0;this.bidirectional=!1!==b.bidirectional;this.fastupdate=!!a.fastupdate;this.score=a.score||null;this.map=new Map;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}u=P.prototype;u.clear=function(){this.map.clear();this.ctx.clear();this.reg.clear();return this};u.append=function(a,c){return this.add(a,c,!0)};u.contain=function(a){return this.reg.has(a)};u.update=function(a,c){const b=this,d=this.remove(a);return d&&d.then?d.then(()=>b.add(a,c)):this.add(a,c)};
function V(a){let c=0;if(a.constructor===Array)for(let b=0,d;b<a.length;b++)(d=a[b])&&(c+=d.length);else for(const b of a){const d=b[0],e=V(b[1]);e?c+=e:a.delete(d)}return c}u.cleanup=function(){if(!this.fastupdate)return this;V(this.map);this.depth&&V(this.ctx);return this};
u.export=function(a,c,b,d,e,f){let g=!0;"undefined"===typeof f&&(g=new Promise(m=>{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;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='["'+f+'",['+h+"]]";d+=(d?",":"")+h}d="index.map=new Map(["+d+"]);";e="";for(const l of this.ctx.entries()){f=
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='["'+f+'",'+k+"]";e+=(e?",":"")+k}}e="index.ctx=new Map(["+e+"]);";return a?"function inject(index){"+c+d+e+"}":c+d+e};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.reg.has(a))return this.update(a,c);for(let e=0,f;e<this.field.length;e++){f=this.A[e];const g=this.index.get(this.field[e]);if("function"===typeof f){var d=f(c);d&&g.add(a,d,!1,!0)}else if(d=f.H,!d||d(c))f.constructor===String?f=[""+f]:A(f)&&(f=[f]),X(c,f,this.D,0,g,a,f[0],b)}if(this.store&&(!b||!this.store.has(a))){let e;if(this.h){e=y();for(let f=0,g;f<this.h.length;f++){g=this.h[f];if((b=g.H)&&!b(c))continue;
let h;if("function"===typeof g){h=g(c);if(!h)continue;g=[g.J]}else if(A(g)||g.constructor===String){e[g]=c[g];continue}Y(c,e,g,0,g[0],h)}}this.store.set(a,e||c)}}return this};function Y(a,c,b,d,e,f){a=a[e];if(d===b.length-1)c[e]=f||a;else if(a)if(a.constructor===Array)for(c=c[e]=Array(a.length),e=0;e<a.length;e++)Y(a,c,b,d,e);else c=c[e]||(c[e]=y()),e=b[++d],Y(a,c,b,d,e)}
function X(a,c,b,d,e,f,g,h){if(a=a[g])if(d===c.length-1){if(a.constructor===Array){if(b[d]){for(c=0;c<a.length;c++)e.add(f,a[c],!0,!0);return}a=a.join(" ")}e.add(f,a,h,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)X(a,c,b,d,e,f,g,h);else g=c[++d],X(a,c,b,d,e,f,g,h)};W.prototype.search=function(a,c,b,d){b||(!c&&E(a)?(b=a,a=""):E(c)&&(b=c,c=0));let e=[];var f=[];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;m=t||b.field||b.index;l=!1;g=this.store&&b.enrich;k=b.suggest;c=b.limit||c;var p=b.offset||0;c||(c=100);if(l){l.constructor!==Array&&(l=[l]);var n=[];for(let v=0,q;v<l.length;v++)if(q=l[v],q.field&&q.tag){var w=q.tag;if(w.constructor===Array)for(var B=0;B<w.length;B++)n.push(q.field,w[B]);else n.push(q.field,
w)}else{w=Object.keys(q);for(let C=0,D,z;C<w.length;C++)if(D=w[C],z=q[D],z.constructor===Array)for(B=0;B<z.length;B++)n.push(D,z[B]);else n.push(D,z)}l=n;if(!a){d=[];if(n.length)for(f=0;f<n.length;f+=2)t=sa.call(this,n[f],n[f+1],c,p,g),e.push({field:n[f],tag:n[f+1],result:t});return d.length?Promise.all(d).then(function(v){for(let q=0;q<v.length;q++)e[q].result=v[q];return e}):e}}A(m)&&(m=[m])}m||(m=this.field);p=!d&&(this.worker||this.db)&&[];for(let v=0,q,C,D;v<m.length;v++){C=m[v];let z;A(C)||
(z=C,C=z.field,a=z.query||a,c=z.limit||c,k=z.suggest||k);if(d)q=d[v];else if(n=z||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,n),n&&g&&(n.enrich=g);D=q&&q.length;if(l&&D){n=[];w=0;for(let O=0,G,ua;O<l.length;O+=2){G=this.tag.get(l[O]);if(!G)if(k)continue;else return e;if(ua=(G=G&&G.get(l[O+1]))&&G.length)w++,n.push(G);else if(!k)return e}if(w){q=qa(q,n);D=q.length;if(!D&&!k)return e;w--}}if(D)f[r]=C,e.push(q),r++;else if(1===
m.length)return e}if(p){const v=this;return Promise.all(p).then(function(q){return q.length?v.search(a,c,b,q):q})}if(!r)return e;if(t&&(!g||!this.store))return e[0];p=[];for(let v=0,q;v<f.length;v++){q=e[v];g&&q.length&&!q[0].doc&&q.length&&(q=ta.call(this,q));if(t)return q;e[v]={field:f[v],result:q}}return h?va(e,c):e};
function va(a,c){const b=[],d=y();for(let e=0,f,g;e<a.length;e++){f=a[e];g=f.result;for(let h=0,k,m,l;h<g.length;h++)if(m=g[h],k=m.id,l=d[k])l.push(f.field);else{if(b.length===c)return b;m.field=d[k]=[f.field];b.push(m)}}return b}function sa(a,c,b,d,e){a=this.tag.get(a);if(!a)return[];if((c=(a=a&&a.get(c))&&a.length-d)&&0<c){if(c>b||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<a.length;b++)d=a[b],c[b]={id:d,doc:this.store.get(d)};return c};function W(a){if(!this)return new W(a);const c=a.document||a.doc||a;var b;this.A=[];this.field=[];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;b=new Map;let d=c.index||c.field||c;A(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++)f=d[e],A(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.A[e]=g.custom:(this.A[e]=Z(f,this.D),g.filter&&("string"===
typeof this.A[e]&&(this.A[e]=new String(this.A[e])),this.A[e].H=g.filter)),this.field[e]=f;if(this.h){a=c.store;A(a)&&(a=[a]);for(let e=0,f,g;e<a.length;e++)f=a[e],g=f.field||f,f.custom?(this.h[e]=f.custom,f.custom.J=g):(this.h[e]=Z(g,this.D),f.filter&&("string"===typeof this.h[e]&&(this.h[e]=new String(this.h[e])),this.h[e].H=f.filter))}this.index=b}
u.export=function(a,c,b,d,e,f){let g=!0;"undefined"===typeof f&&(g=new Promise(l=>{f=l}));let h,k;switch(e||(e=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.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}ma(a,c||this,b,h,d,e,k,f);return g};
u.import=function(a,c){if(c)switch(z(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 n=0,r;n<g.length;n++){r=g[n]||[""];var k="";for(var l=0;l<r.length;l++)k+=(k?",":"")+("string"===b?'"'+r[l]+'"':r[l]);k="["+k+"]";h+=(h?",":"")+k}h='["'+f+'",['+h+"]]";d+=(d?",":"")+h}d="index.map=new Map(["+d+"]);";e="";for(const n of this.ctx.entries()){f=
n[0];g=n[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]||[""];l="";for(let m=0;m<p.length;m++)l+=(l?",":"")+("string"===b?'"'+p[m]+'"':p[m]);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){"+c+d+e+"}":c+d+e};oa(P.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.reg.has(a))return this.update(a,c);for(let e=0,f;e<this.field.length;e++){f=this.A[e];const g=this.index.get(this.field[e]);if("function"===typeof f){var d=f(c);d&&g.add(a,d,!1,!0)}else if(d=f.H,!d||d(c))f.constructor===String?f=[""+f]:z(f)&&(f=[f]),X(c,f,this.D,0,g,a,f[0],b)}if(this.store&&(!b||!this.store.has(a))){let e;if(this.h){e=y();for(let f=0,g;f<this.h.length;f++){g=this.h[f];if((b=g.H)&&!b(c))continue;
let h;if("function"===typeof g){h=g(c);if(!h)continue;g=[g.J]}else if(z(g)||g.constructor===String){e[g]=c[g];continue}Y(c,e,g,0,g[0],h)}}this.store.set(a,e||c)}}return this};function Y(a,c,b,d,e,f){a=a[e];if(d===b.length-1)c[e]=f||a;else if(a)if(a.constructor===Array)for(c=c[e]=Array(a.length),e=0;e<a.length;e++)Y(a,c,b,d,e);else c=c[e]||(c[e]=y()),e=b[++d],Y(a,c,b,d,e)}
function X(a,c,b,d,e,f,g,h){if(a=a[g])if(d===c.length-1){if(a.constructor===Array){if(b[d]){for(c=0;c<a.length;c++)e.add(f,a[c],!0,!0);return}a=a.join(" ")}e.add(f,a,h,!0)}else if(a.constructor===Array)for(g=0;g<a.length;g++)X(a,c,b,d,e,f,g,h);else g=c[++d],X(a,c,b,d,e,f,g,h)};W.prototype.search=function(a,c,b,d){b||(!c&&E(a)?(b=a,a=""):E(c)&&(b=c,c=0));let e=[];var f=[];let g,h,k,l,n;let r=0;if(b){b.constructor===Array&&(b={index:b});a=b.query||a;var t=b.pluck;h=b.merge;l=t||b.field||b.index;n=!1;g=this.store&&b.enrich;k=b.suggest;c=b.limit||c;var p=b.offset||0;c||(c=100);if(n){n.constructor!==Array&&(n=[n]);var m=[];for(let v=0,q;v<n.length;v++)if(q=n[v],q.field&&q.tag){var w=q.tag;if(w.constructor===Array)for(var B=0;B<w.length;B++)m.push(q.field,w[B]);else m.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]);else m.push(D,A)}n=m;if(!a){d=[];if(m.length)for(f=0;f<m.length;f+=2)t=sa.call(this,m[f],m[f+1],c,p,g),e.push({field:m[f],tag:m[f+1],result:t});return d.length?Promise.all(d).then(function(v){for(let q=0;q<v.length;q++)e[q].result=v[q];return e}):e}}z(l)&&(l=[l])}l||(l=this.field);p=!d&&(this.worker||this.db)&&[];for(let v=0,q,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(d)q=d[v];else if(m=A||b,w=this.index.get(C),n&&(m.enrich=!1),p){p[v]=w.searchAsync(a,c,m);m&&g&&(m.enrich=g);continue}else q=w.search(a,c,m),m&&g&&(m.enrich=g);D=q&&q.length;if(n&&D){m=[];w=0;for(let O=0,G,ua;O<n.length;O+=2){G=this.tag.get(n[O]);if(!G)if(k)continue;else return e;if(ua=(G=G&&G.get(n[O+1]))&&G.length)w++,m.push(G);else if(!k)return e}if(w){q=qa(q,m);D=q.length;if(!D&&!k)return e;w--}}if(D)f[r]=C,e.push(q),r++;else if(1===
l.length)return e}if(p){const v=this;return Promise.all(p).then(function(q){return q.length?v.search(a,c,b,q):q})}if(!r)return e;if(t&&(!g||!this.store))return e[0];p=[];for(let v=0,q;v<f.length;v++){q=e[v];g&&q.length&&!q[0].doc&&q.length&&(q=ta.call(this,q));if(t)return q;e[v]={field:f[v],result:q}}return h?va(e,c):e};
function va(a,c){const b=[],d=y();for(let e=0,f,g;e<a.length;e++){f=a[e];g=f.result;for(let h=0,k,l,n;h<g.length;h++)if(l=g[h],k=l.id,n=d[k])n.push(f.field);else{if(b.length===c)return b;l.field=d[k]=[f.field];b.push(l)}}return b}function sa(a,c,b,d,e){a=this.tag.get(a);if(!a)return[];if((c=(a=a&&a.get(c))&&a.length-d)&&0<c){if(c>b||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<a.length;b++)d=a[b],c[b]={id:d,doc:this.store.get(d)};return c};function W(a){if(!this)return new W(a);const c=a.document||a.doc||a;var b;this.A=[];this.field=[];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;b=new Map;let d=c.index||c.field||c;z(d)&&(d=[d]);for(let e=0,f,g;e<d.length;e++)f=d[e],z(f)||(g=f,f=f.field),g=E(g)?Object.assign({},a,g):a,b.set(f,new P(g,this.reg)),g.custom?this.A[e]=g.custom:(this.A[e]=Z(f,this.D),g.filter&&("string"===
typeof this.A[e]&&(this.A[e]=new String(this.A[e])),this.A[e].H=g.filter)),this.field[e]=f;if(this.h){a=c.store;z(a)&&(a=[a]);for(let e=0,f,g;e<a.length;e++)f=a[e],g=f.field||f,f.custom?(this.h[e]=f.custom,f.custom.J=g):(this.h[e]=Z(g,this.D),f.filter&&("string"===typeof this.h[e]&&(this.h[e]=new String(this.h[e])),this.h[e].H=f.filter))}this.index=b}
function Z(a,c){const b=a.split(":");let d=0;for(let e=0;e<b.length;e++)a=b[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(c[d]=!0),a&&(b[d++]=a);d<b.length&&(b.length=d);return 1<d?b:b[0]}u=W.prototype;u.append=function(a,c){return this.add(a,c,!0)};u.update=function(a,c){return this.remove(a).add(a,c)};u.remove=function(a){E(a)&&(a=F(a,this.key));for(const c of this.index.values())c.remove(a,!0);this.reg.has(a)&&(this.store&&this.store.delete(a),this.reg.delete(a));return this};
u.clear=function(){for(const a of this.index.values())a.clear();this.store&&this.store.clear();return this};u.contain=function(a){return this.reg.has(a)};u.cleanup=function(){for(const a of this.index.values())a.cleanup();return this};u.get=function(a){return this.store.get(a)};u.set=function(a,c){this.store.set(a,c);return this};
u.export=function(a,c,b,d,e,f){let g;"undefined"===typeof f&&(g=new Promise(k=>{f=k}));e||(e=0);d||(d=0);if(d<this.field.length){b=this.field[d];var h=this.index[b];c=this;h.export(a,c,e?b:"",d,e++,f)||(d++,c.export(a,c,b,d,1,f))}else{switch(e){case 1:c="tag";h=this.B;b=null;break;case 2:c="store";h=this.store;b=null;break;default:f();return}na(a,this,b,c,d,e,h,f)}return g};
u.import=function(a,c){if(c)switch(A(c)&&(c=JSON.parse(c)),a){case "tag":this.B=c;break;case "reg":this.fastupdate=!1;this.reg=c;for(let d=0,e;d<this.field.length;d++)e=this.index[this.field[d]],e.reg=c,e.fastupdate=!1;break;case "store":this.store=c;break;default:a=a.split(".");const b=a[0];a=a[1];b&&a&&this.index[b].import(a,c)}};pa(W.prototype);export default {Index:N,Charset:ma,Encoder:I,Document:W,Worker:null,Resolver:null,IndexedDB:null,Language:{}};
export const Index=N;export const Charset=ma;export const Encoder=I;export const Document=W;export const Worker=null;export const Resolver=null;export const IndexedDB=null;export const Language={};
u.export=function(a,c,b,d,e,f){let g;"undefined"===typeof f&&(g=new Promise(k=>{f=k}));e||(e=0);d||(d=0);if(d<this.field.length){b=this.field[d];var h=this.index[b];c=this;h.export(a,c,e?b:"",d,e++,f)||(d++,c.export(a,c,b,d,1,f))}else{switch(e){case 1:c="tag";h=this.B;b=null;break;case 2:c="store";h=this.store;b=null;break;default:f();return}ma(a,this,b,c,d,e,h,f)}return g};
u.import=function(a,c){if(c)switch(z(c)&&(c=JSON.parse(c)),a){case "tag":this.B=c;break;case "reg":this.fastupdate=!1;this.reg=c;for(let d=0,e;d<this.field.length;d++)e=this.index[this.field[d]],e.reg=c,e.fastupdate=!1;break;case "store":this.store=c;break;default:a=a.split(".");const b=a[0];a=a[1];b&&a&&this.index[b].import(a,c)}};oa(W.prototype);export default {Index:P,Charset:la,Encoder:I,Document:W,Worker:null,Resolver:null,IndexedDB:null,Language:{}};
export const Index=P;export const Charset=la;export const Encoder=I;export const Document=W;export const Worker=null;export const Resolver=null;export const IndexedDB=null;export const Language={};

File diff suppressed because it is too large Load Diff

View File

@@ -7,119 +7,120 @@
*/
(function(self){'use strict';var u;function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}function x(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];if(b)return b.call(a);if("number"==typeof a.length)return{next:aa(a)};throw Error(String(a)+" is not an iterable or ArrayLike");}var ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
function ca(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var z=ca(this);function B(a,b){if(b)a:{var c=z;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ba(c,a,{configurable:!0,writable:!0,value:b})}}var da;
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.D=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.D=a};
function la(a,b){a.B={na:b,oa:!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 g=e.value}catch(f){return a.h.A=null,la(a.h,f),G(a)}a.h.A=null;d.call(a.h,g);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.D=void 0,la(a.h,c)}a.h.C=!1;if(a.h.B){b=a.h.B;a.h.B=null;if(b.oa)throw b.na;return{value:b.return,done:!0}}return{value:void 0,done:!0}}
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={ma:b,na:!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.na)throw b.ma;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 g(f){f.done?d(f.value):Promise.resolve(f.value).then(b,c).then(g,e)}g(a.next())})}function H(a){return ra(new pa(new ma(a)))}
B("Symbol",function(a){function b(g){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(g||"")+"_"+e++,g)}function c(g,f){this.h=g;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});
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 H(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;c<b.length;c++){var d=z[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&ba(d.prototype,a,{configurable:!0,writable:!0,value:function(){return sa(aa(this))}})}return a});function sa(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}
B("Promise",function(a){function b(f){this.A=0;this.B=void 0;this.h=[];this.J=!1;var h=this.C();try{f(h.resolve,h.reject)}catch(k){h.reject(k)}}function c(){this.h=null}function d(f){return f instanceof b?f:new b(function(h){h(f)})}if(a)return a;c.prototype.A=function(f){if(null==this.h){this.h=[];var h=this;this.B(function(){h.D()})}this.h.push(f)};var e=z.setTimeout;c.prototype.B=function(f){e(f,0)};c.prototype.D=function(){for(;this.h&&this.h.length;){var f=this.h;this.h=[];for(var h=0;h<f.length;++h){var k=
f[h];f[h]=null;try{k()}catch(l){this.C(l)}}}this.h=null};c.prototype.C=function(f){this.B(function(){throw f;})};b.prototype.C=function(){function f(l){return function(m){k||(k=!0,l.call(h,m))}}var h=this,k=!1;return{resolve:f(this.ia),reject:f(this.D)}};b.prototype.ia=function(f){if(f===this)this.D(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof b)this.ka(f);else{a:switch(typeof f){case "object":var h=null!=f;break a;case "function":h=!0;break a;default:h=!1}h?this.ha(f):
this.G(f)}};b.prototype.ha=function(f){var h=void 0;try{h=f.then}catch(k){this.D(k);return}"function"==typeof h?this.la(h,f):this.G(f)};b.prototype.D=function(f){this.da(2,f)};b.prototype.G=function(f){this.da(1,f)};b.prototype.da=function(f,h){if(0!=this.A)throw Error("Cannot settle("+f+", "+h+"): Promise already settled in state"+this.A);this.A=f;this.B=h;2===this.A&&this.ja();this.fa()};b.prototype.ja=function(){var f=this;e(function(){if(f.ga()){var h=z.console;"undefined"!==typeof h&&h.error(f.B)}},
1)};b.prototype.ga=function(){if(this.J)return!1;var f=z.CustomEvent,h=z.Event,k=z.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):"function"===typeof h?f=new h("unhandledrejection",{cancelable:!0}):(f=z.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.B;return k(f)};b.prototype.fa=function(){if(null!=this.h){for(var f=0;f<this.h.length;++f)g.A(this.h[f]);this.h=null}};
var g=new c;b.prototype.ka=function(f){var h=this.C();f.V(h.resolve,h.reject)};b.prototype.la=function(f,h){var k=this.C();try{f.call(h,k.resolve,k.reject)}catch(l){k.reject(l)}};b.prototype.then=function(f,h){function k(p,q){return"function"==typeof p?function(r){try{l(p(r))}catch(y){m(y)}}:q}var l,m,n=new b(function(p,q){l=p;m=q});this.V(k(f,l),k(h,m));return n};b.prototype.catch=function(f){return this.then(void 0,f)};b.prototype.V=function(f,h){function k(){switch(l.A){case 1:f(l.B);break;case 2:h(l.B);
break;default:throw Error("Unexpected state: "+l.A);}}var l=this;null==this.h?g.A(k):this.h.push(k);this.J=!0};b.resolve=d;b.reject=function(f){return new b(function(h,k){k(f)})};b.race=function(f){return new b(function(h,k){for(var l=x(f),m=l.next();!m.done;m=l.next())d(m.value).V(h,k)})};b.all=function(f){var h=x(f),k=h.next();return k.done?d([]):new b(function(l,m){function n(r){return function(y){p[r]=y;q--;0==q&&l(p)}}var p=[],q=0;do p.push(void 0),q++,d(k.value).V(n(p.length-1),m),k=h.next();
while(!k.done)})};return b});function ta(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var g=c++;return{value:b(g,a[g]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}B("Array.prototype.values",function(a){return a?a:function(){return ta(this,function(b,c){return c})}});function I(a,b){return Object.prototype.hasOwnProperty.call(a,b)}
B("WeakMap",function(a){function b(k){this.h=(h+=Math.random()+1).toString();if(k){k=x(k);for(var l;!(l=k.next()).done;)l=l.value,this.set(l[0],l[1])}}function c(){}function d(k){var l=typeof k;return"object"===l&&null!==k||"function"===l}function e(k){if(!I(k,f)){var l=new c;ba(k,f,{value:l})}}function g(k){var l=Object[k];l&&(Object[k]=function(m){if(m instanceof c)return m;Object.isExtensible(m)&&e(m);return l(m)})}if(function(){if(!a||!Object.seal)return!1;try{var k=Object.seal({}),l=Object.seal({}),
m=new a([[k,2],[l,3]]);if(2!=m.get(k)||3!=m.get(l))return!1;m.delete(k);m.set(l,4);return!m.has(k)&&4==m.get(l)}catch(n){return!1}}())return a;var f="$jscomp_hidden_"+Math.random();g("freeze");g("preventExtensions");g("seal");var h=0;b.prototype.set=function(k,l){if(!d(k))throw Error("Invalid WeakMap key");e(k);if(!I(k,f))throw Error("WeakMap key fail: "+k);k[f][this.h]=l;return this};b.prototype.get=function(k){return d(k)&&I(k,f)?k[f][this.h]:void 0};b.prototype.has=function(k){return d(k)&&I(k,
B("Promise",function(a){function b(f){this.A=0;this.B=void 0;this.h=[];this.J=!1;var g=this.C();try{f(g.resolve,g.reject)}catch(k){g.reject(k)}}function c(){this.h=null}function d(f){return f instanceof b?f:new b(function(g){g(f)})}if(a)return a;c.prototype.A=function(f){if(null==this.h){this.h=[];var g=this;this.B(function(){g.F()})}this.h.push(f)};var e=z.setTimeout;c.prototype.B=function(f){e(f,0)};c.prototype.F=function(){for(;this.h&&this.h.length;){var f=this.h;this.h=[];for(var g=0;g<f.length;++g){var k=
f[g];f[g]=null;try{k()}catch(l){this.C(l)}}}this.h=null};c.prototype.C=function(f){this.B(function(){throw f;})};b.prototype.C=function(){function f(l){return function(m){k||(k=!0,l.call(g,m))}}var g=this,k=!1;return{resolve:f(this.ha),reject:f(this.F)}};b.prototype.ha=function(f){if(f===this)this.F(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof b)this.ja(f);else{a:switch(typeof f){case "object":var g=null!=f;break a;case "function":g=!0;break a;default:g=!1}g?this.ga(f):
this.G(f)}};b.prototype.ga=function(f){var g=void 0;try{g=f.then}catch(k){this.F(k);return}"function"==typeof g?this.ka(g,f):this.G(f)};b.prototype.F=function(f){this.ca(2,f)};b.prototype.G=function(f){this.ca(1,f)};b.prototype.ca=function(f,g){if(0!=this.A)throw Error("Cannot settle("+f+", "+g+"): Promise already settled in state"+this.A);this.A=f;this.B=g;2===this.A&&this.ia();this.ea()};b.prototype.ia=function(){var f=this;e(function(){if(f.fa()){var g=z.console;"undefined"!==typeof g&&g.error(f.B)}},
1)};b.prototype.fa=function(){if(this.J)return!1;var f=z.CustomEvent,g=z.Event,k=z.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):"function"===typeof g?f=new g("unhandledrejection",{cancelable:!0}):(f=z.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.B;return k(f)};b.prototype.ea=function(){if(null!=this.h){for(var f=0;f<this.h.length;++f)h.A(this.h[f]);this.h=null}};
var h=new c;b.prototype.ja=function(f){var g=this.C();f.V(g.resolve,g.reject)};b.prototype.ka=function(f,g){var k=this.C();try{f.call(g,k.resolve,k.reject)}catch(l){k.reject(l)}};b.prototype.then=function(f,g){function k(p,q){return"function"==typeof p?function(r){try{l(p(r))}catch(y){m(y)}}:q}var l,m,n=new b(function(p,q){l=p;m=q});this.V(k(f,l),k(g,m));return n};b.prototype.catch=function(f){return this.then(void 0,f)};b.prototype.V=function(f,g){function k(){switch(l.A){case 1:f(l.B);break;case 2:g(l.B);
break;default:throw Error("Unexpected state: "+l.A);}}var l=this;null==this.h?h.A(k):this.h.push(k);this.J=!0};b.resolve=d;b.reject=function(f){return new b(function(g,k){k(f)})};b.race=function(f){return new b(function(g,k){for(var l=x(f),m=l.next();!m.done;m=l.next())d(m.value).V(g,k)})};b.all=function(f){var g=x(f),k=g.next();return k.done?d([]):new b(function(l,m){function n(r){return function(y){p[r]=y;q--;0==q&&l(p)}}var p=[],q=0;do p.push(void 0),q++,d(k.value).V(n(p.length-1),m),k=g.next();
while(!k.done)})};return b});function ta(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var h=c++;return{value:b(h,a[h]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}B("Array.prototype.values",function(a){return a?a:function(){return ta(this,function(b,c){return c})}});function I(a,b){return Object.prototype.hasOwnProperty.call(a,b)}
B("WeakMap",function(a){function b(k){this.h=(g+=Math.random()+1).toString();if(k){k=x(k);for(var l;!(l=k.next()).done;)l=l.value,this.set(l[0],l[1])}}function c(){}function d(k){var l=typeof k;return"object"===l&&null!==k||"function"===l}function e(k){if(!I(k,f)){var l=new c;ba(k,f,{value:l})}}function h(k){var l=Object[k];l&&(Object[k]=function(m){if(m instanceof c)return m;Object.isExtensible(m)&&e(m);return l(m)})}if(function(){if(!a||!Object.seal)return!1;try{var k=Object.seal({}),l=Object.seal({}),
m=new a([[k,2],[l,3]]);if(2!=m.get(k)||3!=m.get(l))return!1;m.delete(k);m.set(l,4);return!m.has(k)&&4==m.get(l)}catch(n){return!1}}())return a;var f="$jscomp_hidden_"+Math.random();h("freeze");h("preventExtensions");h("seal");var g=0;b.prototype.set=function(k,l){if(!d(k))throw Error("Invalid WeakMap key");e(k);if(!I(k,f))throw Error("WeakMap key fail: "+k);k[f][this.h]=l;return this};b.prototype.get=function(k){return d(k)&&I(k,f)?k[f][this.h]:void 0};b.prototype.has=function(k){return d(k)&&I(k,
f)&&I(k[f],this.h)};b.prototype.delete=function(k){return d(k)&&I(k,f)&&I(k[f],this.h)?delete k[f][this.h]:!1};return b});
B("Map",function(a){function b(){var h={};return h.I=h.next=h.head=h}function c(h,k){var l=h[1];return sa(function(){if(l){for(;l.head!=h[1];)l=l.I;for(;l.next!=l.head;)return l=l.next,{done:!1,value:k(l)};l=null}return{done:!0,value:void 0}})}function d(h,k){var l=k&&typeof k;"object"==l||"function"==l?g.has(k)?l=g.get(k):(l=""+ ++f,g.set(k,l)):l="p_"+k;var m=h[0][l];if(m&&I(h[0],l))for(h=0;h<m.length;h++){var n=m[h];if(k!==k&&n.key!==n.key||k===n.key)return{id:l,list:m,index:h,F:n}}return{id:l,
list:m,index:-1,F:void 0}}function e(h){this[0]={};this[1]=b();this.size=0;if(h){h=x(h);for(var k;!(k=h.next()).done;)k=k.value,this.set(k[0],k[1])}}if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var h=Object.seal({x:4}),k=new a(x([[h,"s"]]));if("s"!=k.get(h)||1!=k.size||k.get({x:4})||k.set({x:4},"t")!=k||2!=k.size)return!1;var l=k.entries(),m=l.next();if(m.done||m.value[0]!=h||"s"!=m.value[1])return!1;m=l.next();return m.done||4!=m.value[0].x||
"t"!=m.value[1]||!l.next().done?!1:!0}catch(n){return!1}}())return a;var g=new WeakMap;e.prototype.set=function(h,k){h=0===h?0:h;var l=d(this,h);l.list||(l.list=this[0][l.id]=[]);l.F?l.F.value=k:(l.F={next:this[1],I:this[1].I,head:this[1],key:h,value:k},l.list.push(l.F),this[1].I.next=l.F,this[1].I=l.F,this.size++);return this};e.prototype.delete=function(h){h=d(this,h);return h.F&&h.list?(h.list.splice(h.index,1),h.list.length||delete this[0][h.id],h.F.I.next=h.F.next,h.F.next.I=h.F.I,h.F.head=null,
this.size--,!0):!1};e.prototype.clear=function(){this[0]={};this[1]=this[1].I=b();this.size=0};e.prototype.has=function(h){return!!d(this,h).F};e.prototype.get=function(h){return(h=d(this,h).F)&&h.value};e.prototype.entries=function(){return c(this,function(h){return[h.key,h.value]})};e.prototype.keys=function(){return c(this,function(h){return h.key})};e.prototype.values=function(){return c(this,function(h){return h.value})};e.prototype.forEach=function(h,k){for(var l=this.entries(),m;!(m=l.next()).done;)m=
m.value,h.call(k,m[1],m[0],this)};e.prototype[Symbol.iterator]=e.prototype.entries;var f=0;return e});B("Array.prototype.keys",function(a){return a?a:function(){return ta(this,function(b){return b})}});
B("Set",function(a){function b(c){this.h=new Map;if(c){c=x(c);for(var d;!(d=c.next()).done;)this.add(d.value)}this.size=this.h.size}if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var c=Object.seal({x:4}),d=new a(x([c]));if(!d.has(c)||1!=d.size||d.add(c)!=d||1!=d.size||d.add({x:4})!=d||2!=d.size)return!1;var e=d.entries(),g=e.next();if(g.done||g.value[0]!=c||g.value[1]!=c)return!1;g=e.next();return g.done||g.value[0]==c||4!=g.value[0].x||
g.value[1]!=g.value[0]?!1:e.next().done}catch(f){return!1}}())return a;b.prototype.add=function(c){c=0===c?0:c;this.h.set(c,c);this.size=this.h.size;return this};b.prototype.delete=function(c){c=this.h.delete(c);this.size=this.h.size;return c};b.prototype.clear=function(){this.h.clear();this.size=0};b.prototype.has=function(c){return this.h.has(c)};b.prototype.entries=function(){return this.h.entries()};b.prototype.values=function(){return this.h.values()};b.prototype.keys=b.prototype.values;b.prototype[Symbol.iterator]=
b.prototype.values;b.prototype.forEach=function(c,d){var e=this;this.h.forEach(function(g){return c.call(d,g,g,e)})};return b});B("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}});B("Array.prototype.includes",function(a){return a?a:function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(0>c&&(c=Math.max(c+e,0));c<e;c++){var g=d[c];if(g===b||Object.is(g,b))return!0}return!1}});
B("Map",function(a){function b(){var g={};return g.I=g.next=g.head=g}function c(g,k){var l=g[1];return sa(function(){if(l){for(;l.head!=g[1];)l=l.I;for(;l.next!=l.head;)return l=l.next,{done:!1,value:k(l)};l=null}return{done:!0,value:void 0}})}function d(g,k){var l=k&&typeof k;"object"==l||"function"==l?h.has(k)?l=h.get(k):(l=""+ ++f,h.set(k,l)):l="p_"+k;var m=g[0][l];if(m&&I(g[0],l))for(g=0;g<m.length;g++){var n=m[g];if(k!==k&&n.key!==n.key||k===n.key)return{id:l,list:m,index:g,D:n}}return{id:l,
list:m,index:-1,D:void 0}}function e(g){this[0]={};this[1]=b();this.size=0;if(g){g=x(g);for(var k;!(k=g.next()).done;)k=k.value,this.set(k[0],k[1])}}if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var g=Object.seal({x:4}),k=new a(x([[g,"s"]]));if("s"!=k.get(g)||1!=k.size||k.get({x:4})||k.set({x:4},"t")!=k||2!=k.size)return!1;var l=k.entries(),m=l.next();if(m.done||m.value[0]!=g||"s"!=m.value[1])return!1;m=l.next();return m.done||4!=m.value[0].x||
"t"!=m.value[1]||!l.next().done?!1:!0}catch(n){return!1}}())return a;var h=new WeakMap;e.prototype.set=function(g,k){g=0===g?0:g;var l=d(this,g);l.list||(l.list=this[0][l.id]=[]);l.D?l.D.value=k:(l.D={next:this[1],I:this[1].I,head:this[1],key:g,value:k},l.list.push(l.D),this[1].I.next=l.D,this[1].I=l.D,this.size++);return this};e.prototype.delete=function(g){g=d(this,g);return g.D&&g.list?(g.list.splice(g.index,1),g.list.length||delete this[0][g.id],g.D.I.next=g.D.next,g.D.next.I=g.D.I,g.D.head=null,
this.size--,!0):!1};e.prototype.clear=function(){this[0]={};this[1]=this[1].I=b();this.size=0};e.prototype.has=function(g){return!!d(this,g).D};e.prototype.get=function(g){return(g=d(this,g).D)&&g.value};e.prototype.entries=function(){return c(this,function(g){return[g.key,g.value]})};e.prototype.keys=function(){return c(this,function(g){return g.key})};e.prototype.values=function(){return c(this,function(g){return g.value})};e.prototype.forEach=function(g,k){for(var l=this.entries(),m;!(m=l.next()).done;)m=
m.value,g.call(k,m[1],m[0],this)};e.prototype[Symbol.iterator]=e.prototype.entries;var f=0;return e});B("Array.prototype.keys",function(a){return a?a:function(){return ta(this,function(b){return b})}});
B("Set",function(a){function b(c){this.h=new Map;if(c){c=x(c);for(var d;!(d=c.next()).done;)this.add(d.value)}this.size=this.h.size}if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var c=Object.seal({x:4}),d=new a(x([c]));if(!d.has(c)||1!=d.size||d.add(c)!=d||1!=d.size||d.add({x:4})!=d||2!=d.size)return!1;var e=d.entries(),h=e.next();if(h.done||h.value[0]!=c||h.value[1]!=c)return!1;h=e.next();return h.done||h.value[0]==c||4!=h.value[0].x||
h.value[1]!=h.value[0]?!1:e.next().done}catch(f){return!1}}())return a;b.prototype.add=function(c){c=0===c?0:c;this.h.set(c,c);this.size=this.h.size;return this};b.prototype.delete=function(c){c=this.h.delete(c);this.size=this.h.size;return c};b.prototype.clear=function(){this.h.clear();this.size=0};b.prototype.has=function(c){return this.h.has(c)};b.prototype.entries=function(){return this.h.entries()};b.prototype.values=function(){return this.h.values()};b.prototype.keys=b.prototype.values;b.prototype[Symbol.iterator]=
b.prototype.values;b.prototype.forEach=function(c,d){var e=this;this.h.forEach(function(h){return c.call(d,h,h,e)})};return b});B("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}});B("Array.prototype.includes",function(a){return a?a:function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(0>c&&(c=Math.max(c+e,0));c<e;c++){var h=d[c];if(h===b||Object.is(h,b))return!0}return!1}});
B("String.prototype.includes",function(a){return a?a:function(b,c){if(null==this)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return-1!==this.indexOf(b,c||0)}});B("Array.prototype.entries",function(a){return a?a:function(){return ta(this,function(b,c){return[b,c]})}});
var ua="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)I(d,e)&&(a[e]=d[e])}return a};B("Object.assign",function(a){return a||ua});B("Array.prototype.flat",function(a){return a?a:function(b){b=void 0===b?1:b;var c=[];Array.prototype.forEach.call(this,function(d){Array.isArray(d)&&0<b?(d=Array.prototype.flat.call(d,b-1),c.push.apply(c,d)):c.push(d)});return c}});function K(a,b,c){var d=typeof c,e=typeof a;if("undefined"!==d){if("undefined"!==e){if(c){if("function"===e&&d===e)return function(g){return a(c(g))};b=a.constructor;if(b===c.constructor){if(b===Array)return c.concat(a);if(b===Map){b=new Map(c);d=x(a);for(e=d.next();!e.done;e=d.next())e=e.value,b.set(e[0],e[1]);return b}if(b===Set){b=new Set(c);d=x(a.values());for(e=d.next();!e.done;e=d.next())b.add(e.value);return b}}}return a}return c}return"undefined"===e?b:a}
var ua="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)I(d,e)&&(a[e]=d[e])}return a};B("Object.assign",function(a){return a||ua});B("Array.prototype.flat",function(a){return a?a:function(b){b=void 0===b?1:b;var c=[];Array.prototype.forEach.call(this,function(d){Array.isArray(d)&&0<b?(d=Array.prototype.flat.call(d,b-1),c.push.apply(c,d)):c.push(d)});return c}});function K(a,b,c){var d=typeof c,e=typeof a;if("undefined"!==d){if("undefined"!==e){if(c){if("function"===e&&d===e)return function(h){return a(c(h))};b=a.constructor;if(b===c.constructor){if(b===Array)return c.concat(a);if(b===Map){b=new Map(c);d=x(a);for(e=d.next();!e.done;e=d.next())e=e.value,b.set(e[0],e[1]);return b}if(b===Set){b=new Set(c);d=x(a.values());for(e=d.next();!e.done;e=d.next())b.add(e.value);return b}}}return a}return c}return"undefined"===e?b:a}
function L(){return Object.create(null)}function va(a,b){return b.length-a.length}function M(a){return"string"===typeof a}function N(a){return"object"===typeof a}function wa(a){var b=[];a=x(a.keys());for(var c=a.next();!c.done;c=a.next())b.push(c.value);return b}function xa(a,b){if(M(b))a=a[b];else for(var c=0;a&&c<b.length;c++)a=a[b[c]];return a}function ya(a){for(var b=0,c=0,d=void 0;c<a.length;c++)(d=a[c])&&b<d.length&&(b=d.length);return b};var za=[["\u00aa","a"],["\u00b2","2"],["\u00b3","3"],["\u00b9","1"],["\u00ba","o"],["\u00bc","1\u20444"],["\u00bd","1\u20442"],["\u00be","3\u20444"],["\u00e0","a"],["\u00e1","a"],["\u00e2","a"],["\u00e3","a"],["\u00e4","a"],["\u00e5","a"],["\u00e7","c"],["\u00e8","e"],["\u00e9","e"],["\u00ea","e"],["\u00eb","e"],["\u00ec","i"],["\u00ed","i"],["\u00ee","i"],["\u00ef","i"],["\u00f1","n"],["\u00f2","o"],["\u00f3","o"],["\u00f4","o"],["\u00f5","o"],["\u00f6","o"],["\u00f9","u"],["\u00fa","u"],["\u00fb",
"u"],["\u00fc","u"],["\u00fd","y"],["\u00ff","y"],["\u0101","a"],["\u0103","a"],["\u0105","a"],["\u0107","c"],["\u0109","c"],["\u010b","c"],["\u010d","c"],["\u010f","d"],["\u0113","e"],["\u0115","e"],["\u0117","e"],["\u0119","e"],["\u011b","e"],["\u011d","g"],["\u011f","g"],["\u0121","g"],["\u0123","g"],["\u0125","h"],["\u0129","i"],["\u012b","i"],["\u012d","i"],["\u012f","i"],["\u0133","ij"],["\u0135","j"],["\u0137","k"],["\u013a","l"],["\u013c","l"],["\u013e","l"],["\u0140","l"],["\u0144","n"],
["\u0146","n"],["\u0148","n"],["\u0149","n"],["\u014d","o"],["\u014f","o"],["\u0151","o"],["\u0155","r"],["\u0157","r"],["\u0159","r"],["\u015b","s"],["\u015d","s"],["\u015f","s"],["\u0161","s"],["\u0163","t"],["\u0165","t"],["\u0169","u"],["\u016b","u"],["\u016d","u"],["\u016f","u"],["\u0171","u"],["\u0173","u"],["\u0175","w"],["\u0177","y"],["\u017a","z"],["\u017c","z"],["\u017e","z"],["\u017f","s"],["\u01a1","o"],["\u01b0","u"],["\u01c6","dz"],["\u01c9","lj"],["\u01cc","nj"],["\u01ce","a"],["\u01d0",
"i"],["\u01d2","o"],["\u01d4","u"],["\u01d6","u"],["\u01d8","u"],["\u01da","u"],["\u01dc","u"],["\u01df","a"],["\u01e1","a"],["\u01e3","ae"],["\u00e6","ae"],["\u01fd","ae"],["\u01e7","g"],["\u01e9","k"],["\u01eb","o"],["\u01ed","o"],["\u01ef","\u0292"],["\u01f0","j"],["\u01f3","dz"],["\u01f5","g"],["\u01f9","n"],["\u01fb","a"],["\u01ff","\u00f8"],["\u0201","a"],["\u0203","a"],["\u0205","e"],["\u0207","e"],["\u0209","i"],["\u020b","i"],["\u020d","o"],["\u020f","o"],["\u0211","r"],["\u0213","r"],["\u0215",
"u"],["\u0217","u"],["\u0219","s"],["\u021b","t"],["\u021f","h"],["\u0227","a"],["\u0229","e"],["\u022b","o"],["\u022d","o"],["\u022f","o"],["\u0231","o"],["\u0233","y"],["\u02b0","h"],["\u02b1","h"],["\u0266","h"],["\u02b2","j"],["\u02b3","r"],["\u02b4","\u0279"],["\u02b5","\u027b"],["\u02b6","\u0281"],["\u02b7","w"],["\u02b8","y"],["\u02e0","\u0263"],["\u02e1","l"],["\u02e2","s"],["\u02e3","x"],["\u02e4","\u0295"],["\u0390","\u03b9"],["\u03ac","\u03b1"],["\u03ad","\u03b5"],["\u03ae","\u03b7"],["\u03af",
"\u03b9"],["\u03b0","\u03c5"],["\u03ca","\u03b9"],["\u03cb","\u03c5"],["\u03cc","\u03bf"],["\u03cd","\u03c5"],["\u03ce","\u03c9"],["\u03d0","\u03b2"],["\u03d1","\u03b8"],["\u03d2","\u03a5"],["\u03d3","\u03a5"],["\u03d4","\u03a5"],["\u03d5","\u03c6"],["\u03d6","\u03c0"],["\u03f0","\u03ba"],["\u03f1","\u03c1"],["\u03f2","\u03c2"],["\u03f5","\u03b5"],["\u0439","\u0438"],["\u0450","\u0435"],["\u0451","\u0435"],["\u0453","\u0433"],["\u0457","\u0456"],["\u045c","\u043a"],["\u045d","\u0438"],["\u045e","\u0443"],
["\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"]];var Aa=/[^\p{L}\p{N}]+/u,Ba=/(\d{3})/g,Ca=/(\D)(\d{3})/g,Da=/(\d{3})(\D)/g,Ea="".normalize&&/[\u0300-\u036f]/g;function Q(a){if(!this){var b=Function.prototype.bind,c=b.apply,d=[null],e=d.concat;if(arguments instanceof Array)var g=arguments;else{g=x(arguments);for(var f,h=[];!(f=g.next()).done;)h.push(f.value);g=h}return new (c.call(b,Q,e.call(d,g)))}for(b=0;b<arguments.length;b++)this.assign(arguments[b])}
Q.prototype.assign=function(a){this.normalize=K(a.normalize,!0,this.normalize);var b=a.include,c=b||a.exclude||a.split;if("object"===typeof c){var d=!b,e="";a.include||(e+="\\p{Z}");c.letter&&(e+="\\p{L}");c.number&&(e+="\\p{N}",d=!!b);c.symbol&&(e+="\\p{S}");c.punctuation&&(e+="\\p{P}");c.control&&(e+="\\p{C}");if(c=c.char)e+="object"===typeof c?c.join(""):c;try{this.split=new RegExp("["+(b?"^":"")+e+"]+","u")}catch(g){this.split=/\s+/}this.numeric=d}else{try{this.split=K(c,Aa,this.split)}catch(g){this.split=
["\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"]];var Aa=/[^\p{L}\p{N}]+/u,Ba=/(\d{3})/g,Ca=/(\D)(\d{3})/g,Da=/(\d{3})(\D)/g,Ea="".normalize&&/[\u0300-\u036f]/g;function Q(a){if(!this){var b=Function.prototype.bind,c=b.apply,d=[null],e=d.concat;if(arguments instanceof Array)var h=arguments;else{h=x(arguments);for(var f,g=[];!(f=h.next()).done;)g.push(f.value);h=g}return new (c.call(b,Q,e.call(d,h)))}for(b=0;b<arguments.length;b++)this.assign(arguments[b])}
Q.prototype.assign=function(a){this.normalize=K(a.normalize,!0,this.normalize);var b=a.include,c=b||a.exclude||a.split;if("object"===typeof c){var d=!b,e="";a.include||(e+="\\p{Z}");c.letter&&(e+="\\p{L}");c.number&&(e+="\\p{N}",d=!!b);c.symbol&&(e+="\\p{S}");c.punctuation&&(e+="\\p{P}");c.control&&(e+="\\p{C}");if(c=c.char)e+="object"===typeof c?c.join(""):c;try{this.split=new RegExp("["+(b?"^":"")+e+"]+","u")}catch(h){this.split=/\s+/}this.numeric=d}else{try{this.split=K(c,Aa,this.split)}catch(h){this.split=
/\s+/}this.numeric=K(this.numeric,!0)}this.prepare=K(a.prepare,null,this.prepare);this.finalize=K(a.finalize,null,this.finalize);Ea||(this.mapper=new Map(za));this.rtl=a.rtl||!1;this.dedupe=K(a.dedupe,!0,this.dedupe);this.filter=K((c=a.filter)&&new Set(c),null,this.filter);this.matcher=K((c=a.matcher)&&new Map(c),null,this.matcher);this.mapper=K((c=a.mapper)&&new Map(c),null,this.mapper);this.stemmer=K((c=a.stemmer)&&new Map(c),null,this.stemmer);this.replacer=K(a.replacer,null,this.replacer);this.minlength=
K(a.minlength,1,this.minlength);this.maxlength=K(a.maxlength,0,this.maxlength);if(this.cache=c=K(a.cache,!0,this.cache))this.U=null,this.J="number"===typeof c?c:2E5,this.N=new Map,this.S=new Map,this.A=this.h=128;this.B="";this.D=null;this.C="";this.G=null;if(this.matcher)for(a=x(this.matcher.keys()),b=a.next();!b.done;b=a.next())this.B+=(this.B?"|":"")+b.value;if(this.stemmer)for(a=x(this.stemmer.keys()),b=a.next();!b.done;b=a.next())this.C+=(this.C?"|":"")+b.value;return this};
K(a.minlength,1,this.minlength);this.maxlength=K(a.maxlength,0,this.maxlength);if(this.cache=c=K(a.cache,!0,this.cache))this.U=null,this.J="number"===typeof c?c:2E5,this.N=new Map,this.S=new Map,this.A=this.h=128;this.B="";this.F=null;this.C="";this.G=null;if(this.matcher)for(a=x(this.matcher.keys()),b=a.next();!b.done;b=a.next())this.B+=(this.B?"|":"")+b.value;if(this.stemmer)for(a=x(this.stemmer.keys()),b=a.next();!b.done;b=a.next())this.C+=(this.C?"|":"")+b.value;return this};
Q.prototype.encode=function(a){var b=this;if(this.cache&&a.length<=this.h)if(this.U){if(this.N.has(a))return this.N.get(a)}else this.U=setTimeout(Fa,0,this);this.normalize&&(a="function"===typeof this.normalize?this.normalize(a):Ea?a.normalize("NFKD").replace(Ea,"").toLowerCase():a.toLowerCase());this.prepare&&(a=this.prepare(a));this.numeric&&3<a.length&&(a=a.replace(Ca,"$1 $2").replace(Da,"$1 $2").replace(Ba,"$1 "));for(var c=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||
this.replacer),d=[],e=this.split||""===this.split?a.split(this.split):a,g=0,f=void 0,h=void 0;g<e.length;g++)if((f=h=e[g])&&!(f.length<this.minlength))if(c)d.push(f);else if(!this.filter||!this.filter.has(f)){if(this.cache&&f.length<=this.A)if(this.U){var k=this.S.get(f);if(k||""===k){k&&d.push(k);continue}}else this.U=setTimeout(Fa,0,this);k=void 0;this.stemmer&&2<f.length&&(this.G||(this.G=new RegExp("(?!^)("+this.C+")$")),f=f.replace(this.G,function(q){return b.stemmer.get(q)}),k=1);this.matcher&&
1<f.length&&(this.D||(this.D=new RegExp("("+this.B+")","g")),f=f.replace(this.D,function(q){return b.matcher.get(q)}),k=1);f&&k&&(f.length<this.minlength||this.filter&&this.filter.has(f))&&(f="");if(f&&(this.mapper||this.dedupe&&1<f.length)){k="";for(var l=0,m="",n=void 0,p=void 0;l<f.length;l++)n=f.charAt(l),n===m&&this.dedupe||((p=this.mapper&&this.mapper.get(n))||""===p?p===m&&this.dedupe||!(m=p)||(k+=p):k+=m=n);f=k}if(f&&this.replacer)for(k=0;f&&k<this.replacer.length;k+=2)f=f.replace(this.replacer[k],
this.replacer[k+1]);this.cache&&h.length<=this.A&&(this.S.set(h,f),this.S.size>this.J&&(this.S.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 Fa(a){a.U=null;a.N.clear();a.S.clear()};function Ga(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 R(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}R.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)};
R.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};R.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)}};R.prototype.clear=function(){this.cache.clear();this.h=""};var Ha={normalize:function(a){return a.toLowerCase()},dedupe:!1};var Ia=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 Ja=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),Ka=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];var La={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 Ma=/[\x00-\x7F]+/g;var Na=/[\x00-\x7F]+/g;var Oa=/[\x00-\x7F]+/g;var Pa={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:Ha,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:Ia},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:Ia,replacer:Ka,matcher:Ja},LatinExtra:{normalize:!0,dedupe:!0,mapper:Ia,replacer:Ka.concat([/(?!^)[aeoy]/g,""]),matcher:Ja},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(var b=0;b<a.length;b++){for(var c=a[b],d=c.charAt(0),e=La[d],g=1,f;g<c.length&&(f=c.charAt(g),"h"===f||"w"===
f||!(f=La[f])||f===e||(d+=f,e=f,4!==d.length));g++);a[b]=d}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(Ma," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(Na,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(Oa," ")}}};function Qa(a,b,c,d){for(var e=[],g=0,f;g<a.index.length;g++)if(f=a.index[g],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 S(a){if(!this)return new S(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;f<b.index.length;f++){h=b.index[f];k=h.indexOf(e);if(0<=k)return g+k;g+=h.length}return-1};if("includes"===
d)return function(e){for(var g=0;g<b.index.length;g++)if(b.index[g].includes(e))return!0;return!1};if("slice"===d)return function(e,g){return Qa(b,e||0,g||b.length,!1)};if("splice"===d)return function(e,g){return Qa(b,e||0,g||b.length,!0)};if("constructor"===d)return Array;if("symbol"!==typeof d)return(c=b.index[d/Math.pow(2,31)|0])&&c[d]},set:function(c,d,e){c=d/Math.pow(2,31)|0;(b.index[c]||(b.index[c]=[]))[d]=e;b.length++;return!0}})}S.prototype.clear=function(){this.index.length=0};
this.replacer),d=[],e=this.split||""===this.split?a.split(this.split):a,h=0,f=void 0,g=void 0;h<e.length;h++)if((f=g=e[h])&&!(f.length<this.minlength))if(c)d.push(f);else if(!this.filter||!this.filter.has(f)){if(this.cache&&f.length<=this.A)if(this.U){var k=this.S.get(f);if(k||""===k){k&&d.push(k);continue}}else this.U=setTimeout(Fa,0,this);k=void 0;this.stemmer&&2<f.length&&(this.G||(this.G=new RegExp("(?!^)("+this.C+")$")),f=f.replace(this.G,function(q){return b.stemmer.get(q)}),k=1);this.matcher&&
1<f.length&&(this.F||(this.F=new RegExp("("+this.B+")","g")),f=f.replace(this.F,function(q){return b.matcher.get(q)}),k=1);f&&k&&(f.length<this.minlength||this.filter&&this.filter.has(f))&&(f="");if(f&&(this.mapper||this.dedupe&&1<f.length)){k="";for(var l=0,m="",n=void 0,p=void 0;l<f.length;l++)n=f.charAt(l),n===m&&this.dedupe||((p=this.mapper&&this.mapper.get(n))||""===p?p===m&&this.dedupe||!(m=p)||(k+=p):k+=m=n);f=k}if(f&&this.replacer)for(k=0;f&&k<this.replacer.length;k+=2)f=f.replace(this.replacer[k],
this.replacer[k+1]);this.cache&&g.length<=this.A&&(this.S.set(g,f),this.S.size>this.J&&(this.S.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 Fa(a){a.U=null;a.N.clear();a.S.clear()};function Ga(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 R(a){this.limit=a&&!0!==a?a:1E3;this.cache=new Map;this.h=""}R.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)};
R.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};R.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)}};R.prototype.clear=function(){this.cache.clear();this.h=""};var Ha={normalize:function(a){return a.toLowerCase()},dedupe:!1};var Ia=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 Ja=new Map([["ai","ei"],["ae","a"],["oe","o"],["ue","u"],["sh","s"],["ch","c"],["th","t"],["ph","f"],["pf","f"]]),Ka=[/([^aeo])h([aeo$])/g,"$1$2",/([aeo])h([^aeo]|$)/g,"$1$2"];var La={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 Ma=/[\x00-\x7F]+/g;var Na=/[\x00-\x7F]+/g;var Oa=/[\x00-\x7F]+/g;var Pa={LatinExact:{normalize:!1,dedupe:!1},LatinDefault:Ha,LatinSimple:{normalize:!0,dedupe:!0},LatinBalance:{normalize:!0,dedupe:!0,mapper:Ia},LatinAdvanced:{normalize:!0,dedupe:!0,mapper:Ia,replacer:Ka,matcher:Ja},LatinExtra:{normalize:!0,dedupe:!0,mapper:Ia,replacer:Ka.concat([/(?!^)[aeoy]/g,""]),matcher:Ja},LatinSoundex:{normalize:!0,dedupe:!1,include:{letter:!0},finalize:function(a){for(var b=0;b<a.length;b++){for(var c=a[b],d=c.charAt(0),e=La[d],h=1,f;h<c.length&&(f=c.charAt(h),"h"===f||"w"===
f||!(f=La[f])||f===e||(d+=f,e=f,4!==d.length));h++);a[b]=d}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(Ma," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(Na,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(Oa," ")}}};function Qa(a,b,c,d){for(var e=[],h=0,f;h<a.index.length;h++)if(f=a.index[h],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 S(a){if(!this)return new S(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;f<b.index.length;f++){g=b.index[f];k=g.indexOf(e);if(0<=k)return h+k;h+=g.length}return-1};if("includes"===
d)return function(e){for(var h=0;h<b.index.length;h++)if(b.index[h].includes(e))return!0;return!1};if("slice"===d)return function(e,h){return Qa(b,e||0,h||b.length,!1)};if("splice"===d)return function(e,h){return Qa(b,e||0,h||b.length,!0)};if("constructor"===d)return Array;if("symbol"!==typeof d)return(c=b.index[d/Math.pow(2,31)|0])&&c[d]},set:function(c,d,e){c=d/Math.pow(2,31)|0;(b.index[c]||(b.index[c]=[]))[d]=e;b.length++;return!0}})}S.prototype.clear=function(){this.index.length=0};
S.prototype.destroy=function(){this.proxy=this.index=null};S.prototype.push=function(){};function T(a){a=void 0===a?8:a;if(!this)return new T(a);this.index=L();this.B=[];this.size=0;32<a?(this.h=Ra,this.A=BigInt(a)):(this.h=Sa,this.A=a)}T.prototype.get=function(a){var b=this.h(a);return(b=this.index[b])&&b.get(a)};T.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.B.push(d))};
function U(a){a=void 0===a?8:a;if(!this)return new U(a);this.index=L();this.h=[];32<a?(this.B=Ra,this.A=BigInt(a)):(this.B=Sa,this.A=a)}U.prototype.add=function(a){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))};u=T.prototype;u.has=U.prototype.has=function(a){var b=this.B(a);return(b=this.index[b])&&b.has(a)};u.delete=U.prototype.delete=function(a){var b=this.B(a);(b=this.index[b])&&b.delete(a)&&this.size--};
u.clear=U.prototype.clear=function(){this.index=L();this.h=[];this.size=0};u.values=U.prototype.values=function Ta(){var b,c=this,d,e,g;return qa(Ta,function(f){switch(f.h){case 1:b=0;case 2:if(!(b<c.h.length)){f.h=0;break}d=x(c.h[b].values());e=d.next();case 5:if(e.done){b++;f.h=2;break}g=e.value;return F(f,g,6);case 6:e=d.next(),f.h=5}})};
u.keys=U.prototype.keys=function Ua(){var b,c=this,d,e,g;return qa(Ua,function(f){switch(f.h){case 1:b=0;case 2:if(!(b<c.h.length)){f.h=0;break}d=x(c.h[b].keys());e=d.next();case 5:if(e.done){b++;f.h=2;break}g=e.value;return F(f,g,6);case 6:e=d.next(),f.h=5}})};
u.entries=U.prototype.entries=function Va(){var b,c=this,d,e,g;return qa(Va,function(f){switch(f.h){case 1:b=0;case 2:if(!(b<c.h.length)){f.h=0;break}d=x(c.h[b].entries());e=d.next();case 5:if(e.done){b++;f.h=2;break}g=e.value;return F(f,g,6);case 6:e=d.next(),f.h=5}})};function Sa(a){var b=Math.pow(2,this.A)-1;if("number"==typeof a)return a&b;for(var c=0,d=this.A+1,e=0;e<a.length;e++)c=(c*d^a.charCodeAt(e))&b;return 32===this.A?c+Math.pow(2,31):c}
function Ra(){throw Error("The keystore is limited to 32 for EcmaScript5");};function Wa(a,b,c,d,e,g,f,h){(d=a(c?c+"."+d:d,JSON.stringify(f)))&&d.then?d.then(function(){b.export(a,b,c,e,g+1,h)}):b.export(a,b,c,e,g+1,h)};var Xa={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 Ya(a){Za.call(a,"add");Za.call(a,"append");Za.call(a,"search");Za.call(a,"update");Za.call(a,"remove")}function Za(a){this[a+"Async"]=function(){var b=arguments,c=b[b.length-1];if("function"===typeof c){var d=c;delete b[b.length-1]}b=this[a].apply(this,b);d&&(b.then?b.then(d):d(b));return b}};L();V.prototype.add=function(a,b,c,d){if(b&&(a||0===a)){if(!d&&!c&&this.reg.has(a))return this.update(a,b);b=this.encoder.encode(b);if(d=b.length){for(var e=L(),g=L(),f=this.depth,h=this.resolution,k=0;k<d;k++){var l=b[this.rtl?d-1-k:k],m=l.length;if(m&&(f||!g[l])){var n=this.score?this.score(b,l,k,null,0):$a(h,d,k),p="";switch(this.tokenize){case "full":if(2<m){for(n=0;n<m;n++)for(var q=m;q>n;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;0<q;q--)p=l[q]+p,r=this.score?this.score(b,l,k,p,q):$a(h,d,k,m,q),ab(this,g,p,r,a,c);p=""}case "forward":if(1<m){for(q=0;q<m;q++)p+=l[q],ab(this,g,p,n,a,c);break}default:if(ab(this,g,l,n,a,c),f&&1<d&&k<d-1)for(m=L(),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),v=this.bidirectional&&l>n;ab(this,e,v?n:l,y,a,c,v?l:n)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
(b||this.commit_task.push({del:a}),this.ea&&bb(this));return this};
function ab(a,b,c,d,e,g,f){var h=f?a.ctx:a.map,k;if(!b[c]||!f||!(k=b[c])[f])if(f?(b=k||(b[c]=L()),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 S(h);if(a.fastupdate)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.reg.get(e))?d.push(h):a.reg.set(e,[h]))}}
function $a(a,b,c,d,e){return c&&1<a?b+(d||0)<=a?c+(e||0):(a-1)/(b+(d||0))*(c+(e||0))+1|0:0};function W(a,b,c,d){if(1===a.length)return a=a[0],a=c||a.length>b?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<a.length;g++)if((f=a[g])&&(h=f.length)){if(c){if(c>=h){c-=h;continue}c<h&&(f=b?f.slice(c,c+b):f.slice(c),h=f.length,c=0)}if(e.length)h>b&&(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=1<e.length?[].concat.apply([],e):e[0];return d?cb(e):e}
function cb(a){for(var b=0;b<a.length;b++)a[b]={score:b,id:a[b]};return a};X.prototype.or=function(){var a=this,b=arguments,c=b[0];if(c.then)return c.then(function(){return a.or.apply(a,b)});if(c[0]&&c[0].index)return this.or.apply(this,c);var d=[];c=[];for(var e=0,g=0,f,h,k=0,l=void 0;k<b.length;k++)if(l=b[k]){var m=void 0;if(l.constructor===X)m=l.result;else if(l.constructor===Array)m=l;else if(l.index)l.resolve=!1,m=l.index.search(l).result;else if(l.and)m=this.and(l.and);else if(l.xor)m=this.xor(l.xor);else if(l.not)m=this.not(l.not);else{e=l.limit||0;g=l.offset||0;
f=l.enrich;h=l.resolve;continue}d[k]=m;m.then&&c.push(m)}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.K);return h?a.result:a});this.result.length&&(d=[this.result].concat(d));this.result=db(d,e,g,f,h,a.K);return h?this.result:this};
function db(a,b,c,d,e,g){if(!a.length)return a;"object"===typeof b&&(c=b.offset||0,d=b.enrich||!1,b=b.limit||0);if(2>a.length)return e?W(a[0],b,c,d):a[0];d=[];for(var f=0,h=L(),k=ya(a),l=0,m;l<k;l++)for(var n=0;n<a.length;n++)if(m=a[n])if(m=m[l])for(var p=0,q;p<m.length;p++)if(q=m[p],!h[q])if(h[q]=1,c)c--;else{if(e)d.push(q);else{var r=l+(n?g:0);d[r]||(d[r]=[]);d[r].push(q)}if(b&&++f===b)return d}return d};X.prototype.and=function(){if(this.result.length){var a=this,b=arguments,c=b[0];if(c.then)return c.then(function(){return a.and.apply(a,b)});if(c[0]&&c[0].index)return this.and.apply(this,c);var d=[];c=[];for(var e=0,g=0,f,h=0,k=void 0;h<b.length;h++)if(k=b[h]){var l=void 0;if(k.constructor===X)l=k.result;else if(k.constructor===Array)l=k;else if(k.index)k.resolve=!1,l=k.index.search(k).result;else if(k.or)l=this.or(k.or);else if(k.xor)l=this.xor(k.xor);else if(k.not)l=this.not(k.not);else{e=k.limit||
0;g=k.offset||0;f=k.resolve;continue}d[h]=l;l.then&&c.push(l)}if(c.length)return Promise.all(c).then(function(){d=[a.result].concat(d);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.K);return f?this.result:this}return this};
function eb(a,b,c,d,e){if(2>a.length)return[];var g=[],f=0,h=L(),k=ya(a);if(!k)return g;for(var l=0,m;l<a.length;l++){m=a[l];if(!m||!m.length)return[];for(var n=L(),p=0,q=l===a.length-1,r=0,y;r<k;r++)if(y=m[r])for(var v=0,t,w;v<y.length;v++)if(t=y[v],!l)n[t]=r+1+(l?e:0),p=1;else if(q){if(w=h[t])if(p=1,c)c--;else if(d?g.push(t):(w--,r<w&&(w=r),g[w]||(g[w]=[]),g[w].push(t)),b&&++f===b)return g}else if(w=h[t])r+1<w&&(w=r+1),n[t]=w,p=1;if(!p)return[];h=n}return g};X.prototype.xor=function(){var a=this,b=arguments,c=b[0];if(c.then)return c.then(function(){return a.xor.apply(a,b)});if(c[0]&&c[0].index)return this.xor.apply(this,c);var d=[];c=[];for(var e=0,g=0,f,h,k=0,l=void 0;k<b.length;k++)if(l=b[k]){var m=void 0;if(l.constructor===X)m=l.result;else if(l.constructor===Array)m=l;else if(l.index)l.resolve=!1,m=l.index.search(l).result;else if(l.or)m=this.or(l.or);else if(l.and)m=this.and(l.and);else if(l.not)m=this.not(l.not);else{e=l.limit||0;g=l.offset||0;
f=l.enrich;h=l.resolve;continue}d[k]=m;m.then&&c.push(m)}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.K);return h?a.result:a});this.result.length&&(d=[this.result].concat(d));this.result=fb(d,e,g,f,!h,a.K);return h?this.result:this};
function fb(a,b,c,d,e,g){if(!a.length)return a;if(2>a.length)return e?W(a[0],b,c,d):a[0];b=[];c=L();d=0;for(var f;d<a.length;d++)if(f=a[d])for(var h=0,k;h<f.length;h++)if(k=f[h])for(var l=0,m;l<k.length;l++)m=k[l],c[m]?c[m]++:c[m]=1;for(d=0;d<a.length;d++)if(f=a[d])for(h=0;h<f.length;h++)if(k=f[h])for(l=0;l<k.length;l++)if(m=k[l],1===c[m])if(e)b.push(m);else{var n=h+(d?g:0);b[n]||(b[n]=[]);b[n].push(m)}return b};X.prototype.not=function(){var a=this,b=arguments,c=b[0];if(c.then)return c.then(function(){return a.not.apply(a,b)});if(c[0]&&c[0].index)return this.not.apply(this,c);var d=[];c=[];for(var e,g=0,f=void 0;g<b.length;g++)if(f=b[g]){var h=void 0;if(f.constructor===X)h=f.result;else if(f.constructor===Array)h=f;else if(f.index)f.resolve=!1,h=f.index.search(f).result;else if(f.or)h=this.or(f.or);else if(f.and)h=this.and(f.and);else if(f.xor)h=this.xor(f.xor);else{e=f.resolve;continue}d[g]=h;h.then&&c.push(h)}if(c.length)return Promise.all(c).then(function(){a.result=
gb.call(a,d,e);return e?a.result:a});this.result=gb.call(this,d,e);return e?this.result:this};function gb(a,b){if(!a.length)return this.result;var c=[];a=new Set(a.flat().flat());for(var d=0,e;d<this.result.length;d++)if(e=this.result[d])for(var g=0,f;g<e.length;g++)f=e[g],a.has(f)||(b?c.push(f):(c[d]||(c[d]=[]),c[d].push(f)));return c};function X(a){if(!this)return new X(a);if(a&&a.index)return a.resolve=!1,this.index=a.index,a.index.search(a);if(a.constructor===X)return a;this.index=null;this.result=a||[];this.K=0}X.prototype.limit=function(a){if(this.result.length)for(var b=[],c=0,d=0,e;d<this.result.length;d++)if(e=this.result[d],e.length+c<a)b[d]=e,c+=e.length;else{b[d]=e.slice(0,a-c);this.result=b;break}return this};
X.prototype.offset=function(a){if(this.result.length){for(var b=[],c=0,d=0,e;d<this.result.length;d++)e=this.result[d],e.length+c<a?c+=e.length:(b[d]=e.slice(a-c),c=a);this.result=b}return this};X.prototype.boost=function(a){this.K+=a;return this};X.prototype.resolve=function(a,b,c){hb=1;var d=this.result;this.result=this.index=null;return d.length?("object"===typeof a&&(c=a.enrich,b=a.offset,a=a.limit),W(d,a||100,b,c)):d};function ib(a,b,c,d,e){var g=a.length,f=[],h;var k=L();for(var l=0,m=void 0,n;l<b;l++)for(var p=0;p<g;p++)if(n=a[p],l<n.length&&(m=n[l]))for(var q=0;q<m.length;q++)n=m[q],(h=k[n])?k[n]++:(h=0,k[n]=1),h=f[h]||(f[h]=[]),h.push(n);if(a=f.length)if(e){if(1<f.length){e=f;g=[];f=L();k=e.length;for(m=0;m<k;m++)for(a=e[m],l=a.length,p=0;p<l;p++)if(b=a[p],!f[b])if(f[b]=1,d)d--;else if(g.push(b),g.length===c)break;c=g}else c=f[0];f=c}else{if(a<g)return[];f=f[a-1];if(f.length>c||d)f=f.slice(d,c+d)}return f}
function jb(a,b){for(var c=L(),d=[],e=0,g;e<b.length;e++){g=b[e];for(var f=0;f<g.length;f++)c[g[f]]=1}for(b=0;b<a.length;b++)e=a[b],1===c[e]&&(d.push(e),c[e]=2);return d};var hb=1;
V.prototype.search=function(a,b,c){c||(!b&&N(a)?(c=a,a=""):N(b)&&(c=b,b=0));var d=[],e=0,g;if(c){a=c.query||a;b=c.limit||b;e=c.offset||0;var f=c.context;var h=c.suggest;(g=hb&&!1!==c.resolve)||(hb=0);var k=g&&c.enrich;var l=this.db&&c.tag}else g=this.resolve||hb;a=this.encoder.encode(a);var m=a.length;b||!g||(b=100);if(1===m)return kb.call(this,a[0],"",b,e,g,k,l);f=this.depth&&!1!==f;if(2===m&&f&&!h)return kb.call(this,a[0],a[1],b,e,g,k,l);var n=c=0;if(1<m){for(var p=L(),q=[],r=0,y=void 0;r<m;r++)if((y=
a[r])&&!p[y]){if(h||this.db||Y(this,y))q.push(y),p[y]=1;else return g?d:new X(d);y=y.length;c=Math.max(c,y);n=n?Math.min(n,y):y}a=q;m=a.length}if(!m)return g?d:new X(d);var v=0;if(1===m)return kb.call(this,a[0],"",b,e,g,k,l);if(2===m&&f&&!h)return kb.call(this,a[0],a[1],b,e,g,k,l);if(1<m)if(f){var t=a[0];v=1}else 9<c&&3<c/n&&a.sort(va);if(this.db){if(this.db.search&&(f=this.db.search(this,a,b,e,h,g,k,l),!1!==f))return f;var w=this;return function(){var A,C,D;return H(function(E){switch(E.h){case 1:C=
A=void 0;case 2:if(!(v<m)){E.h=4;break}C=a[v];return t?F(E,Y(w,C,t),8):F(E,Y(w,C),7);case 7:A=E.D;A=lb(A,d,h,w.resolution,b,e,1===m);E.h=6;break;case 8:A=E.D,A=lb(A,d,h,w.ba,b,e,2===m),h&&!1===A&&d.length||(t=C);case 6:if(A)return E.return(A);if(h&&v===m-1){D=d.length;if(!D){if(t){t="";v=-1;E.h=3;break}return E.return(d)}if(1===D)return E.return(g?W(d[0],b,e):new X(d[0]))}case 3:v++;E.h=2;break;case 4:return E.return(g?ib(d,w.resolution,b,e,h):new X(d[0]))}})}()}for(k=f=void 0;v<m;v++){k=a[v];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;if(h&&v===m-1){f=d.length;if(!f){if(t){t="";v=-1;continue}return d}if(1===f)return g?W(d[0],b,e):new X(d[0])}}d=ib(d,this.resolution,b,e,h);return g?d:new X(d)};function kb(a,b,c,d,e,g,f){a=Y(this,a,b,c,d,e,g,f);return this.db?a.then(function(h){return e?h:h&&h.length?e?W(h,c,d):new X(h):e?[]:new X([])}):a&&a.length?e?W(a,c,d):new X(a):e?[]:new X([])}
function lb(a,b,c,d,e,g,f){var h=[];if(a){d=Math.min(a.length,d);for(var k=0,l=0,m;k<d;k++)if(m=a[k])if(g&&m&&f&&(m.length<=g?(g-=m.length,m=null):(m=m.slice(g),g=0)),m&&(h[k]=m,f&&(l+=m.length,l>=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.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;d<c.length;d++){if(e=c[d])if(2>e.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.ctx,a);b||this.reg.delete(a)}this.db&&(this.commit_task.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,g;d<a.length;d++){if((e=a[d])&&e.length)if(g=e.indexOf(b),0<=g){1<e.length?(e.splice(g,1),c++):delete a[d];break}else c++}else for(d=x(a),e=d.next();!e.done;e=d.next())g=e.value,e=g[0],(g=mb(g[1],b))?c+=g:a.delete(e);return c};function V(a,b){if(!this)return new V(a);if(a){var c=M(a)?a:a.preset;c&&(a=Object.assign({},Xa[c],a))}else a={};c=a.context||{};var d=a.encode||a.encoder||Ha;this.encoder=d.encode?d:"object"===typeof d?new Q(d):{encode:d};var 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)&&(this.keystore=e);this.map=e?new T(e):new Map;this.ctx=
e?new T(e):new Map;this.reg=b||(this.fastupdate?e?new T(e):new Map:e?new U(e):new Set);this.ba=c.resolution||1;this.rtl=d.rtl||a.rtl||!1;this.cache=(e=a.cache||null)&&new R(e);this.resolve=!1!==a.resolve;if(e=a.db)this.db=e.mount(this);this.ea=!1!==a.commit;this.commit_task=[];this.commit_timer=null}u=V.prototype;u.mount=function(a){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return a.mount(this)};
u.clear=U.prototype.clear=function(){this.index=L();this.h=[];this.size=0};u.values=U.prototype.values=function Ta(){var b,c=this,d,e,h;return qa(Ta,function(f){switch(f.h){case 1:b=0;case 2:if(!(b<c.h.length)){f.h=0;break}d=x(c.h[b].values());e=d.next();case 5:if(e.done){b++;f.h=2;break}h=e.value;return F(f,h,6);case 6:e=d.next(),f.h=5}})};
u.keys=U.prototype.keys=function Ua(){var b,c=this,d,e,h;return qa(Ua,function(f){switch(f.h){case 1:b=0;case 2:if(!(b<c.h.length)){f.h=0;break}d=x(c.h[b].keys());e=d.next();case 5:if(e.done){b++;f.h=2;break}h=e.value;return F(f,h,6);case 6:e=d.next(),f.h=5}})};
u.entries=U.prototype.entries=function Va(){var b,c=this,d,e,h;return qa(Va,function(f){switch(f.h){case 1:b=0;case 2:if(!(b<c.h.length)){f.h=0;break}d=x(c.h[b].entries());e=d.next();case 5:if(e.done){b++;f.h=2;break}h=e.value;return F(f,h,6);case 6:e=d.next(),f.h=5}})};function Sa(a){var b=Math.pow(2,this.A)-1;if("number"==typeof a)return a&b;for(var c=0,d=this.A+1,e=0;e<a.length;e++)c=(c*d^a.charCodeAt(e))&b;return 32===this.A?c+Math.pow(2,31):c}
function Ra(){throw Error("The keystore is limited to 32 for EcmaScript5");};function Wa(a,b,c,d,e,h,f,g){(d=a(c?c+"."+d:d,JSON.stringify(f)))&&d.then?d.then(function(){b.export(a,b,c,e,h+1,g)}):b.export(a,b,c,e,h+1,g)};var Xa={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 Ya(a){Za.call(a,"add");Za.call(a,"append");Za.call(a,"search");Za.call(a,"update");Za.call(a,"remove")}function Za(a){this[a+"Async"]=function(){var b=arguments,c=b[b.length-1];if("function"===typeof c){var d=c;delete b[b.length-1]}b=this[a].apply(this,b);d&&(b.then?b.then(d):d(b));return b}};L();V.prototype.add=function(a,b,c,d){if(b&&(a||0===a)){if(!d&&!c&&this.reg.has(a))return this.update(a,b);b=this.encoder.encode(b);if(d=b.length){for(var e=L(),h=L(),f=this.depth,g=this.resolution,k=0;k<d;k++){var l=b[this.rtl?d-1-k:k],m=l.length;if(m&&(f||!h[l])){var n=this.score?this.score(b,l,k,null,0):$a(g,d,k),p="";switch(this.tokenize){case "full":if(2<m){for(n=0;n<m;n++)for(var q=m;q>n;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;0<q;q--)p=l[q]+p,r=this.score?this.score(b,l,k,p,q):$a(g,d,k,m,q),ab(this,h,p,r,a,c);p=""}case "forward":if(1<m){for(q=0;q<m;q++)p+=l[q],ab(this,h,p,n,a,c);break}default:if(ab(this,h,l,n,a,c),f&&1<d&&k<d-1)for(m=L(),p=this.aa,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),v=this.bidirectional&&l>n;ab(this,e,v?n:l,y,a,c,v?l:n)}}}}this.fastupdate||this.reg.add(a)}else b=""}this.db&&
(b||this.commit_task.push({del:a}),this.da&&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]=L()),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 S(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&&1<a?b+(d||0)<=a?c+(e||0):(a-1)/(b+(d||0))*(c+(e||0))+1|0:0};function W(a,b,c,d){if(1===a.length)return a=a[0],a=c||a.length>b?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<a.length;h++)if((f=a[h])&&(g=f.length)){if(c){if(c>=g){c-=g;continue}c<g&&(f=b?f.slice(c,c+b):f.slice(c),g=f.length,c=0)}if(e.length)g>b&&(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=1<e.length?[].concat.apply([],e):e[0];return d?cb(e):e}
function cb(a){for(var b=0;b<a.length;b++)a[b]={score:b,id:a[b]};return a};X.prototype.or=function(){var a=this,b=arguments,c=b[0];if(c.then)return c.then(function(){return a.or.apply(a,b)});if(c[0]&&c[0].index)return this.or.apply(this,c);var d=[];c=[];for(var e=0,h=0,f,g,k=0,l=void 0;k<b.length;k++)if(l=b[k]){var m=void 0;if(l.constructor===X)m=l.result;else if(l.constructor===Array)m=l;else if(l.index)l.resolve=!1,m=l.index.search(l).result;else if(l.and)m=this.and(l.and);else if(l.xor)m=this.xor(l.xor);else if(l.not)m=this.not(l.not);else{e=l.limit||0;h=l.offset||0;
f=l.enrich;g=l.resolve;continue}d[k]=m;m.then&&c.push(m)}if(c.length)return Promise.all(c).then(function(){a.result.length&&(d=[a.result].concat(d));a.result=db(d,e,h,f,g,a.K);return g?a.result:a});this.result.length&&(d=[this.result].concat(d));this.result=db(d,e,h,f,g,a.K);return g?this.result:this};
function db(a,b,c,d,e,h){if(!a.length)return a;"object"===typeof b&&(c=b.offset||0,d=b.enrich||!1,b=b.limit||0);if(2>a.length)return e?W(a[0],b,c,d):a[0];d=[];for(var f=0,g=L(),k=ya(a),l=0,m;l<k;l++)for(var n=0;n<a.length;n++)if(m=a[n])if(m=m[l])for(var p=0,q;p<m.length;p++)if(q=m[p],!g[q])if(g[q]=1,c)c--;else{if(e)d.push(q);else{var r=l+(n?h:0);d[r]||(d[r]=[]);d[r].push(q)}if(b&&++f===b)return d}return d};X.prototype.and=function(){if(this.result.length){var a=this,b=arguments,c=b[0];if(c.then)return c.then(function(){return a.and.apply(a,b)});if(c[0]&&c[0].index)return this.and.apply(this,c);var d=[];c=[];for(var e=0,h=0,f,g=0,k=void 0;g<b.length;g++)if(k=b[g]){var l=void 0;if(k.constructor===X)l=k.result;else if(k.constructor===Array)l=k;else if(k.index)k.resolve=!1,l=k.index.search(k).result;else if(k.or)l=this.or(k.or);else if(k.xor)l=this.xor(k.xor);else if(k.not)l=this.not(k.not);else{e=k.limit||
0;h=k.offset||0;f=k.resolve;continue}d[g]=l;l.then&&c.push(l)}if(c.length)return Promise.all(c).then(function(){d=[a.result].concat(d);a.result=eb(d,e,h,f,a.K);return f?a.result:a});d=[this.result].concat(d);this.result=eb(d,e,h,f,a.K);return f?this.result:this}return this};
function eb(a,b,c,d,e){if(2>a.length)return[];var h=[],f=0,g=L(),k=ya(a);if(!k)return h;for(var l=0,m;l<a.length;l++){m=a[l];if(!m||!m.length)return[];for(var n=L(),p=0,q=l===a.length-1,r=0,y;r<k;r++)if(y=m[r])for(var v=0,t,w;v<y.length;v++)if(t=y[v],!l)n[t]=r+1+(l?e:0),p=1;else if(q){if(w=g[t])if(p=1,c)c--;else if(d?h.push(t):(w--,r<w&&(w=r),h[w]||(h[w]=[]),h[w].push(t)),b&&++f===b)return h}else if(w=g[t])r+1<w&&(w=r+1),n[t]=w,p=1;if(!p)return[];g=n}return h};X.prototype.xor=function(){var a=this,b=arguments,c=b[0];if(c.then)return c.then(function(){return a.xor.apply(a,b)});if(c[0]&&c[0].index)return this.xor.apply(this,c);var d=[];c=[];for(var e=0,h=0,f,g,k=0,l=void 0;k<b.length;k++)if(l=b[k]){var m=void 0;if(l.constructor===X)m=l.result;else if(l.constructor===Array)m=l;else if(l.index)l.resolve=!1,m=l.index.search(l).result;else if(l.or)m=this.or(l.or);else if(l.and)m=this.and(l.and);else if(l.not)m=this.not(l.not);else{e=l.limit||0;h=l.offset||0;
f=l.enrich;g=l.resolve;continue}d[k]=m;m.then&&c.push(m)}if(c.length)return Promise.all(c).then(function(){a.result.length&&(d=[a.result].concat(d));a.result=fb(d,e,h,f,!g,a.K);return g?a.result:a});this.result.length&&(d=[this.result].concat(d));this.result=fb(d,e,h,f,!g,a.K);return g?this.result:this};
function fb(a,b,c,d,e,h){if(!a.length)return a;if(2>a.length)return e?W(a[0],b,c,d):a[0];b=[];c=L();d=0;for(var f;d<a.length;d++)if(f=a[d])for(var g=0,k;g<f.length;g++)if(k=f[g])for(var l=0,m;l<k.length;l++)m=k[l],c[m]?c[m]++:c[m]=1;for(d=0;d<a.length;d++)if(f=a[d])for(g=0;g<f.length;g++)if(k=f[g])for(l=0;l<k.length;l++)if(m=k[l],1===c[m])if(e)b.push(m);else{var n=g+(d?h:0);b[n]||(b[n]=[]);b[n].push(m)}return b};X.prototype.not=function(){var a=this,b=arguments,c=b[0];if(c.then)return c.then(function(){return a.not.apply(a,b)});if(c[0]&&c[0].index)return this.not.apply(this,c);var d=[];c=[];for(var e,h=0,f=void 0;h<b.length;h++)if(f=b[h]){var g=void 0;if(f.constructor===X)g=f.result;else if(f.constructor===Array)g=f;else if(f.index)f.resolve=!1,g=f.index.search(f).result;else if(f.or)g=this.or(f.or);else if(f.and)g=this.and(f.and);else if(f.xor)g=this.xor(f.xor);else{e=f.resolve;continue}d[h]=g;g.then&&c.push(g)}if(c.length)return Promise.all(c).then(function(){a.result=
gb.call(a,d,e);return e?a.result:a});this.result=gb.call(this,d,e);return e?this.result:this};function gb(a,b){if(!a.length)return this.result;var c=[];a=new Set(a.flat().flat());for(var d=0,e;d<this.result.length;d++)if(e=this.result[d])for(var h=0,f;h<e.length;h++)f=e[h],a.has(f)||(b?c.push(f):(c[d]||(c[d]=[]),c[d].push(f)));return c};function X(a){if(!this)return new X(a);if(a&&a.index)return a.resolve=!1,this.index=a.index,a.index.search(a);if(a.constructor===X)return a;this.index=null;this.result=a||[];this.K=0}X.prototype.limit=function(a){if(this.result.length)for(var b=[],c=0,d=0,e;d<this.result.length;d++)if(e=this.result[d],e.length+c<a)b[d]=e,c+=e.length;else{b[d]=e.slice(0,a-c);this.result=b;break}return this};
X.prototype.offset=function(a){if(this.result.length){for(var b=[],c=0,d=0,e;d<this.result.length;d++)e=this.result[d],e.length+c<a?c+=e.length:(b[d]=e.slice(a-c),c=a);this.result=b}return this};X.prototype.boost=function(a){this.K+=a;return this};X.prototype.resolve=function(a,b,c){hb=1;var d=this.result;this.result=this.index=null;return d.length?("object"===typeof a&&(c=a.enrich,b=a.offset,a=a.limit),W(d,a||100,b,c)):d};function ib(a,b,c,d,e){var h=a.length,f=[],g;var k=L();for(var l=0,m=void 0,n;l<b;l++)for(var p=0;p<h;p++)if(n=a[p],l<n.length&&(m=n[l]))for(var q=0;q<m.length;q++)n=m[q],(g=k[n])?k[n]++:(g=0,k[n]=1),g=f[g]||(f[g]=[]),g.push(n);if(a=f.length)if(e){if(1<f.length){e=f;h=[];f=L();k=e.length;for(m=0;m<k;m++)for(a=e[m],l=a.length,p=0;p<l;p++)if(b=a[p],!f[b])if(f[b]=1,d)d--;else if(h.push(b),h.length===c)break;c=h}else c=f[0];f=c}else{if(a<h)return[];f=f[a-1];if(f.length>c||d)f=f.slice(d,c+d)}return f}
function jb(a,b){for(var c=L(),d=[],e=0,h;e<b.length;e++){h=b[e];for(var f=0;f<h.length;f++)c[h[f]]=1}for(b=0;b<a.length;b++)e=a[b],1===c[e]&&(d.push(e),c[e]=2);return d};var hb=1;
V.prototype.search=function(a,b,c){c||(!b&&N(a)?(c=a,a=""):N(b)&&(c=b,b=0));var d=[],e=0,h;if(c){a=c.query||a;b=c.limit||b;e=c.offset||0;var f=c.context;var g=c.suggest;(h=hb&&!1!==c.resolve)||(hb=0);var k=h&&c.enrich;var l=this.db&&c.tag}else h=this.resolve||hb;a=this.encoder.encode(a);var m=a.length;b||!h||(b=100);if(1===m)return kb.call(this,a[0],"",b,e,h,k,l);f=this.depth&&!1!==f;if(2===m&&f&&!g)return kb.call(this,a[0],a[1],b,e,h,k,l);var n=c=0;if(1<m){for(var p=L(),q=[],r=0,y=void 0;r<m;r++)if((y=
a[r])&&!p[y]){if(g||this.db||Y(this,y))q.push(y),p[y]=1;else return h?d:new X(d);y=y.length;c=Math.max(c,y);n=n?Math.min(n,y):y}a=q;m=a.length}if(!m)return h?d:new X(d);var v=0;if(1===m)return kb.call(this,a[0],"",b,e,h,k,l);if(2===m&&f&&!g)return kb.call(this,a[0],a[1],b,e,h,k,l);if(1<m)if(f){var t=a[0];v=1}else 9<c&&3<c/n&&a.sort(va);if(this.db){if(this.db.search&&(f=this.db.search(this,a,b,e,g,h,k,l),!1!==f))return f;var w=this;return function(){var A,C,D;return H(function(E){switch(E.h){case 1:C=
A=void 0;case 2:if(!(v<m)){E.h=4;break}C=a[v];return t?F(E,Y(w,C,t,0,0,!1,!1),8):F(E,Y(w,C,"",0,0,!1,!1),7);case 7:A=E.F;A=lb(A,d,g,w.resolution);E.h=6;break;case 8:A=E.F,A=lb(A,d,g,w.aa),g&&!1===A&&d.length||(t=C);case 6:if(A)return E.return(A);if(g&&v===m-1){D=d.length;if(!D){if(t){t="";v=-1;E.h=3;break}return E.return(d)}if(1===D)return E.return(h?W(d[0],b,e):new X(d[0]))}case 3:v++;E.h=2;break;case 4:return E.return(h?ib(d,w.resolution,b,e,g):new X(d[0]))}})}()}for(k=f=void 0;v<m;v++){k=a[v];
t?(f=Y(this,k,t,0,0,!1,!1),f=lb(f,d,g,this.aa),g&&!1===f&&d.length||(t=k)):(f=Y(this,k,"",0,0,!1,!1),f=lb(f,d,g,this.resolution));if(f)return f;if(g&&v===m-1){f=d.length;if(!f){if(t){t="";v=-1;continue}return d}if(1===f)return h?W(d[0],b,e):new X(d[0])}}d=ib(d,this.resolution,b,e,g);return h?d:new X(d)};function kb(a,b,c,d,e,h,f){a=Y(this,a,b,c,d,e,h,f);return this.db?a.then(function(g){return e?g:g&&g.length?e?W(g,c,d):new X(g):e?[]:new X([])}):a&&a.length?e?W(a,c,d):new X(a):e?[]:new X([])}
function lb(a,b,c,d){var e=[];if(a){d=Math.min(a.length,d);for(var h=0,f=void 0;h<d;h++)(f=a[h])&&f&&(e[h]=f);if(e.length){b.push(e);return}}return!c&&e}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;d<c.length;d++){if(e=c[d])if(2>e.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.commit_task.push({del:a}),this.da&&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;d<a.length;d++){if((e=a[d])&&e.length)if(h=e.indexOf(b),0<=h){1<e.length?(e.splice(h,1),c++):delete a[d];break}else c++}else for(d=x(a),e=d.next();!e.done;e=d.next())h=e.value,e=h[0],(h=mb(h[1],b))?c+=h:a.delete(e);return c};function V(a,b){if(!this)return new V(a);if(a){var c=M(a)?a:a.preset;c&&(a=Object.assign({},Xa[c],a))}else a={};c=a.context||{};var d=M(a.encoder)?Pa[a.encoder]:a.encode||a.encoder||Ha;this.encoder=d.encode?d:"object"===typeof d?new Q(d):{encode:d};var 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)&&(this.keystore=e);this.map=
e?new T(e):new Map;this.ctx=e?new T(e):new Map;this.reg=b||(this.fastupdate?e?new T(e):new Map:e?new U(e):new Set);this.aa=c.resolution||1;this.rtl=d.rtl||a.rtl||!1;this.cache=(e=a.cache||null)&&new R(e);this.resolve=!1!==a.resolve;if(e=a.db)this.db=this.mount(e);this.da=!1!==a.commit;this.commit_task=[];this.commit_timer=null}u=V.prototype;u.mount=function(a){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return a.mount(this)};
u.commit=function(a,b){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return this.db.commit(this,a,b)};u.destroy=function(){this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null);return this.db.destroy()};function bb(a){a.commit_timer||(a.commit_timer=setTimeout(function(){a.commit_timer=null;a.db.commit(a,void 0,void 0)},0))}
u.clear=function(){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}]);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.reg.has(a)};u.update=function(a,b){var c=this,d=this.remove(a);return d&&d.then?d.then(function(){return c.add(a,b)}):this.add(a,b)};
function nb(a){var b=0;if(a.constructor===Array)for(var c=0,d=void 0;c<a.length;c++)(d=a[c])&&(b+=d.length);else for(c=x(a),d=c.next();!d.done;d=c.next()){var e=d.value;d=e[0];(e=nb(e[1]))?b+=e:a.delete(d)}return b}u.cleanup=function(){if(!this.fastupdate)return this;nb(this.map);this.depth&&nb(this.ctx);return this};u.searchCache=Ga;
u.export=function(a,b,c,d,e,g){var f=!0;"undefined"===typeof g&&(f=new Promise(function(n){g=n}));switch(e||(e=0)){case 0:var h="reg";if(this.fastupdate){var k=L();for(var l=x(this.reg.keys()),m=l.next();!m.done;m=l.next())k[m.value]=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 c&&g&&g();return}Wa(a,b||this,c,h,d,e,k,g);return f};
u.export=function(a,b,c,d,e,h){var f=!0;"undefined"===typeof h&&(f=new Promise(function(n){h=n}));switch(e||(e=0)){case 0:var g="reg";if(this.fastupdate){var k=L();for(var l=x(this.reg.keys()),m=l.next();!m.done;m=l.next())k[m.value]=1}else k=this.reg;break;case 1:g="cfg";k={doc:0,opt:this.h?1:0};break;case 2:g="map";k=this.map;break;case 3:g="ctx";k=this.ctx;break;default:"undefined"===typeof c&&h&&h();return}Wa(a,b||this,c,g,d,e,k,h);return f};
u.import=function(a,b){if(b)switch(M(b)&&(b=JSON.parse(b)),a){case "cfg":this.h=!!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){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};Ya(V.prototype);function ob(a){var b,c,d,e,g,f,h,k;return H(function(l){a=a.data;b=self._index;c=a.args;d=a.task;switch(d){case "init":e=a.options||{};(g=e.config)&&(e=await import(g));(f=a.factory)?(Function("return "+f)()(self),self._index=new self.FlexSearch.Index(e),delete self.FlexSearch):self._index=new V(e);postMessage({id:a.id});break;default:h=a.id,k=b[d].apply(b,c),postMessage("search"===d?{id:h,msg:k}:{id:h})}l.h=0})};var pb=0;
function qb(a){if(!this)return new qb(a);a||(a={});var b="undefined"!==typeof self&&(self||window)._factory;b&&(b=b.toString());var c="undefined"===typeof window,d=this;(function(){function e(f){f=f.data||f;var h=f.id,k=h&&d.$[h];k&&(k(f.msg),delete d.$[h])}var g=this;return H(function(f){if(1==f.h)return F(f,rb(b,c,a.worker),2);g.worker=f.D;g.$=L();if(!g.worker)return f.return();c?g.worker.on("message",e):g.worker.onmessage=e;if(a.config)return delete a.db,f.return(new Promise(function(h){d.$[++pb]=function(){h(d)};
d.worker.postMessage({id:pb,task:"init",factory:b,options:a})}));g.worker.postMessage({task:"init",factory:b,options:a});f.h=0})}).call(this)}sb("add");sb("append");sb("search");sb("update");sb("remove");function sb(a){qb.prototype[a]=qb.prototype[a+"Async"]=function(){var b=this,c=[].slice.call(arguments),d=c[c.length-1];if("function"===typeof d){var e=d;c.splice(c.length-1,1)}d=new Promise(function(g){b.$[++pb]=g;b.worker.postMessage({task:a,id:pb,args:c})});return e?(d.then(e),this):d}}
function rb(a,b,c){var d;return H(function(e){d=b?"undefined"!==typeof module?new (require("worker_threads")["Worker"])(__dirname + "/node/node.js"):new ((await import("worker_threads"))["Worker"])((1,eval)("import.meta.dirname") + "/node/node.mjs"):a?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+ob.toString()],{type:"text/javascript"}))):new window.Worker(M(c)?c:"worker/worker.js",{type:"module"});return e.return(d)})};Z.prototype.add=function(a,b,c){N(a)&&(b=a,a=xa(b,this.key));if(b&&(a||0===a)){if(!c&&this.reg.has(a))return this.update(a,b);for(var d=0,e;d<this.field.length;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.R;if(!f||f(b))e.constructor===String?e=[""+e]:M(e)&&(e=[e]),tb(b,e,this.T,0,g,a,e[0],c)}}if(this.tag)for(d=0;d<this.L.length;d++){f=this.L[d];g=this.tag.get(this.aa[d]);e=L();if("function"===typeof f){if(f=f(b),!f)continue}else{var h=
f.R;if(h&&!h(b))continue;f.constructor===String&&(f=""+f);f=xa(b,f)}if(g&&f){M(f)&&(f=[f]);h=0;for(var k,l=void 0;h<f.length;h++)if(k=f[h],!e[k]){e[k]=1;var m;(m=g.get(k))?l=m:g.set(k,l=[]);if(!c||!l.includes(a)){if(l.length===Math.pow(2,31)-1){m=new S(l);if(this.fastupdate)for(var n=x(this.reg.values()),p=n.next();!p.done;p=n.next())p=p.value,p.includes(l)&&(p[p.indexOf(l)]=m);g.set(k,l=m)}l.push(a);this.fastupdate&&((k=this.reg.get(a))?k.push(l):this.reg.set(a,[l]))}}}}if(this.store&&(!c||!this.store.has(a))){if(this.H){var q=
L();for(c=0;c<this.H.length;c++)if(d=this.H[c],g=d.R,!g||g(b)){g=void 0;if("function"===typeof d){g=d(b);if(!g)continue;d=[d.ma]}else if(M(d)||d.constructor===String){q[d]=b[d];continue}ub(b,q,d,0,d[0],g)}}this.store.set(a,q||b)}}return this};function ub(a,b,c,d,e,g){a=a[e];if(d===c.length-1)b[e]=g||a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)ub(a,b,c,d,e);else b=b[e]||(b[e]=L()),e=c[++d],ub(a,b,c,d,e)}
function tb(a,b,c,d,e,g,f,h){if(a=a[f])if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(g,a[b],!0,!0);return}a=a.join(" ")}e.add(g,a,h,!0)}else if(a.constructor===Array)for(f=0;f<a.length;f++)tb(a,b,c,d,e,g,f,h);else f=b[++d],tb(a,b,c,d,e,g,f,h);else e.db&&e.remove(g)};Z.prototype.search=function(a,b,c,d){c||(!b&&N(a)?(c=a,a=""):N(b)&&(c=b,b=0));var e=[],g=[],f=0;if(c){c.constructor===Array&&(c={index:c});a=c.query||a;var h=c.pluck;var k=c.merge;var l=h||c.field||c.index;var m=this.tag&&c.tag;var n=this.store&&c.enrich;var p=c.suggest;b=c.limit||b;var q=c.offset||0;b||(b=100);if(m&&(!this.db||!d)){m.constructor!==Array&&(m=[m]);for(var r=[],y=0,v=void 0;y<m.length;y++)if(v=m[y],v.field&&v.tag){var t=v.tag;if(t.constructor===Array)for(var w=0;w<t.length;w++)r.push(v.field,
t[w]);else r.push(v.field,t)}else{t=Object.keys(v);w=0;for(var A=void 0,C=void 0;w<t.length;w++)if(A=t[w],C=v[A],C.constructor===Array)for(var D=0;D<C.length;D++)r.push(A,C[D]);else r.push(A,C)}m=r;if(!a){g=[];if(r.length)for(h=0;h<r.length;h+=2){p=void 0;if(this.db){p=this.index.get(r[h]);if(!p)continue;g.push(p=p.db.tag(r[h+1],b,q,n))}else p=vb.call(this,r[h],r[h+1],b,q,n);e.push({field:r[h],tag:r[h+1],result:p})}return g.length?Promise.all(g).then(function(O){for(var P=0;P<O.length;P++)e[P].result=
u.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 h=e.next();!h.done;h=e.next()){var f=h.value;h=f[0];f=f[1];for(var g="",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+"]";g+=(g?",":"")+m}g='["'+h+'",['+
g+"]]";d+=(d?",":"")+g}d="index.map=new Map(["+d+"]);";e="";h=x(this.ctx.entries());for(f=h.next();!f.done;f=h.next())for(g=f.value,f=g[0],g=x(g[1].entries()),k=g.next();!k.done;k=g.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};Ya(V.prototype);function ob(a){var b,c,d,e,h,f,g,k;return H(function(l){a=a.data;b=self._index;c=a.args;d=a.task;switch(d){case "init":e=a.options||{};(h=e.config)&&(e=await import(h));(f=a.factory)?(Function("return "+f)()(self),self._index=new self.FlexSearch.Index(e),delete self.FlexSearch):self._index=new V(e);postMessage({id:a.id});break;default:g=a.id,k=b[d].apply(b,c),postMessage("search"===d?{id:g,msg:k}:{id:g})}l.h=0})};var pb=0;
function qb(a){function b(h){function f(g){g=g.data||g;var k=g.id,l=k&&e.h[k];l&&(l(g.msg),delete e.h[k])}this.worker=h||rb(c,d,a.worker);if(this.worker.then)return this.worker.then(b);this.h=L();if(this.worker){d?this.worker.on("message",f):this.worker.onmessage=f;if(a.config)return new Promise(function(g){e.h[++pb]=function(){g(e)};e.worker.postMessage({id:pb,task:"init",factory:c,options:a})});this.worker.postMessage({task:"init",factory:c,options:a});return this.worker}}a=void 0===a?{}:a;if(!this)return new qb(a);
var c="undefined"!==typeof self?self._factory:"undefined"!==typeof window?window._factory:null;c&&(c=c.toString());var d="undefined"===typeof window,e=this;this.worker=b.call(this)}sb("add");sb("append");sb("search");sb("update");sb("remove");
function sb(a){qb.prototype[a]=qb.prototype[a+"Async"]=function(){var b=this,c=arguments,d,e,h,f,g;return H(function(k){d=b;e=[].slice.call(c);h=e[e.length-1];"function"===typeof h&&(f=h,e.splice(e.length-1,1));g=new Promise(function(l){d.h[++pb]=l;d.worker.postMessage({task:a,id:pb,args:e})});return f?(g.then(f),k.return(b)):k.return(g)})}}
function rb(a,b,c){return b?"undefined"!==typeof module?new (require("worker_threads")["Worker"])(__dirname + "/node/node.js"):import("worker_threads").then(function(worker){ return new worker["Worker"]((1,eval)("import.meta.dirname") + "/node/node.mjs"); }):a?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+ob.toString()],{type:"text/javascript"}))):new window.Worker(M(c)?c:"worker/worker.js",{type:"module"})};Z.prototype.add=function(a,b,c){N(a)&&(b=a,a=xa(b,this.key));if(b&&(a||0===a)){if(!c&&this.reg.has(a))return this.update(a,b);for(var d=0,e;d<this.field.length;d++){e=this.M[d];var h=this.index.get(this.field[d]);if("function"===typeof e)(e=e(b))&&h.add(a,e,!1,!0);else{var f=e.R;if(!f||f(b))e.constructor===String?e=[""+e]:M(e)&&(e=[e]),tb(b,e,this.T,0,h,a,e[0],c)}}if(this.tag)for(d=0;d<this.L.length;d++){f=this.L[d];h=this.tag.get(this.$[d]);e=L();if("function"===typeof f){if(f=f(b),!f)continue}else{var g=
f.R;if(g&&!g(b))continue;f.constructor===String&&(f=""+f);f=xa(b,f)}if(h&&f){M(f)&&(f=[f]);g=0;for(var k,l=void 0;g<f.length;g++)if(k=f[g],!e[k]){e[k]=1;var m;(m=h.get(k))?l=m:h.set(k,l=[]);if(!c||!l.includes(a)){if(l.length===Math.pow(2,31)-1){m=new S(l);if(this.fastupdate)for(var n=x(this.reg.values()),p=n.next();!p.done;p=n.next())p=p.value,p.includes(l)&&(p[p.indexOf(l)]=m);h.set(k,l=m)}l.push(a);this.fastupdate&&((k=this.reg.get(a))?k.push(l):this.reg.set(a,[l]))}}}}if(this.store&&(!c||!this.store.has(a))){if(this.H){var q=
L();for(c=0;c<this.H.length;c++)if(d=this.H[c],h=d.R,!h||h(b)){h=void 0;if("function"===typeof d){h=d(b);if(!h)continue;d=[d.la]}else if(M(d)||d.constructor===String){q[d]=b[d];continue}ub(b,q,d,0,d[0],h)}}this.store.set(a,q||b)}}return this};function ub(a,b,c,d,e,h){a=a[e];if(d===c.length-1)b[e]=h||a;else if(a)if(a.constructor===Array)for(b=b[e]=Array(a.length),e=0;e<a.length;e++)ub(a,b,c,d,e);else b=b[e]||(b[e]=L()),e=c[++d],ub(a,b,c,d,e)}
function tb(a,b,c,d,e,h,f,g){if(a=a[f])if(d===b.length-1){if(a.constructor===Array){if(c[d]){for(b=0;b<a.length;b++)e.add(h,a[b],!0,!0);return}a=a.join(" ")}e.add(h,a,g,!0)}else if(a.constructor===Array)for(f=0;f<a.length;f++)tb(a,b,c,d,e,h,f,g);else f=b[++d],tb(a,b,c,d,e,h,f,g);else e.db&&e.remove(h)};Z.prototype.search=function(a,b,c,d){c||(!b&&N(a)?(c=a,a=""):N(b)&&(c=b,b=0));var e=[],h=[],f=0;if(c){c.constructor===Array&&(c={index:c});a=c.query||a;var g=c.pluck;var k=c.merge;var l=g||c.field||c.index;var m=this.tag&&c.tag;var n=this.store&&c.enrich;var p=c.suggest;b=c.limit||b;var q=c.offset||0;b||(b=100);if(m&&(!this.db||!d)){m.constructor!==Array&&(m=[m]);for(var r=[],y=0,v=void 0;y<m.length;y++)if(v=m[y],v.field&&v.tag){var t=v.tag;if(t.constructor===Array)for(var w=0;w<t.length;w++)r.push(v.field,
t[w]);else r.push(v.field,t)}else{t=Object.keys(v);w=0;for(var A=void 0,C=void 0;w<t.length;w++)if(A=t[w],C=v[A],C.constructor===Array)for(var D=0;D<C.length;D++)r.push(A,C[D]);else r.push(A,C)}m=r;if(!a){h=[];if(r.length)for(g=0;g<r.length;g+=2){p=void 0;if(this.db){p=this.index.get(r[g]);if(!p)continue;h.push(p=p.db.tag(r[g+1],b,q,n))}else p=vb.call(this,r[g],r[g+1],b,q,n);e.push({field:r[g],tag:r[g+1],result:p})}return h.length?Promise.all(h).then(function(O){for(var P=0;P<O.length;P++)e[P].result=
O[P];return e}):e}}M(l)&&(l=[l])}l||(l=this.field);r=!d&&(this.worker||this.db)&&[];y=0;for(w=v=t=void 0;y<l.length;y++)if(v=l[y],!this.db||!this.tag||this.M[y]){t=void 0;M(v)||(t=v,v=t.field,a=t.query||a,b=t.limit||b,p=t.suggest||p);if(d)t=d[y];else{w=t||c;t=this.index.get(v);if(m){if(this.db){w.tag=m;var E=t.db.support_tag_search;w.field=l}E||(w.enrich=!1)}if(r){r[y]=t.searchAsync(a,b,w);w&&n&&(w.enrich=n);continue}else t=t.search(a,b,w),w&&n&&(w.enrich=n)}w=t&&t.length;if(m&&w){A=[];C=0;if(this.db&&
d){if(!E)for(D=l.length;D<d.length;D++){var J=d[D];if(J&&J.length)C++,A.push(J);else if(!p)return e}}else{D=0;for(var Hb=J=void 0;D<m.length;D+=2){J=this.tag.get(m[D]);if(!J)if(p)continue;else return e;if(Hb=(J=J&&J.get(m[D+1]))&&J.length)C++,A.push(J);else if(!p)return e}}if(C){t=jb(t,A);w=t.length;if(!w&&!p)return e;C--}}if(w)g[f]=v,e.push(t),f++;else if(1===l.length)return e}if(r){if(this.db&&m&&m.length&&!E)for(n=0;n<m.length;n+=2){g=this.index.get(m[n]);if(!g)if(p)continue;else return e;r.push(g.db.tag(m[n+
1],b,q,!1))}var Ib=this;return Promise.all(r).then(function(O){return O.length?Ib.search(a,b,c,O):O})}if(!f)return e;if(h&&(!n||!this.store))return e[0];r=[];q=0;for(p=void 0;q<g.length;q++){p=e[q];n&&p.length&&!p[0].doc&&(this.db?r.push(p=this.index.get(this.field[0]).db.enrich(p)):p.length&&(p=wb.call(this,p)));if(h)return p;e[q]={field:g[q],result:p}}return n&&this.db&&r.length?Promise.all(r).then(function(O){for(var P=0;P<O.length;P++)e[P].result=O[P];return k?xb(e,b):e}):k?xb(e,b):e};
function xb(a,b){for(var c=[],d=L(),e=0,g,f;e<a.length;e++){g=a[e];f=g.result;for(var h=0,k,l,m;h<f.length;h++)if(l=f[h],k=l.id,m=d[k])m.push(g.field);else{if(c.length===b)return c;l.field=d[k]=[g.field];c.push(l)}}return c}function vb(a,b,c,d,e){a=this.tag.get(a);if(!a)return[];if((b=(a=a&&a.get(b))&&a.length-d)&&0<b){if(b>c||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<a.length;c++)d=a[c],b[c]={id:d,doc:this.store.get(d)};return b};function Z(a){if(!this)return new Z(a);var b=a.document||a.doc||a,c,d;this.M=[];this.field=[];this.T=[];this.key=(c=b.key||b.id)&&yb(c,this.T)||"id";(d=a.keystore||0)&&(this.keystore=d);this.reg=(this.fastupdate=!!a.fastupdate)?d?new T(d):new Map:d?new U(d):new Set;this.H=(c=b.store||null)&&!0!==c&&[];this.store=c&&(d?new T(d):new Map);this.cache=(c=a.cache||null)&&new R(c);a.cache=!1;this.worker=a.worker;c=new Map;d=b.index||b.field||b;M(d)&&(d=[d]);for(var e=0,g,f=void 0;e<d.length;e++){g=d[e];
M(g)||(f=g,g=g.field);f=N(f)?Object.assign({},a,f):a;if(this.worker){var h=new qb(f);c.set(g,h);h.worker||(this.worker=!1)}this.worker||c.set(g,new V(f,this.reg));f.custom?this.M[e]=f.custom:(this.M[e]=yb(g,this.T),f.filter&&("string"===typeof this.M[e]&&(this.M[e]=new String(this.M[e])),this.M[e].R=f.filter));this.field[e]=g}if(this.H)for(d=b.store,M(d)&&(d=[d]),e=0;e<d.length;e++)g=d[e],f=g.field||g,g.custom?(this.H[e]=g.custom,g.custom.ma=f):(this.H[e]=yb(f,this.T),g.filter&&("string"===typeof this.H[e]&&
(this.H[e]=new String(this.H[e])),this.H[e].R=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.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.L[b]=d.custom:(this.L[b]=yb(e,this.T),d.filter&&("string"===typeof this.L[b]&&(this.L[b]=new String(this.L[b])),this.L[b].R=d.filter));this.aa[b]=e;this.tag.set(e,new Map)}a.db&&this.mount(a.db)}
u=Z.prototype;u.mount=function(a){var b=this.field;if(this.tag)for(var c=0,d;c<this.aa.length;c++){d=this.aa[c];var 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)}c=[];d={db:a.db,type:a.type,fastupdate:a.fastupdate};e=0;for(var g;e<b.length;e++){d.field=g=b[e];g=this.index.get(g);var f=new a.constructor(a.id,d);f.id=a.id;c[e]=f.mount(g);g.document=!0;e?g.bypass=!0:g.store=this.store}this.db=!0;return Promise.all(c)};
u.commit=function(a,b){var c=this,d,e,g,f;return H(function(h){if(1==h.h){d=[];e=x(c.index.values());for(g=e.next();!g.done;g=e.next())f=g.value,d.push(f.db.commit(f,a,b));return F(h,Promise.all(d),2)}c.reg.clear();h.h=0})};u.destroy=function(){for(var a=[],b=x(this.index.values()),c=b.next();!c.done;c=b.next())a.push(c.value.destroy());return Promise.all(a)};
function yb(a,b){for(var c=a.split(":"),d=0,e=0;e<c.length;e++)a=c[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){N(a)&&(a=xa(a,this.key));for(var b=x(this.index.values()),c=b.next();!c.done;c=b.next())c.value.remove(a,!0);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;for(var d=x(c),e=d.next();!e.done;e=d.next()){var g=e.value;e=g[0];g=g[1];var f=g.indexOf(a);-1<f&&(1<g.length?g.splice(f,1):c.delete(e))}}this.store&&this.store.delete(a);this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
d){if(!E)for(D=l.length;D<d.length;D++){var J=d[D];if(J&&J.length)C++,A.push(J);else if(!p)return e}}else{D=0;for(var Hb=J=void 0;D<m.length;D+=2){J=this.tag.get(m[D]);if(!J)if(p)continue;else return e;if(Hb=(J=J&&J.get(m[D+1]))&&J.length)C++,A.push(J);else if(!p)return e}}if(C){t=jb(t,A);w=t.length;if(!w&&!p)return e;C--}}if(w)h[f]=v,e.push(t),f++;else if(1===l.length)return e}if(r){if(this.db&&m&&m.length&&!E)for(n=0;n<m.length;n+=2){h=this.index.get(m[n]);if(!h)if(p)continue;else return e;r.push(h.db.tag(m[n+
1],b,q,!1))}var Ib=this;return Promise.all(r).then(function(O){return O.length?Ib.search(a,b,c,O):O})}if(!f)return e;if(g&&(!n||!this.store))return e[0];r=[];q=0;for(p=void 0;q<h.length;q++){p=e[q];n&&p.length&&!p[0].doc&&(this.db?r.push(p=this.index.get(this.field[0]).db.enrich(p)):p.length&&(p=wb.call(this,p)));if(g)return p;e[q]={field:h[q],result:p}}return n&&this.db&&r.length?Promise.all(r).then(function(O){for(var P=0;P<O.length;P++)e[P].result=O[P];return k?xb(e,b):e}):k?xb(e,b):e};
function xb(a,b){for(var c=[],d=L(),e=0,h,f;e<a.length;e++){h=a[e];f=h.result;for(var g=0,k,l,m;g<f.length;g++)if(l=f[g],k=l.id,m=d[k])m.push(h.field);else{if(c.length===b)return c;l.field=d[k]=[h.field];c.push(l)}}return c}function vb(a,b,c,d,e){a=this.tag.get(a);if(!a)return[];if((b=(a=a&&a.get(b))&&a.length-d)&&0<b){if(b>c||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<a.length;c++)d=a[c],b[c]={id:d,doc:this.store.get(d)};return b};function Z(a){if(!this)return new Z(a);var b=a.document||a.doc||a,c,d;this.M=[];this.field=[];this.T=[];this.key=(c=b.key||b.id)&&yb(c,this.T)||"id";(d=a.keystore||0)&&(this.keystore=d);this.reg=(this.fastupdate=!!a.fastupdate)?d?new T(d):new Map:d?new U(d):new Set;this.H=(c=b.store||null)&&!0!==c&&[];this.store=c&&(d?new T(d):new Map);this.cache=(c=a.cache||null)&&new R(c);a.cache=!1;this.worker=a.worker;this.index=zb.call(this,a,b);this.tag=null;if(c=b.tag)if("string"===typeof c&&(c=[c]),c.length){this.tag=
new Map;this.L=[];this.$=[];b=0;for(var e=d=void 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.L[b]=d.custom:(this.L[b]=yb(e,this.T),d.filter&&("string"===typeof this.L[b]&&(this.L[b]=new String(this.L[b])),this.L[b].R=d.filter));this.$[b]=e;this.tag.set(e,new Map)}}if(this.worker){a=[];c=x(this.index.values());for(b=c.next();!b.done;b=c.next())b=b.value,b.worker.then&&a.push(b.worker);if(a.length){var h=this;return Promise.all(a).then(function(){return h})}}else a.db&&
this.mount(a.db)}u=Z.prototype;u.mount=function(a){var b=this.field;if(this.tag)for(var c=0,d;c<this.$.length;c++){d=this.$[c];var 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)}c=[];d={db:a.db,type:a.type,fastupdate:a.fastupdate};e=0;for(var h;e<b.length;e++){d.field=h=b[e];h=this.index.get(h);var f=new a.constructor(a.id,d);f.id=a.id;c[e]=f.mount(h);h.document=!0;e?h.bypass=!0:h.store=this.store}this.db=!0;return Promise.all(c)};
u.commit=function(a,b){var c=this,d,e,h,f;return H(function(g){if(1==g.h){d=[];e=x(c.index.values());for(h=e.next();!h.done;h=e.next())f=h.value,d.push(f.db.commit(f,a,b));return F(g,Promise.all(d),2)}c.reg.clear();g.h=0})};u.destroy=function(){for(var a=[],b=x(this.index.values()),c=b.next();!c.done;c=b.next())a.push(c.value.destroy());return Promise.all(a)};
function zb(a,b){var c=new Map,d=b.index||b.field||b;M(d)&&(d=[d]);for(var e=0,h,f=void 0;e<d.length;e++){h=d[e];M(h)||(f=h,h=h.field);f=N(f)?Object.assign({},a,f):a;if(this.worker){var g=new qb(f);g.worker?c.set(h,g):this.worker=!1}this.worker||c.set(h,new V(f,this.reg));f.custom?this.M[e]=f.custom:(this.M[e]=yb(h,this.T),f.filter&&("string"===typeof this.M[e]&&(this.M[e]=new String(this.M[e])),this.M[e].R=f.filter));this.field[e]=h}if(this.H)for(a=b.store,M(a)&&(a=[a]),b=0;b<a.length;b++)d=a[b],
e=d.field||d,d.custom?(this.H[b]=d.custom,d.custom.la=e):(this.H[b]=yb(e,this.T),d.filter&&("string"===typeof this.H[b]&&(this.H[b]=new String(this.H[b])),this.H[b].R=d.filter));return c}function yb(a,b){for(var c=a.split(":"),d=0,e=0;e<c.length;e++)a=c[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2))&&(b[d]=!0),a&&(c[d++]=a);d<c.length&&(c.length=d);return 1<d?c:c[0]}u.append=function(a,b){return this.add(a,b,!0)};u.update=function(a,b){return this.remove(a).add(a,b)};
u.remove=function(a){N(a)&&(a=xa(a,this.key));for(var b=x(this.index.values()),c=b.next();!c.done;c=b.next())c.value.remove(a,!0);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;for(var d=x(c),e=d.next();!e.done;e=d.next()){var h=e.value;e=h[0];h=h[1];var f=h.indexOf(a);-1<f&&(1<h.length?h.splice(f,1):c.delete(e))}}this.store&&this.store.delete(a);this.reg.delete(a)}this.cache&&this.cache.remove(a);return this};
u.clear=function(){for(var a=x(this.index.values()),b=a.next();!b.done;b=a.next())b.value.clear();if(this.tag)for(a=x(this.tag.values()),b=a.next();!b.done;b=a.next())b.value.clear();this.store&&this.store.clear();return this};u.contain=function(a){return this.db?this.index.get(this.field[0]).db.has(a):this.reg.has(a)};u.cleanup=function(){for(var a=x(this.index.values()),b=a.next();!b.done;b=a.next())b.value.cleanup();return this};
u.get=function(a){return this.db?this.index.get(this.field[0]).db.enrich(a).then(function(b){return b[0]&&b[0].doc}):this.store.get(a)};u.set=function(a,b){this.store.set(a,b);return this};u.searchCache=Ga;
u.export=function(a,b,c,d,e,g){var f;"undefined"===typeof g&&(f=new Promise(function(k){g=k}));e||(e=0);d||(d=0);if(d<this.field.length){c=this.field[d];var h=this.index[c];b=this;h.export(a,b,e?c:"",d,e++,g)||(d++,b.export(a,b,c,d,1,g))}else{switch(e){case 1:b="tag";h=this.A;c=null;break;case 2:b="store";h=this.store;c=null;break;default:g();return}Wa(a,this,c,b,d,e,h,g)}return f};
u.import=function(a,b){if(b)switch(M(b)&&(b=JSON.parse(b)),a){case "tag":this.A=b;break;case "reg":this.fastupdate=!1;this.reg=b;a=0;for(var c;a<this.field.length;a++)c=this.index[this.field[a]],c.reg=b,c.fastupdate=!1;break;case "store":this.store=b;break;default:a=a.split("."),c=a[0],a=a[1],c&&a&&this.index[c].import(a,b)}};Ya(Z.prototype);var zb="undefined"!==typeof window&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Ab=["map","ctx","tag","reg","cfg"];
function Bb(a,b){b=void 0===b?{}:b;if(!this)return new Bb(a,b);"object"===typeof a&&(b=a=a.name);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.support_tag_search=!1;this.db=null;this.h={}}u=Bb.prototype;u.mount=function(a){if(!a.encoder)return a.mount(this);a.db=this;return this.open()};
u.open=function(){var a=this;navigator.storage&&navigator.storage.persist();return this.db||new Promise(function(b,c){var d=zb.open(a.id+(a.field?":"+a.field:""),1);d.onupgradeneeded=function(){var e=a.db=this.result;Ab.forEach(function(g){e.objectStoreNames.contains(g)||e.createObjectStore(g)})};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.destroy=function(){return zb.deleteDatabase(this.id+(this.field?":"+this.field:""))};u.clear=function(){for(var a=this.db.transaction(Ab,"readwrite"),b=0;b<Ab.length;b++)a.objectStore(Ab[b]).clear();return Cb(a)};
u.get=function(a,b,c,d,e,g){c=void 0===c?0:c;d=void 0===d?0:d;e=void 0===e?!0:e;g=void 0===g?!1:g;a=this.db.transaction(b?"ctx":"map","readonly").objectStore(b?"ctx":"map").get(b?b+":"+a:a);var f=this;return Cb(a).then(function(h){var k=[];if(!h||!h.length)return k;if(e){if(!c&&!d&&1===h.length)return h[0];for(var l=0,m=void 0;l<h.length;l++)if((m=h[l])&&m.length)if(d>=m.length)d-=m.length;else{for(var n=c?d+Math.min(m.length-d,c):m.length,p=d;p<n;p++)k.push(m[p]);d=0;if(k.length===c)break}return g?
f.enrich(k):k}return h})};u.tag=function(a,b,c,d){b=void 0===b?0:b;c=void 0===c?0:c;d=void 0===d?!1:d;a=this.db.transaction("tag","readonly").objectStore("tag").get(a);var e=this;return Cb(a).then(function(g){if(!g||!g.length||c>=g.length)return[];if(!b&&!c)return g;g=g.slice(c,c+b);return d?e.enrich(g):g})};
u.enrich=function(a){"object"!==typeof a&&(a=[a]);for(var b=this.db.transaction("reg","readonly").objectStore("reg"),c=[],d=0;d<a.length;d++)c[d]=Cb(b.get(a[d]));return Promise.all(c).then(function(e){for(var g=0;g<e.length;g++)e[g]={id:a[g],doc:e[g]?JSON.parse(e[g]):null};return e})};u.has=function(a){a=this.db.transaction("reg","readonly").objectStore("reg").getKey(a);return Cb(a)};u.search=null;u.info=function(){};
u.transaction=function(a,b,c){var d=this,e=this.h[a+":"+b];if(e)return c.call(this,e);var g=this.db.transaction(a,b);this.h[a+":"+b]=e=g.objectStore(a);return new Promise(function(f,h){g.onerror=function(k){d.h[a+":"+b]=null;g.abort();g=e=null;h(k)};g.oncomplete=function(k){g=e=d.h[a+":"+b]=null;f(k||!0)};return c.call(d,e)})};
u.commit=function(a,b,c){var d=this,e,g,f;return H(function(h){switch(h.h){case 1:if(b)return F(h,d.clear(),12);e=a.commit_task;a.commit_task=[];g=0;f=void 0;case 4:if(!(g<e.length)){h.h=6;break}f=e[g];if(!f.clear){e[g]=f.pa;h.h=5;break}return F(h,d.clear(),8);case 8:b=!0;h.h=6;break;case 5:g++;h.h=4;break;case 6:if(b){h.h=3;break}c||(e=e.concat(wa(a.reg)));if(!e.length){h.h=10;break}return F(h,d.remove(e),11);case 11:case 10:h.h=3;break;case 12:a.commit_task=[];case 3: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={O:void 0,Y:void 0},m=l.next())m=m.value,n.Y=m[0],n.O=m[1],n.O.length&&(b?k.put(n.O,n.Y):k.get(n.Y).onsuccess=function(p){return function(){var q=this.result,r;if(q&&q.length)for(var y=Math.max(q.length,p.O.length),v=0,t;v<y;v++){if((t=p.O[v])&&t.length){if((r=q[v])&&r.length)for(var w=0;w<t.length;w++)r.push(t[w]);else q[v]=t;r=1}}else q=p.O,r=1;r&&k.put(q,p.Y)}}(n))}),13):h.return();case 13:return F(h,d.transaction("ctx","readwrite",
u.export=function(a,b,c,d,e,h){var f;"undefined"===typeof h&&(f=new Promise(function(k){h=k}));e||(e=0);d||(d=0);if(d<this.field.length){c=this.field[d];var g=this.index[c];b=this;g.export(a,b,e?c:"",d,e++,h)||(d++,b.export(a,b,c,d,1,h))}else{switch(e){case 1:b="tag";g=this.A;c=null;break;case 2:b="store";g=this.store;c=null;break;default:h();return}Wa(a,this,c,b,d,e,g,h)}return f};
u.import=function(a,b){if(b)switch(M(b)&&(b=JSON.parse(b)),a){case "tag":this.A=b;break;case "reg":this.fastupdate=!1;this.reg=b;a=0;for(var c;a<this.field.length;a++)c=this.index[this.field[a]],c.reg=b,c.fastupdate=!1;break;case "store":this.store=b;break;default:a=a.split("."),c=a[0],a=a[1],c&&a&&this.index[c].import(a,b)}};Ya(Z.prototype);var Ab="undefined"!==typeof window&&(window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB),Bb=["map","ctx","tag","reg","cfg"];
function Cb(a,b){b=void 0===b?{}:b;if(!this)return new Cb(a,b);"object"===typeof a&&(b=a=a.name);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.support_tag_search=!1;this.db=null;this.h={}}u=Cb.prototype;u.mount=function(a){if(!a.encoder)return a.mount(this);a.db=this;return this.open()};
u.open=function(){var a=this;navigator.storage&&navigator.storage.persist();return this.db||new Promise(function(b,c){var d=Ab.open(a.id+(a.field?":"+a.field:""),1);d.onupgradeneeded=function(){var e=a.db=this.result;Bb.forEach(function(h){e.objectStoreNames.contains(h)||e.createObjectStore(h)})};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.destroy=function(){return Ab.deleteDatabase(this.id+(this.field?":"+this.field:""))};u.clear=function(){for(var a=this.db.transaction(Bb,"readwrite"),b=0;b<Bb.length;b++)a.objectStore(Bb[b]).clear();return Db(a)};
u.get=function(a,b,c,d,e,h){c=void 0===c?0:c;d=void 0===d?0:d;e=void 0===e?!0:e;h=void 0===h?!1:h;console.log("!!!!!!!!!!!");a=this.db.transaction(b?"ctx":"map","readonly").objectStore(b?"ctx":"map").get(b?b+":"+a:a);var f=this;return Db(a).then(function(g){var k=[];if(!g||!g.length)return k;if(e){if(!c&&!d&&1===g.length)return g[0];for(var l=0,m=void 0;l<g.length;l++)if((m=g[l])&&m.length)if(d>=m.length)d-=m.length;else{for(var n=c?d+Math.min(m.length-d,c):m.length,p=d;p<n;p++)k.push(m[p]);d=0;if(k.length===
c)break}return h?f.enrich(k):k}return g})};u.tag=function(a,b,c,d){b=void 0===b?0:b;c=void 0===c?0:c;d=void 0===d?!1:d;a=this.db.transaction("tag","readonly").objectStore("tag").get(a);var e=this;return Db(a).then(function(h){if(!h||!h.length||c>=h.length)return[];if(!b&&!c)return h;h=h.slice(c,c+b);return d?e.enrich(h):h})};
u.enrich=function(a){"object"!==typeof a&&(a=[a]);for(var b=this.db.transaction("reg","readonly").objectStore("reg"),c=[],d=0;d<a.length;d++)c[d]=Db(b.get(a[d]));return Promise.all(c).then(function(e){for(var h=0;h<e.length;h++)e[h]={id:a[h],doc:e[h]?JSON.parse(e[h]):null};return e})};u.has=function(a){a=this.db.transaction("reg","readonly").objectStore("reg").getKey(a);return Db(a)};u.search=null;u.info=function(){};
u.transaction=function(a,b,c){var d=this,e=this.h[a+":"+b];if(e)return c.call(this,e);var h=this.db.transaction(a,b);this.h[a+":"+b]=e=h.objectStore(a);return new Promise(function(f,g){h.onerror=function(k){d.h[a+":"+b]=null;h.abort();h=e=null;g(k)};h.oncomplete=function(k){h=e=d.h[a+":"+b]=null;f(k||!0)};return c.call(d,e)})};
u.commit=function(a,b,c){var d=this,e,h,f;return H(function(g){switch(g.h){case 1:if(b)return F(g,d.clear(),12);e=a.commit_task;a.commit_task=[];h=0;f=void 0;case 4:if(!(h<e.length)){g.h=6;break}f=e[h];if(!f.clear){e[h]=f.oa;g.h=5;break}return F(g,d.clear(),8);case 8:b=!0;g.h=6;break;case 5:h++;g.h=4;break;case 6:if(b){g.h=3;break}c||(e=e.concat(wa(a.reg)));if(!e.length){g.h=10;break}return F(g,d.remove(e),11);case 11:case 10:g.h=3;break;case 12:a.commit_task=[];case 3:return a.reg.size?F(g,d.transaction("map",
"readwrite",function(k){for(var l=x(a.map),m=l.next(),n={};!m.done;n={O:void 0,Y:void 0},m=l.next())m=m.value,n.Y=m[0],n.O=m[1],n.O.length&&(b?k.put(n.O,n.Y):k.get(n.Y).onsuccess=function(p){return function(){var q=this.result,r;if(q&&q.length)for(var y=Math.max(q.length,p.O.length),v=0,t;v<y;v++){if((t=p.O[v])&&t.length){if((r=q[v])&&r.length)for(var w=0;w<t.length;w++)r.push(t[w]);else q[v]=t;r=1}}else q=p.O,r=1;r&&k.put(q,p.Y)}}(n))}),13):g.return();case 13:return F(g,d.transaction("ctx","readwrite",
function(k){for(var l=x(a.ctx),m=l.next(),n={};!m.done;n={W:void 0},m=l.next()){m=m.value;n.W=m[0];m=x(m[1]);for(var p=m.next(),q={};!p.done;q={P:void 0,Z:void 0},p=m.next())p=p.value,q.Z=p[0],q.P=p[1],q.P.length&&(b?k.put(q.P,n.W+":"+q.Z):k.get(n.W+":"+q.Z).onsuccess=function(r,y){return function(){var v=this.result,t;if(v&&v.length)for(var w=Math.max(v.length,r.P.length),A=0,C;A<w;A++){if((C=r.P[A])&&C.length){if((t=v[A])&&t.length)for(var D=0;D<C.length;D++)t.push(C[D]);else v[A]=C;t=1}}else v=
r.P,t=1;t&&k.put(v,y.W+":"+r.Z)}}(q,n))}}),14);case 14:if(a.store)return F(h,d.transaction("reg","readwrite",function(k){for(var l=x(a.store),m=l.next();!m.done;m=l.next()){var n=m.value;m=n[0];n=n[1];k.put("object"===typeof n?JSON.stringify(n):1,m)}}),16);if(a.bypass){h.h=16;break}return F(h,d.transaction("reg","readwrite",function(k){for(var l=x(a.reg.keys()),m=l.next();!m.done;m=l.next())k.put(1,m.value)}),16);case 16:if(!a.tag){h.h=20;break}return F(h,d.transaction("tag","readwrite",function(k){for(var l=
x(a.tag),m=l.next(),n={};!m.done;n={X:void 0,ca:void 0},m=l.next())m=m.value,n.ca=m[0],n.X=m[1],n.X.length&&(k.get(n.ca).onsuccess=function(p){return function(){var q=this.result;q=q&&q.length?q.concat(p.X):p.X;k.put(q,p.ca)}}(n))}),20);case 20:a.map.clear(),a.ctx.clear(),a.tag&&a.tag.clear(),a.store&&a.store.clear(),a.document||a.reg.clear(),h.h=0}})};
function Db(a,b,c){for(var d=a.value,e,g,f=0,h=0,k;h<d.length;h++){if(k=c?d:d[h]){for(var l=0,m,n;l<b.length;l++)if(n=b[l],m=k.indexOf(g?parseInt(n,10):n),0>m&&!g&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(g=1),0<=m)if(e=1,1<k.length)k.splice(m,1);else{d[h]=[];break}f+=k.length}if(c)break}f?e&&a.update(d):a.delete();a.continue()}
u.remove=function(a){"object"!==typeof a&&(a=[a]);return Promise.all([this.transaction("map","readwrite",function(b){b.openCursor().onsuccess=function(){var c=this.result;c&&Db(c,a)}}),this.transaction("ctx","readwrite",function(b){b.openCursor().onsuccess=function(){var c=this.result;c&&Db(c,a)}}),this.transaction("tag","readwrite",function(b){b.openCursor().onsuccess=function(){var c=this.result;c&&Db(c,a,!0)}}),this.transaction("reg","readwrite",function(b){for(var c=0;c<a.length;c++)b.delete(a[c])})])};
function Cb(a){return new Promise(function(b,c){a.onsuccess=function(){b(this.result)};a.oncomplete=function(){b(this.result)};a.onerror=c;a=null})};var Eb={Index:V,Charset:Pa,Encoder:Q,Document:Z,Worker:qb,Resolver:X,IndexedDB:Bb,Language:{}},Fb=self,Gb;(Gb=Fb.define)&&Gb.amd?Gb([],function(){return Eb}):"object"===typeof Fb.exports?Fb.exports=Eb:Fb.FlexSearch=Eb;}(this));
r.P,t=1;t&&k.put(v,y.W+":"+r.Z)}}(q,n))}}),14);case 14:if(a.store)return F(g,d.transaction("reg","readwrite",function(k){for(var l=x(a.store),m=l.next();!m.done;m=l.next()){var n=m.value;m=n[0];n=n[1];k.put("object"===typeof n?JSON.stringify(n):1,m)}}),16);if(a.bypass){g.h=16;break}return F(g,d.transaction("reg","readwrite",function(k){for(var l=x(a.reg.keys()),m=l.next();!m.done;m=l.next())k.put(1,m.value)}),16);case 16:if(!a.tag){g.h=20;break}return F(g,d.transaction("tag","readwrite",function(k){for(var l=
x(a.tag),m=l.next(),n={};!m.done;n={X:void 0,ba:void 0},m=l.next())m=m.value,n.ba=m[0],n.X=m[1],n.X.length&&(k.get(n.ba).onsuccess=function(p){return function(){var q=this.result;q=q&&q.length?q.concat(p.X):p.X;k.put(q,p.ba)}}(n))}),20);case 20:a.map.clear(),a.ctx.clear(),a.tag&&a.tag.clear(),a.store&&a.store.clear(),a.document||a.reg.clear(),g.h=0}})};
function Eb(a,b,c){for(var d=a.value,e,h,f=0,g=0,k;g<d.length;g++){if(k=c?d:d[g]){for(var l=0,m,n;l<b.length;l++)if(n=b[l],m=k.indexOf(h?parseInt(n,10):n),0>m&&!h&&"string"===typeof n&&!isNaN(n)&&(m=k.indexOf(parseInt(n,10)))&&(h=1),0<=m)if(e=1,1<k.length)k.splice(m,1);else{d[g]=[];break}f+=k.length}if(c)break}f?e&&a.update(d):a.delete();a.continue()}
u.remove=function(a){"object"!==typeof a&&(a=[a]);return Promise.all([this.transaction("map","readwrite",function(b){b.openCursor().onsuccess=function(){var c=this.result;c&&Eb(c,a)}}),this.transaction("ctx","readwrite",function(b){b.openCursor().onsuccess=function(){var c=this.result;c&&Eb(c,a)}}),this.transaction("tag","readwrite",function(b){b.openCursor().onsuccess=function(){var c=this.result;c&&Eb(c,a,!0)}}),this.transaction("reg","readwrite",function(b){for(var c=0;c<a.length;c++)b.delete(a[c])})])};
function Db(a){return new Promise(function(b,c){a.onsuccess=function(){b(this.result)};a.oncomplete=function(){b(this.result)};a.onerror=c;a=null})};var Fb={Index:V,Charset:Pa,Encoder:Q,Document:Z,Worker:qb,Resolver:X,IndexedDB:Cb,Language:{}},Gb=self,Jb;(Jb=Gb.define)&&Jb.amd?Jb([],function(){return Fb}):"object"===typeof Gb.exports?Gb.exports=Fb:Gb.FlexSearch=Fb;}(this));

View File

@@ -162,8 +162,8 @@ C.prototype.encode = function(a) {
f && k && (f.length < this.minlength || this.filter && this.filter.has(f)) && (f = "");
if (f && (this.mapper || this.dedupe && 1 < f.length)) {
e = "";
for (let m = 0, l = "", p, r; m < f.length; m++) {
p = f.charAt(m), p === l && this.dedupe || ((r = this.mapper && this.mapper.get(p)) || "" === r ? r === l && this.dedupe || !(l = r) || (e += r) : e += l = p);
for (let m = 0, q = "", n, r; m < f.length; m++) {
n = f.charAt(m), n === q && this.dedupe || ((r = this.mapper && this.mapper.get(n)) || "" === r ? r === q && this.dedupe || !(q = r) || (e += r) : e += q = n);
}
f = e;
}
@@ -220,20 +220,20 @@ H.prototype.add = function(a, c, b, d) {
}
c = this.encoder.encode(c);
if (d = c.length) {
const m = u(), l = u(), p = this.depth, r = this.resolution;
for (let n = 0; n < d; n++) {
let q = c[this.rtl ? d - 1 - n : n];
var e = q.length;
if (e && (p || !l[q])) {
var g = this.score ? this.score(c, q, n, null, 0) : I(r, d, n), f = "";
const m = u(), q = u(), n = this.depth, r = this.resolution;
for (let l = 0; l < d; l++) {
let p = c[this.rtl ? d - 1 - l : l];
var e = p.length;
if (e && (n || !q[p])) {
var g = this.score ? this.score(c, p, l, null, 0) : I(r, d, l), f = "";
switch(this.tokenize) {
case "full":
if (2 < e) {
for (g = 0; g < e; g++) {
for (var h = e; h > g; 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);
f = p.substring(g, h);
var k = this.score ? this.score(c, p, l, f, g) : I(r, d, l, e, g);
J(this, q, f, k, a, b);
}
}
break;
@@ -241,24 +241,24 @@ H.prototype.add = function(a, c, b, d) {
case "reverse":
if (1 < e) {
for (h = e - 1; 0 < h; h--) {
f = q[h] + f, k = this.score ? this.score(c, q, n, f, h) : I(r, d, n, e, h), J(this, l, f, k, a, b);
f = p[h] + f, k = this.score ? this.score(c, p, l, f, h) : I(r, d, l, e, h), J(this, q, f, k, a, b);
}
f = "";
}
case "forward":
if (1 < e) {
for (h = 0; h < e; h++) {
f += q[h], J(this, l, f, g, a, b);
f += p[h], J(this, q, f, g, a, b);
}
break;
}
default:
if (J(this, l, q, g, a, b), p && 1 < d && n < d - 1) {
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;
J(this, m, M ? g : q, A, a, b, M ? q : g);
if (J(this, q, p, g, a, b), n && 1 < d && l < d - 1) {
for (e = u(), f = this.A, g = p, h = Math.min(n + 1, d - l), e[g] = 1, k = 1; k < h; k++) {
if ((p = c[this.rtl ? d - 1 - l - k : l + k]) && !e[p]) {
e[p] = 1;
const A = this.score ? this.score(c, g, l, p, k) : I(f + (d / 2 > f ? 0 : 1), d, l, h - 1, k - 1), L = this.bidirectional && p > g;
J(this, m, L ? g : p, A, a, b, L ? p : g);
}
}
}
@@ -321,29 +321,29 @@ function I(a, c, b, d, e) {
b = a.length;
c || (c = 100);
if (1 === b) {
return L.call(this, a[0], "", c, e);
return M.call(this, a[0], "", c, e);
}
g = this.depth && !1 !== g;
if (2 === b && g && !f) {
return L.call(this, a[0], a[1], c, e);
return M.call(this, a[0], a[1], c, e);
}
var h = 0, k = 0;
if (1 < b) {
var m = u();
const p = [];
for (let r = 0, n; r < b; r++) {
if ((n = a[r]) && !m[n]) {
if (f || N(this, n)) {
p.push(n), m[n] = 1;
const n = [];
for (let r = 0, l; r < b; r++) {
if ((l = a[r]) && !m[l]) {
if (f || N(this, l)) {
n.push(l), m[l] = 1;
} else {
return d;
}
const q = n.length;
h = Math.max(h, q);
k = k ? Math.min(k, q) : q;
const p = l.length;
h = Math.max(h, p);
k = k ? Math.min(k, p) : p;
}
}
a = p;
a = n;
b = a.length;
}
if (!b) {
@@ -351,30 +351,30 @@ function I(a, c, b, d, e) {
}
m = 0;
if (1 === b) {
return L.call(this, a[0], "", c, e);
return M.call(this, a[0], "", c, e);
}
if (2 === b && g && !f) {
return L.call(this, a[0], a[1], c, e);
return M.call(this, a[0], a[1], c, e);
}
if (1 < b) {
if (g) {
var l = a[0];
var q = a[0];
m = 1;
} else {
9 < h && 3 < h / k && a.sort(v);
}
}
for (let p, r; m < b; m++) {
for (let n, r; m < b; m++) {
r = a[m];
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;
q ? (n = N(this, r, q), n = O(n, d, f, this.A), f && !1 === n && d.length || (q = r)) : (n = N(this, r, ""), n = O(n, d, f, this.resolution));
if (n) {
return n;
}
if (f && m === b - 1) {
g = d.length;
if (!g) {
if (l) {
l = "";
if (q) {
q = "";
m = -1;
continue;
}
@@ -388,14 +388,14 @@ function I(a, c, b, d, e) {
a: {
a = d;
d = this.resolution;
l = a.length;
q = a.length;
b = [];
g = u();
for (let p = 0, r, n, q, A; p < d; p++) {
for (k = 0; k < l; k++) {
if (q = a[k], p < q.length && (r = q[p])) {
for (let n = 0, r, l, p, A; n < d; n++) {
for (k = 0; k < q; k++) {
if (p = a[k], n < p.length && (r = p[n])) {
for (m = 0; m < r.length; m++) {
n = r[m], (h = g[n]) ? g[n]++ : (h = 0, g[n] = 1), A = b[h] || (b[h] = []), A.push(n);
l = r[m], (h = g[l]) ? g[l]++ : (h = 0, g[l] = 1), A = b[h] || (b[h] = []), A.push(l);
}
}
}
@@ -408,8 +408,8 @@ function I(a, c, b, d, e) {
d = u();
g = f.length;
for (k = 0; k < g; k++) {
for (l = f[k], h = l.length, m = 0; m < h; m++) {
if (b = l[m], !d[b]) {
for (q = f[k], h = q.length, m = 0; m < h; m++) {
if (b = q[m], !d[b]) {
if (d[b] = 1, e) {
e--;
} else {
@@ -426,7 +426,7 @@ function I(a, c, b, d, e) {
}
b = c;
} else {
if (a < l) {
if (a < q) {
d = [];
break a;
}
@@ -440,29 +440,22 @@ function I(a, c, b, d, e) {
}
return d;
};
function L(a, c, b, 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 = [];
function O(a, c, b, d) {
let e = [];
if (a) {
d = Math.min(a.length, d);
for (let k = 0, m = 0, l; k < d; k++) {
if (l = a[k]) {
if (g && l && f && (l.length <= g ? (g -= l.length, l = null) : (l = l.slice(g), g = 0)), l && (h[k] = l, f && (m += l.length, m >= e))) {
break;
for (let g = 0, f; g < d; g++) {
(f = a[g]) && f && (e[g] = f);
}
}
}
if (h.length) {
if (f) {
return K(h, e, 0);
}
c.push(h);
if (e.length) {
c.push(e);
return;
}
}
return !b && h;
return !b && e;
}
function N(a, c, b) {
let d;

View File

@@ -11,14 +11,14 @@ C.prototype.assign=function(a){this.normalize=t(a.normalize,!0,this.normalize);l
this.maxlength=t(a.maxlength,0,this.maxlength);if(this.cache=b=t(a.cache,!0,this.cache))this.j=null,this.v="number"===typeof b?b:2E5,this.h=new Map,this.i=new Map,this.l=this.g=128;this.m="";this.s=null;this.o="";this.u=null;if(this.matcher)for(const d of this.matcher.keys())this.m+=(this.m?"|":"")+d;if(this.stemmer)for(const d of this.stemmer.keys())this.o+=(this.o?"|":"")+d;return this};
C.prototype.encode=function(a){if(this.cache&&a.length<=this.g)if(this.j){if(this.h.has(a))return this.h.get(a)}else this.j=setTimeout(D,0,this);this.normalize&&(a="function"===typeof this.normalize?this.normalize(a):B?a.normalize("NFKD").replace(B,"").toLowerCase():a.toLowerCase());this.prepare&&(a=this.prepare(a));this.numeric&&3<a.length&&(a=a.replace(y,"$1 $2").replace(z,"$1 $2").replace(x,"$1 "));const c=!(this.dedupe||this.mapper||this.filter||this.matcher||this.stemmer||this.replacer);let b=
[],d=this.split||""===this.split?a.split(this.split):a;for(let g=0,f,h;g<d.length;g++){if(!(f=h=d[g]))continue;if(f.length<this.minlength)continue;if(c){b.push(f);continue}if(this.filter&&this.filter.has(f))continue;if(this.cache&&f.length<=this.l)if(this.j){var e=this.i.get(f);if(e||""===e){e&&b.push(e);continue}}else this.j=setTimeout(D,0,this);let k;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="";for(let m=0,l="",p,r;m<f.length;m++)p=f.charAt(m),p===l&&this.dedupe||((r=this.mapper&&this.mapper.get(p))||""===r?r===l&&this.dedupe||!(l=r)||(e+=r):e+=l=p);f=e}if(f&&this.replacer)for(e=0;f&&e<this.replacer.length;e+=2)f=f.replace(this.replacer[e],this.replacer[e+1]);this.cache&&
(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="";for(let m=0,q="",n,r;m<f.length;m++)n=f.charAt(m),n===q&&this.dedupe||((r=this.mapper&&this.mapper.get(n))||""===r?r===q&&this.dedupe||!(q=r)||(e+=r):e+=q=n);f=e}if(f&&this.replacer)for(e=0;f&&e<this.replacer.length;e+=2)f=f.replace(this.replacer[e],this.replacer[e+1]);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.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;n<d;n++){let q=c[this.rtl?d-1-n:n];var e=q.length;if(e&&(p||!l[q])){var g=this.score?this.score(c,q,n,null,0):I(r,d,n),f="";switch(this.tokenize){case "full":if(2<e){for(g=0;g<e;g++)for(var h=e;h>g;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;0<h;h--)f=q[h]+f,k=this.score?this.score(c,q,n,f,h):I(r,d,n,e,h),J(this,l,f,k,a,b);f=""}case "forward":if(1<e){for(h=0;h<e;h++)f+=q[h],J(this,l,f,g,a,b);break}default:if(J(this,l,q,g,a,b),p&&1<d&&n<d-1)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),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&&1<a?c+(d||0)<=a?b+(e||0):(a-1)/(c+(d||0))*(b+(e||0))+1|0:0};function K(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 d=[];for(let e=0,g,f;e<a.length;e++)if((g=a[e])&&(f=g.length)){if(b){if(b>=f){b-=f;continue}b<f&&(g=c?g.slice(b,b+c):g.slice(b),f=g.length,b=0)}if(d.length)f>c&&(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=1<d.length?[].concat.apply([],d):d[0]:d};H.prototype.search=function(a,c,b){b||(c||"object"!==typeof a?"object"===typeof c&&(b=c,c=0):(b=a,a=""));var d=[],e=0;if(b){a=b.query||a;c=b.limit||c;e=b.offset||0;var g=b.context;var f=b.suggest}a=this.encoder.encode(a);b=a.length;c||(c=100);if(1===b)return M.call(this,a[0],"",c,e);g=this.depth&&!1!==g;if(2===b&&g&&!f)return M.call(this,a[0],a[1],c,e);var h=0,k=0;if(1<b){var m=u();const p=[];for(let r=0,n;r<b;r++)if((n=a[r])&&!m[n]){if(f||N(this,n))p.push(n),m[n]=1;else return d;const q=n.length;
h=Math.max(h,q);k=k?Math.min(k,q):q}a=p;b=a.length}if(!b)return d;m=0;if(1===b)return M.call(this,a[0],"",c,e);if(2===b&&g&&!f)return M.call(this,a[0],a[1],c,e);if(1<b)if(g){var l=a[0];m=1}else 9<h&&3<h/k&&a.sort(v);for(let p,r;m<b;m++){r=a[m];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;if(f&&m===b-1){g=d.length;if(!g){if(l){l="";m=-1;continue}return d}if(1===g)return K(d[0],c,e)}}a:{a=d;d=this.resolution;
l=a.length;b=[];g=u();for(let p=0,r,n,q,A;p<d;p++)for(k=0;k<l;k++)if(q=a[k],p<q.length&&(r=q[p]))for(m=0;m<r.length;m++)n=r[m],(h=g[n])?g[n]++:(h=0,g[n]=1),A=b[h]||(b[h]=[]),A.push(n);if(a=b.length)if(f){if(1<b.length){f=b;a=[];d=u();g=f.length;for(k=0;k<g;k++)for(l=f[k],h=l.length,m=0;m<h;m++)if(b=l[m],!d[b])if(d[b]=1,e)e--;else if(a.push(b),a.length===c)break;c=a}else c=b[0];b=c}else{if(a<l){d=[];break a}b=b[a-1];if(b.length>c||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<d;k++)if(l=a[k])if(g&&l&&f&&(l.length<=g?(g-=l.length,l=null):(l=l.slice(g),g=0)),l&&(h[k]=l,f&&(m+=l.length,m>=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;d<b.length;d++){if(e=b[d])if(2>e.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};
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(),q=u(),n=this.depth,r=this.resolution;for(let l=0;l<d;l++){let p=c[this.rtl?d-1-l:l];var e=p.length;if(e&&(n||!q[p])){var g=this.score?this.score(c,p,l,null,0):I(r,d,l),f="";switch(this.tokenize){case "full":if(2<e){for(g=0;g<e;g++)for(var h=e;h>g;h--){f=p.substring(g,h);var k=this.score?this.score(c,p,l,f,g):I(r,d,l,e,g);J(this,q,f,k,a,b)}break}case "reverse":if(1<
e){for(h=e-1;0<h;h--)f=p[h]+f,k=this.score?this.score(c,p,l,f,h):I(r,d,l,e,h),J(this,q,f,k,a,b);f=""}case "forward":if(1<e){for(h=0;h<e;h++)f+=p[h],J(this,q,f,g,a,b);break}default:if(J(this,q,p,g,a,b),n&&1<d&&l<d-1)for(e=u(),f=this.A,g=p,h=Math.min(n+1,d-l),e[g]=1,k=1;k<h;k++)if((p=c[this.rtl?d-1-l-k:l+k])&&!e[p]){e[p]=1;const A=this.score?this.score(c,g,l,p,k):I(f+(d/2>f?0:1),d,l,h-1,k-1),K=this.bidirectional&&p>g;J(this,m,K?g:p,A,a,b,K?p: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&&1<a?c+(d||0)<=a?b+(e||0):(a-1)/(c+(d||0))*(b+(e||0))+1|0:0};function L(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 d=[];for(let e=0,g,f;e<a.length;e++)if((g=a[e])&&(f=g.length)){if(b){if(b>=f){b-=f;continue}b<f&&(g=c?g.slice(b,b+c):g.slice(b),f=g.length,b=0)}if(d.length)f>c&&(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=1<d.length?[].concat.apply([],d):d[0]:d};H.prototype.search=function(a,c,b){b||(c||"object"!==typeof a?"object"===typeof c&&(b=c,c=0):(b=a,a=""));var d=[],e=0;if(b){a=b.query||a;c=b.limit||c;e=b.offset||0;var g=b.context;var f=b.suggest}a=this.encoder.encode(a);b=a.length;c||(c=100);if(1===b)return M.call(this,a[0],"",c,e);g=this.depth&&!1!==g;if(2===b&&g&&!f)return M.call(this,a[0],a[1],c,e);var h=0,k=0;if(1<b){var m=u();const n=[];for(let r=0,l;r<b;r++)if((l=a[r])&&!m[l]){if(f||N(this,l))n.push(l),m[l]=1;else return d;const p=l.length;
h=Math.max(h,p);k=k?Math.min(k,p):p}a=n;b=a.length}if(!b)return d;m=0;if(1===b)return M.call(this,a[0],"",c,e);if(2===b&&g&&!f)return M.call(this,a[0],a[1],c,e);if(1<b)if(g){var q=a[0];m=1}else 9<h&&3<h/k&&a.sort(v);for(let n,r;m<b;m++){r=a[m];q?(n=N(this,r,q),n=O(n,d,f,this.A),f&&!1===n&&d.length||(q=r)):(n=N(this,r,""),n=O(n,d,f,this.resolution));if(n)return n;if(f&&m===b-1){g=d.length;if(!g){if(q){q="";m=-1;continue}return d}if(1===g)return L(d[0],c,e)}}a:{a=d;d=this.resolution;q=a.length;b=[];
g=u();for(let n=0,r,l,p,A;n<d;n++)for(k=0;k<q;k++)if(p=a[k],n<p.length&&(r=p[n]))for(m=0;m<r.length;m++)l=r[m],(h=g[l])?g[l]++:(h=0,g[l]=1),A=b[h]||(b[h]=[]),A.push(l);if(a=b.length)if(f){if(1<b.length){f=b;a=[];d=u();g=f.length;for(k=0;k<g;k++)for(q=f[k],h=q.length,m=0;m<h;m++)if(b=q[m],!d[b])if(d[b]=1,e)e--;else if(a.push(b),a.length===c)break;c=a}else c=b[0];b=c}else{if(a<q){d=[];break a}b=b[a-1];if(b.length>c||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){let e=[];if(a){d=Math.min(a.length,d);for(let g=0,f;g<d;g++)(f=a[g])&&f&&(e[g]=f);if(e.length){c.push(e);return}}return!b&&e}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;d<b.length;d++){if(e=b[d])if(2>e.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;d<a.length;d++){if((e=a[d])&&e.length)if(g=e.indexOf(c),0<=g){1<e.length?(e.splice(g,1),b++):delete a[d];break}else b++}else for(let d of a){const e=d[0],g=P(d[1],c);g?b+=g:a.delete(e)}return b};function H(a,c){if(!this)return new H(a);if(a){var b="string"===typeof a?a:a.preset;b&&(a=Object.assign({},G[b],a))}else a={};b=a.context||{};const d=a.encode||a.encoder||F;this.encoder=d.encode?d:"object"===typeof d?new C(d):{encode:d};let e;this.resolution=a.resolution||9;this.tokenize=e=a.tokenize||"strict";this.depth="strict"===e&&b.depth||0;this.bidirectional=!1!==b.bidirectional;this.fastupdate=!!a.fastupdate;this.score=a.score||null;e=!1;this.map=new Map;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.ctx.clear();this.reg.clear();this.cache&&this.cache.clear();return this};H.prototype.append=function(a,c){return this.add(a,c,!0)};H.prototype.contain=function(a){return this.reg.has(a)};H.prototype.update=function(a,c){const b=this,d=this.remove(a);return d&&d.then?d.then(()=>b.add(a,c)):this.add(a,c)};
function Q(a){let c=0;if(a.constructor===Array)for(let b=0,d;b<a.length;b++)(d=a[b])&&(c+=d.length);else for(const b of a){const d=b[0],e=Q(b[1]);e?c+=e:a.delete(d)}return c}H.prototype.cleanup=function(){if(!this.fastupdate)return this;Q(this.map);this.depth&&Q(this.ctx);return this};

View File

@@ -72,20 +72,20 @@ H.prototype.add = function(a, c, b, d) {
}
c = this.encoder.encode(c);
if (d = c.length) {
const p = t(), m = t(), q = this.depth, r = this.resolution;
const p = t(), q = t(), n = this.depth, r = this.resolution;
for (let l = 0; l < d; l++) {
let n = c[this.rtl ? d - 1 - l : l];
var e = n.length;
if (e && (q || !m[n])) {
var f = this.score ? this.score(c, n, l, null, 0) : I(r, d, l), g = "";
let m = c[this.rtl ? d - 1 - l : l];
var e = m.length;
if (e && (n || !q[m])) {
var f = this.score ? this.score(c, m, l, null, 0) : I(r, d, l), g = "";
switch(this.tokenize) {
case "full":
if (2 < e) {
for (f = 0; f < e; f++) {
for (var h = e; h > f; h--) {
g = n.substring(f, h);
var k = this.score ? this.score(c, n, l, g, f) : I(r, d, l, e, f);
K(this, m, g, k, a, b);
g = m.substring(f, h);
var k = this.score ? this.score(c, m, l, g, f) : I(r, d, l, e, f);
K(this, q, g, k, a, b);
}
}
break;
@@ -93,24 +93,24 @@ H.prototype.add = function(a, c, b, d) {
case "reverse":
if (1 < e) {
for (h = e - 1; 0 < h; h--) {
g = n[h] + g, k = this.score ? this.score(c, n, l, g, h) : I(r, d, l, e, h), K(this, m, g, k, a, b);
g = m[h] + g, k = this.score ? this.score(c, m, l, g, h) : I(r, d, l, e, h), K(this, q, g, k, a, b);
}
g = "";
}
case "forward":
if (1 < e) {
for (h = 0; h < e; h++) {
g += n[h], K(this, m, g, f, a, b);
g += m[h], K(this, q, g, f, a, b);
}
break;
}
default:
if (K(this, m, n, f, a, b), q && 1 < d && l < d - 1) {
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;
K(this, p, J ? f : n, y, a, b, J ? n : f);
if (K(this, q, m, f, a, b), n && 1 < d && l < d - 1) {
for (e = t(), g = this.A, f = m, h = Math.min(n + 1, d - l), e[f] = 1, k = 1; k < h; k++) {
if ((m = c[this.rtl ? d - 1 - l - k : l + k]) && !e[m]) {
e[m] = 1;
const y = this.score ? this.score(c, f, l, m, k) : I(g + (d / 2 > g ? 0 : 1), d, l, h - 1, k - 1), J = this.bidirectional && m > f;
K(this, p, J ? f : m, y, a, b, J ? m : f);
}
}
}
@@ -167,7 +167,7 @@ function I(a, c, b, d, e) {
c = b.limit || c;
e = b.offset || 0;
var f = b.context;
var g = !1;
var g = b.suggest;
}
a = this.encoder.encode(a);
b = a.length;
@@ -182,20 +182,20 @@ function I(a, c, b, d, e) {
var h = 0, k = 0;
if (1 < b) {
var p = t();
const q = [];
const n = [];
for (let r = 0, l; r < b; r++) {
if ((l = a[r]) && !p[l]) {
if (g || N(this, l)) {
q.push(l), p[l] = 1;
n.push(l), p[l] = 1;
} else {
return d;
}
const n = l.length;
h = Math.max(h, n);
k = k ? Math.min(k, n) : n;
const m = l.length;
h = Math.max(h, m);
k = k ? Math.min(k, m) : m;
}
}
a = q;
a = n;
b = a.length;
}
if (!b) {
@@ -210,23 +210,23 @@ function I(a, c, b, d, e) {
}
if (1 < b) {
if (f) {
var m = a[0];
var q = a[0];
p = 1;
} else {
9 < h && 3 < h / k && a.sort(u);
}
}
for (let q, r; p < b; p++) {
for (let n, r; p < b; p++) {
r = a[p];
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;
q ? (n = N(this, r, q), n = O(n, d, g, this.A), g && !1 === n && d.length || (q = r)) : (n = N(this, r, ""), n = O(n, d, g, this.resolution));
if (n) {
return n;
}
if (g && p === b - 1) {
f = d.length;
if (!f) {
if (m) {
m = "";
if (q) {
q = "";
p = -1;
continue;
}
@@ -240,12 +240,12 @@ function I(a, c, b, d, e) {
a: {
a = d;
d = this.resolution;
m = a.length;
q = a.length;
b = [];
f = t();
for (let q = 0, r, l, n, y; q < d; q++) {
for (k = 0; k < m; k++) {
if (n = a[k], q < n.length && (r = n[q])) {
for (let n = 0, r, l, m, y; n < d; n++) {
for (k = 0; k < q; k++) {
if (m = a[k], n < m.length && (r = m[n])) {
for (p = 0; p < r.length; p++) {
l = r[p], (h = f[l]) ? f[l]++ : (h = 0, f[l] = 1), y = b[h] || (b[h] = []), y.push(l);
}
@@ -260,8 +260,8 @@ function I(a, c, b, d, e) {
d = t();
f = g.length;
for (k = 0; k < f; k++) {
for (m = g[k], h = m.length, p = 0; p < h; p++) {
if (b = m[p], !d[b]) {
for (q = g[k], h = q.length, p = 0; p < h; p++) {
if (b = q[p], !d[b]) {
if (d[b] = 1, e) {
e--;
} else {
@@ -278,7 +278,7 @@ function I(a, c, b, d, e) {
}
b = c;
} else {
if (a < m) {
if (a < q) {
d = [];
break a;
}
@@ -295,26 +295,19 @@ function I(a, c, b, d, e) {
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 = [];
function O(a, c, b, d) {
let e = [];
if (a) {
d = Math.min(a.length, d);
for (let k = 0, p = 0, m; k < d; k++) {
if (m = a[k]) {
if (f && m && g && (m.length <= f ? (f -= m.length, m = null) : (m = m.slice(f), f = 0)), m && (h[k] = m, g && (p += m.length, p >= e))) {
break;
for (let f = 0, g; f < d; f++) {
(g = a[f]) && g && (e[f] = g);
}
}
}
if (h.length) {
if (g) {
return L(h, e, 0);
}
c.push(h);
if (e.length) {
c.push(e);
return;
}
}
return !b && h;
return !b && e;
}
function N(a, c, b) {
let d;
@@ -370,7 +363,7 @@ function P(a, c) {
return new H(a);
}
a = a ? G(a) : {};
const b = a.context || {}, d = a.encode || a.encoder || function(f) {
const b = a.context || {}, d = "string" === typeof a.encoder ? E[a.encoder] : a.encode || a.encoder || function(f) {
return f.toLowerCase().trim().split(/\s+/);
};
this.encoder = d.encode ? d : "object" === typeof d ? d : {encode:d};

View File

@@ -7,14 +7,14 @@
*/
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.h=""}v.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)};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;b<a.length;b++){var c=a[b];let d=c.charAt(0),e=A[d];
for(let f=1,g;f<c.length&&(g=c.charAt(f),"h"===g||"w"===g||!(g=A[g])||g===e||(d+=g,e=g,4!==d.length));f++);a[b]=d}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(B," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(C,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(D," ")}}};const F={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 G(a){const c="string"===typeof a?a:a.preset;c&&(a=Object.assign({},F[c],a));return a};t();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 p=t(),m=t(),q=this.depth,r=this.resolution;for(let l=0;l<d;l++){let n=c[this.rtl?d-1-l:l];var e=n.length;if(e&&(q||!m[n])){var f=this.score?this.score(c,n,l,null,0):J(r,d,l),g="";switch(this.tokenize){case "full":if(2<e){for(f=0;f<e;f++)for(var h=e;h>f;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;0<h;h--)g=n[h]+g,k=this.score?this.score(c,n,l,g,h):J(r,d,l,e,h),K(this,m,g,k,a,b);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=n[h],K(this,m,g,f,a,b);break}default:if(K(this,m,n,f,a,b),q&&1<d&&l<d-1)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):J(g+(d/2>g?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&&1<a?c+(d||0)<=a?b+(e||0):(a-1)/(c+(d||0))*(b+(e||0))+1|0:0};function L(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 d=[];for(let e=0,f,g;e<a.length;e++)if((f=a[e])&&(g=f.length)){if(b){if(b>=g){b-=g;continue}b<g&&(f=c?f.slice(b,b+c):f.slice(b),g=f.length,b=0)}if(d.length)g>c&&(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=1<d.length?[].concat.apply([],d):d[0]:d};H.prototype.search=function(a,c,b){b||(c||"object"!==typeof a?"object"===typeof c&&(b=c,c=0):(b=a,a=""));var d=[],e=0;if(b){a=b.query||a;c=b.limit||c;e=b.offset||0;var f=b.context;var g=!1}a=this.encoder.encode(a);b=a.length;c||(c=100);if(1===b)return M.call(this,a[0],"",c,e);f=this.depth&&!1!==f;if(2===b&&f&&!g)return M.call(this,a[0],a[1],c,e);var h=0,k=0;if(1<b){var p=t();const q=[];for(let r=0,l;r<b;r++)if((l=a[r])&&!p[l]){if(g||N(this,l))q.push(l),p[l]=1;else return d;const n=l.length;h=Math.max(h,
n);k=k?Math.min(k,n):n}a=q;b=a.length}if(!b)return d;p=0;if(1===b)return M.call(this,a[0],"",c,e);if(2===b&&f&&!g)return M.call(this,a[0],a[1],c,e);if(1<b)if(f){var m=a[0];p=1}else 9<h&&3<h/k&&a.sort(u);for(let q,r;p<b;p++){r=a[p];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;if(g&&p===b-1){f=d.length;if(!f){if(m){m="";p=-1;continue}return d}if(1===f)return L(d[0],c,e)}}a:{a=d;d=this.resolution;m=a.length;
b=[];f=t();for(let q=0,r,l,n,y;q<d;q++)for(k=0;k<m;k++)if(n=a[k],q<n.length&&(r=n[q]))for(p=0;p<r.length;p++)l=r[p],(h=f[l])?f[l]++:(h=0,f[l]=1),y=b[h]||(b[h]=[]),y.push(l);if(a=b.length)if(g){if(1<b.length){g=b;a=[];d=t();f=g.length;for(k=0;k<f;k++)for(m=g[k],h=m.length,p=0;p<h;p++)if(b=m[p],!d[b])if(d[b]=1,e)e--;else if(a.push(b),a.length===c)break;c=a}else c=b[0];b=c}else{if(a<m){d=[];break a}b=b[a-1];if(b.length>c||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<d;k++)if(m=a[k])if(f&&m&&g&&(m.length<=f?(f-=m.length,m=null):(m=m.slice(f),f=0)),m&&(h[k]=m,g&&(p+=m.length,p>=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;d<b.length;d++){if(e=b[d])if(2>e.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;d<a.length;d++){if((e=a[d])&&e.length)if(f=e.indexOf(c),0<=f){1<e.length?(e.splice(f,1),b++):delete a[d];break}else b++}else for(let d of a){const e=d[0],f=P(d[1],c);f?b+=f:a.delete(e)}return b};function H(a,c){if(!this)return new H(a);a=a?G(a):{};const b=a.context||{},d=a.encode||a.encoder||function(f){return f.toLowerCase().trim().split(/\s+/)};this.encoder=d.encode?d:"object"===typeof d?d:{encode:d};let e;this.resolution=a.resolution||9;this.tokenize=e=a.tokenize||"strict";this.depth="strict"===e&&b.depth||0;this.bidirectional=!1!==b.bidirectional;this.fastupdate=!!a.fastupdate;this.score=a.score||null;e=!1;this.map=new Map;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.ctx.clear();this.reg.clear();this.cache&&this.cache.clear();return this};H.prototype.append=function(a,c){return this.add(a,c,!0)};H.prototype.contain=function(a){return this.reg.has(a)};H.prototype.update=function(a,c){const b=this,d=this.remove(a);return d&&d.then?d.then(()=>b.add(a,c)):this.add(a,c)};
for(let f=1,g;f<c.length&&(g=c.charAt(f),"h"===g||"w"===g||!(g=A[g])||g===e||(d+=g,e=g,4!==d.length));f++);a[b]=d}}},ArabicDefault:{rtl:!0,normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(B," ")}},CjkDefault:{normalize:!1,dedupe:!0,split:"",prepare:function(a){return(""+a).replace(C,"")}},CyrillicDefault:{normalize:!1,dedupe:!0,prepare:function(a){return(""+a).replace(D," ")}}};const F={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 G(a){const c="string"===typeof a?a:a.preset;c&&(a=Object.assign({},F[c],a));return a};t();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 p=t(),q=t(),n=this.depth,r=this.resolution;for(let l=0;l<d;l++){let m=c[this.rtl?d-1-l:l];var e=m.length;if(e&&(n||!q[m])){var f=this.score?this.score(c,m,l,null,0):J(r,d,l),g="";switch(this.tokenize){case "full":if(2<e){for(f=0;f<e;f++)for(var h=e;h>f;h--){g=m.substring(f,h);var k=this.score?this.score(c,m,l,g,f):J(r,d,l,e,f);K(this,q,g,k,a,b)}break}case "reverse":if(1<
e){for(h=e-1;0<h;h--)g=m[h]+g,k=this.score?this.score(c,m,l,g,h):J(r,d,l,e,h),K(this,q,g,k,a,b);g=""}case "forward":if(1<e){for(h=0;h<e;h++)g+=m[h],K(this,q,g,f,a,b);break}default:if(K(this,q,m,f,a,b),n&&1<d&&l<d-1)for(e=t(),g=this.A,f=m,h=Math.min(n+1,d-l),e[f]=1,k=1;k<h;k++)if((m=c[this.rtl?d-1-l-k:l+k])&&!e[m]){e[m]=1;const y=this.score?this.score(c,f,l,m,k):J(g+(d/2>g?0:1),d,l,h-1,k-1),I=this.bidirectional&&m>f;K(this,p,I?f:m,y,a,b,I?m: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&&1<a?c+(d||0)<=a?b+(e||0):(a-1)/(c+(d||0))*(b+(e||0))+1|0:0};function L(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 d=[];for(let e=0,f,g;e<a.length;e++)if((f=a[e])&&(g=f.length)){if(b){if(b>=g){b-=g;continue}b<g&&(f=c?f.slice(b,b+c):f.slice(b),g=f.length,b=0)}if(d.length)g>c&&(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=1<d.length?[].concat.apply([],d):d[0]:d};H.prototype.search=function(a,c,b){b||(c||"object"!==typeof a?"object"===typeof c&&(b=c,c=0):(b=a,a=""));var d=[],e=0;if(b){a=b.query||a;c=b.limit||c;e=b.offset||0;var f=b.context;var g=b.suggest}a=this.encoder.encode(a);b=a.length;c||(c=100);if(1===b)return M.call(this,a[0],"",c,e);f=this.depth&&!1!==f;if(2===b&&f&&!g)return M.call(this,a[0],a[1],c,e);var h=0,k=0;if(1<b){var p=t();const n=[];for(let r=0,l;r<b;r++)if((l=a[r])&&!p[l]){if(g||N(this,l))n.push(l),p[l]=1;else return d;const m=l.length;
h=Math.max(h,m);k=k?Math.min(k,m):m}a=n;b=a.length}if(!b)return d;p=0;if(1===b)return M.call(this,a[0],"",c,e);if(2===b&&f&&!g)return M.call(this,a[0],a[1],c,e);if(1<b)if(f){var q=a[0];p=1}else 9<h&&3<h/k&&a.sort(u);for(let n,r;p<b;p++){r=a[p];q?(n=N(this,r,q),n=O(n,d,g,this.A),g&&!1===n&&d.length||(q=r)):(n=N(this,r,""),n=O(n,d,g,this.resolution));if(n)return n;if(g&&p===b-1){f=d.length;if(!f){if(q){q="";p=-1;continue}return d}if(1===f)return L(d[0],c,e)}}a:{a=d;d=this.resolution;q=a.length;b=[];
f=t();for(let n=0,r,l,m,y;n<d;n++)for(k=0;k<q;k++)if(m=a[k],n<m.length&&(r=m[n]))for(p=0;p<r.length;p++)l=r[p],(h=f[l])?f[l]++:(h=0,f[l]=1),y=b[h]||(b[h]=[]),y.push(l);if(a=b.length)if(g){if(1<b.length){g=b;a=[];d=t();f=g.length;for(k=0;k<f;k++)for(q=g[k],h=q.length,p=0;p<h;p++)if(b=q[p],!d[b])if(d[b]=1,e)e--;else if(a.push(b),a.length===c)break;c=a}else c=b[0];b=c}else{if(a<q){d=[];break a}b=b[a-1];if(b.length>c||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){let e=[];if(a){d=Math.min(a.length,d);for(let f=0,g;f<d;f++)(g=a[f])&&g&&(e[f]=g);if(e.length){c.push(e);return}}return!b&&e}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;d<b.length;d++){if(e=b[d])if(2>e.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;d<a.length;d++){if((e=a[d])&&e.length)if(f=e.indexOf(c),0<=f){1<e.length?(e.splice(f,1),b++):delete a[d];break}else b++}else for(let d of a){const e=d[0],f=P(d[1],c);f?b+=f:a.delete(e)}return b};function H(a,c){if(!this)return new H(a);a=a?G(a):{};const b=a.context||{},d="string"===typeof a.encoder?E[a.encoder]:a.encode||a.encoder||function(f){return f.toLowerCase().trim().split(/\s+/)};this.encoder=d.encode?d:"object"===typeof d?d:{encode:d};let e;this.resolution=a.resolution||9;this.tokenize=e=a.tokenize||"strict";this.depth="strict"===e&&b.depth||0;this.bidirectional=!1!==b.bidirectional;this.fastupdate=!!a.fastupdate;this.score=a.score||null;e=!1;this.map=new Map;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.ctx.clear();this.reg.clear();this.cache&&this.cache.clear();return this};H.prototype.append=function(a,c){return this.add(a,c,!0)};H.prototype.contain=function(a){return this.reg.has(a)};H.prototype.update=function(a,c){const b=this,d=this.remove(a);return d&&d.then?d.then(()=>b.add(a,c)):this.add(a,c)};
function Q(a){let c=0;if(a.constructor===Array)for(let b=0,d;b<a.length;b++)(d=a[b])&&(c+=d.length);else for(const b of a){const d=b[0],e=Q(b[1]);e?c+=e:a.delete(d)}return c}H.prototype.cleanup=function(){if(!this.fastupdate)return this;Q(this.map);this.depth&&Q(this.ctx);return this};
H.prototype.searchCache=function(a,c,b){a=("object"===typeof a?""+a.query:a).toLowerCase();let d=this.cache.get(a);if(!d){d=this.search(a,c,b);if(d.then){const e=this;d.then(function(f){e.cache.set(a,f);return f})}this.cache.set(a,d)}return d};export default {Index:H,Charset:E,Encoder:null,Document:null,Worker:null,Resolver:null,IndexedDB:null,Language:{}};
export const Index=H;export const Charset=E;export const Encoder=null;export const Document=null;export const Worker=null;export const Resolver=null;export const IndexedDB=null;export const Language={};

View File

@@ -139,6 +139,7 @@ IdxDB.prototype.clear = function () {
};
IdxDB.prototype.get = function (key, ctx, limit = 0, offset = 0, resolve = /* tag? */!0, enrich = !1) {
console.log("!!!!!!!!!!!");
const transaction = this.db.transaction(ctx ? "ctx" : "map", "readonly"),
map = transaction.objectStore(ctx ? "ctx" : "map"),
req = map.get(ctx ? ctx + ":" + key : key),

View File

@@ -11,7 +11,8 @@ const defaults = {
host: "localhost",
port: "5432"
},
pgp = pg_promise({ noWarnings: ! /* tag? */!0 /*await rows.hasNext()*/ /*await rows.hasNext()*/ /*await rows.hasNext()*/ }),
pgp = pg_promise({ noWarnings: !
/* tag? */!0 /*await rows.hasNext()*/ /*await rows.hasNext()*/ /*await rows.hasNext()*/ }),
VERSION = 1,
MAXIMUM_QUERY_VARS = 16000,
fields = ["map", "ctx", "reg", "tag", "cfg"],

View File

@@ -49,7 +49,8 @@ export default function Document(options) {
this.cache = (tmp = options.cache || null) && new Cache(tmp);
// do not apply cache again for the indexes since .searchCache()
// is just a wrapper over .search()
options.cache = /* suggest */ /* append: */ /* enrich */!1;
options.cache = /* suggest */ /* append: */
/* enrich */!1;
this.worker = options.worker;
@@ -99,8 +100,22 @@ export default function Document(options) {
}
}
if (this.worker) {
const promises = [];
for (const index of this.index.values()) {
index.worker.then && promises.push(index.worker);
}
if (promises.length) {
const self = this;
return Promise.all(promises).then(function () {
return self;
});
}
} else {
options.db && this.mount(options.db);
}
}
Document.prototype.mount = function (db) {
@@ -209,8 +224,9 @@ function parse_descriptor(options, document) {
if (this.worker) {
const worker = new WorkerIndex(opt);
if (worker.worker) {
index.set(key, worker);
if (!worker.worker) {
} else {
// fallback when not supported
this.worker = !1;
}

View File

@@ -37,7 +37,7 @@ export default function Index(options, _register) {
/** @type ContextOptions */
const context = options.context || {},
encoder = options.encode || options.encoder || default_encoder;
encoder = is_string(options.encoder) ? Charset[options.encoder] : options.encode || options.encoder || default_encoder;
/** @type Encoder */
this.encoder = encoder.encode ? encoder : "object" == typeof encoder ? new Encoder(encoder) : { encode: encoder };
@@ -67,7 +67,7 @@ export default function Index(options, _register) {
this.resolve = !1 !== options.resolve;
if (tmp = options.db) {
this.db = tmp.mount(this);
this.db = this.mount(tmp);
}
this.commit_auto = !1 !== options.commit;
this.commit_task = [];

View File

@@ -173,6 +173,8 @@ Index.prototype.search = function (query, limit, options) {
}
}
// from this point there are just multi-term queries
if (this.db) {
if (this.db.search) {
@@ -190,10 +192,12 @@ Index.prototype.search = function (query, limit, options) {
if (keyword) {
arr = await self.get_array(term, keyword);
arr = add_result(arr, result, suggest, self.resolution_ctx,
/** @type {!number} */limit, offset, 2 === length
/*, term, keyword*/
arr = await self.get_array(term, keyword, 0, 0, !1, !1);
arr = add_result(arr, result, suggest, self.resolution_ctx
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 2
// /*, term, keyword*/
);
// the context is a moving window where the keyword is going forward like a cursor
@@ -204,10 +208,12 @@ Index.prototype.search = function (query, limit, options) {
}
} else {
arr = await self.get_array(term);
arr = add_result(arr, result, suggest, self.resolution,
/** @type {!number} */limit, offset, 1 === length
/*, term*/
arr = await self.get_array(term, "", 0, 0, !1, !1);
arr = add_result(arr, result, suggest, self.resolution
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 1
// /*, term*/
);
}
@@ -243,10 +249,12 @@ Index.prototype.search = function (query, limit, options) {
if (keyword) {
arr = this.get_array(term, keyword);
arr = /*this.*/add_result(arr, result, suggest, this.resolution_ctx,
/** @type {!number} */limit, offset, 2 === length
/*, term, keyword*/
arr = this.get_array(term, keyword, 0, 0, !1, !1);
arr = /*this.*/add_result(arr, result, suggest, this.resolution_ctx
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 2
// /*, term, keyword*/
);
// 1. when suggestion enabled just forward keyword if term was found
@@ -256,10 +264,12 @@ Index.prototype.search = function (query, limit, options) {
}
} else {
arr = this.get_array(term);
arr = /*this.*/add_result(arr, result, suggest, this.resolution,
/** @type {!number} */limit, offset, 1 === length
/*, term*/
arr = this.get_array(term, "", 0, 0, !1, !1);
arr = /*this.*/add_result(arr, result, suggest, this.resolution
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 1
// /*, term*/
);
}
@@ -327,13 +337,10 @@ function single_term_query(term, keyword, limit, offset, resolve, enrich, tag) {
* @param {Array} result
* @param {Array} suggest
* @param {number} resolution
* @param {number} limit
* @param {number} offset
* @param {boolean} single_term
* @return {Array|boolean|undefined}
*/
function add_result(arr, result, suggest, resolution, limit, offset, single_term /*, term, keyword*/) {
function add_result(arr, result, suggest, resolution /*, limit, offset single_term, term, keyword*/) {
let word_arr = [];
//let arr;// = keyword ? this.ctx : this.map;
@@ -345,21 +352,22 @@ function add_result(arr, result, suggest, resolution, limit, offset, single_term
// apply reduced resolution for queries
resolution = Math.min(arr.length, resolution);
for (let x = 0, size = 0, tmp; x < resolution; x++) {
for (let x = 0, tmp; x < resolution; x++) {
if (tmp = arr[x]) {
if (offset) {
// apply offset right here on single terms
if (tmp && single_term) {
if (tmp.length <= offset) {
offset -= tmp.length;
tmp = null;
} else {
tmp = tmp.slice(offset);
offset = 0;
}
}
}
// if(offset){
// // apply offset right here on single terms
// if(tmp && single_term){
// if(tmp.length <= offset){
// offset -= tmp.length;
// tmp = null;
// }
// else{
// tmp = tmp.slice(offset);
// offset = 0;
// }
// }
// }
if (tmp) {
@@ -368,25 +376,25 @@ function add_result(arr, result, suggest, resolution, limit, offset, single_term
// simplified score order:
//word_arr.push(tmp);
if (single_term) {
size += tmp.length;
if (size >= limit) {
// fast path:
// a single term does not need to pre-collect results
break;
}
}
// if(single_term){
// size += tmp.length;
// if(size >= limit){
// // fast path:
// // a single term does not need to pre-collect results
// break;
// }
// }
}
}
}
if (word_arr.length) {
if (single_term) {
// fast path optimization
// offset was already applied at this point
// return an array will stop the query process immediately
return resolve_default(word_arr, limit, 0);
}
// if(single_term){
// // fast path optimization
// // offset was already applied at this point
// // return an array will stop the query process immediately
// return resolve_default(word_arr, limit, 0);
// }
result.push(word_arr);
// return nothing will continue the query

View File

@@ -19,10 +19,11 @@ import StorageInterface from "./db/interface.js";
* resolve: [boolean=true],
* db: StorageInterface|undefined,
* commit: boolean=true,
* worker: boolean|string|undefined,
* config: string|undefined
* }}
*/
export let IndexOptions;
export let IndexOptions = {};
/**
* @typedef DocumentIndexOptions {{
@@ -40,13 +41,12 @@ export let IndexOptions;
* db: StorageInterface|undefined,
* commit: boolean=true,
* config: string|undefined,
*
* field: string,
* filter: Function|undefined,
* custom: Function|undefined
* }}
*/
export let DocumentIndexOptions;
export let DocumentIndexOptions = {};
/**
* @typedef DocumentOptions {{
@@ -66,7 +66,7 @@ export let DocumentIndexOptions;
* worker: boolean|string|undefined
* }}
*/
export let DocumentOptions;
export let DocumentOptions = {};
/**
* @typedef ContextOptions {{
@@ -75,7 +75,7 @@ export let DocumentOptions;
* resolution: number|undefined
* }}
*/
export let ContextOptions;
export let ContextOptions = {};
/**
* @typedef DocumentDescriptor {{
@@ -86,7 +86,7 @@ export let ContextOptions;
* store: StoreOptions|Array<StoreOptions>|undefined
* }}
*/
export let DocumentDescriptor;
export let DocumentDescriptor = {};
/**
* @typedef TagOptions {{
@@ -99,7 +99,7 @@ export let DocumentDescriptor;
* config: string|undefined
* }}
*/
export let TagOptions;
export let TagOptions = {};
/**
* @typedef StoreOptions {{
@@ -109,7 +109,7 @@ export let TagOptions;
* config: string|undefined
* }}
*/
export let StoreOptions;
export let StoreOptions = {};
/**
* @typedef SearchOptions {{
@@ -122,7 +122,7 @@ export let StoreOptions;
* enrich: [boolean=false],
* }}
*/
export let SearchOptions;
export let SearchOptions = {};
// tag: Array|undefined
/**
@@ -140,7 +140,7 @@ export let SearchOptions;
* merge: [boolean=false]
* }}
*/
export let DocumentSearchOptions;
export let DocumentSearchOptions = {};
/**
* @typedef EncoderOptions {{
@@ -161,7 +161,7 @@ export let DocumentSearchOptions;
* cache: boolean=true,
* }}
*/
export let EncoderOptions;
export let EncoderOptions = {};
/**
* @typedef EncoderSplitOptions {{
@@ -173,7 +173,7 @@ export let EncoderOptions;
* char: string|Array<string>|undefined,
* }}
*/
export let EncoderSplitOptions;
export let EncoderSplitOptions = {};
/**
* @typedef PersistentOptions {{
@@ -183,4 +183,4 @@ export let EncoderSplitOptions;
* db: *|undefined
* }}
*/
export let PersistentOptions;
export let PersistentOptions = {};

View File

@@ -44,6 +44,7 @@ import Charset from "./charset.js";
/** @export */Index.prototype.cache;
/** @export */Index.prototype.bypass;
/** @export */Index.prototype.document;
/** @export */Index.prototype.encoder;
/** @export */Document.prototype.add;
/** @export */Document.prototype.append;

View File

@@ -1,4 +1,3 @@
//import { promise as Promise } from "../polyfill.js";
import { IndexOptions } from "./type.js";
import { create_object, is_function, is_object, is_string } from "./common.js";
import handler from "./worker/handler.js";
@@ -10,20 +9,15 @@ let pid = 0;
* @constructor
*/
export default function WorkerIndex(options) {
export default function WorkerIndex(options = {}) {
if (!this) {
return new WorkerIndex(options);
}
if (!options) {
options = {};
}
// the factory is the outer wrapper from the build
// we use "self" as a trap for node.js
let factory = "undefined" != typeof self && (self || window)._factory;
// it uses "self" as a trap for node.js
let factory = "undefined" != typeof self ? self._factory : "undefined" != typeof window ? window._factory : null;
if (factory) {
factory = factory.toString();
}
@@ -31,9 +25,18 @@ export default function WorkerIndex(options) {
const is_node_js = "undefined" == typeof window /*&& self["exports"]*/,
_self = this;
(async function () {
/**
* @param {Worker=} _worker
* @this {WorkerIndex}
*/
function init(_worker) {
this.worker = _worker || create(factory, is_node_js, options.worker);
if (this.worker.then) {
return this.worker.then(init);
}
this.worker = await create(factory, is_node_js, options.worker);
this.resolver = create_object();
if (!this.worker) {
@@ -55,14 +58,16 @@ export default function WorkerIndex(options) {
if (options.config) {
delete options.db;
//delete options.db;
// when extern configuration needs to be loaded
// it needs to return a promise to await for
return new Promise(function (resolve) {
_self.resolver[++pid] = function () {
resolve(_self);
};
_self.worker.postMessage({
id: pid,
task: "init",
@@ -77,7 +82,11 @@ export default function WorkerIndex(options) {
factory: factory,
options: options
});
}).call(this);
return this.worker;
}
this.worker = init.call(this);
}
register("add");
@@ -88,7 +97,7 @@ register("remove");
function register(key) {
WorkerIndex.prototype[key] = WorkerIndex.prototype[key + "Async"] = function () {
WorkerIndex.prototype[key] = WorkerIndex.prototype[key + "Async"] = async function () {
const self = this,
args = [].slice.call(arguments),
arg = args[args.length - 1];
@@ -121,14 +130,16 @@ function register(key) {
};
}
async function create(factory, is_node_js, worker_path) {
function create(factory, is_node_js, worker_path) {
let worker = is_node_js ?
// This eval will be removed when compiling, it isn't there in final build
"undefined" != typeof module ? (0, eval)('new (require("worker_threads")["Worker"])(__dirname + "/node/node.js")')
//: (0,eval)('new ((await import("worker_threads"))["Worker"])(import.meta.dirname + "/worker/node.mjs")')
: (0, eval)('new ((await import("worker_threads"))["Worker"])((1,eval)(\"import.meta.dirname\") + "/node/node.mjs")')
//: (0,eval)('new ((await import("worker_threads"))["Worker"])((1,eval)(\"import.meta.dirname\") + "/node/node.mjs")')
: (0, eval)('import("worker_threads").then(function(worker){ return new worker["Worker"]((1,eval)(\"import.meta.dirname\") + "/node/node.mjs"); })')
//: import("worker_threads").then(function(worker){ return new worker["Worker"](import.meta.dirname + "/worker/node.mjs"); })
//eval('new (require("worker_threads")["Worker"])(__dirname + "/node/node.js")')
: factory ? new window.Worker(URL.createObjectURL(new Blob(["onmessage=" + handler.toString()], { type: "text/javascript" }))) : new window.Worker(is_string(worker_path) ? worker_path : "worker/worker.js", { type: "module" });

View File

@@ -26,12 +26,6 @@ export default (async function (data) {
//options = await import(filepath);
}
// deprecated:
// const encode = options.encode;
// if(encode && (encode.indexOf("function") === 0)){
// options.encode = Function("return " + encode)();
// }
const factory = data.factory;
if (factory) {

View File

@@ -7,7 +7,7 @@ const { parentPort } = require("worker_threads"),
let index;
parentPort.on("message", function (data) {
parentPort.on("message", async function (data) {
/** @type Index */
const args = data.args,
@@ -20,25 +20,17 @@ parentPort.on("message", function (data) {
case "init":
let options = data.options || {},
filepath = options.config;
// load extern field configuration
// if(filepath && filepath[0] !== "/" && filepath[0] !== "\\"){
// // current working directory
// const dir = process.cwd();
// filepath = join(dir, filepath);
// }
if (filepath) {
options = require(filepath);
options = Object.assign({}, options, require(filepath));
delete options.worker;
}
// deprecated:
// const encode = options["encode"];
// if(encode && (encode.indexOf("function") === 0)){
// options["encode"] = new Function("return " + encode)();
// }
index = new Index(options);
//index.db && await index.db;
parentPort.postMessage({ id: id });
break;
default:

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{DocumentOptions,DocumentDescriptor,DocumentIndexOptions,StoreOptions}from"./type.js";import Index from"./index.js";import WorkerIndex from"./worker.js";import Cache,{searchCache}from"./cache.js";import{is_string,is_object,parse_simple}from"./common.js";import apply_async from"./async.js";import{exportDocument,importDocument}from"./serialize.js";import{KeystoreMap,KeystoreSet}from"./keystore.js";import"./document/add.js";import"./document/search.js";export default function Document(a){if(!this)return new Document(a);const b=a.document||a.doc||a;let c,d;if(this.tree=[],this.field=[],this.marker=[],this.key=(c=b.key||b.id)&&parse_tree(c,this.marker)||"id",d=a.keystore||0,d&&(this.keystore=d),this.fastupdate=!!a.fastupdate,this.reg=this.fastupdate?d&&!0?new KeystoreMap(d):new Map:d&&!0?new KeystoreSet(d):new Set,this.storetree=(c=b.store||null)&&!0!==c&&[],this.store=c&&(d&&!0?new KeystoreMap(d):new Map),this.cache=(c=a.cache||null)&&new Cache(c),a.cache=!1,this.worker=a.worker,this.index=parse_descriptor.call(this,a,b),(this.tag=null,(c=b.tag)&&("string"==typeof c&&(c=[c]),c.length))){this.tag=new Map,this.tagtree=[],this.tagfield=[];for(let a,b,d=0;d<c.length;d++){if(a=c[d],b=a.field||a,!b)throw new Error("The tag field from the document descriptor is undefined.");a.custom?this.tagtree[d]=a.custom:(this.tagtree[d]=parse_tree(b,this.marker),a.filter&&("string"==typeof this.tagtree[d]&&(this.tagtree[d]=new String(this.tagtree[d])),this.tagtree[d]._filter=a.filter)),this.tagfield[d]=b,this.tag.set(b,new Map)}}a.db&&this.mount(a.db)}Document.prototype.mount=function(a){let b=this.field;if(this.tag)for(let a,c=0;c<this.tagfield.length;c++){a=this.tagfield[c];let d;this.index.set(a,d=new Index({},this.reg)),b===this.field&&(b=b.slice(0)),b.push(a),d.tag=this.tag.get(a)}const c=[],d={db:a.db,type:a.type,fastupdate:a.fastupdate};for(let e,f,g=0;g<b.length;g++){d.field=f=b[g],e=this.index.get(f);const h=new a.constructor(a.id,d);h.id=a.id,c[g]=h.mount(e),e.document=!0,g?e.bypass=!0:e.store=this.store}return this.db=!0,Promise.all(c)},Document.prototype.commit=async function(a,b){const c=[];for(const d of this.index.values())c.push(d.db.commit(d,a,b));await Promise.all(c),this.reg.clear()},Document.prototype.destroy=function(){const a=[];for(const b of this.index.values())a.push(b.destroy());return Promise.all(a)};function parse_descriptor(a,b){const c=new Map;let d=b.index||b.field||b;is_string(d)&&(d=[d]);for(let e,f,g=0;g<d.length;g++){if(e=d[g],is_string(e)||(f=e,e=e.field),f=is_object(f)?Object.assign({},a,f):a,this.worker){const a=new WorkerIndex(f);c.set(e,a),a.worker||(this.worker=!1)}this.worker||c.set(e,new Index(f,this.reg)),f.custom?this.tree[g]=f.custom:(this.tree[g]=parse_tree(e,this.marker),f.filter&&("string"==typeof this.tree[g]&&(this.tree[g]=new String(this.tree[g])),this.tree[g]._filter=f.filter)),this.field[g]=e}if(this.storetree){let a=b.store;is_string(a)&&(a=[a]);for(let b,c,d=0;d<a.length;d++)b=a[d],c=b.field||b,b.custom?(this.storetree[d]=b.custom,b.custom._field=c):(this.storetree[d]=parse_tree(c,this.marker),b.filter&&("string"==typeof this.storetree[d]&&(this.storetree[d]=new String(this.storetree[d])),this.storetree[d]._filter=b.filter))}return c}function parse_tree(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2),a&&(b[d]=!0)),a&&(c[d++]=a);return d<c.length&&(c.length=d),1<d?c:c[0]}Document.prototype.append=function(a,b){return this.add(a,b,!0)},Document.prototype.update=function(a,b){return this.remove(a).add(a,b)},Document.prototype.remove=function(a){is_object(a)&&(a=parse_simple(a,this.key));for(const b of this.index.values())b.remove(a,!0);if(this.reg.has(a)){if(this.tag&&!this.fastupdate)for(let b of this.tag.values())for(let c of b){const d=c[0],e=c[1],f=e.indexOf(a);-1<f&&(1<e.length?e.splice(f,1):b.delete(d))}this.store&&this.store.delete(a),this.reg.delete(a)}return this.cache&&this.cache.remove(a),this},Document.prototype.clear=function(){for(const a of this.index.values())a.clear();if(this.tag)for(const a of this.tag.values())a.clear();return this.store&&this.store.clear(),this},Document.prototype.contain=function(a){return this.db?this.index.get(this.field[0]).db.has(a):this.reg.has(a)},Document.prototype.cleanup=function(){for(const a of this.index.values())a.cleanup();return this},Document.prototype.get=function(a){return this.db?this.index.get(this.field[0]).db.enrich(a).then(function(a){return a[0]&&a[0].doc}):this.store.get(a)},Document.prototype.set=function(a,b){return this.store.set(a,b),this},Document.prototype.searchCache=searchCache,Document.prototype.export=exportDocument,Document.prototype.import=importDocument,apply_async(Document.prototype);
import{DocumentOptions,DocumentDescriptor,DocumentIndexOptions,StoreOptions}from"./type.js";import Index from"./index.js";import WorkerIndex from"./worker.js";import Cache,{searchCache}from"./cache.js";import{is_string,is_object,parse_simple}from"./common.js";import apply_async from"./async.js";import{exportDocument,importDocument}from"./serialize.js";import{KeystoreMap,KeystoreSet}from"./keystore.js";import"./document/add.js";import"./document/search.js";export default function Document(a){if(!this)return new Document(a);const b=a.document||a.doc||a;let c,d;if(this.tree=[],this.field=[],this.marker=[],this.key=(c=b.key||b.id)&&parse_tree(c,this.marker)||"id",d=a.keystore||0,d&&(this.keystore=d),this.fastupdate=!!a.fastupdate,this.reg=this.fastupdate?d&&!0?new KeystoreMap(d):new Map:d&&!0?new KeystoreSet(d):new Set,this.storetree=(c=b.store||null)&&!0!==c&&[],this.store=c&&(d&&!0?new KeystoreMap(d):new Map),this.cache=(c=a.cache||null)&&new Cache(c),a.cache=!1,this.worker=a.worker,this.index=parse_descriptor.call(this,a,b),(this.tag=null,(c=b.tag)&&("string"==typeof c&&(c=[c]),c.length))){this.tag=new Map,this.tagtree=[],this.tagfield=[];for(let a,b,d=0;d<c.length;d++){if(a=c[d],b=a.field||a,!b)throw new Error("The tag field from the document descriptor is undefined.");a.custom?this.tagtree[d]=a.custom:(this.tagtree[d]=parse_tree(b,this.marker),a.filter&&("string"==typeof this.tagtree[d]&&(this.tagtree[d]=new String(this.tagtree[d])),this.tagtree[d]._filter=a.filter)),this.tagfield[d]=b,this.tag.set(b,new Map)}}if(this.worker){const a=[];for(const b of this.index.values())b.worker.then&&a.push(b.worker);if(a.length){const b=this;return Promise.all(a).then(function(){return b})}}else a.db&&this.mount(a.db)}Document.prototype.mount=function(a){let b=this.field;if(this.tag)for(let a,c=0;c<this.tagfield.length;c++){a=this.tagfield[c];let d;this.index.set(a,d=new Index({},this.reg)),b===this.field&&(b=b.slice(0)),b.push(a),d.tag=this.tag.get(a)}const c=[],d={db:a.db,type:a.type,fastupdate:a.fastupdate};for(let e,f,g=0;g<b.length;g++){d.field=f=b[g],e=this.index.get(f);const h=new a.constructor(a.id,d);h.id=a.id,c[g]=h.mount(e),e.document=!0,g?e.bypass=!0:e.store=this.store}return this.db=!0,Promise.all(c)},Document.prototype.commit=async function(a,b){const c=[];for(const d of this.index.values())c.push(d.db.commit(d,a,b));await Promise.all(c),this.reg.clear()},Document.prototype.destroy=function(){const a=[];for(const b of this.index.values())a.push(b.destroy());return Promise.all(a)};function parse_descriptor(a,b){const c=new Map;let d=b.index||b.field||b;is_string(d)&&(d=[d]);for(let e,f,g=0;g<d.length;g++){if(e=d[g],is_string(e)||(f=e,e=e.field),f=is_object(f)?Object.assign({},a,f):a,this.worker){const a=new WorkerIndex(f);a.worker?c.set(e,a):this.worker=!1}this.worker||c.set(e,new Index(f,this.reg)),f.custom?this.tree[g]=f.custom:(this.tree[g]=parse_tree(e,this.marker),f.filter&&("string"==typeof this.tree[g]&&(this.tree[g]=new String(this.tree[g])),this.tree[g]._filter=f.filter)),this.field[g]=e}if(this.storetree){let a=b.store;is_string(a)&&(a=[a]);for(let b,c,d=0;d<a.length;d++)b=a[d],c=b.field||b,b.custom?(this.storetree[d]=b.custom,b.custom._field=c):(this.storetree[d]=parse_tree(c,this.marker),b.filter&&("string"==typeof this.storetree[d]&&(this.storetree[d]=new String(this.storetree[d])),this.storetree[d]._filter=b.filter))}return c}function parse_tree(a,b){const c=a.split(":");let d=0;for(let e=0;e<c.length;e++)a=c[e],"]"===a[a.length-1]&&(a=a.substring(0,a.length-2),a&&(b[d]=!0)),a&&(c[d++]=a);return d<c.length&&(c.length=d),1<d?c:c[0]}Document.prototype.append=function(a,b){return this.add(a,b,!0)},Document.prototype.update=function(a,b){return this.remove(a).add(a,b)},Document.prototype.remove=function(a){is_object(a)&&(a=parse_simple(a,this.key));for(const b of this.index.values())b.remove(a,!0);if(this.reg.has(a)){if(this.tag&&!this.fastupdate)for(let b of this.tag.values())for(let c of b){const d=c[0],e=c[1],f=e.indexOf(a);-1<f&&(1<e.length?e.splice(f,1):b.delete(d))}this.store&&this.store.delete(a),this.reg.delete(a)}return this.cache&&this.cache.remove(a),this},Document.prototype.clear=function(){for(const a of this.index.values())a.clear();if(this.tag)for(const a of this.tag.values())a.clear();return this.store&&this.store.clear(),this},Document.prototype.contain=function(a){return this.db?this.index.get(this.field[0]).db.has(a):this.reg.has(a)},Document.prototype.cleanup=function(){for(const a of this.index.values())a.cleanup();return this},Document.prototype.get=function(a){return this.db?this.index.get(this.field[0]).db.enrich(a).then(function(a){return a[0]&&a[0].doc}):this.store.get(a)},Document.prototype.set=function(a,b){return this.store.set(a,b),this},Document.prototype.searchCache=searchCache,Document.prototype.export=exportDocument,Document.prototype.import=importDocument,apply_async(Document.prototype);

View File

@@ -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,serialize}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)},Index.prototype.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};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){const c=this,d=this.remove(a);return d&&d.then?d.then(()=>c.add(a,b)):this.add(a,b)};function cleanup_index(a){let b=0;if(is_array(a))for(let c,d=0;d<a.length;d++)(c=a[d])&&(b+=c.length);else for(const c of a){const d=c[0],e=c[1],f=cleanup_index(e);f?b+=f:a.delete(d)}return b}Index.prototype.cleanup=function(){return this.fastupdate?(cleanup_index(this.map),this.depth&&cleanup_index(this.ctx),this):(!1,this)},Index.prototype.searchCache=searchCache,Index.prototype.export=exportIndex,Index.prototype.import=importIndex,Index.prototype.serialize=serialize,apply_async(Index.prototype);
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,serialize}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=is_string(a.encoder)?Charset[a.encoder]: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=this.mount(e)),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)},Index.prototype.destroy=function(){return this.commit_timer&&(clearTimeout(this.commit_timer),this.commit_timer=null),this.db.destroy()};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){const c=this,d=this.remove(a);return d&&d.then?d.then(()=>c.add(a,b)):this.add(a,b)};function cleanup_index(a){let b=0;if(is_array(a))for(let c,d=0;d<a.length;d++)(c=a[d])&&(b+=c.length);else for(const c of a){const d=c[0],e=c[1],f=cleanup_index(e);f?b+=f:a.delete(d)}return b}Index.prototype.cleanup=function(){return this.fastupdate?(cleanup_index(this.map),this.depth&&cleanup_index(this.ctx),this):(!1,this)},Index.prototype.searchCache=searchCache,Index.prototype.export=exportIndex,Index.prototype.import=importIndex,Index.prototype.serialize=serialize,apply_async(Index.prototype);

View File

@@ -1 +1 @@
import{SearchOptions}from"../type.js";import{create_object,is_object,sort_by_length_down}from"../common.js";import Index from"../index.js";import default_compress from"../compress.js";import Resolver from"../resolver.js";import{intersect}from"../intersect.js";import resolve_default from"../resolve/default.js";let global_resolve=1;export function set_resolve(a){global_resolve=a}Index.prototype.search=function(a,b,c){c||(!b&&is_object(a)?(c=a,a=""):is_object(b)&&(c=b,b=0));let d,e,f,g,h,i,j=[],k=0;if(c?(a=c.query||a,b=c.limit||b,k=c.offset||0,e=c.context,f=c.suggest,g=global_resolve&&!1!==c.resolve,g||(global_resolve=0),h=g&&c.enrich,i=this.db&&c.tag):g=this.resolve||global_resolve,a=this.encoder.encode(a),d=a.length,b||!g||(b=100),1===d)return single_term_query.call(this,a[0],"",b,k,g,h,i);if(e=this.depth&&!1!==e,2===d&&e&&!f)return single_term_query.call(this,a[0],a[1],b,k,g,h,i);let l=0,m=0;if(1<d){const b=create_object(),c=[];for(let e,h=0;h<d;h++)if(e=a[h],e&&!b[e]){if(!f&&!this.db&&!this.get_array(e))return g?j:new Resolver(j);c.push(e),b[e]=1;const a=e.length;l=Math.max(l,a),m=m?Math.min(m,a):a}a=c,d=a.length}if(!d)return g?j:new Resolver(j);let n,o=0;if(1===d)return single_term_query.call(this,a[0],"",b,k,g,h,i);if(2===d&&e&&!f)return single_term_query.call(this,a[0],a[1],b,k,g,h,i);if(1<d&&(e?(n=a[0],o=1):9<l&&3<l/m&&a.sort(sort_by_length_down)),this.db){if(this.db.search){const c=this.db.search(this,a,b,k,f,g,h,i);if(!1!==c)return c}const c=this;return async function(){for(let e,h;o<d;o++){if(h=a[o],n?(e=await c.get_array(h,n),e=add_result(e,j,f,c.resolution_ctx,b,k,2===d),(!f||!1!==e||!j.length)&&(n=h)):(e=await c.get_array(h),e=add_result(e,j,f,c.resolution,b,k,1===d)),e)return e;if(f&&o==d-1){let a=j.length;if(!a){if(n){n="",o=-1;continue}return j}if(1===a)return g?resolve_default(j[0],b,k):new Resolver(j[0])}}return g?intersect(j,c.resolution,b,k,f):new Resolver(j[0])}()}for(let e,h;o<d;o++){if(h=a[o],n?(e=this.get_array(h,n),e=add_result(e,j,f,this.resolution_ctx,b,k,2===d),(!f||!1!==e||!j.length)&&(n=h)):(e=this.get_array(h),e=add_result(e,j,f,this.resolution,b,k,1===d)),e)return e;if(f&&o==d-1){const a=j.length;if(!a){if(n){n="",o=-1;continue}return j}if(1===a)return g?resolve_default(j[0],b,k):new Resolver(j[0])}}return j=intersect(j,this.resolution,b,k,f),g?j:new Resolver(j)};function single_term_query(a,b,c,d,e,f,g){const h=this.get_array(a,b,c,d,e,f,g);return this.db?h.then(function(a){return e?a:a&&a.length?e?resolve_default(a,c,d):new Resolver(a):e?[]:new Resolver([])}):h&&h.length?e?resolve_default(h,c,d):new Resolver(h):e?[]:new Resolver([])}function add_result(a,b,c,d,e,f,g){let h=[];if(a){d=Math.min(a.length,d);for(let b,c=0,i=0;c<d&&!((b=a[c])&&(f&&b&&g&&(b.length<=f?(f-=b.length,b=null):(b=b.slice(f),f=0)),b&&(h[c]=b,g&&(i+=b.length,i>=e))));c++);if(h.length)return g?resolve_default(h,e,0):void b.push(h)}return!c&&h}Index.prototype.get_array=function(a,b,c,d,e,f,g){let h,i;return(b&&(i=this.bidirectional&&a>b),this.compress&&(a=default_compress(a),b&&(b=default_compress(b))),this.db)?b?this.db.get(i?b:a,i?a:b,c,d,e,f,g):this.db.get(a,"",c,d,e,f,g):(b?(h=this.ctx.get(i?a:b),h=h&&h.get(i?b:a)):h=this.map.get(a),h)};
import{SearchOptions}from"../type.js";import{create_object,is_object,sort_by_length_down}from"../common.js";import Index from"../index.js";import default_compress from"../compress.js";import Resolver from"../resolver.js";import{intersect}from"../intersect.js";import resolve_default from"../resolve/default.js";let global_resolve=1;export function set_resolve(a){global_resolve=a}Index.prototype.search=function(a,b,c){c||(!b&&is_object(a)?(c=a,a=""):is_object(b)&&(c=b,b=0));let d,e,f,g,h,i,j=[],k=0;if(c?(a=c.query||a,b=c.limit||b,k=c.offset||0,e=c.context,f=c.suggest,g=global_resolve&&!1!==c.resolve,g||(global_resolve=0),h=g&&c.enrich,i=this.db&&c.tag):g=this.resolve||global_resolve,a=this.encoder.encode(a),d=a.length,b||!g||(b=100),1===d)return single_term_query.call(this,a[0],"",b,k,g,h,i);if(e=this.depth&&!1!==e,2===d&&e&&!f)return single_term_query.call(this,a[0],a[1],b,k,g,h,i);let l=0,m=0;if(1<d){const b=create_object(),c=[];for(let e,h=0;h<d;h++)if(e=a[h],e&&!b[e]){if(!f&&!this.db&&!this.get_array(e))return g?j:new Resolver(j);c.push(e),b[e]=1;const a=e.length;l=Math.max(l,a),m=m?Math.min(m,a):a}a=c,d=a.length}if(!d)return g?j:new Resolver(j);let n,o=0;if(1===d)return single_term_query.call(this,a[0],"",b,k,g,h,i);if(2===d&&e&&!f)return single_term_query.call(this,a[0],a[1],b,k,g,h,i);if(1<d&&(e?(n=a[0],o=1):9<l&&3<l/m&&a.sort(sort_by_length_down)),this.db){if(this.db.search){const c=this.db.search(this,a,b,k,f,g,h,i);if(!1!==c)return c}const c=this;return async function(){for(let e,h;o<d;o++){if(h=a[o],n?(e=await c.get_array(h,n,0,0,!1,!1),e=add_result(e,j,f,c.resolution_ctx),(!f||!1!==e||!j.length)&&(n=h)):(e=await c.get_array(h,"",0,0,!1,!1),e=add_result(e,j,f,c.resolution)),e)return e;if(f&&o==d-1){let a=j.length;if(!a){if(n){n="",o=-1;continue}return j}if(1===a)return g?resolve_default(j[0],b,k):new Resolver(j[0])}}return g?intersect(j,c.resolution,b,k,f):new Resolver(j[0])}()}for(let e,h;o<d;o++){if(h=a[o],n?(e=this.get_array(h,n,0,0,!1,!1),e=add_result(e,j,f,this.resolution_ctx),(!f||!1!==e||!j.length)&&(n=h)):(e=this.get_array(h,"",0,0,!1,!1),e=add_result(e,j,f,this.resolution)),e)return e;if(f&&o==d-1){const a=j.length;if(!a){if(n){n="",o=-1;continue}return j}if(1===a)return g?resolve_default(j[0],b,k):new Resolver(j[0])}}return j=intersect(j,this.resolution,b,k,f),g?j:new Resolver(j)};function single_term_query(a,b,c,d,e,f,g){const h=this.get_array(a,b,c,d,e,f,g);return this.db?h.then(function(a){return e?a:a&&a.length?e?resolve_default(a,c,d):new Resolver(a):e?[]:new Resolver([])}):h&&h.length?e?resolve_default(h,c,d):new Resolver(h):e?[]:new Resolver([])}function add_result(a,b,c,d){let e=[];if(a){d=Math.min(a.length,d);for(let b,c=0;c<d;c++)(b=a[c])&&b&&(e[c]=b);if(e.length)return void b.push(e)}return!c&&e}Index.prototype.get_array=function(a,b,c,d,e,f,g){let h,i;return(b&&(i=this.bidirectional&&a>b),this.compress&&(a=default_compress(a),b&&(b=default_compress(b))),this.db)?b?this.db.get(i?b:a,i?a:b,c,d,e,f,g):this.db.get(a,"",c,d,e,f,g):(b?(h=this.ctx.get(i?a:b),h=h&&h.get(i?b:a)):h=this.map.get(a),h)};

View File

@@ -1 +1 @@
import Encoder from"./encoder.js";import StorageInterface from"./db/interface.js";export let IndexOptions;export let DocumentIndexOptions;export let DocumentOptions;export let ContextOptions;export let DocumentDescriptor;export let TagOptions;export let StoreOptions;export let SearchOptions;export let DocumentSearchOptions;export let EncoderOptions;export let EncoderSplitOptions;export let PersistentOptions;
import Encoder from"./encoder.js";import StorageInterface from"./db/interface.js";export let IndexOptions={};export let DocumentIndexOptions={};export let DocumentOptions={};export let ContextOptions={};export let DocumentDescriptor={};export let TagOptions={};export let StoreOptions={};export let SearchOptions={};export let DocumentSearchOptions={};export let EncoderOptions={};export let EncoderSplitOptions={};export let PersistentOptions={};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{IndexOptions}from"./type.js";import{create_object,is_function,is_object,is_string}from"./common.js";import handler from"./worker/handler.js";let pid=0;export default function WorkerIndex(a){if(!this)return new WorkerIndex(a);a||(a={});let b="undefined"!=typeof self&&(self||window)._factory;b&&(b=b.toString());const c="undefined"==typeof window,d=this;(async function(){function e(a){a=a.data||a;const b=a.id,c=b&&d.resolver[b];c&&(c(a.msg),delete d.resolver[b])}if(this.worker=await create(b,c,a.worker),this.resolver=create_object(),!!this.worker)return c?this.worker.on("message",e):this.worker.onmessage=e,a.config?(delete a.db,new Promise(function(c){d.resolver[++pid]=function(){c(d)},d.worker.postMessage({id:pid,task:"init",factory:b,options:a})})):void this.worker.postMessage({task:"init",factory:b,options:a})}).call(this)}register("add"),register("append"),register("search"),register("update"),register("remove");function register(a){WorkerIndex.prototype[a]=WorkerIndex.prototype[a+"Async"]=function(){const b=this,c=[].slice.call(arguments),d=c[c.length-1];let e;is_function(d)&&(e=d,c.splice(c.length-1,1));const f=new Promise(function(d){b.resolver[++pid]=d,b.worker.postMessage({task:a,id:pid,args:c})});return e?(f.then(e),this):f}}async function create(a,b,c){let d;return d=b?"undefined"==typeof module?(0,eval)("new ((await import(\"worker_threads\"))[\"Worker\"])((1,eval)(\"import.meta.dirname\") + \"/node/node.mjs\")"):(0,eval)("new (require(\"worker_threads\")[\"Worker\"])(__dirname + \"/node/node.js\")"):a?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+handler.toString()],{type:"text/javascript"}))):new window.Worker(is_string(c)?c:"worker/worker.js",{type:"module"}),d}
import{IndexOptions}from"./type.js";import{create_object,is_function,is_object,is_string}from"./common.js";import handler from"./worker/handler.js";let pid=0;export default function WorkerIndex(a={}){function b(f){function g(a){a=a.data||a;const b=a.id,c=b&&e.resolver[b];c&&(c(a.msg),delete e.resolver[b])}return(this.worker=f||create(c,d,a.worker),this.worker.then)?this.worker.then(b):(this.resolver=create_object(),!!this.worker)?(d?this.worker.on("message",g):this.worker.onmessage=g,a.config)?new Promise(function(b){e.resolver[++pid]=function(){b(e)},e.worker.postMessage({id:pid,task:"init",factory:c,options:a})}):(this.worker.postMessage({task:"init",factory:c,options:a}),this.worker):void 0}if(!this)return new WorkerIndex(a);let c="undefined"==typeof self?"undefined"==typeof window?null:window._factory:self._factory;c&&(c=c.toString());const d="undefined"==typeof window,e=this;this.worker=b.call(this)}register("add"),register("append"),register("search"),register("update"),register("remove");function register(a){WorkerIndex.prototype[a]=WorkerIndex.prototype[a+"Async"]=async function(){const b=this,c=[].slice.call(arguments),d=c[c.length-1];let e;is_function(d)&&(e=d,c.splice(c.length-1,1));const f=new Promise(function(d){b.resolver[++pid]=d,b.worker.postMessage({task:a,id:pid,args:c})});return e?(f.then(e),this):f}}function create(a,b,c){let d;return d=b?"undefined"==typeof module?(0,eval)("import(\"worker_threads\").then(function(worker){ return new worker[\"Worker\"]((1,eval)(\"import.meta.dirname\") + \"/node/node.mjs\"); })"):(0,eval)("new (require(\"worker_threads\")[\"Worker\"])(__dirname + \"/node/node.js\")"):a?new window.Worker(URL.createObjectURL(new Blob(["onmessage="+handler.toString()],{type:"text/javascript"}))):new window.Worker(is_string(c)?c:"worker/worker.js",{type:"module"}),d}

View File

@@ -1 +1 @@
const{parentPort}=require("worker_threads"),{join}=require("path"),{Index}=require("../flexsearch.bundle.min.js");let index;parentPort.on("message",function(a){const b=a.args,c=a.task,d=a.id;switch(c){case"init":let e=a.options||{},f=e.config;f&&(e=require(f)),index=new Index(e);break;default:const g=index[c].apply(index,b);parentPort.postMessage("search"===c?{id:d,msg:g}:{id:d});}});
const{parentPort}=require("worker_threads"),{join}=require("path"),{Index}=require("../flexsearch.bundle.min.js");let index;parentPort.on("message",async function(a){const b=a.args,c=a.task,d=a.id;switch(c){case"init":let e=a.options||{},f=e.config;f&&(e=Object.assign({},e,require(f)),delete e.worker),index=new Index(e),parentPort.postMessage({id:d});break;default:const g=index[c].apply(index,b);parentPort.postMessage("search"===c?{id:d,msg:g}:{id:d});}});

View File

@@ -139,6 +139,7 @@ IdxDB.prototype.clear = function () {
};
IdxDB.prototype.get = function (key, ctx, limit = 0, offset = 0, resolve = /* tag? */!0, enrich = !1) {
console.log("!!!!!!!!!!!");
const transaction = this.db.transaction(ctx ? "ctx" : "map", "readonly"),
map = transaction.objectStore(ctx ? "ctx" : "map"),
req = map.get(ctx ? ctx + ":" + key : key),

View File

@@ -63,7 +63,8 @@ export default function PostgresDB(name, config = {}) {
this.id = (config.schema ? sanitize(config.schema) : defaults.schema) + (name ? "_" + sanitize(name) : "");
this.field = config.field ? "_" + sanitize(config.field) : "";
this.type = config.type ? types[config.type.toLowerCase()] : "text";
this.support_tag_search = /* tag? */!0 /*await rows.hasNext()*/ /*await rows.hasNext()*/ /*await rows.hasNext()*/;
this.support_tag_search =
/* tag? */!0 /*await rows.hasNext()*/ /*await rows.hasNext()*/ /*await rows.hasNext()*/;
if (!this.type) throw new Error("Unknown type of ID '" + config.type + "'");
this.db = DB || (DB = config.db || null);
Object.assign(defaults, config);

View File

@@ -49,7 +49,8 @@ export default function Document(options) {
this.cache = (tmp = options.cache || null) && new Cache(tmp);
// do not apply cache again for the indexes since .searchCache()
// is just a wrapper over .search()
options.cache = /* suggest */ /* append: */ /* enrich */!1;
options.cache = /* suggest */ /* append: */
/* enrich */!1;
this.worker = options.worker;
@@ -99,8 +100,22 @@ export default function Document(options) {
}
}
if (this.worker) {
const promises = [];
for (const index of this.index.values()) {
index.worker.then && promises.push(index.worker);
}
if (promises.length) {
const self = this;
return Promise.all(promises).then(function () {
return self;
});
}
} else {
options.db && this.mount(options.db);
}
}
Document.prototype.mount = function (db) {
@@ -209,8 +224,9 @@ function parse_descriptor(options, document) {
if (this.worker) {
const worker = new WorkerIndex(opt);
if (worker.worker) {
index.set(key, worker);
if (!worker.worker) {
} else {
// fallback when not supported
this.worker = !1;
}

View File

@@ -37,7 +37,7 @@ export default function Index(options, _register) {
/** @type ContextOptions */
const context = options.context || {},
encoder = options.encode || options.encoder || default_encoder;
encoder = is_string(options.encoder) ? Charset[options.encoder] : options.encode || options.encoder || default_encoder;
/** @type Encoder */
this.encoder = encoder.encode ? encoder : "object" == typeof encoder ? new Encoder(encoder) : { encode: encoder };
@@ -67,7 +67,7 @@ export default function Index(options, _register) {
this.resolve = !1 !== options.resolve;
if (tmp = options.db) {
this.db = tmp.mount(this);
this.db = this.mount(tmp);
}
this.commit_auto = !1 !== options.commit;
this.commit_task = [];

View File

@@ -173,6 +173,8 @@ Index.prototype.search = function (query, limit, options) {
}
}
// from this point there are just multi-term queries
if (this.db) {
if (this.db.search) {
@@ -190,10 +192,12 @@ Index.prototype.search = function (query, limit, options) {
if (keyword) {
arr = await self.get_array(term, keyword);
arr = add_result(arr, result, suggest, self.resolution_ctx,
/** @type {!number} */limit, offset, 2 === length
/*, term, keyword*/
arr = await self.get_array(term, keyword, 0, 0, !1, !1);
arr = add_result(arr, result, suggest, self.resolution_ctx
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 2
// /*, term, keyword*/
);
// the context is a moving window where the keyword is going forward like a cursor
@@ -204,10 +208,12 @@ Index.prototype.search = function (query, limit, options) {
}
} else {
arr = await self.get_array(term);
arr = add_result(arr, result, suggest, self.resolution,
/** @type {!number} */limit, offset, 1 === length
/*, term*/
arr = await self.get_array(term, "", 0, 0, !1, !1);
arr = add_result(arr, result, suggest, self.resolution
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 1
// /*, term*/
);
}
@@ -243,10 +249,12 @@ Index.prototype.search = function (query, limit, options) {
if (keyword) {
arr = this.get_array(term, keyword);
arr = /*this.*/add_result(arr, result, suggest, this.resolution_ctx,
/** @type {!number} */limit, offset, 2 === length
/*, term, keyword*/
arr = this.get_array(term, keyword, 0, 0, !1, !1);
arr = /*this.*/add_result(arr, result, suggest, this.resolution_ctx
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 2
// /*, term, keyword*/
);
// 1. when suggestion enabled just forward keyword if term was found
@@ -256,10 +264,12 @@ Index.prototype.search = function (query, limit, options) {
}
} else {
arr = this.get_array(term);
arr = /*this.*/add_result(arr, result, suggest, this.resolution,
/** @type {!number} */limit, offset, 1 === length
/*, term*/
arr = this.get_array(term, "", 0, 0, !1, !1);
arr = /*this.*/add_result(arr, result, suggest, this.resolution
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 1
// /*, term*/
);
}
@@ -327,13 +337,10 @@ function single_term_query(term, keyword, limit, offset, resolve, enrich, tag) {
* @param {Array} result
* @param {Array} suggest
* @param {number} resolution
* @param {number} limit
* @param {number} offset
* @param {boolean} single_term
* @return {Array|boolean|undefined}
*/
function add_result(arr, result, suggest, resolution, limit, offset, single_term /*, term, keyword*/) {
function add_result(arr, result, suggest, resolution /*, limit, offset single_term, term, keyword*/) {
let word_arr = [];
//let arr;// = keyword ? this.ctx : this.map;
@@ -345,21 +352,22 @@ function add_result(arr, result, suggest, resolution, limit, offset, single_term
// apply reduced resolution for queries
resolution = Math.min(arr.length, resolution);
for (let x = 0, size = 0, tmp; x < resolution; x++) {
for (let x = 0, tmp; x < resolution; x++) {
if (tmp = arr[x]) {
if (offset) {
// apply offset right here on single terms
if (tmp && single_term) {
if (tmp.length <= offset) {
offset -= tmp.length;
tmp = null;
} else {
tmp = tmp.slice(offset);
offset = 0;
}
}
}
// if(offset){
// // apply offset right here on single terms
// if(tmp && single_term){
// if(tmp.length <= offset){
// offset -= tmp.length;
// tmp = null;
// }
// else{
// tmp = tmp.slice(offset);
// offset = 0;
// }
// }
// }
if (tmp) {
@@ -368,25 +376,25 @@ function add_result(arr, result, suggest, resolution, limit, offset, single_term
// simplified score order:
//word_arr.push(tmp);
if (single_term) {
size += tmp.length;
if (size >= limit) {
// fast path:
// a single term does not need to pre-collect results
break;
}
}
// if(single_term){
// size += tmp.length;
// if(size >= limit){
// // fast path:
// // a single term does not need to pre-collect results
// break;
// }
// }
}
}
}
if (word_arr.length) {
if (single_term) {
// fast path optimization
// offset was already applied at this point
// return an array will stop the query process immediately
return resolve_default(word_arr, limit, 0);
}
// if(single_term){
// // fast path optimization
// // offset was already applied at this point
// // return an array will stop the query process immediately
// return resolve_default(word_arr, limit, 0);
// }
result.push(word_arr);
// return nothing will continue the query

26
dist/module/type.js vendored
View File

@@ -19,10 +19,11 @@ import StorageInterface from "./db/interface.js";
* resolve: [boolean=true],
* db: StorageInterface|undefined,
* commit: boolean=true,
* worker: boolean|string|undefined,
* config: string|undefined
* }}
*/
export let IndexOptions;
export let IndexOptions = {};
/**
* @typedef DocumentIndexOptions {{
@@ -40,13 +41,12 @@ export let IndexOptions;
* db: StorageInterface|undefined,
* commit: boolean=true,
* config: string|undefined,
*
* field: string,
* filter: Function|undefined,
* custom: Function|undefined
* }}
*/
export let DocumentIndexOptions;
export let DocumentIndexOptions = {};
/**
* @typedef DocumentOptions {{
@@ -66,7 +66,7 @@ export let DocumentIndexOptions;
* worker: boolean|string|undefined
* }}
*/
export let DocumentOptions;
export let DocumentOptions = {};
/**
* @typedef ContextOptions {{
@@ -75,7 +75,7 @@ export let DocumentOptions;
* resolution: number|undefined
* }}
*/
export let ContextOptions;
export let ContextOptions = {};
/**
* @typedef DocumentDescriptor {{
@@ -86,7 +86,7 @@ export let ContextOptions;
* store: StoreOptions|Array<StoreOptions>|undefined
* }}
*/
export let DocumentDescriptor;
export let DocumentDescriptor = {};
/**
* @typedef TagOptions {{
@@ -99,7 +99,7 @@ export let DocumentDescriptor;
* config: string|undefined
* }}
*/
export let TagOptions;
export let TagOptions = {};
/**
* @typedef StoreOptions {{
@@ -109,7 +109,7 @@ export let TagOptions;
* config: string|undefined
* }}
*/
export let StoreOptions;
export let StoreOptions = {};
/**
* @typedef SearchOptions {{
@@ -122,7 +122,7 @@ export let StoreOptions;
* enrich: [boolean=false],
* }}
*/
export let SearchOptions;
export let SearchOptions = {};
// tag: Array|undefined
/**
@@ -140,7 +140,7 @@ export let SearchOptions;
* merge: [boolean=false]
* }}
*/
export let DocumentSearchOptions;
export let DocumentSearchOptions = {};
/**
* @typedef EncoderOptions {{
@@ -161,7 +161,7 @@ export let DocumentSearchOptions;
* cache: boolean=true,
* }}
*/
export let EncoderOptions;
export let EncoderOptions = {};
/**
* @typedef EncoderSplitOptions {{
@@ -173,7 +173,7 @@ export let EncoderOptions;
* char: string|Array<string>|undefined,
* }}
*/
export let EncoderSplitOptions;
export let EncoderSplitOptions = {};
/**
* @typedef PersistentOptions {{
@@ -183,4 +183,4 @@ export let EncoderSplitOptions;
* db: *|undefined
* }}
*/
export let PersistentOptions;
export let PersistentOptions = {};

View File

@@ -44,6 +44,7 @@ import Charset from "./charset.js";
/** @export */Index.prototype.cache;
/** @export */Index.prototype.bypass;
/** @export */Index.prototype.document;
/** @export */Index.prototype.encoder;
/** @export */Document.prototype.add;
/** @export */Document.prototype.append;

43
dist/module/worker.js vendored
View File

@@ -1,4 +1,3 @@
//import { promise as Promise } from "../polyfill.js";
import { IndexOptions } from "./type.js";
import { create_object, is_function, is_object, is_string } from "./common.js";
import handler from "./worker/handler.js";
@@ -10,20 +9,15 @@ let pid = 0;
* @constructor
*/
export default function WorkerIndex(options) {
export default function WorkerIndex(options = {}) {
if (!this) {
return new WorkerIndex(options);
}
if (!options) {
options = {};
}
// the factory is the outer wrapper from the build
// we use "self" as a trap for node.js
let factory = "undefined" != typeof self && (self || window)._factory;
// it uses "self" as a trap for node.js
let factory = "undefined" != typeof self ? self._factory : "undefined" != typeof window ? window._factory : null;
if (factory) {
factory = factory.toString();
}
@@ -31,9 +25,18 @@ export default function WorkerIndex(options) {
const is_node_js = "undefined" == typeof window /*&& self["exports"]*/,
_self = this;
(async function () {
/**
* @param {Worker=} _worker
* @this {WorkerIndex}
*/
function init(_worker) {
this.worker = _worker || create(factory, is_node_js, options.worker);
if (this.worker.then) {
return this.worker.then(init);
}
this.worker = await create(factory, is_node_js, options.worker);
this.resolver = create_object();
if (!this.worker) {
@@ -55,14 +58,16 @@ export default function WorkerIndex(options) {
if (options.config) {
delete options.db;
//delete options.db;
// when extern configuration needs to be loaded
// it needs to return a promise to await for
return new Promise(function (resolve) {
_self.resolver[++pid] = function () {
resolve(_self);
};
_self.worker.postMessage({
id: pid,
task: "init",
@@ -77,7 +82,11 @@ export default function WorkerIndex(options) {
factory: factory,
options: options
});
}).call(this);
return this.worker;
}
this.worker = init.call(this);
}
register("add");
@@ -88,7 +97,7 @@ register("remove");
function register(key) {
WorkerIndex.prototype[key] = WorkerIndex.prototype[key + "Async"] = function () {
WorkerIndex.prototype[key] = WorkerIndex.prototype[key + "Async"] = async function () {
const self = this,
args = [].slice.call(arguments),
arg = args[args.length - 1];
@@ -121,14 +130,16 @@ function register(key) {
};
}
async function create(factory, is_node_js, worker_path) {
function create(factory, is_node_js, worker_path) {
let worker = is_node_js ?
// This eval will be removed when compiling, it isn't there in final build
"undefined" != typeof module ? (0, eval)('new (require("worker_threads")["Worker"])(__dirname + "/node/node.js")')
//: (0,eval)('new ((await import("worker_threads"))["Worker"])(import.meta.dirname + "/worker/node.mjs")')
: (0, eval)('new ((await import("worker_threads"))["Worker"])((1,eval)(\"import.meta.dirname\") + "/node/node.mjs")')
//: (0,eval)('new ((await import("worker_threads"))["Worker"])((1,eval)(\"import.meta.dirname\") + "/node/node.mjs")')
: (0, eval)('import("worker_threads").then(function(worker){ return new worker["Worker"]((1,eval)(\"import.meta.dirname\") + "/node/node.mjs"); })')
//: import("worker_threads").then(function(worker){ return new worker["Worker"](import.meta.dirname + "/worker/node.mjs"); })
//eval('new (require("worker_threads")["Worker"])(__dirname + "/node/node.js")')
: factory ? new window.Worker(URL.createObjectURL(new Blob(["onmessage=" + handler.toString()], { type: "text/javascript" }))) : new window.Worker(is_string(worker_path) ? worker_path : "worker/worker.js", { type: "module" });

View File

@@ -26,12 +26,6 @@ export default (async function (data) {
//options = await import(filepath);
}
// deprecated:
// const encode = options.encode;
// if(encode && (encode.indexOf("function") === 0)){
// options.encode = Function("return " + encode)();
// }
const factory = data.factory;
if (factory) {

View File

@@ -7,7 +7,7 @@ const { parentPort } = require("worker_threads"),
let index;
parentPort.on("message", function (data) {
parentPort.on("message", async function (data) {
/** @type Index */
const args = data.args,
@@ -20,25 +20,17 @@ parentPort.on("message", function (data) {
case "init":
let options = data.options || {},
filepath = options.config;
// load extern field configuration
// if(filepath && filepath[0] !== "/" && filepath[0] !== "\\"){
// // current working directory
// const dir = process.cwd();
// filepath = join(dir, filepath);
// }
if (filepath) {
options = require(filepath);
options = Object.assign({}, options, require(filepath));
delete options.worker;
}
// deprecated:
// const encode = options["encode"];
// if(encode && (encode.indexOf("function") === 0)){
// options["encode"] = new Function("return " + encode)();
// }
index = new Index(options);
//index.db && await index.db;
parentPort.postMessage({ id: id });
break;
default:

26
dist/node/node.js vendored
View File

@@ -6,7 +6,7 @@ const { Index } = require("../flexsearch.bundle.min.js");
let index;
parentPort.on("message", function(data){
parentPort.on("message", async function(data){
/** @type Index */
const args = data["args"];
@@ -18,30 +18,26 @@ parentPort.on("message", function(data){
case "init":
let options = data["options"] || {};
// load extern field configuration
let filepath = options["config"];
// if(filepath && filepath[0] !== "/" && filepath[0] !== "\\"){
// // current working directory
// const dir = process.cwd();
// filepath = join(dir, filepath);
// }
if(filepath){
options = require(filepath);
options = Object.assign({}, options, require(filepath));
delete options.worker;
}
// deprecated:
// const encode = options["encode"];
// if(encode && (encode.indexOf("function") === 0)){
// options["encode"] = new Function("return " + encode)();
// }
index = new Index(options);
//index.db && await index.db;
parentPort.postMessage({ "id": id });
break;
default:
const message = index[task].apply(index, args);
parentPort.postMessage(task === "search" ? { "id": id, "msg": message } : { "id": id });
parentPort.postMessage(
task === "search"
? { "id": id, "msg": message }
: { "id": id }
);
}
});

View File

@@ -75,8 +75,8 @@
"build:module:bundle:debug": "node task/build RELEASE=bundle.module DEBUG=true PROFILER=false SUPPORT_WORKER=true SUPPORT_ENCODER=true SUPPORT_CHARSET=true SUPPORT_CACHE=true SUPPORT_ASYNC=true SUPPORT_STORE=true SUPPORT_TAGS=true SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=true SUPPORT_DOCUMENT=true POLYFILL=false SUPPORT_PERSISTENT=true SUPPORT_RESOLVER=true SUPPORT_KEYSTORE=true SUPPORT_COMPRESSION=false FORMATTING=PRETTY_PRINT",
"build:module:compact": "node task/build RELEASE=compact.module DEBUG=false PROFILER=false SUPPORT_WORKER=false SUPPORT_ENCODER=true SUPPORT_CHARSET=true SUPPORT_CACHE=false SUPPORT_ASYNC=true SUPPORT_STORE=true SUPPORT_TAGS=false SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=true SUPPORT_DOCUMENT=true POLYFILL=false SUPPORT_PERSISTENT=false SUPPORT_RESOLVER=false SUPPORT_KEYSTORE=false SUPPORT_COMPRESSION=false",
"build:module:compact:debug": "node task/build RELEASE=compact.module DEBUG=true PROFILER=false SUPPORT_WORKER=false SUPPORT_ENCODER=true SUPPORT_CHARSET=true SUPPORT_CACHE=false SUPPORT_ASYNC=true SUPPORT_STORE=true SUPPORT_TAGS=false SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=true SUPPORT_DOCUMENT=true POLYFILL=false SUPPORT_PERSISTENT=false SUPPORT_RESOLVER=false SUPPORT_KEYSTORE=false SUPPORT_COMPRESSION=false FORMATTING=PRETTY_PRINT",
"build:module:light": "node task/build RELEASE=light.module DEBUG=false PROFILER=false SUPPORT_WORKER=false SUPPORT_ENCODER=false SUPPORT_CHARSET=true SUPPORT_CACHE=true SUPPORT_ASYNC=false SUPPORT_STORE=false SUPPORT_TAGS=false SUPPORT_SUGGESTION=false SUPPORT_SERIALIZE=false SUPPORT_DOCUMENT=false POLYFILL=false SUPPORT_PERSISTENT=false SUPPORT_RESOLVER=false SUPPORT_KEYSTORE=false SUPPORT_COMPRESSION=false",
"build:module:light:debug": "node task/build RELEASE=light.module DEBUG=true PROFILER=false SUPPORT_WORKER=false SUPPORT_ENCODER=false SUPPORT_CHARSET=true SUPPORT_CACHE=true SUPPORT_ASYNC=false SUPPORT_STORE=false SUPPORT_TAGS=false SUPPORT_SUGGESTION=false SUPPORT_SERIALIZE=false SUPPORT_DOCUMENT=false POLYFILL=false SUPPORT_PERSISTENT=false SUPPORT_RESOLVER=false SUPPORT_KEYSTORE=false SUPPORT_COMPRESSION=false FORMATTING=PRETTY_PRINT",
"build:module:light": "node task/build RELEASE=light.module DEBUG=false PROFILER=false SUPPORT_WORKER=false SUPPORT_ENCODER=false SUPPORT_CHARSET=true SUPPORT_CACHE=true SUPPORT_ASYNC=false SUPPORT_STORE=false SUPPORT_TAGS=false SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=false SUPPORT_DOCUMENT=false POLYFILL=false SUPPORT_PERSISTENT=false SUPPORT_RESOLVER=false SUPPORT_KEYSTORE=false SUPPORT_COMPRESSION=false",
"build:module:light:debug": "node task/build RELEASE=light.module DEBUG=true PROFILER=false SUPPORT_WORKER=false SUPPORT_ENCODER=false SUPPORT_CHARSET=true SUPPORT_CACHE=true SUPPORT_ASYNC=false SUPPORT_STORE=false SUPPORT_TAGS=false SUPPORT_SUGGESTION=true SUPPORT_SERIALIZE=false SUPPORT_DOCUMENT=false POLYFILL=false SUPPORT_PERSISTENT=false SUPPORT_RESOLVER=false SUPPORT_KEYSTORE=false SUPPORT_COMPRESSION=false FORMATTING=PRETTY_PRINT",
"build:all": "npm run build:bundle && npm run build:bundle:debug && npm run build:light && npm run build:light:debug && npm run build:compact && npm run build:compact:debug && npm run build:module && npm run build:module:debug && npm run build:module:min && npm run build:module:bundle && npm run build:module:bundle:debug && npm run build:module:light && npm run build:module:light:debug && npm run build:module:compact && npm run build:module:compact:debug && npm run build:lang && npm run build:es5 && npm run build:es5:debug",
"build:custom": "node task/build RELEASE=custom",
"test": "cd test && npm install && npm run test"

View File

@@ -128,7 +128,19 @@ export default function Document(options){
}
}
if(SUPPORT_PERSISTENT){
if(SUPPORT_WORKER && this.worker){
const promises = [];
for(const index of this.index.values()){
index.worker.then && promises.push(index.worker);
}
if(promises.length){
const self = this;
return Promise.all(promises).then(function(){
return self;
});
}
}
else if(SUPPORT_PERSISTENT){
options.db && this.mount(options.db);
}
}
@@ -247,8 +259,10 @@ function parse_descriptor(options, document){
if(SUPPORT_WORKER && this.worker){
const worker = new WorkerIndex(opt);
if(worker.worker){
index.set(key, worker);
if(!worker.worker){
}
else{
// fallback when not supported
this.worker = false;
}

View File

@@ -59,7 +59,9 @@ export default function Index(options, _register){
/** @type ContextOptions */
const context = options.context || {};
const encoder = options.encode || options.encoder || (
const encoder = SUPPORT_CHARSET && is_string(options.encoder)
? Charset[options.encoder]
: options.encode || options.encoder || (
SUPPORT_ENCODER ? default_encoder : function(str){
return str.toLowerCase().trim().split(/\s+/);
}
@@ -109,7 +111,7 @@ export default function Index(options, _register){
if(SUPPORT_PERSISTENT){
if((tmp = options.db)){
this.db = tmp.mount(this);
this.db = this.mount(tmp);
}
this.commit_auto = options.commit !== false;
this.commit_task = [];

View File

@@ -209,6 +209,8 @@ Index.prototype.search = function(query, limit, options){
}
}
// from this point there are just multi-term queries
if(SUPPORT_PERSISTENT && this.db){
if(this.db.search){
@@ -226,16 +228,16 @@ Index.prototype.search = function(query, limit, options){
if(keyword){
arr = await self.get_array(term, keyword);
arr = await self.get_array(term, keyword, 0, 0, false, false);
arr = add_result(
arr,
result,
suggest,
self.resolution_ctx,
/** @type {!number} */ (limit),
offset,
length === 2
/*, term, keyword*/
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 2
// /*, term, keyword*/
);
// the context is a moving window where the keyword is going forward like a cursor
@@ -247,16 +249,16 @@ Index.prototype.search = function(query, limit, options){
}
else{
arr = await self.get_array(term);
arr = await self.get_array(term, "", 0, 0, false, false);
arr = add_result(
arr,
result,
suggest,
self.resolution,
/** @type {!number} */ (limit),
offset,
length === 1
/*, term*/
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 1
// /*, term*/
);
}
@@ -297,16 +299,16 @@ Index.prototype.search = function(query, limit, options){
if(keyword){
arr = this.get_array(term, keyword);
arr = this.get_array(term, keyword, 0, 0, false, false);
arr = /*this.*/add_result(
arr,
result,
suggest,
this.resolution_ctx,
/** @type {!number} */ (limit),
offset,
length === 2
/*, term, keyword*/
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 2
// /*, term, keyword*/
);
// 1. when suggestion enabled just forward keyword if term was found
@@ -317,16 +319,16 @@ Index.prototype.search = function(query, limit, options){
}
else{
arr = this.get_array(term);
arr = this.get_array(term, "", 0, 0, false, false);
arr = /*this.*/add_result(
arr,
result,
suggest,
this.resolution,
/** @type {!number} */ (limit),
offset,
length === 1
/*, term*/
// 0, // /** @type {!number} */ (limit),
// 0, // offset,
// length === 1
// /*, term*/
);
}
@@ -402,13 +404,10 @@ function single_term_query(term, keyword, limit, offset, resolve, enrich, tag){
* @param {Array} result
* @param {Array} suggest
* @param {number} resolution
* @param {number} limit
* @param {number} offset
* @param {boolean} single_term
* @return {Array|boolean|undefined}
*/
function add_result(arr, result, suggest, resolution, limit, offset, single_term/*, term, keyword*/){
function add_result(arr, result, suggest, resolution/*, limit, offset single_term, term, keyword*/){
let word_arr = [];
//let arr;// = keyword ? this.ctx : this.map;
@@ -423,19 +422,19 @@ function add_result(arr, result, suggest, resolution, limit, offset, single_term
for(let x = 0, size = 0, tmp; x < resolution; x++){
if((tmp = arr[x])){
if(offset){
// apply offset right here on single terms
if(tmp && single_term){
if(tmp.length <= offset){
offset -= tmp.length;
tmp = null;
}
else{
tmp = tmp.slice(offset);
offset = 0;
}
}
}
// if(offset){
// // apply offset right here on single terms
// if(tmp && single_term){
// if(tmp.length <= offset){
// offset -= tmp.length;
// tmp = null;
// }
// else{
// tmp = tmp.slice(offset);
// offset = 0;
// }
// }
// }
if(tmp){
@@ -444,25 +443,25 @@ function add_result(arr, result, suggest, resolution, limit, offset, single_term
// simplified score order:
//word_arr.push(tmp);
if(single_term){
size += tmp.length;
if(size >= limit){
// fast path:
// a single term does not need to pre-collect results
break;
}
}
// if(single_term){
// size += tmp.length;
// if(size >= limit){
// // fast path:
// // a single term does not need to pre-collect results
// break;
// }
// }
}
}
}
if(word_arr.length){
if(single_term){
// fast path optimization
// offset was already applied at this point
// return an array will stop the query process immediately
return resolve_default(word_arr, limit, 0);
}
// if(single_term){
// // fast path optimization
// // offset was already applied at this point
// // return an array will stop the query process immediately
// return resolve_default(word_arr, limit, 0);
// }
result.push(word_arr);
// return nothing will continue the query

View File

@@ -19,10 +19,11 @@ import StorageInterface from "./db/interface.js";
* resolve: [boolean=true],
* db: StorageInterface|undefined,
* commit: boolean=true,
* worker: boolean|string|undefined,
* config: string|undefined
* }}
*/
export let IndexOptions;
export let IndexOptions = {};
/**
* @typedef DocumentIndexOptions {{
@@ -40,13 +41,12 @@ export let IndexOptions;
* db: StorageInterface|undefined,
* commit: boolean=true,
* config: string|undefined,
*
* field: string,
* filter: Function|undefined,
* custom: Function|undefined
* }}
*/
export let DocumentIndexOptions;
export let DocumentIndexOptions = {};
/**
* @typedef DocumentOptions {{
@@ -66,7 +66,7 @@ export let DocumentIndexOptions;
* worker: boolean|string|undefined
* }}
*/
export let DocumentOptions;
export let DocumentOptions = {};
/**
* @typedef ContextOptions {{
@@ -75,7 +75,7 @@ export let DocumentOptions;
* resolution: number|undefined
* }}
*/
export let ContextOptions;
export let ContextOptions = {};
/**
* @typedef DocumentDescriptor {{
@@ -86,7 +86,7 @@ export let ContextOptions;
* store: StoreOptions|Array<StoreOptions>|undefined
* }}
*/
export let DocumentDescriptor;
export let DocumentDescriptor = {};
/**
* @typedef TagOptions {{
@@ -99,7 +99,7 @@ export let DocumentDescriptor;
* config: string|undefined
* }}
*/
export let TagOptions;
export let TagOptions = {};
/**
* @typedef StoreOptions {{
@@ -109,7 +109,7 @@ export let TagOptions;
* config: string|undefined
* }}
*/
export let StoreOptions;
export let StoreOptions = {};
/**
* @typedef SearchOptions {{
@@ -122,7 +122,7 @@ export let StoreOptions;
* enrich: [boolean=false],
* }}
*/
export let SearchOptions;
export let SearchOptions = {};
// tag: Array|undefined
/**
@@ -140,7 +140,7 @@ export let SearchOptions;
* merge: [boolean=false]
* }}
*/
export let DocumentSearchOptions;
export let DocumentSearchOptions = {};
/**
* @typedef EncoderOptions {{
@@ -161,7 +161,7 @@ export let DocumentSearchOptions;
* cache: boolean=true,
* }}
*/
export let EncoderOptions;
export let EncoderOptions = {};
/**
* @typedef EncoderSplitOptions {{
@@ -173,7 +173,7 @@ export let EncoderOptions;
* char: string|Array<string>|undefined,
* }}
*/
export let EncoderSplitOptions;
export let EncoderSplitOptions = {};
/**
* @typedef PersistentOptions {{
@@ -183,4 +183,4 @@ export let EncoderSplitOptions;
* db: *|undefined
* }}
*/
export let PersistentOptions;
export let PersistentOptions = {};

View File

@@ -71,6 +71,7 @@ if(SUPPORT_PERSISTENT){
/** @export */ Index.prototype.cache;
/** @export */ Index.prototype.bypass;
/** @export */ Index.prototype.document;
/** @export */ Index.prototype.encoder;
}
/** @export */ Document.prototype.add;

View File

@@ -1,4 +1,3 @@
//import { promise as Promise } from "../polyfill.js";
import { IndexOptions } from "./type.js";
import { create_object, is_function, is_object, is_string } from "./common.js";
import handler from "./worker/handler.js";
@@ -10,27 +9,19 @@ let pid = 0;
* @constructor
*/
export default function WorkerIndex(options){
export default function WorkerIndex(options = {}){
if(!this) {
return new WorkerIndex(options);
}
if(options){
// deprecated:
// was replaced by dynamic config loading
// if(is_function(options.encode)){
// options.encode = options.encode.toString();
// }
}
else{
options = {};
}
// the factory is the outer wrapper from the build
// we use "self" as a trap for node.js
let factory = typeof self !== "undefined" && (self||window)["_factory"];
// it uses "self" as a trap for node.js
let factory = typeof self !== "undefined"
? self["_factory"]
: typeof window !== "undefined"
? window["_factory"]
: null;
if(factory){
factory = factory.toString();
}
@@ -38,9 +29,18 @@ export default function WorkerIndex(options){
const is_node_js = typeof window === "undefined" /*&& self["exports"]*/;
const _self = this;
(async function(){
/**
* @param {Worker=} _worker
* @this {WorkerIndex}
*/
function init(_worker){
this.worker = _worker || create(factory, is_node_js, options.worker);
if(this.worker.then){
return this.worker.then(init);
}
this.worker = await create(factory, is_node_js, options.worker);
this.resolver = create_object();
if(!this.worker){
@@ -63,14 +63,16 @@ export default function WorkerIndex(options){
if(options.config){
delete options.db;
//delete options.db;
// when extern configuration needs to be loaded
// it needs to return a promise to await for
return new Promise(function(resolve){
_self.resolver[++pid] = function(){
resolve(_self);
};
_self.worker.postMessage({
"id": pid,
"task": "init",
@@ -86,7 +88,10 @@ export default function WorkerIndex(options){
"options": options
});
}.call(this));
return this.worker;
}
this.worker = init.call(this);
}
register("add");
@@ -98,7 +103,7 @@ register("remove");
function register(key){
WorkerIndex.prototype[key] =
WorkerIndex.prototype[key + "Async"] = function(){
WorkerIndex.prototype[key + "Async"] = async function(){
const self = this;
const args = [].slice.call(arguments);
@@ -132,7 +137,7 @@ function register(key){
};
}
async function create(factory, is_node_js, worker_path){
function create(factory, is_node_js, worker_path){
let worker
@@ -142,7 +147,9 @@ async function create(factory, is_node_js, worker_path){
typeof module !== "undefined"
? (0,eval)('new (require("worker_threads")["Worker"])(__dirname + "/node/node.js")')
//: (0,eval)('new ((await import("worker_threads"))["Worker"])(import.meta.dirname + "/worker/node.mjs")')
: (0,eval)('new ((await import("worker_threads"))["Worker"])((1,eval)(\"import.meta.dirname\") + "/node/node.mjs")')
//: (0,eval)('new ((await import("worker_threads"))["Worker"])((1,eval)(\"import.meta.dirname\") + "/node/node.mjs")')
: (0,eval)('import("worker_threads").then(function(worker){ return new worker["Worker"]((1,eval)(\"import.meta.dirname\") + "/node/node.mjs"); })')
//: import("worker_threads").then(function(worker){ return new worker["Worker"](import.meta.dirname + "/worker/node.mjs"); })
//eval('new (require("worker_threads")["Worker"])(__dirname + "/node/node.js")')
:(

View File

@@ -24,12 +24,6 @@ export default async function(data) {
//options = await import(filepath);
}
// deprecated:
// const encode = options.encode;
// if(encode && (encode.indexOf("function") === 0)){
// options.encode = Function("return " + encode)();
// }
const factory = data["factory"];
if(factory){
@@ -55,6 +49,10 @@ export default async function(data) {
const id = data["id"];
const message = index[task].apply(index, args);
postMessage(task === "search" ? { "id": id, "msg": message } : { "id": id });
postMessage(
task === "search"
? { "id": id, "msg": message }
: { "id": id }
);
}
};

View File

@@ -6,7 +6,7 @@ const { Index } = require("../flexsearch.bundle.min.js");
let index;
parentPort.on("message", function(data){
parentPort.on("message", async function(data){
/** @type Index */
const args = data["args"];
@@ -18,30 +18,26 @@ parentPort.on("message", function(data){
case "init":
let options = data["options"] || {};
// load extern field configuration
let filepath = options["config"];
// if(filepath && filepath[0] !== "/" && filepath[0] !== "\\"){
// // current working directory
// const dir = process.cwd();
// filepath = join(dir, filepath);
// }
if(filepath){
options = require(filepath);
options = Object.assign({}, options, require(filepath));
delete options.worker;
}
// deprecated:
// const encode = options["encode"];
// if(encode && (encode.indexOf("function") === 0)){
// options["encode"] = new Function("return " + encode)();
// }
index = new Index(options);
//index.db && await index.db;
parentPort.postMessage({ "id": id });
break;
default:
const message = index[task].apply(index, args);
parentPort.postMessage(task === "search" ? { "id": id, "msg": message } : { "id": id });
parentPort.postMessage(
task === "search"
? { "id": id, "msg": message }
: { "id": id }
);
}
});

View File

@@ -1,8 +1,9 @@
import { parentPort } from "worker_threads";
import { join } from "path";
// Test Path
import { Index } from "../../dist/flexsearch.bundle.module.min.js";
//import { Index } from "../flexsearch.bundle.module.min.js";
//import Index from "../../src/index.js";
//import { Index } from "../../dist/flexsearch.bundle.module.min.js";
import { Index } from "../flexsearch.bundle.module.min.js";
let index;
@@ -18,25 +19,27 @@ parentPort.on("message", async function(data){
case "init":
let options = data["options"] || {};
// load extern field configuration
let filepath = options["config"];
// if(filepath && filepath[0] !== "/" && filepath[0] !== "\\"){
// // current working directory
// const dir = process.cwd();
// filepath = "file:///" + join(dir, filepath);
// }
if(filepath){
filepath = "file:///" + filepath;
options = await import(filepath);
filepath = join("file://", filepath);
options = Object.assign({}, options, (await import(filepath))["default"]);
delete options.worker;
}
index = new Index(options);
//index.db && await index.db;
parentPort.postMessage({ "id": id });
break;
default:
const message = index[task].apply(index, args);
parentPort.postMessage(task === "search" ? { "id": id, "msg": message } : { "id": id });
parentPort.postMessage(
task === "search"
? { "id": id, "msg": message }
: { "id": id }
);
}
});