diff --git a/docs/typedoc/assets/icons.js b/docs/typedoc/assets/icons.js index b79c9e8..e88e8ca 100644 --- a/docs/typedoc/assets/icons.js +++ b/docs/typedoc/assets/icons.js @@ -1,15 +1,18 @@ -(function(svg) { - svg.innerHTML = ``; - svg.style.display = 'none'; - if (location.protocol === 'file:') { - if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); - else updateUseElements() - function updateUseElements() { - document.querySelectorAll('use').forEach(el => { - if (el.getAttribute('href').includes('#icon-')) { - el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); - } - }); - } +(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(); } -})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/docs/typedoc/assets/icons.svg b/docs/typedoc/assets/icons.svg index 7dead61..e371b8b 100644 --- a/docs/typedoc/assets/icons.svg +++ b/docs/typedoc/assets/icons.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/typedoc/assets/main.js b/docs/typedoc/assets/main.js index d6f1388..21a5d74 100644 --- a/docs/typedoc/assets/main.js +++ b/docs/typedoc/assets/main.js @@ -1,8 +1,9 @@ "use strict"; -"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(console.log("Show page"),document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){console.log("Scorlling");let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ve(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ve(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ne(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +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.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); /*! Bundled license information: lunr/lunr.js: diff --git a/docs/typedoc/assets/navigation.js b/docs/typedoc/assets/navigation.js index ba74d35..afe12ab 100644 --- a/docs/typedoc/assets/navigation.js +++ b/docs/typedoc/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA5WXTXPbIBCG/4ty9bSJ637EN03qTjxtOpmmOWVyIAJbtBK4gNyknfz3IoMDghWoNw3vvg8gdhfp7m+hyKMqlsVKCC6+P+2ILGbFDqlaj7Ucdw2Rr532qlZtowN+UoaL5WJWVDVtsCCsWN69oK6Iqjn+ylXZNPw3wb0zCz0ZcdmZzs4Xb04Xz7OXSb6RXx2R6kDJw4PoMegtQ51ehaB/pq4acIzDZbfbcaFCtupxPjmIHL70+en5+7O3cw98cF4ihhvKtg676VilKGcD9CB2CH63eL73qJ+RwORxJCM8cVJKXAi9FUTkWpE23LjP8uNy23a+FNE953g1lUofJCorhElLK2SsuSUnbLkZdw1iRK6k6jDlMjXJMDLHFUR2LWH9y6SKZ186EA7P4KeHKdc4M8z4pKQodeWEmKpBUjqMCxkSz+YfEmsJIGOA+0E72epzFPwKKaIPcyTtoahJW7VGJKzzP9AngHesxdiIowOj8NjBWSJXLr/CFa0ZVZNmgoz5VCv3RKAtKfEesYrExzzUU4liUlzGCCukvKuGtpQBJ3hkBAEplqm+GGHGU84vfEtZbDwMp3zXgv8g5jqI3Z6YYown8REURqRp0AXuSE5NUW6qmvQFFBOOStKt+ylh6kK/dgDgxAmMNdvwUUYvTmBc6y4PHI+vpijl3pYAdCcOxFyBl4dI6N5wSp7hVyXUIuKIHHN4UIYSnw/gM+UNLcKTcpSPFEWXdD+W9XH9WUAbyj9x0erCiLYQBeSIl1zXGOUhxw5PcUcbOQzmnFHhGy9Y7YA7+V9gUUBMjhuUjQEB1QI4Bd8Q6fcfa7bjE/y2cd50D/0TtCUwKEc+di8oZX0ty+FPt3gbNFmLcVKW4toYtMNAztHG/7IMLtSzPElEX8Z6CRQ1USYE8sj3xj/Y7cUJCg8AAA==" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA5WX0XLUIBSG3yW97Whbt9X2LlPXaUerHWuvOr3AwO6iCaxA1lan7y4JZCFwAvFuh/P/HxAO57APfwtFnlRxUSyF4OLb85bI4rDYIrXRYw3HbU3kaxd7tVFNrQU/KcPFxeKwqDa0xoKw4uJhj7ohasPxZ67Kuua/Ce6cWejBhMvOdHy+eHO0eDncT/KV/GqJVD0lDw/UU9B7hlq9CkH/zF014JiGy3a75UKFbNXhfHKgHH/0k6Pzt8enJx64d14hhmvK1g67almlKGcj9Eg7Bp8tXh496kckMHmayAgvOCslLoXeCiLyWpEm3LjP8nW5bTtfiuh+53gbKpU+SFRWCJOGVshYc0tO2HIzbmvEiFxK1WLKZWqSsTLHFUS2DWHdx6SKZz86IIdn8NPDXNc4M8z4rKQo9c0JMVWNpHQYJxkTj0/eJdYSQKYAj6NystbnKPgNUkQf5kTaQ6pZW7VGJKzzP9AHgHeqxFjF4MAoPHZwlsiVy69wRdeMqlkzQcZ8qpU7ItCalHiHWEXiYx7HU4lySZhekowRNpD00qoGrf140tlfLMhqAinvsqYNZUDeDIxAkGKZOx8jzHjK+YmvKYuN/XDK92VFhHKVMSYEghTrVvC1QA2Sk4cYKjK0H8S0RxA0BFOM6Us9gEJFmgY9aBzJRVOUu2pDuoISE4ZI0q37i/52lzohAIALzmBcsxWfZHTBGYxb3fWA4/Gj+du+xG2FFN15q6FMn8YKVfuLv9cExej0LCwAMKSLpKz2+E22g4iRIoUakhykDMEUoNzZQgm9nEbBXBsoeyX0unCRPMOv3VAjiRU55jh9DSXOWsBnyjG0CC+Uo7ynKHrKdWNZH9cVkNaUf+Ci0dkQbSES5IhXXFceykOOHZ7jjjbSD+acUTk0XrAGAu7kv0eLAjQ5btBqbEENybAqxw4KlUEB9QlwCr4i0q/41mzHZ/htq7prv3e/oM8FinLkoV9A18GPZTn8+R6vg7ZmMS6UpbjGAe0wCOdo0//zDS6MZ3mSiK5E6CVQVEeZEIQnXrz/AOiZ7fiMEQAA" \ No newline at end of file diff --git a/docs/typedoc/assets/search.js b/docs/typedoc/assets/search.js index 2564d9a..9b7910b 100644 --- a/docs/typedoc/assets/search.js +++ b/docs/typedoc/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/typedoc/assets/style.css b/docs/typedoc/assets/style.css index 778b949..9d619a6 100644 --- a/docs/typedoc/assets/style.css +++ b/docs/typedoc/assets/style.css @@ -10,6 +10,7 @@ --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; @@ -35,6 +36,7 @@ --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; @@ -50,6 +52,7 @@ --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; @@ -75,6 +78,7 @@ --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; @@ -92,6 +96,7 @@ --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); @@ -116,6 +121,7 @@ --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); @@ -134,6 +140,7 @@ --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); @@ -158,6 +165,7 @@ --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); @@ -183,6 +191,7 @@ body { --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); @@ -207,6 +216,7 @@ body { --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); @@ -223,6 +233,7 @@ body { --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); @@ -247,11 +258,17 @@ body { --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; @@ -266,16 +283,6 @@ h6 { line-height: 1.2; } -h1 > a:not(.link), -h2 > a:not(.link), -h3 > a:not(.link), -h4 > a:not(.link), -h5 > a:not(.link), -h6 > a:not(.link) { - text-decoration: none; - color: var(--color-text); -} - h1 { font-size: 1.875rem; margin: 0.67rem 0; @@ -306,10 +313,6 @@ h6 { margin: 2.33rem 0; } -.uppercase { - text-transform: uppercase; -} - dl, menu, ol, @@ -333,7 +336,7 @@ footer { padding-bottom: 1rem; max-height: 3.5rem; } -.tsd-generator { +footer > p { margin: 0 1em; } @@ -421,6 +424,9 @@ a.external[target="_blank"] { background-repeat: no-repeat; padding-right: 13px; } +a.tsd-anchor-link { + color: var(--color-text); +} code, pre { @@ -580,13 +586,13 @@ dl.tsd-comment-tag-group p { } .tsd-filter-input { display: flex; - width: fit-content; width: -moz-fit-content; + width: fit-content; align-items: center; - user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; + user-select: none; cursor: pointer; } .tsd-filter-input input[type="checkbox"] { @@ -609,11 +615,8 @@ dl.tsd-comment-tag-group p { Don't remove unless you know what you're doing. */ opacity: 0.99; } -.tsd-filter-input input[type="checkbox"]:focus + svg { - transform: scale(0.95); -} -.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { - transform: scale(1); +.tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); } .tsd-checkbox-background { fill: var(--color-accent); @@ -630,13 +633,18 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { stroke: var(--color-accent); } -.tsd-theme-toggle { - padding-top: 0.75rem; +.settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; } -.tsd-theme-toggle > h4 { - display: inline; - vertical-align: middle; - margin-right: 0.75rem; + +.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 { @@ -769,6 +777,9 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { padding: 0; max-width: 100%; } +.tsd-navigation .tsd-nav-link { + display: none; +} .tsd-nested-navigation { margin-left: 3rem; } @@ -782,6 +793,15 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { 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; } @@ -812,10 +832,10 @@ a.tsd-index-link { } .tsd-accordion-summary, .tsd-accordion-summary a { - user-select: none; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; + user-select: none; cursor: pointer; } @@ -828,8 +848,9 @@ a.tsd-index-link { padding-top: 0; padding-bottom: 0; } -.tsd-index-accordion .tsd-accordion-summary > svg { +.tsd-accordion .tsd-accordion-summary > svg { margin-left: 0.25rem; + vertical-align: text-top; } .tsd-index-content > :not(:first-child) { margin-top: 0.75rem; @@ -877,7 +898,7 @@ a.tsd-index-link { } .tsd-panel-group { - margin: 4rem 0; + margin: 2rem 0; } .tsd-panel-group.tsd-index-group { margin: 2rem 0; @@ -885,6 +906,9 @@ a.tsd-index-link { .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; @@ -1034,6 +1058,12 @@ a.tsd-index-link { 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; } @@ -1347,6 +1377,12 @@ img { .has-menu .tsd-navigation { max-height: 100%; } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } } /* one sidebar */ diff --git a/docs/typedoc/classes/AverageAdvance.html b/docs/typedoc/classes/AverageAdvance.html index 07e24a8..1c63523 100644 --- a/docs/typedoc/classes/AverageAdvance.html +++ b/docs/typedoc/classes/AverageAdvance.html @@ -1,15 +1,14 @@ -AverageAdvance | @carlosnunezmx/aru

