diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css new file mode 100644 index 0000000..f073655 --- /dev/null +++ b/docs/assets/highlight.css @@ -0,0 +1,64 @@ +: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: #0000FF; + --dark-hl-3: #569CD6; + --light-hl-4: #001080; + --dark-hl-4: #9CDCFE; + --light-hl-5: #008000; + --dark-hl-5: #6A9955; + --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); + --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); + --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); + --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); + --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); } +pre, code { background: var(--code-background); } diff --git a/docs/assets/icons.js b/docs/assets/icons.js new file mode 100644 index 0000000..b79c9e8 --- /dev/null +++ b/docs/assets/icons.js @@ -0,0 +1,15 @@ +(function(svg) { + svg.innerHTML = ``; + svg.style.display = 'none'; + if (location.protocol === 'file:') { + if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); + else updateUseElements() + function updateUseElements() { + document.querySelectorAll('use').forEach(el => { + if (el.getAttribute('href').includes('#icon-')) { + el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); + } + }); + } + } +})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg new file mode 100644 index 0000000..7dead61 --- /dev/null +++ b/docs/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js new file mode 100644 index 0000000..1daeb69 --- /dev/null +++ b/docs/assets/main.js @@ -0,0 +1,59 @@ +"use strict"; +"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(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,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;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[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;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 u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=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 se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.scrollToHash(),this.updateIndexVisibility())}createComponents(e){re.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.scrollToHash(),this.updateIndexVisibility())}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&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").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&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}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="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(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");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ne(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(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(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,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 te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(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-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +/*! 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/assets/navigation.js b/docs/assets/navigation.js new file mode 100644 index 0000000..3f939db --- /dev/null +++ b/docs/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE52Y23LbNhBA/4V5dS52nJvfZFtRnejiUZR2OpmMByEhiw1EcABSraeTfy9IisSF2AXUN49x9gAEV9glvv2bVPSfKrlKUpa/lCJNzpKSVDv1jz3PakblSzXwoAZe7Ko9U6M/8yJLri7OknSXs0zQIrn6NkgyuiU1q7RkWxdplfNCa46IrXt7+ev7rzO9Fi4osBg1Er2aaXHQBlrUeyNejdmO98b8k7LUgXlRUbElqTm7ApwVvHlrx6/K9rGDmiOH2W540f6Fqo4Q5pnzx0cqcE3HYJaltZTqqTTDl+MlvPrw7vzNhfM4gjNmLsVIE/OBOmyUKkaiCEoqar0uj2qg0KSjxY4UKZB3x8Ho1DvyizzLGP2bCOpboCkdBaBrzXnqX6caiF7jhJfuz6MPV0Pwr2OxUS8dimwH4dhrIr2bYuRib7JRLCXXvK4MdEErgpo9PKa/K/6iqfdM64UdgeRpB5AfzJsHtqahEBWeUsNrgPNIq+4FL6monjBRzyCadjsxRwsggozKiounCWNxD+fjEf0jrWaM/yCRdg+Oy/VrW9b7gNlica2eXoa9NoyIlSTdxW2Eg6IH0k96oMJ/JLVD/+9Q8iuedUynuTz/cPn61SVUvCFDGTCMyjcs0ijkgw49wDnCIe+oMQCEmsNMbk1GZAMK+azOCxB1DGRwD11AMmC4xz55UdcRhXxuEwW4BgzyOEUU0PQUaInPqqiMWsak0xLPpXFVATwGCLmc0gKIegq1QP0B5hzFQDN4+lDAa5KQDa+HgBgIguZAGlRgAl8EZEdLLuD3xyAzAHUX1rsBiBsqvrB8FAHZwQoMuMc8WLcY89Vz7VMA0hrcUkb9jZw2dAwimVFvp6wNCkDCf6Mkw+MbAhGMCrfP4f3otlvjZtNxSYtgCi4DW9EQmKAOxddYeEmEpO0x5v3Q1hoDRHs80SL+Jq8bi+/yzEwFHM86CEp2N1shy8BBIitjIUsHQQo7ayHHkYIkYMvpesINp5O9kKjHQI2VwaClo0BJHeOoMYU3kyGVDdtKM5vlTh2mmT+bu7HobAb7cMcT0Yj7GzDXE+jAmmlIXpi7lTIipW0aKPsZzy/eO6qu2wdvVRylprE7lc+cYNeahlOTI99Z91gqtJLZ81w+VxAVBWGJ9QEgq6Zv0fN0d5bGFD0Surn83ByZvso9MjpkUMxJnNbkIqS+u1pbB17YRu3thjwiejUaWuNiupk83KyWm/VqPp+utexARN40apbQoW3565H3bvlperN5uF+v7qfrzZ8xcickNMN8NZvFrbojQ77F3e3tfPrHZD19mMznMV474gT/bL66npw6RRd0wizr1ddN3AaNgkKzxKuDvpJz5jkzvUaLRZypqtCVqP33xoZv4ND70a2aDbutNYQ2jFqbxqg5qDNiHu2A1YQR6zZnbK4WEPD1GH4Fqj6Tf6dCquCAzmJx58dcvdH7xhVUDmjgojZuCw0yzvdFfc+H9tHFcbPKiuYLeEn2EV4DRqy5vFa/CEpCb2jgUNct3QY9ikEdat37XIYecOAQF+MkW7QtWECmQcQm6J4f6Ckv1xOB+iVnBxqR2gaJ+GR0ZsuozJanZbaLez5Nv/8HX5GX5L4gAAA=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js new file mode 100644 index 0000000..7ed7f39 --- /dev/null +++ b/docs/assets/search.js @@ -0,0 +1 @@ +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css new file mode 100644 index 0000000..072daed --- /dev/null +++ b/docs/assets/style.css @@ -0,0 +1,1415 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 > a:not(.link), +h2 > a:not(.link), +h3 > a:not(.link), +h4 > a:not(.link), +h5 > a:not(.link), +h6 > a:not(.link) { + text-decoration: none; + color: var(--color-text); +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +.uppercase { + text-transform: uppercase; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +.tsd-generator { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} + +.tsd-generator > p { + margin-top: 0; + margin-bottom: 0; + padding: 0 1rem; +} + +.container-main { + 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; +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: fit-content; + width: -moz-fit-content; + align-items: center; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus + svg { + transform: scale(0.95); +} +.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { + transform: scale(1); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.tsd-theme-toggle { + padding-top: 0.75rem; +} +.tsd-theme-toggle > h4 { + display: inline; + vertical-align: middle; + margin-right: 0.75rem; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-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 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 { + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-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-index-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 4rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#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-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/docs/classes/shared_src.Container.html b/docs/classes/shared_src.Container.html new file mode 100644 index 0000000..117340e --- /dev/null +++ b/docs/classes/shared_src.Container.html @@ -0,0 +1,12 @@ +Container | @kever/monorepo

Type Parameters

  • K
  • V

Constructors

Properties

Methods

Constructors

Properties

listeners: Map<K, Set<Listener<V>>> = ...
pool: Map<K, V> = ...

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/core_src.Env.html b/docs/enums/core_src.Env.html new file mode 100644 index 0000000..433f0e2 --- /dev/null +++ b/docs/enums/core_src.Env.html @@ -0,0 +1,4 @@ +Env | @kever/monorepo

Enumeration EnvConst

app env

+

Enumeration Members

Enumeration Members

DEV: "development"
PROD: "production"

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/ioc_src.Aop.html b/docs/enums/ioc_src.Aop.html new file mode 100644 index 0000000..ad47e9b --- /dev/null +++ b/docs/enums/ioc_src.Aop.html @@ -0,0 +1,4 @@ +Aop | @kever/monorepo

Enumeration AopConst

Enumeration Members

Enumeration Members

After: 1
Before: 0
Duplex: 2

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/enums/ioc_src.MType.html b/docs/enums/ioc_src.MType.html new file mode 100644 index 0000000..d73b321 --- /dev/null +++ b/docs/enums/ioc_src.MType.html @@ -0,0 +1,4 @@ +MType | @kever/monorepo

Enumeration MTypeConst

Enumeration Members

Enumeration Members

