diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0273926 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# Changelog + +## 1.0.0 (2022-09-04) + +### Features + +- add `Compression` ([0147449](https://github.com/binden-js/compression/commit/0147449d1ea8f5ad3f6cf54b953c78efa8c40b65)) + +### Performance Improvements + +- drop Node `<18.8.0` support ([6a979d2](https://github.com/binden-js/compression/commit/6a979d27309b61a931f475ed84fe04ccd33b9ca9)) +- remove `x-gzip` from supported options ([0605dab](https://github.com/binden-js/compression/commit/0605dab10a449124617b7cc80838c1c32fe99418)) diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css new file mode 100644 index 0000000..4058843 --- /dev/null +++ b/docs/assets/highlight.css @@ -0,0 +1,74 @@ +:root { + --light-hl-0: #000000; + --dark-hl-0: #d4d4d4; + --light-hl-1: #af00db; + --dark-hl-1: #c586c0; + --light-hl-2: #001080; + --dark-hl-2: #9cdcfe; + --light-hl-3: #a31515; + --dark-hl-3: #ce9178; + --light-hl-4: #795e26; + --dark-hl-4: #dcdcaa; + --light-code-background: #ffffff; + --dark-code-background: #1e1e1e; +} + +@media (prefers-color-scheme: light) { + :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --code-background: var(--light-code-background); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --code-background: var(--dark-code-background); + } +} + +:root[data-theme="light"] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --code-background: var(--light-code-background); +} + +:root[data-theme="dark"] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --code-background: var(--dark-code-background); +} + +.hl-0 { + color: var(--hl-0); +} +.hl-1 { + color: var(--hl-1); +} +.hl-2 { + color: var(--hl-2); +} +.hl-3 { + color: var(--hl-3); +} +.hl-4 { + color: var(--hl-4); +} +pre, +code { + background: var(--code-background); +} diff --git a/docs/assets/main.js b/docs/assets/main.js new file mode 100644 index 0000000..f248f82 --- /dev/null +++ b/docs/assets/main.js @@ -0,0 +1,2241 @@ +"use strict"; +"use strict"; +(() => { + var Qe = Object.create; + var ae = Object.defineProperty; + var Pe = Object.getOwnPropertyDescriptor; + var Ce = Object.getOwnPropertyNames; + var Oe = Object.getPrototypeOf, + Re = Object.prototype.hasOwnProperty; + var _e = (t, e) => () => ( + e || t((e = { exports: {} }).exports, e), e.exports + ); + var Me = (t, e, n, r) => { + if ((e && typeof e == "object") || typeof e == "function") + for (let i of Ce(e)) + !Re.call(t, i) && + i !== n && + ae(t, i, { + get: () => e[i], + enumerable: !(r = Pe(e, i)) || r.enumerable, + }); + return t; + }; + var De = (t, e, n) => ( + (n = t != null ? Qe(Oe(t)) : {}), + Me( + e || !t || !t.__esModule + ? ae(n, "default", { value: t, enumerable: !0 }) + : n, + t + ) + ); + var de = _e((ce, he) => { + (function () { + var t = function (e) { + var n = new t.Builder(); + return ( + n.pipeline.add(t.trimmer, t.stopWordFilter, t.stemmer), + n.searchPipeline.add(t.stemmer), + e.call(n, n), + n.build() + ); + }; + t.version = "2.3.9"; + (t.utils = {}), + (t.utils.warn = (function (e) { + return function (n) { + e.console && console.warn && console.warn(n); + }; + })(this)), + (t.utils.asString = function (e) { + return e == null ? "" : e.toString(); + }), + (t.utils.clone = function (e) { + if (e == null) return e; + for ( + var n = Object.create(null), r = Object.keys(e), i = 0; + i < r.length; + i++ + ) { + var s = r[i], + o = e[s]; + if (Array.isArray(o)) { + n[s] = o.slice(); + continue; + } + if ( + typeof o == "string" || + typeof o == "number" || + typeof o == "boolean" + ) { + n[s] = o; + continue; + } + throw new TypeError( + "clone is not deep and does not support nested objects" + ); + } + return n; + }), + (t.FieldRef = function (e, n, r) { + (this.docRef = e), (this.fieldName = n), (this._stringValue = r); + }), + (t.FieldRef.joiner = "/"), + (t.FieldRef.fromString = function (e) { + var n = e.indexOf(t.FieldRef.joiner); + if (n === -1) throw "malformed field ref string"; + var r = e.slice(0, n), + i = e.slice(n + 1); + return new t.FieldRef(i, r, e); + }), + (t.FieldRef.prototype.toString = function () { + return ( + this._stringValue == null && + (this._stringValue = + this.fieldName + t.FieldRef.joiner + this.docRef), + this._stringValue + ); + }); + (t.Set = function (e) { + if (((this.elements = Object.create(null)), e)) { + this.length = e.length; + for (var n = 0; n < this.length; n++) this.elements[e[n]] = !0; + } else this.length = 0; + }), + (t.Set.complete = { + intersect: function (e) { + return e; + }, + union: function () { + return this; + }, + contains: function () { + return !0; + }, + }), + (t.Set.empty = { + intersect: function () { + return this; + }, + union: function (e) { + return e; + }, + contains: function () { + return !1; + }, + }), + (t.Set.prototype.contains = function (e) { + return !!this.elements[e]; + }), + (t.Set.prototype.intersect = function (e) { + var n, + r, + i, + s = []; + if (e === t.Set.complete) return this; + if (e === t.Set.empty) return e; + this.length < e.length + ? ((n = this), (r = e)) + : ((n = e), (r = this)), + (i = Object.keys(n.elements)); + for (var o = 0; o < i.length; o++) { + var a = i[o]; + a in r.elements && s.push(a); + } + return new t.Set(s); + }), + (t.Set.prototype.union = function (e) { + return e === t.Set.complete + ? t.Set.complete + : e === t.Set.empty + ? this + : new t.Set( + Object.keys(this.elements).concat(Object.keys(e.elements)) + ); + }), + (t.idf = function (e, n) { + var r = 0; + for (var i in e) i != "_index" && (r += Object.keys(e[i]).length); + var s = (n - r + 0.5) / (r + 0.5); + return Math.log(1 + Math.abs(s)); + }), + (t.Token = function (e, n) { + (this.str = e || ""), (this.metadata = n || {}); + }), + (t.Token.prototype.toString = function () { + return this.str; + }), + (t.Token.prototype.update = function (e) { + return (this.str = e(this.str, this.metadata)), this; + }), + (t.Token.prototype.clone = function (e) { + return ( + (e = + e || + function (n) { + return n; + }), + new t.Token(e(this.str, this.metadata), this.metadata) + ); + }); + (t.tokenizer = function (e, n) { + if (e == null || e == null) return []; + if (Array.isArray(e)) + return e.map(function (m) { + return new t.Token( + t.utils.asString(m).toLowerCase(), + t.utils.clone(n) + ); + }); + for ( + var r = e.toString().toLowerCase(), + i = r.length, + s = [], + o = 0, + a = 0; + o <= i; + o++ + ) { + var u = r.charAt(o), + l = o - a; + if (u.match(t.tokenizer.separator) || o == i) { + if (l > 0) { + var h = t.utils.clone(n) || {}; + (h.position = [a, l]), + (h.index = s.length), + s.push(new t.Token(r.slice(a, o), h)); + } + a = o + 1; + } + } + return s; + }), + (t.tokenizer.separator = /[\s\-]+/); + (t.Pipeline = function () { + this._stack = []; + }), + (t.Pipeline.registeredFunctions = Object.create(null)), + (t.Pipeline.registerFunction = function (e, n) { + n in this.registeredFunctions && + t.utils.warn("Overwriting existing registered function: " + n), + (e.label = n), + (t.Pipeline.registeredFunctions[e.label] = e); + }), + (t.Pipeline.warnIfFunctionNotRegistered = function (e) { + var n = e.label && e.label in this.registeredFunctions; + n || + t.utils.warn( + `Function is not registered with pipeline. This may cause problems when serialising the index. +`, + e + ); + }), + (t.Pipeline.load = function (e) { + var n = new t.Pipeline(); + return ( + e.forEach(function (r) { + var i = t.Pipeline.registeredFunctions[r]; + if (i) n.add(i); + else throw new Error("Cannot load unregistered function: " + r); + }), + n + ); + }), + (t.Pipeline.prototype.add = function () { + var e = Array.prototype.slice.call(arguments); + e.forEach(function (n) { + t.Pipeline.warnIfFunctionNotRegistered(n), this._stack.push(n); + }, this); + }), + (t.Pipeline.prototype.after = function (e, n) { + t.Pipeline.warnIfFunctionNotRegistered(n); + var r = this._stack.indexOf(e); + if (r == -1) throw new Error("Cannot find existingFn"); + (r = r + 1), this._stack.splice(r, 0, n); + }), + (t.Pipeline.prototype.before = function (e, n) { + t.Pipeline.warnIfFunctionNotRegistered(n); + var r = this._stack.indexOf(e); + if (r == -1) throw new Error("Cannot find existingFn"); + this._stack.splice(r, 0, n); + }), + (t.Pipeline.prototype.remove = function (e) { + var n = this._stack.indexOf(e); + n != -1 && this._stack.splice(n, 1); + }), + (t.Pipeline.prototype.run = function (e) { + for (var n = this._stack.length, r = 0; r < n; r++) { + for (var i = this._stack[r], s = [], o = 0; o < e.length; o++) { + var a = i(e[o], o, e); + if (!(a == null || a === "")) + if (Array.isArray(a)) + for (var u = 0; u < a.length; u++) s.push(a[u]); + else s.push(a); + } + e = s; + } + return e; + }), + (t.Pipeline.prototype.runString = function (e, n) { + var r = new t.Token(e, n); + return this.run([r]).map(function (i) { + return i.toString(); + }); + }), + (t.Pipeline.prototype.reset = function () { + this._stack = []; + }), + (t.Pipeline.prototype.toJSON = function () { + return this._stack.map(function (e) { + return t.Pipeline.warnIfFunctionNotRegistered(e), e.label; + }); + }); + (t.Vector = function (e) { + (this._magnitude = 0), (this.elements = e || []); + }), + (t.Vector.prototype.positionForIndex = function (e) { + if (this.elements.length == 0) return 0; + for ( + var n = 0, + r = this.elements.length / 2, + i = r - n, + s = Math.floor(i / 2), + o = this.elements[s * 2]; + i > 1 && (o < e && (n = s), o > e && (r = s), o != e); + + ) + (i = r - n), + (s = n + Math.floor(i / 2)), + (o = this.elements[s * 2]); + if (o == e || o > e) return s * 2; + if (o < e) return (s + 1) * 2; + }), + (t.Vector.prototype.insert = function (e, n) { + this.upsert(e, n, function () { + throw "duplicate index"; + }); + }), + (t.Vector.prototype.upsert = function (e, n, r) { + this._magnitude = 0; + var i = this.positionForIndex(e); + this.elements[i] == e + ? (this.elements[i + 1] = r(this.elements[i + 1], n)) + : this.elements.splice(i, 0, e, n); + }), + (t.Vector.prototype.magnitude = function () { + if (this._magnitude) return this._magnitude; + for (var e = 0, n = this.elements.length, r = 1; r < n; r += 2) { + var i = this.elements[r]; + e += i * i; + } + return (this._magnitude = Math.sqrt(e)); + }), + (t.Vector.prototype.dot = function (e) { + for ( + var n = 0, + r = this.elements, + i = e.elements, + s = r.length, + o = i.length, + a = 0, + u = 0, + l = 0, + h = 0; + l < s && h < o; + + ) + (a = r[l]), + (u = i[h]), + a < u + ? (l += 2) + : a > u + ? (h += 2) + : a == u && ((n += r[l + 1] * i[h + 1]), (l += 2), (h += 2)); + return n; + }), + (t.Vector.prototype.similarity = function (e) { + return this.dot(e) / this.magnitude() || 0; + }), + (t.Vector.prototype.toArray = function () { + for ( + var e = new Array(this.elements.length / 2), n = 1, r = 0; + n < this.elements.length; + n += 2, r++ + ) + e[r] = this.elements[n]; + return e; + }), + (t.Vector.prototype.toJSON = function () { + return this.elements; + }); + (t.stemmer = (function () { + var e = { + ational: "ate", + tional: "tion", + enci: "ence", + anci: "ance", + izer: "ize", + bli: "ble", + alli: "al", + entli: "ent", + eli: "e", + ousli: "ous", + ization: "ize", + ation: "ate", + ator: "ate", + alism: "al", + iveness: "ive", + fulness: "ful", + ousness: "ous", + aliti: "al", + iviti: "ive", + biliti: "ble", + logi: "log", + }, + n = { + icate: "ic", + ative: "", + alize: "al", + iciti: "ic", + ical: "ic", + ful: "", + ness: "", + }, + r = "[^aeiou]", + i = "[aeiouy]", + s = r + "[^aeiouy]*", + o = i + "[aeiou]*", + a = "^(" + s + ")?" + o + s, + u = "^(" + s + ")?" + o + s + "(" + o + ")?$", + l = "^(" + s + ")?" + o + s + o + s, + h = "^(" + s + ")?" + i, + m = new RegExp(a), + v = new RegExp(l), + b = new RegExp(u), + y = new RegExp(h), + E = /^(.+?)(ss|i)es$/, + f = /^(.+?)([^s])s$/, + p = /^(.+?)eed$/, + w = /^(.+?)(ed|ing)$/, + S = /.$/, + I = /(at|bl|iz)$/, + _ = new RegExp("([^aeiouylsz])\\1$"), + z = new RegExp("^" + s + i + "[^aeiouwxy]$"), + A = /^(.+?[^aeiou])y$/, + q = + /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/, + $ = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/, + V = + /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/, + W = /^(.+?)(s|t)(ion)$/, + P = /^(.+?)e$/, + U = /ll$/, + G = new RegExp("^" + s + i + "[^aeiouwxy]$"), + N = function (c) { + var g, C, T, d, x, O, D; + if (c.length < 3) return c; + if ( + ((T = c.substr(0, 1)), + T == "y" && (c = T.toUpperCase() + c.substr(1)), + (d = E), + (x = f), + d.test(c) + ? (c = c.replace(d, "$1$2")) + : x.test(c) && (c = c.replace(x, "$1$2")), + (d = p), + (x = w), + d.test(c)) + ) { + var L = d.exec(c); + (d = m), d.test(L[1]) && ((d = S), (c = c.replace(d, ""))); + } else if (x.test(c)) { + var L = x.exec(c); + (g = L[1]), + (x = y), + x.test(g) && + ((c = g), + (x = I), + (O = _), + (D = z), + x.test(c) + ? (c = c + "e") + : O.test(c) + ? ((d = S), (c = c.replace(d, ""))) + : D.test(c) && (c = c + "e")); + } + if (((d = A), d.test(c))) { + var L = d.exec(c); + (g = L[1]), (c = g + "i"); + } + if (((d = q), d.test(c))) { + var L = d.exec(c); + (g = L[1]), (C = L[2]), (d = m), d.test(g) && (c = g + e[C]); + } + if (((d = $), d.test(c))) { + var L = d.exec(c); + (g = L[1]), (C = L[2]), (d = m), d.test(g) && (c = g + n[C]); + } + if (((d = V), (x = W), d.test(c))) { + var L = d.exec(c); + (g = L[1]), (d = v), d.test(g) && (c = g); + } else if (x.test(c)) { + var L = x.exec(c); + (g = L[1] + L[2]), (x = v), x.test(g) && (c = g); + } + if (((d = P), d.test(c))) { + var L = d.exec(c); + (g = L[1]), + (d = v), + (x = b), + (O = G), + (d.test(g) || (x.test(g) && !O.test(g))) && (c = g); + } + return ( + (d = U), + (x = v), + d.test(c) && x.test(c) && ((d = S), (c = c.replace(d, ""))), + T == "y" && (c = T.toLowerCase() + c.substr(1)), + c + ); + }; + return function (M) { + return M.update(N); + }; + })()), + t.Pipeline.registerFunction(t.stemmer, "stemmer"); + (t.generateStopWordFilter = function (e) { + var n = e.reduce(function (r, i) { + return (r[i] = i), r; + }, {}); + return function (r) { + if (r && n[r.toString()] !== r.toString()) return r; + }; + }), + (t.stopWordFilter = t.generateStopWordFilter([ + "a", + "able", + "about", + "across", + "after", + "all", + "almost", + "also", + "am", + "among", + "an", + "and", + "any", + "are", + "as", + "at", + "be", + "because", + "been", + "but", + "by", + "can", + "cannot", + "could", + "dear", + "did", + "do", + "does", + "either", + "else", + "ever", + "every", + "for", + "from", + "get", + "got", + "had", + "has", + "have", + "he", + "her", + "hers", + "him", + "his", + "how", + "however", + "i", + "if", + "in", + "into", + "is", + "it", + "its", + "just", + "least", + "let", + "like", + "likely", + "may", + "me", + "might", + "most", + "must", + "my", + "neither", + "no", + "nor", + "not", + "of", + "off", + "often", + "on", + "only", + "or", + "other", + "our", + "own", + "rather", + "said", + "say", + "says", + "she", + "should", + "since", + "so", + "some", + "than", + "that", + "the", + "their", + "them", + "then", + "there", + "these", + "they", + "this", + "tis", + "to", + "too", + "twas", + "us", + "wants", + "was", + "we", + "were", + "what", + "when", + "where", + "which", + "while", + "who", + "whom", + "why", + "will", + "with", + "would", + "yet", + "you", + "your", + ])), + t.Pipeline.registerFunction(t.stopWordFilter, "stopWordFilter"); + (t.trimmer = function (e) { + return e.update(function (n) { + return n.replace(/^\W+/, "").replace(/\W+$/, ""); + }); + }), + t.Pipeline.registerFunction(t.trimmer, "trimmer"); + (t.TokenSet = function () { + (this.final = !1), + (this.edges = {}), + (this.id = t.TokenSet._nextId), + (t.TokenSet._nextId += 1); + }), + (t.TokenSet._nextId = 1), + (t.TokenSet.fromArray = function (e) { + for ( + var n = new t.TokenSet.Builder(), r = 0, i = e.length; + r < i; + r++ + ) + n.insert(e[r]); + return n.finish(), n.root; + }), + (t.TokenSet.fromClause = function (e) { + return "editDistance" in e + ? t.TokenSet.fromFuzzyString(e.term, e.editDistance) + : t.TokenSet.fromString(e.term); + }), + (t.TokenSet.fromFuzzyString = function (e, n) { + for ( + var r = new t.TokenSet(), + i = [{ node: r, editsRemaining: n, str: e }]; + i.length; + + ) { + var s = i.pop(); + if (s.str.length > 0) { + var o = s.str.charAt(0), + a; + o in s.node.edges + ? (a = s.node.edges[o]) + : ((a = new t.TokenSet()), (s.node.edges[o] = a)), + s.str.length == 1 && (a.final = !0), + i.push({ + node: a, + editsRemaining: s.editsRemaining, + str: s.str.slice(1), + }); + } + if (s.editsRemaining != 0) { + if ("*" in s.node.edges) var u = s.node.edges["*"]; + else { + var u = new t.TokenSet(); + s.node.edges["*"] = u; + } + if ( + (s.str.length == 0 && (u.final = !0), + i.push({ + node: u, + editsRemaining: s.editsRemaining - 1, + str: s.str, + }), + s.str.length > 1 && + i.push({ + node: s.node, + editsRemaining: s.editsRemaining - 1, + str: s.str.slice(1), + }), + s.str.length == 1 && (s.node.final = !0), + s.str.length >= 1) + ) { + if ("*" in s.node.edges) var l = s.node.edges["*"]; + else { + var l = new t.TokenSet(); + s.node.edges["*"] = l; + } + s.str.length == 1 && (l.final = !0), + i.push({ + node: l, + editsRemaining: s.editsRemaining - 1, + str: s.str.slice(1), + }); + } + if (s.str.length > 1) { + var h = s.str.charAt(0), + m = s.str.charAt(1), + v; + m in s.node.edges + ? (v = s.node.edges[m]) + : ((v = new t.TokenSet()), (s.node.edges[m] = v)), + s.str.length == 1 && (v.final = !0), + i.push({ + node: v, + editsRemaining: s.editsRemaining - 1, + str: h + s.str.slice(2), + }); + } + } + } + return r; + }), + (t.TokenSet.fromString = function (e) { + for ( + var n = new t.TokenSet(), r = n, i = 0, s = e.length; + i < s; + i++ + ) { + var o = e[i], + a = i == s - 1; + if (o == "*") (n.edges[o] = n), (n.final = a); + else { + var u = new t.TokenSet(); + (u.final = a), (n.edges[o] = u), (n = u); + } + } + return r; + }), + (t.TokenSet.prototype.toArray = function () { + for (var e = [], n = [{ prefix: "", node: this }]; n.length; ) { + var r = n.pop(), + i = Object.keys(r.node.edges), + s = i.length; + r.node.final && (r.prefix.charAt(0), e.push(r.prefix)); + for (var o = 0; o < s; o++) { + var a = i[o]; + n.push({ prefix: r.prefix.concat(a), node: r.node.edges[a] }); + } + } + return e; + }), + (t.TokenSet.prototype.toString = function () { + if (this._str) return this._str; + for ( + var e = this.final ? "1" : "0", + n = Object.keys(this.edges).sort(), + r = n.length, + i = 0; + i < r; + i++ + ) { + var s = n[i], + o = this.edges[s]; + e = e + s + o.id; + } + return e; + }), + (t.TokenSet.prototype.intersect = function (e) { + for ( + var n = new t.TokenSet(), + r = void 0, + i = [{ qNode: e, output: n, node: this }]; + i.length; + + ) { + r = i.pop(); + for ( + var s = Object.keys(r.qNode.edges), + o = s.length, + a = Object.keys(r.node.edges), + u = a.length, + l = 0; + l < o; + l++ + ) + for (var h = s[l], m = 0; m < u; m++) { + var v = a[m]; + if (v == h || h == "*") { + var b = r.node.edges[v], + y = r.qNode.edges[h], + E = b.final && y.final, + f = void 0; + v in r.output.edges + ? ((f = r.output.edges[v]), (f.final = f.final || E)) + : ((f = new t.TokenSet()), + (f.final = E), + (r.output.edges[v] = f)), + i.push({ qNode: y, output: f, node: b }); + } + } + } + return n; + }), + (t.TokenSet.Builder = function () { + (this.previousWord = ""), + (this.root = new t.TokenSet()), + (this.uncheckedNodes = []), + (this.minimizedNodes = {}); + }), + (t.TokenSet.Builder.prototype.insert = function (e) { + var n, + r = 0; + if (e < this.previousWord) + throw new Error("Out of order word insertion"); + for ( + var i = 0; + i < e.length && + i < this.previousWord.length && + e[i] == this.previousWord[i]; + i++ + ) + r++; + this.minimize(r), + this.uncheckedNodes.length == 0 + ? (n = this.root) + : (n = this.uncheckedNodes[this.uncheckedNodes.length - 1].child); + for (var i = r; i < e.length; i++) { + var s = new t.TokenSet(), + o = e[i]; + (n.edges[o] = s), + this.uncheckedNodes.push({ parent: n, char: o, child: s }), + (n = s); + } + (n.final = !0), (this.previousWord = e); + }), + (t.TokenSet.Builder.prototype.finish = function () { + this.minimize(0); + }), + (t.TokenSet.Builder.prototype.minimize = function (e) { + for (var n = this.uncheckedNodes.length - 1; n >= e; n--) { + var r = this.uncheckedNodes[n], + i = r.child.toString(); + i in this.minimizedNodes + ? (r.parent.edges[r.char] = this.minimizedNodes[i]) + : ((r.child._str = i), (this.minimizedNodes[i] = r.child)), + this.uncheckedNodes.pop(); + } + }); + (t.Index = function (e) { + (this.invertedIndex = e.invertedIndex), + (this.fieldVectors = e.fieldVectors), + (this.tokenSet = e.tokenSet), + (this.fields = e.fields), + (this.pipeline = e.pipeline); + }), + (t.Index.prototype.search = function (e) { + return this.query(function (n) { + var r = new t.QueryParser(e, n); + r.parse(); + }); + }), + (t.Index.prototype.query = function (e) { + for ( + var n = new t.Query(this.fields), + r = Object.create(null), + i = Object.create(null), + s = Object.create(null), + o = Object.create(null), + a = Object.create(null), + u = 0; + u < this.fields.length; + u++ + ) + i[this.fields[u]] = new t.Vector(); + e.call(n, n); + for (var u = 0; u < n.clauses.length; u++) { + var l = n.clauses[u], + h = null, + m = t.Set.empty; + l.usePipeline + ? (h = this.pipeline.runString(l.term, { fields: l.fields })) + : (h = [l.term]); + for (var v = 0; v < h.length; v++) { + var b = h[v]; + l.term = b; + var y = t.TokenSet.fromClause(l), + E = this.tokenSet.intersect(y).toArray(); + if (E.length === 0 && l.presence === t.Query.presence.REQUIRED) { + for (var f = 0; f < l.fields.length; f++) { + var p = l.fields[f]; + o[p] = t.Set.empty; + } + break; + } + for (var w = 0; w < E.length; w++) + for ( + var S = E[w], I = this.invertedIndex[S], _ = I._index, f = 0; + f < l.fields.length; + f++ + ) { + var p = l.fields[f], + z = I[p], + A = Object.keys(z), + q = S + "/" + p, + $ = new t.Set(A); + if ( + (l.presence == t.Query.presence.REQUIRED && + ((m = m.union($)), + o[p] === void 0 && (o[p] = t.Set.complete)), + l.presence == t.Query.presence.PROHIBITED) + ) { + a[p] === void 0 && (a[p] = t.Set.empty), + (a[p] = a[p].union($)); + continue; + } + if ( + (i[p].upsert(_, l.boost, function (ke, Ie) { + return ke + Ie; + }), + !s[q]) + ) { + for (var V = 0; V < A.length; V++) { + var W = A[V], + P = new t.FieldRef(W, p), + U = z[W], + G; + (G = r[P]) === void 0 + ? (r[P] = new t.MatchData(S, p, U)) + : G.add(S, p, U); + } + s[q] = !0; + } + } + } + if (l.presence === t.Query.presence.REQUIRED) + for (var f = 0; f < l.fields.length; f++) { + var p = l.fields[f]; + o[p] = o[p].intersect(m); + } + } + for ( + var N = t.Set.complete, M = t.Set.empty, u = 0; + u < this.fields.length; + u++ + ) { + var p = this.fields[u]; + o[p] && (N = N.intersect(o[p])), a[p] && (M = M.union(a[p])); + } + var c = Object.keys(r), + g = [], + C = Object.create(null); + if (n.isNegated()) { + c = Object.keys(this.fieldVectors); + for (var u = 0; u < c.length; u++) { + var P = c[u], + T = t.FieldRef.fromString(P); + r[P] = new t.MatchData(); + } + } + for (var u = 0; u < c.length; u++) { + var T = t.FieldRef.fromString(c[u]), + d = T.docRef; + if (!!N.contains(d) && !M.contains(d)) { + var x = this.fieldVectors[T], + O = i[T.fieldName].similarity(x), + D; + if ((D = C[d]) !== void 0) + (D.score += O), D.matchData.combine(r[T]); + else { + var L = { ref: d, score: O, matchData: r[T] }; + (C[d] = L), g.push(L); + } + } + } + return g.sort(function (we, Te) { + return Te.score - we.score; + }); + }), + (t.Index.prototype.toJSON = function () { + var e = Object.keys(this.invertedIndex) + .sort() + .map(function (r) { + return [r, this.invertedIndex[r]]; + }, this), + n = Object.keys(this.fieldVectors).map(function (r) { + return [r, this.fieldVectors[r].toJSON()]; + }, this); + return { + version: t.version, + fields: this.fields, + fieldVectors: n, + invertedIndex: e, + pipeline: this.pipeline.toJSON(), + }; + }), + (t.Index.load = function (e) { + var n = {}, + r = {}, + i = e.fieldVectors, + s = Object.create(null), + o = e.invertedIndex, + a = new t.TokenSet.Builder(), + u = t.Pipeline.load(e.pipeline); + e.version != t.version && + t.utils.warn( + "Version mismatch when loading serialised index. Current version of lunr '" + + t.version + + "' does not match serialized index '" + + e.version + + "'" + ); + for (var l = 0; l < i.length; l++) { + var h = i[l], + m = h[0], + v = h[1]; + r[m] = new t.Vector(v); + } + for (var l = 0; l < o.length; l++) { + var h = o[l], + b = h[0], + y = h[1]; + a.insert(b), (s[b] = y); + } + return ( + a.finish(), + (n.fields = e.fields), + (n.fieldVectors = r), + (n.invertedIndex = s), + (n.tokenSet = a.root), + (n.pipeline = u), + new t.Index(n) + ); + }); + (t.Builder = function () { + (this._ref = "id"), + (this._fields = Object.create(null)), + (this._documents = Object.create(null)), + (this.invertedIndex = Object.create(null)), + (this.fieldTermFrequencies = {}), + (this.fieldLengths = {}), + (this.tokenizer = t.tokenizer), + (this.pipeline = new t.Pipeline()), + (this.searchPipeline = new t.Pipeline()), + (this.documentCount = 0), + (this._b = 0.75), + (this._k1 = 1.2), + (this.termIndex = 0), + (this.metadataWhitelist = []); + }), + (t.Builder.prototype.ref = function (e) { + this._ref = e; + }), + (t.Builder.prototype.field = function (e, n) { + if (/\//.test(e)) + throw new RangeError( + "Field '" + e + "' contains illegal character '/'" + ); + this._fields[e] = n || {}; + }), + (t.Builder.prototype.b = function (e) { + e < 0 ? (this._b = 0) : e > 1 ? (this._b = 1) : (this._b = e); + }), + (t.Builder.prototype.k1 = function (e) { + this._k1 = e; + }), + (t.Builder.prototype.add = function (e, n) { + var r = e[this._ref], + i = Object.keys(this._fields); + (this._documents[r] = n || {}), (this.documentCount += 1); + for (var s = 0; s < i.length; s++) { + var o = i[s], + a = this._fields[o].extractor, + u = a ? a(e) : e[o], + l = this.tokenizer(u, { fields: [o] }), + h = this.pipeline.run(l), + m = new t.FieldRef(r, o), + v = Object.create(null); + (this.fieldTermFrequencies[m] = v), + (this.fieldLengths[m] = 0), + (this.fieldLengths[m] += h.length); + for (var b = 0; b < h.length; b++) { + var y = h[b]; + if ( + (v[y] == null && (v[y] = 0), + (v[y] += 1), + this.invertedIndex[y] == null) + ) { + var E = Object.create(null); + (E._index = this.termIndex), (this.termIndex += 1); + for (var f = 0; f < i.length; f++) + E[i[f]] = Object.create(null); + this.invertedIndex[y] = E; + } + this.invertedIndex[y][o][r] == null && + (this.invertedIndex[y][o][r] = Object.create(null)); + for (var p = 0; p < this.metadataWhitelist.length; p++) { + var w = this.metadataWhitelist[p], + S = y.metadata[w]; + this.invertedIndex[y][o][r][w] == null && + (this.invertedIndex[y][o][r][w] = []), + this.invertedIndex[y][o][r][w].push(S); + } + } + } + }), + (t.Builder.prototype.calculateAverageFieldLengths = function () { + for ( + var e = Object.keys(this.fieldLengths), + n = e.length, + r = {}, + i = {}, + s = 0; + s < n; + s++ + ) { + var o = t.FieldRef.fromString(e[s]), + a = o.fieldName; + i[a] || (i[a] = 0), + (i[a] += 1), + r[a] || (r[a] = 0), + (r[a] += this.fieldLengths[o]); + } + for (var u = Object.keys(this._fields), s = 0; s < u.length; s++) { + var l = u[s]; + r[l] = r[l] / i[l]; + } + this.averageFieldLength = r; + }), + (t.Builder.prototype.createFieldVectors = function () { + for ( + var e = {}, + n = Object.keys(this.fieldTermFrequencies), + r = n.length, + i = Object.create(null), + s = 0; + s < r; + s++ + ) { + for ( + var o = t.FieldRef.fromString(n[s]), + a = o.fieldName, + u = this.fieldLengths[o], + l = new t.Vector(), + h = this.fieldTermFrequencies[o], + m = Object.keys(h), + v = m.length, + b = this._fields[a].boost || 1, + y = this._documents[o.docRef].boost || 1, + E = 0; + E < v; + E++ + ) { + var f = m[E], + p = h[f], + w = this.invertedIndex[f]._index, + S, + I, + _; + i[f] === void 0 + ? ((S = t.idf(this.invertedIndex[f], this.documentCount)), + (i[f] = S)) + : (S = i[f]), + (I = + (S * ((this._k1 + 1) * p)) / + (this._k1 * + (1 - this._b + this._b * (u / this.averageFieldLength[a])) + + p)), + (I *= b), + (I *= y), + (_ = Math.round(I * 1e3) / 1e3), + l.insert(w, _); + } + e[o] = l; + } + this.fieldVectors = e; + }), + (t.Builder.prototype.createTokenSet = function () { + this.tokenSet = t.TokenSet.fromArray( + Object.keys(this.invertedIndex).sort() + ); + }), + (t.Builder.prototype.build = function () { + return ( + this.calculateAverageFieldLengths(), + this.createFieldVectors(), + this.createTokenSet(), + new t.Index({ + invertedIndex: this.invertedIndex, + fieldVectors: this.fieldVectors, + tokenSet: this.tokenSet, + fields: Object.keys(this._fields), + pipeline: this.searchPipeline, + }) + ); + }), + (t.Builder.prototype.use = function (e) { + var n = Array.prototype.slice.call(arguments, 1); + n.unshift(this), e.apply(this, n); + }), + (t.MatchData = function (e, n, r) { + for ( + var i = Object.create(null), s = Object.keys(r || {}), o = 0; + o < s.length; + o++ + ) { + var a = s[o]; + i[a] = r[a].slice(); + } + (this.metadata = Object.create(null)), + e !== void 0 && + ((this.metadata[e] = Object.create(null)), + (this.metadata[e][n] = i)); + }), + (t.MatchData.prototype.combine = function (e) { + for (var n = Object.keys(e.metadata), r = 0; r < n.length; r++) { + var i = n[r], + s = Object.keys(e.metadata[i]); + this.metadata[i] == null && + (this.metadata[i] = Object.create(null)); + for (var o = 0; o < s.length; o++) { + var a = s[o], + u = Object.keys(e.metadata[i][a]); + this.metadata[i][a] == null && + (this.metadata[i][a] = Object.create(null)); + for (var l = 0; l < u.length; l++) { + var h = u[l]; + this.metadata[i][a][h] == null + ? (this.metadata[i][a][h] = e.metadata[i][a][h]) + : (this.metadata[i][a][h] = this.metadata[i][a][h].concat( + e.metadata[i][a][h] + )); + } + } + } + }), + (t.MatchData.prototype.add = function (e, n, r) { + if (!(e in this.metadata)) { + (this.metadata[e] = Object.create(null)), (this.metadata[e][n] = r); + return; + } + if (!(n in this.metadata[e])) { + this.metadata[e][n] = r; + return; + } + for (var i = Object.keys(r), s = 0; s < i.length; s++) { + var o = i[s]; + o in this.metadata[e][n] + ? (this.metadata[e][n][o] = this.metadata[e][n][o].concat(r[o])) + : (this.metadata[e][n][o] = r[o]); + } + }), + (t.Query = function (e) { + (this.clauses = []), (this.allFields = e); + }), + (t.Query.wildcard = new String("*")), + (t.Query.wildcard.NONE = 0), + (t.Query.wildcard.LEADING = 1), + (t.Query.wildcard.TRAILING = 2), + (t.Query.presence = { OPTIONAL: 1, REQUIRED: 2, PROHIBITED: 3 }), + (t.Query.prototype.clause = function (e) { + return ( + "fields" in e || (e.fields = this.allFields), + "boost" in e || (e.boost = 1), + "usePipeline" in e || (e.usePipeline = !0), + "wildcard" in e || (e.wildcard = t.Query.wildcard.NONE), + e.wildcard & t.Query.wildcard.LEADING && + e.term.charAt(0) != t.Query.wildcard && + (e.term = "*" + e.term), + e.wildcard & t.Query.wildcard.TRAILING && + e.term.slice(-1) != t.Query.wildcard && + (e.term = "" + e.term + "*"), + "presence" in e || (e.presence = t.Query.presence.OPTIONAL), + this.clauses.push(e), + this + ); + }), + (t.Query.prototype.isNegated = function () { + for (var e = 0; e < this.clauses.length; e++) + if (this.clauses[e].presence != t.Query.presence.PROHIBITED) + return !1; + return !0; + }), + (t.Query.prototype.term = function (e, n) { + if (Array.isArray(e)) + return ( + e.forEach(function (i) { + this.term(i, t.utils.clone(n)); + }, this), + this + ); + var r = n || {}; + return (r.term = e.toString()), this.clause(r), this; + }), + (t.QueryParseError = function (e, n, r) { + (this.name = "QueryParseError"), + (this.message = e), + (this.start = n), + (this.end = r); + }), + (t.QueryParseError.prototype = new Error()), + (t.QueryLexer = function (e) { + (this.lexemes = []), + (this.str = e), + (this.length = e.length), + (this.pos = 0), + (this.start = 0), + (this.escapeCharPositions = []); + }), + (t.QueryLexer.prototype.run = function () { + for (var e = t.QueryLexer.lexText; e; ) e = e(this); + }), + (t.QueryLexer.prototype.sliceString = function () { + for ( + var e = [], n = this.start, r = this.pos, i = 0; + i < this.escapeCharPositions.length; + i++ + ) + (r = this.escapeCharPositions[i]), + e.push(this.str.slice(n, r)), + (n = r + 1); + return ( + e.push(this.str.slice(n, this.pos)), + (this.escapeCharPositions.length = 0), + e.join("") + ); + }), + (t.QueryLexer.prototype.emit = function (e) { + this.lexemes.push({ + type: e, + str: this.sliceString(), + start: this.start, + end: this.pos, + }), + (this.start = this.pos); + }), + (t.QueryLexer.prototype.escapeCharacter = function () { + this.escapeCharPositions.push(this.pos - 1), (this.pos += 1); + }), + (t.QueryLexer.prototype.next = function () { + if (this.pos >= this.length) return t.QueryLexer.EOS; + var e = this.str.charAt(this.pos); + return (this.pos += 1), e; + }), + (t.QueryLexer.prototype.width = function () { + return this.pos - this.start; + }), + (t.QueryLexer.prototype.ignore = function () { + this.start == this.pos && (this.pos += 1), (this.start = this.pos); + }), + (t.QueryLexer.prototype.backup = function () { + this.pos -= 1; + }), + (t.QueryLexer.prototype.acceptDigitRun = function () { + var e, n; + do (e = this.next()), (n = e.charCodeAt(0)); + while (n > 47 && n < 58); + e != t.QueryLexer.EOS && this.backup(); + }), + (t.QueryLexer.prototype.more = function () { + return this.pos < this.length; + }), + (t.QueryLexer.EOS = "EOS"), + (t.QueryLexer.FIELD = "FIELD"), + (t.QueryLexer.TERM = "TERM"), + (t.QueryLexer.EDIT_DISTANCE = "EDIT_DISTANCE"), + (t.QueryLexer.BOOST = "BOOST"), + (t.QueryLexer.PRESENCE = "PRESENCE"), + (t.QueryLexer.lexField = function (e) { + return ( + e.backup(), + e.emit(t.QueryLexer.FIELD), + e.ignore(), + t.QueryLexer.lexText + ); + }), + (t.QueryLexer.lexTerm = function (e) { + if ( + (e.width() > 1 && (e.backup(), e.emit(t.QueryLexer.TERM)), + e.ignore(), + e.more()) + ) + return t.QueryLexer.lexText; + }), + (t.QueryLexer.lexEditDistance = function (e) { + return ( + e.ignore(), + e.acceptDigitRun(), + e.emit(t.QueryLexer.EDIT_DISTANCE), + t.QueryLexer.lexText + ); + }), + (t.QueryLexer.lexBoost = function (e) { + return ( + e.ignore(), + e.acceptDigitRun(), + e.emit(t.QueryLexer.BOOST), + t.QueryLexer.lexText + ); + }), + (t.QueryLexer.lexEOS = function (e) { + e.width() > 0 && e.emit(t.QueryLexer.TERM); + }), + (t.QueryLexer.termSeparator = t.tokenizer.separator), + (t.QueryLexer.lexText = function (e) { + for (;;) { + var n = e.next(); + if (n == t.QueryLexer.EOS) return t.QueryLexer.lexEOS; + if (n.charCodeAt(0) == 92) { + e.escapeCharacter(); + continue; + } + if (n == ":") return t.QueryLexer.lexField; + if (n == "~") + return ( + e.backup(), + e.width() > 0 && e.emit(t.QueryLexer.TERM), + t.QueryLexer.lexEditDistance + ); + if (n == "^") + return ( + e.backup(), + e.width() > 0 && e.emit(t.QueryLexer.TERM), + t.QueryLexer.lexBoost + ); + if ((n == "+" && e.width() === 1) || (n == "-" && e.width() === 1)) + return e.emit(t.QueryLexer.PRESENCE), t.QueryLexer.lexText; + if (n.match(t.QueryLexer.termSeparator)) + return t.QueryLexer.lexTerm; + } + }), + (t.QueryParser = function (e, n) { + (this.lexer = new t.QueryLexer(e)), + (this.query = n), + (this.currentClause = {}), + (this.lexemeIdx = 0); + }), + (t.QueryParser.prototype.parse = function () { + this.lexer.run(), (this.lexemes = this.lexer.lexemes); + for (var e = t.QueryParser.parseClause; e; ) e = e(this); + return this.query; + }), + (t.QueryParser.prototype.peekLexeme = function () { + return this.lexemes[this.lexemeIdx]; + }), + (t.QueryParser.prototype.consumeLexeme = function () { + var e = this.peekLexeme(); + return (this.lexemeIdx += 1), e; + }), + (t.QueryParser.prototype.nextClause = function () { + var e = this.currentClause; + this.query.clause(e), (this.currentClause = {}); + }), + (t.QueryParser.parseClause = function (e) { + var n = e.peekLexeme(); + if (n != null) + switch (n.type) { + case t.QueryLexer.PRESENCE: + return t.QueryParser.parsePresence; + case t.QueryLexer.FIELD: + return t.QueryParser.parseField; + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm; + default: + var r = "expected either a field or a term, found " + n.type; + throw ( + (n.str.length >= 1 && (r += " with value '" + n.str + "'"), + new t.QueryParseError(r, n.start, n.end)) + ); + } + }), + (t.QueryParser.parsePresence = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + switch (n.str) { + case "-": + e.currentClause.presence = t.Query.presence.PROHIBITED; + break; + case "+": + e.currentClause.presence = t.Query.presence.REQUIRED; + break; + default: + var r = "unrecognised presence operator'" + n.str + "'"; + throw new t.QueryParseError(r, n.start, n.end); + } + var i = e.peekLexeme(); + if (i == null) { + var r = "expecting term or field, found nothing"; + throw new t.QueryParseError(r, n.start, n.end); + } + switch (i.type) { + case t.QueryLexer.FIELD: + return t.QueryParser.parseField; + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm; + default: + var r = "expecting term or field, found '" + i.type + "'"; + throw new t.QueryParseError(r, i.start, i.end); + } + } + }), + (t.QueryParser.parseField = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + if (e.query.allFields.indexOf(n.str) == -1) { + var r = e.query.allFields + .map(function (o) { + return "'" + o + "'"; + }) + .join(", "), + i = "unrecognised field '" + n.str + "', possible fields: " + r; + throw new t.QueryParseError(i, n.start, n.end); + } + e.currentClause.fields = [n.str]; + var s = e.peekLexeme(); + if (s == null) { + var i = "expecting term, found nothing"; + throw new t.QueryParseError(i, n.start, n.end); + } + switch (s.type) { + case t.QueryLexer.TERM: + return t.QueryParser.parseTerm; + default: + var i = "expecting term, found '" + s.type + "'"; + throw new t.QueryParseError(i, s.start, s.end); + } + } + }), + (t.QueryParser.parseTerm = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + (e.currentClause.term = n.str.toLowerCase()), + n.str.indexOf("*") != -1 && (e.currentClause.usePipeline = !1); + var r = e.peekLexeme(); + if (r == null) { + e.nextClause(); + return; + } + switch (r.type) { + case t.QueryLexer.TERM: + return e.nextClause(), t.QueryParser.parseTerm; + case t.QueryLexer.FIELD: + return e.nextClause(), t.QueryParser.parseField; + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance; + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost; + case t.QueryLexer.PRESENCE: + return e.nextClause(), t.QueryParser.parsePresence; + default: + var i = "Unexpected lexeme type '" + r.type + "'"; + throw new t.QueryParseError(i, r.start, r.end); + } + } + }), + (t.QueryParser.parseEditDistance = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + var r = parseInt(n.str, 10); + if (isNaN(r)) { + var i = "edit distance must be numeric"; + throw new t.QueryParseError(i, n.start, n.end); + } + e.currentClause.editDistance = r; + var s = e.peekLexeme(); + if (s == null) { + e.nextClause(); + return; + } + switch (s.type) { + case t.QueryLexer.TERM: + return e.nextClause(), t.QueryParser.parseTerm; + case t.QueryLexer.FIELD: + return e.nextClause(), t.QueryParser.parseField; + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance; + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost; + case t.QueryLexer.PRESENCE: + return e.nextClause(), t.QueryParser.parsePresence; + default: + var i = "Unexpected lexeme type '" + s.type + "'"; + throw new t.QueryParseError(i, s.start, s.end); + } + } + }), + (t.QueryParser.parseBoost = function (e) { + var n = e.consumeLexeme(); + if (n != null) { + var r = parseInt(n.str, 10); + if (isNaN(r)) { + var i = "boost must be numeric"; + throw new t.QueryParseError(i, n.start, n.end); + } + e.currentClause.boost = r; + var s = e.peekLexeme(); + if (s == null) { + e.nextClause(); + return; + } + switch (s.type) { + case t.QueryLexer.TERM: + return e.nextClause(), t.QueryParser.parseTerm; + case t.QueryLexer.FIELD: + return e.nextClause(), t.QueryParser.parseField; + case t.QueryLexer.EDIT_DISTANCE: + return t.QueryParser.parseEditDistance; + case t.QueryLexer.BOOST: + return t.QueryParser.parseBoost; + case t.QueryLexer.PRESENCE: + return e.nextClause(), t.QueryParser.parsePresence; + default: + var i = "Unexpected lexeme type '" + s.type + "'"; + throw new t.QueryParseError(i, s.start, s.end); + } + } + }), + (function (e, n) { + typeof define == "function" && define.amd + ? define(n) + : typeof ce == "object" + ? (he.exports = n()) + : (e.lunr = n()); + })(this, function () { + return t; + }); + })(); + }); + var le = []; + function j(t, e) { + le.push({ selector: e, constructor: t }); + } + var Y = class { + constructor() { + this.createComponents(document.body); + } + createComponents(e) { + le.forEach((n) => { + e.querySelectorAll(n.selector).forEach((r) => { + r.dataset.hasInstance || + (new n.constructor({ el: r }), + (r.dataset.hasInstance = String(!0))); + }); + }); + } + }; + var k = class { + constructor(e) { + this.el = e.el; + } + }; + var J = class { + constructor() { + this.listeners = {}; + } + addEventListener(e, n) { + e in this.listeners || (this.listeners[e] = []), + this.listeners[e].push(n); + } + removeEventListener(e, n) { + if (!(e in this.listeners)) return; + let r = this.listeners[e]; + for (let i = 0, s = r.length; i < s; i++) + if (r[i] === n) { + r.splice(i, 1); + return; + } + } + dispatchEvent(e) { + if (!(e.type in this.listeners)) return !0; + let n = this.listeners[e.type].slice(); + for (let r = 0, i = n.length; r < i; r++) n[r].call(this, e); + return !e.defaultPrevented; + } + }; + var ne = (t, e = 100) => { + let n = Date.now(); + return (...r) => { + n + e - Date.now() < 0 && (t(...r), (n = Date.now())); + }; + }; + var re = class extends J { + constructor() { + super(); + this.scrollTop = 0; + this.lastY = 0; + this.width = 0; + this.height = 0; + this.showToolbar = !0; + (this.toolbar = document.querySelector(".tsd-page-toolbar")), + (this.navigation = document.querySelector(".col-menu")), + window.addEventListener( + "scroll", + ne(() => this.onScroll(), 10) + ), + window.addEventListener( + "resize", + ne(() => this.onResize(), 10) + ), + (this.searchInput = document.querySelector("#tsd-search input")), + this.searchInput && + this.searchInput.addEventListener("focus", () => { + this.hideShowToolbar(); + }), + this.onResize(), + this.onScroll(); + } + triggerResize() { + let n = new CustomEvent("resize", { + detail: { width: this.width, height: this.height }, + }); + this.dispatchEvent(n); + } + onResize() { + (this.width = window.innerWidth || 0), + (this.height = window.innerHeight || 0); + let n = new CustomEvent("resize", { + detail: { width: this.width, height: this.height }, + }); + this.dispatchEvent(n); + } + onScroll() { + this.scrollTop = window.scrollY || 0; + let n = new CustomEvent("scroll", { + detail: { scrollTop: this.scrollTop }, + }); + this.dispatchEvent(n), this.hideShowToolbar(); + } + hideShowToolbar() { + let n = this.showToolbar; + (this.showToolbar = + this.lastY >= this.scrollTop || + this.scrollTop <= 0 || + (!!this.searchInput && this.searchInput === document.activeElement)), + n !== this.showToolbar && + (this.toolbar.classList.toggle("tsd-page-toolbar--hide"), + this.navigation?.classList.toggle("col-menu--hide")), + (this.lastY = this.scrollTop); + } + }, + R = re; + R.instance = new re(); + var X = class extends k { + constructor(n) { + super(n); + this.anchors = []; + this.index = -1; + R.instance.addEventListener("resize", () => this.onResize()), + R.instance.addEventListener("scroll", (r) => this.onScroll(r)), + this.createAnchors(); + } + createAnchors() { + let n = window.location.href; + n.indexOf("#") != -1 && (n = n.substring(0, n.indexOf("#"))), + this.el.querySelectorAll("a").forEach((r) => { + let i = r.href; + if (i.indexOf("#") == -1 || i.substring(0, n.length) != n) return; + let s = i.substring(i.indexOf("#") + 1), + o = document.querySelector("a.tsd-anchor[name=" + s + "]"), + a = r.parentNode; + !o || !a || this.anchors.push({ link: a, anchor: o, position: 0 }); + }), + this.onResize(); + } + onResize() { + let n; + for (let i = 0, s = this.anchors.length; i < s; i++) { + n = this.anchors[i]; + let o = n.anchor.getBoundingClientRect(); + n.position = o.top + document.body.scrollTop; + } + this.anchors.sort((i, s) => i.position - s.position); + let r = new CustomEvent("scroll", { + detail: { scrollTop: R.instance.scrollTop }, + }); + this.onScroll(r); + } + onScroll(n) { + let r = n.detail.scrollTop + 5, + i = this.anchors, + s = i.length - 1, + o = this.index; + for (; o > -1 && i[o].position > r; ) o -= 1; + for (; o < s && i[o + 1].position < r; ) o += 1; + this.index != o && + (this.index > -1 && + this.anchors[this.index].link.classList.remove("focus"), + (this.index = o), + this.index > -1 && + this.anchors[this.index].link.classList.add("focus")); + } + }; + var ue = (t, e = 100) => { + let n; + return (...r) => { + clearTimeout(n), (n = setTimeout(() => t(r), e)); + }; + }; + var me = De(de()); + function ve() { + let t = document.getElementById("tsd-search"); + if (!t) return; + let e = document.getElementById("search-script"); + t.classList.add("loading"), + e && + (e.addEventListener("error", () => { + t.classList.remove("loading"), t.classList.add("failure"); + }), + e.addEventListener("load", () => { + t.classList.remove("loading"), t.classList.add("ready"); + }), + window.searchData && t.classList.remove("loading")); + let n = document.querySelector("#tsd-search input"), + r = document.querySelector("#tsd-search .results"); + if (!n || !r) + throw new Error( + "The input field or the result list wrapper was not found" + ); + let i = !1; + r.addEventListener("mousedown", () => (i = !0)), + r.addEventListener("mouseup", () => { + (i = !1), t.classList.remove("has-focus"); + }), + n.addEventListener("focus", () => t.classList.add("has-focus")), + n.addEventListener("blur", () => { + i || ((i = !1), t.classList.remove("has-focus")); + }); + let s = { base: t.dataset.base + "/" }; + Fe(t, r, n, s); + } + function Fe(t, e, n, r) { + n.addEventListener( + "input", + ue(() => { + Ae(t, e, n, r); + }, 200) + ); + let i = !1; + n.addEventListener("keydown", (s) => { + (i = !0), + s.key == "Enter" + ? Ve(e, n) + : s.key == "Escape" + ? n.blur() + : s.key == "ArrowUp" + ? fe(e, -1) + : s.key === "ArrowDown" + ? fe(e, 1) + : (i = !1); + }), + n.addEventListener("keypress", (s) => { + i && s.preventDefault(); + }), + document.body.addEventListener("keydown", (s) => { + s.altKey || + s.ctrlKey || + s.metaKey || + (!n.matches(":focus") && + s.key === "/" && + (n.focus(), s.preventDefault())); + }); + } + function He(t, e) { + t.index || + (window.searchData && + (e.classList.remove("loading"), + e.classList.add("ready"), + (t.data = window.searchData), + (t.index = me.Index.load(window.searchData.index)))); + } + function Ae(t, e, n, r) { + if ((He(r, t), !r.index || !r.data)) return; + e.textContent = ""; + let i = n.value.trim(), + s = i ? r.index.search(`*${i}*`) : []; + for (let o = 0; o < s.length; o++) { + let a = s[o], + u = r.data.rows[Number(a.ref)], + l = 1; + u.name.toLowerCase().startsWith(i.toLowerCase()) && + (l *= 1 + 1 / (1 + Math.abs(u.name.length - i.length))), + (a.score *= l); + } + s.sort((o, a) => a.score - o.score); + for (let o = 0, a = Math.min(10, s.length); o < a; o++) { + let u = r.data.rows[Number(s[o].ref)], + l = pe(u.name, i); + globalThis.DEBUG_SEARCH_WEIGHTS && + (l += ` (score: ${s[o].score.toFixed(2)})`), + u.parent && (l = `${pe(u.parent, i)}.${l}`); + let h = document.createElement("li"); + h.classList.value = u.classes ?? ""; + let m = document.createElement("a"); + (m.href = r.base + u.url), + (m.innerHTML = l), + h.append(m), + e.appendChild(h); + } + } + function fe(t, e) { + let n = t.querySelector(".current"); + if (!n) + (n = t.querySelector(e == 1 ? "li:first-child" : "li:last-child")), + n && n.classList.add("current"); + else { + let r = n; + if (e === 1) + do r = r.nextElementSibling ?? void 0; + while (r instanceof HTMLElement && r.offsetParent == null); + else + do r = r.previousElementSibling ?? void 0; + while (r instanceof HTMLElement && r.offsetParent == null); + r && (n.classList.remove("current"), r.classList.add("current")); + } + } + function Ve(t, e) { + let n = t.querySelector(".current"); + if ((n || (n = t.querySelector("li:first-child")), n)) { + let r = n.querySelector("a"); + r && (window.location.href = r.href), e.blur(); + } + } + function pe(t, e) { + if (e === "") return t; + let n = t.toLocaleLowerCase(), + r = e.toLocaleLowerCase(), + i = [], + s = 0, + o = n.indexOf(r); + for (; o != -1; ) + i.push( + ie(t.substring(s, o)), + `${ie(t.substring(o, o + r.length))}` + ), + (s = o + r.length), + (o = n.indexOf(r, s)); + return i.push(ie(t.substring(s))), i.join(""); + } + var Ne = { + "&": "&", + "<": "<", + ">": ">", + "'": "'", + '"': """, + }; + function ie(t) { + return t.replace(/[&<>"'"]/g, (e) => Ne[e]); + } + var F = "mousedown", + ye = "mousemove", + B = "mouseup", + Z = { x: 0, y: 0 }, + ge = !1, + se = !1, + je = !1, + H = !1, + xe = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + navigator.userAgent + ); + document.documentElement.classList.add(xe ? "is-mobile" : "not-mobile"); + xe && + "ontouchstart" in document.documentElement && + ((je = !0), (F = "touchstart"), (ye = "touchmove"), (B = "touchend")); + document.addEventListener(F, (t) => { + (se = !0), (H = !1); + let e = F == "touchstart" ? t.targetTouches[0] : t; + (Z.y = e.pageY || 0), (Z.x = e.pageX || 0); + }); + document.addEventListener(ye, (t) => { + if (!!se && !H) { + let e = F == "touchstart" ? t.targetTouches[0] : t, + n = Z.x - (e.pageX || 0), + r = Z.y - (e.pageY || 0); + H = Math.sqrt(n * n + r * r) > 10; + } + }); + document.addEventListener(B, () => { + se = !1; + }); + document.addEventListener("click", (t) => { + ge && (t.preventDefault(), t.stopImmediatePropagation(), (ge = !1)); + }); + var K = class extends k { + constructor(n) { + super(n); + (this.className = this.el.dataset.toggle || ""), + this.el.addEventListener(B, (r) => this.onPointerUp(r)), + this.el.addEventListener("click", (r) => r.preventDefault()), + document.addEventListener(F, (r) => this.onDocumentPointerDown(r)), + document.addEventListener(B, (r) => this.onDocumentPointerUp(r)); + } + setActive(n) { + if (this.active == n) return; + (this.active = n), + document.documentElement.classList.toggle("has-" + this.className, n), + this.el.classList.toggle("active", n); + let r = (this.active ? "to-has-" : "from-has-") + this.className; + document.documentElement.classList.add(r), + setTimeout(() => document.documentElement.classList.remove(r), 500); + } + onPointerUp(n) { + H || (this.setActive(!0), n.preventDefault()); + } + onDocumentPointerDown(n) { + if (this.active) { + if (n.target.closest(".col-menu, .tsd-filter-group")) return; + this.setActive(!1); + } + } + onDocumentPointerUp(n) { + if (!H && this.active && n.target.closest(".col-menu")) { + let r = n.target.closest("a"); + if (r) { + let i = window.location.href; + i.indexOf("#") != -1 && (i = i.substring(0, i.indexOf("#"))), + r.href.substring(0, i.length) == i && + setTimeout(() => this.setActive(!1), 250); + } + } + } + }; + var oe; + try { + oe = localStorage; + } catch { + oe = { + getItem() { + return null; + }, + setItem() {}, + }; + } + var Q = oe; + var Le = document.head.appendChild(document.createElement("style")); + Le.dataset.for = "filters"; + var ee = class extends k { + constructor(n) { + super(n); + (this.key = `filter-${this.el.name}`), + (this.value = this.el.checked), + this.el.addEventListener("change", () => { + this.setLocalStorage(this.el.checked); + }), + this.setLocalStorage(this.fromLocalStorage()), + (Le.innerHTML += `html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`); + } + fromLocalStorage() { + let n = Q.getItem(this.key); + return n ? n === "true" : this.el.checked; + } + setLocalStorage(n) { + Q.setItem(this.key, n.toString()), + (this.value = n), + this.handleValueChange(); + } + handleValueChange() { + (this.el.checked = this.value), + document.documentElement.classList.toggle(this.key, this.value), + document.querySelectorAll(".tsd-index-section").forEach((n) => { + n.style.display = "block"; + let r = Array.from(n.querySelectorAll(".tsd-index-link")).every( + (i) => i.offsetParent == null + ); + n.style.display = r ? "none" : "block"; + }); + } + }; + var te = class extends k { + constructor(n) { + super(n); + this.calculateHeights(), + (this.summary = this.el.querySelector(".tsd-accordion-summary")), + (this.icon = this.summary.querySelector("svg")), + (this.key = `tsd-accordion-${this.summary.textContent + .replace(/\s+/g, "-") + .toLowerCase()}`), + this.setLocalStorage(this.fromLocalStorage(), !0), + this.summary.addEventListener("click", (r) => this.toggleVisibility(r)), + (this.icon.style.transform = this.getIconRotation()); + } + getIconRotation(n = this.el.open) { + return `rotate(${n ? 0 : -90}deg)`; + } + calculateHeights() { + let n = this.el.open, + { position: r, left: i } = this.el.style; + (this.el.style.position = "fixed"), + (this.el.style.left = "-9999px"), + (this.el.open = !0), + (this.expandedHeight = this.el.offsetHeight + "px"), + (this.el.open = !1), + (this.collapsedHeight = this.el.offsetHeight + "px"), + (this.el.open = n), + (this.el.style.height = n ? this.expandedHeight : this.collapsedHeight), + (this.el.style.position = r), + (this.el.style.left = i); + } + toggleVisibility(n) { + n.preventDefault(), + (this.el.style.overflow = "hidden"), + this.el.open ? this.collapse() : this.expand(); + } + expand(n = !0) { + (this.el.open = !0), + this.animate(this.collapsedHeight, this.expandedHeight, { + opening: !0, + duration: n ? 300 : 0, + }); + } + collapse(n = !0) { + this.animate(this.expandedHeight, this.collapsedHeight, { + opening: !1, + duration: n ? 300 : 0, + }); + } + animate(n, r, { opening: i, duration: s = 300 }) { + if (this.animation) return; + let o = { duration: s, easing: "ease" }; + (this.animation = this.el.animate({ height: [n, r] }, o)), + this.icon + .animate( + { + transform: [ + this.icon.style.transform || this.getIconRotation(!i), + this.getIconRotation(i), + ], + }, + o + ) + .addEventListener("finish", () => { + this.icon.style.transform = this.getIconRotation(i); + }), + this.animation.addEventListener("finish", () => this.animationEnd(i)); + } + animationEnd(n) { + (this.el.open = n), + (this.animation = void 0), + (this.el.style.height = "auto"), + (this.el.style.overflow = "visible"), + this.setLocalStorage(n); + } + fromLocalStorage() { + let n = Q.getItem(this.key); + return n ? n === "true" : this.el.open; + } + setLocalStorage(n, r = !1) { + (this.fromLocalStorage() === n && !r) || + (Q.setItem(this.key, n.toString()), + (this.el.open = n), + this.handleValueChange(r)); + } + handleValueChange(n = !1) { + (this.fromLocalStorage() === this.el.open && !n) || + (this.fromLocalStorage() ? this.expand(!1) : this.collapse(!1)); + } + }; + function be(t) { + let e = Q.getItem("tsd-theme") || "os"; + (t.value = e), + Ee(e), + t.addEventListener("change", () => { + Q.setItem("tsd-theme", t.value), Ee(t.value); + }); + } + function Ee(t) { + document.documentElement.dataset.theme = t; + } + ve(); + j(X, ".menu-highlight"); + j(K, "a[data-toggle]"); + j(te, ".tsd-index-accordion"); + j(ee, ".tsd-filter-item input[type=checkbox]"); + var Se = document.getElementById("theme"); + Se && be(Se); + var Be = new Y(); + Object.defineProperty(window, "app", { value: Be }); +})(); +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ diff --git a/docs/assets/search.js b/docs/assets/search.js new file mode 100644 index 0000000..dee6576 --- /dev/null +++ b/docs/assets/search.js @@ -0,0 +1,3 @@ +window.searchData = JSON.parse( + '{"kinds":{"32":"Variable","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","262144":"Accessor","4194304":"Type alias"},"rows":[{"kind":32,"name":"DefaultCompression","url":"variables/DefaultCompression.html","classes":"tsd-kind-variable"},{"kind":4194304,"name":"IComressFormats","url":"types/IComressFormats.html","classes":"tsd-kind-type-alias"},{"kind":256,"name":"ICompressionOptions","url":"interfaces/ICompressionOptions.html","classes":"tsd-kind-interface"},{"kind":1024,"name":"format","url":"interfaces/ICompressionOptions.html#format","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ICompressionOptions"},{"kind":128,"name":"Compression","url":"classes/Compression.html","classes":"tsd-kind-class"},{"kind":2048,"name":"#getFormat","url":"classes/Compression.html#_getFormat","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-private","parent":"Compression"},{"kind":512,"name":"constructor","url":"classes/Compression.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Compression"},{"kind":1024,"name":"#format","url":"classes/Compression.html#_format","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"Compression"},{"kind":262144,"name":"format","url":"classes/Compression.html#format","classes":"tsd-kind-accessor tsd-parent-kind-class","parent":"Compression"},{"kind":2048,"name":"run","url":"classes/Compression.html#run","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Compression"},{"kind":32,"name":"default","url":"variables/default.html","classes":"tsd-kind-variable"}],"index":{"version":"2.3.9","fields":["name","comment"],"fieldVectors":[["name/0",[0,20.794]],["comment/0",[]],["name/1",[1,20.794]],["comment/1",[]],["name/2",[2,20.794]],["comment/2",[]],["name/3",[3,12.321]],["comment/3",[]],["name/4",[4,20.794]],["comment/4",[]],["name/5",[5,20.794]],["comment/5",[]],["name/6",[6,20.794]],["comment/6",[]],["name/7",[3,12.321]],["comment/7",[]],["name/8",[3,12.321]],["comment/8",[]],["name/9",[7,20.794]],["comment/9",[]],["name/10",[8,20.794]],["comment/10",[]]],"invertedIndex":[["compression",{"_index":4,"name":{"4":{}},"comment":{}}],["constructor",{"_index":6,"name":{"6":{}},"comment":{}}],["default",{"_index":8,"name":{"10":{}},"comment":{}}],["defaultcompression",{"_index":0,"name":{"0":{}},"comment":{}}],["format",{"_index":3,"name":{"3":{},"7":{},"8":{}},"comment":{}}],["getformat",{"_index":5,"name":{"5":{}},"comment":{}}],["icompressionoptions",{"_index":2,"name":{"2":{}},"comment":{}}],["icomressformats",{"_index":1,"name":{"1":{}},"comment":{}}],["run",{"_index":7,"name":{"9":{}},"comment":{}}]],"pipeline":[]}}' +); diff --git a/docs/assets/style.css b/docs/assets/style.css new file mode 100644 index 0000000..2790957 --- /dev/null +++ b/docs/assets/style.css @@ -0,0 +1,1225 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-text: #222; + --light-color-text-aside: #707070; + --light-color-link: #4da6ff; + --light-color-ts: #db1373; + --light-color-ts-interface: #139d2c; + --light-color-ts-enum: #9c891a; + --light-color-ts-class: #2484e5; + --light-color-ts-function: #572be7; + --light-color-ts-namespace: #b111c9; + --light-color-ts-private: #707070; + --light-color-ts-variable: #4d68ff; + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + --dark-color-ts: #ff6492; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-class: #61b0ff; + --dark-color-ts-function: #9772ff; + --dark-color-ts-namespace: #e14dff; + --dark-color-ts-private: #e2e2e2; + --dark-color-ts-variable: #4d68ff; + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-ts: var(--light-color-ts); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-class: var(--light-color-ts-class); + --color-ts-function: var(--light-color-ts-function); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-private: var(--light-color-ts-private); + --color-ts-variable: var(--light-color-ts-variable); + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-ts: var(--dark-color-ts); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-private: var(--dark-color-ts-private); + --color-ts-variable: var(--dark-color-ts-variable); + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-ts: var(--light-color-ts); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-class: var(--light-color-ts-class); + --color-ts-function: var(--light-color-ts-function); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-private: var(--light-color-ts-private); + --color-ts-variable: var(--light-color-ts-variable); + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-ts: var(--dark-color-ts); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-private: var(--dark-color-ts-private); + --color-ts-variable: var(--dark-color-ts-variable); + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +.uppercase { + text-transform: uppercase; +} + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1600px; + padding: 0 2rem; +} + +@media (min-width: 640px) { + .container { + padding: 0 4rem; + } +} +@media (min-width: 1200px) { + .container { + padding: 0 8rem; + } +} +@media (min-width: 1600px) { + .container { + padding: 0 12rem; + } +} + +/* Footer */ +.tsd-generator { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} + +.tsd-generator > p { + margin-top: 0; + margin-bottom: 0; + padding: 0 1rem; +} + +.container-main { + display: flex; + justify-content: space-between; + position: relative; + margin: 0 auto; +} + +.col-4, +.col-8 { + box-sizing: border-box; + float: left; + padding: 2rem 1rem; +} + +.col-4 { + flex: 0 0 25%; +} +.col-8 { + flex: 1 0; + flex-wrap: wrap; + padding-left: 0; +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes shift-to-left { + from { + transform: translate(0, 0); + } + to { + transform: translate(-25%, 0); + } +} +@keyframes unshift-to-left { + from { + transform: translate(-25%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: "Segoe UI", sans-serif; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + padding: 10px; + border: 0.1em solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography h4, +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; + margin: 0; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} + +@media (max-width: 1024px) { + html .col-content { + float: none; + max-width: 100%; + width: 100%; + padding-top: 3rem; + } + html .col-menu { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + max-width: 25rem; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-menu > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu :is(header, footer, .col-content) { + animation: shift-to-left 0.4s; + } + + .to-has-menu .col-menu { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu :is(header, footer, .col-content) { + animation: unshift-to-left 0.4s; + } + + .from-has-menu .col-menu { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu :is(header, footer, .col-content) { + transform: translate(-25%, 0); + } + .has-menu .col-menu { + visibility: visible; + transform: translate(0, 0); + display: grid; + align-items: center; + grid-template-rows: auto 1fr; + grid-gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: fit-content; + width: -moz-fit-content; + align-items: center; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus + svg { + transform: scale(0.95); +} +.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { + transform: scale(1); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.tsd-theme-toggle { + padding-top: 0.75rem; +} +.tsd-theme-toggle > h4 { + display: inline; + vertical-align: middle; + margin-right: 0.75rem; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} +.tsd-index-panel a, +.tsd-index-panel a.tsd-parent-kind-module { + color: var(--color-ts); +} +.tsd-index-panel a.tsd-parent-kind-interface { + color: var(--color-ts-interface); +} +.tsd-index-panel a.tsd-parent-kind-enum { + color: var(--color-ts-enum); +} +.tsd-index-panel a.tsd-parent-kind-class { + color: var(--color-ts-class); +} +.tsd-index-panel a.tsd-kind-module { + color: var(--color-ts-namespace); +} +.tsd-index-panel a.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-index-panel a.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-index-panel a.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-index-panel a.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-index-panel a.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-index-panel a.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-index-panel a.tsd-is-private { + color: var(--color-ts-private); +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: absolute; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} +.tsd-member [data-tsd-kind] { + color: var(--color-ts); +} +.tsd-member [data-tsd-kind="Interface"] { + color: var(--color-ts-interface); +} +.tsd-member [data-tsd-kind="Enum"] { + color: var(--color-ts-enum); +} +.tsd-member [data-tsd-kind="Class"] { + color: var(--color-ts-class); +} +.tsd-member [data-tsd-kind="Private"] { + color: var(--color-ts-private); +} + +.tsd-navigation a { + display: block; + margin: 0.4rem 0; + border-left: 2px solid transparent; + color: var(--color-text); + text-decoration: none; + transition: border-left-color 0.1s; +} +.tsd-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul { + margin: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li { + padding: 0; +} + +.tsd-navigation.primary .tsd-accordion-details > ul { + margin-top: 0.75rem; +} +.tsd-navigation.primary a { + padding: 0.75rem 0.5rem; + margin: 0; +} +.tsd-navigation.primary ul li a { + margin-left: 0.5rem; +} +.tsd-navigation.primary ul li li a { + margin-left: 1.5rem; +} +.tsd-navigation.primary ul li li li a { + margin-left: 2.5rem; +} +.tsd-navigation.primary ul li li li li a { + margin-left: 3.5rem; +} +.tsd-navigation.primary ul li li li li li a { + margin-left: 4.5rem; +} +.tsd-navigation.primary ul li li li li li li a { + margin-left: 5.5rem; +} +.tsd-navigation.primary li.current > a { + border-left: 0.15rem var(--color-text) solid; +} +.tsd-navigation.primary li.selected > a { + font-weight: bold; + border-left: 0.2rem var(--color-text) solid; +} +.tsd-navigation.primary ul li a:hover { + border-left: 0.2rem var(--color-text-aside) solid; +} +.tsd-navigation.primary li.globals + li > span, +.tsd-navigation.primary li.globals + li > a { + padding-top: 20px; +} + +.tsd-navigation.secondary.tsd-navigation--toolbar-hide { + max-height: calc(100vh - 1rem); + top: 0.5rem; +} +.tsd-navigation.secondary > ul { + display: inline; + padding-right: 0.5rem; + transition: opacity 0.2s; +} +.tsd-navigation.secondary ul li a { + padding-left: 0; +} +.tsd-navigation.secondary ul li li a { + padding-left: 1.1rem; +} +.tsd-navigation.secondary ul li li li a { + padding-left: 2.2rem; +} +.tsd-navigation.secondary ul li li li li a { + padding-left: 3.3rem; +} +.tsd-navigation.secondary ul li li li li li a { + padding-left: 4.4rem; +} +.tsd-navigation.secondary ul li li li li li li a { + padding-left: 5.5rem; +} + +a.tsd-index-link { + margin: 0.25rem 0; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; +} +.tsd-accordion-summary > h1, +.tsd-accordion-summary > h2, +.tsd-accordion-summary > h3, +.tsd-accordion-summary > h4, +.tsd-accordion-summary > h5 { + display: inline-flex; + align-items: center; + vertical-align: middle; + margin-bottom: 0; + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; +} +.tsd-accordion-summary { + display: block; + cursor: pointer; +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; +} +.tsd-index-accordion .tsd-accordion-summary svg { + margin-right: 0.25rem; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +@media (min-width: 1024px) { + .col-content { + margin: 2rem auto; + } + + .menu-sticky-wrap { + position: sticky; + height: calc(100vh - 2rem); + top: 4rem; + right: 0; + padding: 0 1.5rem; + padding-top: 1rem; + margin-top: 3rem; + transition: 0.3s ease-in-out; + transition-property: top, padding-top, padding, height; + overflow-y: auto; + } + .col-menu { + border-left: 1px solid var(--color-accent); + } + .col-menu--hide { + top: 1rem; + } + .col-menu .tsd-navigation:not(:last-child) { + padding-bottom: 1.75rem; + } +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 4rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + padding: 0 10px; + background-color: var(--color-background); +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current, +#tsd-search .results li:hover { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: block; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: fixed; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} + +.tsd-page-toolbar--hide { + transform: translateY(-100%); +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: opacity 0.1s, background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +@media (max-width: 1024px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through; +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} diff --git a/docs/assets/widgets.png b/docs/assets/widgets.png new file mode 100644 index 0000000..c738053 Binary files /dev/null and b/docs/assets/widgets.png differ diff --git a/docs/assets/widgets@2x.png b/docs/assets/widgets@2x.png new file mode 100644 index 0000000..4bbbd57 Binary files /dev/null and b/docs/assets/widgets@2x.png differ diff --git a/docs/classes/Compression.html b/docs/classes/Compression.html new file mode 100644 index 0000000..8c48eda --- /dev/null +++ b/docs/classes/Compression.html @@ -0,0 +1,1114 @@ + + + + + + Compression | @binden/compression + + + + + + + + +
+
+ + +
+
+
+
+
+ +