Get the student average advance

-

Hierarchy (view full)

Constructors

constructor +AverageAdvance | @carlosnunezmx/aru

Get the student average advance

+

Hierarchy (view full)

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:studentCode/:programID/:initialAcademicTerm/avances-promedio"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:studentCode/:programID/:initialAcademicTerm/avances-promedio"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/Centros.html b/docs/typedoc/classes/Centros.html new file mode 100644 index 0000000..29a75d5 --- /dev/null +++ b/docs/typedoc/classes/Centros.html @@ -0,0 +1,14 @@ +Centros | @carlosnunezmx/aru

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

+

Hierarchy (view full)

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-programas/v1/centros"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/Ciclos.html b/docs/typedoc/classes/Ciclos.html new file mode 100644 index 0000000..c0ecb96 --- /dev/null +++ b/docs/typedoc/classes/Ciclos.html @@ -0,0 +1,14 @@ +Ciclos | @carlosnunezmx/aru

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

+

Hierarchy (view full)

Constructors

Properties

Auth: Login
AuthToken: string
Props?: string
Route: string = "https://micro-leo.udg.mx/esc-programas/v1/:carrera/ciclos"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/Credits.html b/docs/typedoc/classes/Credits.html index 4060029..c0ec6c2 100644 --- a/docs/typedoc/classes/Credits.html +++ b/docs/typedoc/classes/Credits.html @@ -1,15 +1,14 @@ -Credits | @carlosnunezmx/aru

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

-

Hierarchy (view full)

Constructors

constructor +Credits | @carlosnunezmx/aru

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

+

Hierarchy (view full)

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:studentCode/:programID/:initialAcademicTerm/creditos"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false
props?: CreditsInit

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:studentCode/:programID/:initialAcademicTerm/creditos"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/EliminarMateria.html b/docs/typedoc/classes/EliminarMateria.html index 1c833f6..cb11e16 100644 --- a/docs/typedoc/classes/EliminarMateria.html +++ b/docs/typedoc/classes/EliminarMateria.html @@ -1,5 +1,5 @@ -EliminarMateria | @carlosnunezmx/aru

Delete a subject from the student's schedule by NRC

-

Hierarchy (view full)

Constructors

constructor +EliminarMateria | @carlosnunezmx/aru

Delete a subject from the student's schedule by NRC

+

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

Auth: Login
AuthToken: string
Route: string = "https://micro-leo.udg.mx/esc-registro/v1/cursos"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Route: string = "https://micro-leo.udg.mx/esc-registro/v1/cursos"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/Kardex.html b/docs/typedoc/classes/Kardex.html index 83cf5fe..4d9815c 100644 --- a/docs/typedoc/classes/Kardex.html +++ b/docs/typedoc/classes/Kardex.html @@ -1,5 +1,5 @@ -Kardex | @carlosnunezmx/aru

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

-

Hierarchy (view full)

Constructors

constructor +Kardex | @carlosnunezmx/aru

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

+

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/kardex"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false
props?: KardexInit

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/kardex"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false
props?: KardexInit

Methods

diff --git a/docs/typedoc/classes/Login.html b/docs/typedoc/classes/Login.html index 7bc40e3..e88d294 100644 --- a/docs/typedoc/classes/Login.html +++ b/docs/typedoc/classes/Login.html @@ -1,23 +1,21 @@ -Login | @carlosnunezmx/aru

Used for login into the Leo, it's required for most of the methods. +Login | @carlosnunezmx/aru

Used for login into the Leo, it's required for most of the methods. Use the method exec() before use for another class constructor

-

Hierarchy (view full)

Constructors

Hierarchy (view full)

Constructors

Properties

AuthToken: string
Cache?: Cache
Password: string
Route: string = "https://micro-leo.udg.mx/login/v1/validar"
StudentCode?: string
Token: TokenType = ...
User: string
isTokenUsed: boolean = false
options?: Partial<Options>

Methods

  • Execute the login method, it's required for most of the methods. +setToken +

Constructors

Properties

AuthToken: string
Cache?: Cache
Route: string = "https://micro-leo.udg.mx/login/v1/validar"
StudentCode?: string
Token: TokenType = ...
isTokenUsed: boolean = false

Methods

  • Execute the login method, it's required for most of the methods. This will load the token and the student code on the class

    -

    Parameters

    • student: string

    Returns undefined | Plans

  • Get the token and its vigency

    -

    Returns Required<TokenType>

\ No newline at end of file +

Parameters

  • student: string

Returns undefined | Plans

  • Get the token and its vigency

    +

    Returns Required<TokenType>

diff --git a/docs/typedoc/classes/Method.AuthMethod.html b/docs/typedoc/classes/Method.AuthMethod.html index 9995ef2..5803820 100644 --- a/docs/typedoc/classes/Method.AuthMethod.html +++ b/docs/typedoc/classes/Method.AuthMethod.html @@ -1,5 +1,5 @@ -AuthMethod | @carlosnunezmx/aru

Class AuthMethod<Return, initType>Abstract

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

-

Type Parameters

  • Return = void
  • initType = undefined

Hierarchy (view full)

Constructors

constructor +AuthMethod | @carlosnunezmx/aru

Class AuthMethod<Return, initType>Abstract

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

+

Type Parameters

  • Return = void
  • initType = undefined

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

Auth: Login
AuthToken: string
Props?: initType
Route: string = ""
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: initType
Route: string = ""
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/Method.Method.html b/docs/typedoc/classes/Method.Method.html index 41fdbea..3479ae7 100644 --- a/docs/typedoc/classes/Method.Method.html +++ b/docs/typedoc/classes/Method.Method.html @@ -1,10 +1,9 @@ -Method | @carlosnunezmx/aru

Use this class to create a new method, it contains the AuthToken, remember to call the exec method before using the AuthToken by super.exec()

-

Hierarchy (view full)

Constructors

constructor +Method | @carlosnunezmx/aru

Use this class to create a new method, it contains the AuthToken, remember to call the exec method before using the AuthToken by super.exec()

+

Hierarchy (view full)

Constructors

Properties

AuthToken: string
AuthTokenGenerator: LeoAuth = ...
Route: string = ""
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

AuthToken: string
Route: string = ""
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/OfertaAcademica.html b/docs/typedoc/classes/OfertaAcademica.html new file mode 100644 index 0000000..c4cb08f --- /dev/null +++ b/docs/typedoc/classes/OfertaAcademica.html @@ -0,0 +1,14 @@ +OfertaAcademica | @carlosnunezmx/aru

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

+

Hierarchy (view full)

Constructors

Properties

Auth: Login
AuthToken: string
Route: string = "https://micro-leo.udg.mx/esc-ofertas/v1/horas-nrc"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/ProgramasCentros.html b/docs/typedoc/classes/ProgramasCentros.html new file mode 100644 index 0000000..124cfa2 --- /dev/null +++ b/docs/typedoc/classes/ProgramasCentros.html @@ -0,0 +1,14 @@ +ProgramasCentros | @carlosnunezmx/aru

Use this class to create a new method that requires a login, it contains the AuthToken and Token, remember to call the exec method before using the AuthToken by super.exec()

+

Hierarchy (view full)

Constructors

Properties

Auth: Login
AuthToken: string
Props?: string
Route: string = "https://micro-leo.udg.mx/esc-programas/v1/:centro/programas-centros"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/Projections.html b/docs/typedoc/classes/Projections.html index a9be9cc..353c041 100644 --- a/docs/typedoc/classes/Projections.html +++ b/docs/typedoc/classes/Projections.html @@ -1,5 +1,5 @@ -Projections | @carlosnunezmx/aru

Get the student projection, this contains the pending subjects to take

-

Hierarchy (view full)

Constructors

constructor +Projections | @carlosnunezmx/aru

Get the student projection, this contains the pending subjects to take

+

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

Auth: Login
AuthToken: string
Props?: ProjectionInit
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:id-alumno/:id-programa/:id-ciclo-admision/proyecciones"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: ProjectionInit
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:id-alumno/:id-programa/:id-ciclo-admision/proyecciones"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/RegistrarMateria.html b/docs/typedoc/classes/RegistrarMateria.html index 2c1ff3b..56661bc 100644 --- a/docs/typedoc/classes/RegistrarMateria.html +++ b/docs/typedoc/classes/RegistrarMateria.html @@ -1,5 +1,5 @@ -RegistrarMateria | @carlosnunezmx/aru

Add a subject from the student's schedule by NRC

-

Hierarchy (view full)

Constructors

constructor +RegistrarMateria | @carlosnunezmx/aru

Add a subject from the student's schedule by NRC

+

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

Auth: Login
AuthToken: string
Route: string = "https://micro-leo.udg.mx/esc-registro/v1/"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Route: string = "https://micro-leo.udg.mx/esc-registro/v1/"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/RequestError.html b/docs/typedoc/classes/RequestError.html index 98a7566..0b42332 100644 --- a/docs/typedoc/classes/RequestError.html +++ b/docs/typedoc/classes/RequestError.html @@ -1,6 +1,6 @@ -RequestError | @carlosnunezmx/aru

Class RequestError<BodyType>

Class for handle http requests error by throwing this class

-

Todo

Documentar todos los errores

-

Type Parameters

  • BodyType = null

Hierarchy

  • Error
    • RequestError

Constructors

constructor +RequestError | @carlosnunezmx/aru

Class RequestError<BodyType>

Class for handle http requests error by throwing this class

+

Documentar todos los errores

+

Type Parameters

  • BodyType = null

Hierarchy

  • Error
    • RequestError

Constructors

Properties

Response body cause? @@ -13,9 +13,9 @@ stackTraceLimit

Methods

Constructors

Properties

Response: Response
body: null | Promise<BodyType> = null
cause?: unknown
message: string
name: string
stack?: string
status: number
url: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

-

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    -

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

  • Create .stack property on a target object

    -

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file +

Constructors

Properties

Response: Response
body: null | Promise<BodyType> = null
cause?: unknown
message: string
name: string
stack?: string
status: number
url: 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

  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • OptionalconstructorOpt: Function

    Returns void

diff --git a/docs/typedoc/classes/Schedule.html b/docs/typedoc/classes/Schedule.html index 8676908..a5426c3 100644 --- a/docs/typedoc/classes/Schedule.html +++ b/docs/typedoc/classes/Schedule.html @@ -1,15 +1,14 @@ -Schedule | @carlosnunezmx/aru

