diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e2ac661..0000000 --- a/docs/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js deleted file mode 100644 index fb85f0a..0000000 --- a/docs/assets/hierarchy.js +++ /dev/null @@ -1 +0,0 @@ -window.hierarchyData = "eJyrVirKzy8pVrKKjtVRKkpNy0lNLsnMzytWsqqurQUAmx4Kpg==" \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css deleted file mode 100644 index bc15ac9..0000000 --- a/docs/assets/highlight.css +++ /dev/null @@ -1,92 +0,0 @@ -:root { - --light-hl-0: #795E26; - --dark-hl-0: #DCDCAA; - --light-hl-1: #000000; - --dark-hl-1: #D4D4D4; - --light-hl-2: #A31515; - --dark-hl-2: #CE9178; - --light-hl-3: #001080; - --dark-hl-3: #9CDCFE; - --light-hl-4: #000000; - --dark-hl-4: #C8C8C8; - --light-hl-5: #0000FF; - --dark-hl-5: #569CD6; - --light-hl-6: #267F99; - --dark-hl-6: #4EC9B0; - --light-hl-7: #098658; - --dark-hl-7: #B5CEA8; - --light-hl-8: #AF00DB; - --dark-hl-8: #C586C0; - --light-hl-9: #008000; - --dark-hl-9: #6A9955; - --light-code-background: #FFFFFF; - --dark-code-background: #1E1E1E; -} - -@media (prefers-color-scheme: light) { :root { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --hl-8: var(--light-hl-8); - --hl-9: var(--light-hl-9); - --code-background: var(--light-code-background); -} } - -@media (prefers-color-scheme: dark) { :root { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --hl-8: var(--dark-hl-8); - --hl-9: var(--dark-hl-9); - --code-background: var(--dark-code-background); -} } - -:root[data-theme='light'] { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --hl-8: var(--light-hl-8); - --hl-9: var(--light-hl-9); - --code-background: var(--light-code-background); -} - -:root[data-theme='dark'] { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --hl-8: var(--dark-hl-8); - --hl-9: var(--dark-hl-9); - --code-background: var(--dark-code-background); -} - -.hl-0 { color: var(--hl-0); } -.hl-1 { color: var(--hl-1); } -.hl-2 { color: var(--hl-2); } -.hl-3 { color: var(--hl-3); } -.hl-4 { color: var(--hl-4); } -.hl-5 { color: var(--hl-5); } -.hl-6 { color: var(--hl-6); } -.hl-7 { color: var(--hl-7); } -.hl-8 { color: var(--hl-8); } -.hl-9 { color: var(--hl-9); } -pre, code { background: var(--code-background); } diff --git a/docs/assets/icons.js b/docs/assets/icons.js deleted file mode 100644 index 58882d7..0000000 --- a/docs/assets/icons.js +++ /dev/null @@ -1,18 +0,0 @@ -(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 = `MMNEPVFCICPMFPCPTTAAATR`; - svg.style.display = "none"; - if (location.protocol === "file:") updateUseElements(); - } - - function updateUseElements() { - document.querySelectorAll("use").forEach(el => { - if (el.getAttribute("href").includes("#icon-")) { - el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); - } - }); - } -})() \ No newline at end of file diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg deleted file mode 100644 index 50ad579..0000000 --- a/docs/assets/icons.svg +++ /dev/null @@ -1 +0,0 @@ -MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js deleted file mode 100644 index 2363f64..0000000 --- a/docs/assets/main.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; -"use strict";(()=>{var De=Object.create;var le=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ne(e))!Be.call(t,i)&&i!==n&&le(t,i,{get:()=>e[i],enumerable:!(r=Fe(e,i))||r.enumerable});return t};var $e=(t,e,n)=>(n=t!=null?De(Ve(t)):{},je(e||!t||!t.__esModule?le(n,"default",{value:t,enumerable:!0}):n,t));var pe=qe((de,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,c],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof de=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){ce.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!ze(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function A(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await A(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove("loading"),e.classList.add("ready")}function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{fe(e,t)}),fe(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{re(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener("input",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Je(e,t):i.key=="ArrowUp"?(me(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(me(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),re(t))})}function re(t){t.classList.remove("has-focus")}function Ue(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ye(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=c+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function me(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Je(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),re(e)}}function ye(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ne(t.substring(s,o)),`${ne(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join("")}var Ge={"&":"&","<":"<",">":">","'":"'",'"':"""};function ne(t){return t.replace(/[&<>"'"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var H="mousedown",Ee="mousemove",B="mouseup",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,be=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(be?"is-mobile":"not-mobile");be&&"ontouchstart"in document.documentElement&&(Xe=!0,H="touchstart",Ee="touchmove",B="touchend");document.addEventListener(H,t=>{ie=!0,D=!1;let e=H=="touchstart"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=H=="touchstart"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(H,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var Z=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Te),Te())}async function Te(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await A(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith("/")||(ee+="/"),t.innerHTML="";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',ke(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(document.createElement("span")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith("/")||(te+="/");function Pe(){document.querySelector(".tsd-full-hierarchy")?Ye():document.querySelector(".tsd-hierarchy")&&Ze()}function Ye(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=tt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Qe),Qe())}async function Qe(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await A(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),Ke(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(_e(e,i,n))}function _e(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=_e(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}G(Y,"a[data-toggle]");G(K,".tsd-accordion");G(Z,".tsd-filter-item input[type=checkbox]");var Oe=document.getElementById("tsd-theme");Oe&&Se(Oe);var nt=new J;Object.defineProperty(window,"app",{value:nt});ve();Ce();Pe();})(); -/*! Bundled license information: - -lunr/lunr.js: - (** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - *) - (*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Set - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.tokenizer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Vector - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.stemmer - * Copyright (C) 2020 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - *) - (*! - * lunr.stopWordFilter - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.trimmer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.TokenSet - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Builder - * Copyright (C) 2020 Oliver Nightingale - *) -*/ diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js deleted file mode 100644 index 795748e..0000000 --- a/docs/assets/navigation.js +++ /dev/null @@ -1 +0,0 @@ -window.navigationData = "eJyVll1vmzAUhv+Lr6NtYVuX5S5tE4m1zaak1T6qCJngNN6MHdkmBVX57xM0gA22cW8573nOl3UOjy9AolyCKcA0QTkYgQOUezAFKUsygsT76vO7vUwJGIF/mCZgGozAdo9JwhEF08cGcFlINL5oCVsChWgIr1YdNA4mp1HjH0rEocRHNJuvx8HkRxYTvA3pIZM2pt3DLw4S42DSwo+QYxgTA74S6syPwWmjQAmOgbktsyRZsYwmN6jod5fgOFIEXn2GJuAuo1uJGe0joQ1/8Umr4AYV8/wAqcCMmhNVFV6Z/mQ8aVGyOJhApahD+/D1y/hzoOSGSnVZgTYvvWYNqjr0qm65T0iW4YUXsxY7eJxJvWYH7qx10EQWe9POWgftmfHkF+NetLPW+V7ucH7FSJZSYX4trd3rrTyltd6WoQJsxY6C3wK089SS15fMsCFLVGnxKlPEKkLPp4KUAtebiFkexYVEg5BK5S5nj3dyxZ4tA2zMfoX1YZ3EGpwwg6vs1PwyiYmwbNUto0JCKg25V25RI/C7Xb/v59E6/DM3XYMusBH3LkKb+/LhLlp9f1heryPLjelSdQ8HehV+W17P5rfRIlyGb0jb5Ddw04S0tbe0eXV2gRFJbjVSfcQVUqPqH241oxX+SxOIyNXQ9HtCv8u622GKohRKjnN7S/twzdExOkyPkbYAhtFnF+egaq8FpliiqpdDjVGkXq1xhtAHagoxGFb/RXvt5z2HVOwYT00rxR6r4zy40Wec27p1Nntv9giqrO5wa1qtNMx0c9r8B79p/9w=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js deleted file mode 100644 index ebd51dd..0000000 --- a/docs/assets/search.js +++ /dev/null @@ -1 +0,0 @@ -window.searchData = "eJy1m2tT20YXx7/L5q1K2JuN/S5JyZQ2TTqkfS71MB7ZFqDGlqgkEyjDd+/sSrbO0R6ZYzDvGGvP/1z024t2lwdR5N9LMZ48iG9pthBjFYksXiViLNJskdyJSKyLpRiLVb5YL5Pyrf/16LpaLUUk5su4LJNSjIV4jEKFZTp7+26xOM/X2eKX5D7QWqazKXi+U3VgtrIxIXm5zuZVmmehaLzTQSRu4iLJKiLavox+Se5P727irEzzjEwJNuDm9D0vFv/Li558kGLT9OlkUKCk16uk+m9eLEqO203bQ/gtcq/Fcds0PYTXcj3jem2aHsJr4h47oKQ64biG7Z/tXx2PhtK23KK8q/sbitQXJYy7yK/p3Yd8uV5lJdlB2sfc7rHaWPRUEChumz6dCwiT7h57uL16qV9cwa/v83DsdS7dA27VyhkQwZF7Gff86Wh9KL3609l9lTzlxDfa21OnItfpZXXuJiuyLJun7NoEcp3Yt4LlDuluAltRKot1lS7Lt+fpX9kiTpYf8qys4qwK8/HtpkG7nZlpOG/fTuGLv42LNJ7tEm4sdufXFz0ZQ3x5mWbJdBVXRbpPJMjupfH0Vf5jmqVV8jFNlosnag9a7qy+VCdbX7u8NMY7vPA895YBOoWzgWnjuyzy1aGieuPELhuxPeOjRPtinq7Wy+pLlhwiZK+Ve61XjPgOrOVeEGwt84pxumIcItBG5xUjjRcHIbaWecU4F+ntIeKsZV4xzjS7TYryIF2qlTpsvPCbz08MvxdxVl7mxYqYtPvj7tgeYDztTCxu3fKuKHomk+Ypd/r266UYqHVnzY3epiEnn02E/TnMn1iOzPddhnz+49fp+Zc/Pv/4dQq/fLrZtLrYgJPVfPci5Pzs588/vjv9NP149vns99Pp17M/TxlxUGYHiOb9//khbNs+12/37S7Tsup5se4Re3Hje8InKIaHDS+2bcSJ3kdGFuysSoq4Sm+Td0lJE1TvRXXa7XZab2rRybVCp1+lOvltPVum87PsZh1m2/XcNdgziGPVjnTz9OY6CRcPLI9vtsat46pc/JCWP6TZdVKkVbIIAtkh2lOo9/dVIgc9IdYP9ysAmpj+TIr8ae03/9TNdjhomu9aCLsWJcOZaztr2r7MY3dfZLfP+bb1Xl4RUB++fMLjTr/Leb6cluk//TM5N0v6A4POcff3A/tNpldnWV9HDV5lepVm/etVjk9qgR8627V+52b2E9iF353WtW+5lzcr2wHXTyTFel6xUsOtn5+isyuq07/X8ZLTK+rmyab58/1WObfzV/nLu36V8zt+lT+z23c8cjthlb+8C1Y5D9MqfwakaDi7jZfr8Ksl9LRpt89MuPF8ETVT1PhBuE8bt9c9FupIH41EJHy13JlZHVIk5vlqlfjxZJHP1/7Pi6bZfxLXQVzjuvXbYxFNjiM9OBoqeXERTTbG/oH/YaPR/uINpYgmkjKUgaFEhkpEE0UZqsBQIUMtoommDHVgqJGhEdHEUIYmMDTI0IpoYilDGxhaZDgQ0WRAGQ4CwwEyHIpoMqQMh4HhEBmeiGhyQhmeBIYnyHAkosmIMhwFhiMMgONBkuzIEB7ZocfjQ/NDAIQJko4LSTIkQ4gkpkg6NiTJkQxBkpgk6fiQJEsyhElimqRjRJI8yRAoiYly69uJJJmSIVQSUyUdK5LkSoZgSUyWdLxIki0ZwiUxXdIxI0m+ZAiYxIQpx4wiCVMhYQoTphwziiRMhYSpzhjlByl6lCKGKUyYcswoHWl5NJAKG4eEKUyYcswokjAVEqYwYcoxoyzpOSRMYcKUY0aRhKmQMIUJU44ZRRKmQsIUJsx9TE8USZgKCVOYMOWYUSRhKiRMYcK0Y0aThOmQMI0J044ZTRKmQ8I0Jkw7ZjRJmA4J052Z0E+F9FxITIaYMO2Y0SRhOiRMY8K0Y0aTY5gOCdOYMO2Y0SRhOiRMY8K0Y0aThOmQMI0J044ZTRKmQ8I0Jkw7ZjRJmA4J05gw45gxJGEmJMxgwoxjxpCEmZAwgwkzjhlDEmZCwgwmzDhmDEmYCQkznfWWX3DRKy5iyYUJM44ZQxJmQsIMJsw4ZgxJmAkJM5gwM+wdt01ImMGEGceMIfE0IWEGE2ZGveO2CQkzmDDrCSPZtiFhFhNmPWEk2zYkzGLCrGPGkmzbkDCLCbOOGUuybUPCLCbMOmYsybYNCbOdVb1f1pNsW2JhjwmzjhlLsm1DwiwmzDpmLP1FERLW/OQ//m7dJsPirP4InExEe2r8IKbNt2H7UfoglBHjh8fH9ltw/PAIPgfdM+fLnz4ChSFQGHIVCndD8Zu7/AiUgBBPB9/QAErHQOp4D62qPZxr1TRQ00w1tMPTSlkgZXlJzpqN6lbEgEIZvkizKwryGoC8Biydzd48CEaCYCRPZLtDC2RALIYZC9y8A0ojUGJeQP6cGtBzAug5YSnUFx6/NRckWymgxBPyGy71SRd4UUBGM3XADjGoDeirZg+heusQ6IBRw/BGDXQSAJQsULJspWazD7wzDd6Zri0NbzTa7jqDqEDBLa/HXyXV9/oaMujtQIUnskrv5s1lzVZGgv4uef29uffeaoBxh5fP9gYeiAP0LDniqtS3KsCbAiqKqbI53IubU1TQNYCafpbajT8qTOsjUoAAqJjhlczdnuyZ2sAgyRuSnNa35D5pL+mDnEHKbLEtWYhQCbKU/CzLLhkgJMmPyd9K9f+7AbXATCB5MwHda2DNeUWvL4ABVEEoihdKtl5NPQDltEsqGDM1b8wsmhs800t/hSecwMEAo3kjzEayVgyHUbgG4w01Re4HPqgCysarWsATqJXk1aq9cgTqA7LRvGzAdXAQDqiz5NWZRhtMv5I3OZXrWbe6QISnsT37AzMT6ByW12HBiR7QARW2vBe1PakDKmD4sLz6NmdwQAMgY3nUBZfGADlwjOXVB15SAkLgbWne66qFNh2VDE+C9YnkreOwal/3B1go3phZ67pu0+18QEvztJrjTvBS4QqKV71ubwHrA97ywAncdT4pwFKApdGxVyANZZvFKS+a+oYQCAWAaRhgXkTiJr1JlmmWiPHk4vHxX9zYpzE="; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css deleted file mode 100644 index 2ab8b83..0000000 --- a/docs/assets/style.css +++ /dev/null @@ -1,1611 +0,0 @@ -@layer typedoc { - :root { - /* Light */ - --light-color-background: #f2f4f8; - --light-color-background-secondary: #eff0f1; - --light-color-warning-text: #222; - --light-color-background-warning: #e6e600; - --light-color-accent: #c5c7c9; - --light-color-active-menu-item: var(--light-color-accent); - --light-color-text: #222; - --light-color-text-aside: #6e6e6e; - - --light-color-icon-background: var(--light-color-background); - --light-color-icon-text: var(--light-color-text); - - --light-color-comment-tag-text: var(--light-color-text); - --light-color-comment-tag: var(--light-color-background); - - --light-color-link: #1f70c2; - --light-color-focus-outline: #3584e4; - - --light-color-ts-keyword: #056bd6; - --light-color-ts-project: #b111c9; - --light-color-ts-module: var(--light-color-ts-project); - --light-color-ts-namespace: var(--light-color-ts-project); - --light-color-ts-enum: #7e6f15; - --light-color-ts-enum-member: var(--light-color-ts-enum); - --light-color-ts-variable: #4760ec; - --light-color-ts-function: #572be7; - --light-color-ts-class: #1f70c2; - --light-color-ts-interface: #108024; - --light-color-ts-constructor: var(--light-color-ts-class); - --light-color-ts-property: #9f5f30; - --light-color-ts-method: #be3989; - --light-color-ts-reference: #ff4d82; - --light-color-ts-call-signature: var(--light-color-ts-method); - --light-color-ts-index-signature: var(--light-color-ts-property); - --light-color-ts-constructor-signature: var( - --light-color-ts-constructor - ); - --light-color-ts-parameter: var(--light-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --light-color-ts-type-parameter: #a55c0e; - --light-color-ts-accessor: #c73c3c; - --light-color-ts-get-signature: var(--light-color-ts-accessor); - --light-color-ts-set-signature: var(--light-color-ts-accessor); - --light-color-ts-type-alias: #d51270; - /* reference not included as links will be colored with the kind that it points to */ - --light-color-document: #000000; - - --light-color-alert-note: #0969d9; - --light-color-alert-tip: #1a7f37; - --light-color-alert-important: #8250df; - --light-color-alert-warning: #9a6700; - --light-color-alert-caution: #cf222e; - - --light-external-icon: url("data:image/svg+xml;utf8,"); - --light-color-scheme: light; - - /* Dark */ - --dark-color-background: #2b2e33; - --dark-color-background-secondary: #1e2024; - --dark-color-background-warning: #bebe00; - --dark-color-warning-text: #222; - --dark-color-accent: #9096a2; - --dark-color-active-menu-item: #5d5d6a; - --dark-color-text: #f5f5f5; - --dark-color-text-aside: #dddddd; - - --dark-color-icon-background: var(--dark-color-background-secondary); - --dark-color-icon-text: var(--dark-color-text); - - --dark-color-comment-tag-text: var(--dark-color-text); - --dark-color-comment-tag: var(--dark-color-background); - - --dark-color-link: #00aff4; - --dark-color-focus-outline: #4c97f2; - - --dark-color-ts-keyword: #3399ff; - --dark-color-ts-project: #e358ff; - --dark-color-ts-module: var(--dark-color-ts-project); - --dark-color-ts-namespace: var(--dark-color-ts-project); - --dark-color-ts-enum: #f4d93e; - --dark-color-ts-enum-member: var(--dark-color-ts-enum); - --dark-color-ts-variable: #798dff; - --dark-color-ts-function: #a280ff; - --dark-color-ts-class: #8ac4ff; - --dark-color-ts-interface: #6cff87; - --dark-color-ts-constructor: var(--dark-color-ts-class); - --dark-color-ts-property: #ff984d; - --dark-color-ts-method: #ff4db8; - --dark-color-ts-reference: #ff4d82; - --dark-color-ts-call-signature: var(--dark-color-ts-method); - --dark-color-ts-index-signature: var(--dark-color-ts-property); - --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); - --dark-color-ts-parameter: var(--dark-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --dark-color-ts-type-parameter: #e07d13; - --dark-color-ts-accessor: #ff6060; - --dark-color-ts-get-signature: var(--dark-color-ts-accessor); - --dark-color-ts-set-signature: var(--dark-color-ts-accessor); - --dark-color-ts-type-alias: #ff6492; - /* reference not included as links will be colored with the kind that it points to */ - --dark-color-document: #ffffff; - - --dark-color-alert-note: #0969d9; - --dark-color-alert-tip: #1a7f37; - --dark-color-alert-important: #8250df; - --dark-color-alert-warning: #9a6700; - --dark-color-alert-caution: #cf222e; - - --dark-external-icon: url("data:image/svg+xml;utf8,"); - --dark-color-scheme: dark; - } - - @media (prefers-color-scheme: light) { - :root { - --color-background: var(--light-color-background); - --color-background-secondary: var( - --light-color-background-secondary - ); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - - --color-icon-background: var(--light-color-icon-background); - --color-icon-text: var(--light-color-icon-text); - - --color-comment-tag-text: var(--light-color-text); - --color-comment-tag: var(--light-color-background); - - --color-link: var(--light-color-link); - --color-focus-outline: var(--light-color-focus-outline); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-project: var(--light-color-ts-project); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-reference: var(--light-color-ts-reference); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - --color-document: var(--light-color-document); - - --color-alert-note: var(--light-color-alert-note); - --color-alert-tip: var(--light-color-alert-tip); - --color-alert-important: var(--light-color-alert-important); - --color-alert-warning: var(--light-color-alert-warning); - --color-alert-caution: var(--light-color-alert-caution); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); - } - } - - @media (prefers-color-scheme: dark) { - :root { - --color-background: var(--dark-color-background); - --color-background-secondary: var( - --dark-color-background-secondary - ); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - - --color-icon-background: var(--dark-color-icon-background); - --color-icon-text: var(--dark-color-icon-text); - - --color-comment-tag-text: var(--dark-color-text); - --color-comment-tag: var(--dark-color-background); - - --color-link: var(--dark-color-link); - --color-focus-outline: var(--dark-color-focus-outline); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-project: var(--dark-color-ts-project); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-reference: var(--dark-color-ts-reference); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - --color-document: var(--dark-color-document); - - --color-alert-note: var(--dark-color-alert-note); - --color-alert-tip: var(--dark-color-alert-tip); - --color-alert-important: var(--dark-color-alert-important); - --color-alert-warning: var(--dark-color-alert-warning); - --color-alert-caution: var(--dark-color-alert-caution); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); - } - } - - html { - color-scheme: var(--color-scheme); - } - - body { - margin: 0; - } - - :root[data-theme="light"] { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-icon-text: var(--light-color-icon-text); - - --color-comment-tag-text: var(--light-color-text); - --color-comment-tag: var(--light-color-background); - - --color-link: var(--light-color-link); - --color-focus-outline: var(--light-color-focus-outline); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-project: var(--light-color-ts-project); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-reference: var(--light-color-ts-reference); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - --color-document: var(--light-color-document); - - --color-note: var(--light-color-note); - --color-tip: var(--light-color-tip); - --color-important: var(--light-color-important); - --color-warning: var(--light-color-warning); - --color-caution: var(--light-color-caution); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); - } - - :root[data-theme="dark"] { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-icon-text: var(--dark-color-icon-text); - - --color-comment-tag-text: var(--dark-color-text); - --color-comment-tag: var(--dark-color-background); - - --color-link: var(--dark-color-link); - --color-focus-outline: var(--dark-color-focus-outline); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-project: var(--dark-color-ts-project); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-reference: var(--dark-color-ts-reference); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - --color-document: var(--dark-color-document); - - --color-note: var(--dark-color-note); - --color-tip: var(--dark-color-tip); - --color-important: var(--dark-color-important); - --color-warning: var(--dark-color-warning); - --color-caution: var(--dark-color-caution); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); - } - - *:focus-visible, - .tsd-accordion-summary:focus-visible svg { - outline: 2px solid var(--color-focus-outline); - } - - .always-visible, - .always-visible .tsd-signatures { - display: inherit !important; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - line-height: 1.2; - } - - h1 { - font-size: 1.875rem; - margin: 0.67rem 0; - } - - h2 { - font-size: 1.5rem; - margin: 0.83rem 0; - } - - h3 { - font-size: 1.25rem; - margin: 1rem 0; - } - - h4 { - font-size: 1.05rem; - margin: 1.33rem 0; - } - - h5 { - font-size: 1rem; - margin: 1.5rem 0; - } - - h6 { - font-size: 0.875rem; - margin: 2.33rem 0; - } - - dl, - menu, - ol, - ul { - margin: 1em 0; - } - - dd { - margin: 0 0 0 34px; - } - - .container { - max-width: 1700px; - padding: 0 2rem; - } - - /* Footer */ - footer { - border-top: 1px solid var(--color-accent); - padding-top: 1rem; - padding-bottom: 1rem; - max-height: 3.5rem; - } - footer > p { - margin: 0 1em; - } - - .container-main { - margin: 0 auto; - /* toolbar, footer, margin */ - min-height: calc(100vh - 41px - 56px - 4rem); - } - - @keyframes fade-in { - from { - opacity: 0; - } - to { - opacity: 1; - } - } - @keyframes fade-out { - from { - opacity: 1; - visibility: visible; - } - to { - opacity: 0; - } - } - @keyframes fade-in-delayed { - 0% { - opacity: 0; - } - 33% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - @keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; - } - 66% { - opacity: 0; - } - 100% { - opacity: 0; - } - } - @keyframes pop-in-from-right { - from { - transform: translate(100%, 0); - } - to { - transform: translate(0, 0); - } - } - @keyframes pop-out-to-right { - from { - transform: translate(0, 0); - visibility: visible; - } - to { - transform: translate(100%, 0); - } - } - body { - background: var(--color-background); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", - Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; - font-size: 16px; - color: var(--color-text); - } - - a { - color: var(--color-link); - text-decoration: none; - } - a:hover { - text-decoration: underline; - } - a.external[target="_blank"] { - background-image: var(--external-icon); - background-position: top 3px right; - background-repeat: no-repeat; - padding-right: 13px; - } - a.tsd-anchor-link { - color: var(--color-text); - } - - code, - pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - padding: 0.2em; - margin: 0; - font-size: 0.875rem; - border-radius: 0.8em; - } - - pre { - position: relative; - white-space: pre-wrap; - word-wrap: break-word; - padding: 10px; - border: 1px solid var(--color-accent); - margin-bottom: 8px; - } - pre code { - padding: 0; - font-size: 100%; - } - pre > button { - position: absolute; - top: 10px; - right: 10px; - opacity: 0; - transition: opacity 0.1s; - box-sizing: border-box; - } - pre:hover > button, - pre > button.visible { - opacity: 1; - } - - blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid gray; - } - - .tsd-typography { - line-height: 1.333em; - } - .tsd-typography ul { - list-style: square; - padding: 0 0 0 20px; - margin: 0; - } - .tsd-typography .tsd-index-panel h3, - .tsd-index-panel .tsd-typography h3, - .tsd-typography h4, - .tsd-typography h5, - .tsd-typography h6 { - font-size: 1em; - } - .tsd-typography h5, - .tsd-typography h6 { - font-weight: normal; - } - .tsd-typography p, - .tsd-typography ul, - .tsd-typography ol { - margin: 1em 0; - } - .tsd-typography table { - border-collapse: collapse; - border: none; - } - .tsd-typography td, - .tsd-typography th { - padding: 6px 13px; - border: 1px solid var(--color-accent); - } - .tsd-typography thead, - .tsd-typography tr:nth-child(even) { - background-color: var(--color-background-secondary); - } - - .tsd-alert { - padding: 8px 16px; - margin-bottom: 16px; - border-left: 0.25em solid var(--alert-color); - } - .tsd-alert blockquote > :last-child, - .tsd-alert > :last-child { - margin-bottom: 0; - } - .tsd-alert-title { - color: var(--alert-color); - display: inline-flex; - align-items: center; - } - .tsd-alert-title span { - margin-left: 4px; - } - - .tsd-alert-note { - --alert-color: var(--color-alert-note); - } - .tsd-alert-tip { - --alert-color: var(--color-alert-tip); - } - .tsd-alert-important { - --alert-color: var(--color-alert-important); - } - .tsd-alert-warning { - --alert-color: var(--color-alert-warning); - } - .tsd-alert-caution { - --alert-color: var(--color-alert-caution); - } - - .tsd-breadcrumb { - margin: 0; - padding: 0; - color: var(--color-text-aside); - } - .tsd-breadcrumb a { - color: var(--color-text-aside); - text-decoration: none; - } - .tsd-breadcrumb a:hover { - text-decoration: underline; - } - .tsd-breadcrumb li { - display: inline; - } - .tsd-breadcrumb li:after { - content: " / "; - } - - .tsd-comment-tags { - display: flex; - flex-direction: column; - } - dl.tsd-comment-tag-group { - display: flex; - align-items: center; - overflow: hidden; - margin: 0.5em 0; - } - dl.tsd-comment-tag-group dt { - display: flex; - margin-right: 0.5em; - font-size: 0.875em; - font-weight: normal; - } - dl.tsd-comment-tag-group dd { - margin: 0; - } - code.tsd-tag { - padding: 0.25em 0.4em; - border: 0.1em solid var(--color-accent); - margin-right: 0.25em; - font-size: 70%; - } - h1 code.tsd-tag:first-of-type { - margin-left: 0.25em; - } - - dl.tsd-comment-tag-group dd:before, - dl.tsd-comment-tag-group dd:after { - content: " "; - } - dl.tsd-comment-tag-group dd pre, - dl.tsd-comment-tag-group dd:after { - clear: both; - } - dl.tsd-comment-tag-group p { - margin: 0; - } - - .tsd-panel.tsd-comment .lead { - font-size: 1.1em; - line-height: 1.333em; - margin-bottom: 2em; - } - .tsd-panel.tsd-comment .lead:last-child { - margin-bottom: 0; - } - - .tsd-filter-visibility h4 { - font-size: 1rem; - padding-top: 0.75rem; - padding-bottom: 0.5rem; - margin: 0; - } - .tsd-filter-item:not(:last-child) { - margin-bottom: 0.5rem; - } - .tsd-filter-input { - display: flex; - width: -moz-fit-content; - width: fit-content; - align-items: center; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - } - .tsd-filter-input input[type="checkbox"] { - cursor: pointer; - position: absolute; - width: 1.5em; - height: 1.5em; - opacity: 0; - } - .tsd-filter-input input[type="checkbox"]:disabled { - pointer-events: none; - } - .tsd-filter-input svg { - cursor: pointer; - width: 1.5em; - height: 1.5em; - margin-right: 0.5em; - border-radius: 0.33em; - /* Leaving this at full opacity breaks event listeners on Firefox. - Don't remove unless you know what you're doing. */ - opacity: 0.99; - } - .tsd-filter-input input[type="checkbox"]:focus-visible + svg { - outline: 2px solid var(--color-focus-outline); - } - .tsd-checkbox-background { - fill: var(--color-accent); - } - input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { - stroke: var(--color-text); - } - .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { - fill: var(--color-background); - stroke: var(--color-accent); - stroke-width: 0.25rem; - } - .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { - stroke: var(--color-accent); - } - - .settings-label { - font-weight: bold; - text-transform: uppercase; - display: inline-block; - } - - .tsd-filter-visibility .settings-label { - margin: 0.75rem 0 0.5rem 0; - } - - .tsd-theme-toggle .settings-label { - margin: 0.75rem 0.75rem 0 0; - } - - .tsd-hierarchy h4 label:hover span { - text-decoration: underline; - } - - .tsd-hierarchy { - list-style: square; - margin: 0; - } - .tsd-hierarchy-target { - font-weight: bold; - } - .tsd-hierarchy-toggle { - color: var(--color-link); - cursor: pointer; - } - - .tsd-full-hierarchy:not(:last-child) { - margin-bottom: 1em; - padding-bottom: 1em; - border-bottom: 1px solid var(--color-accent); - } - .tsd-full-hierarchy, - .tsd-full-hierarchy ul { - list-style: none; - margin: 0; - padding: 0; - } - .tsd-full-hierarchy ul { - padding-left: 1.5rem; - } - .tsd-full-hierarchy a { - padding: 0.25rem 0 !important; - font-size: 1rem; - display: inline-flex; - align-items: center; - color: var(--color-text); - } - .tsd-full-hierarchy svg[data-dropdown] { - cursor: pointer; - } - .tsd-full-hierarchy svg[data-dropdown="false"] { - transform: rotate(-90deg); - } - .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul { - display: none; - } - - .tsd-panel-group.tsd-index-group { - margin-bottom: 0; - } - .tsd-index-panel .tsd-index-list { - list-style: none; - line-height: 1.333em; - margin: 0; - padding: 0.25rem 0 0 0; - overflow: hidden; - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: 1rem; - grid-template-rows: auto; - } - @media (max-width: 1024px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(2, 1fr); - } - } - @media (max-width: 768px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(1, 1fr); - } - } - .tsd-index-panel .tsd-index-list li { - -webkit-page-break-inside: avoid; - -moz-page-break-inside: avoid; - -ms-page-break-inside: avoid; - -o-page-break-inside: avoid; - page-break-inside: avoid; - } - - .tsd-flag { - display: inline-block; - padding: 0.25em 0.4em; - border-radius: 4px; - color: var(--color-comment-tag-text); - background-color: var(--color-comment-tag); - text-indent: 0; - font-size: 75%; - line-height: 1; - font-weight: normal; - } - - .tsd-anchor { - position: relative; - top: -100px; - } - - .tsd-member { - position: relative; - } - .tsd-member .tsd-anchor + h3 { - display: flex; - align-items: center; - margin-top: 0; - margin-bottom: 0; - border-bottom: none; - } - - .tsd-navigation.settings { - margin: 1rem 0; - } - .tsd-navigation > a, - .tsd-navigation .tsd-accordion-summary { - width: calc(100% - 0.25rem); - display: flex; - align-items: center; - } - .tsd-navigation a, - .tsd-navigation summary > span, - .tsd-page-navigation a { - display: flex; - width: calc(100% - 0.25rem); - align-items: center; - padding: 0.25rem; - color: var(--color-text); - text-decoration: none; - box-sizing: border-box; - } - .tsd-navigation a.current, - .tsd-page-navigation a.current { - background: var(--color-active-menu-item); - } - .tsd-navigation a:hover, - .tsd-page-navigation a:hover { - text-decoration: underline; - } - .tsd-navigation ul, - .tsd-page-navigation ul { - margin-top: 0; - margin-bottom: 0; - padding: 0; - list-style: none; - } - .tsd-navigation li, - .tsd-page-navigation li { - padding: 0; - max-width: 100%; - } - .tsd-navigation .tsd-nav-link { - display: none; - } - .tsd-nested-navigation { - margin-left: 3rem; - } - .tsd-nested-navigation > li > details { - margin-left: -1.5rem; - } - .tsd-small-nested-navigation { - margin-left: 1.5rem; - } - .tsd-small-nested-navigation > li > details { - margin-left: -1.5rem; - } - - .tsd-page-navigation-section { - margin-left: 10px; - } - .tsd-page-navigation-section > summary { - padding: 0.25rem; - } - .tsd-page-navigation-section > div { - margin-left: 20px; - } - .tsd-page-navigation ul { - padding-left: 1.75rem; - } - - #tsd-sidebar-links a { - margin-top: 0; - margin-bottom: 0.5rem; - line-height: 1.25rem; - } - #tsd-sidebar-links a:last-of-type { - margin-bottom: 0; - } - - a.tsd-index-link { - padding: 0.25rem 0 !important; - font-size: 1rem; - line-height: 1.25rem; - display: inline-flex; - align-items: center; - color: var(--color-text); - } - .tsd-accordion-summary { - list-style-type: none; /* hide marker on non-safari */ - outline: none; /* broken on safari, so just hide it */ - } - .tsd-accordion-summary::-webkit-details-marker { - display: none; /* hide marker on safari */ - } - .tsd-accordion-summary, - .tsd-accordion-summary a { - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - - cursor: pointer; - } - .tsd-accordion-summary a { - width: calc(100% - 1.5rem); - } - .tsd-accordion-summary > * { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; - } - .tsd-accordion .tsd-accordion-summary > svg { - margin-left: 0.25rem; - vertical-align: text-top; - } - /* - * We need to be careful to target the arrow indicating whether the accordion - * is open, but not any other SVGs included in the details element. - */ - .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h5 > svg:first-child { - transform: rotate(-90deg); - } - .tsd-index-content > :not(:first-child) { - margin-top: 0.75rem; - } - .tsd-index-heading { - margin-top: 1.5rem; - margin-bottom: 0.75rem; - } - - .tsd-no-select { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - .tsd-kind-icon { - margin-right: 0.5rem; - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - min-height: 1.25rem; - } - .tsd-signature > .tsd-kind-icon { - margin-right: 0.8rem; - } - - .tsd-panel { - margin-bottom: 2.5rem; - } - .tsd-panel.tsd-member { - margin-bottom: 4rem; - } - .tsd-panel:empty { - display: none; - } - .tsd-panel > h1, - .tsd-panel > h2, - .tsd-panel > h3 { - margin: 1.5rem -1.5rem 0.75rem -1.5rem; - padding: 0 1.5rem 0.75rem 1.5rem; - } - .tsd-panel > h1.tsd-before-signature, - .tsd-panel > h2.tsd-before-signature, - .tsd-panel > h3.tsd-before-signature { - margin-bottom: 0; - border-bottom: none; - } - - .tsd-panel-group { - margin: 2rem 0; - } - .tsd-panel-group.tsd-index-group { - margin: 2rem 0; - } - .tsd-panel-group.tsd-index-group details { - margin: 2rem 0; - } - .tsd-panel-group > .tsd-accordion-summary { - margin-bottom: 1rem; - } - - #tsd-search { - transition: background-color 0.2s; - } - #tsd-search .title { - position: relative; - z-index: 2; - } - #tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 2.5rem; - height: 100%; - } - #tsd-search .field input { - box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; - width: 100%; - padding: 0 10px; - opacity: 0; - outline: 0; - border: 0; - background: transparent; - color: var(--color-text); - } - #tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; - } - #tsd-search .field input, - #tsd-search .title, - #tsd-toolbar-links a { - transition: opacity 0.2s; - } - #tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; - margin: 0; - padding: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); - } - #tsd-search .results li { - background-color: var(--color-background); - line-height: initial; - padding: 4px; - } - #tsd-search .results li:nth-child(even) { - background-color: var(--color-background-secondary); - } - #tsd-search .results li.state { - display: none; - } - #tsd-search .results li.current:not(.no-results), - #tsd-search .results li:hover:not(.no-results) { - background-color: var(--color-accent); - } - #tsd-search .results a { - display: flex; - align-items: center; - padding: 0.25rem; - box-sizing: border-box; - } - #tsd-search .results a:before { - top: 10px; - } - #tsd-search .results span.parent { - color: var(--color-text-aside); - font-weight: normal; - } - #tsd-search.has-focus { - background-color: var(--color-accent); - } - #tsd-search.has-focus .field input { - top: 0; - opacity: 1; - } - #tsd-search.has-focus .title, - #tsd-search.has-focus #tsd-toolbar-links a { - z-index: 0; - opacity: 0; - } - #tsd-search.has-focus .results { - visibility: visible; - } - #tsd-search.loading .results li.state.loading { - display: block; - } - #tsd-search.failure .results li.state.failure { - display: block; - } - - #tsd-toolbar-links { - position: absolute; - top: 0; - right: 2rem; - height: 100%; - display: flex; - align-items: center; - justify-content: flex-end; - } - #tsd-toolbar-links a { - margin-left: 1.5rem; - } - #tsd-toolbar-links a:hover { - text-decoration: underline; - } - - .tsd-signature { - margin: 0 0 1rem 0; - padding: 1rem 0.5rem; - border: 1px solid var(--color-accent); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 14px; - overflow-x: auto; - } - - .tsd-signature-keyword { - color: var(--color-ts-keyword); - font-weight: normal; - } - - .tsd-signature-symbol { - color: var(--color-text-aside); - font-weight: normal; - } - - .tsd-signature-type { - font-style: italic; - font-weight: normal; - } - - .tsd-signatures { - padding: 0; - margin: 0 0 1em 0; - list-style-type: none; - } - .tsd-signatures .tsd-signature { - margin: 0; - border-color: var(--color-accent); - border-width: 1px 0; - transition: background-color 0.1s; - } - .tsd-signatures .tsd-index-signature:not(:last-child) { - margin-bottom: 1em; - } - .tsd-signatures .tsd-index-signature .tsd-signature { - border-width: 1px; - } - .tsd-description .tsd-signatures .tsd-signature { - border-width: 1px; - } - - ul.tsd-parameter-list, - ul.tsd-type-parameter-list { - list-style: square; - margin: 0; - padding-left: 20px; - } - ul.tsd-parameter-list > li.tsd-parameter-signature, - ul.tsd-type-parameter-list > li.tsd-parameter-signature { - list-style: none; - margin-left: -20px; - } - ul.tsd-parameter-list h5, - ul.tsd-type-parameter-list h5 { - font-size: 16px; - margin: 1em 0 0.5em 0; - } - .tsd-sources { - margin-top: 1rem; - font-size: 0.875em; - } - .tsd-sources a { - color: var(--color-text-aside); - text-decoration: underline; - } - .tsd-sources ul { - list-style: none; - padding: 0; - } - - .tsd-page-toolbar { - position: sticky; - z-index: 1; - top: 0; - left: 0; - width: 100%; - color: var(--color-text); - background: var(--color-background-secondary); - border-bottom: 1px var(--color-accent) solid; - transition: transform 0.3s ease-in-out; - } - .tsd-page-toolbar a { - color: var(--color-text); - text-decoration: none; - } - .tsd-page-toolbar a.title { - font-weight: bold; - } - .tsd-page-toolbar a.title:hover { - text-decoration: underline; - } - .tsd-page-toolbar .tsd-toolbar-contents { - display: flex; - justify-content: space-between; - height: 2.5rem; - margin: 0 auto; - } - .tsd-page-toolbar .table-cell { - position: relative; - white-space: nowrap; - line-height: 40px; - } - .tsd-page-toolbar .table-cell:first-child { - width: 100%; - } - .tsd-page-toolbar .tsd-toolbar-icon { - box-sizing: border-box; - line-height: 0; - padding: 12px 0; - } - - .tsd-widget { - display: inline-block; - overflow: hidden; - opacity: 0.8; - height: 40px; - transition: - opacity 0.1s, - background-color 0.2s; - vertical-align: bottom; - cursor: pointer; - } - .tsd-widget:hover { - opacity: 0.9; - } - .tsd-widget.active { - opacity: 1; - background-color: var(--color-accent); - } - .tsd-widget.no-caption { - width: 40px; - } - .tsd-widget.no-caption:before { - margin: 0; - } - - .tsd-widget.options, - .tsd-widget.menu { - display: none; - } - input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; - } - input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; - } - - img { - max-width: 100%; - } - - .tsd-member-summary-name { - display: inline-flex; - align-items: center; - padding: 0.25rem; - text-decoration: none; - } - - .tsd-anchor-icon { - display: inline-flex; - align-items: center; - margin-left: 0.5rem; - color: var(--color-text); - } - - .tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; - } - - .tsd-member-summary-name:hover > .tsd-anchor-icon svg, - .tsd-anchor-link:hover > .tsd-anchor-icon svg { - visibility: visible; - } - - .deprecated { - text-decoration: line-through !important; - } - - .warning { - padding: 1rem; - color: var(--color-warning-text); - background: var(--color-background-warning); - } - - .tsd-kind-project { - color: var(--color-ts-project); - } - .tsd-kind-module { - color: var(--color-ts-module); - } - .tsd-kind-namespace { - color: var(--color-ts-namespace); - } - .tsd-kind-enum { - color: var(--color-ts-enum); - } - .tsd-kind-enum-member { - color: var(--color-ts-enum-member); - } - .tsd-kind-variable { - color: var(--color-ts-variable); - } - .tsd-kind-function { - color: var(--color-ts-function); - } - .tsd-kind-class { - color: var(--color-ts-class); - } - .tsd-kind-interface { - color: var(--color-ts-interface); - } - .tsd-kind-constructor { - color: var(--color-ts-constructor); - } - .tsd-kind-property { - color: var(--color-ts-property); - } - .tsd-kind-method { - color: var(--color-ts-method); - } - .tsd-kind-reference { - color: var(--color-ts-reference); - } - .tsd-kind-call-signature { - color: var(--color-ts-call-signature); - } - .tsd-kind-index-signature { - color: var(--color-ts-index-signature); - } - .tsd-kind-constructor-signature { - color: var(--color-ts-constructor-signature); - } - .tsd-kind-parameter { - color: var(--color-ts-parameter); - } - .tsd-kind-type-parameter { - color: var(--color-ts-type-parameter); - } - .tsd-kind-accessor { - color: var(--color-ts-accessor); - } - .tsd-kind-get-signature { - color: var(--color-ts-get-signature); - } - .tsd-kind-set-signature { - color: var(--color-ts-set-signature); - } - .tsd-kind-type-alias { - color: var(--color-ts-type-alias); - } - - /* if we have a kind icon, don't color the text by kind */ - .tsd-kind-icon ~ span { - color: var(--color-text); - } - - * { - scrollbar-width: thin; - scrollbar-color: var(--color-accent) var(--color-icon-background); - } - - *::-webkit-scrollbar { - width: 0.75rem; - } - - *::-webkit-scrollbar-track { - background: var(--color-icon-background); - } - - *::-webkit-scrollbar-thumb { - background-color: var(--color-accent); - border-radius: 999rem; - border: 0.25rem solid var(--color-icon-background); - } - - /* mobile */ - @media (max-width: 769px) { - .tsd-widget.options, - .tsd-widget.menu { - display: inline-block; - } - - .container-main { - display: flex; - } - html .col-content { - float: none; - max-width: 100%; - width: 100%; - } - html .col-sidebar { - position: fixed !important; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - padding: 1.5rem 1.5rem 0 0; - width: 75vw; - visibility: hidden; - background-color: var(--color-background); - transform: translate(100%, 0); - } - html .col-sidebar > *:last-child { - padding-bottom: 20px; - } - html .overlay { - content: ""; - display: block; - position: fixed; - z-index: 1023; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; - } - - .to-has-menu .overlay { - animation: fade-in 0.4s; - } - - .to-has-menu .col-sidebar { - animation: pop-in-from-right 0.4s; - } - - .from-has-menu .overlay { - animation: fade-out 0.4s; - } - - .from-has-menu .col-sidebar { - animation: pop-out-to-right 0.4s; - } - - .has-menu body { - overflow: hidden; - } - .has-menu .overlay { - visibility: visible; - } - .has-menu .col-sidebar { - visibility: visible; - transform: translate(0, 0); - display: flex; - flex-direction: column; - gap: 1.5rem; - max-height: 100vh; - padding: 1rem 2rem; - } - .has-menu .tsd-navigation { - max-height: 100%; - } - #tsd-toolbar-links { - display: none; - } - .tsd-navigation .tsd-nav-link { - display: flex; - } - } - - /* one sidebar */ - @media (min-width: 770px) { - .container-main { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); - grid-template-areas: "sidebar content"; - margin: 2rem auto; - } - - .col-sidebar { - grid-area: sidebar; - } - .col-content { - grid-area: content; - padding: 0 1rem; - } - } - @media (min-width: 770px) and (max-width: 1399px) { - .col-sidebar { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - padding-top: 1rem; - } - .site-menu { - margin-top: 1rem; - } - } - - /* two sidebars */ - @media (min-width: 1200px) { - .container-main { - grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( - 0, - 20rem - ); - grid-template-areas: "sidebar content toc"; - } - - .col-sidebar { - display: contents; - } - - .page-menu { - grid-area: toc; - padding-left: 1rem; - } - .site-menu { - grid-area: sidebar; - } - - .site-menu { - margin-top: 1rem; - } - - .page-menu, - .site-menu { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - } - } -} diff --git a/docs/classes/index.Byte16.html b/docs/classes/index.Byte16.html deleted file mode 100644 index 09771b0..0000000 --- a/docs/classes/index.Byte16.html +++ /dev/null @@ -1,131 +0,0 @@ -Byte16 | mina-aes

Represents a 128-bit field element for AES encryption

-

Hierarchy

  • { value: Field[][] }
    • Byte16

Constructors

  • Parameters

    • value: Field[][]

    Returns Byte16

Properties

value: Field[][] = ...
_isStruct: true
check: (value: { value: Field[][] }) => void

Add assertions to the proof to check if value is a valid member of type T. -This function does not return anything, instead it creates any number of assertions to prove that value is a valid member of the type T.

-

For instance, calling check function on the type Bool asserts that the value of the element is either 1 or 0.

-

Type declaration

    • (value: { value: Field[][] }): void
    • Parameters

      • value: { value: Field[][] }

        the element of type T to put assertions on.

        -

      Returns void

COL_SIZE: 4
empty: () => { value: Field[][] }
fromFields: (fields: Field[]) => { value: Field[][] }
fromJSON: (x: { value: string[][] }) => { value: Field[][] }
fromValue: (
    x: { value: Field[][] } | { value: bigint[][] },
) => { value: Field[][] } & (
    value: { value: Field[][] | bigint[][] },
) => { value: Field[][] }

Convert provable type from a normal JS type.

-
toAuxiliary: (value?: { value: Field[][] }) => any[]

A function that takes value (optional), an element of type T, as argument and -returns an array of any type that make up the "auxiliary" (non-provable) data of value.

-

Type declaration

    • (value?: { value: Field[][] }): any[]
    • Parameters

      • Optionalvalue: { value: Field[][] }

        the element of type T to generate the auxiliary data array from, optional. -If not provided, a default value for auxiliary data is returned.

        -

      Returns any[]

      An array of any type describing how this T element is made up of "auxiliary" (non-provable) data.

      -
toCanonical?: (x: { value: Field[][] }) => { value: Field[][] }

Optional method which transforms a provable type into its canonical representation.

-

This is needed for types that have multiple representations of the same underlying value, -and might even not have perfect completeness for some of those representations.

-

An example is the ForeignField class, which allows non-native field elements to exist in unreduced form. -The unreduced form is not perfectly complete, for example, addition of two unreduced field elements can cause a prover error.

-

Specific protocols need to be able to protect themselves against incomplete operations at all costs. -For example, when using actions and reducer, the reducer must be able to produce a proof regardless of the input action. -toCanonical() converts any input into a safe form and enables us to handle cases like this generically.

-

Note: For most types, this method is the identity function. -The identity function will also be used when the toCanonical() is not present on a type.

-
toFields: (value: { value: Field[][] }) => Field[]

A function that takes value, an element of type T, as argument and returns -an array of Field elements that make up the provable data of value.

-

Type declaration

    • (value: { value: Field[][] }): Field[]
    • Parameters

      • value: { value: Field[][] }

        the element of type T to generate the Field array from.

        -

      Returns Field[]

      A Field array describing how this T element is made up of Field elements.

      -
toInput: (
    x: { value: Field[][] },
) => { fields?: Field[]; packed?: [Field, number][] }
toJSON: (x: { value: Field[][] }) => { value: string[][] }
toValue: (x: { value: Field[][] }) => { value: bigint[][] }

Convert provable type to a normal JS type.

-

Methods

  • Converts the Byte16 instance back into an array of 16 bytes. -NONPROVABLE: This function should only be used for testing purposes. -The output is in AES column‑major order.

    -

    Returns number[]

    An array of 16 numbers, each between 0 and 255.

    -
  • Converts a Byte16 instance into a 4x4 matrix of Field elements (each one byte) -in standard AES column‑major order.

    -

    Returns Field[][]

    A 4x4 matrix of Field elements.

    -
  • Returns a Field representation of the full 128-bit value.

    -

    Returns Field

    Field representation of the Byte16 instance.

    -
  • Converts the Byte16 instance into a 32-character hex string. -NONPROVABLE: For testing only.

    -

    Returns string

    A 32-character hex string.

    -
  • Converts a BigInt value into a Byte16 instance. -NONPROVABLE: Can be used as witness

    -

    Parameters

    • value: bigint

      the big integer to convert, must be 128 bits

      -

    Returns Byte16

    new Byte16 class

    -
  • Converts an array of 16 bytes into a Byte16 instance. -NONPROVABLE: This function should only be used for testing purposes.

    -

    Assumes the input is in AES column‑major order:

    -
      -
    • Bytes 0–3: Column 0
    • -
    • Bytes 4–7: Column 1
    • -
    • Bytes 8–11: Column 2
    • -
    • Bytes 12–15: Column 3
    • -
    -

    Parameters

    • bytes: number[]

      An array of 16 numbers, each between 0 and 255.

      -

    Returns Byte16

    A Byte16 instance.

    -
  • Converts a 4x4 matrix (in column‑major order) into a Byte16 instance.

    -

    Parameters

    • cols: Field[][]

      4x4 matrix of byte‑sized Field elements.

      -

    Returns Byte16

    A Byte16 instance.

    -
  • Converts a Field value into a Byte16 instance.

    -

    Parameters

    • field: Field

      field must fit into 128 bits, otherwise behaviour is undefined

      -

    Returns Byte16

    A Byte16 instance representing the field value.

    -
  • Converts a 32-character hex string into a Byte16 instance. -NONPROVABLE: For testing only.

    -

    The hex string must be 32 characters long.

    -

    Parameters

    • hex: string

      A 32-character hex string.

      -

    Returns Byte16

    A Byte16 instance.

    -
  • Return the size of the T type in terms of Field type, as Field is the primitive type.

    -

    Returns number

    A number representing the size of the T type in terms of Field type.

    -
diff --git a/docs/classes/index.IterativeAES128PublicInput.html b/docs/classes/index.IterativeAES128PublicInput.html deleted file mode 100644 index 363a2db..0000000 --- a/docs/classes/index.IterativeAES128PublicInput.html +++ /dev/null @@ -1,73 +0,0 @@ -IterativeAES128PublicInput | mina-aes

Class IterativeAES128PublicInput

Hierarchy

  • { cipher: Byte16 }
    • IterativeAES128PublicInput

Constructors

Properties

cipher: Byte16 = Byte16
_isStruct: true
check: (value: { cipher: Byte16 }) => void

Add assertions to the proof to check if value is a valid member of type T. -This function does not return anything, instead it creates any number of assertions to prove that value is a valid member of the type T.

-

For instance, calling check function on the type Bool asserts that the value of the element is either 1 or 0.

-

Type declaration

    • (value: { cipher: Byte16 }): void
    • Parameters

      • value: { cipher: Byte16 }

        the element of type T to put assertions on.

        -

      Returns void

empty: () => { cipher: Byte16 }
fromFields: (fields: Field[]) => { cipher: Byte16 }
fromJSON: (x: { cipher: { value: string[][] } }) => { cipher: Byte16 }
fromValue: (
    x: { cipher: Byte16 } | { cipher: { value: bigint[][] } },
) => { cipher: Byte16 } & (
    value: { cipher: Byte16 | { value: Field[][] | bigint[][] } },
) => { cipher: Byte16 }

Convert provable type from a normal JS type.

-
toAuxiliary: (value?: { cipher: Byte16 }) => any[]

A function that takes value (optional), an element of type T, as argument and -returns an array of any type that make up the "auxiliary" (non-provable) data of value.

-

Type declaration

    • (value?: { cipher: Byte16 }): any[]
    • Parameters

      • Optionalvalue: { cipher: Byte16 }

        the element of type T to generate the auxiliary data array from, optional. -If not provided, a default value for auxiliary data is returned.

        -

      Returns any[]

      An array of any type describing how this T element is made up of "auxiliary" (non-provable) data.

      -
toCanonical?: (x: { cipher: Byte16 }) => { cipher: Byte16 }

Optional method which transforms a provable type into its canonical representation.

-

This is needed for types that have multiple representations of the same underlying value, -and might even not have perfect completeness for some of those representations.

-

An example is the ForeignField class, which allows non-native field elements to exist in unreduced form. -The unreduced form is not perfectly complete, for example, addition of two unreduced field elements can cause a prover error.

-

Specific protocols need to be able to protect themselves against incomplete operations at all costs. -For example, when using actions and reducer, the reducer must be able to produce a proof regardless of the input action. -toCanonical() converts any input into a safe form and enables us to handle cases like this generically.

-

Note: For most types, this method is the identity function. -The identity function will also be used when the toCanonical() is not present on a type.

-
toFields: (value: { cipher: Byte16 }) => Field[]

A function that takes value, an element of type T, as argument and returns -an array of Field elements that make up the provable data of value.

-

Type declaration

    • (value: { cipher: Byte16 }): Field[]
    • Parameters

      • value: { cipher: Byte16 }

        the element of type T to generate the Field array from.

        -

      Returns Field[]

      A Field array describing how this T element is made up of Field elements.

      -
toInput: (
    x: { cipher: Byte16 },
) => { fields?: Field[]; packed?: [Field, number][] }
toJSON: (x: { cipher: Byte16 }) => { cipher: { value: string[][] } }
toValue: (x: { cipher: Byte16 }) => { cipher: { value: bigint[][] } }

Convert provable type to a normal JS type.

-

Methods

  • Return the size of the T type in terms of Field type, as Field is the primitive type.

    -

    Returns number

    A number representing the size of the T type in terms of Field type.

    -
diff --git a/docs/classes/utils_RijndaelFiniteField.RijndaelFiniteField.html b/docs/classes/utils_RijndaelFiniteField.RijndaelFiniteField.html deleted file mode 100644 index 48b9ff4..0000000 --- a/docs/classes/utils_RijndaelFiniteField.RijndaelFiniteField.html +++ /dev/null @@ -1,153 +0,0 @@ -RijndaelFiniteField | mina-aes

A Finite Field which implements Rijndael's Finite Field operations. -Operates on values less than 256 and is used to generate sbox values on the fly -Its most important for providing non-linearity within the AES encryption scheme

-

Hierarchy

  • UnreducedForeignField<this>
    • RijndaelFiniteField

Constructors

  • Create a new ForeignField from a bigint, number, string or another ForeignField.

    -

    Parameters

    • x: string | number | bigint | ForeignField | Field3

    Returns RijndaelFiniteField

    let x = new ForeignField(5);
    -
    - -

    Note: Inputs must be range checked if they originate from a different field with a different modulus or if they are not constants.

    -
      -
    • When constructing from another ForeignField instance, ensure the modulus matches. If not, check the modulus using Gadgets.ForeignField.assertLessThan() and handle appropriately.
    • -
    • When constructing from a Field3 array, ensure all elements are valid Field elements and range checked.
    • -
    • Ensure constants are correctly reduced to the modulus of the field.
    • -
    -

Properties

type: "Unreduced" | "AlmostReduced" | "FullyReduced"
value: Field3

The internal representation of a foreign field element, as a tuple of 3 limbs.

-
_Bigint:
    | undefined
    | {
        inverse: (x: bigint) => undefined | bigint;
        M: bigint;
        modulus: bigint;
        sizeInBits: number;
        t: bigint;
        twoadicRoot: bigint;
        add(x: bigint, y: bigint): bigint;
        div(x: bigint, y: bigint): undefined | bigint;
        dot(x: bigint[], y: bigint[]): bigint;
        equal(x: bigint, y: bigint): boolean;
        fromBigint(x: bigint): bigint;
        fromNumber(x: number): bigint;
        isEven(x: bigint): boolean;
        isSquare(x: bigint): boolean;
        leftShift(x: bigint, bits: number, maxBitSize?: number): bigint;
        mod(x: bigint): bigint;
        mul(x: bigint, y: bigint): bigint;
        negate(x: bigint): bigint;
        not(x: bigint, bits: number): bigint;
        power(x: bigint, n: bigint): bigint;
        random(): bigint;
        rightShift(x: bigint, bits: number): bigint;
        rot(
            x: bigint,
            bits: bigint,
            direction?: "left" | "right",
            maxBits?: bigint,
        ): bigint;
        sqrt(x: bigint): undefined | bigint;
        square(x: bigint): bigint;
        sub(x: bigint, y: bigint): bigint;
    }
_modulus: undefined | bigint
_provable:
    | undefined
    | ProvablePureExtended<UnreducedForeignField, bigint, string>
_variants:
    | undefined
    | {
        almostReduced: typeof AlmostForeignField;
        canonical: typeof CanonicalForeignField;
        unreduced: typeof UnreducedForeignField;
    }

Sibling classes that represent different ranges of field elements.

-

Accessors

  • get Constructor(): typeof ForeignField

    Returns typeof ForeignField

  • get modulus(): bigint

    Returns bigint

  • get AlmostReduced(): typeof AlmostForeignField

    Constructor for field elements that are "almost reduced", i.e. lie in the range [0, 2^ceil(log2(p))).

    -

    Returns typeof AlmostForeignField

  • get Bigint(): {
        inverse: (x: bigint) => undefined | bigint;
        M: bigint;
        modulus: bigint;
        sizeInBits: number;
        t: bigint;
        twoadicRoot: bigint;
        add(x: bigint, y: bigint): bigint;
        div(x: bigint, y: bigint): undefined | bigint;
        dot(x: bigint[], y: bigint[]): bigint;
        equal(x: bigint, y: bigint): boolean;
        fromBigint(x: bigint): bigint;
        fromNumber(x: number): bigint;
        isEven(x: bigint): boolean;
        isSquare(x: bigint): boolean;
        leftShift(x: bigint, bits: number, maxBitSize?: number): bigint;
        mod(x: bigint): bigint;
        mul(x: bigint, y: bigint): bigint;
        negate(x: bigint): bigint;
        not(x: bigint, bits: number): bigint;
        power(x: bigint, n: bigint): bigint;
        random(): bigint;
        rightShift(x: bigint, bits: number): bigint;
        rot(
            x: bigint,
            bits: bigint,
            direction?: "left" | "right",
            maxBits?: bigint,
        ): bigint;
        sqrt(x: bigint): undefined | bigint;
        square(x: bigint): bigint;
        sub(x: bigint, y: bigint): bigint;
    }

    Returns {
        inverse: (x: bigint) => undefined | bigint;
        M: bigint;
        modulus: bigint;
        sizeInBits: number;
        t: bigint;
        twoadicRoot: bigint;
        add(x: bigint, y: bigint): bigint;
        div(x: bigint, y: bigint): undefined | bigint;
        dot(x: bigint[], y: bigint[]): bigint;
        equal(x: bigint, y: bigint): boolean;
        fromBigint(x: bigint): bigint;
        fromNumber(x: number): bigint;
        isEven(x: bigint): boolean;
        isSquare(x: bigint): boolean;
        leftShift(x: bigint, bits: number, maxBitSize?: number): bigint;
        mod(x: bigint): bigint;
        mul(x: bigint, y: bigint): bigint;
        negate(x: bigint): bigint;
        not(x: bigint, bits: number): bigint;
        power(x: bigint, n: bigint): bigint;
        random(): bigint;
        rightShift(x: bigint, bits: number): bigint;
        rot(
            x: bigint,
            bits: bigint,
            direction?: "left" | "right",
            maxBits?: bigint,
        ): bigint;
        sqrt(x: bigint): undefined | bigint;
        square(x: bigint): bigint;
        sub(x: bigint, y: bigint): bigint;
    }

  • get Canonical(): typeof CanonicalForeignField

    Constructor for field elements that are fully reduced, i.e. lie in the range [0, p).

    -

    Returns typeof CanonicalForeignField

  • get modulus(): bigint

    Returns bigint

  • get provable(): ProvablePureExtended<UnreducedForeignField, bigint, string>

    Provable<ForeignField>, see Provable

    -

    Returns ProvablePureExtended<UnreducedForeignField, bigint, string>

  • get sizeInBits(): number

    Returns number

  • get Unreduced(): typeof UnreducedForeignField

    Constructor for unreduced field elements.

    -

    Returns typeof UnreducedForeignField

Methods

  • Assert that this field element lies in the range [0, 2^k), -where k = ceil(log2(p)) and p is the foreign field modulus.

    -

    Returns the field element as a AlmostForeignField.

    -

    For a more efficient version of this for multiple field elements, see assertAlmostReduced.

    -

    Note: this does not ensure that the field elements is in the canonical range [0, p). -To assert that stronger property, there is assertCanonical. -You should typically use assertAlmostReduced though, because it is cheaper to prove and sufficient for -ensuring validity of all our non-native field arithmetic methods.

    -

    Returns AlmostForeignField

  • Assert that this field element is fully reduced, -i.e. lies in the range [0, p), where p is the foreign field modulus.

    -

    Returns the field element as a CanonicalForeignField.

    -

    Returns CanonicalForeignField

  • Assert equality with a ForeignField-like value

    -

    Parameters

    • y: number | bigint | CanonicalForeignField
    • Optionalmessage: string

    Returns CanonicalForeignField

    x.assertEquals(0, "x is zero");
    -
    - -

    Since asserting equality can also serve as a range check, -this method returns x with the appropriate type:

    -
    let xChecked = x.assertEquals(1, "x is 1");
    xChecked satisfies CanonicalForeignField; -
    - -
  • Assert equality with a ForeignField-like value

    -

    Parameters

    • y: AlmostForeignField
    • Optionalmessage: string

    Returns AlmostForeignField

    x.assertEquals(0, "x is zero");
    -
    - -

    Since asserting equality can also serve as a range check, -this method returns x with the appropriate type:

    -
    let xChecked = x.assertEquals(1, "x is 1");
    xChecked satisfies CanonicalForeignField; -
    - -
  • Assert equality with a ForeignField-like value

    -

    Parameters

    • y: ForeignField
    • Optionalmessage: string

    Returns ForeignField

    x.assertEquals(0, "x is zero");
    -
    - -

    Since asserting equality can also serve as a range check, -this method returns x with the appropriate type:

    -
    let xChecked = x.assertEquals(1, "x is 1");
    xChecked satisfies CanonicalForeignField; -
    - -
  • Assert that this field element is less than a constant c: x < c.

    -

    The constant must satisfy 0 <= c < 2^264, otherwise an error is thrown.

    -

    Parameters

    • c: number | bigint
    • Optionalmessage: string

    Returns void

    x.assertLessThan(10);
    -
    - -
  • Checks whether this field element is a constant.

    -

    See FieldVar to understand constants vs variables.

    -

    Returns boolean

  • Finite field negation

    -

    Returns AlmostForeignField

    x.neg(); // -x mod p = p - x
    -
    - -
  • Finite field subtraction

    -

    Parameters

    • y: number | bigint | ForeignField

    Returns UnreducedForeignField

    x.sub(1); // x - 1 mod p
    -
    - -
  • Convert this field element to a bigint.

    -

    Returns bigint

  • Unpack a field element to its bits, as a Bool[] array.

    -

    This method is provable!

    -

    Parameters

    • Optionallength: number

    Returns Bool[]

  • Convert this field element to a constant.

    -

    See FieldVar to understand constants vs variables.

    -

    Warning: This function is only useful in Provable.witness or Provable.asProver blocks, -that is, in situations where the prover computes a value outside provable code.

    -

    Returns ForeignField

  • Instance version of Provable<ForeignField>.toFields, see Provable.toFields

    -

    Returns Field[]

  • Assert that one or more field elements lie in the range [0, 2^k), -where k = ceil(log2(p)) and p is the foreign field modulus.

    -

    This is most efficient than when checking a multiple of 3 field elements at once.

    -

    Type Parameters

    • T extends Tuple<ForeignField>

    Parameters

    • ...xs: T

    Returns [...{ [i in string | number | symbol]: AlmostForeignField }[]]

  • Parameters

    • x: ForeignField

    Returns void

  • Coerce the input to a ForeignField.

    -

    Parameters

    • x: string | number | bigint

    Returns CanonicalForeignField

  • Coerce the input to a ForeignField.

    -

    Parameters

    • x: string | number | bigint | ForeignField

    Returns ForeignField

  • Create a field element from its bits, as a Bool[] array.

    -

    This method is provable!

    -

    Parameters

    • bits: Bool[]

    Returns AlmostForeignField

  • Returns CanonicalForeignField

  • Sum (or difference) of multiple finite field elements.

    -

    Parameters

    • xs: (number | bigint | ForeignField)[]
    • operations: (-1 | 1)[]

    Returns UnreducedForeignField

    let z = ForeignField.sum([3, 2, 1], [-1, 1]); // 3 - 2 + 1
    z.assertEquals(2); -
    - -

    This method expects a list of ForeignField-like values, x0,...,xn, -and a list of "operations" op1,...,opn where every op is 1 or -1 (plus or minus), -and returns

    -

    x0 + op1*x1 + ... + opn*xn

    -

    where the sum is computed in finite field arithmetic.

    -

    Important: For more than two summands, this is significantly more efficient -than chaining calls to ForeignField.add and ForeignField.sub.

    -
diff --git a/docs/classes/utils_list.FieldList.html b/docs/classes/utils_list.FieldList.html deleted file mode 100644 index 46aba89..0000000 --- a/docs/classes/utils_list.FieldList.html +++ /dev/null @@ -1,56 +0,0 @@ -FieldList | mina-aes

Hierarchy

  • MerkleList<Field, this>
    • FieldList

Constructors

  • Parameters

    • __namedParameters: MerkleListBase<Field>

    Returns FieldList

Properties

data: Unconstrained<WithHash<Field>[]>
hash: Field
_emptyHash: undefined | Field
_innerProvable: undefined | ProvableHashable<any>
_nextHash: undefined | (hash: Field, t: any) => Field
_provable: undefined | ProvableHashable<MerkleList<any>>
empty: () => MerkleList<Field>
from: (array: Field[]) => MerkleList<Field>
fromReverse: (array: Field[]) => MerkleList<Field>
provable: ProvableHashable<MerkleList<Field>>

Accessors

  • get Constructor(): typeof MerkleList

    Returns typeof MerkleList

  • get innerProvable(): ProvableHashable<T>

    Returns ProvableHashable<T>

  • get emptyHash(): Field

    Returns Field

Methods

  • Returns MerkleList<Field>

  • Iterate through the list in a fixed number of steps any apply a given callback on each element.

    -

    Proves that the iteration traverses the entire list. -Once past the last element, dummy elements will be passed to the callback.

    -

    Note: There are no guarantees about the contents of dummy elements, so the callback is expected -to handle the isDummy flag separately.

    -

    Parameters

    • length: number
    • callback: (element: Field, isDummy: Bool, i: number) => void

    Returns void

  • Returns Bool

  • Returns Unconstrained<number>

  • Parameters

    • hash: Field
    • value: Field

    Returns Field

  • Remove the last element from the list and return it.

    -

    If the list is empty, returns a dummy element.

    -

    Returns Field

  • Remove the last element from the list and return it.

    -

    This proves that the list is non-empty, and fails otherwise.

    -

    Returns Field

  • Return the last element, but only remove it if condition is true.

    -

    If the list is empty, returns a dummy element.

    -

    Parameters

    • condition: Bool

    Returns Field

  • Low-level, minimal version of pop() which lets the caller decide whether there is an element to pop.

    -

    I.e. this proves:

    -
      -
    • If the input condition is true, this returns the last element and removes it from the list.
    • -
    • If the input condition is false, the list is unchanged and the return value is garbage.
    • -
    -

    Note that if the caller passes true but the list is empty, this will fail. -If the caller passes false but the list is non-empty, this succeeds and just doesn't pop off an element.

    -

    Parameters

    • shouldPop: Bool

    Returns Field

  • Push a new element to the list.

    -

    Parameters

    • element: Field

    Returns void

  • Push a new element to the list, if the condition is true.

    -

    Parameters

    • condition: Bool
    • element: Field

    Returns void

  • Returns MerkleListIterator<Field>

  • Returns MerkleListIterator<Field>

  • Returns Unconstrained<Field[]>

  • Create a Merkle list type

    -

    Optionally, you can tell create() how to do the hash that pushes a new list element, by passing a nextHash function.

    -

    Type Parameters

    • T

    Parameters

    • type: WithProvable<ProvableHashable<T>>
    • OptionalnextHash: (hash: Field, value: T) => Field
    • OptionalemptyHash_: Field

    Returns typeof MerkleList & {
        empty: () => MerkleList<T>;
        from: (array: T[]) => MerkleList<T>;
        fromReverse: (array: T[]) => MerkleList<T>;
        provable: ProvableHashable<MerkleList<T>>;
    }

    class MyList extends MerkleList.create(Field, (hash, x) =>
    Poseidon.hashWithPrefix('custom', [hash, x])
    ) {} -
    - -
diff --git a/docs/functions/lib_AddRoundKey.addRoundKey.html b/docs/functions/lib_AddRoundKey.addRoundKey.html deleted file mode 100644 index 950a5e9..0000000 --- a/docs/functions/lib_AddRoundKey.addRoundKey.html +++ /dev/null @@ -1 +0,0 @@ -addRoundKey | mina-aes
diff --git a/docs/functions/lib_KeyExpansion.expandKey128.html b/docs/functions/lib_KeyExpansion.expandKey128.html deleted file mode 100644 index a175b5d..0000000 --- a/docs/functions/lib_KeyExpansion.expandKey128.html +++ /dev/null @@ -1,4 +0,0 @@ -expandKey128 | mina-aes
diff --git a/docs/functions/lib_KeyExpansion.getWords.html b/docs/functions/lib_KeyExpansion.getWords.html deleted file mode 100644 index 1d2fc06..0000000 --- a/docs/functions/lib_KeyExpansion.getWords.html +++ /dev/null @@ -1,5 +0,0 @@ -getWords | mina-aes
  • The round key for each round of the AES encryption algorithm. -Each round key consists of four 32-bit words.

    -

    Parameters

    • byte: Byte16

      The Byte16 instance to extract words from.

      -

    Returns [Word, Word, Word, Word]

    An array of four Field elements, each representing a 32-bit word.

    -
diff --git a/docs/functions/lib_KeyExpansion.rotWord.html b/docs/functions/lib_KeyExpansion.rotWord.html deleted file mode 100644 index 25aaa73..0000000 --- a/docs/functions/lib_KeyExpansion.rotWord.html +++ /dev/null @@ -1,5 +0,0 @@ -rotWord | mina-aes
  • Performs a circular left rotation by 8 bits on a 32-bit word. -Each Field element is treated as a 32-bit word (4 bytes).

    -

    Parameters

    • word: Word

      The 32-bit Field element to rotate.

      -

    Returns Word

    The rotated 32-bit Field element.

    -
diff --git a/docs/functions/lib_KeyExpansion.subWord.html b/docs/functions/lib_KeyExpansion.subWord.html deleted file mode 100644 index 41eab85..0000000 --- a/docs/functions/lib_KeyExpansion.subWord.html +++ /dev/null @@ -1,4 +0,0 @@ -subWord | mina-aes
  • Substitutes each byte of a 32-bit word using the S-box.

    -

    Parameters

    • word: Word

      The 32-bit word to substitute.

      -

    Returns Word

    The substituted 32-bit word.

    -
diff --git a/docs/functions/lib_KeyExpansion.wordXor.html b/docs/functions/lib_KeyExpansion.wordXor.html deleted file mode 100644 index 55bfd1a..0000000 --- a/docs/functions/lib_KeyExpansion.wordXor.html +++ /dev/null @@ -1,5 +0,0 @@ -wordXor | mina-aes
diff --git a/docs/functions/lib_MixColumns.gmixColumn.html b/docs/functions/lib_MixColumns.gmixColumn.html deleted file mode 100644 index 557765e..0000000 --- a/docs/functions/lib_MixColumns.gmixColumn.html +++ /dev/null @@ -1,3 +0,0 @@ -gmixColumn | mina-aes
  • Parameters

    • r: Field[]

      A column of 4 bytes. Represented as an array of Field elements.

      -

    Returns Field[]

    Modified column of 4 bytes. Represented as an array of Field elements.

    -
diff --git a/docs/functions/lib_MixColumns.mixColumn.html b/docs/functions/lib_MixColumns.mixColumn.html deleted file mode 100644 index fcc980b..0000000 --- a/docs/functions/lib_MixColumns.mixColumn.html +++ /dev/null @@ -1,5 +0,0 @@ -mixColumn | mina-aes
  • Performs the AES MixColumn operation on a 128-bit value. -Performs a matrix multiplication on the input value, providing diffusion.

    -

    Parameters

    • input: Byte16

      Take in a 128-bit value represented as a Byte16 class

      -

    Returns Byte16

    Transformed 128-bit value represented as a Byte16 class

    -
diff --git a/docs/functions/lib_SBox.sbox.html b/docs/functions/lib_SBox.sbox.html deleted file mode 100644 index d0ffd08..0000000 --- a/docs/functions/lib_SBox.sbox.html +++ /dev/null @@ -1,4 +0,0 @@ -sbox | mina-aes
  • Performs a full sbox substitution on a 128-bit value represented within a Byte16 class

    -

    Parameters

    • input: Byte16

      the 128-bit value to substitute

      -

    Returns Byte16

    the substituted value

    -
diff --git a/docs/functions/lib_SBox.sbox_byte.html b/docs/functions/lib_SBox.sbox_byte.html deleted file mode 100644 index cc3fdbe..0000000 --- a/docs/functions/lib_SBox.sbox_byte.html +++ /dev/null @@ -1,5 +0,0 @@ -sbox_byte | mina-aes

Function sbox_byte

  • Takes in a byte represented as a field and returns the substituted output -Note that this code will return incorrect values for numbers larger than a byte

    -

    Parameters

    • input: Field

      a byte represented within a field

      -

    Returns Field

    the substituted output

    -
diff --git a/docs/functions/lib_ShiftRows.shiftRows.html b/docs/functions/lib_ShiftRows.shiftRows.html deleted file mode 100644 index 2daa466..0000000 --- a/docs/functions/lib_ShiftRows.shiftRows.html +++ /dev/null @@ -1,3 +0,0 @@ -shiftRows | mina-aes
diff --git a/docs/functions/utils_RijndaelFiniteField.affineTransform.html b/docs/functions/utils_RijndaelFiniteField.affineTransform.html deleted file mode 100644 index 70dfb91..0000000 --- a/docs/functions/utils_RijndaelFiniteField.affineTransform.html +++ /dev/null @@ -1,4 +0,0 @@ -affineTransform | mina-aes
diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index c58b4a3..0000000 --- a/docs/index.html +++ /dev/null @@ -1,80 +0,0 @@ -mina-aes

mina-aes

Mina AES

A provable AES implementation using o1js

-
npm ci
-
- -

npm run build
npm run start -
- -

Or if you want to use the dev build

-
npm run dev
-
- -
npm run lint
npm run format -
- -

Unit tests:

-
npm run test
-
- -

If you want to test zk programs locally as well:

-
npm run test:zk
-
- -

To run a summary of constraints in all library functions:

-
npm run build
node ./build/test/circuitSummary.js
-
- -
    -
  • Detailed Design/Architecture: The proposers currently have a proof-of-concept AES codebase capable of verifying 128-bit ciphertext messages. However, this codebase is a prototype and requires significant modifications, including implementing the S-Box, various block mode of operations (e.g., CTR), and key expansion to support different key sizes. Additionally, a comprehensive test suite is crucial to ensure correctness during development.
  • -
  • Vision: Provide a well-documented, robust library for the AES scheme, which can be easily utilized for future development.
  • -
  • Existing Work: See the current proof-of-concept here.
  • -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyValue
Total rows50185
Generic18617
Xor1610984
Zero10984
Rot644800
RangeCheck04800
-
    -
  • Integrating previously completed ShiftRows and MixColumns stages into the new codebase.
  • -
  • Implementing an algorithmic (rather than memory-heavy) S-Box or with a provable Merkle Map.
  • -
  • Key expansion.
  • -
  • Implementing block mode: Counter Mode (CTR).
  • -
  • Testing: Since AES is a security primitive, we propose testing with millions of randomly generated inputs and comparing results against an industrial implementation (Differential Testing).
  • -
  • Creating documentation with libraries such as documentation.js.
  • -
-
    -
  • User authentication block mode: Galois Counter Mode (GCM).
  • -
  • Additional testing: Deploying on a testnet and running integration tests.
  • -
  • Addressing trade-offs between recursion and off-chain computation for an optimized design.
  • -
  • Benchmarking: Exploring optimizations to minimize circuit size.
  • -
-
diff --git a/docs/modules.html b/docs/modules.html deleted file mode 100644 index 183931f..0000000 --- a/docs/modules.html +++ /dev/null @@ -1 +0,0 @@ -mina-aes
diff --git a/docs/modules/index.html b/docs/modules/index.html deleted file mode 100644 index ae1e069..0000000 --- a/docs/modules/index.html +++ /dev/null @@ -1 +0,0 @@ -index | mina-aes
diff --git a/docs/modules/lib_AddRoundKey.html b/docs/modules/lib_AddRoundKey.html deleted file mode 100644 index 56ca2ed..0000000 --- a/docs/modules/lib_AddRoundKey.html +++ /dev/null @@ -1 +0,0 @@ -lib/AddRoundKey | mina-aes

Module lib/AddRoundKey

Functions

addRoundKey
diff --git a/docs/modules/lib_KeyExpansion.html b/docs/modules/lib_KeyExpansion.html deleted file mode 100644 index ae63aeb..0000000 --- a/docs/modules/lib_KeyExpansion.html +++ /dev/null @@ -1 +0,0 @@ -lib/KeyExpansion | mina-aes

Module lib/KeyExpansion

Type Aliases

Word

Functions

expandKey128
getWords
rotWord
subWord
wordXor
diff --git a/docs/modules/lib_MixColumns.html b/docs/modules/lib_MixColumns.html deleted file mode 100644 index 98b30b4..0000000 --- a/docs/modules/lib_MixColumns.html +++ /dev/null @@ -1 +0,0 @@ -lib/MixColumns | mina-aes

Module lib/MixColumns

Functions

gmixColumn
mixColumn
diff --git a/docs/modules/lib_SBox.html b/docs/modules/lib_SBox.html deleted file mode 100644 index 863f9cf..0000000 --- a/docs/modules/lib_SBox.html +++ /dev/null @@ -1 +0,0 @@ -lib/SBox | mina-aes

Module lib/SBox

Functions

sbox
sbox_byte
diff --git a/docs/modules/lib_ShiftRows.html b/docs/modules/lib_ShiftRows.html deleted file mode 100644 index 997e9f6..0000000 --- a/docs/modules/lib_ShiftRows.html +++ /dev/null @@ -1 +0,0 @@ -lib/ShiftRows | mina-aes

Module lib/ShiftRows

Functions

shiftRows
diff --git a/docs/modules/utils_RijndaelConstants.html b/docs/modules/utils_RijndaelConstants.html deleted file mode 100644 index 4344ca3..0000000 --- a/docs/modules/utils_RijndaelConstants.html +++ /dev/null @@ -1 +0,0 @@ -utils/RijndaelConstants | mina-aes

Module utils/RijndaelConstants

Variables

affine_matrix
inv_box
diff --git a/docs/modules/utils_RijndaelFiniteField.html b/docs/modules/utils_RijndaelFiniteField.html deleted file mode 100644 index db2f3cb..0000000 --- a/docs/modules/utils_RijndaelFiniteField.html +++ /dev/null @@ -1 +0,0 @@ -utils/RijndaelFiniteField | mina-aes

Module utils/RijndaelFiniteField

Classes

RijndaelFiniteField

Functions

affineTransform
diff --git a/docs/modules/utils_SBoxArr.html b/docs/modules/utils_SBoxArr.html deleted file mode 100644 index 1dbe5e1..0000000 --- a/docs/modules/utils_SBoxArr.html +++ /dev/null @@ -1 +0,0 @@ -utils/SBoxArr | mina-aes

Module utils/SBoxArr

Variables

sbox_arr
diff --git a/docs/modules/utils_constants.html b/docs/modules/utils_constants.html deleted file mode 100644 index 91b5890..0000000 --- a/docs/modules/utils_constants.html +++ /dev/null @@ -1 +0,0 @@ -utils/constants | mina-aes
diff --git a/docs/modules/utils_list.html b/docs/modules/utils_list.html deleted file mode 100644 index e759310..0000000 --- a/docs/modules/utils_list.html +++ /dev/null @@ -1 +0,0 @@ -utils/list | mina-aes

Module utils/list

Classes

FieldList
diff --git a/docs/types/lib_KeyExpansion.Word.html b/docs/types/lib_KeyExpansion.Word.html deleted file mode 100644 index 8c2789f..0000000 --- a/docs/types/lib_KeyExpansion.Word.html +++ /dev/null @@ -1 +0,0 @@ -Word | mina-aes
Word: [Field, Field, Field, Field]
diff --git a/docs/variables/index.IterativeAes128.html b/docs/variables/index.IterativeAes128.html deleted file mode 100644 index c0b5558..0000000 --- a/docs/variables/index.IterativeAes128.html +++ /dev/null @@ -1 +0,0 @@ -IterativeAes128 | mina-aes

Variable IterativeAes128Const

IterativeAes128: {
    analyzeMethods: () => Promise<
        {
            verifyAES128: {
                digest: string;
                gates: Gate[];
                publicInputSize: number;
                rows: number;
                print(): void;
                summary(): Partial<Record<GateType | "Total rows", number>>;
            };
        },
    >;
    auxiliaryOutputTypes: { verifyAES128: undefined };
    compile: (
        options?: {
            cache?: Cache;
            forceRecompile?: boolean;
            proofsEnabled?: boolean;
        },
    ) => Promise<{ verificationKey: { data: string; hash: Field } }>;
    digest: () => Promise<string>;
    name: string;
    privateInputTypes: { verifyAES128: [typeof Byte16, typeof Byte16] };
    proofsEnabled: boolean;
    publicInputType: typeof IterativeAES128PublicInput;
    publicOutputType: ProvablePureExtended<void>;
    rawMethods: {
        verifyAES128: (
            publicInput: IterativeAES128PublicInput,
            ...args: TupleToInstances<[typeof Byte16, typeof Byte16]>,
        ) => Promise<void>;
    };
    verify: (
        proof: Proof<IterativeAES128PublicInput, void>,
    ) => Promise<boolean>;
    setProofsEnabled(proofsEnabled: boolean): void;
} & {
    verifyAES128: (
        publicInput: IterativeAES128PublicInput,
        ...args: TupleToInstances<[typeof Byte16, typeof Byte16]>,
    ) => Promise<
        {
            auxiliaryOutput: undefined;
            proof: Proof<IterativeAES128PublicInput, void>;
        },
    >;
} = ...
diff --git a/docs/variables/utils_RijndaelConstants.affine_matrix.html b/docs/variables/utils_RijndaelConstants.affine_matrix.html deleted file mode 100644 index b5d9ac5..0000000 --- a/docs/variables/utils_RijndaelConstants.affine_matrix.html +++ /dev/null @@ -1 +0,0 @@ -affine_matrix | mina-aes
affine_matrix: number[] = ...
diff --git a/docs/variables/utils_RijndaelConstants.inv_box.html b/docs/variables/utils_RijndaelConstants.inv_box.html deleted file mode 100644 index bb1272d..0000000 --- a/docs/variables/utils_RijndaelConstants.inv_box.html +++ /dev/null @@ -1 +0,0 @@ -inv_box | mina-aes
inv_box: number[] = ...
diff --git a/docs/variables/utils_SBoxArr.sbox_arr.html b/docs/variables/utils_SBoxArr.sbox_arr.html deleted file mode 100644 index 2f8bf6a..0000000 --- a/docs/variables/utils_SBoxArr.sbox_arr.html +++ /dev/null @@ -1 +0,0 @@ -sbox_arr | mina-aes

Variable sbox_arrConst

sbox_arr: Field[] = ...
diff --git a/docs/variables/utils_constants.BYTE_SIZE.html b/docs/variables/utils_constants.BYTE_SIZE.html deleted file mode 100644 index 18ecd7f..0000000 --- a/docs/variables/utils_constants.BYTE_SIZE.html +++ /dev/null @@ -1 +0,0 @@ -BYTE_SIZE | mina-aes

Variable BYTE_SIZEConst

BYTE_SIZE: 8
diff --git a/docs/variables/utils_constants.NUM_ROUNDS_128.html b/docs/variables/utils_constants.NUM_ROUNDS_128.html deleted file mode 100644 index aec145b..0000000 --- a/docs/variables/utils_constants.NUM_ROUNDS_128.html +++ /dev/null @@ -1 +0,0 @@ -NUM_ROUNDS_128 | mina-aes

Variable NUM_ROUNDS_128Const

NUM_ROUNDS_128: 10
diff --git a/docs/variables/utils_constants.RIJNDAEL_FINITE_SIZE.html b/docs/variables/utils_constants.RIJNDAEL_FINITE_SIZE.html deleted file mode 100644 index 71b012e..0000000 --- a/docs/variables/utils_constants.RIJNDAEL_FINITE_SIZE.html +++ /dev/null @@ -1 +0,0 @@ -RIJNDAEL_FINITE_SIZE | mina-aes

Variable RIJNDAEL_FINITE_SIZEConst

RIJNDAEL_FINITE_SIZE: 256n
diff --git a/typedoc.json b/typedoc.json index 1cf47de..0bd774f 100644 --- a/typedoc.json +++ b/typedoc.json @@ -1,6 +1,6 @@ { "name": "", - "entryPoints": ["src/index.ts", "src/lib/*", "src/utils/*"], + "entryPoints": ["src/**/*"], "exclude": ["build/**/*"], "out": "docs" }