Class Compression

+
+
+

Hierarchy

+
    +
  • + Middleware +
    +

    Hierarchy

    +
      +
    • Compression
    • +
    +
    +
  • +
+
+ +
+
+
+ + + +
+
+

Constructors

+ +
+
+

Properties

+ +
+
+

Accessors

+ +
+
+

Methods

+ +
+
+
+
+
+
+

Constructors

+
+ + + +
+
+
+

Properties

+
+ + +
+ #format: + IComressFormats +
+ +
+
+ + +
+ disabled: + boolean +
+ +
+
+ + +
+ ignore_errors: + boolean +
+ +
+
+
+

Accessors

+
+ + + +
+
+
+

Methods

+
+ + +
    + +
  • +
    +

    Parameters

    +
      +
    • +
      + context: Context +
      +
    • +
    +
    +

    + Returns Context +

    + +
  • +
+
+
+ + +
    + +
  • +
    +

    Parameters

    + +
    +

    + Returns "br" | "deflate" | "gzip" | "identity" +

    + +
  • +
+
+
+
+ +
+
+ + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..9dff4b7 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,494 @@ + + + + + + @binden/compression + + + + + + + + +
+
+ + +
+
+
+
+
+

@binden/compression

+
+
+ +

+ @binden/compression + CI Status + version + Known Vulnerabilities + Coverage Status + code style: prettier + Contributor Covenant + semantic-release + Conventional Commits + GitHub top language + node version + npm downloads + License +