Get the student schedule, this contains the student schedule and the teacher info

-

Hierarchy (view full)

Constructors

constructor +Schedule | @carlosnunezmx/aru

Get the student schedule, this contains the student schedule and the teacher info

+

Hierarchy (view full)

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:studentCode/:programID/:academicTerm/horarios"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:studentCode/:programID/:academicTerm/horarios"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/StudentCard.html b/docs/typedoc/classes/StudentCard.html index c6e558f..49f86a3 100644 --- a/docs/typedoc/classes/StudentCard.html +++ b/docs/typedoc/classes/StudentCard.html @@ -1,15 +1,14 @@ -StudentCard | @carlosnunezmx/aru

Get the virtual student card info, this contains student info, and rectory info

-

Hierarchy (view full)

Constructors

constructor +StudentCard | @carlosnunezmx/aru

Get the virtual student card info, this contains student info, and rectory info

+

Hierarchy (view full)

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://soyudg.udg.mx/alumnos/show?encryptedId=:studentCode"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://soyudg.udg.mx/alumnos/show?encryptedId=:studentCode"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/StudentInfo.html b/docs/typedoc/classes/StudentInfo.html index 5908f49..fddb1f5 100644 --- a/docs/typedoc/classes/StudentInfo.html +++ b/docs/typedoc/classes/StudentInfo.html @@ -1,5 +1,5 @@ -StudentInfo | @carlosnunezmx/aru

Get the student info, photo and signature

-

Hierarchy (view full)

Constructors

constructor +StudentInfo | @carlosnunezmx/aru

Get the student info, photo and signature

+

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/sii-alumnos/v1/:studentCode/datos-personales"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/sii-alumnos/v1/:studentCode/datos-personales"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/classes/StudentPlans.html b/docs/typedoc/classes/StudentPlans.html index 5556ae7..bf25e1d 100644 --- a/docs/typedoc/classes/StudentPlans.html +++ b/docs/typedoc/classes/StudentPlans.html @@ -1,5 +1,5 @@ -StudentPlans | @carlosnunezmx/aru

Get the student available plans

-

Hierarchy (view full)

Constructors

constructor +StudentPlans | @carlosnunezmx/aru

Get the student available plans

+

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:studentCode/planes-estudios"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

\ No newline at end of file +

Constructors

Properties

Auth: Login
AuthToken: string
Props?: undefined
Route: string = "https://micro-leo.udg.mx/esc-alumnos/v1/:studentCode/planes-estudios"
ShouldUpCache: boolean = true
isTokenUsed: boolean = false

Methods

diff --git a/docs/typedoc/functions/ErrorTypes.ErrorHandling.html b/docs/typedoc/functions/ErrorTypes.ErrorHandling.html index c26c99e..0e49fe1 100644 --- a/docs/typedoc/functions/ErrorTypes.ErrorHandling.html +++ b/docs/typedoc/functions/ErrorTypes.ErrorHandling.html @@ -1 +1 @@ -ErrorHandling | @carlosnunezmx/aru
\ No newline at end of file +ErrorHandling | @carlosnunezmx/aru
diff --git a/docs/typedoc/hierarchy.html b/docs/typedoc/hierarchy.html index 829390f..e5efa55 100644 --- a/docs/typedoc/hierarchy.html +++ b/docs/typedoc/hierarchy.html @@ -1 +1 @@ -@carlosnunezmx/aru
\ No newline at end of file +@carlosnunezmx/aru
diff --git a/docs/typedoc/index.html b/docs/typedoc/index.html index de53c54..3919bb5 100644 --- a/docs/typedoc/index.html +++ b/docs/typedoc/index.html @@ -1,5 +1,5 @@ -@carlosnunezmx/aru

@carlosnunezmx/aru

- Aru Icon +@carlosnunezmx/aru

@carlosnunezmx/aru

+ Aru Icon

NPM Downloads @@ -9,38 +9,42 @@

Este wrapper esta creado con Bun, Typescript y Bcrypt, el cual entrega una API facíl para interactuar con Leo(aka SIIAU 2) de manera sencilla y eficiente. ## Instalación +
    +
  1. Instala el modulo
    npm/bun/pnpm i @carlosnunezmx/aru
    +
    -

    Instala el modulo ·v·

      -
    1. Instala el modulo
      npm/bun/pnpm i @carlosnunezmx/aru
      -
    -

    Descarga y prueba el codigo fuente

      -
    1. Instalacion de dependecias.
      # bun 
      bun i
      # node
      npm/pnpm/yarn i -
      +
        +
      1. Instalacion de dependecias.
        # bun 
        bun i
        # node
        npm/pnpm/yarn i +
        +
      2. -
      3. (Node) Transpilación de Typescript
        npm run build
        -
        +
      4. (Node) Transpilación de Typescript
        npm run build
        +
        +
      -

      Documentación

\ No newline at end of file + + +
diff --git a/docs/typedoc/interfaces/CentroEducativo.html b/docs/typedoc/interfaces/CentroEducativo.html new file mode 100644 index 0000000..b5ef1dd --- /dev/null +++ b/docs/typedoc/interfaces/CentroEducativo.html @@ -0,0 +1,4 @@ +CentroEducativo | @carlosnunezmx/aru

Interface CentroEducativo

interface CentroEducativo {
    descripcion: string;
    idcentro: string;
    siglas: string;
}

Properties

descripcion: string
idcentro: string
siglas: string
diff --git a/docs/typedoc/interfaces/Ciclo.html b/docs/typedoc/interfaces/Ciclo.html new file mode 100644 index 0000000..6a5314b --- /dev/null +++ b/docs/typedoc/interfaces/Ciclo.html @@ -0,0 +1,4 @@ +Ciclo | @carlosnunezmx/aru
interface Ciclo {
    ciclo: string;
    descripcion: string;
}

Properties

Properties

ciclo: string

Match with "20xx-{A|B}"

+
descripcion: string
diff --git a/docs/typedoc/interfaces/MateriaOferta.html b/docs/typedoc/interfaces/MateriaOferta.html new file mode 100644 index 0000000..dab38a2 --- /dev/null +++ b/docs/typedoc/interfaces/MateriaOferta.html @@ -0,0 +1,16 @@ +MateriaOferta | @carlosnunezmx/aru

Interface MateriaOferta

interface MateriaOferta {
    creditos: string;
    crn: string;
    cupodisponibl: string;
    cupos: string;
    descmateria: string;
    esttacrn: string;
    horarios: Horario[];
    idcentro: string;
    idciclo: string;
    idmateria: string;
    idprograma: string;
    idsede: string;
    profesores: Profesor[];
    seccion: string;
    subjmateria: string;
}

Properties

creditos: string
crn: string
cupodisponibl: string
cupos: string
descmateria: string
esttacrn: string
horarios: Horario[]
idcentro: string
idciclo: string
idmateria: string
idprograma: string
idsede: string
profesores: Profesor[]
seccion: string
subjmateria: string
diff --git a/docs/typedoc/interfaces/Programa.html b/docs/typedoc/interfaces/Programa.html new file mode 100644 index 0000000..4bcef31 --- /dev/null +++ b/docs/typedoc/interfaces/Programa.html @@ -0,0 +1,4 @@ +Programa | @carlosnunezmx/aru

Interface Programa

interface Programa {
    descprograma: string;
    idcentro: string;
    programa: string;
}

Properties

descprograma: string
idcentro: string
programa: string
diff --git a/docs/typedoc/media/AppIcon.png b/docs/typedoc/media/AppIcon.png new file mode 100644 index 0000000..e2d1d25 Binary files /dev/null and b/docs/typedoc/media/AppIcon.png differ diff --git a/docs/typedoc/modules.html b/docs/typedoc/modules.html index 7f0da37..dbc903e 100644 --- a/docs/typedoc/modules.html +++ b/docs/typedoc/modules.html @@ -1,12 +1,16 @@ -@carlosnunezmx/aru

@carlosnunezmx/aru

Index

Namespaces

ErrorTypes +@carlosnunezmx/aru
\ No newline at end of file +
diff --git a/docs/typedoc/modules/ErrorTypes.html b/docs/typedoc/modules/ErrorTypes.html index 31138d1..2fe1066 100644 --- a/docs/typedoc/modules/ErrorTypes.html +++ b/docs/typedoc/modules/ErrorTypes.html @@ -1,6 +1,6 @@ -ErrorTypes | @carlosnunezmx/aru

Namespace ErrorTypes

References

MethodNotAllowedType +ErrorTypes | @carlosnunezmx/aru

Namespace ErrorTypes

References

Re-exports MethodNotAllowedType
Re-exports RequestError
Re-exports UnauthorizedType
\ No newline at end of file +

References

Re-exports MethodNotAllowedType
Re-exports RequestError
Re-exports UnauthorizedType
diff --git a/docs/typedoc/modules/KardexTypes.html b/docs/typedoc/modules/KardexTypes.html index 262db49..b7fef88 100644 --- a/docs/typedoc/modules/KardexTypes.html +++ b/docs/typedoc/modules/KardexTypes.html @@ -1,6 +1,6 @@ -KardexTypes | @carlosnunezmx/aru

Namespace KardexTypes

Index

Type Aliases

CredTaesItem +KardexTypes | @carlosnunezmx/aru
\ No newline at end of file +
diff --git a/docs/typedoc/modules/Method.html b/docs/typedoc/modules/Method.html index 0681e5d..aa8f60a 100644 --- a/docs/typedoc/modules/Method.html +++ b/docs/typedoc/modules/Method.html @@ -1,3 +1,3 @@ -Method | @carlosnunezmx/aru

Namespace Method

Index

Classes

AuthMethod +Method | @carlosnunezmx/aru
\ No newline at end of file +
diff --git a/docs/typedoc/modules/RegistroMateriaTypes.html b/docs/typedoc/modules/RegistroMateriaTypes.html index b6727bd..e0ca02c 100644 --- a/docs/typedoc/modules/RegistroMateriaTypes.html +++ b/docs/typedoc/modules/RegistroMateriaTypes.html @@ -1,4 +1,4 @@ -RegistroMateriaTypes | @carlosnunezmx/aru

Namespace RegistroMateriaTypes

References

RegistrarMateria +RegistroMateriaTypes | @carlosnunezmx/aru

Namespace RegistroMateriaTypes

References

Re-exports RegistrarMateria
\ No newline at end of file +

References