Global: 0
Property: 2
Route: 1

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/cli_src.default.html b/docs/functions/cli_src.default.html new file mode 100644 index 0000000..9cb34b1 --- /dev/null +++ b/docs/functions/cli_src.default.html @@ -0,0 +1 @@ +default | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/core_src.Controller.html b/docs/functions/core_src.Controller.html new file mode 100644 index 0000000..1715996 --- /dev/null +++ b/docs/functions/core_src.Controller.html @@ -0,0 +1,2 @@ +Controller | @kever/monorepo
  • controller的标识,将修饰的类注册到controller container里

    +

    Parameters

    • path: string = '/'

    Returns ClassDecorator

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/core_src.createApp.html b/docs/functions/core_src.createApp.html new file mode 100644 index 0000000..0aff860 --- /dev/null +++ b/docs/functions/core_src.createApp.html @@ -0,0 +1,2 @@ +createApp | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/enhance_src.enhanceMiddleware.html b/docs/functions/enhance_src.enhanceMiddleware.html new file mode 100644 index 0000000..d78a7ad --- /dev/null +++ b/docs/functions/enhance_src.enhanceMiddleware.html @@ -0,0 +1 @@ +enhanceMiddleware | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.Inject.html b/docs/functions/ioc_src.Inject.html new file mode 100644 index 0000000..a6923f9 --- /dev/null +++ b/docs/functions/ioc_src.Inject.html @@ -0,0 +1,2 @@ +Inject | @kever/monorepo
  • Type Parameters

    • T

    Parameters

    • tag: Tag
    • unNew: boolean = false
    • Optional param: T

    Returns PropertyDecorator

    Description

    DI

    +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.Injectable.html b/docs/functions/ioc_src.Injectable.html new file mode 100644 index 0000000..cb7905e --- /dev/null +++ b/docs/functions/ioc_src.Injectable.html @@ -0,0 +1,2 @@ +Injectable | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.Middleware.html b/docs/functions/ioc_src.Middleware.html new file mode 100644 index 0000000..fb6bc8d --- /dev/null +++ b/docs/functions/ioc_src.Middleware.html @@ -0,0 +1,4 @@ +Middleware | @kever/monorepo

Methods

use +

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.Property.html b/docs/functions/ioc_src.Property.html new file mode 100644 index 0000000..6f48b11 --- /dev/null +++ b/docs/functions/ioc_src.Property.html @@ -0,0 +1,2 @@ +Property | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.Route.html b/docs/functions/ioc_src.Route.html new file mode 100644 index 0000000..04dda62 --- /dev/null +++ b/docs/functions/ioc_src.Route.html @@ -0,0 +1,2 @@ +Route | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.destoryAllMiddleware.html b/docs/functions/ioc_src.destoryAllMiddleware.html new file mode 100644 index 0000000..1363e6c --- /dev/null +++ b/docs/functions/ioc_src.destoryAllMiddleware.html @@ -0,0 +1,2 @@ +destoryAllMiddleware | @kever/monorepo

Function destoryAllMiddleware

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.getGlobalMiddleware.html b/docs/functions/ioc_src.getGlobalMiddleware.html new file mode 100644 index 0000000..cfbd329 --- /dev/null +++ b/docs/functions/ioc_src.getGlobalMiddleware.html @@ -0,0 +1,2 @@ +getGlobalMiddleware | @kever/monorepo

Function getGlobalMiddleware

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.getInjectableNum.html b/docs/functions/ioc_src.getInjectableNum.html new file mode 100644 index 0000000..4c00d0a --- /dev/null +++ b/docs/functions/ioc_src.getInjectableNum.html @@ -0,0 +1,2 @@ +getInjectableNum | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.getMiddlewaresNum.html b/docs/functions/ioc_src.getMiddlewaresNum.html new file mode 100644 index 0000000..bf94285 --- /dev/null +++ b/docs/functions/ioc_src.getMiddlewaresNum.html @@ -0,0 +1,2 @@ +getMiddlewaresNum | @kever/monorepo

Function getMiddlewaresNum

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/ioc_src.patchMiddleware.html b/docs/functions/ioc_src.patchMiddleware.html new file mode 100644 index 0000000..cda465a --- /dev/null +++ b/docs/functions/ioc_src.patchMiddleware.html @@ -0,0 +1 @@ +patchMiddleware | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.All.html b/docs/functions/kever_src.All.html new file mode 100644 index 0000000..5dd4416 --- /dev/null +++ b/docs/functions/kever_src.All.html @@ -0,0 +1,2 @@ +All | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.Delete.html b/docs/functions/kever_src.Delete.html new file mode 100644 index 0000000..57b5a90 --- /dev/null +++ b/docs/functions/kever_src.Delete.html @@ -0,0 +1,2 @@ +Delete | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.Get.html b/docs/functions/kever_src.Get.html new file mode 100644 index 0000000..ec98ab0 --- /dev/null +++ b/docs/functions/kever_src.Get.html @@ -0,0 +1,2 @@ +Get | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.Head.html b/docs/functions/kever_src.Head.html new file mode 100644 index 0000000..16837b1 --- /dev/null +++ b/docs/functions/kever_src.Head.html @@ -0,0 +1,2 @@ +Head | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.Options.html b/docs/functions/kever_src.Options.html new file mode 100644 index 0000000..5a5a364 --- /dev/null +++ b/docs/functions/kever_src.Options.html @@ -0,0 +1,2 @@ +Options | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.Patch.html b/docs/functions/kever_src.Patch.html new file mode 100644 index 0000000..2bb508d --- /dev/null +++ b/docs/functions/kever_src.Patch.html @@ -0,0 +1,2 @@ +Patch | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.Post.html b/docs/functions/kever_src.Post.html new file mode 100644 index 0000000..5949cad --- /dev/null +++ b/docs/functions/kever_src.Post.html @@ -0,0 +1,2 @@ +Post | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.Put.html b/docs/functions/kever_src.Put.html new file mode 100644 index 0000000..e31f34b --- /dev/null +++ b/docs/functions/kever_src.Put.html @@ -0,0 +1,2 @@ +Put | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/kever_src.parseRouter.html b/docs/functions/kever_src.parseRouter.html new file mode 100644 index 0000000..edd9872 --- /dev/null +++ b/docs/functions/kever_src.parseRouter.html @@ -0,0 +1 @@ +parseRouter | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.construct.html b/docs/functions/shared_src.construct.html new file mode 100644 index 0000000..41dd380 --- /dev/null +++ b/docs/functions/shared_src.construct.html @@ -0,0 +1 @@ +construct | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.defineProperty.html b/docs/functions/shared_src.defineProperty.html new file mode 100644 index 0000000..6e30e1e --- /dev/null +++ b/docs/functions/shared_src.defineProperty.html @@ -0,0 +1 @@ +defineProperty | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.deleteMetadata.html b/docs/functions/shared_src.deleteMetadata.html new file mode 100644 index 0000000..685b36c --- /dev/null +++ b/docs/functions/shared_src.deleteMetadata.html @@ -0,0 +1,2 @@ +deleteMetadata | @kever/monorepo
  • Reflect.deleteMetadata

    +

    Parameters

    • metadataKey: string | symbol
    • target: any
    • Optional propertyKey: string | symbol

    Returns boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.fillLine.html b/docs/functions/shared_src.fillLine.html new file mode 100644 index 0000000..d2d76a9 --- /dev/null +++ b/docs/functions/shared_src.fillLine.html @@ -0,0 +1,2 @@ +fillLine | @kever/monorepo
  • fillLine

    +

    Parameters

    • data: string | [string, string][]
    • len: number = 49
    • pad: string = ' '
    • subPad: string = '.'

    Returns string

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.getAppVersion.html b/docs/functions/shared_src.getAppVersion.html new file mode 100644 index 0000000..b6500a2 --- /dev/null +++ b/docs/functions/shared_src.getAppVersion.html @@ -0,0 +1,2 @@ +getAppVersion | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.getFilesPath.html b/docs/functions/shared_src.getFilesPath.html new file mode 100644 index 0000000..32aa298 --- /dev/null +++ b/docs/functions/shared_src.getFilesPath.html @@ -0,0 +1,2 @@ +getFilesPath | @kever/monorepo
  • get files path in dir

    +

    Parameters

    • loadFileDir: string
    • logger: Logger

    Returns Promise<Set<string>>

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.getMetadata.html b/docs/functions/shared_src.getMetadata.html new file mode 100644 index 0000000..e7f8ec2 --- /dev/null +++ b/docs/functions/shared_src.getMetadata.html @@ -0,0 +1,2 @@ +getMetadata | @kever/monorepo
  • Reflect.getOwnMetadata

    +

    Type Parameters

    • T

    Parameters

    • metadataKey: string | symbol
    • target: any
    • Optional propertyKey: string | symbol

    Returns T

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.getMetadataStore.html b/docs/functions/shared_src.getMetadataStore.html new file mode 100644 index 0000000..b2e43fb --- /dev/null +++ b/docs/functions/shared_src.getMetadataStore.html @@ -0,0 +1,2 @@ +getMetadataStore | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.getProjectName.html b/docs/functions/shared_src.getProjectName.html new file mode 100644 index 0000000..b88a40d --- /dev/null +++ b/docs/functions/shared_src.getProjectName.html @@ -0,0 +1,2 @@ +getProjectName | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.isBoolean.html b/docs/functions/shared_src.isBoolean.html new file mode 100644 index 0000000..2d6e286 --- /dev/null +++ b/docs/functions/shared_src.isBoolean.html @@ -0,0 +1 @@ +isBoolean | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.isDef.html b/docs/functions/shared_src.isDef.html new file mode 100644 index 0000000..9c23ed4 --- /dev/null +++ b/docs/functions/shared_src.isDef.html @@ -0,0 +1 @@ +isDef | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.isPromise.html b/docs/functions/shared_src.isPromise.html new file mode 100644 index 0000000..e4c0ad2 --- /dev/null +++ b/docs/functions/shared_src.isPromise.html @@ -0,0 +1 @@ +isPromise | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.loadModule.html b/docs/functions/shared_src.loadModule.html new file mode 100644 index 0000000..7e489a2 --- /dev/null +++ b/docs/functions/shared_src.loadModule.html @@ -0,0 +1,2 @@ +loadModule | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.removeMetadataStore.html b/docs/functions/shared_src.removeMetadataStore.html new file mode 100644 index 0000000..e955adc --- /dev/null +++ b/docs/functions/shared_src.removeMetadataStore.html @@ -0,0 +1,2 @@ +removeMetadataStore | @kever/monorepo
  • remove metadata store value by key

    +

    Parameters

    • metadataKey: string | symbol

    Returns boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.resolvePath.html b/docs/functions/shared_src.resolvePath.html new file mode 100644 index 0000000..9a8fe0c --- /dev/null +++ b/docs/functions/shared_src.resolvePath.html @@ -0,0 +1 @@ +resolvePath | @kever/monorepo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.setMetadata.html b/docs/functions/shared_src.setMetadata.html new file mode 100644 index 0000000..75d03cd --- /dev/null +++ b/docs/functions/shared_src.setMetadata.html @@ -0,0 +1,2 @@ +setMetadata | @kever/monorepo
  • Reflect.defineMetadata

    +

    Parameters

    • metadataKey: string | symbol
    • value: any
    • target: any
    • Optional propertyKey: string | symbol

    Returns void

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/functions/shared_src.setMetadataStore.html b/docs/functions/shared_src.setMetadataStore.html new file mode 100644 index 0000000..2b590a4 --- /dev/null +++ b/docs/functions/shared_src.setMetadataStore.html @@ -0,0 +1,2 @@ +setMetadataStore | @kever/monorepo
  • set metadata store value

    +

    Parameters

    • metadataKey: string | symbol
    • value: any

    Returns boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/hierarchy.html b/docs/hierarchy.html new file mode 100644 index 0000000..b4dc405 --- /dev/null +++ b/docs/hierarchy.html @@ -0,0 +1 @@ +@kever/monorepo