+ +

+ Binden compression + middleware (supports br, gzip and + deflate). +

+ + +

Installation

+
+
npm install @binden/compression
+
+ + +

Usage

+
+
import Compression from "@binden/compression";

app.use(Compression); +
+ + +

Test

+
+
npm run test:ts
+
+
+
+ +
+
+ + + diff --git a/docs/interfaces/ICompressionOptions.html b/docs/interfaces/ICompressionOptions.html new file mode 100644 index 0000000..c6a6e7a --- /dev/null +++ b/docs/interfaces/ICompressionOptions.html @@ -0,0 +1,590 @@ + + + + + + ICompressionOptions | @binden/compression + + + + + + + + +
+
+ + +
+
+
+
+
+ +

Interface ICompressionOptions

+
+
+

Hierarchy

+
    +
  • + IMiddlewareParams +
    +

    Hierarchy

    +
      +
    • ICompressionOptions
    • +
    +
    +
  • +
+
+ +
+
+
+ + + +
+
+

Properties

+ +
+
+
+
+
+
+

Properties

+
+ + +
+ disabled?: + boolean +
+ +
+
+ + +
+ format?: + IComressFormats +
+ +
+
+ + +
+ ignore_errors?: + boolean +
+ +
+
+
+ +
+
+ + + diff --git a/docs/modules.html b/docs/modules.html new file mode 100644 index 0000000..0cd159f --- /dev/null +++ b/docs/modules.html @@ -0,0 +1,481 @@ + + + + + + @binden/compression + + + + + + + + +
+
+ + +
+
+
+
+
+