Re-exports RegistrarMateria
diff --git a/docs/typedoc/types/AvAdvanceType.html b/docs/typedoc/types/AvAdvanceType.html index 188b2da..bfdc8a3 100644 --- a/docs/typedoc/types/AvAdvanceType.html +++ b/docs/typedoc/types/AvAdvanceType.html @@ -1 +1 @@ -AvAdvanceType | @carlosnunezmx/aru

Type alias AvAdvanceType

AvAdvanceType: {
    avance: AvanceItem[];
    promgeneral: string;
}

Type declaration

\ No newline at end of file +AvAdvanceType | @carlosnunezmx/aru

Type Alias AvAdvanceType

AvAdvanceType: {
    avance: AvanceItem[];
    promgeneral: string;
}
diff --git a/docs/typedoc/types/AvanceItem.html b/docs/typedoc/types/AvanceItem.html index b6ca517..b97e3a5 100644 --- a/docs/typedoc/types/AvanceItem.html +++ b/docs/typedoc/types/AvanceItem.html @@ -1 +1 @@ -AvanceItem | @carlosnunezmx/aru

Type alias AvanceItem

AvanceItem: {
    cicladmision: string;
    ciclo: string;
    credciclos: string;
    idPrograma: string;
    idsede: string;
    porcavance: string;
    promciclo: string;
    siglcentro: string;
}

Type declaration

  • cicladmision: string
  • ciclo: string
  • credciclos: string
  • idPrograma: string
  • idsede: string
  • porcavance: string
  • promciclo: string
  • siglcentro: string
\ No newline at end of file +AvanceItem | @carlosnunezmx/aru

Type Alias AvanceItem

AvanceItem: {
    cicladmision: string;
    ciclo: string;
    credciclos: string;
    idPrograma: string;
    idsede: string;
    porcavance: string;
    promciclo: string;
    siglcentro: string;
}
diff --git a/docs/typedoc/types/AverageAdvanceInit.html b/docs/typedoc/types/AverageAdvanceInit.html index 2a15903..ccbd241 100644 --- a/docs/typedoc/types/AverageAdvanceInit.html +++ b/docs/typedoc/types/AverageAdvanceInit.html @@ -1,4 +1,4 @@ -AverageAdvanceInit | @carlosnunezmx/aru

Type alias AverageAdvanceInit

AverageAdvanceInit: {
    cicladmision: string;
    idprograma: string;
}

Initial data for AverageAdvance

+AverageAdvanceInit | @carlosnunezmx/aru

Type Alias AverageAdvanceInit

AverageAdvanceInit: {
    cicladmision: string;
    idprograma: string;
}

Initial data for AverageAdvance

Type declaration

  • cicladmision: string

    formato 20XX-A|B

    -

    Description

    Start cycle where the student started

    -
  • idprograma: string
\ No newline at end of file +

Start cycle where the student started

+
  • idprograma: string
  • diff --git a/docs/typedoc/types/Card.html b/docs/typedoc/types/Card.html index 999a3b9..94fb9cb 100644 --- a/docs/typedoc/types/Card.html +++ b/docs/typedoc/types/Card.html @@ -1 +1 @@ -Card | @carlosnunezmx/aru

    Type alias Card

    Card: {
        apellido_materno: string;
        apellido_paterno: string;
        centro: string;
        centroDesc: string;
        curp: string;
        error?: string;
        firma: string;
        firmaRector: string;
        foto: string;
        imss: string;
        nombre: string;
        nombreRector: string;
        sede: string;
        tarjeta_informador: unknown[];
    }

    Type declaration

    • apellido_materno: string
    • apellido_paterno: string
    • centro: string
    • centroDesc: string
    • curp: string
    • Optional error?: string
    • firma: string
    • firmaRector: string
    • foto: string
    • imss: string
    • nombre: string
    • nombreRector: string
    • sede: string
    • tarjeta_informador: unknown[]
    \ No newline at end of file +Card | @carlosnunezmx/aru

    Type Alias Card

    Card: {
        apellido_materno: string;
        apellido_paterno: string;
        centro: string;
        centroDesc: string;
        curp: string;
        error?: string;
        firma: string;
        firmaRector: string;
        foto: string;
        imss: string;
        nombre: string;
        nombreRector: string;
        sede: string;
        tarjeta_informador: unknown[];
    }
    diff --git a/docs/typedoc/types/CreditsInit.html b/docs/typedoc/types/CreditsInit.html index 6e22149..65bce58 100644 --- a/docs/typedoc/types/CreditsInit.html +++ b/docs/typedoc/types/CreditsInit.html @@ -1,2 +1,2 @@ -CreditsInit | @carlosnunezmx/aru

    Type alias CreditsInit

    CreditsInit: {
        cicladmision: string;
        idprograma: string;
    }

    Type declaration

    • cicladmision: string

      Description

      Format: YYYY-{A|B}

      -
    • idprograma: string
    \ No newline at end of file +CreditsInit | @carlosnunezmx/aru

    Type Alias CreditsInit

    CreditsInit: {
        cicladmision: string;
        idprograma: string;
    }

    Type declaration

    • cicladmision: string

      Format: YYYY-{A|B}

      +
    • idprograma: string
    diff --git a/docs/typedoc/types/Dias.html b/docs/typedoc/types/Dias.html index 6deb34e..cb767cd 100644 --- a/docs/typedoc/types/Dias.html +++ b/docs/typedoc/types/Dias.html @@ -1 +1 @@ -Dias | @carlosnunezmx/aru

    Type alias Dias

    Dias: "Lunes" | "Martes" | "Miercoles" | "Jueves" | "Viernes" | "Sabado" | "Domingo"
    \ No newline at end of file +Dias | @carlosnunezmx/aru

    Type Alias Dias

    Dias:
        | "Lunes"
        | "Martes"
        | "Miercoles"
        | "Jueves"
        | "Viernes"
        | "Sabado"
        | "Domingo"
    diff --git a/docs/typedoc/types/DomicilioFormated.html b/docs/typedoc/types/DomicilioFormated.html index bb8d4b8..b3a7730 100644 --- a/docs/typedoc/types/DomicilioFormated.html +++ b/docs/typedoc/types/DomicilioFormated.html @@ -1 +1 @@ -DomicilioFormated | @carlosnunezmx/aru

    Type alias DomicilioFormated

    DomicilioFormated: {
        cp: string;
        estado: string;
        municipio: string;
        pais: string;
    }

    Type declaration

    • cp: string
    • estado: string
    • municipio: string
    • pais: string
    \ No newline at end of file +DomicilioFormated | @carlosnunezmx/aru

    Type Alias DomicilioFormated

    DomicilioFormated: {
        cp: string;
        estado: string;
        municipio: string;
        pais: string;
    }
    diff --git a/docs/typedoc/types/ErrorTypes.UnsupportedType.html b/docs/typedoc/types/ErrorTypes.UnsupportedType.html index f5b8c95..fc07769 100644 --- a/docs/typedoc/types/ErrorTypes.UnsupportedType.html +++ b/docs/typedoc/types/ErrorTypes.UnsupportedType.html @@ -1 +1 @@ -UnsupportedType | @carlosnunezmx/aru
    UnsupportedType: {
        error: "Unsupported Media Type";
        path: string;
        status: 415;
        timestamp: number;
    }

    Type declaration

    • error: "Unsupported Media Type"
    • path: string
    • status: 415
    • timestamp: number
    \ No newline at end of file +UnsupportedType | @carlosnunezmx/aru
    UnsupportedType: {
        error: "Unsupported Media Type";
        path: string;
        status: 415;
        timestamp: number;
    }
    diff --git a/docs/typedoc/types/Horario.html b/docs/typedoc/types/Horario.html index 8becb6b..5f05b42 100644 --- a/docs/typedoc/types/Horario.html +++ b/docs/typedoc/types/Horario.html @@ -1,3 +1,3 @@ -Horario | @carlosnunezmx/aru

    Type alias Horario

    Horario: {
        fechfin: string;
        fechinicio: string;
        horas: Horas[];
    }

    Type declaration

    • fechfin: string

      formato: dd-mm-yyyy

      +Horario | @carlosnunezmx/aru

      Type Alias Horario

      Horario: {
          fechfin: string;
          fechinicio: string;
          horas: Horas[];
      }

      Type declaration

      • fechfin: string

        formato: dd-mm-yyyy

      • fechinicio: string

        formato: dd-mm-yyyy

        -
      • horas: Horas[]
      \ No newline at end of file +
    • horas: Horas[]
    diff --git a/docs/typedoc/types/Horas.html b/docs/typedoc/types/Horas.html index ddf495b..755f35f 100644 --- a/docs/typedoc/types/Horas.html +++ b/docs/typedoc/types/Horas.html @@ -1,2 +1,2 @@ -Horas | @carlosnunezmx/aru

    Type alias Horas

    Horas: {
        dia: Dias;
        edificio: string;
        hora: string;
        idedificio: string;
        numesalon: string;
    }

    Type declaration

    • dia: Dias
    • edificio: string
    • hora: string

      formato: (start)hhmm-hhmm(end)

      -
    • idedificio: string
    • numesalon: string
    \ No newline at end of file +Horas | @carlosnunezmx/aru

    Type Alias Horas

    Horas: {
        dia: Dias;
        edificio: string;
        hora: string;
        idedificio: string;
        numesalon: string;
    }

    Type declaration

    • dia: Dias
    • edificio: string
    • hora: string

      formato: (start)hhmm-hhmm(end)

      +
    • idedificio: string
    • numesalon: string
    diff --git a/docs/typedoc/types/KardexTypes.CredTaesItem.html b/docs/typedoc/types/KardexTypes.CredTaesItem.html index abcb111..9262b43 100644 --- a/docs/typedoc/types/KardexTypes.CredTaesItem.html +++ b/docs/typedoc/types/KardexTypes.CredTaesItem.html @@ -1 +1 @@ -CredTaesItem | @carlosnunezmx/aru
    CredTaesItem: {
        credadqutae: string;
        credfalttae: string;
        credrequtae: string;
        desctae: string;
    }

    Type declaration

    • credadqutae: string
    • credfalttae: string
    • credrequtae: string
    • desctae: string
    \ No newline at end of file +CredTaesItem | @carlosnunezmx/aru
    CredTaesItem: {
        credadqutae: string;
        credfalttae: string;
        credrequtae: string;
        desctae: string;
    }
    diff --git a/docs/typedoc/types/KardexTypes.KardexType.html b/docs/typedoc/types/KardexTypes.KardexType.html index e99918e..72c6abc 100644 --- a/docs/typedoc/types/KardexTypes.KardexType.html +++ b/docs/typedoc/types/KardexTypes.KardexType.html @@ -1 +1 @@ -KardexType | @carlosnunezmx/aru
    KardexType: {
        certificado: "PARCIAL" | "COMPLETO";
        creditos: {
            credadquirido: string;
            credfaltantes: string;
            credporcentaj: string;
            credtotaprogr: string;
        };
        curriculares: unknown[] | null;
        datosPersonales: {
            nombre: string;
        };
        historiaAcademicaKardex: historiaAcademicaKardexItem[];
        informacion: string;
        planesEstudios: planesEstudio;
        promedios: {
            promgeneral: string;
        };
        resumenCreditos: resumenCreditosItem[];
    }

    Type declaration

    • certificado: "PARCIAL" | "COMPLETO"
    • creditos: {
          credadquirido: string;
          credfaltantes: string;
          credporcentaj: string;
          credtotaprogr: string;
      }
      • credadquirido: string
      • credfaltantes: string
      • credporcentaj: string
      • credtotaprogr: string
    • curriculares: unknown[] | null
    • datosPersonales: {
          nombre: string;
      }
      • nombre: string
    • historiaAcademicaKardex: historiaAcademicaKardexItem[]
    • informacion: string
    • planesEstudios: planesEstudio
    • promedios: {
          promgeneral: string;
      }
      • promgeneral: string
    • resumenCreditos: resumenCreditosItem[]
    \ No newline at end of file +KardexType | @carlosnunezmx/aru
    KardexType: {
        certificado: "PARCIAL" | "COMPLETO";
        creditos: {
            credadquirido: string;
            credfaltantes: string;
            credporcentaj: string;
            credtotaprogr: string;
        };
        curriculares: unknown[] | null;
        datosPersonales: {
            nombre: string;
        };
        historiaAcademicaKardex: historiaAcademicaKardexItem[];
        informacion: string;
        planesEstudios: planesEstudio;
        promedios: {
            promgeneral: string;
        };
        resumenCreditos: resumenCreditosItem[];
    }
    diff --git a/docs/typedoc/types/KardexTypes.historiaAcademicaKardexItem.html b/docs/typedoc/types/KardexTypes.historiaAcademicaKardexItem.html index 816b76d..9c3d850 100644 --- a/docs/typedoc/types/KardexTypes.historiaAcademicaKardexItem.html +++ b/docs/typedoc/types/KardexTypes.historiaAcademicaKardexItem.html @@ -1 +1 @@ -historiaAcademicaKardexItem | @carlosnunezmx/aru

    Type alias historiaAcademicaKardexItem

    historiaAcademicaKardexItem: {
        calinumeletra: string;
        clasificacion: string;
        clavmateria: string;
        creditos: string;
        crn: string;
        fechcaptura: string;
        horacurso: string;
        idsede: string;
        idtae: null | string;
        tae: null | string;
        tipocaptura: string;
        titucurso: string;
    }

    Type declaration

    • calinumeletra: string
    • clasificacion: string
    • clavmateria: string
    • creditos: string
    • crn: string
    • fechcaptura: string
    • horacurso: string
    • idsede: string
    • idtae: null | string
    • tae: null | string
    • tipocaptura: string
    • titucurso: string
    \ No newline at end of file +historiaAcademicaKardexItem | @carlosnunezmx/aru

    Type Alias historiaAcademicaKardexItem

    historiaAcademicaKardexItem: {
        calinumeletra: string;
        clasificacion: string;
        clavmateria: string;
        creditos: string;
        crn: string;
        fechcaptura: string;
        horacurso: string;
        idsede: string;
        idtae: null | string;
        tae: null | string;
        tipocaptura: string;
        titucurso: string;
    }
    diff --git a/docs/typedoc/types/KardexTypes.planesEstudios.html b/docs/typedoc/types/KardexTypes.planesEstudios.html index 0237a71..93a3bf1 100644 --- a/docs/typedoc/types/KardexTypes.planesEstudios.html +++ b/docs/typedoc/types/KardexTypes.planesEstudios.html @@ -1 +1 @@ -planesEstudios | @carlosnunezmx/aru
    planesEstudios: {
        certificacion: string;
        cicladmision: string;
        ciclefectivo: string;
        desccentro: string;
        descestatus: string;
        descnivel: string;
        descprograma: string;
        descsede: string;
        idPlan: string;
        idcentro: string;
        idestatus: string;
        idprograma: string;
        idsede: string;
        nivel: string;
        siglacentro: string;
        siiacampus: string;
        tipoestatus: string;
    }

    Type declaration

    • certificacion: string
    • cicladmision: string
    • ciclefectivo: string
    • desccentro: string
    • descestatus: string
    • descnivel: string
    • descprograma: string
    • descsede: string
    • idPlan: string
    • idcentro: string
    • idestatus: string
    • idprograma: string
    • idsede: string
    • nivel: string
    • siglacentro: string
    • siiacampus: string
    • tipoestatus: string
    \ No newline at end of file +planesEstudios | @carlosnunezmx/aru
    planesEstudios: {
        certificacion: string;
        cicladmision: string;
        ciclefectivo: string;
        desccentro: string;
        descestatus: string;
        descnivel: string;
        descprograma: string;
        descsede: string;
        idPlan: string;
        idcentro: string;
        idestatus: string;
        idprograma: string;
        idsede: string;
        nivel: string;
        siglacentro: string;
        siiacampus: string;
        tipoestatus: string;
    }
    diff --git a/docs/typedoc/types/KardexTypes.resumenCreditosItem.html b/docs/typedoc/types/KardexTypes.resumenCreditosItem.html index 8db5c72..f82a281 100644 --- a/docs/typedoc/types/KardexTypes.resumenCreditosItem.html +++ b/docs/typedoc/types/KardexTypes.resumenCreditosItem.html @@ -1 +1 @@ -resumenCreditosItem | @carlosnunezmx/aru
    resumenCreditosItem: {
        areaformacion: string;
        credTaes: null | CredTaesItem[];
        credadquaerea: string;
        credfaltaerea: string;
        credrequaerea: string;
    }

    Type declaration

    • areaformacion: string
    • credTaes: null | CredTaesItem[]
    • credadquaerea: string
    • credfaltaerea: string
    • credrequaerea: string
    \ No newline at end of file +resumenCreditosItem | @carlosnunezmx/aru
    resumenCreditosItem: {
        areaformacion: string;
        credTaes: null | CredTaesItem[];
        credadquaerea: string;
        credfaltaerea: string;
        credrequaerea: string;
    }
    diff --git a/docs/typedoc/types/Materia.html b/docs/typedoc/types/Materia.html index 10a5483..18b55f6 100644 --- a/docs/typedoc/types/Materia.html +++ b/docs/typedoc/types/Materia.html @@ -1 +1 @@ -Materia | @carlosnunezmx/aru

    Type alias Materia

    Materia: {
        creditos: string;
        crn: string;
        horarios: Horario[];
        idcampus: string;
        idcurso: string;
        nombcurso: string;
        numeseccion: string;
        profesores: Profesor[];
    }

    Type declaration

    • creditos: string
    • crn: string
    • horarios: Horario[]
    • idcampus: string
    • idcurso: string
    • nombcurso: string
    • numeseccion: string
    • profesores: Profesor[]
    \ No newline at end of file +Materia | @carlosnunezmx/aru

    Type Alias Materia

    Materia: {
        creditos: string;
        crn: string;
        horarios: Horario[];
        idcampus: string;
        idcurso: string;
        nombcurso: string;
        numeseccion: string;
        profesores: Profesor[];
    }
    diff --git a/docs/typedoc/types/MethodNotAllowedType.html b/docs/typedoc/types/MethodNotAllowedType.html index d7d39ef..4b1c16b 100644 --- a/docs/typedoc/types/MethodNotAllowedType.html +++ b/docs/typedoc/types/MethodNotAllowedType.html @@ -1,2 +1,2 @@ -MethodNotAllowedType | @carlosnunezmx/aru

    Type alias MethodNotAllowedType

    MethodNotAllowedType: {
        error: string;
        path: string;
        status: number;
        timestamp: number;
    }

    Error code 405

    -

    Type declaration

    • error: string
    • path: string
    • status: number
    • timestamp: number
    \ No newline at end of file +MethodNotAllowedType | @carlosnunezmx/aru

    Type Alias MethodNotAllowedType

    MethodNotAllowedType: {
        error: string;
        path: string;
        status: number;
        timestamp: number;
    }

    Error code 405

    +
    diff --git a/docs/typedoc/types/OfertaAcademicaRequest.html b/docs/typedoc/types/OfertaAcademicaRequest.html new file mode 100644 index 0000000..03b8aa9 --- /dev/null +++ b/docs/typedoc/types/OfertaAcademicaRequest.html @@ -0,0 +1 @@ +OfertaAcademicaRequest | @carlosnunezmx/aru

    Type Alias OfertaAcademicaRequest

    OfertaAcademicaRequest: {
        idcentro: string;
        idciclo: string;
        idprograma: string;
    }
    diff --git a/docs/typedoc/types/Plans.html b/docs/typedoc/types/Plans.html index 3e306ab..7bbd1c4 100644 --- a/docs/typedoc/types/Plans.html +++ b/docs/typedoc/types/Plans.html @@ -1 +1 @@ -Plans | @carlosnunezmx/aru

    Type alias Plans

    Plans: {
        certificacion: string;
        cicladmision: string;
        ciclefectivo: string;
        desccentro: string;
        descestatus: string;
        descnivel: string;
        descprograma: string;
        descsede: sting;
        emailudg: string;
        idPlan: string;
        idcentro: string;
        idestatus: string;
        idprograma: string;
        idsede: string;
        nivel: string;
        siglacentro: string;
        siiacampus: string;
        tipoestatus: string;
    }[]

    Type declaration

    • certificacion: string
    • cicladmision: string
    • ciclefectivo: string
    • desccentro: string
    • descestatus: string
    • descnivel: string
    • descprograma: string
    • descsede: sting
    • emailudg: string
    • idPlan: string
    • idcentro: string
    • idestatus: string
    • idprograma: string
    • idsede: string
    • nivel: string
    • siglacentro: string
    • siiacampus: string
    • tipoestatus: string
    \ No newline at end of file +Plans | @carlosnunezmx/aru

    Type Alias Plans

    Plans: {
        certificacion: string;
        cicladmision: string;
        ciclefectivo: string;
        desccentro: string;
        descestatus: string;
        descnivel: string;
        descprograma: string;
        descsede: sting;
        emailudg: string;
        idPlan: string;
        idcentro: string;
        idestatus: string;
        idprograma: string;
        idsede: string;
        nivel: string;
        siglacentro: string;
        siiacampus: string;
        tipoestatus: string;
    }[]
    diff --git a/docs/typedoc/types/Profesor.html b/docs/typedoc/types/Profesor.html index 338ae7c..c437d85 100644 --- a/docs/typedoc/types/Profesor.html +++ b/docs/typedoc/types/Profesor.html @@ -1 +1 @@ -Profesor | @carlosnunezmx/aru

    Type alias Profesor

    Profesor: {
        apellidos: string;
        idprofesor: string;
        nombres: string;
    }

    Type declaration

    • apellidos: string
    • idprofesor: string
    • nombres: string
    \ No newline at end of file +Profesor | @carlosnunezmx/aru

    Type Alias Profesor

    Profesor: {
        apellidos: string;
        idprofesor: string;
        nombres: string;
    }
    diff --git a/docs/typedoc/types/ProjectionSubjectType.html b/docs/typedoc/types/ProjectionSubjectType.html index 7b346ce..c082703 100644 --- a/docs/typedoc/types/ProjectionSubjectType.html +++ b/docs/typedoc/types/ProjectionSubjectType.html @@ -1 +1 @@ -ProjectionSubjectType | @carlosnunezmx/aru

    Type alias ProjectionSubjectType

    ProjectionSubjectType: {
        creditos: string;
        idMateria: string;
        idsubj: string;
        materia: string;
    }

    Type declaration

    • creditos: string
    • idMateria: string
    • idsubj: string
    • materia: string
    \ No newline at end of file +ProjectionSubjectType | @carlosnunezmx/aru

    Type Alias ProjectionSubjectType

    ProjectionSubjectType: {
        creditos: string;
        idMateria: string;
        idsubj: string;
        materia: string;
    }
    diff --git a/docs/typedoc/types/RegistroMateriaTypes.MateriaRegistrada.html b/docs/typedoc/types/RegistroMateriaTypes.MateriaRegistrada.html index 95e40c0..72902e6 100644 --- a/docs/typedoc/types/RegistroMateriaTypes.MateriaRegistrada.html +++ b/docs/typedoc/types/RegistroMateriaTypes.MateriaRegistrada.html @@ -1,2 +1,2 @@ -MateriaRegistrada | @carlosnunezmx/aru
    MateriaRegistrada: string[]

    Este arreglo muestra los nrc's

    -
    \ No newline at end of file +MateriaRegistrada | @carlosnunezmx/aru
    MateriaRegistrada: string[]

    Este arreglo muestra los nrc's

    +
    diff --git a/docs/typedoc/types/RegistroMateriaTypes.RegistrarMateriaInit.html b/docs/typedoc/types/RegistroMateriaTypes.RegistrarMateriaInit.html index 8bc6f4f..30557f0 100644 --- a/docs/typedoc/types/RegistroMateriaTypes.RegistrarMateriaInit.html +++ b/docs/typedoc/types/RegistroMateriaTypes.RegistrarMateriaInit.html @@ -1,2 +1,2 @@ -RegistrarMateriaInit | @carlosnunezmx/aru
    RegistrarMateriaInit: {
        ciclo: string;
        cursos: string[];
        idcentro?: string;
        idprograma?: string;
        nivel?: string;
    }

    Type declaration

    • ciclo: string
    • cursos: string[]

      NRC's de las materias a registrar

      -
    • Optional idcentro?: string
    • Optional idprograma?: string
    • Optional nivel?: string
    \ No newline at end of file +RegistrarMateriaInit | @carlosnunezmx/aru
    RegistrarMateriaInit: {
        ciclo: string;
        cursos: string[];
        idcentro?: string;
        idprograma?: string;
        nivel?: string;
    }

    Type declaration

    • ciclo: string
    • cursos: string[]

      NRC's de las materias a registrar

      +
    • Optionalidcentro?: string
    • Optionalidprograma?: string
    • Optionalnivel?: string
    diff --git a/docs/typedoc/types/ScheduleInit.html b/docs/typedoc/types/ScheduleInit.html index 4a9c651..c8e0d90 100644 --- a/docs/typedoc/types/ScheduleInit.html +++ b/docs/typedoc/types/ScheduleInit.html @@ -1,2 +1,2 @@ -ScheduleInit | @carlosnunezmx/aru

    Type alias ScheduleInit

    ScheduleInit: {
        ciclo: string;
        idprograma?: string;
    }

    Type declaration

    • ciclo: string

      format 20xx-A|B

      -
    • Optional idprograma?: string
    \ No newline at end of file +ScheduleInit | @carlosnunezmx/aru

    Type Alias ScheduleInit

    ScheduleInit: {
        ciclo: string;
        idprograma?: string;
    }

    Type declaration

    • ciclo: string

      format 20xx-A|B

      +
    • Optionalidprograma?: string
    diff --git a/docs/typedoc/types/SoyUdgError.html b/docs/typedoc/types/SoyUdgError.html index 77facc5..2e9253e 100644 --- a/docs/typedoc/types/SoyUdgError.html +++ b/docs/typedoc/types/SoyUdgError.html @@ -1 +1 @@ -SoyUdgError | @carlosnunezmx/aru

    Type alias SoyUdgError

    SoyUdgError: {
        code: number;
        data: {
            error: string;
            tarjeta_informador: unknown[];
        };
    }

    Type declaration

    • code: number
    • data: {
          error: string;
          tarjeta_informador: unknown[];
      }
      • error: string
      • tarjeta_informador: unknown[]
    \ No newline at end of file +SoyUdgError | @carlosnunezmx/aru

    Type Alias SoyUdgError

    SoyUdgError: {
        code: number;
        data: {
            error: string;
            tarjeta_informador: unknown[];
        };
    }
    diff --git a/docs/typedoc/types/StudentInfoType.html b/docs/typedoc/types/StudentInfoType.html index d460f4b..6753c7c 100644 --- a/docs/typedoc/types/StudentInfoType.html +++ b/docs/typedoc/types/StudentInfoType.html @@ -1,3 +1,3 @@ -StudentInfoType | @carlosnunezmx/aru

    Type alias StudentInfoType

    StudentInfoType: {
        alumcodigo: string;
        curp: string;
        desctiposangr: string | null;
        domicilio: string;
        email: string;
        fechnacimient: string;
        firma: string;
        foto: string;
        genero: "M" | "F";
        imss: string;
        lugadomicilio: DomicilioFormated;
        lugadomicilioDB: string;
        nombre: string;
        rfc: string | null;
        teleemergenci: string;
        tiposangre: string | null;
    }

    Type declaration

    • alumcodigo: string
    • curp: string
    • desctiposangr: string | null
    • domicilio: string
    • email: string
    • fechnacimient: string
    • firma: string

      Firma del alumno codificada en Base64

      +StudentInfoType | @carlosnunezmx/aru

      Type Alias StudentInfoType

      StudentInfoType: {
          alumcodigo: string;
          curp: string;
          desctiposangr: string | null;
          domicilio: string;
          email: string;
          fechnacimient: string;
          firma: string;
          foto: string;
          genero: "M" | "F";
          imss: string;
          lugadomicilio: DomicilioFormated;
          lugadomicilioDB: string;
          nombre: string;
          rfc: string | null;
          teleemergenci: string;
          tiposangre: string | null;
      }

      Type declaration

      • alumcodigo: string
      • curp: string
      • desctiposangr: string | null
      • domicilio: string
      • email: string
      • fechnacimient: string
      • firma: string

        Firma del alumno codificada en Base64

      • foto: string

        Foto del alumno codificada en Base64

        -
      • genero: "M" | "F"
      • imss: string
      • lugadomicilio: DomicilioFormated
      • lugadomicilioDB: string
      • nombre: string
      • rfc: string | null
      • teleemergenci: string
      • tiposangre: string | null
      \ No newline at end of file +
    • genero: "M" | "F"
    • imss: string
    • lugadomicilio: DomicilioFormated
    • lugadomicilioDB: string
    • nombre: string
    • rfc: string | null
    • teleemergenci: string
    • tiposangre: string | null
    diff --git a/docs/typedoc/types/UnauthorizedType.html b/docs/typedoc/types/UnauthorizedType.html index be59d87..a4fac68 100644 --- a/docs/typedoc/types/UnauthorizedType.html +++ b/docs/typedoc/types/UnauthorizedType.html @@ -1,3 +1,3 @@ -UnauthorizedType | @carlosnunezmx/aru

    Type alias UnauthorizedType

    UnauthorizedType: {
        codigo: 401;
        mensaje: string;
        respuesta: false;
    }

    Error code 405

    -

    Type declaration

    • codigo: 401
    • mensaje: string
    • respuesta: false

    Description

    The authentication token or authentication headers

    -
    \ No newline at end of file +UnauthorizedType | @carlosnunezmx/aru

    Type Alias UnauthorizedType

    UnauthorizedType: {
        codigo: 401;
        mensaje: string;
        respuesta: false;
    }

    Error code 405

    +

    The authentication token or authentication headers

    +
    diff --git a/docs/typedoc/types/UserCredentials.html b/docs/typedoc/types/UserCredentials.html index 09453e9..a52e205 100644 --- a/docs/typedoc/types/UserCredentials.html +++ b/docs/typedoc/types/UserCredentials.html @@ -1,2 +1,2 @@ -UserCredentials | @carlosnunezmx/aru

    Type alias UserCredentials

    UserCredentials: {
        Password: string;
        User: string;
    }

    User credentials for login into Leo

    -

    Type declaration

    • Password: string
    • User: string
    \ No newline at end of file +UserCredentials | @carlosnunezmx/aru

    Type Alias UserCredentials

    UserCredentials: {
        Password: string;
        User: string;
    }

    User credentials for login into Leo

    +
    diff --git a/package.json b/package.json index 8a6078f..0a2cbb3 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "dist/index.js", "types": "./types/index.d.ts", "description": "Just another UdeG Leo Wrapper", - "version": "0.8.2", + "version": "0.8.4", "bugs": { "email": "carlitosnu41@gmail.com", "url": "https://github.com/CarlosNunezMX/aru/issues" @@ -34,11 +34,16 @@ "./kardex": { "default": "./dist/kardex/index.js", "types": "./types/kardex/index.d.ts" + }, + "./oferta": { + "default": "./dist/centros/index.js", + "types": "./types/centros/index.d.ts" } }, "homepage": "https://github.com/CarlosNunezMX/aru", "author": { "email": "carlitosnu41@gmail.com", + "url": "https://carlosnunezmx.tech", "name": "CarlosNuñezMX" }, "scripts": { diff --git a/source/centros/centros/centro.d.ts b/source/centros/centros/centro.d.ts new file mode 100644 index 0000000..470a819 --- /dev/null +++ b/source/centros/centros/centro.d.ts @@ -0,0 +1,9 @@ +import type { DirtyType } from "../../utils/generics/ResponseOK.js"; + +export interface CentroEducativo { + idcentro: string; + siglas: string; + descripcion: string; +} + +export type DirtyCentroEducativo = DirtyType \ No newline at end of file diff --git a/source/centros/centros/centros.ts b/source/centros/centros/centros.ts new file mode 100644 index 0000000..6249c55 --- /dev/null +++ b/source/centros/centros/centros.ts @@ -0,0 +1,26 @@ +import { ErrorHandling } from "../../error/Request.js"; +import { AuthHeaderPreset } from "../../utils/CommonHeaders.js"; +import { AuthMethod } from "../../utils/Method.js"; +import type { CentroEducativo, DirtyCentroEducativo } from "./centro.js"; + +export class Centros extends AuthMethod { + protected Route: string = "https://micro-leo.udg.mx/esc-programas/v1/centros"; + async exec(): Promise { + super.exec(); + const cache = this.getCache(Centros as typeof AuthMethod); + if (cache) + return cache; + const req = await fetch("https://micro-leo.udg.mx/esc-programas/v1/centros", { + headers: AuthHeaderPreset(this.AuthToken, this.Auth.getToken().token!) + }) + + if (!req.ok) + ErrorHandling(req); + + const data = (await req.json()) as DirtyCentroEducativo; + + this.UpdateCache.bind(this)(data.respuesta, Centros as typeof AuthMethod) + return data.respuesta; + } + +} \ No newline at end of file diff --git a/source/centros/ciclos/ciclo.d.ts b/source/centros/ciclos/ciclo.d.ts new file mode 100644 index 0000000..ef8501a --- /dev/null +++ b/source/centros/ciclos/ciclo.d.ts @@ -0,0 +1,12 @@ +import type { DirtyType } from "../../utils/generics/ResponseOK.js"; + +export interface Ciclo { + /** + * @description Match with "**20xx**-{A|B}" + */ + ciclo: string; + + descripcion: string; +} + +export type DirtyCiclo = DirtyType \ No newline at end of file diff --git a/source/centros/ciclos/ciclos.ts b/source/centros/ciclos/ciclos.ts new file mode 100644 index 0000000..3c20e80 --- /dev/null +++ b/source/centros/ciclos/ciclos.ts @@ -0,0 +1,32 @@ +import { ClassInitializeError } from "../../error/Initializer.js"; +import { ErrorHandling } from "../../error/Request.js"; +import { AuthHeaderPreset } from "../../utils/CommonHeaders.js"; +import { AuthMethod } from "../../utils/Method.js"; +import type { Ciclo, DirtyCiclo } from "./ciclo.js"; + +export class Ciclos extends AuthMethod { + protected Route: string = "https://micro-leo.udg.mx/esc-programas/v1/:carrera/ciclos"; + + async exec(): Promise { + if (!this.Props) + throw new ClassInitializeError("Prop ProgramaEducativo is required!"); + + + const cache = this.getCache(Ciclos as typeof AuthMethod); + if (cache) + return cache; + + const url = this.Route.replace(":carrera", this.Props); + const request = await fetch(url, { + headers: AuthHeaderPreset(this.AuthToken, this.Auth.getToken().token!) + }) + + if (!request.ok) + ErrorHandling(request); + + const data = await request.json() as DirtyCiclo; + + this.UpdateCache.bind(this)(data.respuesta, Ciclos as typeof AuthMethod) + return data.respuesta; + } +} \ No newline at end of file diff --git a/source/centros/index.ts b/source/centros/index.ts new file mode 100644 index 0000000..7194840 --- /dev/null +++ b/source/centros/index.ts @@ -0,0 +1,11 @@ +export type { CentroEducativo } from "./centros/centro.js"; +export { Centros } from "./centros/centros.js" + +export { ProgramasCentros } from "./programas/programas.js"; +export type { Programa } from "./programas/programa.js"; + +export type { Ciclo } from "./ciclos/ciclo.js"; +export { Ciclos } from "./ciclos/ciclos.js"; + +export type { MateriaOferta, OfertaAcademicaRequest } from "./oferta/oferta.js"; +export { OfertaAcademica } from "./oferta/ofertaAcademica.js"; \ No newline at end of file diff --git a/source/centros/oferta/oferta.d.ts b/source/centros/oferta/oferta.d.ts new file mode 100644 index 0000000..6a30f78 --- /dev/null +++ b/source/centros/oferta/oferta.d.ts @@ -0,0 +1,29 @@ +import type { Horario, Profesor } from "../../student/Schedules/ScheduleTypes.js"; +import type { DirtyType } from "../../utils/generics/ResponseOK.js"; + +export interface MateriaOferta { + idciclo: string; + idcentro: string; + subjmateria: string; + idsede: string; + idprograma: string; + crn: string; + idmateria: string; + descmateria: string; + seccion: string; + creditos: string; + cupos: string; + cupodisponibl: string; + esttacrn: string; + + horarios: Horario[]; + profesores: Profesor[] +} + +export type DirtyOfertaMateria = DirtyType; + +export type OfertaAcademicaRequest = { + idcentro: string; + idciclo: string; + idprograma: string; +}; \ No newline at end of file diff --git a/source/centros/oferta/ofertaAcademica.ts b/source/centros/oferta/ofertaAcademica.ts new file mode 100644 index 0000000..ec79559 --- /dev/null +++ b/source/centros/oferta/ofertaAcademica.ts @@ -0,0 +1,35 @@ +import type { Login } from "../../auth/Login.js"; +import { ClassInitializeError } from "../../error/Initializer.js"; +import { ErrorHandling } from "../../error/Request.js"; +import { AuthHeaderPreset } from "../../utils/CommonHeaders.js"; +import { AuthMethod } from "../../utils/Method.js"; +import type { DirtyOfertaMateria, MateriaOferta, OfertaAcademicaRequest } from "./oferta.js"; + +export class OfertaAcademica extends AuthMethod { + protected Route: string = "https://micro-leo.udg.mx/esc-ofertas/v1/horas-nrc"; + constructor(auth: Login, init: Required) { + super(auth, init); + } + + async exec(): Promise { + if (!this.Props) + throw new ClassInitializeError("Expected OfertaAcademicaRequest"); + + const cache = this.getCache(OfertaAcademica as typeof AuthMethod); + if (cache) + return cache; + + const request = await fetch(this.Route, { + method: "POST", + body: JSON.stringify(this.Props), + headers: AuthHeaderPreset(this.AuthToken, this.Auth.getToken().token!) + }); + + if (!request.ok) + ErrorHandling(request); + + const { respuesta } = await request.json() as DirtyOfertaMateria; + this.UpdateCache(respuesta, OfertaAcademica as typeof AuthMethod); + return respuesta; + } +} \ No newline at end of file diff --git a/source/centros/programas/programa.d.ts b/source/centros/programas/programa.d.ts new file mode 100644 index 0000000..68170b5 --- /dev/null +++ b/source/centros/programas/programa.d.ts @@ -0,0 +1,9 @@ +import type { DirtyType } from "../../utils/generics/ResponseOK.js"; + +export interface Programa { + idcentro: string; + programa: string; + descprograma: string; +} + +export type DirtyProgramaCentro = DirtyType \ No newline at end of file diff --git a/source/centros/programas/programas.ts b/source/centros/programas/programas.ts new file mode 100644 index 0000000..1342eaa --- /dev/null +++ b/source/centros/programas/programas.ts @@ -0,0 +1,34 @@ +import type { Login } from "../../auth/Login.js"; +import { ErrorHandling } from "../../error/Request.js"; +import { AuthHeaderPreset } from "../../utils/CommonHeaders.js"; +import { AuthMethod } from "../../utils/Method.js"; +import type { DirtyProgramaCentro, Programa } from "./programa.js"; + +export class ProgramasCentros extends AuthMethod { + protected Route: string = "https://micro-leo.udg.mx/esc-programas/v1/:centro/programas-centros"; + + constructor(Auth: Login, init: string) { + super(Auth, init) + } + + async exec(): Promise { + await super.exec(); + const cache = this.getCache(ProgramasCentros as typeof AuthMethod); + + if (cache) + return cache; + + const url = this.Route.replace(":centro", this.Props!) + const req = await fetch(url, { + headers: AuthHeaderPreset(this.AuthToken, this.Auth.getToken().token!) + }); + if (!req.ok) + ErrorHandling(req); + + const data = await req.json() as DirtyProgramaCentro; + + this.UpdateCache.bind(this)(data.respuesta, ProgramasCentros as typeof AuthMethod) + return data.respuesta; + + } +} \ No newline at end of file diff --git a/source/error/Initializer.ts b/source/error/Initializer.ts new file mode 100644 index 0000000..858b508 --- /dev/null +++ b/source/error/Initializer.ts @@ -0,0 +1,3 @@ +export class ClassInitializeError extends Error { + +} \ No newline at end of file diff --git a/source/index.ts b/source/index.ts index 31ab52f..205b57e 100644 --- a/source/index.ts +++ b/source/index.ts @@ -6,7 +6,7 @@ export { RequestError } from "./error/Request.js"; export { StudentPlans } from "./info/Plans.js"; -export {Kardex} from "./kardex/Kardex.js"; +export { Kardex } from "./kardex/Kardex.js"; export { AverageAdvance } from "./student/AverageAdvance/AvAdvance.js"; export { EliminarMateria } from "./student/RegistroMaterias/EliminarMateria.js"; @@ -37,3 +37,19 @@ export type { ProjectionSubjectType } from "./student/Projections/ProjectionsTyp export * as RegistroMateriaTypes from "./student/RegistroMaterias/RegistrarMateria.js"; export type { StudentInfoType, DomicilioFormated } from "./student/StudentInfo/InfoType.js"; export type { ScheduleInit } from "./student/Schedules/Schedule.js"; + +// Centros aka oferta +export type { CentroEducativo } from "./centros/centros/centro.js"; +export { Centros } from "./centros/centros/centros.js" + +// Carreras +export { ProgramasCentros } from "./centros/programas/programas.js"; +export type { Programa } from "./centros/programas/programa.js"; + +// Ciclos +export type { Ciclo } from "./centros/ciclos/ciclo.js" +export { Ciclos } from "./centros/ciclos/ciclos.js" + +// oferta academica +export type { MateriaOferta, OfertaAcademicaRequest } from "./centros/oferta/oferta.js"; +export { OfertaAcademica } from "./centros/oferta/ofertaAcademica.js"; \ No newline at end of file diff --git a/source/student/Card/StudentCard.ts b/source/student/Card/StudentCard.ts index f2ddae6..f1ab36c 100644 --- a/source/student/Card/StudentCard.ts +++ b/source/student/Card/StudentCard.ts @@ -26,7 +26,11 @@ export class StudentCard extends AuthMethod { await super.exec() const url = this.Route.replace(":studentCode", this.Encode()) - const request = await fetch(url); + const request = await fetch(url, { + tls: { + rejectUnauthorized: false + } + }); const data = await request.json() as DirtyCard; diff --git a/source/utils/Method.ts b/source/utils/Method.ts index 76034ef..b633707 100644 --- a/source/utils/Method.ts +++ b/source/utils/Method.ts @@ -4,28 +4,28 @@ import { LeoAuth } from "./crypto/AuthToken.js"; /** * Use this class to create a new method, it contains the AuthToken, remember to call the exec method before using the AuthToken by super.exec() */ -export class Method{ +export class Method { protected AuthToken: string; protected Route: string = ""; public isTokenUsed = false; private AuthTokenGenerator = new LeoAuth(); - - constructor(){ + + constructor() { this.AuthToken = this.AuthTokenGenerator.encrypt(); } /** * Used for create a new token after it was used */ - protected recreateToken(){ - if(this.isTokenUsed){ + protected recreateToken() { + if (this.isTokenUsed) { this.AuthToken = this.AuthTokenGenerator.encrypt(); return; } this.isTokenUsed = true; } - exec(){ + exec() { this.recreateToken(); } } @@ -37,38 +37,36 @@ export abstract class AuthMethod extends Me declare protected Auth: Login; ShouldUpCache: boolean = true; protected Props?: initType; - constructor(Auth: Login, init?: initType){ + constructor(Auth: Login, init?: initType) { super(); this.Auth = Auth; this.Props = init; } // @ts-ignore - async exec(): Promise{ + async exec(): Promise { super.exec(); - if(!this.Auth.checkVigencia()){ + if (!this.Auth.checkVigencia()) { await this.Auth.exec.bind(this.Auth)(); this.ShouldUpCache = true; } } - UpdateCache(data: T, c: typeof AuthMethod): void{ - if(!this.ShouldUpCache) + UpdateCache(data: T, c: typeof AuthMethod): void { + if (!this.ShouldUpCache) return; - if(this.Auth.Cache){ - console.log("Setting cache"); - + if (this.Auth.Cache) { this.Auth.Cache.setCache(this.Auth.StudentCode!, c, data); } this.ShouldUpCache = true; } - getCache(c: typeof AuthMethod): R | undefined{ - if(this.ShouldUpCache) + getCache(c: typeof AuthMethod): R | undefined { + if (this.ShouldUpCache) return; - if(this.Auth.Cache) + if (this.Auth.Cache) return this.Auth.Cache?.getCache(c, this.Auth.StudentCode!); } } \ No newline at end of file diff --git a/test/Kardex.test.ts b/test/Kardex.test.ts index fc1aaa0..116d2fa 100644 --- a/test/Kardex.test.ts +++ b/test/Kardex.test.ts @@ -1,9 +1,9 @@ -import {Kardex, Login} from "../source/index.ts"; +import { Kardex, Login } from "../source/index.ts"; import common from "./common.ts"; import { expect, test } from "bun:test" -if( !common.StudentCode ) +if (!common.StudentCode) await common.exec(); const kardex = new Kardex(common); @@ -12,6 +12,5 @@ test("Kardex", async () => { expect(data).toBeObject(); expect(data.certificado).toBeString(); expect(data.creditos).toBeObject(); - expect(data.informacion).toBeString(); expect(data.historiaAcademicaKardex).toBeArray(); }) \ No newline at end of file diff --git a/test/centros.test.ts b/test/centros.test.ts new file mode 100644 index 0000000..45302c4 --- /dev/null +++ b/test/centros.test.ts @@ -0,0 +1,46 @@ +import { Centros, ProgramasCentros, Login, Ciclos } from "../source/index.ts"; +import common from "./common.ts"; + +import { expect, test } from "bun:test" + +if (!common.StudentCode) + await common.exec(); + +const RespCentros = new Centros(common); +const centros = await RespCentros.exec(); + +test("Centros", () => { + expect(centros) + .toBeArray() + expect(centros[0]) + .toBeObject() + expect(centros[0].siglas) + .toBeString() + expect(centros[0].descripcion) + .toBeString() + expect(centros[0].idcentro) + .toBeString() +}) + +const Carreras = new ProgramasCentros(common, "D"); +const carreras = await Carreras.exec() +const [testing] = carreras; +test("Carreras Centros", () => { + expect(carreras) + .toBeArray() + expect(testing) + .toBeObject() + expect(testing.descprograma) + .toBeString() + expect(testing.idcentro) + .toBeString() + expect(testing.programa) + .toBeString() +}) + +const Calendarios = await new Ciclos(common, testing.programa).exec(); +test("Ciclos", () => { + expect(Calendarios).toBeArray() + expect(Calendarios[0].ciclo).toBeString() + expect(Calendarios[0].descripcion).toBeString() +}) \ No newline at end of file diff --git a/test/oferta.test.ts b/test/oferta.test.ts new file mode 100644 index 0000000..76dbf13 --- /dev/null +++ b/test/oferta.test.ts @@ -0,0 +1,21 @@ +import { OfertaAcademica, OfertaAcademicaRequest } from "../source/index.ts"; +import common from "./common.ts"; + + +import { expect, test } from "bun:test" + +if (!common.StudentCode) + await common.exec(); + +const ofertaINNI = await new OfertaAcademica(common, { + idcentro: "D", + idciclo: "2024-B", + idprograma: "INNI" +}).exec() + +test("Oferta CUCEI INNI", () => { + expect(ofertaINNI).toBeArray(); + expect(ofertaINNI[0]).toBeObject(); + expect(ofertaINNI[0].profesores).toBeArray(); + expect(ofertaINNI[0].horarios).toBeArray(); +}) \ No newline at end of file diff --git a/types/centros/centros/centros.d.ts b/types/centros/centros/centros.d.ts new file mode 100644 index 0000000..e0da056 --- /dev/null +++ b/types/centros/centros/centros.d.ts @@ -0,0 +1,6 @@ +import { AuthMethod } from "../../utils/Method.js"; +import type { CentroEducativo } from "./centro.js"; +export declare class Centros extends AuthMethod { + protected Route: string; + exec(): Promise; +} diff --git a/types/centros/ciclos/ciclos.d.ts b/types/centros/ciclos/ciclos.d.ts new file mode 100644 index 0000000..2dfd7b1 --- /dev/null +++ b/types/centros/ciclos/ciclos.d.ts @@ -0,0 +1,6 @@ +import { AuthMethod } from "../../utils/Method.js"; +import type { Ciclo } from "./ciclo.js"; +export declare class Ciclos extends AuthMethod { + protected Route: string; + exec(): Promise; +} diff --git a/types/centros/index.d.ts b/types/centros/index.d.ts new file mode 100644 index 0000000..4b1c424 --- /dev/null +++ b/types/centros/index.d.ts @@ -0,0 +1,8 @@ +export type { CentroEducativo } from "./centros/centro.js"; +export { Centros } from "./centros/centros.js"; +export { ProgramasCentros } from "./programas/programas.js"; +export type { Programa } from "./programas/programa.js"; +export type { Ciclo } from "./ciclos/ciclo.js"; +export { Ciclos } from "./ciclos/ciclos.js"; +export type { MateriaOferta, OfertaAcademicaRequest } from "./oferta/oferta.js"; +export { OfertaAcademica } from "./oferta/ofertaAcademica.js"; diff --git a/types/centros/oferta/ofertaAcademica.d.ts b/types/centros/oferta/ofertaAcademica.d.ts new file mode 100644 index 0000000..cb583be --- /dev/null +++ b/types/centros/oferta/ofertaAcademica.d.ts @@ -0,0 +1,8 @@ +import type { Login } from "../../auth/Login.js"; +import { AuthMethod } from "../../utils/Method.js"; +import type { MateriaOferta, OfertaAcademicaRequest } from "./oferta.js"; +export declare class OfertaAcademica extends AuthMethod { + protected Route: string; + constructor(auth: Login, init: Required); + exec(): Promise; +} diff --git a/types/centros/programas/programas.d.ts b/types/centros/programas/programas.d.ts new file mode 100644 index 0000000..e59a446 --- /dev/null +++ b/types/centros/programas/programas.d.ts @@ -0,0 +1,8 @@ +import type { Login } from "../../auth/Login.js"; +import { AuthMethod } from "../../utils/Method.js"; +import type { Programa } from "./programa.js"; +export declare class ProgramasCentros extends AuthMethod { + protected Route: string; + constructor(Auth: Login, init: string); + exec(): Promise; +} diff --git a/types/error/Initializer.d.ts b/types/error/Initializer.d.ts new file mode 100644 index 0000000..d44957f --- /dev/null +++ b/types/error/Initializer.d.ts @@ -0,0 +1,2 @@ +export declare class ClassInitializeError extends Error { +} diff --git a/types/index.d.ts b/types/index.d.ts index c264be5..980e8d6 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -26,3 +26,11 @@ export type { ProjectionSubjectType } from "./student/Projections/ProjectionsTyp export * as RegistroMateriaTypes from "./student/RegistroMaterias/RegistrarMateria.js"; export type { StudentInfoType, DomicilioFormated } from "./student/StudentInfo/InfoType.js"; export type { ScheduleInit } from "./student/Schedules/Schedule.js"; +export type { CentroEducativo } from "./centros/centros/centro.js"; +export { Centros } from "./centros/centros/centros.js"; +export { ProgramasCentros } from "./centros/programas/programas.js"; +export type { Programa } from "./centros/programas/programa.js"; +export type { Ciclo } from "./centros/ciclos/ciclo.js"; +export { Ciclos } from "./centros/ciclos/ciclos.js"; +export type { MateriaOferta, OfertaAcademicaRequest } from "./centros/oferta/oferta.js"; +export { OfertaAcademica } from "./centros/oferta/ofertaAcademica.js";