@kever/monorepo

Class Hierarchy

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..a883a2e --- /dev/null +++ b/docs/index.html @@ -0,0 +1,13 @@ +@kever/monorepo

@kever/monorepo

kever

A lightweight inversion of control nodejs framework based on TypeScript.

+
+ +
+ + + +

Quick Start

Web Application

+

Install

npm insatll -g @kever/cli
+
+

Create Project

kever init
+
+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/core_src.App.html b/docs/interfaces/core_src.App.html new file mode 100644 index 0000000..c2e1502 --- /dev/null +++ b/docs/interfaces/core_src.App.html @@ -0,0 +1,50 @@ +App | @kever/monorepo

app

+
interface App {
    context: BaseContext & DefaultContext;
    env: string;
    keys: string[] | Keygrip;
    maxIpsCount: number;
    middleware: Middleware<DefaultState, DefaultContext, any>[];
    options: Required<AppOptions>;
    proxy: boolean;
    proxyIpHeader: string;
    request: BaseRequest;
    response: BaseResponse;
    silent: boolean;
    subdomainOffset: number;
    addListener(event, listener): this;
    callback(): ((req, res) => Promise<void>);
    createContext<StateT>(req, res): ParameterizedContext<StateT, DefaultContext, unknown>;
    emit(event, ...args): boolean;
    eventNames(): (string | symbol)[];
    getMaxListeners(): number;
    inspect(): any;
    listen(port?, hostname?, backlog?, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listen(port, hostname?, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listen(port, backlog?, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listen(port, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listen(path, backlog?, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listen(path, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listen(options, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listen(handle, backlog?, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listen(handle, listeningListener?): Server<typeof IncomingMessage, typeof ServerResponse>;
    listenerCount(event): number;
    listeners(event): Function[];
    off(event, listener): this;
    on(event, listener): this;
    once(event, listener): this;
    onerror(err): void;
    prependListener(event, listener): this;
    prependOnceListener(event, listener): this;
    rawListeners(event): Function[];
    removeAllListeners(event?): this;
    removeListener(event, listener): this;
    setMaxListeners(n): this;
    toJSON(): any;
    use<NewStateT, NewContextT>(middleware): __module;
}

Hierarchy

  • Application
    • App

Properties

context: BaseContext & DefaultContext
env: string
keys: string[] | Keygrip
maxIpsCount: number
middleware: Middleware<DefaultState, DefaultContext, any>[]
options: Required<AppOptions>
proxy: boolean
proxyIpHeader: string
request: BaseRequest
response: BaseResponse
silent: boolean
subdomainOffset: number

Methods

  • Parameters

    • event: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

  • Return a request handler callback +for node's native http/http2 server.

    +

    Returns ((req, res) => Promise<void>)

      • (req, res): Promise<void>
      • Parameters

        • req: IncomingMessage | Http2ServerRequest
        • res: ServerResponse | Http2ServerResponse

        Returns Promise<void>

  • Initialize a new context.

    +

    Type Parameters

    • StateT = DefaultState

    Parameters

    • req: IncomingMessage
    • res: ServerResponse

    Returns ParameterizedContext<StateT, DefaultContext, unknown>

    Api

    private

    +
  • Parameters

    • event: string | symbol
    • Rest ...args: any[]

    Returns boolean

  • Returns (string | symbol)[]

  • Returns number

  • Return JSON representation. +We only bother showing settings.

    +

    Returns any

  • Shorthand for:

    +

    http.createServer(app.callback()).listen(...)

    +

    Parameters

    • Optional port: number
    • Optional hostname: string
    • Optional backlog: number
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • port: number
    • Optional hostname: string
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • port: number
    • Optional backlog: number
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • port: number
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • path: string
    • Optional backlog: number
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • path: string
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • options: ListenOptions
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • handle: any
    • Optional backlog: number
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • handle: any
    • Optional listeningListener: (() => void)
        • (): void
        • Returns void

    Returns Server<typeof IncomingMessage, typeof ServerResponse>

  • Parameters

    • event: string | symbol

    Returns number

  • Parameters

    • event: string | symbol

    Returns Function[]

  • Parameters

    • event: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

  • Parameters

    • event: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

  • Parameters

    • event: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

  • Default error handler.

    +

    Parameters

    • err: Error

    Returns void

    Api

    private

    +
  • Parameters

    • event: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

  • Parameters

    • event: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

  • Parameters

    • event: string | symbol

    Returns Function[]

  • Parameters

    • Optional event: string | symbol

    Returns this

  • Parameters

    • event: string | symbol
    • listener: ((...args) => void)
        • (...args): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

  • Parameters

    • n: number

    Returns this

  • Return JSON representation. +We only bother showing settings.

    +

    Returns any

  • Use the given middleware fn.

    +

    Old-style middleware will be converted.

    +

    Type Parameters

    • NewStateT = {}
    • NewContextT = {}

    Parameters

    Returns __module

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/core_src.AppOptions.html b/docs/interfaces/core_src.AppOptions.html new file mode 100644 index 0000000..cd66edb --- /dev/null +++ b/docs/interfaces/core_src.AppOptions.html @@ -0,0 +1,25 @@ +AppOptions | @kever/monorepo

Kever app option

+
interface AppOptions {
    bodyparser?: Options;
    env?: Env;
    exclude?: string[];
    host?: string;
    include?: string[];
    logger?: Logger;
    middlewares?: (string | Middleware)[];
    port?: number;
    tsconfig?: string;
}

Properties

bodyparser?: Options
env?: Env

app env, default is development

+
exclude?: string[]

Exclude load modules file path,follow the glob npm package rules. +By default it will exclude ['node_modules/**']. +The current working directory in which to search. Defaults to process.cwd().

+
host?: string

http host, default is 127.0.0.1

+
include?: string[]

Auto load modules file path,follow the glob npm package rules. +By default it will include ['src/app/**/*.{ts,js}'] +The current working directory in which to search. Defaults to process.cwd().

+
logger?: Logger

custom logger, default is console

+
middlewares?: (string | Middleware)[]

koa or kever middlewares

+
port?: number

http port, default is 8080

+
tsconfig?: string

tsoncifg file path, default is root tsconfig file

+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/interfaces/core_src.Context.html b/docs/interfaces/core_src.Context.html new file mode 100644 index 0000000..71c816d --- /dev/null +++ b/docs/interfaces/core_src.Context.html @@ -0,0 +1,229 @@ +Context | @kever/monorepo
interface Context {
    URL: URL;
    accept: Accepts;
    app: __module;
    assert: typeof assert;
    body: unknown;
    cookies: Cookies;
    etag: string;
    fresh: boolean;
    getBody: (<T>(key?) => undefined | T);
    getParams: (<T>(key?) => undefined | T);
    getQuery: (<T>(key?) => undefined | T);
    header: IncomingHttpHeaders;
    headerSent: boolean;
    headers: IncomingHttpHeaders;
    host: string;
    hostname: string;
    href: string;
    html: ((string) => void);
    idempotent: boolean;
    ip: string;
    ips: string[];
    json: ((object) => void);
    lastModified: Date;
    length: number;
    logger: Logger;
    message: string;
    method: string;
    origin: string;
    originalUrl: string;
    path: string;
    protocol: string;
    query: ParsedUrlQuery;
    querystring: string;
    req: IncomingMessage;
    request: Request;
    res: ServerResponse;
    respond?: boolean;
    response: Response & {
        body: unknown;
    };
    search: string;
    secure: boolean;
    socket: Socket;
    stale: boolean;
    state: DefaultState;
    status: number;
    subdomains: string[];
    type: string;
    url: string;
    writable: boolean;
    accepts(): string[];
    accepts(...types): string | false;
    accepts(types): string | false;
    acceptsCharsets(): string[];
    acceptsCharsets(...charsets): string | false;
    acceptsCharsets(charsets): string | false;
    acceptsEncodings(): string[];
    acceptsEncodings(...encodings): string | false;
    acceptsEncodings(encodings): string | false;
    acceptsLanguages(): string[];
    acceptsLanguages(...langs): string | false;
    acceptsLanguages(langs): string | false;
    append(field, val): void;
    attachment(filename?, options?): void;
    flushHeaders(): void;
    get(field): string;
    inspect(): any;
    is(...types): null | string | false;
    is(types): null | string | false;
    onerror(err): void;
    redirect(url, alt?): void;
    remove(field): void;
    set(field): void;
    set(field, val): void;
    throw(message, code?, properties?): never;
    throw(status): never;
    throw(...properties): never;
    toJSON(): any;
    vary(field): void;
}

Hierarchy (view full)

Properties

URL: URL

Get WHATWG parsed URL object.

+
accept: Accepts
app: __module
assert: typeof assert

Similar to .throw(), adds assertion.

+

this.assert(this.user, 401, 'Please login!');

+

See: https://github.com/jshttp/http-assert

+
body: unknown

Get/Set response body.

+
cookies: Cookies
etag: string

Get/Set the ETag of a response. +This will normalize the quotes if necessary.

+
this.response.etag = 'md5hashsum';
this.response.etag = '"md5hashsum"';
this.response.etag = 'W/"123456789"'; +
+

Param: etag

Api

public

+
fresh: boolean

Check if the request is fresh, aka +Last-Modified and/or the ETag +still match.

+
getBody: (<T>(key?) => undefined | T)

Type declaration

    • <T>(key?): undefined | T
    • Type Parameters

      • T

      Parameters

      • Optional key: string

      Returns undefined | T

getParams: (<T>(key?) => undefined | T)

Type declaration

    • <T>(key?): undefined | T
    • Type Parameters

      • T

      Parameters

      • Optional key: string

      Returns undefined | T

getQuery: (<T>(key?) => undefined | T)

Type declaration

    • <T>(key?): undefined | T
    • Type Parameters

      • T

      Parameters

      • Optional key: string

      Returns undefined | T

header: IncomingHttpHeaders

Return request header.

+
headerSent: boolean

Check if a header has been written to the socket.

+
headers: IncomingHttpHeaders

Return request header, alias as request.header

+
host: string

Parse the "Host" header field host +and support X-Forwarded-Host when a +proxy is enabled.

+
hostname: string

Parse the "Host" header field hostname +and support X-Forwarded-Host when a +proxy is enabled.

+
href: string

Get full request URL.

+
html: ((string) => void)

Type declaration

    • (string): void
    • Parameters

      • string: string

      Returns void

idempotent: boolean

Check if the request is idempotent.

+
ip: string

Request remote address. Supports X-Forwarded-For when app.proxy is true.

+
ips: string[]

When app.proxy is true, parse +the "X-Forwarded-For" ip address list.

+

For example if the value were "client, proxy1, proxy2" +you would receive the array ["client", "proxy1", "proxy2"] +where "proxy2" is the furthest down-stream.

+
json: ((object) => void)

Type declaration

    • (object): void
    • Parameters

      • object: Record<string, unknown>

      Returns void

lastModified: Date

Get the Last-Modified date in Date form, if it exists. +Set the Last-Modified date using a string or a Date.

+
this.response.lastModified = new Date();
this.response.lastModified = '2013-09-13'; +
+
length: number

Return parsed response Content-Length when present. +Set Content-Length field to n.

+
logger: Logger
message: string

Get response status message

+
method: string

Get/Set request method.

+
origin: string

Get origin of URL.

+
originalUrl: string
path: string

Get request pathname. +Set pathname, retaining the query-string when present.

+
protocol: string

Return the protocol string "http" or "https" +when requested with TLS. When the proxy setting +is enabled the "X-Forwarded-Proto" header +field will be trusted. If you're running behind +a reverse proxy that supplies https for you this +may be enabled.

+
query: ParsedUrlQuery

Get parsed query-string. +Set query-string as an object.

+
querystring: string

Get/Set query string.

+
req: IncomingMessage
request: Request
res: ServerResponse
respond?: boolean

To bypass Koa's built-in response handling, you may explicitly set ctx.respond = false;

+
response: Response & {
    body: unknown;
}

Type declaration

  • body: unknown
search: string

Get the search string. Same as the querystring +except it includes the leading ?.

+

Set the search string. Same as +response.querystring= but included for ubiquity.

+
secure: boolean

Short-hand for:

+

this.protocol == 'https'

+
socket: Socket

Return the request socket.

+
stale: boolean

Check if the request is stale, aka +"Last-Modified" and / or the "ETag" for the +resource has changed.

+
state: DefaultState
status: number

Get/Set response status code.

+
subdomains: string[]

Return subdomains as an array.

+

Subdomains are the dot-separated parts of the host before the main domain +of the app. By default, the domain of the app is assumed to be the last two +parts of the host. This can be changed by setting app.subdomainOffset.

+

For example, if the domain is "tobi.ferrets.example.com": +If app.subdomainOffset is not set, this.subdomains is +["ferrets", "tobi"]. +If app.subdomainOffset is 3, this.subdomains is ["tobi"].

+
type: string

Return the response mime type void of +parameters such as "charset".

+

Set Content-Type response header with type through mime.lookup() +when it does not contain a charset.

+

Examples:

+
this.type = '.html';
this.type = 'html';
this.type = 'json';
this.type = 'application/json';
this.type = 'png'; +
+
url: string

Get/Set request URL.

+
writable: boolean

Checks if the request is writable. +Tests for the existence of the socket +as node sometimes does not set it.

+

Methods

  • Check if the given type(s) is acceptable, returning +the best match when true, otherwise false, in which +case you should respond with 406 "Not Acceptable".

    +

    The type value may be a single mime type string +such as "application/json", the extension name +such as "json" or an array ["json", "html", "text/plain"]. When a list +or array is given the best match, if any is returned.

    +

    Examples:

    +
    // Accept: text/html
    this.accepts('html');
    // => "html"

    // Accept: text/*, application/json
    this.accepts('html');
    // => "html"
    this.accepts('text/html');
    // => "text/html"
    this.accepts('json', 'text');
    // => "json"
    this.accepts('application/json');
    // => "application/json"

    // Accept: text/*, application/json
    this.accepts('image/png');
    this.accepts('png');
    // => undefined

    // Accept: text/*;q=.5, application/json
    this.accepts(['html', 'json']);
    this.accepts('html', 'json');
    // => "json" +
    +

    Returns string[]

  • Parameters

    • Rest ...types: string[]

    Returns string | false

  • Parameters

    • types: string[]

    Returns string | false

  • Return accepted charsets or best fit based on charsets.

    +

    Given Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5 +an array sorted by quality is returned:

    +
    ['utf-8', 'utf-7', 'iso-8859-1']
    +
    +

    Returns string[]

  • Parameters

    • Rest ...charsets: string[]

    Returns string | false

  • Parameters

    • charsets: string[]

    Returns string | false

  • Return accepted encodings or best fit based on encodings.

    +

    Given Accept-Encoding: gzip, deflate +an array sorted by quality is returned:

    +
    ['gzip', 'deflate']
    +
    +

    Returns string[]

  • Parameters

    • Rest ...encodings: string[]

    Returns string | false

  • Parameters

    • encodings: string[]

    Returns string | false

  • Return accepted languages or best fit based on langs.

    +

    Given Accept-Language: en;q=0.8, es, pt +an array sorted by quality is returned:

    +
    ['es', 'pt', 'en']
    +
    +

    Returns string[]

  • Parameters

    • Rest ...langs: string[]

    Returns string | false

  • Parameters

    • langs: string[]

    Returns string | false

  • Append additional header field with value val.

    +

    Examples:

    +
    this.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']);
    this.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly');
    this.append('Warning', '199 Miscellaneous warning'); +
    +

    Parameters

    • field: string
    • val: string | string[]

    Returns void

  • Set Content-Disposition to "attachment" to signal the client to prompt for download. +Optionally specify the filename of the download and some options.

    +

    Parameters

    • Optional filename: string
    • Optional options: Options

    Returns void

  • Flush any set headers, and begin the body

    +

    Returns void

  • Return request header. If the header is not set, will return an empty +string.

    +

    The Referrer header field is special-cased, both Referrer and +Referer are interchangeable.

    +

    Examples:

    +
    this.get('Content-Type');
    // => "text/plain"

    this.get('content-type');
    // => "text/plain"

    this.get('Something');
    // => '' +
    +

    Parameters

    • field: string

    Returns string

  • util.inspect() implementation, which +just returns the JSON output.

    +

    Returns any

  • Check if the incoming request contains the "Content-Type" +header field, and it contains any of the give mime types. +If there is no request body, null is returned. +If there is no content type, false is returned. +Otherwise, it returns the first type that matches.

    +

    Examples:

    +
    // With Content-Type: text/html; charset=utf-8
    this.is('html'); // => 'html'
    this.is('text/html'); // => 'text/html'
    this.is('text/*', 'application/json'); // => 'text/html'

    // When Content-Type is application/json
    this.is('json', 'urlencoded'); // => 'json'
    this.is('application/json'); // => 'application/json'
    this.is('html', 'application/*'); // => 'application/json'

    this.is('html'); // => false +
    +

    Parameters

    • Rest ...types: string[]

    Returns null | string | false

  • Parameters

    • types: string[]

    Returns null | string | false

  • Default error handling.

    +

    Parameters

    • err: Error

    Returns void

  • Perform a 302 redirect to url.

    +

    The string "back" is special-cased +to provide Referrer support, when Referrer +is not present alt or "/" is used.

    +

    Examples:

    +

    this.redirect('back'); + this.redirect('back', '/index.html'); + this.redirect('/login'); + this.redirect('http://google.com');

    +

    Parameters

    • url: string
    • Optional alt: string

    Returns void

  • Remove header field.

    +

    Parameters

    • field: string

    Returns void

  • Set header field to val, or pass +an object of header fields.

    +

    Examples:

    +

    this.set('Foo', ['bar', 'baz']); + this.set('Accept', 'application/json'); + this.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' });

    +

    Parameters

    • field: {
          [key: string]: string | string[];
      }
      • [key: string]: string | string[]

    Returns void

  • Parameters

    • field: string
    • val: string | string[]

    Returns void

  • Throw an error with msg and optional status +defaulting to 500. Note that these are user-level +errors, and the message may be exposed to the client.

    +

    this.throw(403) + this.throw('name required', 400) + this.throw(400, 'name required') + this.throw('something exploded') + this.throw(new Error('invalid'), 400); + this.throw(400, new Error('invalid'));

    +

    See: https://github.com/jshttp/http-errors

    +

    Parameters

    • message: string
    • Optional code: number
    • Optional properties: {}

      Returns never

    • Parameters

      • status: number

      Returns never

    • Parameters

      • Rest ...properties: (string | number | {})[]

      Returns never

    • Return JSON representation.

      +

      Here we explicitly invoke .toJSON() on each +object, as iteration will otherwise fail due +to the getters and cause utilities such as +clone() to fail.

      +

      Returns any

    • Vary on field.

      +

      Parameters

      • field: string | string[]

      Returns void

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/core_src.Logger.html b/docs/interfaces/core_src.Logger.html new file mode 100644 index 0000000..f02f967 --- /dev/null +++ b/docs/interfaces/core_src.Logger.html @@ -0,0 +1,7 @@ +Logger | @kever/monorepo
    interface Logger {
        debug: ((msg, ...args) => void);
        error: ((msg, ...args) => void);
        fatal: ((msg) => void);
        info: ((msg, ...args) => void);
        trace: ((msg, ...args) => void);
        warn: ((msg, ...args) => void);
    }

    Properties

    Properties

    debug: ((msg, ...args) => void)

    Type declaration

      • (msg, ...args): void
      • Parameters

        • msg: string
        • Rest ...args: unknown[]

        Returns void

    error: ((msg, ...args) => void)

    Type declaration

      • (msg, ...args): void
      • Parameters

        • msg: string
        • Rest ...args: unknown[]

        Returns void

    fatal: ((msg) => void)

    Type declaration

      • (msg): void
      • Parameters

        • msg: string

        Returns void

    info: ((msg, ...args) => void)

    Type declaration

      • (msg, ...args): void
      • Parameters

        • msg: string
        • Rest ...args: unknown[]

        Returns void

    trace: ((msg, ...args) => void)

    Type declaration

      • (msg, ...args): void
      • Parameters

        • msg: string
        • Rest ...args: unknown[]

        Returns void

    warn: ((msg, ...args) => void)

    Type declaration

      • (msg, ...args): void
      • Parameters

        • msg: string
        • Rest ...args: unknown[]

        Returns void

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/ioc_src.BaseMiddleware.html b/docs/interfaces/ioc_src.BaseMiddleware.html new file mode 100644 index 0000000..da73053 --- /dev/null +++ b/docs/interfaces/ioc_src.BaseMiddleware.html @@ -0,0 +1,3 @@ +BaseMiddleware | @kever/monorepo

    Interface BaseMiddleware<T>

    interface BaseMiddleware<T> {
        destory?: (() => void);
        ready(...args): BaseMiddlewareReadyReturn<T>;
    }

    Type Parameters

    Properties

    Methods

    Properties

    destory?: (() => void)

    Type declaration

      • (): void
      • Returns void

    Methods

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/ioc_src.RouteMiddlewareMeta.html b/docs/interfaces/ioc_src.RouteMiddlewareMeta.html new file mode 100644 index 0000000..967befc --- /dev/null +++ b/docs/interfaces/ioc_src.RouteMiddlewareMeta.html @@ -0,0 +1,4 @@ +RouteMiddlewareMeta | @kever/monorepo

    Interface RouteMiddlewareMeta

    interface RouteMiddlewareMeta {
        0: KeverMiddleware[];
        1: KeverMiddleware[];
        middlewareKey: Tag;
    }

    Properties

    Properties

    middlewareKey: Tag

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/shared_src.ControllerMeta.html b/docs/interfaces/shared_src.ControllerMeta.html new file mode 100644 index 0000000..9650dcc --- /dev/null +++ b/docs/interfaces/shared_src.ControllerMeta.html @@ -0,0 +1,3 @@ +ControllerMeta | @kever/monorepo
    interface ControllerMeta {
        controller: Object;
        path: string;
    }

    Properties

    Properties

    controller: Object
    path: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/docs/interfaces/shared_src.KoaContext.html b/docs/interfaces/shared_src.KoaContext.html new file mode 100644 index 0000000..228ca04 --- /dev/null +++ b/docs/interfaces/shared_src.KoaContext.html @@ -0,0 +1,223 @@ +KoaContext | @kever/monorepo
    interface KoaContext {
        URL: URL;
        accept: Accepts;
        app: __module;
        assert: typeof assert;
        body: unknown;
        cookies: Cookies;
        etag: string;
        fresh: boolean;
        header: IncomingHttpHeaders;
        headerSent: boolean;
        headers: IncomingHttpHeaders;
        host: string;
        hostname: string;
        href: string;
        idempotent: boolean;
        ip: string;
        ips: string[];
        lastModified: Date;
        length: number;
        message: string;
        method: string;
        origin: string;
        originalUrl: string;
        path: string;
        protocol: string;
        query: ParsedUrlQuery;
        querystring: string;
        req: IncomingMessage;
        request: Request;
        res: ServerResponse;
        respond?: boolean;
        response: Response & {
            body: unknown;
        };
        search: string;
        secure: boolean;
        socket: Socket;
        stale: boolean;
        state: DefaultState;
        status: number;
        subdomains: string[];
        type: string;
        url: string;
        writable: boolean;
        accepts(): string[];
        accepts(...types): string | false;
        accepts(types): string | false;
        acceptsCharsets(): string[];
        acceptsCharsets(...charsets): string | false;
        acceptsCharsets(charsets): string | false;
        acceptsEncodings(): string[];
        acceptsEncodings(...encodings): string | false;
        acceptsEncodings(encodings): string | false;
        acceptsLanguages(): string[];
        acceptsLanguages(...langs): string | false;
        acceptsLanguages(langs): string | false;
        append(field, val): void;
        attachment(filename?, options?): void;
        flushHeaders(): void;
        get(field): string;
        inspect(): any;
        is(...types): null | string | false;
        is(types): null | string | false;
        onerror(err): void;
        redirect(url, alt?): void;
        remove(field): void;
        set(field): void;
        set(field, val): void;
        throw(message, code?, properties?): never;
        throw(status): never;
        throw(...properties): never;
        toJSON(): any;
        vary(field): void;
    }

    Hierarchy (view full)

    • ParameterizedContext

    Properties

    URL: URL

    Get WHATWG parsed URL object.

    +
    accept: Accepts
    app: __module
    assert: typeof assert

    Similar to .throw(), adds assertion.

    +

    this.assert(this.user, 401, 'Please login!');

    +

    See: https://github.com/jshttp/http-assert

    +
    body: unknown

    Get/Set response body.

    +
    cookies: Cookies
    etag: string

    Get/Set the ETag of a response. +This will normalize the quotes if necessary.

    +
    this.response.etag = 'md5hashsum';
    this.response.etag = '"md5hashsum"';
    this.response.etag = 'W/"123456789"'; +
    +

    Param: etag

    Api

    public

    +
    fresh: boolean

    Check if the request is fresh, aka +Last-Modified and/or the ETag +still match.

    +
    header: IncomingHttpHeaders

    Return request header.

    +
    headerSent: boolean

    Check if a header has been written to the socket.

    +
    headers: IncomingHttpHeaders

    Return request header, alias as request.header

    +
    host: string

    Parse the "Host" header field host +and support X-Forwarded-Host when a +proxy is enabled.

    +
    hostname: string

    Parse the "Host" header field hostname +and support X-Forwarded-Host when a +proxy is enabled.

    +
    href: string

    Get full request URL.

    +
    idempotent: boolean

    Check if the request is idempotent.

    +
    ip: string

    Request remote address. Supports X-Forwarded-For when app.proxy is true.

    +
    ips: string[]

    When app.proxy is true, parse +the "X-Forwarded-For" ip address list.

    +

    For example if the value were "client, proxy1, proxy2" +you would receive the array ["client", "proxy1", "proxy2"] +where "proxy2" is the furthest down-stream.

    +
    lastModified: Date

    Get the Last-Modified date in Date form, if it exists. +Set the Last-Modified date using a string or a Date.

    +
    this.response.lastModified = new Date();
    this.response.lastModified = '2013-09-13'; +
    +
    length: number

    Return parsed response Content-Length when present. +Set Content-Length field to n.

    +
    message: string

    Get response status message

    +
    method: string

    Get/Set request method.

    +
    origin: string

    Get origin of URL.

    +
    originalUrl: string
    path: string

    Get request pathname. +Set pathname, retaining the query-string when present.

    +
    protocol: string

    Return the protocol string "http" or "https" +when requested with TLS. When the proxy setting +is enabled the "X-Forwarded-Proto" header +field will be trusted. If you're running behind +a reverse proxy that supplies https for you this +may be enabled.

    +
    query: ParsedUrlQuery

    Get parsed query-string. +Set query-string as an object.

    +
    querystring: string

    Get/Set query string.

    +
    req: IncomingMessage
    request: Request
    res: ServerResponse
    respond?: boolean

    To bypass Koa's built-in response handling, you may explicitly set ctx.respond = false;

    +
    response: Response & {
        body: unknown;
    }

    Type declaration

    • body: unknown
    search: string

    Get the search string. Same as the querystring +except it includes the leading ?.

    +

    Set the search string. Same as +response.querystring= but included for ubiquity.

    +
    secure: boolean

    Short-hand for:

    +

    this.protocol == 'https'

    +
    socket: Socket

    Return the request socket.

    +
    stale: boolean

    Check if the request is stale, aka +"Last-Modified" and / or the "ETag" for the +resource has changed.

    +
    state: DefaultState
    status: number

    Get/Set response status code.

    +
    subdomains: string[]

    Return subdomains as an array.

    +

    Subdomains are the dot-separated parts of the host before the main domain +of the app. By default, the domain of the app is assumed to be the last two +parts of the host. This can be changed by setting app.subdomainOffset.

    +

    For example, if the domain is "tobi.ferrets.example.com": +If app.subdomainOffset is not set, this.subdomains is +["ferrets", "tobi"]. +If app.subdomainOffset is 3, this.subdomains is ["tobi"].

    +
    type: string

    Return the response mime type void of +parameters such as "charset".

    +

    Set Content-Type response header with type through mime.lookup() +when it does not contain a charset.

    +

    Examples:

    +
    this.type = '.html';
    this.type = 'html';
    this.type = 'json';
    this.type = 'application/json';
    this.type = 'png'; +
    +
    url: string

    Get/Set request URL.

    +
    writable: boolean

    Checks if the request is writable. +Tests for the existence of the socket +as node sometimes does not set it.

    +

    Methods

    • Check if the given type(s) is acceptable, returning +the best match when true, otherwise false, in which +case you should respond with 406 "Not Acceptable".

      +

      The type value may be a single mime type string +such as "application/json", the extension name +such as "json" or an array ["json", "html", "text/plain"]. When a list +or array is given the best match, if any is returned.

      +

      Examples:

      +
      // Accept: text/html
      this.accepts('html');
      // => "html"

      // Accept: text/*, application/json
      this.accepts('html');
      // => "html"
      this.accepts('text/html');
      // => "text/html"
      this.accepts('json', 'text');
      // => "json"
      this.accepts('application/json');
      // => "application/json"

      // Accept: text/*, application/json
      this.accepts('image/png');
      this.accepts('png');
      // => undefined

      // Accept: text/*;q=.5, application/json
      this.accepts(['html', 'json']);
      this.accepts('html', 'json');
      // => "json" +
      +

      Returns string[]

    • Parameters

      • Rest ...types: string[]

      Returns string | false

    • Parameters

      • types: string[]

      Returns string | false

    • Return accepted charsets or best fit based on charsets.

      +

      Given Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5 +an array sorted by quality is returned:

      +
      ['utf-8', 'utf-7', 'iso-8859-1']
      +
      +

      Returns string[]

    • Parameters

      • Rest ...charsets: string[]

      Returns string | false

    • Parameters

      • charsets: string[]

      Returns string | false

    • Return accepted encodings or best fit based on encodings.

      +

      Given Accept-Encoding: gzip, deflate +an array sorted by quality is returned:

      +
      ['gzip', 'deflate']
      +
      +

      Returns string[]

    • Parameters

      • Rest ...encodings: string[]

      Returns string | false

    • Parameters

      • encodings: string[]

      Returns string | false

    • Return accepted languages or best fit based on langs.

      +

      Given Accept-Language: en;q=0.8, es, pt +an array sorted by quality is returned:

      +
      ['es', 'pt', 'en']
      +
      +

      Returns string[]

    • Parameters

      • Rest ...langs: string[]

      Returns string | false

    • Parameters

      • langs: string[]

      Returns string | false

    • Append additional header field with value val.

      +

      Examples:

      +
      this.append('Link', ['<http://localhost/>', '<http://localhost:3000/>']);
      this.append('Set-Cookie', 'foo=bar; Path=/; HttpOnly');
      this.append('Warning', '199 Miscellaneous warning'); +
      +

      Parameters

      • field: string
      • val: string | string[]

      Returns void

    • Set Content-Disposition to "attachment" to signal the client to prompt for download. +Optionally specify the filename of the download and some options.

      +

      Parameters

      • Optional filename: string
      • Optional options: Options

      Returns void

    • Flush any set headers, and begin the body

      +

      Returns void

    • Return request header. If the header is not set, will return an empty +string.

      +

      The Referrer header field is special-cased, both Referrer and +Referer are interchangeable.

      +

      Examples:

      +
      this.get('Content-Type');
      // => "text/plain"

      this.get('content-type');
      // => "text/plain"

      this.get('Something');
      // => '' +
      +

      Parameters

      • field: string

      Returns string

    • util.inspect() implementation, which +just returns the JSON output.

      +

      Returns any

    • Check if the incoming request contains the "Content-Type" +header field, and it contains any of the give mime types. +If there is no request body, null is returned. +If there is no content type, false is returned. +Otherwise, it returns the first type that matches.

      +

      Examples:

      +
      // With Content-Type: text/html; charset=utf-8
      this.is('html'); // => 'html'
      this.is('text/html'); // => 'text/html'
      this.is('text/*', 'application/json'); // => 'text/html'

      // When Content-Type is application/json
      this.is('json', 'urlencoded'); // => 'json'
      this.is('application/json'); // => 'application/json'
      this.is('html', 'application/*'); // => 'application/json'

      this.is('html'); // => false +
      +

      Parameters

      • Rest ...types: string[]

      Returns null | string | false

    • Parameters

      • types: string[]

      Returns null | string | false

    • Default error handling.

      +

      Parameters

      • err: Error

      Returns void

    • Perform a 302 redirect to url.

      +

      The string "back" is special-cased +to provide Referrer support, when Referrer +is not present alt or "/" is used.

      +

      Examples:

      +

      this.redirect('back'); + this.redirect('back', '/index.html'); + this.redirect('/login'); + this.redirect('http://google.com');

      +

      Parameters

      • url: string
      • Optional alt: string

      Returns void

    • Remove header field.

      +

      Parameters

      • field: string

      Returns void

    • Set header field to val, or pass +an object of header fields.

      +

      Examples:

      +

      this.set('Foo', ['bar', 'baz']); + this.set('Accept', 'application/json'); + this.set({ Accept: 'text/plain', 'X-API-Key': 'tobi' });

      +

      Parameters

      • field: {
            [key: string]: string | string[];
        }
        • [key: string]: string | string[]

      Returns void

    • Parameters

      • field: string
      • val: string | string[]

      Returns void

    • Throw an error with msg and optional status +defaulting to 500. Note that these are user-level +errors, and the message may be exposed to the client.

      +

      this.throw(403) + this.throw('name required', 400) + this.throw(400, 'name required') + this.throw('something exploded') + this.throw(new Error('invalid'), 400); + this.throw(400, new Error('invalid'));

      +

      See: https://github.com/jshttp/http-errors

      +

      Parameters

      • message: string
      • Optional code: number
      • Optional properties: {}

        Returns never

      • Parameters

        • status: number

        Returns never

      • Parameters

        • Rest ...properties: (string | number | {})[]

        Returns never

      • Return JSON representation.

        +

        Here we explicitly invoke .toJSON() on each +object, as iteration will otherwise fail due +to the getters and cause utilities such as +clone() to fail.

        +

        Returns any

      • Vary on field.

        +

        Parameters

        • field: string | string[]

        Returns void

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/modules/cli_src.html b/docs/modules/cli_src.html new file mode 100644 index 0000000..c2cfeb8 --- /dev/null +++ b/docs/modules/cli_src.html @@ -0,0 +1,2 @@ +cli/src | @kever/monorepo

      Index

      Functions

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/modules/core_src.html b/docs/modules/core_src.html new file mode 100644 index 0000000..f77be4b --- /dev/null +++ b/docs/modules/core_src.html @@ -0,0 +1,9 @@ +core/src | @kever/monorepo

      Index

      Enumerations

      Env +

      Interfaces

      Type Aliases

      Functions

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/modules/enhance_src.html b/docs/modules/enhance_src.html new file mode 100644 index 0000000..1602729 --- /dev/null +++ b/docs/modules/enhance_src.html @@ -0,0 +1,2 @@ +enhance/src | @kever/monorepo

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/modules/ioc_src.html b/docs/modules/ioc_src.html new file mode 100644 index 0000000..50b4c8d --- /dev/null +++ b/docs/modules/ioc_src.html @@ -0,0 +1,15 @@ +ioc/src | @kever/monorepo

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/modules/kever_src.html b/docs/modules/kever_src.html new file mode 100644 index 0000000..7adcbac --- /dev/null +++ b/docs/modules/kever_src.html @@ -0,0 +1,33 @@ +kever/src | @kever/monorepo

      Module kever/src

      References

      Re-exports Aop
      Re-exports App
      Re-exports AppOptions
      Re-exports BaseMiddleware
      Re-exports Context
      Re-exports Controller
      Re-exports Env
      Re-exports Inject
      Re-exports Injectable
      Re-exports Logger
      Re-exports MType
      Re-exports Middleware
      Re-exports Next
      Re-exports Property
      Re-exports Route
      Re-exports RouteMiddlewareMeta
      Re-exports createApp
      Re-exports destoryAllMiddleware
      Re-exports enhanceMiddleware
      Re-exports getGlobalMiddleware
      Re-exports getInjectableNum
      Re-exports getMiddlewaresNum
      Re-exports patchMiddleware

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/modules/router_src.html b/docs/modules/router_src.html new file mode 100644 index 0000000..5495786 --- /dev/null +++ b/docs/modules/router_src.html @@ -0,0 +1,10 @@ +router/src | @kever/monorepo

      Module router/src

      References

      Re-exports All
      Re-exports Delete
      Re-exports Get
      Re-exports Head
      Re-exports Options
      Re-exports Patch
      Re-exports Post
      Re-exports Put
      Re-exports parseRouter

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/modules/shared_src.html b/docs/modules/shared_src.html new file mode 100644 index 0000000..81f03c8 --- /dev/null +++ b/docs/modules/shared_src.html @@ -0,0 +1,36 @@ +shared/src | @kever/monorepo

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/types/core_src.Next.html b/docs/types/core_src.Next.html new file mode 100644 index 0000000..a83ad57 --- /dev/null +++ b/docs/types/core_src.Next.html @@ -0,0 +1 @@ +Next | @kever/monorepo

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/types/shared_src.Instance.html b/docs/types/shared_src.Instance.html new file mode 100644 index 0000000..e0de5b3 --- /dev/null +++ b/docs/types/shared_src.Instance.html @@ -0,0 +1 @@ +Instance | @kever/monorepo
      Instance: (new (...args) => unknown)

      Type declaration

        • new (...args): unknown
        • Parameters

          • Rest ...args: unknown[]

          Returns unknown

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/types/shared_src.KeverMiddleware.html b/docs/types/shared_src.KeverMiddleware.html new file mode 100644 index 0000000..4fc6439 --- /dev/null +++ b/docs/types/shared_src.KeverMiddleware.html @@ -0,0 +1 @@ +KeverMiddleware | @kever/monorepo
      KeverMiddleware: ((context, next) => void)

      Type declaration

        • (context, next): void
        • Parameters

          Returns void

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/types/shared_src.KoaMiddleware.html b/docs/types/shared_src.KoaMiddleware.html new file mode 100644 index 0000000..e62e1c2 --- /dev/null +++ b/docs/types/shared_src.KoaMiddleware.html @@ -0,0 +1 @@ +KoaMiddleware | @kever/monorepo
      KoaMiddleware: ((context, next) => void)

      Type declaration

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/types/shared_src.KoaNext.html b/docs/types/shared_src.KoaNext.html new file mode 100644 index 0000000..8b51e67 --- /dev/null +++ b/docs/types/shared_src.KoaNext.html @@ -0,0 +1 @@ +KoaNext | @kever/monorepo
      KoaNext: (() => Promise<any>)

      Type declaration

        • (): Promise<any>
        • Returns Promise<any>

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/types/shared_src.Tag.html b/docs/types/shared_src.Tag.html new file mode 100644 index 0000000..30ca747 --- /dev/null +++ b/docs/types/shared_src.Tag.html @@ -0,0 +1 @@ +Tag | @kever/monorepo
      Tag: string | symbol

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/variables/shared_src.META_CONTROLLER.html b/docs/variables/shared_src.META_CONTROLLER.html new file mode 100644 index 0000000..2db6377 --- /dev/null +++ b/docs/variables/shared_src.META_CONTROLLER.html @@ -0,0 +1,2 @@ +META_CONTROLLER | @kever/monorepo

      Variable META_CONTROLLERConst

      META_CONTROLLER: typeof META_CONTROLLER = ...

      meta key

      +

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/variables/shared_src.META_INJECT_PROPERTY.html b/docs/variables/shared_src.META_INJECT_PROPERTY.html new file mode 100644 index 0000000..a3e435b --- /dev/null +++ b/docs/variables/shared_src.META_INJECT_PROPERTY.html @@ -0,0 +1 @@ +META_INJECT_PROPERTY | @kever/monorepo

      Variable META_INJECT_PROPERTYConst

      META_INJECT_PROPERTY: typeof META_INJECT_PROPERTY = ...

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/variables/shared_src.META_LOGGER.html b/docs/variables/shared_src.META_LOGGER.html new file mode 100644 index 0000000..534a0f3 --- /dev/null +++ b/docs/variables/shared_src.META_LOGGER.html @@ -0,0 +1 @@ +META_LOGGER | @kever/monorepo

      Variable META_LOGGERConst

      META_LOGGER: typeof META_LOGGER = ...

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/variables/shared_src.META_MIDDLEWARE_ALL.html b/docs/variables/shared_src.META_MIDDLEWARE_ALL.html new file mode 100644 index 0000000..6f63931 --- /dev/null +++ b/docs/variables/shared_src.META_MIDDLEWARE_ALL.html @@ -0,0 +1 @@ +META_MIDDLEWARE_ALL | @kever/monorepo

      Variable META_MIDDLEWARE_ALLConst

      META_MIDDLEWARE_ALL: typeof META_MIDDLEWARE_ALL = ...

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/variables/shared_src.META_MIDDLEWARE_GLOBAL.html b/docs/variables/shared_src.META_MIDDLEWARE_GLOBAL.html new file mode 100644 index 0000000..feaa92c --- /dev/null +++ b/docs/variables/shared_src.META_MIDDLEWARE_GLOBAL.html @@ -0,0 +1 @@ +META_MIDDLEWARE_GLOBAL | @kever/monorepo

      Variable META_MIDDLEWARE_GLOBALConst

      META_MIDDLEWARE_GLOBAL: typeof META_MIDDLEWARE_GLOBAL = ...

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/variables/shared_src.META_MIDDLEWARE_ROUTER.html b/docs/variables/shared_src.META_MIDDLEWARE_ROUTER.html new file mode 100644 index 0000000..ddfede1 --- /dev/null +++ b/docs/variables/shared_src.META_MIDDLEWARE_ROUTER.html @@ -0,0 +1 @@ +META_MIDDLEWARE_ROUTER | @kever/monorepo

      Variable META_MIDDLEWARE_ROUTERConst

      META_MIDDLEWARE_ROUTER: typeof META_MIDDLEWARE_ROUTER = ...

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/variables/shared_src.META_ROUTER.html b/docs/variables/shared_src.META_ROUTER.html new file mode 100644 index 0000000..45375f7 --- /dev/null +++ b/docs/variables/shared_src.META_ROUTER.html @@ -0,0 +1 @@ +META_ROUTER | @kever/monorepo

      Variable META_ROUTERConst

      META_ROUTER: typeof META_ROUTER = ...

      Generated using TypeDoc

      \ No newline at end of file diff --git a/docs/variables/shared_src.poolContainer.html b/docs/variables/shared_src.poolContainer.html new file mode 100644 index 0000000..42cb90f --- /dev/null +++ b/docs/variables/shared_src.poolContainer.html @@ -0,0 +1 @@ +poolContainer | @kever/monorepo

      Variable poolContainerConst

      poolContainer: Container<Object, Container<PropertyKey, unknown>> = ...

      Generated using TypeDoc

      \ No newline at end of file diff --git a/package.json b/package.json index be02c3d..74f375c 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "test": "mocha --require ts-node/register ./packages/**/test/*.spec.ts", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s && git add ./CHANGELOG.md", "ci": "bumpp package.json packages/*/package.json --commit --push --tag", - "release": "run-s build ci" + "release": "run-s build ci", + "docs": "rimraf docs && typedoc ./packages/*/src/index.ts" }, "publishConfig": { "directory": "packages/*" @@ -35,6 +36,7 @@ "reflect-metadata": "^0.1.13", "rimraf": "^5.0.1", "supertest": "^4.0.2", + "typedoc": "^0.25.12", "typescript": "^5.1.6", "unbuild": "^1.2.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3039beb..b910371 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,7 @@ importers: reflect-metadata: ^0.1.13 rimraf: ^5.0.1 supertest: ^4.0.2 + typedoc: ^0.25.12 typescript: ^5.1.6 unbuild: ^1.2.1 devDependencies: @@ -45,6 +46,7 @@ importers: reflect-metadata: 0.1.13 rimraf: 5.0.1 supertest: 4.0.2 + typedoc: 0.25.12_typescript@5.1.6 typescript: 5.1.6 unbuild: 1.2.1 publishDirectory: packages/* @@ -1674,6 +1676,10 @@ packages: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + /ansi-sequence-parser/1.1.1: + resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + dev: true + /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -4373,6 +4379,10 @@ packages: dependencies: yallist: 4.0.0 + /lunr/2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + dev: true + /magic-string/0.27.0: resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} engines: {node: '>=12'} @@ -4402,6 +4412,12 @@ packages: engines: {node: '>=8'} dev: true + /marked/4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} + engines: {node: '>= 12'} + hasBin: true + dev: true + /media-typer/0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -5521,6 +5537,15 @@ packages: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true + /shiki/0.14.7: + resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} + dependencies: + ansi-sequence-parser: 1.1.1 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 + dev: true + /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -6025,6 +6050,20 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: false + /typedoc/0.25.12_typescript@5.1.6: + resolution: {integrity: sha512-F+qhkK2VoTweDXd1c42GS/By2DvI2uDF4/EpG424dTexSHdtCH52C6IcAvMA6jR3DzAWZjHpUOW+E02kyPNUNw==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x + dependencies: + lunr: 2.3.9 + marked: 4.3.0 + minimatch: 9.0.3 + shiki: 0.14.7 + typescript: 5.1.6 + dev: true + /typescript/5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} @@ -6196,6 +6235,14 @@ packages: engines: {node: '>= 0.8'} dev: false + /vscode-oniguruma/1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} + dev: true + + /vscode-textmate/8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: true + /wcwidth/1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: