From e09fcb848a0be04730389da817466a6bf3e8c228 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 16 Aug 2024 09:45:33 +0000 Subject: [PATCH] Deploy documentation and coverage --- README.md | 0 assets/highlight.css | 71 + assets/icons.js | 18 + assets/icons.svg | 1 + assets/main.js | 60 + assets/navigation.js | 1 + assets/search.js | 1 + assets/style.css | 1448 +++++++++++++++++ classes/TSinjex.TSinjex.html | 24 + ..._Exceptions.DependencyResolutionError.html | 15 + .../interfaces_Exceptions.TSinjexError.html | 14 + coverage/lcov-report/base.css | 224 +++ coverage/lcov-report/block-navigation.js | 87 + coverage/lcov-report/favicon.png | Bin 0 -> 445 bytes coverage/lcov-report/index.html | 161 ++ coverage/lcov-report/prettify.css | 1 + coverage/lcov-report/prettify.js | 2 + coverage/lcov-report/sort-arrow-sprite.png | Bin 0 -> 138 bytes coverage/lcov-report/sorter.js | 196 +++ coverage/lcov-report/src/TSinjex.ts.html | 397 +++++ .../src/__tests__/IDIContainer.spec.ts.html | 223 +++ coverage/lcov-report/src/__tests__/index.html | 116 ++ .../src/helper/ImplementsStatic.ts.html | 109 ++ coverage/lcov-report/src/helper/index.html | 116 ++ coverage/lcov-report/src/index.html | 116 ++ .../src/interfaces/Exceptions.ts.html | 175 ++ .../lcov-report/src/interfaces/index.html | 116 ++ coverage/lcov.info | 127 ++ functions/decorators_Inject.Inject.html | 19 + functions/decorators_Register.Register.html | 10 + ...ors_RegisterInstance.RegisterInstance.html | 11 + functions/functions_register.register.html | 13 + functions/functions_resolve.resolve.html | 15 + ...per_ImplementsStatic.ImplementsStatic.html | 4 + hierarchy.html | 1 + index.html | 4 + .../interfaces_IDependency.IDependency.html | 7 + interfaces/interfaces_ITSinjex.ITSinjex.html | 30 + .../interfaces_ITSinjex.ITSinjexRegister.html | 16 + .../interfaces_ITSinjex.ITSinjexResolve.html | 16 + interfaces/interfaces_ITSinjex.ITSinjex_.html | 32 + modules/TSinjex.html | 2 + modules/decorators_Inject.html | 2 + modules/decorators_Register.html | 2 + modules/decorators_RegisterInstance.html | 2 + modules/functions_register.html | 2 + modules/functions_resolve.html | 2 + modules/helper_ImplementsStatic.html | 2 + modules/index.html | 14 + modules/interfaces_Exceptions.html | 3 + modules/interfaces_IDependency.html | 2 + modules/interfaces_ITSinjex.html | 5 + modules/types_GenericContructor.html | 3 + modules/types_InitDelegate.html | 2 + ...es_GenericContructor.ForceConstructor.html | 3 + ..._GenericContructor.GenericConstructor.html | 2 + types/types_InitDelegate.InitDelegate.html | 7 + 57 files changed, 4052 insertions(+) delete mode 100644 README.md create mode 100644 assets/highlight.css create mode 100644 assets/icons.js create mode 100644 assets/icons.svg create mode 100644 assets/main.js create mode 100644 assets/navigation.js create mode 100644 assets/search.js create mode 100644 assets/style.css create mode 100644 classes/TSinjex.TSinjex.html create mode 100644 classes/interfaces_Exceptions.DependencyResolutionError.html create mode 100644 classes/interfaces_Exceptions.TSinjexError.html create mode 100644 coverage/lcov-report/base.css create mode 100644 coverage/lcov-report/block-navigation.js create mode 100644 coverage/lcov-report/favicon.png create mode 100644 coverage/lcov-report/index.html create mode 100644 coverage/lcov-report/prettify.css create mode 100644 coverage/lcov-report/prettify.js create mode 100644 coverage/lcov-report/sort-arrow-sprite.png create mode 100644 coverage/lcov-report/sorter.js create mode 100644 coverage/lcov-report/src/TSinjex.ts.html create mode 100644 coverage/lcov-report/src/__tests__/IDIContainer.spec.ts.html create mode 100644 coverage/lcov-report/src/__tests__/index.html create mode 100644 coverage/lcov-report/src/helper/ImplementsStatic.ts.html create mode 100644 coverage/lcov-report/src/helper/index.html create mode 100644 coverage/lcov-report/src/index.html create mode 100644 coverage/lcov-report/src/interfaces/Exceptions.ts.html create mode 100644 coverage/lcov-report/src/interfaces/index.html create mode 100644 coverage/lcov.info create mode 100644 functions/decorators_Inject.Inject.html create mode 100644 functions/decorators_Register.Register.html create mode 100644 functions/decorators_RegisterInstance.RegisterInstance.html create mode 100644 functions/functions_register.register.html create mode 100644 functions/functions_resolve.resolve.html create mode 100644 functions/helper_ImplementsStatic.ImplementsStatic.html create mode 100644 hierarchy.html create mode 100644 index.html create mode 100644 interfaces/interfaces_IDependency.IDependency.html create mode 100644 interfaces/interfaces_ITSinjex.ITSinjex.html create mode 100644 interfaces/interfaces_ITSinjex.ITSinjexRegister.html create mode 100644 interfaces/interfaces_ITSinjex.ITSinjexResolve.html create mode 100644 interfaces/interfaces_ITSinjex.ITSinjex_.html create mode 100644 modules/TSinjex.html create mode 100644 modules/decorators_Inject.html create mode 100644 modules/decorators_Register.html create mode 100644 modules/decorators_RegisterInstance.html create mode 100644 modules/functions_register.html create mode 100644 modules/functions_resolve.html create mode 100644 modules/helper_ImplementsStatic.html create mode 100644 modules/index.html create mode 100644 modules/interfaces_Exceptions.html create mode 100644 modules/interfaces_IDependency.html create mode 100644 modules/interfaces_ITSinjex.html create mode 100644 modules/types_GenericContructor.html create mode 100644 modules/types_InitDelegate.html create mode 100644 types/types_GenericContructor.ForceConstructor.html create mode 100644 types/types_GenericContructor.GenericConstructor.html create mode 100644 types/types_InitDelegate.InitDelegate.html diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/assets/highlight.css b/assets/highlight.css new file mode 100644 index 0000000..4a4d100 --- /dev/null +++ b/assets/highlight.css @@ -0,0 +1,71 @@ +:root { + --light-hl-0: #267F99; + --dark-hl-0: #4EC9B0; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #001080; + --dark-hl-2: #9CDCFE; + --light-hl-3: #A31515; + --dark-hl-3: #CE9178; + --light-hl-4: #008000; + --dark-hl-4: #6A9955; + --light-hl-5: #0000FF; + --dark-hl-5: #569CD6; + --light-hl-6: #795E26; + --dark-hl-6: #DCDCAA; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +pre, code { background: var(--code-background); } diff --git a/assets/icons.js b/assets/icons.js new file mode 100644 index 0000000..e88e8ca --- /dev/null +++ b/assets/icons.js @@ -0,0 +1,18 @@ +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `""`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/assets/icons.svg b/assets/icons.svg new file mode 100644 index 0000000..e371b8b --- /dev/null +++ b/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/main.js b/assets/main.js new file mode 100644 index 0000000..3572881 --- /dev/null +++ b/assets/main.js @@ -0,0 +1,60 @@ +"use strict"; +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."}; +"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;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),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/assets/navigation.js b/assets/navigation.js new file mode 100644 index 0000000..e2b1d2c --- /dev/null +++ b/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA5WWTU/DMAyG/0vOEzDE+NiVL+06uE2oqjKPFbqkSjy0CfHfCR1t08SuUu2W2s/7Jk7srb4FwgHFXLy+FOoDDmIiqhy3bmGn1/sS7Pn/h7Mt7kr39bNQazG/nAi5Lcq1ASXmKx4iy9xaD0LCppe3P28/k5ayBqlNjtpYQcssHENibLVLzE4hSaZD2mavJBZaUTwKe33Vc7+E98IimEF7TVCSwZhIWmyZNJyxuVAWcyUhyW4TPMp2rDBov9UYFq2342+ohTKXxrB1aTMzM6YsMbDbF4Gk2UFVDFhdfhHF8IF1SKLFAEc7PAFJcHTMWygrMOeLXVXCDhTaF8yxkLHjU2AWBqY9SZbebYDjDwsG5+3WqJ5XLwdOe1mujptcAnfXHg8SquYyRuwmOevCkk7lASpwxpQ8Lv9Ktf/LfDRGezew6be0CAuI+/Ek7OmjhPyc4V6/6DwNHpUXl3aDKG7H49C8zOy675udlz55zOyMiYzdBsrQndHYZjxCEuHMoGJEgm6TrEF1NFIiGw3PqDr6lcRjxb7jZ1BgCnmvFZq9RE0Mjzo9iwKTSv6kjQSXYyN6TWXZYV4gdnF3M535/aojjFWKM2mt3tNQBT5ACe85EoPspOTHJP5Jo6C++R5ygN86dr9fqSxli/8KAAA=" \ No newline at end of file diff --git a/assets/search.js b/assets/search.js new file mode 100644 index 0000000..bb42c9a --- /dev/null +++ b/assets/search.js @@ -0,0 +1 @@ +window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAAA8WbS2/jNhDHv4t99Trm01au3W2Ra7boJQiMwGayah3ZkJV0F0G+eymJkjiaoUzZKXJy5HD+8+CPzyhvk3z/73Fyffc2+SfNtpNrPptkD89mcj3583ua/W1+TmaTl3xnn5/325edOV657+c/iued/eVm93A8GisxmbzPGhXGV0EdZ9DqhPVmk8NDbrLCE/FcLLhsfazT7Fg8ZBsT5WXqN+/8Fcftl/T45ZCnrw+FIbzPcRR8IbtMn0xxMyoOaDCY+SnfuXlKj4XJ4xw3rb/wy/0e97vXyHxd47O8KtahudnbquUvm2IfmS80uKzLIXhbczDZ1mSb1ArGwdcz+UAAz4PgMxA4x2fr0D4S81L17eCs1ClszWafP1gajlc31s2mQGpdi3XdYlBZd0T09B5fsk2RWvwIxaCwVw8cqedVKaE7FNfFr4MZ63jqfm6tI8OYg49TRb7tg0mUuWkTW2ikSWbcqg7I03m2+pcUnHY/bZ/iy46ViAAHi4/WpoFOaNqO7QzkY7AqrZcIt8NVaf1+RGcNhzVF347vxLCHgYS6zu2iRzN+06dtk3U+clwhyc4bITqg7pWACPhUXnBNodKqWsRnBQXppGrJsHQgpVqayuiH2R1MfnXzfNiZZ2t4/F48FOkG5VW3W/fbRS86If0uypCHCJde1qF8Rg+7UeFM0bcnhlwgTKw+kIi/37DAPj5sbD99+7kxhyoDYv/RtFp3rcaekr7lObGnpaV9k+FeoxMYv7eOjCO43T4ZE9AKVOprs33+dVsOvJfScEzZgvafWcPhoC4oaLhaJ0i/6SyHUPeaDe+9VTcpUNKe54D6sCe6EL6nwAlu+xGxTIHKmLDmcSHmZmOPhNsLQ+xUPiBEmprQrZEfZcwNEuDFGaxPpd8ItwbxoJxxtTMqiKi7HiKgTib60D8uLvIWwN1EpNkPk6c1MZcGCbdfY2PElwYfEiIBGTpWRoYad74cgdy5/QpPmicveYZqRZ0wyZKd1bm3MdvsUQW7OIyT11PD1ULnAKJYY8P7dJ7+h2nig3vw4ycJcpkrTxzHqz9MZrU2v+2z/g6vWeqqdmvUbni5WyRLpjpfnTXaSNZhhJxgw2GAQknRG9vece6sUKYnzm6BiAi5gfr9vs83Znz1+mafVjsykHMrh4oRpvsmS4uvZmee6j9AUGD7TUYxTWr7ZQDKJ9ygtIF65HVEvPO40gc1vIAkS6RYyP7Bf+DPGdOuSWgR2IIpq+8i8CcOz0Pb4jwHwet9z8Xt6Y1InJPgNTbhLGLHPew0dA/p+Tq9ZTjl4nTx2r/XsvMhQIcoigOv0WVuYpAg2l7q9GRv4aaXuYzxdcHAHZiNwfAF7c5zNrDlIFySrc9zHFyrCbdE20Gn9zP30/Xb5NXkx3Sf2V/yuZgntvVjanbb8u2XOhSrtX8uL4PtT9v95qX68d41+8uU/srGdeurxWR2t5jxZJ6o5f397K4xrn5RfdFodN9UhixkyJAhA4bcPrGZWM2lAHYc2XFgJ+wTnwkxF5wDQ4EMBTCU9knMmI10CQ0lMpTAUNknOeO2zkIDQ4UMFTDU9klRtdHIUAPDpX3SRG2WyG4J7FahFFfIcAUMk1CKCTJMYPeXNCyJUBkGh/XIKXlYUaYEOpAdViKRUBAwjA+D/LCSCragkmUYIQYZYiUZjMKWYYoYxIipUO8wDBKDJDEdDhrDxCBNrITE7t2JoDFQDBLFSk6YIEuNoWKQKpaEo8ZgMUgWL2lhkpohMFocosVZqNQcs8V781I1MSnKLzE1Qba4CI0jjtHiEC1eoUWNeo7R4hAtXtLCqGHIMVocosXDaHGMFodo8QotahBzjBaHaPEKrYSyxWRxSBZPQlMrx2BxCJYoWeELwq/AYAkIlmAhvwKDJSBYomSFU3OHwGCJ3qJXrXrUEBbEsgfBEiUrXFC2GCwBwRIlK5wahAKDJSBYokSFUwNJYK4E5EqUqHBNLvMYLAHBEqvgFgGDJSBYIgnNHAKDJSBYchEa/RKDJSFYsmSFL6mgJSZLQrIkD25tMFkSkiUrslakY4yW7G2pZDBjYlMF0ZIVWuQiLjFbErIldTBjzJaEbMllMGiMloRoyWqHRc0dEqMlIVqyQouRCWO2JGRLLYKztMJwKQiXqpZDckQoDJeCcCke9ozpUpAuVfIiqLlHYbgUhEtVG3ZJRo3pUr09uwpHTWzbIV2qBIY81ChMl4J0qRIYkmqF6VKQLhXcvytMl4J0qSS4UVOYLgXp0sGZS2O4NIRLB/daGrOlIVuaB6d5jdnSkC0tglOmxnBpCJeWwWlPY7g0hEuHpy6N4dK9Q6EOYq2JcyGkSy+Dc4jGeGmIl14FpwGN+XJfVXcOryYvzPamvnu4u2tvnt/K/1WpvrRDzd2AvE3smen67X02sceQ+jOpP7l7trNT/cndpyo/37sLi+rb9s6i/F0ZWe9fDTrfunO9jFPq/mPGy6BT4VEq4DWmTkd1Oi5f7vK3+8EYXe8N29TdZHfqK6/Mo+W6y1kvbS9ve2A9U5EsKPeU4zrGf/GoE7J711ZIxIbYCOXti2Kmfq3O0/WYFYtY3fa1I09IekJxMD+WV38BgoRXOMVqATsao2SJd6m9HvHi5HEJEy8xe3oe6zxu0DzVN62hzD0YpRs1Og6dJ1NQEHqldLOSiKuke+k2bV+pPbp3kb30vYmHx3GZBgj3wxRxSkOBLb3A4nh0/4XUaXgSLA6VNEuLbXtv73WqR52SrlN1pGR//ku8sJrlIw4Q7w0J47337FXNm1v5aM1Qz3pEi7gh4osWR/c3F0/RG3QisoyUjFdJqVyvRLLi5NZAzxsMYun0IhN2etSUxT0OZTMXRo6QVhZNXNzraunmBR03gqkgvfXJ8b2qP5grLHeRCzenSYeubHZErr2OW9IHV10vGOZkVRIpiwrlD93aqtnLuapJt5eTLnHZdH3cnEGA6S3KTtsVT8XB7iTRas884HncGlC/B9EtWdSK5YUrx6gGZ0uv/1QE6HZ/fkgPZpdm1uTu/v39PygGObgFPwAA"; \ No newline at end of file diff --git a/assets/style.css b/assets/style.css new file mode 100644 index 0000000..9d619a6 --- /dev/null +++ b/assets/style.css @@ -0,0 +1,1448 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +*:focus-visible, +.tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +footer > p { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} +a.tsd-anchor-link { + color: var(--color-text); +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; +} + +.tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; +} + +.tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-navigation .tsd-nav-link { + display: none; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation-section { + margin-left: 10px; +} +.tsd-page-navigation-section > summary { + padding: 0.25rem; +} +.tsd-page-navigation-section > div { + margin-left: 20px; +} +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; + vertical-align: text-top; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} +.tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; +} +.tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/classes/TSinjex.TSinjex.html b/classes/TSinjex.TSinjex.html new file mode 100644 index 0000000..06e2f2f --- /dev/null +++ b/classes/TSinjex.TSinjex.html @@ -0,0 +1,24 @@ +TSinjex | ts-injex - v0.0.9

TSInjex: Dependency Injection Container

+

Implements

Constructors

Properties

_dependencies: Map<string, IDependency> = ...
_instance: TSinjex

Methods

  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • deprecated: boolean = false

      If true, the dependency is deprecated => a warning +is logged when the dependency is resolved.

      +

    Returns void

  • Resolve a dependency

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency

      +
    • necessary: boolean = true

      If true, throws an error if the dependency is not found

      +

    Returns undefined | T

    The resolved dependency or undefined if the dependency is not found

    +
  • Type Parameters

    • T

    Parameters

    • identifier: string
    • dependency: T
    • deprecated: boolean = false

    Returns void

    ITSinjex.register

    +
  • Type Parameters

    • T

    Parameters

    • identifier: string
    • necessary: boolean = true

    Returns undefined | T

    ITSinjex.resolve

    +
diff --git a/classes/interfaces_Exceptions.DependencyResolutionError.html b/classes/interfaces_Exceptions.DependencyResolutionError.html new file mode 100644 index 0000000..41e7588 --- /dev/null +++ b/classes/interfaces_Exceptions.DependencyResolutionError.html @@ -0,0 +1,15 @@ +DependencyResolutionError | ts-injex - v0.0.9

Error class for dependency resolution errors in ITSinjex.

+

Hierarchy (view full)

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

Optional override for formatting stack traces

+
stackTraceLimit: number

Methods

  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • OptionalconstructorOpt: Function

    Returns void

diff --git a/classes/interfaces_Exceptions.TSinjexError.html b/classes/interfaces_Exceptions.TSinjexError.html new file mode 100644 index 0000000..60e3287 --- /dev/null +++ b/classes/interfaces_Exceptions.TSinjexError.html @@ -0,0 +1,14 @@ +TSinjexError | ts-injex - v0.0.9

General error class for ITSinjex interface.

+

Hierarchy (view full)

Constructors

Properties

message: string
name: string
stack?: string
prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)

Optional override for formatting stack traces

+
stackTraceLimit: number

Methods

  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • OptionalconstructorOpt: Function

    Returns void

diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000..cc12130 --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c1525b811a167671e9de1fa78aab9f5c0b61cef7 GIT binary patch literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 93.87% + Statements + 46/49 +
+ + +
+ 81.81% + Branches + 9/11 +
+ + +
+ 100% + Functions + 17/17 +
+ + +
+ 93.47% + Lines + 43/46 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
src +
+
85.71%18/2181.81%9/11100%6/684.21%16/19
src/__tests__ +
+
100%20/20100%0/0100%7/7100%19/19
src/helper +
+
100%2/2100%0/0100%2/2100%2/2
src/interfaces +
+
100%6/6100%0/0100%2/2100%6/6
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed68316eb3f65dec9063332d2f69bf3093bbfab GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc literal 0 HcmV?d00001 diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js new file mode 100644 index 0000000..2bb296a --- /dev/null +++ b/coverage/lcov-report/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov-report/src/TSinjex.ts.html b/coverage/lcov-report/src/TSinjex.ts.html new file mode 100644 index 0000000..342eed5 --- /dev/null +++ b/coverage/lcov-report/src/TSinjex.ts.html @@ -0,0 +1,397 @@ + + + + + + Code coverage report for src/TSinjex.ts + + + + + + + + + +
+
+

