diff --git a/docs/.typedoc-plugin-versions b/docs/.typedoc-plugin-versions
index c80fe0d..afd6dc9 100644
--- a/docs/.typedoc-plugin-versions
+++ b/docs/.typedoc-plugin-versions
@@ -1 +1 @@
-{"versions":["v0.0.1"],"dev":"v0.0.1"}
+{"versions":["v0.1.0","v0.0.1"],"dev":"v0.1.0"}
diff --git a/docs/dev b/docs/dev
index c517ed5..e6f4af9 120000
--- a/docs/dev
+++ b/docs/dev
@@ -1 +1 @@
-/home/runner/work/pushover/pushover/docs/v0.0.1
\ No newline at end of file
+/home/runner/work/pushover/pushover/docs/v0.1.0
\ No newline at end of file
diff --git a/docs/stable b/docs/stable
index c517ed5..e6f4af9 120000
--- a/docs/stable
+++ b/docs/stable
@@ -1 +1 @@
-/home/runner/work/pushover/pushover/docs/v0.0.1
\ No newline at end of file
+/home/runner/work/pushover/pushover/docs/v0.1.0
\ No newline at end of file
diff --git a/docs/v0.1 b/docs/v0.1
new file mode 120000
index 0000000..e6f4af9
--- /dev/null
+++ b/docs/v0.1
@@ -0,0 +1 @@
+/home/runner/work/pushover/pushover/docs/v0.1.0
\ No newline at end of file
diff --git a/docs/v0.1.0/assets/hierarchy.js b/docs/v0.1.0/assets/hierarchy.js
new file mode 100644
index 0000000..fb85f0a
--- /dev/null
+++ b/docs/v0.1.0/assets/hierarchy.js
@@ -0,0 +1 @@
+window.hierarchyData = "eJyrVirKzy8pVrKKjtVRKkpNy0lNLsnMzytWsqqurQUAmx4Kpg=="
\ No newline at end of file
diff --git a/docs/v0.1.0/assets/highlight.css b/docs/v0.1.0/assets/highlight.css
new file mode 100644
index 0000000..03cf474
--- /dev/null
+++ b/docs/v0.1.0/assets/highlight.css
@@ -0,0 +1,99 @@
+:root {
+ --light-hl-0: #795E26;
+ --dark-hl-0: #DCDCAA;
+ --light-hl-1: #000000;
+ --dark-hl-1: #D4D4D4;
+ --light-hl-2: #A31515;
+ --dark-hl-2: #CE9178;
+ --light-hl-3: #AF00DB;
+ --dark-hl-3: #C586C0;
+ --light-hl-4: #001080;
+ --dark-hl-4: #9CDCFE;
+ --light-hl-5: #008000;
+ --dark-hl-5: #6A9955;
+ --light-hl-6: #0000FF;
+ --dark-hl-6: #569CD6;
+ --light-hl-7: #0070C1;
+ --dark-hl-7: #4FC1FF;
+ --light-hl-8: #098658;
+ --dark-hl-8: #B5CEA8;
+ --light-hl-9: #000000FF;
+ --dark-hl-9: #D4D4D4;
+ --light-hl-10: #267F99;
+ --dark-hl-10: #4EC9B0;
+ --light-code-background: #FFFFFF;
+ --dark-code-background: #1E1E1E;
+}
+
+@media (prefers-color-scheme: light) { :root {
+ --hl-0: var(--light-hl-0);
+ --hl-1: var(--light-hl-1);
+ --hl-2: var(--light-hl-2);
+ --hl-3: var(--light-hl-3);
+ --hl-4: var(--light-hl-4);
+ --hl-5: var(--light-hl-5);
+ --hl-6: var(--light-hl-6);
+ --hl-7: var(--light-hl-7);
+ --hl-8: var(--light-hl-8);
+ --hl-9: var(--light-hl-9);
+ --hl-10: var(--light-hl-10);
+ --code-background: var(--light-code-background);
+} }
+
+@media (prefers-color-scheme: dark) { :root {
+ --hl-0: var(--dark-hl-0);
+ --hl-1: var(--dark-hl-1);
+ --hl-2: var(--dark-hl-2);
+ --hl-3: var(--dark-hl-3);
+ --hl-4: var(--dark-hl-4);
+ --hl-5: var(--dark-hl-5);
+ --hl-6: var(--dark-hl-6);
+ --hl-7: var(--dark-hl-7);
+ --hl-8: var(--dark-hl-8);
+ --hl-9: var(--dark-hl-9);
+ --hl-10: var(--dark-hl-10);
+ --code-background: var(--dark-code-background);
+} }
+
+:root[data-theme='light'] {
+ --hl-0: var(--light-hl-0);
+ --hl-1: var(--light-hl-1);
+ --hl-2: var(--light-hl-2);
+ --hl-3: var(--light-hl-3);
+ --hl-4: var(--light-hl-4);
+ --hl-5: var(--light-hl-5);
+ --hl-6: var(--light-hl-6);
+ --hl-7: var(--light-hl-7);
+ --hl-8: var(--light-hl-8);
+ --hl-9: var(--light-hl-9);
+ --hl-10: var(--light-hl-10);
+ --code-background: var(--light-code-background);
+}
+
+:root[data-theme='dark'] {
+ --hl-0: var(--dark-hl-0);
+ --hl-1: var(--dark-hl-1);
+ --hl-2: var(--dark-hl-2);
+ --hl-3: var(--dark-hl-3);
+ --hl-4: var(--dark-hl-4);
+ --hl-5: var(--dark-hl-5);
+ --hl-6: var(--dark-hl-6);
+ --hl-7: var(--dark-hl-7);
+ --hl-8: var(--dark-hl-8);
+ --hl-9: var(--dark-hl-9);
+ --hl-10: var(--dark-hl-10);
+ --code-background: var(--dark-code-background);
+}
+
+.hl-0 { color: var(--hl-0); }
+.hl-1 { color: var(--hl-1); }
+.hl-2 { color: var(--hl-2); }
+.hl-3 { color: var(--hl-3); }
+.hl-4 { color: var(--hl-4); }
+.hl-5 { color: var(--hl-5); }
+.hl-6 { color: var(--hl-6); }
+.hl-7 { color: var(--hl-7); }
+.hl-8 { color: var(--hl-8); }
+.hl-9 { color: var(--hl-9); }
+.hl-10 { color: var(--hl-10); }
+pre, code { background: var(--code-background); }
diff --git a/docs/v0.1.0/assets/icons.js b/docs/v0.1.0/assets/icons.js
new file mode 100644
index 0000000..58882d7
--- /dev/null
+++ b/docs/v0.1.0/assets/icons.js
@@ -0,0 +1,18 @@
+(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 = `M M N E P V F C I C P M F P C P T T A A A T R `;
+ 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(/.*#/, "#"));
+ }
+ });
+ }
+})()
\ No newline at end of file
diff --git a/docs/v0.1.0/assets/icons.svg b/docs/v0.1.0/assets/icons.svg
new file mode 100644
index 0000000..50ad579
--- /dev/null
+++ b/docs/v0.1.0/assets/icons.svg
@@ -0,0 +1 @@
+M M N E P V F C I C P M F P C P T T A A A T R
\ No newline at end of file
diff --git a/docs/v0.1.0/assets/main.js b/docs/v0.1.0/assets/main.js
new file mode 100644
index 0000000..2363f64
--- /dev/null
+++ b/docs/v0.1.0/assets/main.js
@@ -0,0 +1,60 @@
+"use strict";
+window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"};
+"use strict";(()=>{var De=Object.create;var le=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ne(e))!Be.call(t,i)&&i!==n&&le(t,i,{get:()=>e[i],enumerable:!(r=Fe(e,i))||r.enumerable});return t};var $e=(t,e,n)=>(n=t!=null?De(Ve(t)):{},je(e||!t||!t.__esModule?le(n,"default",{value:t,enumerable:!0}):n,t));var pe=qe((de,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,c],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;r1&&(oe&&(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(ol?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=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;n0){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 c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,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=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;l1?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=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.pos1&&(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 de=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){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){ce.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&&!ze(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 ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function A(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await A(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove("loading"),e.classList.add("ready")}function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.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",()=>{fe(e,t)}),fe(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",()=>{re(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener("input",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Je(e,t):i.key=="ArrowUp"?(me(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(me(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(),re(t))})}function re(t){t.classList.remove("has-focus")}function Ue(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;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o `,d=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=`
+ ${ye(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=c+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function me(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 Je(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),re(e)}}function ye(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(ne(t.substring(s,o)),`${ne(t.substring(o,o+r.length))} `),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join("")}var Ge={"&":"&","<":"<",">":">","'":"'",'"':"""};function ne(t){return t.replace(/[&<>"'"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var H="mousedown",Ee="mousemove",B="mouseup",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,be=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(be?"is-mobile":"not-mobile");be&&"ontouchstart"in document.documentElement&&(Xe=!0,H="touchstart",Ee="touchmove",B="touchend");document.addEventListener(H,t=>{ie=!0,D=!1;let e=H=="touchstart"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=H=="touchstart"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(H,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,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 se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var Z=class extends I{key;value;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()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
+`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.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 oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Te),Te())}async function Te(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await A(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith("/")||(ee+="/"),t.innerHTML="";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(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=' ',ke(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 c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=` `}r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=` `,r.appendChild(document.createElement("span")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith("/")||(te+="/");function Pe(){document.querySelector(".tsd-full-hierarchy")?Ye():document.querySelector(".tsd-hierarchy")&&Ze()}function Ye(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=tt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Qe),Qe())}async function Qe(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await A(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),Ke(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(_e(e,i,n))}function _e(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=_e(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML=' ',t}G(Y,"a[data-toggle]");G(K,".tsd-accordion");G(Z,".tsd-filter-item input[type=checkbox]");var Oe=document.getElementById("tsd-theme");Oe&&Se(Oe);var nt=new J;Object.defineProperty(window,"app",{value:nt});ve();Ce();Pe();})();
+/*! 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/v0.1.0/assets/navigation.js b/docs/v0.1.0/assets/navigation.js
new file mode 100644
index 0000000..102ec87
--- /dev/null
+++ b/docs/v0.1.0/assets/navigation.js
@@ -0,0 +1 @@
+window.navigationData = "eJyN0k0LgkAQBuD/MmfpQ7APr52jsOgSHQYdc2lbF2eKIvzvEUkfmrbneed5d2G2NxC6CISQUIonLeCBRckghFgjM3G/GvQyOWrw4KBMAuHQn5Tea3d54iw/UzEnZtxTRGxzw/S2lBEqUoyJ+y3Zb94PRj/4iGJSVpz4WtaRV1aRkX/wM+VCrnE/QxOT1igqN04vb9lxqdugVol7UzPeVbIikyzsI80/1Y95F1OVUhdVy7h8vTqnNydX27y2mjSYjoeBX+7uzVYSdw=="
\ No newline at end of file
diff --git a/docs/v0.1.0/assets/search.js b/docs/v0.1.0/assets/search.js
new file mode 100644
index 0000000..212a6e1
--- /dev/null
+++ b/docs/v0.1.0/assets/search.js
@@ -0,0 +1 @@
+window.searchData = "eJy1m01zozgQhv+LfGUy1pe/jrunPezOVnZqLq5UimAloWKDF3BmUqn89y3xYVpWgxvCnjJjq1+9Ek+3QMLvLEt/5myzfWcvcbJjG6EXAUvCg2Eb9vcpf05fTXZrovgYm6RgATtle7ZhcVKY7DGMTP7Va3TzXBz2LGDRPsxzk7MNYx9BI8/nQp314x1dcFY2BpoBO4aZ9YT57OhwZ17jyOQDem0jhnct5usl18Kbzj9NnodP5uyieDsCA/W39Fk8kOVm9/f2yzagf0xNaBXV1X0RF/sBnTfNp+h6Hycv9J7r1lN0fMziNIuLN3rnIGIKA+ZgsieTRG/fjkVOd3EOS6uwKazk6SnZ0S00zadB72DyIjwch+DXhkxhoc5SYu9+To/u+JAmaX4MoyF5D0Immf5iwNCrxiO7xRaluvGtyY9pkpu+mn7RlF5aMxOZ+Ni77GHaszaONODzGLpSrAiLU++qhbo4h7Uminz3Jc6/xMmzyeLC7D5hKjP/nkw+Zm6auP/FlsmyNBs+V+ewqUxhyP4I9/EuLOI0oVDrt6aDS7jR6ZAn3/Egg+lcpiOT5OPcgNip7FzPpi4zIxOKbo2QU13exqYV3dz1zOryNjK5eq11PKfYsktJroum9MwKo5ck/bk3uydz7enF62B2EXz1kcIZDcHQfXjtEa3fUxU/va2Ht8/Zerh+3zzO1n1V7T7rrpWZxOQ+zIv7ndnHryYbd1ExhUmsmV/HOBtBfhs3pY0xU+OETmImCvd7i0EYvQx248ZObWfM/Hjhk5i6vuiiZkauuERThOUWdTV2raXCfXWhxcEet8p2m8KW2O/h0+9hEpn9nnwf2xFCX3KjMrq/6PR1MgMC/TB3jW401L22RsI90CQB8l6XY2EfaPM69L0uR8J/3SRMgvqG1Hw72sao2YsmdMhPucmogrO6MQ7zpcveR8S/7H+o3VYhSRXyqc5fTfaQ4mUD7bltP7RbeP3+Mcmu59qBrwdtEVUb/yTJmdMcHwt0OXz6vB6vTV1Hd2IFSHkMT/u2gtQ6X+vPe+dK8/b8I0qTvMhOUZFmvVoztyFuuzEFj1tU6zk3YFMa7aRuMUr9tcatvwfQalQv0bOJXm4vtiDxCbMtr206XuutrIO3pshisFWDd1c2zc5NP9/fb2/fw6cBnT68FWX7Kz3fBSxOduYX27zbnMnjNGEbJm7kzZoF7DE2+509+2RNSUsPh+qUc5dGp/Kfd3WzH8bSaBtXrb/OWbCdB3Jxo/XdXbBtYsvPyw8aifaTMo6zYMuROO7FcSdOsGArAslvlBJOoPAChRMoWbCVSIfSi5NOnGLBViFxyotTTpxmwVYjcdqL007cggXbBRK38OIWTtySBdslErf04pZO3IoF2xUSt/LiVk7cmgXbNRK39uLW7oW3HHAMGe4zwy+gKalBsUG4ccHhFgcusFgfHe6ywy0SHKOH+/hwlx9useAYQdxHiLsMcYsGxyjiPkbc5YhbPPgiEPpGL5Qb7LPEXZi4ZYQv0WAfKO4SxS0ofIUG+1RxFytuaeEYWNwni7toiXlncfDREi5awtIiMCyFj5a4qEmic6oFUpZctoTsnGrhwyVcuITqnGrh0yVcuoQFRmDZJHy6hEuXsLwILJuED5dw4RIWF4Flk/DZEi5bwtIisGwSPlrCRUtYWgSWTcJHS7hoyRItrC5LHy3poiVLtLDaLH20pIuWLNc7rD5Lnyx5seJZVgSWShJZ9FywpEVFYukgfa6ky5XUnekgfbCkC5ZcdKaD9MmSLlly2ZkO0kdLumhJS4vE0kH6aEkXLWlpkVg6SB8t6aKl5p3TpXy2lMuW4p3TpXy4lAuXEp3TpXy6lEuXKm+osCxWPl3q4p6qpAu9q0Juq1y6lOVFYlmsfLiUC5eyuMgFtkIoHy7lwqUsLhJLY+WzpVy2VMkWlsbKZ0u5bKl1t2kfLuXCpS0uEqsB2mdLu2xpS4vCaoD20dIuWtrCorBk0j5Z2iVLW1gUlkzaJ0u7ZOnydh2jUvtk6Ys7dguLwqjUyE27S5a2rCj0ft8Hq/6ofCp7NVlhdn9UT2fb7cW56ju7rx/cxHn/4J2JBdu8f3y0D2qb9w/wrGa/s/15J5pATQK15XA1exAJ1BRQW41ROx8cAlENRNckUecQCSitWyUphypdzJycAzFFFGu23YEMuJySOjpnt6HVUmD6tR6uVW8iAEEw9ZrGmrvzAqQAaJo4XXDXCyiBidecpHTesAPzDljQc6JKu9sLhMAcKdqkn98oAmgCxqsoQTN18QZrq7hqFWmZ2JwYtBIcaPBVbUtVf+Wy+qsETbw57gZDXgLyadcRHlUDIWBT0uxUO7RgpByMlOYldgYD40nhyAsJYEQLMCIaB+17YUAGZIog2irfCW8lgBFa/p/fpQcJCxKEptG+lwtmGKQIp13l9h3zVgZAR1vujvXJGDIwUNJoq8mFVnY+LAbDBLPFadPVqNZVF1MVgE9BK1JAtfmtS6sHwKLh2agV4VMEzhcxrxJ4lbTS1ai/nl+QQ6cWlHxOW2qRhYyDes9pUwnPuMA4QdlStHGej56BHQA0r2uykHWNXtQ1mpb71QEQyFtwITQt46xE2hwogqECk4qWdvXPIloNcPFo1655mwDMFahmvJ4bUS+3UtdzReMZ/GwC6IO04FSd8tc/rQa846IpFO5KBooSp1Wl6vAcXC1YsGklqD3ZA/iAgq1pThoZDCEwLkVUaw56gQogQDXZQcDpLmDHuPzFlGGb7d3Hx3+6WKkP";
\ No newline at end of file
diff --git a/docs/v0.1.0/assets/style.css b/docs/v0.1.0/assets/style.css
new file mode 100644
index 0000000..2ab8b83
--- /dev/null
+++ b/docs/v0.1.0/assets/style.css
@@ -0,0 +1,1611 @@
+@layer typedoc {
+ :root {
+ /* Light */
+ --light-color-background: #f2f4f8;
+ --light-color-background-secondary: #eff0f1;
+ --light-color-warning-text: #222;
+ --light-color-background-warning: #e6e600;
+ --light-color-accent: #c5c7c9;
+ --light-color-active-menu-item: var(--light-color-accent);
+ --light-color-text: #222;
+ --light-color-text-aside: #6e6e6e;
+
+ --light-color-icon-background: var(--light-color-background);
+ --light-color-icon-text: var(--light-color-text);
+
+ --light-color-comment-tag-text: var(--light-color-text);
+ --light-color-comment-tag: var(--light-color-background);
+
+ --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: #9f5f30;
+ --light-color-ts-method: #be3989;
+ --light-color-ts-reference: #ff4d82;
+ --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: #c73c3c;
+ --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-color-alert-note: #0969d9;
+ --light-color-alert-tip: #1a7f37;
+ --light-color-alert-important: #8250df;
+ --light-color-alert-warning: #9a6700;
+ --light-color-alert-caution: #cf222e;
+
+ --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-accent: #9096a2;
+ --dark-color-active-menu-item: #5d5d6a;
+ --dark-color-text: #f5f5f5;
+ --dark-color-text-aside: #dddddd;
+
+ --dark-color-icon-background: var(--dark-color-background-secondary);
+ --dark-color-icon-text: var(--dark-color-text);
+
+ --dark-color-comment-tag-text: var(--dark-color-text);
+ --dark-color-comment-tag: var(--dark-color-background);
+
+ --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: #ff984d;
+ --dark-color-ts-method: #ff4db8;
+ --dark-color-ts-reference: #ff4d82;
+ --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: #ff6060;
+ --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-color-alert-note: #0969d9;
+ --dark-color-alert-tip: #1a7f37;
+ --dark-color-alert-important: #8250df;
+ --dark-color-alert-warning: #9a6700;
+ --dark-color-alert-caution: #cf222e;
+
+ --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-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-icon-background: var(--light-color-icon-background);
+ --color-icon-text: var(--light-color-icon-text);
+
+ --color-comment-tag-text: var(--light-color-text);
+ --color-comment-tag: var(--light-color-background);
+
+ --color-link: var(--light-color-link);
+ --color-focus-outline: var(--light-color-focus-outline);
+
+ --color-ts-keyword: var(--light-color-ts-keyword);
+ --color-ts-project: var(--light-color-ts-project);
+ --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-reference: var(--light-color-ts-reference);
+ --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);
+
+ --color-alert-note: var(--light-color-alert-note);
+ --color-alert-tip: var(--light-color-alert-tip);
+ --color-alert-important: var(--light-color-alert-important);
+ --color-alert-warning: var(--light-color-alert-warning);
+ --color-alert-caution: var(--light-color-alert-caution);
+
+ --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-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-icon-background: var(--dark-color-icon-background);
+ --color-icon-text: var(--dark-color-icon-text);
+
+ --color-comment-tag-text: var(--dark-color-text);
+ --color-comment-tag: var(--dark-color-background);
+
+ --color-link: var(--dark-color-link);
+ --color-focus-outline: var(--dark-color-focus-outline);
+
+ --color-ts-keyword: var(--dark-color-ts-keyword);
+ --color-ts-project: var(--dark-color-ts-project);
+ --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-reference: var(--dark-color-ts-reference);
+ --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);
+
+ --color-alert-note: var(--dark-color-alert-note);
+ --color-alert-tip: var(--dark-color-alert-tip);
+ --color-alert-important: var(--dark-color-alert-important);
+ --color-alert-warning: var(--dark-color-alert-warning);
+ --color-alert-caution: var(--dark-color-alert-caution);
+
+ --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-icon-text: var(--light-color-icon-text);
+
+ --color-comment-tag-text: var(--light-color-text);
+ --color-comment-tag: var(--light-color-background);
+
+ --color-link: var(--light-color-link);
+ --color-focus-outline: var(--light-color-focus-outline);
+
+ --color-ts-keyword: var(--light-color-ts-keyword);
+ --color-ts-project: var(--light-color-ts-project);
+ --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-reference: var(--light-color-ts-reference);
+ --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);
+
+ --color-note: var(--light-color-note);
+ --color-tip: var(--light-color-tip);
+ --color-important: var(--light-color-important);
+ --color-warning: var(--light-color-warning);
+ --color-caution: var(--light-color-caution);
+
+ --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-icon-text: var(--dark-color-icon-text);
+
+ --color-comment-tag-text: var(--dark-color-text);
+ --color-comment-tag: var(--dark-color-background);
+
+ --color-link: var(--dark-color-link);
+ --color-focus-outline: var(--dark-color-focus-outline);
+
+ --color-ts-keyword: var(--dark-color-ts-keyword);
+ --color-ts-project: var(--dark-color-ts-project);
+ --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-reference: var(--dark-color-ts-reference);
+ --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);
+
+ --color-note: var(--dark-color-note);
+ --color-tip: var(--dark-color-tip);
+ --color-important: var(--dark-color-important);
+ --color-warning: var(--dark-color-warning);
+ --color-caution: var(--dark-color-caution);
+
+ --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 34px;
+ }
+
+ .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-wrap;
+ word-wrap: break-word;
+ padding: 10px;
+ border: 1px solid var(--color-accent);
+ margin-bottom: 8px;
+ }
+ 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-alert {
+ padding: 8px 16px;
+ margin-bottom: 16px;
+ border-left: 0.25em solid var(--alert-color);
+ }
+ .tsd-alert blockquote > :last-child,
+ .tsd-alert > :last-child {
+ margin-bottom: 0;
+ }
+ .tsd-alert-title {
+ color: var(--alert-color);
+ display: inline-flex;
+ align-items: center;
+ }
+ .tsd-alert-title span {
+ margin-left: 4px;
+ }
+
+ .tsd-alert-note {
+ --alert-color: var(--color-alert-note);
+ }
+ .tsd-alert-tip {
+ --alert-color: var(--color-alert-tip);
+ }
+ .tsd-alert-important {
+ --alert-color: var(--color-alert-important);
+ }
+ .tsd-alert-warning {
+ --alert-color: var(--color-alert-warning);
+ }
+ .tsd-alert-caution {
+ --alert-color: var(--color-alert-caution);
+ }
+
+ .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 h4 label:hover span {
+ text-decoration: underline;
+ }
+
+ .tsd-hierarchy {
+ list-style: square;
+ margin: 0;
+ }
+ .tsd-hierarchy-target {
+ font-weight: bold;
+ }
+ .tsd-hierarchy-toggle {
+ color: var(--color-link);
+ cursor: pointer;
+ }
+
+ .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-full-hierarchy svg[data-dropdown] {
+ cursor: pointer;
+ }
+ .tsd-full-hierarchy svg[data-dropdown="false"] {
+ transform: rotate(-90deg);
+ }
+ .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul {
+ display: none;
+ }
+
+ .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;
+ }
+ /*
+ * We need to be careful to target the arrow indicating whether the accordion
+ * is open, but not any other SVGs included in the details element.
+ */
+ .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child,
+ .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child,
+ .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child,
+ .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child,
+ .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child,
+ .tsd-accordion:not([open]) > .tsd-accordion-summary > h5 > svg:first-child {
+ transform: rotate(-90deg);
+ }
+ .tsd-index-content > :not(:first-child) {
+ margin-top: 0.75rem;
+ }
+ .tsd-index-heading {
+ margin-top: 1.5rem;
+ margin-bottom: 0.75rem;
+ }
+
+ .tsd-no-select {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+ .tsd-kind-icon {
+ margin-right: 0.5rem;
+ width: 1.25rem;
+ height: 1.25rem;
+ min-width: 1.25rem;
+ min-height: 1.25rem;
+ }
+ .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-member-summary-name {
+ display: inline-flex;
+ align-items: center;
+ padding: 0.25rem;
+ text-decoration: none;
+ }
+
+ .tsd-anchor-icon {
+ display: inline-flex;
+ align-items: center;
+ margin-left: 0.5rem;
+ color: var(--color-text);
+ }
+
+ .tsd-anchor-icon svg {
+ width: 1em;
+ height: 1em;
+ visibility: hidden;
+ }
+
+ .tsd-member-summary-name:hover > .tsd-anchor-icon svg,
+ .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-reference {
+ color: var(--color-ts-reference);
+ }
+ .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-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;
+ }
+
+ .page-menu,
+ .site-menu {
+ max-height: calc(100vh - 2rem - 42px);
+ overflow: auto;
+ position: sticky;
+ top: 42px;
+ }
+ }
+}
diff --git a/docs/v0.1.0/assets/typedoc-github-style.css b/docs/v0.1.0/assets/typedoc-github-style.css
new file mode 100644
index 0000000..2b49cdf
--- /dev/null
+++ b/docs/v0.1.0/assets/typedoc-github-style.css
@@ -0,0 +1,430 @@
+/*
+ * Define colors
+ */
+
+:root {
+ /* GitHub "Light default" */
+ --light-color-background: #ffffff;
+ --light-color-background-secondary: #f6f8fa;
+ --light-color-background-navbar: #f6f8fa;
+
+ --light-color-accent: #eff2f5;
+
+ --light-color-text: #1f2328;
+ --light-color-text-aside: #59636e;
+
+ --light-color-link: #0969da;
+
+ --light-color-warning-border: #f7ebba;
+ --light-color-background-warning: #fff8c5;
+
+ --light-color-alert-note: #0969da;
+ --light-color-alert-tip: #1a7f37;
+ --light-color-alert-important: #8250df;
+ --light-color-alert-warning: #9a6700;
+ --light-color-alert-caution: #cf222e;
+
+ /* GitHub "Dark default" */
+ --dark-color-background: #0d1117;
+ --dark-color-background-secondary: #151b23;
+ --dark-color-background-navbar: #010409;
+
+ --dark-color-accent: #262c36;
+
+ --dark-color-text: #f0f6fc;
+ --dark-color-text-aside: #9198a1;
+
+ --dark-color-link: #4493f8;
+
+ --dark-color-warning-border: #3a2d12;
+ --dark-color-background-warning: #282215;
+
+ --dark-color-alert-note: #1f6feb;
+ --dark-color-alert-tip: #238636;
+ --dark-color-alert-important: #8957e5;
+ --dark-color-alert-warning: #9e6a03;
+ --dark-color-alert-caution: #da3633;
+
+ /* 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
+ */
+
+.tsd-accordion-details a,
+.tsd-accordion a,
+.tsd-page-toolbar a.title {
+ color: var(--color-text);
+ text-decoration: none;
+}
+
+.tsd-accordion-details a:hover,
+.tsd-page-toolbar a.title:hover,
+.tsd-accordion a:hover,
+.tsd-anchor-icon {
+ color: var(--color-text-aside);
+}
+
+.tsd-kind-class {
+ color: var(--color-link);
+ text-decoration: underline;
+ text-underline-offset: 3px;
+}
+
+.tsd-index-link,
+.tsd-page-navigation a:hover {
+ text-decoration: none;
+}
+
+.tsd-index-link:hover {
+ text-decoration: underline;
+ text-underline-offset: 3px;
+}
+
+a code,
+.tsd-sources a,
+.tsd-page-navigation a:hover {
+ color: var(--color-link);
+}
+
+a.external[target='_blank'] {
+ background-image: none;
+ padding-right: 0px;
+}
+
+/*
+ * 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-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 a {
+ color: var(--color-text);
+}
+
+#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 > h3 {
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+.tsd-page-navigation:not([open]) > .tsd-accordion-summary {
+ margin-bottom: 0px;
+}
+
+/*
+ * Fix collapse arrow position
+ */
+
+.tsd-accordion-summary svg {
+ transition: transform 0.1s ease-in-out;
+}
diff --git a/docs/v0.1.0/assets/versionsMenu.js b/docs/v0.1.0/assets/versionsMenu.js
new file mode 100644
index 0000000..b4bdf6b
--- /dev/null
+++ b/docs/v0.1.0/assets/versionsMenu.js
@@ -0,0 +1,21 @@
+import { DOC_VERSIONS } from '../../versions.js';
+
+const select = document.getElementById('plugin-versions-select');
+
+DOC_VERSIONS.forEach((version) => {
+ const option = document.createElement('option');
+ option.value = version;
+ option.innerHTML = version;
+ select.appendChild(option);
+});
+
+const locationSplit = location.pathname.split('/');
+const thisVersion = locationSplit.find((path) => ['stable', 'dev', ...DOC_VERSIONS].includes(path));
+select.value = DOC_VERSIONS.includes(thisVersion)
+ ? thisVersion
+ : DOC_VERSIONS[0];
+select.onchange = () => {
+ const newPaths = window.location.pathname.replace(`/${thisVersion}/`, `/${select.value}/`);
+ const newUrl = new URL(newPaths, window.location.origin);
+ window.location.assign(newUrl);
+};
diff --git a/docs/v0.1.0/classes/default.html b/docs/v0.1.0/classes/default.html
new file mode 100644
index 0000000..d930c9a
--- /dev/null
+++ b/docs/v0.1.0/classes/default.html
@@ -0,0 +1,87 @@
+default | @cis-oss/pushover Constructorsconstructor new default ( token : string ) : default Methodscancel Retries cancelRetries ( receipt : string , verbose ?: boolean ) : Promise < PushoverResponse > Parameters receipt : string Optionalverbose : boolean Returns Promise < PushoverResponse > A Promise resolving to a basic PushoverResponse. Check status for success (1) or failure (0).
+
cancel Retries By Tag Parameters tag : string Optionalverbose : boolean A Promise resolving to a PushoverTagCancellationResponse indicating the number of messages cancelled.
+
check Receipt Parameters receipt : string Optionalverbose : boolean A Promise resolving to a PushoverReceiptResponse object containing the status details.
+
send send ( message : { emergencyOpts ?: { callback ?: string ; expire : number ; retry : number ; tags ?: string [] ; } ; html ?: boolean ; link ?: string | { title ?: string ; url : string } ; message : string ; monospace ?: boolean ; priority ?: 0 | 1 | 2 | -2 | -1 ; sound ?: string ; timestamp ?: number ; title ?: string ; ttl ?: number ; } , options : SendOptions , ) : Promise < PushoverMessageResponse [] > Parameters message : { emergencyOpts ?: { callback ?: string ; expire : number ; retry : number ; tags ?: string [] ; } ; html ?: boolean ; link ?: string | { title ?: string ; url : string } ; message : string ; monospace ?: boolean ; priority ?: 0 | 1 | 2 | -2 | -1 ; sound ?: string ; timestamp ?: number ; title ?: string ; ttl ?: number ; } OptionalemergencyOpts ?: { callback ?: string ; expire : number ; retry : number ; tags ?: string [] } Optionalcallback ?: string expire : number retry : number Optionaltags ?: string [] Optionalhtml ?: boolean Optionallink ?: string | { title ?: string ; url : string } message : string Optionalmonospace ?: boolean Optionalpriority ?: 0 | 1 | 2 | -2 | -1 Optionalsound ?: string Optionaltimestamp ?: number Optionaltitle ?: string Optionalttl ?: number options : SendOptions A Promise resolving to an array of PushoverMessageResponse objects, one for each recipient.
+Rejects if message validation fails or if there's a fundamental issue sending to all recipients.
+Individual recipient failures are indicated within their respective response objects (status: 0).
+
validate A Promise resolving to a PushoverValidationResponse object.
+Check the status field (1 for valid, 0 for invalid) and errors for details on failure.
+On success, devices and licenses may be populated.
+
diff --git a/docs/v0.1.0/coverage.json b/docs/v0.1.0/coverage.json
new file mode 100644
index 0000000..477cd80
--- /dev/null
+++ b/docs/v0.1.0/coverage.json
@@ -0,0 +1 @@
+{"percent":100,"expected":62,"actual":62,"notDocumented":[]}
\ No newline at end of file
diff --git a/docs/v0.1.0/index.html b/docs/v0.1.0/index.html
new file mode 100644
index 0000000..1a299b2
--- /dev/null
+++ b/docs/v0.1.0/index.html
@@ -0,0 +1,31 @@
+@cis-oss/pushover
@cis-oss/pushover CIS Pushover Client
+
+
+
A client for Pushover, a service for sending notifications. Typesafe.
+Supports sending the same message to multiple users.
+
Installation pnpm add @cis-oss/pushover
+Copy
+
+
+Or using npm
+npm install @cis-oss/pushover
+Copy
+
+
+
+Or use our meta-packages
+pnpm add @cis-oss/notify
+Copy
+
+pnpm add @cis-oss/notify-push
+Copy
+
+
+
Documentation Documentation can be found at https://cis-oss.github.io/pushover .
+
Contributing Contributions are welcome! Please see CONTRIBUTING.md for details.
+
Please make sure to read our Code of Conduct and Support Policy .
+
Disclose security issues responsibly by following our Security Policy .
+
diff --git a/docs/v0.1.0/interfaces/PushoverMessageResponse.html b/docs/v0.1.0/interfaces/PushoverMessageResponse.html
new file mode 100644
index 0000000..d1fba52
--- /dev/null
+++ b/docs/v0.1.0/interfaces/PushoverMessageResponse.html
@@ -0,0 +1,14 @@
+PushoverMessageResponse | @cis-oss/pushover Interface PushoverMessageResponse PropertiesOptionalerrors errors ?: string []
Optionalreceipt receipt ?: string
diff --git a/docs/v0.1.0/interfaces/PushoverReceiptResponse.html b/docs/v0.1.0/interfaces/PushoverReceiptResponse.html
new file mode 100644
index 0000000..71efbfe
--- /dev/null
+++ b/docs/v0.1.0/interfaces/PushoverReceiptResponse.html
@@ -0,0 +1,29 @@
+PushoverReceiptResponse | @cis-oss/pushover Interface PushoverReceiptResponse Propertiesacknowledged acknowledged : boolean
acknowledged_ at acknowledged_at : number
acknowledged_ by acknowledged_by : string
acknowledged_ by_ device acknowledged_by_device : string
called_ back called_back : boolean
called_ back_ at called_back_at : number
Optionalerrors errors ?: string []
expired_ at expired_at : number
last_ delivered_ at last_delivered_at : number
diff --git a/docs/v0.1.0/interfaces/PushoverRecipient.html b/docs/v0.1.0/interfaces/PushoverRecipient.html
new file mode 100644
index 0000000..70d87a3
--- /dev/null
+++ b/docs/v0.1.0/interfaces/PushoverRecipient.html
@@ -0,0 +1,9 @@
+PushoverRecipient | @cis-oss/pushover Interface PushoverRecipient interface PushoverRecipient { devices ?: string [] ; id : string ; } PropertiesOptionaldevices devices ?: string []
diff --git a/docs/v0.1.0/interfaces/PushoverTagCancellationResponse.html b/docs/v0.1.0/interfaces/PushoverTagCancellationResponse.html
new file mode 100644
index 0000000..5b1a5d4
--- /dev/null
+++ b/docs/v0.1.0/interfaces/PushoverTagCancellationResponse.html
@@ -0,0 +1,13 @@
+PushoverTagCancellationResponse | @cis-oss/pushover Interface PushoverTagCancellationResponse Hierarchy PushoverResponse PushoverTagCancellationResponse PropertiesOptionalerrors errors ?: string []
diff --git a/docs/v0.1.0/interfaces/PushoverValidationResponse.html b/docs/v0.1.0/interfaces/PushoverValidationResponse.html
new file mode 100644
index 0000000..0c3c21b
--- /dev/null
+++ b/docs/v0.1.0/interfaces/PushoverValidationResponse.html
@@ -0,0 +1,15 @@
+PushoverValidationResponse | @cis-oss/pushover Interface PushoverValidationResponse Hierarchy PushoverResponse PushoverValidationResponse PropertiesOptionaldevices devices ?: string []
Optionalerrors errors ?: string []
Optionallicenses licenses ?: string []
diff --git a/docs/v0.1.0/interfaces/SendOptions.html b/docs/v0.1.0/interfaces/SendOptions.html
new file mode 100644
index 0000000..02ea91b
--- /dev/null
+++ b/docs/v0.1.0/interfaces/SendOptions.html
@@ -0,0 +1,9 @@
+SendOptions | @cis-oss/pushover PropertiesOptionalverbose verbose ?: boolean
diff --git a/docs/v0.1.0/interfaces/ValidateOptions.html b/docs/v0.1.0/interfaces/ValidateOptions.html
new file mode 100644
index 0000000..8cf0da9
--- /dev/null
+++ b/docs/v0.1.0/interfaces/ValidateOptions.html
@@ -0,0 +1,11 @@
+ValidateOptions | @cis-oss/pushover Interface ValidateOptions PropertiesOptionaldevice Name deviceName ?: string
Optionalverbose verbose ?: boolean
diff --git a/docs/v0.1.0/modules.html b/docs/v0.1.0/modules.html
new file mode 100644
index 0000000..a37988f
--- /dev/null
+++ b/docs/v0.1.0/modules.html
@@ -0,0 +1,4 @@
+@cis-oss/pushover
diff --git a/docs/v0.1.0/types/PushoverMessage.html b/docs/v0.1.0/types/PushoverMessage.html
new file mode 100644
index 0000000..d2889a5
--- /dev/null
+++ b/docs/v0.1.0/types/PushoverMessage.html
@@ -0,0 +1,45 @@
+PushoverMessage | @cis-oss/pushover Type Alias PushoverMessage PushoverMessage : { emergencyOpts ?: { callback ?: string ; expire : number ; retry : number ; tags ?: string [] ; } ; html ?: boolean ; link ?: string | { title ?: string ; url : string } ; message : string ; monospace ?: boolean ; priority ?: 0 | 1 | 2 | -2 | -1 ; sound ?: string ; timestamp ?: number ; title ?: string ; ttl ?: number ; }
Type declaration OptionalemergencyOpts ?: { callback ?: string ; expire : number ; retry : number ; tags ?: string [] } Optionalcallback ?: string expire : number retry : number Optionaltags ?: string [] Optionalhtml ?: boolean Optionallink ?: string | { title ?: string ; url : string } message : string Optionalmonospace ?: boolean Optionalpriority ?: 0 | 1 | 2 | -2 | -1 Optionalsound ?: string Optionaltimestamp ?: number Optionaltitle ?: string Optionalttl ?: number
diff --git a/docs/versions.js b/docs/versions.js
index 00619f7..be7fa55 100644
--- a/docs/versions.js
+++ b/docs/versions.js
@@ -1,5 +1,6 @@
"use strict"
export const DOC_VERSIONS = [
'dev',
+ 'v0.1',
'v0.0',
];
Main class for interacting with the Pushover API (v1). +Provides methods for sending notifications, validating users/devices, +and managing emergency priority messages.
+Param: token
Your Pushover application's API token.
+Example
+ +