diff --git a/.gitattributes b/.gitattributes index 91a839b..f4a319e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ package-lock.json linguist-generated +docs/reference/** linguist-generated diff --git a/docs/reference/.nojekyll b/docs/reference/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/docs/reference/.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/reference/assets/highlight.css b/docs/reference/assets/highlight.css new file mode 100644 index 0000000..5674cf3 --- /dev/null +++ b/docs/reference/assets/highlight.css @@ -0,0 +1,22 @@ +:root { + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --code-background: var(--dark-code-background); +} + +pre, code { background: var(--code-background); } diff --git a/docs/reference/assets/icons.js b/docs/reference/assets/icons.js new file mode 100644 index 0000000..c27b1d1 --- /dev/null +++ b/docs/reference/assets/icons.js @@ -0,0 +1,21 @@ +(function () { + addIcons(); + function addIcons() { + if (document.readyState === "loading") + return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild( + document.createElementNS("http://www.w3.org/2000/svg", "svg"), + ); + svg.innerHTML = `""`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll("use").forEach((el) => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})(); diff --git a/docs/reference/assets/icons.svg b/docs/reference/assets/icons.svg new file mode 100644 index 0000000..e371b8b --- /dev/null +++ b/docs/reference/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/reference/assets/main.js b/docs/reference/assets/main.js new file mode 100644 index 0000000..22969f9 --- /dev/null +++ b/docs/reference/assets/main.js @@ -0,0 +1,2213 @@ +"use strict"; +window.translations = { + copy: "Copy", + copied: "Copied!", + normally_hidden: + "This member is normally hidden due to your filter settings.", +}; +("use strict"); +(() => { + var Pe = Object.create; + var ie = Object.defineProperty; + var Oe = Object.getOwnPropertyDescriptor; + var _e = Object.getOwnPropertyNames; + var Re = Object.getPrototypeOf, + Me = Object.prototype.hasOwnProperty; + var Fe = (t, e) => () => ( + e || t((e = { exports: {} }).exports, e), e.exports + ); + var De = (t, e, n, r) => { + if ((e && typeof e == "object") || typeof e == "function") + for (let i of _e(e)) + !Me.call(t, i) && + i !== n && + ie(t, i, { + get: () => e[i], + enumerable: !(r = Oe(e, i)) || r.enumerable, + }); + return t; + }; + var Ae = (t, e, n) => ( + (n = t != null ? Pe(Re(t)) : {}), + De( + e || !t || !t.__esModule + ? ie(n, "default", { value: t, enumerable: !0 }) + : n, + t, + ) + ); + var ue = Fe((ae, le) => { + (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 l = r.charAt(o), + u = o - a; + if (l.match(t.tokenizer.separator) || o == i) { + if (u > 0) { + var d = t.utils.clone(n) || {}; + (d.position = [a, u]), + (d.index = s.length), + s.push(new t.Token(r.slice(a, o), d)); + } + 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 l = 0; l < a.length; l++) s.push(a[l]); + 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, + l = 0, + u = 0, + d = 0; + u < s && d < o; + + ) + (a = r[u]), + (l = i[d]), + a < l + ? (u += 2) + : a > l + ? (d += 2) + : a == l && ((n += r[u + 1] * i[d + 1]), (u += 2), (d += 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, + l = "^(" + s + ")?" + o + s + "(" + o + ")?$", + u = "^(" + s + ")?" + o + s + o + s, + d = "^(" + s + ")?" + i, + m = new RegExp(a), + p = new RegExp(u), + b = new RegExp(l), + g = new RegExp(d), + L = /^(.+?)(ss|i)es$/, + f = /^(.+?)([^s])s$/, + y = /^(.+?)eed$/, + S = /^(.+?)(ed|ing)$/, + w = /.$/, + k = /(at|bl|iz)$/, + _ = new RegExp("([^aeiouylsz])\\1$"), + B = new RegExp("^" + s + i + "[^aeiouwxy]$"), + A = /^(.+?[^aeiou])y$/, + j = + /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/, + q = /^(.+?)(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)$/, + $ = /^(.+?)(s|t)(ion)$/, + C = /^(.+?)e$/, + z = /ll$/, + W = new RegExp("^" + s + i + "[^aeiouwxy]$"), + H = function (c) { + var v, P, T, h, x, O, M; + if (c.length < 3) return c; + if ( + ((T = c.substr(0, 1)), + T == "y" && (c = T.toUpperCase() + c.substr(1)), + (h = L), + (x = f), + h.test(c) + ? (c = c.replace(h, "$1$2")) + : x.test(c) && (c = c.replace(x, "$1$2")), + (h = y), + (x = S), + h.test(c)) + ) { + var E = h.exec(c); + (h = m), h.test(E[1]) && ((h = w), (c = c.replace(h, ""))); + } else if (x.test(c)) { + var E = x.exec(c); + (v = E[1]), + (x = g), + x.test(v) && + ((c = v), + (x = k), + (O = _), + (M = B), + x.test(c) + ? (c = c + "e") + : O.test(c) + ? ((h = w), (c = c.replace(h, ""))) + : M.test(c) && (c = c + "e")); + } + if (((h = A), h.test(c))) { + var E = h.exec(c); + (v = E[1]), (c = v + "i"); + } + if (((h = j), h.test(c))) { + var E = h.exec(c); + (v = E[1]), (P = E[2]), (h = m), h.test(v) && (c = v + e[P]); + } + if (((h = q), h.test(c))) { + var E = h.exec(c); + (v = E[1]), (P = E[2]), (h = m), h.test(v) && (c = v + n[P]); + } + if (((h = V), (x = $), h.test(c))) { + var E = h.exec(c); + (v = E[1]), (h = p), h.test(v) && (c = v); + } else if (x.test(c)) { + var E = x.exec(c); + (v = E[1] + E[2]), (x = p), x.test(v) && (c = v); + } + if (((h = C), h.test(c))) { + var E = h.exec(c); + (v = E[1]), + (h = p), + (x = b), + (O = W), + (h.test(v) || (x.test(v) && !O.test(v))) && (c = v); + } + return ( + (h = z), + (x = p), + h.test(c) && x.test(c) && ((h = w), (c = c.replace(h, ""))), + T == "y" && (c = T.toLowerCase() + c.substr(1)), + c + ); + }; + return function (R) { + return R.update(H); + }; + })()), + 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 l = s.node.edges["*"]; + else { + var l = new t.TokenSet(); + s.node.edges["*"] = l; + } + if ( + (s.str.length == 0 && (l.final = !0), + i.push({ + node: l, + 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 u = s.node.edges["*"]; + else { + var u = new t.TokenSet(); + s.node.edges["*"] = u; + } + s.str.length == 1 && (u.final = !0), + i.push({ + node: u, + editsRemaining: s.editsRemaining - 1, + str: s.str.slice(1), + }); + } + if (s.str.length > 1) { + var d = s.str.charAt(0), + m = s.str.charAt(1), + p; + m in s.node.edges + ? (p = s.node.edges[m]) + : ((p = new t.TokenSet()), (s.node.edges[m] = p)), + s.str.length == 1 && (p.final = !0), + i.push({ + node: p, + editsRemaining: s.editsRemaining - 1, + str: d + 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 l = new t.TokenSet(); + (l.final = a), (n.edges[o] = l), (n = l); + } + } + 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), + l = a.length, + u = 0; + u < o; + u++ + ) + for (var d = s[u], m = 0; m < l; m++) { + var p = a[m]; + if (p == d || d == "*") { + var b = r.node.edges[p], + g = r.qNode.edges[d], + L = b.final && g.final, + f = void 0; + p in r.output.edges + ? ((f = r.output.edges[p]), (f.final = f.final || L)) + : ((f = new t.TokenSet()), + (f.final = L), + (r.output.edges[p] = f)), + i.push({ qNode: g, 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), + l = 0; + l < this.fields.length; + l++ + ) + i[this.fields[l]] = new t.Vector(); + e.call(n, n); + for (var l = 0; l < n.clauses.length; l++) { + var u = n.clauses[l], + d = null, + m = t.Set.empty; + u.usePipeline + ? (d = this.pipeline.runString(u.term, { fields: u.fields })) + : (d = [u.term]); + for (var p = 0; p < d.length; p++) { + var b = d[p]; + u.term = b; + var g = t.TokenSet.fromClause(u), + L = this.tokenSet.intersect(g).toArray(); + if (L.length === 0 && u.presence === t.Query.presence.REQUIRED) { + for (var f = 0; f < u.fields.length; f++) { + var y = u.fields[f]; + o[y] = t.Set.empty; + } + break; + } + for (var S = 0; S < L.length; S++) + for ( + var w = L[S], k = this.invertedIndex[w], _ = k._index, f = 0; + f < u.fields.length; + f++ + ) { + var y = u.fields[f], + B = k[y], + A = Object.keys(B), + j = w + "/" + y, + q = new t.Set(A); + if ( + (u.presence == t.Query.presence.REQUIRED && + ((m = m.union(q)), + o[y] === void 0 && (o[y] = t.Set.complete)), + u.presence == t.Query.presence.PROHIBITED) + ) { + a[y] === void 0 && (a[y] = t.Set.empty), + (a[y] = a[y].union(q)); + continue; + } + if ( + (i[y].upsert(_, u.boost, function (Ie, Ce) { + return Ie + Ce; + }), + !s[j]) + ) { + for (var V = 0; V < A.length; V++) { + var $ = A[V], + C = new t.FieldRef($, y), + z = B[$], + W; + (W = r[C]) === void 0 + ? (r[C] = new t.MatchData(w, y, z)) + : W.add(w, y, z); + } + s[j] = !0; + } + } + } + if (u.presence === t.Query.presence.REQUIRED) + for (var f = 0; f < u.fields.length; f++) { + var y = u.fields[f]; + o[y] = o[y].intersect(m); + } + } + for ( + var H = t.Set.complete, R = t.Set.empty, l = 0; + l < this.fields.length; + l++ + ) { + var y = this.fields[l]; + o[y] && (H = H.intersect(o[y])), a[y] && (R = R.union(a[y])); + } + var c = Object.keys(r), + v = [], + P = Object.create(null); + if (n.isNegated()) { + c = Object.keys(this.fieldVectors); + for (var l = 0; l < c.length; l++) { + var C = c[l], + T = t.FieldRef.fromString(C); + r[C] = new t.MatchData(); + } + } + for (var l = 0; l < c.length; l++) { + var T = t.FieldRef.fromString(c[l]), + h = T.docRef; + if (H.contains(h) && !R.contains(h)) { + var x = this.fieldVectors[T], + O = i[T.fieldName].similarity(x), + M; + if ((M = P[h]) !== void 0) + (M.score += O), M.matchData.combine(r[T]); + else { + var E = { ref: h, score: O, matchData: r[T] }; + (P[h] = E), v.push(E); + } + } + } + return v.sort(function (ke, Qe) { + return Qe.score - ke.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(), + l = 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 u = 0; u < i.length; u++) { + var d = i[u], + m = d[0], + p = d[1]; + r[m] = new t.Vector(p); + } + for (var u = 0; u < o.length; u++) { + var d = o[u], + b = d[0], + g = d[1]; + a.insert(b), (s[b] = g); + } + return ( + a.finish(), + (n.fields = e.fields), + (n.fieldVectors = r), + (n.invertedIndex = s), + (n.tokenSet = a.root), + (n.pipeline = l), + 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, + l = a ? a(e) : e[o], + u = this.tokenizer(l, { fields: [o] }), + d = this.pipeline.run(u), + m = new t.FieldRef(r, o), + p = Object.create(null); + (this.fieldTermFrequencies[m] = p), + (this.fieldLengths[m] = 0), + (this.fieldLengths[m] += d.length); + for (var b = 0; b < d.length; b++) { + var g = d[b]; + if ( + (p[g] == null && (p[g] = 0), + (p[g] += 1), + this.invertedIndex[g] == null) + ) { + var L = Object.create(null); + (L._index = this.termIndex), (this.termIndex += 1); + for (var f = 0; f < i.length; f++) + L[i[f]] = Object.create(null); + this.invertedIndex[g] = L; + } + this.invertedIndex[g][o][r] == null && + (this.invertedIndex[g][o][r] = Object.create(null)); + for (var y = 0; y < this.metadataWhitelist.length; y++) { + var S = this.metadataWhitelist[y], + w = g.metadata[S]; + this.invertedIndex[g][o][r][S] == null && + (this.invertedIndex[g][o][r][S] = []), + this.invertedIndex[g][o][r][S].push(w); + } + } + } + }), + (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 l = Object.keys(this._fields), s = 0; s < l.length; s++) { + var u = l[s]; + r[u] = r[u] / i[u]; + } + 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, + l = this.fieldLengths[o], + u = new t.Vector(), + d = this.fieldTermFrequencies[o], + m = Object.keys(d), + p = m.length, + b = this._fields[a].boost || 1, + g = this._documents[o.docRef].boost || 1, + L = 0; + L < p; + L++ + ) { + var f = m[L], + y = d[f], + S = this.invertedIndex[f]._index, + w, + k, + _; + i[f] === void 0 + ? ((w = t.idf(this.invertedIndex[f], this.documentCount)), + (i[f] = w)) + : (w = i[f]), + (k = + (w * ((this._k1 + 1) * y)) / + (this._k1 * + (1 - this._b + this._b * (l / this.averageFieldLength[a])) + + y)), + (k *= b), + (k *= g), + (_ = Math.round(k * 1e3) / 1e3), + u.insert(S, _); + } + e[o] = u; + } + 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], + l = Object.keys(e.metadata[i][a]); + this.metadata[i][a] == null && + (this.metadata[i][a] = Object.create(null)); + for (var u = 0; u < l.length; u++) { + var d = l[u]; + this.metadata[i][a][d] == null + ? (this.metadata[i][a][d] = e.metadata[i][a][d]) + : (this.metadata[i][a][d] = this.metadata[i][a][d].concat( + e.metadata[i][a][d], + )); + } + } + } + }), + (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 ae == "object" + ? (le.exports = n()) + : (e.lunr = n()); + })(this, function () { + return t; + }); + })(); + }); + var se = []; + function G(t, e) { + se.push({ selector: e, constructor: t }); + } + var U = class { + constructor() { + this.alwaysVisibleMember = null; + this.createComponents(document.body), + this.ensureFocusedElementVisible(), + this.listenForCodeCopies(), + window.addEventListener("hashchange", () => + this.ensureFocusedElementVisible(), + ), + document.body.style.display || + (this.ensureFocusedElementVisible(), + this.updateIndexVisibility(), + this.scrollToHash()); + } + createComponents(e) { + se.forEach((n) => { + e.querySelectorAll(n.selector).forEach((r) => { + r.dataset.hasInstance || + (new n.constructor({ el: r, app: this }), + (r.dataset.hasInstance = String(!0))); + }); + }); + } + filterChanged() { + this.ensureFocusedElementVisible(); + } + showPage() { + document.body.style.display && + (document.body.style.removeProperty("display"), + this.ensureFocusedElementVisible(), + this.updateIndexVisibility(), + this.scrollToHash()); + } + scrollToHash() { + if (location.hash) { + let e = document.getElementById(location.hash.substring(1)); + if (!e) return; + e.scrollIntoView({ behavior: "instant", block: "start" }); + } + } + ensureActivePageVisible() { + let e = document.querySelector(".tsd-navigation .current"), + n = e?.parentElement; + for (; n && !n.classList.contains(".tsd-navigation"); ) + n instanceof HTMLDetailsElement && (n.open = !0), (n = n.parentElement); + if (e && !Ve(e)) { + let r = + e.getBoundingClientRect().top - + document.documentElement.clientHeight / 4; + (document.querySelector(".site-menu").scrollTop = r), + (document.querySelector(".col-sidebar").scrollTop = r); + } + } + updateIndexVisibility() { + let e = document.querySelector(".tsd-index-content"), + n = e?.open; + e && (e.open = !0), + document.querySelectorAll(".tsd-index-section").forEach((r) => { + r.style.display = "block"; + let i = Array.from(r.querySelectorAll(".tsd-index-link")).every( + (s) => s.offsetParent == null, + ); + r.style.display = i ? "none" : "block"; + }), + e && (e.open = n); + } + ensureFocusedElementVisible() { + if ( + (this.alwaysVisibleMember && + (this.alwaysVisibleMember.classList.remove("always-visible"), + this.alwaysVisibleMember.firstElementChild.remove(), + (this.alwaysVisibleMember = null)), + !location.hash) + ) + return; + let e = document.getElementById(location.hash.substring(1)); + if (!e) return; + let n = e.parentElement; + for (; n && n.tagName !== "SECTION"; ) n = n.parentElement; + if (!n) return; + let r = n.offsetParent == null, + i = n; + for (; i !== document.body; ) + i instanceof HTMLDetailsElement && (i.open = !0), (i = i.parentElement); + if (n.offsetParent == null) { + (this.alwaysVisibleMember = n), n.classList.add("always-visible"); + let s = document.createElement("p"); + s.classList.add("warning"), + (s.textContent = window.translations.normally_hidden), + n.prepend(s); + } + r && e.scrollIntoView(); + } + listenForCodeCopies() { + document.querySelectorAll("pre > button").forEach((e) => { + let n; + e.addEventListener("click", () => { + e.previousElementSibling instanceof HTMLElement && + navigator.clipboard.writeText( + e.previousElementSibling.innerText.trim(), + ), + (e.textContent = window.translations.copied), + e.classList.add("visible"), + clearTimeout(n), + (n = setTimeout(() => { + e.classList.remove("visible"), + (n = setTimeout(() => { + e.textContent = window.translations.copy; + }, 100)); + }, 1e3)); + }); + }); + } + }; + function Ve(t) { + let e = t.getBoundingClientRect(), + n = Math.max(document.documentElement.clientHeight, window.innerHeight); + return !(e.bottom < 0 || e.top - n >= 0); + } + var oe = (t, e = 100) => { + let n; + return () => { + clearTimeout(n), (n = setTimeout(() => t(), e)); + }; + }; + var pe = Ae(ue()); + async function ce(t, e) { + if (!window.searchData) return; + let n = await fetch(window.searchData), + r = new Blob([await n.arrayBuffer()]) + .stream() + .pipeThrough(new DecompressionStream("gzip")), + i = await new Response(r).json(); + (t.data = i), + (t.index = pe.Index.load(i.index)), + e.classList.remove("loading"), + e.classList.add("ready"); + } + function fe() { + let t = document.getElementById("tsd-search"); + if (!t) return; + let e = { base: t.dataset.base + "/" }, + n = document.getElementById("tsd-search-script"); + t.classList.add("loading"), + n && + (n.addEventListener("error", () => { + t.classList.remove("loading"), t.classList.add("failure"); + }), + n.addEventListener("load", () => { + ce(e, t); + }), + ce(e, t)); + let r = document.querySelector("#tsd-search input"), + i = document.querySelector("#tsd-search .results"); + if (!r || !i) + throw new Error( + "The input field or the result list wrapper was not found", + ); + i.addEventListener("mouseup", () => { + te(t); + }), + r.addEventListener("focus", () => t.classList.add("has-focus")), + He(t, i, r, e); + } + function He(t, e, n, r) { + n.addEventListener( + "input", + oe(() => { + Ne(t, e, n, r); + }, 200), + ), + n.addEventListener("keydown", (i) => { + i.key == "Enter" + ? Be(e, t) + : i.key == "ArrowUp" + ? (de(e, n, -1), i.preventDefault()) + : i.key === "ArrowDown" && (de(e, n, 1), i.preventDefault()); + }), + document.body.addEventListener("keypress", (i) => { + i.altKey || + i.ctrlKey || + i.metaKey || + (!n.matches(":focus") && + i.key === "/" && + (i.preventDefault(), n.focus())); + }), + document.body.addEventListener("keyup", (i) => { + t.classList.contains("has-focus") && + (i.key === "Escape" || + (!e.matches(":focus-within") && !n.matches(":focus"))) && + (n.blur(), te(t)); + }); + } + function te(t) { + t.classList.remove("has-focus"); + } + function Ne(t, e, n, r) { + if (!r.index || !r.data) return; + e.textContent = ""; + let i = n.value.trim(), + s; + if (i) { + let o = i + .split(" ") + .map((a) => (a.length ? `*${a}*` : "")) + .join(" "); + s = r.index.search(o); + } else s = []; + for (let o = 0; o < s.length; o++) { + let a = s[o], + l = r.data.rows[Number(a.ref)], + u = 1; + l.name.toLowerCase().startsWith(i.toLowerCase()) && + (u *= 1 + 1 / (1 + Math.abs(l.name.length - i.length))), + (a.score *= u); + } + if (s.length === 0) { + let o = document.createElement("li"); + o.classList.add("no-results"); + let a = document.createElement("span"); + (a.textContent = "No results found"), o.appendChild(a), e.appendChild(o); + } + s.sort((o, a) => a.score - o.score); + for (let o = 0, a = Math.min(10, s.length); o < a; o++) { + let l = r.data.rows[Number(s[o].ref)], + u = ``, + d = he(l.name, i); + globalThis.DEBUG_SEARCH_WEIGHTS && + (d += ` (score: ${s[o].score.toFixed(2)})`), + l.parent && + (d = ` + ${he(l.parent, i)}.${d}`); + let m = document.createElement("li"); + m.classList.value = l.classes ?? ""; + let p = document.createElement("a"); + (p.href = r.base + l.url), + (p.innerHTML = u + d), + m.append(p), + p.addEventListener("focus", () => { + e.querySelector(".current")?.classList.remove("current"), + m.classList.add("current"); + }), + e.appendChild(m); + } + } + function de(t, e, n) { + let r = t.querySelector(".current"); + if (!r) + (r = t.querySelector(n == 1 ? "li:first-child" : "li:last-child")), + r && r.classList.add("current"); + else { + let i = r; + if (n === 1) + do i = i.nextElementSibling ?? void 0; + while (i instanceof HTMLElement && i.offsetParent == null); + else + do i = i.previousElementSibling ?? void 0; + while (i instanceof HTMLElement && i.offsetParent == null); + i + ? (r.classList.remove("current"), i.classList.add("current")) + : n === -1 && (r.classList.remove("current"), e.focus()); + } + } + function Be(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), te(e); + } + } + function he(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( + ee(t.substring(s, o)), + `${ee(t.substring(o, o + r.length))}`, + ), + (s = o + r.length), + (o = n.indexOf(r, s)); + return i.push(ee(t.substring(s))), i.join(""); + } + var je = { + "&": "&", + "<": "<", + ">": ">", + "'": "'", + '"': """, + }; + function ee(t) { + return t.replace(/[&<>"'"]/g, (e) => je[e]); + } + var I = class { + constructor(e) { + (this.el = e.el), (this.app = e.app); + } + }; + var F = "mousedown", + ye = "mousemove", + N = "mouseup", + J = { x: 0, y: 0 }, + me = !1, + ne = !1, + qe = !1, + D = !1, + ve = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + navigator.userAgent, + ); + document.documentElement.classList.add(ve ? "is-mobile" : "not-mobile"); + ve && + "ontouchstart" in document.documentElement && + ((qe = !0), (F = "touchstart"), (ye = "touchmove"), (N = "touchend")); + document.addEventListener(F, (t) => { + (ne = !0), (D = !1); + let e = F == "touchstart" ? t.targetTouches[0] : t; + (J.y = e.pageY || 0), (J.x = e.pageX || 0); + }); + document.addEventListener(ye, (t) => { + if (ne && !D) { + let e = F == "touchstart" ? t.targetTouches[0] : t, + n = J.x - (e.pageX || 0), + r = J.y - (e.pageY || 0); + D = Math.sqrt(n * n + r * r) > 10; + } + }); + document.addEventListener(N, () => { + ne = !1; + }); + document.addEventListener("click", (t) => { + me && (t.preventDefault(), t.stopImmediatePropagation(), (me = !1)); + }); + var X = class extends I { + constructor(e) { + super(e), + (this.className = this.el.dataset.toggle || ""), + this.el.addEventListener(N, (n) => this.onPointerUp(n)), + this.el.addEventListener("click", (n) => n.preventDefault()), + document.addEventListener(F, (n) => this.onDocumentPointerDown(n)), + document.addEventListener(N, (n) => this.onDocumentPointerUp(n)); + } + setActive(e) { + if (this.active == e) return; + (this.active = e), + document.documentElement.classList.toggle("has-" + this.className, e), + this.el.classList.toggle("active", e); + let n = (this.active ? "to-has-" : "from-has-") + this.className; + document.documentElement.classList.add(n), + setTimeout(() => document.documentElement.classList.remove(n), 500); + } + onPointerUp(e) { + D || (this.setActive(!0), e.preventDefault()); + } + onDocumentPointerDown(e) { + if (this.active) { + if (e.target.closest(".col-sidebar, .tsd-filter-group")) return; + this.setActive(!1); + } + } + onDocumentPointerUp(e) { + if (!D && this.active && e.target.closest(".col-sidebar")) { + let n = e.target.closest("a"); + if (n) { + let r = window.location.href; + r.indexOf("#") != -1 && (r = r.substring(0, r.indexOf("#"))), + n.href.substring(0, r.length) == r && + setTimeout(() => this.setActive(!1), 250); + } + } + } + }; + var re; + try { + re = localStorage; + } catch { + re = { + getItem() { + return null; + }, + setItem() {}, + }; + } + var Q = re; + var ge = document.head.appendChild(document.createElement("style")); + ge.dataset.for = "filters"; + var Y = class extends I { + constructor(e) { + super(e), + (this.key = `filter-${this.el.name}`), + (this.value = this.el.checked), + this.el.addEventListener("change", () => { + this.setLocalStorage(this.el.checked); + }), + this.setLocalStorage(this.fromLocalStorage()), + (ge.innerHTML += `html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`), + this.app.updateIndexVisibility(); + } + fromLocalStorage() { + let e = Q.getItem(this.key); + return e ? e === "true" : this.el.checked; + } + setLocalStorage(e) { + Q.setItem(this.key, e.toString()), + (this.value = e), + this.handleValueChange(); + } + handleValueChange() { + (this.el.checked = this.value), + document.documentElement.classList.toggle(this.key, this.value), + this.app.filterChanged(), + this.app.updateIndexVisibility(); + } + }; + var Z = class extends I { + constructor(e) { + super(e), + (this.summary = this.el.querySelector(".tsd-accordion-summary")), + (this.icon = this.summary.querySelector("svg")), + (this.key = `tsd-accordion-${this.summary.dataset.key ?? this.summary.textContent.trim().replace(/\s+/g, "-").toLowerCase()}`); + let n = Q.getItem(this.key); + (this.el.open = n ? n === "true" : this.el.open), + this.el.addEventListener("toggle", () => this.update()); + let r = this.summary.querySelector("a"); + r && + r.addEventListener("click", () => { + location.assign(r.href); + }), + this.update(); + } + update() { + (this.icon.style.transform = `rotate(${this.el.open ? 0 : -90}deg)`), + Q.setItem(this.key, this.el.open.toString()); + } + }; + function Ee(t) { + let e = Q.getItem("tsd-theme") || "os"; + (t.value = e), + xe(e), + t.addEventListener("change", () => { + Q.setItem("tsd-theme", t.value), xe(t.value); + }); + } + function xe(t) { + document.documentElement.dataset.theme = t; + } + var K; + function we() { + let t = document.getElementById("tsd-nav-script"); + t && (t.addEventListener("load", Le), Le()); + } + async function Le() { + let t = document.getElementById("tsd-nav-container"); + if (!t || !window.navigationData) return; + let n = await (await fetch(window.navigationData)).arrayBuffer(), + r = new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")), + i = await new Response(r).json(); + (K = t.dataset.base), K.endsWith("/") || (K += "/"), (t.innerHTML = ""); + for (let s of i) Se(s, t, []); + window.app.createComponents(t), + window.app.showPage(), + window.app.ensureActivePageVisible(); + } + function Se(t, e, n) { + let r = e.appendChild(document.createElement("li")); + if (t.children) { + let i = [...n, t.text], + s = r.appendChild(document.createElement("details")); + s.className = t.class ? `${t.class} tsd-accordion` : "tsd-accordion"; + let o = s.appendChild(document.createElement("summary")); + (o.className = "tsd-accordion-summary"), + (o.dataset.key = i.join("$")), + (o.innerHTML = + ''), + be(t, o); + let a = s.appendChild(document.createElement("div")); + a.className = "tsd-accordion-details"; + let l = a.appendChild(document.createElement("ul")); + l.className = "tsd-nested-navigation"; + for (let u of t.children) Se(u, l, i); + } else be(t, r, t.class); + } + function be(t, e, n) { + if (t.path) { + let r = e.appendChild(document.createElement("a")); + (r.href = K + t.path), + n && (r.className = n), + location.pathname === r.pathname && + !r.href.includes("#") && + r.classList.add("current"), + t.kind && + (r.innerHTML = ``), + (r.appendChild(document.createElement("span")).textContent = t.text); + } else e.appendChild(document.createElement("span")).textContent = t.text; + } + G(X, "a[data-toggle]"); + G(Z, ".tsd-accordion"); + G(Y, ".tsd-filter-item input[type=checkbox]"); + var Te = document.getElementById("tsd-theme"); + Te && Ee(Te); + var $e = new U(); + Object.defineProperty(window, "app", { value: $e }); + fe(); + we(); +})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * 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 + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * 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.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/docs/reference/assets/navigation.js b/docs/reference/assets/navigation.js new file mode 100644 index 0000000..bb4e05f --- /dev/null +++ b/docs/reference/assets/navigation.js @@ -0,0 +1,2 @@ +window.navigationData = + "data:application/octet-stream;base64,H4sIAAAAAAAAE4WTS2sCMRRG/0vW0qn27U6koItCH9AuSheZmasGYxLvvalK6X8vasd5xcz6fOcQLuTzRzBsWQzFyKlHRIuiJ5zkhRiKTEsioKQgFwteadETS2VyMewP7n97J/tdapVLVtaciTQGsdaLBw9vLNlT2eGdA0oqqF4YXD7c9W8GlcorrD0QP6k817CRCM1Wa9BdJGcNwUSaXAO2ezXcVWscZGpmtlkMTLqqH5BOrF0Wb2kWG7irtt6fu2x8S1Qy1UDJAdTtq6qIIDWrVdAtWEQntijnQfsfReTMmpmal+7Mm2x/Q0qOpK7eXlfUOfD4rH2CkYCTSDBybpqHCiWNJNCbkIveRCRiBLkKeUcSU31KGaoUgnYBI4GN4kXol5WV+qIj9Yx2uztXOcBW4OsPsjwAYcYEAAA="; diff --git a/docs/reference/assets/search.js b/docs/reference/assets/search.js new file mode 100644 index 0000000..285a820 --- /dev/null +++ b/docs/reference/assets/search.js @@ -0,0 +1,2 @@ +window.searchData = + "data:application/octet-stream;base64,H4sIAAAAAAAAE62ZXW+jOBSG/4vn1k1zDiEhuRutdjW9WGk/pNkLFFUkuA0qAcZAO6Oo/31lIGDjQ2umc9UK+33PwX58jJ0Lk/lLyXbhhT0lWcx26xVnWXQWbMeOefaQPDLOapmyHXuos2OV5Fl52zYsTtU5ZZwd06gsRcl2jL1ywuZRVL9NOfVtb5p52Jt9q0UteqPnSCbRIRXlbfPcNSNZZ0Quss5cDcr6UB5lchCETd/mavaSVKc/kzhOxUskKUezwxzbv2T+/ceEY9P2phkutxvwh7H/R3yrRVkRuVY/ClHeWu1vp+r73rr3vr9XHk6Gn/q+mi9nRSRFVpFpkiRJEaVVcqZguja9mT9g0Ht9LpLfpcxl79Upbq8Nbzr5gPqaKytZH6v3zD6ZPemh6PPS0l6ixnEVVXX5TqC+08/FOOTxj3ciqC43OCuCNvhfozSJIwU2PQej9l8yFZSn04yMk9VW2xphNQzbQyLSuOljzw8Z3RTMjr5cBXrF/mNueEszNwMXMMnIBJ9VGd8k5U2SnYRMKhH/RAYktmT8rudHo9vVtizyrBRfoixOhbRKo9H68Upr271fZ80EySpbVrmMHqki27U4b7mVFNGZ2m+bhlkb2d/qY+FfE7F2HLSWWY6jab3LHvKRM9Hjo5M2ZfnexFHJTqyCc/k4L+iiVTgHXnS5TsRP8+PM+K3iV8WfP+qLuUNvZzCG6z9x+JLnT9f1Nspn1Oq6nopIluJzUdzFxJoaGim7PWdJFovvbHdhz0KWSZ6xHcOFt9gy3m5c6kTRRuLsmJ/P6u05i/Nj3fy777p9FWqzVJ3b3rdLxsMl95aLLez3PLxqm+fNg6vF8KTRAeMhEDqwdGDokPEQCR1aOjR0HuOhR+g8S+cZuhXj4YrQrSzdytD5jIc+ofMtnW/o1oyHa0K3tnRrQ7dhPNwQuo2l2xi6gPEw4IiLlbcxhIElDAzhlvFwSwTcWrqtOfGKA6CQAZsZGEHTUAMc/UWwRFNMgGOSAwoIQFJs0wMmPqCoAI8U2wiByRAoNICiCGyMwOQI/OlXtlkCEyZQjACFIdg8gQkUKE6AQhFspsCECoLpoba5AhMs2E4PtQ0XmHRhQxe1ENCmC026EKbWAtpw4agsNXAFVFyiMplsYcMWtZbQRgtNtFDRgtRqQhstNNFCBQtSRRhtstAkC9eTY2WThSZZqGBBsojbZKFJFipWkCrkaIOFJlioUEFqGaLNFZpceQoVpFaSZ3PlmVx5ChWkVpJnc9U9anbsZyErEd+1O3cY9t+UF3bfbef9CfDCAra7vHKG0P1dq7+vw2bePO33c9Wm4kZFItoz+GAKy8EVlk427YlKs/A0C68VwdbJ6nqHOZhp6bhlYxzrtaRAS6obJvCdHJtvH9EdlDVHX3N0G/BHUdlvqCfm6jKV0lrz2jiZNR/ggwNqc4eBk0NzhNAcUHNwy6H5fo2KIokNI+1lPLeR6a6bNQ8tF3eH6xWF5qNhiCsnp+HCcrDZDi5u60G2l6Nn7Q53cNsMbm7jLLtDx+l6R6GRo5mh20JrruUHBw0cz0lvjzJo0wXYrVE3CPuLC81Nq4/oNvvXWwvNRJsydHyv4deGwWc12LjhMy72qDmgGzzP/enVrvKaG7glNHJLmjsTLT+tjKFbXX0Rh1OeP8n+oKy5abXVc8NR/UhCrxPNyzGxpDoV7W8xg4tWjRyK/Z6zIilEmmSC7cL96+v/kPat4robAAA="; diff --git a/docs/reference/assets/style.css b/docs/reference/assets/style.css new file mode 100644 index 0000000..9d619a6 --- /dev/null +++ b/docs/reference/assets/style.css @@ -0,0 +1,1448 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --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-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --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-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --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-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --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-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --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-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +*:focus-visible, +.tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +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; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +footer > p { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@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 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: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + 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; +} +a.tsd-anchor-link { + color: var(--color-text); +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +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 .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.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: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + 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-visible + svg { + outline: 2px solid var(--color-focus-outline); +} +.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); +} + +.settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; +} + +.tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; +} + +.tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.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-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: relative; + 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-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-navigation .tsd-nav-link { + display: none; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation-section { + margin-left: 10px; +} +.tsd-page-navigation-section > summary { + padding: 0.25rem; +} +.tsd-page-navigation-section > div { + margin-left: 20px; +} +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; + vertical-align: text-top; +} +.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; +} + +.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: 2rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} +.tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; +} + +#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, +#tsd-toolbar-links a { + 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 { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#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:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#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, +#tsd-search.has-focus #tsd-toolbar-links a { + 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-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.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-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.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-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; +} +.tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; +} +.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: sticky; + 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 .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.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; +} +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 !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + 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); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + 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; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *: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 .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/docs/reference/assets/typedoc-github-style.css b/docs/reference/assets/typedoc-github-style.css new file mode 100644 index 0000000..8fe9cdc --- /dev/null +++ b/docs/reference/assets/typedoc-github-style.css @@ -0,0 +1,435 @@ +/* + * Define colors + */ + +:root { + /* GitHub "Light default" */ + --light-color-background: #ffffff; + --light-color-background-secondary: #f6f8fa; + --light-color-background-navbar: #f6f8fa; + + --light-color-accent: #d0d7de; + + --light-color-text: #1f2328; + --light-color-text-aside: #636c76; + + --light-color-link: #0969da; + + --light-color-warning-border: #f7ebba; + --light-color-background-warning: #fff8c5; + + /* GitHub "Dark default" */ + --dark-color-background: #0d1117; + --dark-color-background-secondary: #161b22; + --dark-color-background-navbar: #000000; + + --dark-color-accent: #30363d; + + --dark-color-text: #e6edf3; + --dark-color-text-aside: #8d96a0; + + --dark-color-link: #4493f8; + + --dark-color-warning-border: #3a2d12; + --dark-color-background-warning: #282215; + + /* Link colors */ + --color-warning-text: var(--color-text); + --color-icon-background: var(--color-background); + --color-focus-outline: var(--color-accent); +} + +@media (prefers-color-scheme: light) { + :root { + --color-background-navbar: var(--light-color-background-navbar); + --color-warning-border: var(--light-color-warning-border); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background-navbar: var(--dark-color-background-navbar); + --color-warning-border: var(--dark-color-warning-border); + } +} + +:root[data-theme='light'] { + --color-background-navbar: var(--light-color-background-navbar); + --color-warning-border: var(--light-color-warning-border); +} + +:root[data-theme='dark'] { + --color-background-navbar: var(--dark-color-background-navbar); + --color-warning-border: var(--dark-color-warning-border); +} + +/* + * Define fonts + */ + +:root { + --font-family-text: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', + 'Segoe UI Emoji'; + --font-family-code: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace; +} + +body { + font-family: var(--font-family-text); +} + +/* + * Headlines + */ + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 1em; + margin-bottom: 0.5em; +} + +/* + * Links + */ + +a, +.tsd-kind-class { + color: var(--color-link); + text-decoration: underline; +} + +.tsd-index-link { + text-decoration: none; +} + +.tsd-index-link:hover { + text-decoration: underline; +} + +.tsd-sources a { + color: var(--color-link); +} + +/* + * Lists + */ + +ul, +ol { + margin-left: 20px; + list-style: disc; +} + +li::marker { + color: var(--color-accent); +} + +/* + * Input fields + */ + +input { + background-color: var(--color-background-secondary); + color: var(--color-text); + border: 1px solid var(--color-accent); + border-radius: 6px; + padding: 8px; + width: 100%; +} + +/* + * Tables + */ + +table { + margin: 1em 0; +} + +.tsd-typography th, +.tsd-typography td { + padding: 8px; + text-align: left; +} + +.tsd-typography th { + background-color: var(--color-background); + color: var(--color-text); +} + +.tsd-typography tr:nth-child(2n) { + background-color: var(--color-background-code); +} + +/* + * Horizontal line + */ + +.tsd-typography hr { + color: var(--color-accent); +} + +/* + * Buttons + */ + +button { + background-color: var(--color-background-navbar); + color: var(--color-text); + border: 1px solid var(--color-accent); + border-radius: 6px; + padding: 8px 16px; + cursor: pointer; + transition: background-color 0.1s ease-in-out; +} + +button:hover { + background-color: var(--color-accent); +} + +pre > button { + background-color: transparent; + transition: background-color 0.1s ease-in-out; + border: none; + opacity: 1; + top: 8px; + padding: 4px 8px; +} + +/* + * Checkbox + */ + +.tsd-filter-input input[type='checkbox'], +.tsd-filter-input svg { + width: 1em; + height: 1em; +} + +.tsd-filter-input svg { + border-radius: 2px; +} + +.tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 6px; +} + +input[type='checkbox']:checked ~ svg .tsd-checkbox-background { + fill: var(--color-accent); +} + +.tsd-checkbox-checkmark { + color: var(--color-text); +} + +/* + * Select + */ + +select { + background-color: var(--color-background); + border: 1px solid var(--color-accent); + border-radius: 6px; + padding: 8px; + font-family: inherit; +} + +/* + * Code blocks + */ + +code, +pre { + border: none; + border-radius: 6px; + margin: 1em 0; + background-color: var(--color-background-secondary); + color: var(--color-text); + font-family: var(--font-family-code); +} + +code.tsd-tag { + background-color: var(--color-accent); + border: unset; +} + +/* + * Warnings + */ + +.warning { + border-style: solid; + border-width: 1px; + border-color: var(--color-warning-border); + border-radius: 6px; +} + +/* + * Topbar + */ + +.tsd-page-toolbar { + background-color: var(--color-background-navbar); + border-bottom-color: var(--color-accent); +} + +.tsd-page-toolbar a.title:hover { + text-decoration: none; +} + +#tsd-search.has-focus { + background-color: var(--color-background-navbar); +} + +#tsd-search .results, +#tsd-search .results li, +#tsd-search .results li:nth-child(2n) { + background-color: var(--color-background-navbar); +} + +#tsd-search .results li { + margin-bottom: 0px; +} + +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} + +#tsd-search .results { + border-style: solid; + border-width: 1px; + border-color: var(--color-accent); + border-radius: 0px 0px 6px 6px; + overflow: hidden; +} + +#tsd-search .results .no-results { + padding: calc(4px + 0.25rem); +} + +/* + * Baseboard + */ + +footer { + border-top-color: var(--color-accent); +} + +/* + * Side navigations + */ + +.site-menu { + padding: 1rem 0; +} + +.tsd-navigation a { + color: var(--color-text); + border-radius: 6px; + padding: 6px; +} + +.tsd-navigation a, +.tsd-navigation a:hover { + text-decoration: none; +} + +.tsd-navigation a:hover:not(.current) { + background-color: color-mix(in srgb, var(--color-text-aside), #0000 88%); +} + +.tsd-navigation a.current { + background-color: color-mix(in srgb, var(--color-text-aside), #0000 92%); +} + +/* + * Type definition groups + */ + +.tsd-index-panel, +.tsd-member-group { + background-color: var(--color-background); + padding: 16px; + border: 1px var(--color-accent) solid; + border-radius: 6px; +} + +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin-top: 0px; +} + +.tsd-panel-group.tsd-index-group details { + margin: 0px; +} + +.tsd-member-group .tsd-member:last-child { + margin-bottom: 0px; +} + +.tsd-signature { + border: 1px solid var(--color-accent); + border-radius: 6px; +} + +.tsd-signatures .tsd-signature { + border-color: var(--color-accent); + border-radius: 0px; +} + +.tsd-description .tsd-signatures .tsd-signature { + border-radius: 6px; +} + +.tsd-full-hierarchy:not(:last-child) { + border-bottom: var(--color-accent); +} + +/* + * Footer + */ + +footer p { + font-size: 1rem; + text-align: center; + color: var(--color-text-aside); +} + +/* + * Fix collapsed margin + */ + +.tsd-accordion-summary.tsd-index-summary > h5 { + margin-top: 0px; + margin-bottom: 0px; +} + +.tsd-panel-group:not([open]) > .tsd-accordion-summary { + margin-bottom: 0px; +} + +/* + * Fix collapse arrow position + */ + +.tsd-accordion-summary:has(svg) > * { + display: inline-flex; + align-items: center; + line-height: normal; +} + +.tsd-accordion-summary > * > svg { + padding-top: 0px; + position: relative; + left: 0px; + top: 50%; +} + +.tsd-accordion-summary svg { + transition: transform 0.1s ease-in-out; +} diff --git a/docs/reference/classes/ApiError.html b/docs/reference/classes/ApiError.html new file mode 100644 index 0000000..1c13bbb --- /dev/null +++ b/docs/reference/classes/ApiError.html @@ -0,0 +1,4 @@ +ApiError | @fal-ai/serverless-client - v0.14.2

Type Parameters

  • Body

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

body: Body
status: number
diff --git a/docs/reference/classes/ValidationError.html b/docs/reference/classes/ValidationError.html new file mode 100644 index 0000000..a1d0bfd --- /dev/null +++ b/docs/reference/classes/ValidationError.html @@ -0,0 +1,6 @@ +ValidationError | @fal-ai/serverless-client - v0.14.2

Hierarchy (view full)

  • ApiError<ValidationErrorBody>
    • ValidationError

Constructors

Properties

Accessors

Methods

Constructors

Properties

body: ValidationErrorBody
status: number

Accessors

Methods

diff --git a/docs/reference/functions/config.html b/docs/reference/functions/config.html new file mode 100644 index 0000000..60b5af6 --- /dev/null +++ b/docs/reference/functions/config.html @@ -0,0 +1,3 @@ +config | @fal-ai/serverless-client - v0.14.2
  • Configures the fal serverless client.

    +

    Parameters

    • config: Config

      the new configuration.

      +

    Returns void

diff --git a/docs/reference/functions/getConfig.html b/docs/reference/functions/getConfig.html new file mode 100644 index 0000000..11f6992 --- /dev/null +++ b/docs/reference/functions/getConfig.html @@ -0,0 +1,3 @@ +getConfig | @fal-ai/serverless-client - v0.14.2
  • Get the current fal serverless client configuration.

    +

    Returns RequiredConfig

    the current client configuration.

    +
diff --git a/docs/reference/functions/parseAppId.html b/docs/reference/functions/parseAppId.html new file mode 100644 index 0000000..d1b7a51 --- /dev/null +++ b/docs/reference/functions/parseAppId.html @@ -0,0 +1 @@ +parseAppId | @fal-ai/serverless-client - v0.14.2
  • Parameters

    • id: string

    Returns AppId

diff --git a/docs/reference/functions/run.html b/docs/reference/functions/run.html new file mode 100644 index 0000000..033d81a --- /dev/null +++ b/docs/reference/functions/run.html @@ -0,0 +1,4 @@ +run | @fal-ai/serverless-client - v0.14.2
  • Runs a fal serverless function identified by its id.

    +

    Type Parameters

    • Input
    • Output

    Parameters

    • id: string

      the registered function revision id or alias.

      +
    • options: RunOptions<Input> = {}

    Returns Promise<Output>

    the remote function output

    +
diff --git a/docs/reference/functions/stream.html b/docs/reference/functions/stream.html new file mode 100644 index 0000000..f5620cc --- /dev/null +++ b/docs/reference/functions/stream.html @@ -0,0 +1,7 @@ +stream | @fal-ai/serverless-client - v0.14.2
  • Calls a fal app that supports streaming and provides a streaming-capable +object as a result, that can be used to get partial results through either +AsyncIterator or through an event listener.

    +

    Type Parameters

    • Input = Record<string, any>
    • Output = any

    Parameters

    • endpointId: string

      the endpoint id, e.g. fal-ai/llavav15-13b.

      +
    • options: StreamOptions<Input>

      the request options, including the input payload.

      +

    Returns Promise<FalStream<Input, Output>>

    the FalStream instance.

    +
diff --git a/docs/reference/functions/subscribe.html b/docs/reference/functions/subscribe.html new file mode 100644 index 0000000..1f4f2ef --- /dev/null +++ b/docs/reference/functions/subscribe.html @@ -0,0 +1,5 @@ +subscribe | @fal-ai/serverless-client - v0.14.2
  • Subscribes to updates for a specific request in the queue.

    +

    Type Parameters

    • Input
    • Output

    Parameters

    • endpointId: string

      The ID of the function web endpoint.

      +
    • options: RunOptions<Input> & QueueSubscribeOptions = {}

      Options to configure how the request is run and how updates are received.

      +

    Returns Promise<Output>

    A promise that resolves to the result of the request once it's completed.

    +
diff --git a/docs/reference/functions/withMiddleware.html b/docs/reference/functions/withMiddleware.html new file mode 100644 index 0000000..97c1617 --- /dev/null +++ b/docs/reference/functions/withMiddleware.html @@ -0,0 +1,4 @@ +withMiddleware | @fal-ai/serverless-client - v0.14.2
diff --git a/docs/reference/functions/withProxy.html b/docs/reference/functions/withProxy.html new file mode 100644 index 0000000..2323c1c --- /dev/null +++ b/docs/reference/functions/withProxy.html @@ -0,0 +1 @@ +withProxy | @fal-ai/serverless-client - v0.14.2
diff --git a/docs/reference/hierarchy.html b/docs/reference/hierarchy.html new file mode 100644 index 0000000..b918b08 --- /dev/null +++ b/docs/reference/hierarchy.html @@ -0,0 +1 @@ +@fal-ai/serverless-client - v0.14.2

@fal-ai/serverless-client - v0.14.2

Class Hierarchy

diff --git a/docs/reference/index.html b/docs/reference/index.html new file mode 100644 index 0000000..56eabef --- /dev/null +++ b/docs/reference/index.html @@ -0,0 +1,19 @@ +@fal-ai/serverless-client - v0.14.2

@fal-ai/serverless-client - v0.14.2

Index

Classes

Type Aliases

Variables

Functions

diff --git a/docs/reference/types/QueueStatus.html b/docs/reference/types/QueueStatus.html new file mode 100644 index 0000000..56a07ec --- /dev/null +++ b/docs/reference/types/QueueStatus.html @@ -0,0 +1 @@ +QueueStatus | @fal-ai/serverless-client - v0.14.2
QueueStatus: InProgressQueueStatus | CompletedQueueStatus | EnqueuedQueueStatus
diff --git a/docs/reference/types/RequestMiddleware.html b/docs/reference/types/RequestMiddleware.html new file mode 100644 index 0000000..5a8201b --- /dev/null +++ b/docs/reference/types/RequestMiddleware.html @@ -0,0 +1 @@ +RequestMiddleware | @fal-ai/serverless-client - v0.14.2

Type Alias RequestMiddleware

RequestMiddleware: ((request: RequestConfig) => Promise<RequestConfig>)
diff --git a/docs/reference/types/ResponseHandler.html b/docs/reference/types/ResponseHandler.html new file mode 100644 index 0000000..e044200 --- /dev/null +++ b/docs/reference/types/ResponseHandler.html @@ -0,0 +1 @@ +ResponseHandler | @fal-ai/serverless-client - v0.14.2

Type Alias ResponseHandler<Output>

ResponseHandler<Output>: ((response: Response) => Promise<Output>)

Type Parameters

  • Output
diff --git a/docs/reference/types/ValidationErrorInfo.html b/docs/reference/types/ValidationErrorInfo.html new file mode 100644 index 0000000..871b1ed --- /dev/null +++ b/docs/reference/types/ValidationErrorInfo.html @@ -0,0 +1 @@ +ValidationErrorInfo | @fal-ai/serverless-client - v0.14.2

Type Alias ValidationErrorInfo

ValidationErrorInfo: {
    loc: (string | number)[];
    msg: string;
    type: string;
}
diff --git a/docs/reference/types/WebHookResponse.html b/docs/reference/types/WebHookResponse.html new file mode 100644 index 0000000..5b72639 --- /dev/null +++ b/docs/reference/types/WebHookResponse.html @@ -0,0 +1,13 @@ +WebHookResponse | @fal-ai/serverless-client - v0.14.2

Type Alias WebHookResponse<Payload>

WebHookResponse<Payload>: {
    error: never;
    payload: Payload;
    request_id: string;
    status: "OK";
} | {
    error: string;
    payload: Payload;
    request_id: string;
    status: "ERROR";
}

Represents the response from a WebHook request. +This is a union type that varies based on the status property.

+

Type Parameters

  • Payload = any

    The type of the payload in the response. It defaults to any, +allowing for flexibility in specifying the structure of the payload.

    +

Type declaration

  • error: never

    Error is never present in a successful response.

    +
  • payload: Payload

    The payload of the response, structure determined by the Payload type.

    +
  • request_id: string

    The unique identifier for the request.

    +
  • status: "OK"

    Indicates a successful response.

    +

Type declaration

  • error: string

    Description of the error that occurred.

    +
  • payload: Payload

    The payload of the response, structure determined by the Payload type.

    +
  • request_id: string

    The unique identifier for the request.

    +
  • status: "ERROR"

    Indicates an unsuccessful response.

    +
diff --git a/docs/reference/variables/queue.html b/docs/reference/variables/queue.html new file mode 100644 index 0000000..68d1ce1 --- /dev/null +++ b/docs/reference/variables/queue.html @@ -0,0 +1,4 @@ +queue | @fal-ai/serverless-client - v0.14.2
queue: Queue = ...

The fal run queue module. It allows to submit a function to the queue and get its result +on a separate call. This is useful for long running functions that can be executed +asynchronously and not .

+
diff --git a/docs/reference/variables/realtime.html b/docs/reference/variables/realtime.html new file mode 100644 index 0000000..a6fdc0f --- /dev/null +++ b/docs/reference/variables/realtime.html @@ -0,0 +1,2 @@ +realtime | @fal-ai/serverless-client - v0.14.2

Variable realtimeConst

realtime: RealtimeClient = ...

The default implementation of the realtime client.

+
diff --git a/docs/reference/variables/storage.html b/docs/reference/variables/storage.html new file mode 100644 index 0000000..d406ad9 --- /dev/null +++ b/docs/reference/variables/storage.html @@ -0,0 +1 @@ +storage | @fal-ai/serverless-client - v0.14.2
storage: StorageSupport = ...
diff --git a/package-lock.json b/package-lock.json index 24b7075..f4ed031 100644 --- a/package-lock.json +++ b/package-lock.json @@ -107,6 +107,10 @@ "ts-node": "^10.9.1", "ts-protoc-gen": "^0.15.0", "tsconfig-paths": "^4.2.0", + "typedoc": "^0.26.7", + "typedoc-github-theme": "^0.1.2", + "typedoc-plugin-extras": "^3.1.0", + "typedoc-plugin-mdn-links": "^3.2.12", "typescript": "^5.5.4" } }, @@ -7824,6 +7828,33 @@ "node": ">=10" } }, + "node_modules/@shikijs/core": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.16.3.tgz", + "integrity": "sha512-yETIvrETCeC39gSPIiSADmjri9FwKmxz0QvONMtTIUYlKZe90CJkvcjPksayC2VQOtzOJonEiULUa8v8crUQvA==", + "dev": true, + "dependencies": { + "@shikijs/vscode-textmate": "^9.2.0", + "@types/hast": "^3.0.4", + "oniguruma-to-js": "0.3.3", + "regex": "4.3.2" + } + }, + "node_modules/@shikijs/core/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz", + "integrity": "sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==", + "dev": true + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -20854,6 +20885,15 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/lint-staged": { "version": "15.0.2", "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.0.2.tgz", @@ -21513,6 +21553,12 @@ "yallist": "^3.0.2" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, "node_modules/lz-string": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", @@ -21616,6 +21662,29 @@ "node": ">=0.10.0" } }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/marked": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", @@ -21866,6 +21935,12 @@ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true + }, "node_modules/media-query-parser": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", @@ -26413,6 +26488,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/oniguruma-to-js": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.3.3.tgz", + "integrity": "sha512-m90/WEhgs8g4BxG37+Nu3YrMfJDs2YXtYtIllhsEPR+wP3+K4EZk6dDUvy2v2K4MNFDDOYKL4/yqYPXDqyozTQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/open": { "version": "10.0.3", "resolved": "https://registry.npmjs.org/open/-/open-10.0.3.tgz", @@ -28407,6 +28491,15 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/pure-rand": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", @@ -28906,6 +28999,12 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regex": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/regex/-/regex-4.3.2.tgz", + "integrity": "sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==", + "dev": true + }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", @@ -30494,6 +30593,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/shiki": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.16.3.tgz", + "integrity": "sha512-GypUE+fEd06FqDs63LSAVlmq7WsahhPQU62cgZxGF+TJT5LjD2k7HTxXj4/CKOVuMM3+wWQ1t4Y5oooeJFRRBQ==", + "dev": true, + "dependencies": { + "@shikijs/core": "1.16.3", + "@shikijs/vscode-textmate": "^9.2.0", + "@types/hast": "^3.0.4" + } + }, + "node_modules/shiki/node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -32550,6 +32669,94 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typedoc": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.7.tgz", + "integrity": "sha512-gUeI/Wk99vjXXMi8kanwzyhmeFEGv1LTdTQsiyIsmSYsBebvFxhbcyAx7Zjo4cMbpLGxM4Uz3jVIjksu/I2v6Q==", + "dev": true, + "dependencies": { + "lunr": "^2.3.9", + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "shiki": "^1.16.2", + "yaml": "^2.5.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x" + } + }, + "node_modules/typedoc-github-theme": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/typedoc-github-theme/-/typedoc-github-theme-0.1.2.tgz", + "integrity": "sha512-GFwQeq+z4FMtA9u2+wBx/UvzaX6t3xueigv6Jrt1G8JQLLyYuFfWwE3ESuKzpLfDu1+29GK4n70GbIqFRG+gaw==", + "dev": true, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typedoc": "^0.26.0" + } + }, + "node_modules/typedoc-plugin-extras": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/typedoc-plugin-extras/-/typedoc-plugin-extras-3.1.0.tgz", + "integrity": "sha512-8tNeq2fgl2HCUZ6eZuAoLLKEvB/WrRS4He9MtTfo3X3Pa8Iw3TS5D0g8krDhUXUk1uHpXVAVHm8rSOMS2mdJRw==", + "dev": true, + "peerDependencies": { + "typedoc": "0.26.x" + } + }, + "node_modules/typedoc-plugin-mdn-links": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/typedoc-plugin-mdn-links/-/typedoc-plugin-mdn-links-3.2.12.tgz", + "integrity": "sha512-UT7JinqYE7IQSrpRPkUkHrXXEJw5qbHIZhVq8igutYDA/4fsrYZhYffVo8Uh70K2iXFdAyvt6foQG5ci1VERAw==", + "dev": true, + "peerDependencies": { + "typedoc": ">= 0.23.14 || 0.24.x || 0.25.x || 0.26.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typedoc/node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/typescript": { "version": "5.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", @@ -32562,6 +32769,12 @@ "node": ">=14.17" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true + }, "node_modules/ufo": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", diff --git a/package.json b/package.json index 520147a..61ffb15 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "build": "nx build", "test": "nx test", "lint:staged": "lint-staged", + "docs:typedoc": "typedoc --tsconfig libs/client/tsconfig.lib.json", "prepare": "husky install" }, "private": true, @@ -22,6 +23,9 @@ "secretlint", "cspell", "prettier --write" + ], + "libs/client/src/**/*.{ts}": [ + "npm run docs:typedoc" ] }, "dependencies": { @@ -123,6 +127,10 @@ "ts-node": "^10.9.1", "ts-protoc-gen": "^0.15.0", "tsconfig-paths": "^4.2.0", + "typedoc": "^0.26.7", + "typedoc-github-theme": "^0.1.2", + "typedoc-plugin-extras": "^3.1.0", + "typedoc-plugin-mdn-links": "^3.2.12", "typescript": "^5.5.4" }, "prettier": { diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 0000000..dd8a136 --- /dev/null +++ b/typedoc.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "out": "docs/reference", + "entryPoints": ["./libs/client/src/index.ts"], + "exclude": ["./src/__tests__/**", "*.spec.ts"], + "excludeExternals": true, + "excludeInternal": false, + "includeVersion": true, + "githubPages": true, + "plugin": ["typedoc-plugin-mdn-links", "typedoc-plugin-extras", "typedoc-github-theme"], + "readme": "none", + "hideGenerator": true +}