All files / src TSinjex.ts

+
+ +
+ 85.71% + Statements + 18/21 +
+ + +
+ 81.81% + Branches + 9/11 +
+ + +
+ 100% + Functions + 6/6 +
+ + +
+ 84.21% + Lines + 16/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +1051x +1x +  +  +  +  +  +  +  +1x +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +6x +1x +  +  +6x +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +2x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +3x +  +3x +1x +2x +  +  +  +2x +  +  +  +  +  +  +  +2x +  +  +  +  + 
import { ImplementsStatic } from './helper/ImplementsStatic';
+import { DependencyResolutionError } from './interfaces/Exceptions';
+import { IDependency } from './interfaces/IDependency';
+import { ITSinjex, ITSinjex_ } from './interfaces/ITSinjex';
+ 
+/**
+ * **TSInjex**: Dependency Injection Container
+ */
+@ImplementsStatic<ITSinjex_>()
+export class TSinjex implements ITSinjex {
+    private static _instance: TSinjex;
+    private readonly _dependencies = new Map<string, IDependency>();
+ 
+    /**
+     * Private constructor to prevent direct instantiation.
+     */
+    private constructor() {}
+ 
+    //#region IDIContainer_
+ 
+    /**
+     * Retrieves the singleton instance of DependencyRegistry.
+     * @returns The singleton instance.
+     */
+    public static getInstance(): ITSinjex {
+        if (this._instance == null) {
+            this._instance = new TSinjex();
+        }
+ 
+        return this._instance;
+    }
+ 
+    /**
+     * @inheritdoc
+     * @see {@link ITSinjex.register}
+     */
+    public static register<T>(
+        identifier: string,
+        dependency: T,
+        deprecated = false,
+    ): void {
+        (TSinjex.getInstance() as TSinjex)._dependencies.set(identifier, {
+            dependency: dependency,
+            deprecated: deprecated,
+        });
+    }
+ 
+    /**
+     * @inheritdoc
+     * @see {@link ITSinjex.resolve}
+     */
+    public static resolve<T>(
+        identifier: string,
+        necessary = true,
+    ): T | undefined {
+        return (TSinjex.getInstance() as TSinjex).resolve<T>(
+            identifier,
+            necessary,
+        );
+    }
+ 
+    //#endregion
+ 
+    //#region IDIContainer
+ 
+    /**
+     * @inheritdoc
+     */
+    public register<T>(
+        identifier: string,
+        dependency: T,
+        deprecated = false,
+    ): void {
+        this._dependencies.set(identifier, {
+            dependency: dependency,
+            deprecated: deprecated,
+        });
+    }
+ 
+    /**
+     * @inheritdoc
+     */
+    public resolve<T>(identifier: string, necessary = true): T | undefined {
+        const dependency = this._dependencies.get(identifier);
+ 
+        if (necessary && !dependency) {
+            throw new DependencyResolutionError(identifier);
+        } else Iif (!dependency) {
+            return undefined;
+        }
+ 
+        Iif (dependency.deprecated) {
+            // eslint-disable-next-line no-console
+            console.warn(`Dependency ${identifier} is deprecated`);
+ 
+            // Remove the deprecation warning; it should only be logged once.
+            dependency.deprecated = false;
+        }
+ 
+        return dependency.dependency as T;
+    }
+ 
+    //#endregion
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/__tests__/IDIContainer.spec.ts.html b/coverage/lcov-report/src/__tests__/IDIContainer.spec.ts.html new file mode 100644 index 0000000..6b45e0f --- /dev/null +++ b/coverage/lcov-report/src/__tests__/IDIContainer.spec.ts.html @@ -0,0 +1,223 @@ + + + + + + Code coverage report for src/__tests__/IDIContainer.spec.ts + + + + + + + + + +
+
+

All files / src/__tests__ IDIContainer.spec.ts

+
+ +
+ 100% + Statements + 20/20 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 7/7 +
+ + +
+ 100% + Lines + 19/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47  +  +  +  +  +  +  +1x +1x +  +  +1x +3x +  +  +1x +1x +1x +  +1x +  +  +1x +1x +  +  +1x +1x +1x +  +1x +  +  +1x +1x +  +  +1x +1x +  +1x +  +  +  +  +  + 
import { ITSinjex_, ITSinjex } from '../interfaces/ITSinjex';
+ 
+/**
+ * Test the implementation of a DIContainer
+ * @param Container The DIContainer implementation to test.
+ * Must implement {@link ITSinjex}, {@link ITSinjex_}
+ */
+export function test_IDIContainer(Container: ITSinjex_): void {
+    describe('IDIContainer Implementation Tests', () => {
+        let container: ITSinjex;
+ 
+        beforeEach(() => {
+            container = Container.getInstance();
+        });
+ 
+        it('should register and resolve a dependency', () => {
+            const identifier = 'myDependency';
+            const dependency = { value: 42 };
+ 
+            container.register(identifier, dependency);
+ 
+            const resolvedDependency =
+                container.resolve<typeof dependency>(identifier);
+            expect(resolvedDependency).toBe(dependency);
+        });
+ 
+        it('should register and resolve a dependency static', () => {
+            const identifier = 'myDependency';
+            const dependency = { value: 42 };
+ 
+            Container.register(identifier, dependency);
+ 
+            const resolvedDependency =
+                Container.resolve<typeof dependency>(identifier);
+            expect(resolvedDependency).toBe(dependency);
+        });
+ 
+        it('should throw an error when resolving a non-registered dependency static', () => {
+            const identifier = 'nonExistentDependency';
+ 
+            expect(() => Container.resolve<unknown>(identifier)).toThrow();
+        });
+ 
+        // Add more tests as necessary
+    });
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/__tests__/index.html b/coverage/lcov-report/src/__tests__/index.html new file mode 100644 index 0000000..645fcbe --- /dev/null +++ b/coverage/lcov-report/src/__tests__/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/__tests__ + + + + + + + + + +
+
+

All files src/__tests__

+
+ +
+ 100% + Statements + 20/20 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 7/7 +
+ + +
+ 100% + Lines + 19/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
IDIContainer.spec.ts +
+
100%20/20100%0/0100%7/7100%19/19
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/helper/ImplementsStatic.ts.html b/coverage/lcov-report/src/helper/ImplementsStatic.ts.html new file mode 100644 index 0000000..290a384 --- /dev/null +++ b/coverage/lcov-report/src/helper/ImplementsStatic.ts.html @@ -0,0 +1,109 @@ + + + + + + Code coverage report for src/helper/ImplementsStatic.ts + + + + + + + + + +
+
+

All files / src/helper ImplementsStatic.ts

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9  +  +  +  +  +1x +1x +  + 
/**
+ * Decorator to enforce static implementation of an interface.
+ * Warns on compile time if the interface is not implemented.
+ * @returns A decorator function
+ */
+export function ImplementsStatic<I>() {
+    return <T extends I>(constructor: T, ...args: unknown[]) => {};
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/helper/index.html b/coverage/lcov-report/src/helper/index.html new file mode 100644 index 0000000..5884492 --- /dev/null +++ b/coverage/lcov-report/src/helper/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/helper + + + + + + + + + +
+
+

All files src/helper

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
ImplementsStatic.ts +
+
100%2/2100%0/0100%2/2100%2/2
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/index.html b/coverage/lcov-report/src/index.html new file mode 100644 index 0000000..49f85de --- /dev/null +++ b/coverage/lcov-report/src/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src + + + + + + + + + +
+
+

All files src

+
+ +
+ 85.71% + Statements + 18/21 +
+ + +
+ 81.81% + Branches + 9/11 +
+ + +
+ 100% + Functions + 6/6 +
+ + +
+ 84.21% + Lines + 16/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
TSinjex.ts +
+
85.71%18/2181.81%9/11100%6/684.21%16/19
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/interfaces/Exceptions.ts.html b/coverage/lcov-report/src/interfaces/Exceptions.ts.html new file mode 100644 index 0000000..255e5c1 --- /dev/null +++ b/coverage/lcov-report/src/interfaces/Exceptions.ts.html @@ -0,0 +1,175 @@ + + + + + + Code coverage report for src/interfaces/Exceptions.ts + + + + + + + + + +
+
+

All files / src/interfaces Exceptions.ts

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31  +  +  +  +  +1x +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +1x +  +  + 
import { ITSinjex } from './ITSinjex';
+ 
+/**
+ * General error class for {@link ITSinjex} interface.
+ */
+export class TSinjexError extends Error {
+    /**
+     * Creates a new instance of {@link TSinjexError}
+     * @param message **The error message**
+     */
+    constructor(message: string) {
+        super(message);
+        this.name = 'TSInjex';
+    }
+}
+ 
+/**
+ * Error class for dependency resolution errors in {@link ITSinjex}.
+ * @see {@link ITSinjex.resolve}
+ */
+export class DependencyResolutionError extends TSinjexError {
+    /**
+     * Creates a new instance of {@link DependencyResolutionError}
+     * @param identifier **The identifier of the dependency**
+     */
+    constructor(identifier: string) {
+        super(`Dependency ${identifier} not found.`);
+        this.name = 'TSInjexResolutionError';
+    }
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/interfaces/index.html b/coverage/lcov-report/src/interfaces/index.html new file mode 100644 index 0000000..c1f1370 --- /dev/null +++ b/coverage/lcov-report/src/interfaces/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/interfaces + + + + + + + + + +
+
+

All files src/interfaces

+
+ +
+ 100% + Statements + 6/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 6/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Exceptions.ts +
+
100%6/6100%0/0100%2/2100%6/6
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 0000000..f1ec0bc --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,127 @@ +TN: +SF:src/TSinjex.ts +FN:17,(anonymous_0) +FN:25,(anonymous_1) +FN:37,(anonymous_2) +FN:52,(anonymous_3) +FN:69,(anonymous_4) +FN:83,(anonymous_5) +FNF:6 +FNH:6 +FNDA:1,(anonymous_0) +FNDA:6,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:2,(anonymous_3) +FNDA:1,(anonymous_4) +FNDA:3,(anonymous_5) +DA:1,1 +DA:2,1 +DA:10,1 +DA:12,1 +DA:26,6 +DA:27,1 +DA:30,6 +DA:42,1 +DA:56,2 +DA:74,1 +DA:84,3 +DA:86,3 +DA:87,1 +DA:88,2 +DA:89,0 +DA:92,2 +DA:94,0 +DA:97,0 +DA:100,2 +LF:19 +LH:16 +BRDA:26,0,0,1 +BRDA:40,1,0,1 +BRDA:54,2,0,2 +BRDA:72,3,0,1 +BRDA:83,4,0,1 +BRDA:86,5,0,1 +BRDA:86,5,1,2 +BRDA:86,6,0,3 +BRDA:86,6,1,3 +BRDA:88,7,0,0 +BRDA:92,8,0,0 +BRF:11 +BRH:9 +end_of_record +TN: +SF:src/__tests__/IDIContainer.spec.ts +FN:8,test_IDIContainer +FN:9,(anonymous_1) +FN:12,(anonymous_2) +FN:16,(anonymous_3) +FN:27,(anonymous_4) +FN:38,(anonymous_5) +FN:41,(anonymous_6) +FNF:7 +FNH:7 +FNDA:1,test_IDIContainer +FNDA:1,(anonymous_1) +FNDA:3,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:1,(anonymous_4) +FNDA:1,(anonymous_5) +FNDA:1,(anonymous_6) +DA:8,1 +DA:9,1 +DA:12,1 +DA:13,3 +DA:16,1 +DA:17,1 +DA:18,1 +DA:20,1 +DA:23,1 +DA:24,1 +DA:27,1 +DA:28,1 +DA:29,1 +DA:31,1 +DA:34,1 +DA:35,1 +DA:38,1 +DA:39,1 +DA:41,1 +LF:19 +LH:19 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/helper/ImplementsStatic.ts +FN:6,ImplementsStatic +FN:7,(anonymous_1) +FNF:2 +FNH:2 +FNDA:1,ImplementsStatic +FNDA:1,(anonymous_1) +DA:6,1 +DA:7,1 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/interfaces/Exceptions.ts +FN:11,(anonymous_0) +FN:26,(anonymous_1) +FNF:2 +FNH:2 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +DA:6,1 +DA:12,1 +DA:13,1 +DA:21,1 +DA:27,1 +DA:28,1 +LF:6 +LH:6 +BRF:0 +BRH:0 +end_of_record diff --git a/functions/decorators_Inject.Inject.html b/functions/decorators_Inject.Inject.html new file mode 100644 index 0000000..cb46618 --- /dev/null +++ b/functions/decorators_Inject.Inject.html @@ -0,0 +1,19 @@ +Inject | ts-injex - v0.0.9
  • A decorator to inject a dependency from a DI (Dependency Injection) container. +The dependency is lazily evaluated when the property is accessed for the first time. +This can help avoid issues like circular dependencies and not-found dependencies.

    +

    Type Parameters

    • T
    • U

    Parameters

    • identifier: string

      The identifier used to resolve the dependency from the DI container.

      +
    • Optionalinit: InitDelegate<T, U>

      An optional initializer function to transform the dependency before injection.

      +
    • necessary: boolean = true

      Indicates if the dependency is necessary.

      +
        +
      • If true, an error will be thrown if the dependency cannot be resolved.
      • +
      • If false, undefined will be returned if the dependency cannot be resolved.
      • +
      +

    Returns ((target: unknown, propertyKey: string | symbol) => void)

    A decorator function to be applied on the class property.

    +
      • (target, propertyKey): void
      • Parameters

        • target: unknown
        • propertyKey: string | symbol

        Returns void

    TSinjex

    +
    class MyClass {
    \@Inject<MyDependency>('MyDependencyIdentifier')
    private myDependency!: MyDependency;
    } +
    + +
    class MyClass {
    \@Inject('ILogger_', (x: ILogger_) => x.getLogger('Tags'), false)
    private _logger?: ILogger;
    } +
    + +
diff --git a/functions/decorators_Register.Register.html b/functions/decorators_Register.Register.html new file mode 100644 index 0000000..289384f --- /dev/null +++ b/functions/decorators_Register.Register.html @@ -0,0 +1,10 @@ +Register | ts-injex - v0.0.9
  • A decorator to register a class in the DI (Dependency Injection) container.

    +

    Type Parameters

    • TargetType extends (new (...args: unknown[]) => InstanceType<TargetType>)

      The type of the class to be registered.

      +

    Parameters

    • identifier: string

      The identifier used to register the class in the DI container.

      +
    • Optionaldeprecated: boolean

      If true, the dependency is deprecated => a warning +is logged when the dependency is resolved.

      +

    Returns ((constructor: TargetType, ...args: unknown[]) => void)

    A function that is applied as a decorator to the class.

    +
      • (constructor, ...args): void
      • Parameters

        Returns void

    \@Register('MyClassIdentifier')
    class MyClass {
    // ...
    } +
    + +
diff --git a/functions/decorators_RegisterInstance.RegisterInstance.html b/functions/decorators_RegisterInstance.RegisterInstance.html new file mode 100644 index 0000000..cc6354a --- /dev/null +++ b/functions/decorators_RegisterInstance.RegisterInstance.html @@ -0,0 +1,11 @@ +RegisterInstance | ts-injex - v0.0.9
  • A decorator to register an instance of a class in the DI (Dependency Injection) container. +The instance is created only when it is first needed (Lazy Initialization).

    +

    Type Parameters

    • TargetType extends (new (..._args: unknown[]) => InstanceType<TargetType>)

      The type of the class whose instance is to be registered.

      +

    Parameters

    • identifier: string

      The identifier used to register the instance in the DI container.

      +
    • Optionalinit: InitDelegate<TargetType & (new (..._args: unknown[]) => InstanceType<TargetType>), InstanceType<TargetType>>

      An optional initializer function which get the constructor of the class +as input and returns an instance of the class.

      +

    Returns ((constructor: TargetType, ...args: unknown[]) => void)

    A function that is applied as a decorator to the class.

    +
      • (constructor, ...args): void
      • Parameters

        Returns void

    \@RegisterInstance('MyClassInstanceIdentifier', arg1, arg2)
    class MyClass {
    // ...
    } +
    + +
diff --git a/functions/functions_register.register.html b/functions/functions_register.register.html new file mode 100644 index 0000000..5cb1efb --- /dev/null +++ b/functions/functions_register.register.html @@ -0,0 +1,13 @@ +register | ts-injex - v0.0.9

Register a dependency.

+

The identifier of the dependency.

+

The dependency to register.

+

If true, the dependency is deprecated => a warning +is logged when the dependency is resolved.

+
  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +

    Returns void

  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: true

      A warning is logged when the dependency is resolved.

      +

    Returns void

diff --git a/functions/functions_resolve.resolve.html b/functions/functions_resolve.resolve.html new file mode 100644 index 0000000..fe22dc4 --- /dev/null +++ b/functions/functions_resolve.resolve.html @@ -0,0 +1,15 @@ +resolve | ts-injex - v0.0.9

Resolve a dependency.

+

The identifier of the dependency.

+

If true, throws an error if the dependency is not found.

+

The resolved dependency or undefined if the dependency is not necessary +and not found, or throws an error if the dependency is necessary and not found.

+

A DependencyResolutionError if the dependency is not found and necessary.

+
  • Resolve a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +

    Returns T

    The resolved dependency.

    +

    A DependencyResolutionError if the dependency is not found.

    +
  • Resolve a dependency

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • necessary: false

      The dependency is not necessary.

      +

    Returns T | undefined

    The resolved dependency or undefined if the dependency is not found.

    +
diff --git a/functions/helper_ImplementsStatic.ImplementsStatic.html b/functions/helper_ImplementsStatic.ImplementsStatic.html new file mode 100644 index 0000000..184cbf1 --- /dev/null +++ b/functions/helper_ImplementsStatic.ImplementsStatic.html @@ -0,0 +1,4 @@ +ImplementsStatic | ts-injex - v0.0.9
  • Decorator to enforce static implementation of an interface. +Warns on compile time if the interface is not implemented.

    +

    Type Parameters

    • I

    Returns (<T>(constructor: T, ...args: unknown[]) => void)

    A decorator function

    +
      • <T>(constructor, ...args): void
      • Type Parameters

        • T

        Parameters

        • constructor: T
        • Rest...args: unknown[]

        Returns void

diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 0000000..84ac481 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1 @@ +ts-injex - v0.0.9
diff --git a/index.html b/index.html new file mode 100644 index 0000000..0d2d48f --- /dev/null +++ b/index.html @@ -0,0 +1,4 @@ +ts-injex - v0.0.9

ts-injex - v0.0.9

TSinjex

module.exports = {
setupFilesAfterEnv: ['./scripts/jest.setup.js'],
preset: 'ts-jest',
testEnvironment: 'node',
testMatch: ['**/__tests__/**/*.test.ts', '**/?(*.)+(test).ts'],
moduleDirectories: ['node_modules', 'src'],
moduleNameMapper: {
'^src/(.*)$': '<rootDir>/src/$1', // Map src to the source folder
'^ts-injex$': '<rootDir>/node_modules/ts-injex/src', // Map ts-injex to the source folder
},
transformIgnorePatterns: [
'node_modules/(?!ts-injex)' // **Dont** ignore ts-injex on preset `ts-jest`
],
}; +
+ +
diff --git a/interfaces/interfaces_IDependency.IDependency.html b/interfaces/interfaces_IDependency.IDependency.html new file mode 100644 index 0000000..566350b --- /dev/null +++ b/interfaces/interfaces_IDependency.IDependency.html @@ -0,0 +1,7 @@ +IDependency | ts-injex - v0.0.9

Dependency Entry Interface

+
interface IDependency {
    dependency: unknown;
    deprecated?: boolean;
}

Properties

Properties

dependency: unknown

The dependency itself

+
deprecated?: boolean

If true, the dependency is deprecated => a warning +is logged when the dependency is resolved

+
diff --git a/interfaces/interfaces_ITSinjex.ITSinjex.html b/interfaces/interfaces_ITSinjex.ITSinjex.html new file mode 100644 index 0000000..73f3eef --- /dev/null +++ b/interfaces/interfaces_ITSinjex.ITSinjex.html @@ -0,0 +1,30 @@ +ITSinjex | ts-injex - v0.0.9

TSInjex Interface

+
interface ITSinjex {
    register<T>(identifier: string, dependency: T, deprecated?: boolean): void;
    register<T>(identifier: string, dependency: T, deprecated?: true): void;
    register<T>(identifier: string, dependency: T, deprecated?: false): void;
    resolve<T>(identifier: string, necessary?: boolean): undefined | T;
    resolve<T>(identifier: string, necessary?: true): T;
    resolve<T>(identifier: string, necessary?: false): undefined | T;
}

Hierarchy (view full)

Implemented by

Methods

Methods

  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: boolean

      If true, the dependency is deprecated => a warning +is logged when the dependency is resolved.

      +

    Returns void

  • Register a deprecated dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: true

      A warning is logged when the dependency is resolved.

      +

    Returns void

  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: false

      No warning is logged when the dependency is resolved.

      +

    Returns void

  • Resolve a dependency

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency

      +
    • Optionalnecessary: boolean

      If true, throws an error if the dependency is not found

      +

    Returns undefined | T

    The resolved dependency or undefined if the dependency is not found

    +
  • Resolve a necessary dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • Optionalnecessary: true

      If true, throws an error if the dependency is not found.

      +

    Returns T

    The resolved dependency.

    +

    Error if the dependency is not found.

    +
  • Resolve a non necessary dependency

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency

      +
    • Optionalnecessary: false

      Not necessary, does not throw an error if the dependency is not found.

      +

    Returns undefined | T

    The resolved dependency or undefined if the dependency is not found

    +
diff --git a/interfaces/interfaces_ITSinjex.ITSinjexRegister.html b/interfaces/interfaces_ITSinjex.ITSinjexRegister.html new file mode 100644 index 0000000..b2dbd74 --- /dev/null +++ b/interfaces/interfaces_ITSinjex.ITSinjexRegister.html @@ -0,0 +1,16 @@ +ITSinjexRegister | ts-injex - v0.0.9

Register method for static and instance Dependency Injection Container.

+
interface ITSinjexRegister {
    register<T>(identifier: string, dependency: T, deprecated?: boolean): void;
    register<T>(identifier: string, dependency: T, deprecated?: true): void;
    register<T>(identifier: string, dependency: T, deprecated?: false): void;
}

Hierarchy (view full)

Methods

Methods

  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: boolean

      If true, the dependency is deprecated => a warning +is logged when the dependency is resolved.

      +

    Returns void

  • Register a deprecated dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: true

      A warning is logged when the dependency is resolved.

      +

    Returns void

  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: false

      No warning is logged when the dependency is resolved.

      +

    Returns void

diff --git a/interfaces/interfaces_ITSinjex.ITSinjexResolve.html b/interfaces/interfaces_ITSinjex.ITSinjexResolve.html new file mode 100644 index 0000000..5c7846d --- /dev/null +++ b/interfaces/interfaces_ITSinjex.ITSinjexResolve.html @@ -0,0 +1,16 @@ +ITSinjexResolve | ts-injex - v0.0.9

Resolve method for static and instance Dependency Injection Container.

+
interface ITSinjexResolve {
    resolve<T>(identifier: string, necessary?: boolean): undefined | T;
    resolve<T>(identifier: string, necessary?: true): T;
    resolve<T>(identifier: string, necessary?: false): undefined | T;
}

Hierarchy (view full)

Methods

Methods

  • Resolve a dependency

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency

      +
    • Optionalnecessary: boolean

      If true, throws an error if the dependency is not found

      +

    Returns undefined | T

    The resolved dependency or undefined if the dependency is not found

    +
  • Resolve a necessary dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • Optionalnecessary: true

      If true, throws an error if the dependency is not found.

      +

    Returns T

    The resolved dependency.

    +

    Error if the dependency is not found.

    +
  • Resolve a non necessary dependency

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency

      +
    • Optionalnecessary: false

      Not necessary, does not throw an error if the dependency is not found.

      +

    Returns undefined | T

    The resolved dependency or undefined if the dependency is not found

    +
diff --git a/interfaces/interfaces_ITSinjex.ITSinjex_.html b/interfaces/interfaces_ITSinjex.ITSinjex_.html new file mode 100644 index 0000000..31d0bd2 --- /dev/null +++ b/interfaces/interfaces_ITSinjex.ITSinjex_.html @@ -0,0 +1,32 @@ +ITSinjex_ | ts-injex - v0.0.9

Static TSInjex Interface

+
interface ITSinjex_ {
    getInstance(): ITSinjex;
    register<T>(identifier: string, dependency: T, deprecated?: boolean): void;
    register<T>(identifier: string, dependency: T, deprecated?: true): void;
    register<T>(identifier: string, dependency: T, deprecated?: false): void;
    resolve<T>(identifier: string, necessary?: boolean): undefined | T;
    resolve<T>(identifier: string, necessary?: true): T;
    resolve<T>(identifier: string, necessary?: false): undefined | T;
}

Hierarchy (view full)

Methods

  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: boolean

      If true, the dependency is deprecated => a warning +is logged when the dependency is resolved.

      +

    Returns void

  • Register a deprecated dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: true

      A warning is logged when the dependency is resolved.

      +

    Returns void

  • Register a dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • dependency: T

      The dependency to register.

      +
    • Optionaldeprecated: false

      No warning is logged when the dependency is resolved.

      +

    Returns void

  • Resolve a dependency

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency

      +
    • Optionalnecessary: boolean

      If true, throws an error if the dependency is not found

      +

    Returns undefined | T

    The resolved dependency or undefined if the dependency is not found

    +
  • Resolve a necessary dependency.

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency.

      +
    • Optionalnecessary: true

      If true, throws an error if the dependency is not found.

      +

    Returns T

    The resolved dependency.

    +

    Error if the dependency is not found.

    +
  • Resolve a non necessary dependency

    +

    Type Parameters

    • T

    Parameters

    • identifier: string

      The identifier of the dependency

      +
    • Optionalnecessary: false

      Not necessary, does not throw an error if the dependency is not found.

      +

    Returns undefined | T

    The resolved dependency or undefined if the dependency is not found

    +
diff --git a/modules/TSinjex.html b/modules/TSinjex.html new file mode 100644 index 0000000..95b2b59 --- /dev/null +++ b/modules/TSinjex.html @@ -0,0 +1,2 @@ +TSinjex | ts-injex - v0.0.9

Module TSinjex

Index

Classes

diff --git a/modules/decorators_Inject.html b/modules/decorators_Inject.html new file mode 100644 index 0000000..92b7eca --- /dev/null +++ b/modules/decorators_Inject.html @@ -0,0 +1,2 @@ +decorators/Inject | ts-injex - v0.0.9

Module decorators/Inject

Index

Functions

diff --git a/modules/decorators_Register.html b/modules/decorators_Register.html new file mode 100644 index 0000000..03f831d --- /dev/null +++ b/modules/decorators_Register.html @@ -0,0 +1,2 @@ +decorators/Register | ts-injex - v0.0.9

Module decorators/Register

Index

Functions

diff --git a/modules/decorators_RegisterInstance.html b/modules/decorators_RegisterInstance.html new file mode 100644 index 0000000..b9c8489 --- /dev/null +++ b/modules/decorators_RegisterInstance.html @@ -0,0 +1,2 @@ +decorators/RegisterInstance | ts-injex - v0.0.9

Module decorators/RegisterInstance

Index

Functions

diff --git a/modules/functions_register.html b/modules/functions_register.html new file mode 100644 index 0000000..c6a20fe --- /dev/null +++ b/modules/functions_register.html @@ -0,0 +1,2 @@ +functions/register | ts-injex - v0.0.9

Module functions/register

Index

Functions

diff --git a/modules/functions_resolve.html b/modules/functions_resolve.html new file mode 100644 index 0000000..b56c776 --- /dev/null +++ b/modules/functions_resolve.html @@ -0,0 +1,2 @@ +functions/resolve | ts-injex - v0.0.9

Module functions/resolve

Index

Functions

diff --git a/modules/helper_ImplementsStatic.html b/modules/helper_ImplementsStatic.html new file mode 100644 index 0000000..9bfa26d --- /dev/null +++ b/modules/helper_ImplementsStatic.html @@ -0,0 +1,2 @@ +helper/ImplementsStatic | ts-injex - v0.0.9

Module helper/ImplementsStatic

Index

Functions

diff --git a/modules/index.html b/modules/index.html new file mode 100644 index 0000000..e2a2640 --- /dev/null +++ b/modules/index.html @@ -0,0 +1,14 @@ +index | ts-injex - v0.0.9

Module index

References

Re-exports ForceConstructor
Re-exports GenericConstructor
Re-exports ITSinjex
Re-exports ITSinjexRegister
Re-exports ITSinjexResolve
Re-exports ITSinjex_
Re-exports InitDelegate
Re-exports Inject
Re-exports Register
Re-exports RegisterInstance
Re-exports TSinjex
Re-exports register
Re-exports resolve
diff --git a/modules/interfaces_Exceptions.html b/modules/interfaces_Exceptions.html new file mode 100644 index 0000000..b4db144 --- /dev/null +++ b/modules/interfaces_Exceptions.html @@ -0,0 +1,3 @@ +interfaces/Exceptions | ts-injex - v0.0.9
diff --git a/modules/interfaces_IDependency.html b/modules/interfaces_IDependency.html new file mode 100644 index 0000000..f0546c5 --- /dev/null +++ b/modules/interfaces_IDependency.html @@ -0,0 +1,2 @@ +interfaces/IDependency | ts-injex - v0.0.9

Module interfaces/IDependency

Index

Interfaces

diff --git a/modules/interfaces_ITSinjex.html b/modules/interfaces_ITSinjex.html new file mode 100644 index 0000000..eef8e00 --- /dev/null +++ b/modules/interfaces_ITSinjex.html @@ -0,0 +1,5 @@ +interfaces/ITSinjex | ts-injex - v0.0.9
diff --git a/modules/types_GenericContructor.html b/modules/types_GenericContructor.html new file mode 100644 index 0000000..934208c --- /dev/null +++ b/modules/types_GenericContructor.html @@ -0,0 +1,3 @@ +types/GenericContructor | ts-injex - v0.0.9
diff --git a/modules/types_InitDelegate.html b/modules/types_InitDelegate.html new file mode 100644 index 0000000..62d44d1 --- /dev/null +++ b/modules/types_InitDelegate.html @@ -0,0 +1,2 @@ +types/InitDelegate | ts-injex - v0.0.9

Module types/InitDelegate

Index

Type Aliases

diff --git a/types/types_GenericContructor.ForceConstructor.html b/types/types_GenericContructor.ForceConstructor.html new file mode 100644 index 0000000..4c03418 --- /dev/null +++ b/types/types_GenericContructor.ForceConstructor.html @@ -0,0 +1,3 @@ +ForceConstructor | ts-injex - v0.0.9
ForceConstructor<T>: (new (...args: unknown[]) => T)

Force generic constructor type. +This type is used to force a class to be a constructor.

+

Type Parameters

  • T
diff --git a/types/types_GenericContructor.GenericConstructor.html b/types/types_GenericContructor.GenericConstructor.html new file mode 100644 index 0000000..bf7f175 --- /dev/null +++ b/types/types_GenericContructor.GenericConstructor.html @@ -0,0 +1,2 @@ +GenericConstructor | ts-injex - v0.0.9
GenericConstructor<T>: (new (...args: ConstructorParameters<T>) => T)

Generic constructor type.

+

Type Parameters

  • T extends (abstract new (...args: unknown[]) => InstanceType<T>)
diff --git a/types/types_InitDelegate.InitDelegate.html b/types/types_InitDelegate.InitDelegate.html new file mode 100644 index 0000000..9ad6804 --- /dev/null +++ b/types/types_InitDelegate.InitDelegate.html @@ -0,0 +1,7 @@ +InitDelegate | ts-injex - v0.0.9

Type Alias InitDelegate<T, U>

InitDelegate<T, U>: ((x: T) => U)

A function type representing an initializer that transforms an input of type T +into an output of type U.

+

Type Parameters

  • T

    The type of the input parameter.

    +
  • U

    The type of the output parameter.

    +

Type declaration

    • (x): U
    • Parameters

      • x: T

        The input parameter of type T.

        +

      Returns U

      The transformed output of type U.

      +