@binden/compression

+
+
+
+

Index

+
+

Classes

+ +
+
+

Interfaces

+ +
+
+

Type Aliases

+ +
+
+

Variables

+ +
+
+
+
+ +
+
+ + + diff --git a/docs/types/IComressFormats.html b/docs/types/IComressFormats.html new file mode 100644 index 0000000..3846331 --- /dev/null +++ b/docs/types/IComressFormats.html @@ -0,0 +1,418 @@ + + + + + + IComressFormats | @binden/compression + + + + + + + + +
+
+ + +
+
+
+
+
+ +

Type alias IComressFormats

+
+
+ IComressFormats: + "auto" | "br" | "deflate" | "gzip" +
+ +
+ +
+
+ + + diff --git a/docs/variables/DefaultCompression.html b/docs/variables/DefaultCompression.html new file mode 100644 index 0000000..2247127 --- /dev/null +++ b/docs/variables/DefaultCompression.html @@ -0,0 +1,415 @@ + + + + + + DefaultCompression | @binden/compression + + + + + + + + +
+
+ + +
+
+
+
+
+ +

+ Variable DefaultCompressionConst +

+
+
+ DefaultCompression: + "br" = "br" +
+ +
+ +
+
+ + + diff --git a/docs/variables/default.html b/docs/variables/default.html new file mode 100644 index 0000000..ddeba51 --- /dev/null +++ b/docs/variables/default.html @@ -0,0 +1,415 @@ + + + + + + default | @binden/compression + + + + + + + + +
+
+ + +
+
+
+
+
+ +

Variable default

+
+
+ default: + Compression +
+ +
+ +
+
+ + +