diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e2ac6616a --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/assets/highlight.css b/assets/highlight.css new file mode 100644 index 000000000..5674cf392 --- /dev/null +++ b/assets/highlight.css @@ -0,0 +1,22 @@ +:root { + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --code-background: var(--dark-code-background); +} + +pre, code { background: var(--code-background); } diff --git a/assets/icons.js b/assets/icons.js new file mode 100644 index 000000000..b79c9e89f --- /dev/null +++ b/assets/icons.js @@ -0,0 +1,15 @@ +(function(svg) { + svg.innerHTML = ``; + svg.style.display = 'none'; + if (location.protocol === 'file:') { + if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); + else updateUseElements() + function updateUseElements() { + document.querySelectorAll('use').forEach(el => { + if (el.getAttribute('href').includes('#icon-')) { + el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); + } + }); + } + } +})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file diff --git a/assets/icons.svg b/assets/icons.svg new file mode 100644 index 000000000..7dead6118 --- /dev/null +++ b/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/main.js b/assets/main.js new file mode 100644 index 000000000..d6f138860 --- /dev/null +++ b/assets/main.js @@ -0,0 +1,59 @@ +"use strict"; +"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(console.log("Show page"),document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){console.log("Scorlling");let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ve(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ve(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ne(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/assets/navigation.js b/assets/navigation.js new file mode 100644 index 000000000..fd5a78c3a --- /dev/null +++ b/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA5WaTXMiNxCG/wtnVxy7YifxjQKvd+117ACbHFI5yDMNqDxIRNKYpVL576kZBtBHqyVded9+Rmp9tWT/9e/IwHczuhtNmYG5VGZ0Mdoysx7djUC0G315/P2Htdk0o4vROxf16O6X/y7OkTtxr5RUE1lDEG1pJOGLMKCWrILf2AajODpJegazlnUEcxbjjHtRqf3WcCnGzUoqbtYbn4RY4rwn2E9B8Q/W+efVGsKWIZY4rxuNKVdQdWaf5Ihxxrhp5G7cNAsQTJgHZqwmVQ3TGvRl6HF5V9c2ccLrEDHhNRUzZYbNjVTwFT6gCcNdPU1SwDYxSqeRhJ1AQnciETORQhsmDBp7FBOMfoWggF6hou9FJWtAggchETtMYjR80EjCBwhzv+HGgIplP/QkiV/lKjIhHDnJ0Q+AjMtJSsf/3oLaxwi9mGbM2zddKf6GLDDPQLE+10+AtKT/mYp73Okw6nGnqZhn0JqtkPYOQkYstagDSwYPH0lLpBivoDZcay6FflXSyEoirUJMJLPfrOEJ9nO+EtgC9B007fBFZKxOUlb8RIolX7UKGbzQk0WMLAFXp0gzqKSqkZ4NQkbsFBrADihHzuBE+mKrGZQZMOSks8QMBrEp+I4M2p+KE+npVZqi2w17a2DB9Du1ciNGij2Hant9c/t+FdJOUka8iscrMn4B2nTn/wMIUMxgx2xgIXl8g2S6+zWrzjmH8mM9a1U5LuL65hY5GFHCUUwC/EPaZ2AHNIY5TE6vdghglotC2gcCSrMNuaCX/rM6yRt8OdhUpxEfhQ1XE0oNbRTUP40sEHYMucHYZcACxO4BLmRcGf4BB+9kDdV714HGOr3NfttdLnCbR/7x15+vbq7tW4YCZuCTkptggA/cwJAinlbfAxi8qaEjm/nappgnR5LZ3Q+hHsqKx917gPQNSWJ/QVnyVUA6CinC+ZbwRWzboJOenE97VXILyuzjwKMjyfynZc0n3hh7UQyws5Sk9Psr1wYEwrHFLJK9Q3xmom4iUMSXxe8K4qCIt7iWns2LLDdfz+bNYNuE4+uoeay+bCN7azsKmGSPbUcBk+j1Wc/jnQrEKRwmicQnEWYs/AKZXd9VyCaz7LsK2US2XU+Ki28geXtHX1byKpJDVy1jod1DLCnqE+wTG3noyGA+MwOKswaBHaUU5ZkJtoLaKYF8HOZJcg/Z6adCwLO0TI77bO5gwpfzKIXYtUNHATOywkJHAROder5eyrsXRiWhvSlFfhHwssQXrSWlKK9sxQVzy/0D5KzkMyat0uEW7etJ3umZaiJFzdGRxTz53Hklt8EE9OQMmpaCIZTu52R0tMTNr22P71NTWHLB0TEMHLnMWdvAHIIV78m5tEUXHGP1Yi7p/LIXLwkob/l3IttV1Fj+hcjmFTVmf6Evt/AtAvOUcVN5KalI3aBUPkrqUjcI3dIRS5LavjW8whbvUUgRqI6W9G9oc3e5Ro8WX0/xZkysYNK9pipkP3HVLBY+/SwpSelfeDOuk1Fj3heGJ/bItMY8RdzIWGOeTC61ChFLCZVubMn8tEPQ1RcYionovMddmezuDxx0Yi1HAZNOq+UoYFJJPemZvIzrdtxZ+g06waU3bj+MTnXpndsPo5Jeduu2/36VzLrnKmHT2bYtJVQ6y7alhLpgqz9Y05KNPXoKuWRTOz3Fs48XdBYEhhTxm+BSUK8dgSFFZK1ZgzC8cv7IsWxF//9S+tLWXdbtTxYGvkPVGvgmGtB6/CaVgRrDYb4A+/f/DY/ez4UnAAA=" \ No newline at end of file diff --git a/assets/search.js b/assets/search.js new file mode 100644 index 000000000..f51dd907d --- /dev/null +++ b/assets/search.js @@ -0,0 +1 @@ +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/assets/style.css b/assets/style.css new file mode 100644 index 000000000..778b94927 --- /dev/null +++ b/assets/style.css @@ -0,0 +1,1412 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 > a:not(.link), +h2 > a:not(.link), +h3 > a:not(.link), +h4 > a:not(.link), +h5 > a:not(.link), +h6 > a:not(.link) { + text-decoration: none; + color: var(--color-text); +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +.uppercase { + text-transform: uppercase; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +.tsd-generator { + 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; +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: fit-content; + width: -moz-fit-content; + align-items: center; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus + svg { + transform: scale(0.95); +} +.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { + transform: scale(1); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.tsd-theme-toggle { + padding-top: 0.75rem; +} +.tsd-theme-toggle > h4 { + display: inline; + vertical-align: middle; + margin-right: 0.75rem; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-index-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 4rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/classes/AllowAllTenantGate.html b/classes/AllowAllTenantGate.html new file mode 100644 index 000000000..ceeb46c71 --- /dev/null +++ b/classes/AllowAllTenantGate.html @@ -0,0 +1,5 @@ +AllowAllTenantGate | DWN-SDK Documentation - v0.3.8

A tenant gate that treats every DID as an active tenant.

+

Implements

Constructors

Methods

Constructors

Methods

\ No newline at end of file diff --git a/classes/Cid.html b/classes/Cid.html new file mode 100644 index 000000000..ee69abb27 --- /dev/null +++ b/classes/Cid.html @@ -0,0 +1,17 @@ +Cid | DWN-SDK Documentation - v0.3.8

Utility class for creating CIDs. Exported for the convenience of developers.

+

Constructors

Methods

  • Computes a V1 CID for the provided payload

    +

    Parameters

    • payload: any
    • codecCode: number = cbor.code

      the codec to use. Defaults to cbor

      +
    • multihashCode: number = sha256.code

      the multihasher to use. Defaults to sha256

      +

    Returns Promise<string>

    payload CID

    +

    Throws

    codec is not supported

    +

    Throws

    encoding fails

    +

    Throws

    if hasher is not supported

    +
  • Parameters

    • content: Uint8Array

    Returns Promise<string>

    V1 CID of the DAG comprised by chunking data into unixfs DAG-PB encoded blocks

    +
  • Parameters

    • dataStream: Readable

    Returns Promise<string>

    V1 CID of the DAG comprised by chunking data into unixfs DAG-PB encoded blocks

    +
  • Parses the given CID string into a {CID}.

    +

    Parameters

    • str: string

    Returns CID<unknown, number, number, Version>

\ No newline at end of file diff --git a/classes/DataStoreLevel.html b/classes/DataStoreLevel.html new file mode 100644 index 000000000..0ad9df7f1 --- /dev/null +++ b/classes/DataStoreLevel.html @@ -0,0 +1,27 @@ +DataStoreLevel | DWN-SDK Documentation - v0.3.8

A simple implementation of DataStore that works in both the browser and server-side. +Leverages LevelDB under the hood.

+

It has the following structure (+ represents an additional sublevel/partition): + 'data' + + + ->

+

Implements

Constructors

Properties

Methods

Constructors

Properties

blockstore: BlockstoreLevel
config: DataStoreLevelConfig

Methods

  • Deletes the specified data. No-op if the data does not exist.

    +

    Parameters

    • tenant: string
    • recordId: string

      The logical ID of the record that references the data.

      +
    • dataCid: string

      The IPFS CID of the data.

      +

    Returns Promise<void>

  • Fetches the specified data.

    +

    Parameters

    • tenant: string
    • recordId: string

      The logical ID of the record that references the data.

      +
    • dataCid: string

      The IPFS CID of the data.

      +

    Returns Promise<undefined | DataStoreGetResult>

    the data size and data stream if found, otherwise undefined.

    +
\ No newline at end of file diff --git a/classes/DataStream.html b/classes/DataStream.html new file mode 100644 index 000000000..0e0f78749 --- /dev/null +++ b/classes/DataStream.html @@ -0,0 +1,13 @@ +DataStream | DWN-SDK Documentation - v0.3.8

Utility class for readable data stream, intentionally named to disambiguate from ReadableStream, readable-stream, Readable etc.

+

Constructors

Methods

  • Duplicates the given data stream into the number of streams specified so that multiple handlers can consume the same data stream.

    +

    Parameters

    • dataStream: Readable
    • count: number

    Returns Readable[]

  • Creates a readable stream from the bytes given.

    +

    Parameters

    • bytes: Uint8Array

    Returns Readable

  • Creates a readable stream from the object given.

    +

    Parameters

    • object: Record<string, any>

    Returns Readable

  • Reads the entire readable stream given into array of bytes.

    +

    Parameters

    • readableStream: Readable

    Returns Promise<Uint8Array>

  • Reads the entire readable stream and JSON parses it into an object.

    +

    Parameters

    • readableStream: Readable

    Returns Promise<object>

\ No newline at end of file diff --git a/classes/Dwn.html b/classes/Dwn.html new file mode 100644 index 000000000..143e49765 --- /dev/null +++ b/classes/Dwn.html @@ -0,0 +1,16 @@ +Dwn | DWN-SDK Documentation - v0.3.8

Methods

  • Initializes the DWN instance and opens the connection to it.

    +

    Returns Promise<void>

  • Validates structure of DWN message

    +

    Parameters

    • rawMessage: any

    Returns Promise<undefined | GenericMessageReply>

    GenericMessageReply if the message has an integrity error, otherwise undefined.

    +
  • Checks tenant gate to see if tenant is allowed.

    +

    Parameters

    • tenant: string

      The tenant DID to route the given message to.

      +

    Returns Promise<undefined | GenericMessageReply>

    GenericMessageReply if the message has an integrity error, otherwise undefined.

    +
\ No newline at end of file diff --git a/classes/DwnConstant.html b/classes/DwnConstant.html new file mode 100644 index 000000000..767792736 --- /dev/null +++ b/classes/DwnConstant.html @@ -0,0 +1,6 @@ +DwnConstant | DWN-SDK Documentation - v0.3.8

Constructors

Properties

maxDataSizeAllowedToBeEncoded: 30000 = 30_000

The maximum size of raw data that will be returned as encodedData.

+

We chose 30k, as after encoding it would give plenty of headroom up to the 65k limit in most SQL variants. +We currently encode using base64url which is a 33% increase in size.

+
\ No newline at end of file diff --git a/classes/DwnError.html b/classes/DwnError.html new file mode 100644 index 000000000..e4ff9e7db --- /dev/null +++ b/classes/DwnError.html @@ -0,0 +1,4 @@ +DwnError | DWN-SDK Documentation - v0.3.8

A class that represents a DWN error.

+

Hierarchy

  • Error
    • DwnError

Constructors

Properties

Constructors

Properties

code: string
\ No newline at end of file diff --git a/classes/Encoder.html b/classes/Encoder.html new file mode 100644 index 000000000..ed286d568 --- /dev/null +++ b/classes/Encoder.html @@ -0,0 +1,11 @@ +Encoder | DWN-SDK Documentation - v0.3.8

Utility class for encoding/converting data into various formats.

+

Constructors

Methods

  • Parameters

    • base64urlString: string

    Returns Uint8Array

  • Parameters

    • base64urlString: string

    Returns any

  • Parameters

    • obj: Record<string, any>

    Returns Uint8Array

\ No newline at end of file diff --git a/classes/Encryption.html b/classes/Encryption.html new file mode 100644 index 000000000..0f64562c9 --- /dev/null +++ b/classes/Encryption.html @@ -0,0 +1,17 @@ +Encryption | DWN-SDK Documentation - v0.3.8

Utility class for performing common, non-DWN specific encryption operations.

+

Constructors

Accessors

Methods

  • Decrypts the given cipher stream using AES-256-CTR algorithm.

    +

    Parameters

    • key: Uint8Array
    • initializationVector: Uint8Array
    • cipherStream: Readable

    Returns Promise<Readable>

  • Encrypts the given plaintext stream using AES-256-CTR algorithm.

    +

    Parameters

    • key: Uint8Array
    • initializationVector: Uint8Array
    • plaintextStream: Readable

    Returns Promise<Readable>

  • Decrypt the given plaintext using ECIES (Elliptic Curve Integrated Encryption Scheme) +with SECP256K1 for the asymmetric calculations, HKDF as the key-derivation function, +and AES-GCM for the symmetric encryption and MAC algorithms.

    +

    Parameters

    • input: EciesEncryptionInput

    Returns Promise<Uint8Array>

  • Encrypts the given plaintext using ECIES (Elliptic Curve Integrated Encryption Scheme) +with SECP256K1 for the asymmetric calculations, HKDF as the key-derivation function, +and AES-GCM for the symmetric encryption and MAC algorithms.

    +

    Parameters

    • publicKeyBytes: Uint8Array
    • plaintext: Uint8Array

    Returns Promise<EciesEncryptionOutput>

\ No newline at end of file diff --git a/classes/EventEmitterStream.html b/classes/EventEmitterStream.html new file mode 100644 index 000000000..580b094c0 --- /dev/null +++ b/classes/EventEmitterStream.html @@ -0,0 +1,7 @@ +EventEmitterStream | DWN-SDK Documentation - v0.3.8

The EventStream interface implements a pub/sub system based on Message filters.

+

Implements

Constructors

Methods

Constructors

Methods

\ No newline at end of file diff --git a/classes/EventLogLevel.html b/classes/EventLogLevel.html new file mode 100644 index 000000000..28b9061af --- /dev/null +++ b/classes/EventLogLevel.html @@ -0,0 +1,28 @@ +EventLogLevel | DWN-SDK Documentation - v0.3.8

Implements

Constructors

Properties

index: IndexLevel
ulidFactory: ULIDFactory

Methods

  • adds an event to a tenant's event log

    +

    Parameters

    • tenant: string

      the tenant's DID

      +
    • messageCid: string

      the CID of the message

      +
    • indexes: KeyValues

      (key-value pairs) to be included as part of indexing this event.

      +

    Returns Promise<void>

  • deletes any events that have any of the messageCids provided

    +

    Parameters

    • tenant: string
    • messageCids: string[]

    Returns Promise<void>

    the number of events deleted

    +
  • Retrieves all of a tenant's events that occurred after the cursor provided. +If no cursor is provided, all events for a given tenant will be returned.

    +

    The cursor is a messageCid.

    +

    Returns an array of messageCids that represent the events.

    +

    Parameters

    Returns Promise<{
        cursor?: PaginationCursor;
        events: string[];
    }>

  • retrieves a filtered set of events that occurred after a the cursor provided, accepts multiple filters.

    +

    If no cursor is provided, all events for a given tenant and filter combo will be returned. +The cursor is a messageCid.

    +

    Returns an array of messageCids that represent the events.

    +

    Parameters

    Returns Promise<{
        cursor?: PaginationCursor;
        events: string[];
    }>

\ No newline at end of file diff --git a/classes/EventsGet.html b/classes/EventsGet.html new file mode 100644 index 000000000..458e3c8f7 --- /dev/null +++ b/classes/EventsGet.html @@ -0,0 +1,9 @@ +EventsGet | DWN-SDK Documentation - v0.3.8

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/EventsQuery.html b/classes/EventsQuery.html new file mode 100644 index 000000000..39ddd954d --- /dev/null +++ b/classes/EventsQuery.html @@ -0,0 +1,9 @@ +EventsQuery | DWN-SDK Documentation - v0.3.8

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/EventsSubscribe.html b/classes/EventsSubscribe.html new file mode 100644 index 000000000..151f34b89 --- /dev/null +++ b/classes/EventsSubscribe.html @@ -0,0 +1,11 @@ +EventsSubscribe | DWN-SDK Documentation - v0.3.8

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/HdKey.html b/classes/HdKey.html new file mode 100644 index 000000000..7b89d5e07 --- /dev/null +++ b/classes/HdKey.html @@ -0,0 +1,14 @@ +HdKey | DWN-SDK Documentation - v0.3.8

Class containing hierarchical deterministic key related utility methods used by the DWN.

+

Constructors

Methods

  • Derives a key using HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869. +TODO: Consolidate HKDF implementation and usage with web5-js - https://github.com/TBD54566975/dwn-sdk-js/issues/742

    +

    Parameters

    • params: {
          hashAlgorithm: "SHA-256" | "SHA-384" | "SHA-512";
          info: Uint8Array;
          initialKeyMaterial: Uint8Array;
          keyLengthInBytes: number;
      }
      • hashAlgorithm: "SHA-256" | "SHA-384" | "SHA-512"
      • info: Uint8Array
      • initialKeyMaterial: Uint8Array
      • keyLengthInBytes: number

    Returns Promise<Uint8Array>

  • Derives a hardened hierarchical deterministic private key.

    +

    Parameters

    • privateKey: Uint8Array
    • relativePath: string[]

    Returns Promise<Uint8Array>

  • Derives a descendant public key from an ancestor private key. +NOTE: currently only supports SECP256K1 keys.

    +

    Parameters

    Returns Promise<PublicJwk>

\ No newline at end of file diff --git a/classes/Jws.html b/classes/Jws.html new file mode 100644 index 000000000..f30b64cf0 --- /dev/null +++ b/classes/Jws.html @@ -0,0 +1,18 @@ +Jws | DWN-SDK Documentation - v0.3.8

Utility class for JWS related operations.

+

Constructors

Methods

  • Decodes the payload of the given JWS object as a plain object.

    +

    Parameters

    • jws: GeneralJws

    Returns any

  • Extracts the DID from the given kid string.

    +

    Parameters

    • kid: string

    Returns string

  • Gets the kid from a general JWS signature entry.

    +

    Parameters

    • signatureEntry: SignatureEntry

    Returns string

  • Gets the signer DID from a general JWS signature entry.

    +

    Parameters

    • signatureEntry: SignatureEntry

    Returns string

  • Verifies the signature against the given payload.

    +

    Parameters

    • base64UrlPayload: string
    • signatureEntry: SignatureEntry
    • jwkPublic: PublicJwk

    Returns Promise<boolean>

    true if signature is valid; false otherwise

    +
\ No newline at end of file diff --git a/classes/Message.html b/classes/Message.html new file mode 100644 index 000000000..99d3cc82e --- /dev/null +++ b/classes/Message.html @@ -0,0 +1,46 @@ +Message | DWN-SDK Documentation - v0.3.8

A class containing utility methods for working with DWN messages.

+

Constructors

Methods

  • Compares message CID in lexicographical order according to the spec.

    +

    Returns Promise<number>

    1 if a is larger than b; -1 if a is smaller/older than b; 0 otherwise (same message)

    +
  • Compares the messageTimestamp of the given messages with a fallback to message CID according to the spec.

    +

    Returns Promise<number>

    1 if a is larger/newer than b; -1 if a is smaller/older than b; 0 otherwise (same age)

    +
  • Creates the authorization property to be included in a DWN message.

    +

    Parameters

    • input: {
          delegatedGrant?: DataEncodedRecordsWriteMessage;
          descriptor: Descriptor;
          permissionGrantId?: string;
          protocolRole?: string;
          signer: Signer;
      }
      • Optional delegatedGrant?: DataEncodedRecordsWriteMessage
      • descriptor: Descriptor
      • Optional permissionGrantId?: string
      • Optional protocolRole?: string
      • signer: Signer

    Returns Promise<AuthorizationModel>

    used as an authorization property.

    +
  • Creates a generic signature from the given DWN message descriptor by including descriptorCid as the required property in the signature payload. +NOTE: there is an opportunity to consolidate RecordsWrite.createSignerSignature() wth this method

    +

    Parameters

    • descriptor: Descriptor
    • signer: Signer
    • Optional additionalPayloadProperties: {
          delegatedGrantId?: string;
          permissionGrantId?: string;
          protocolRole?: string;
      }
      • Optional delegatedGrantId?: string
      • Optional permissionGrantId?: string
      • Optional protocolRole?: string

    Returns Promise<GeneralJws>

  • Gets the DID of the signer of the given message, returns undefined if message is not signed.

    +

    Parameters

    Returns undefined | string

  • Validates the given message against the corresponding JSON schema.

    +

    Parameters

    • rawMessage: any

    Returns void

    Throws

    if fails validation.

    +
  • Validates the structural integrity of the message signature given:

    +
      +
    1. The message signature must contain exactly 1 signature
    2. +
    3. Passes JSON schema validation
    4. +
    5. The descriptorCid property matches the CID of the message descriptor +NOTE: signature is NOT verified.
    6. +
    +

    Parameters

    • messageSignature: GeneralJws
    • messageDescriptor: Descriptor
    • payloadJsonSchemaKey: string = 'GenericSignaturePayload'

      The key to look up the JSON schema referenced in compile-validators.js and perform payload schema validation on.

      +

    Returns Promise<GenericSignaturePayload>

    the parsed JSON payload object if validation succeeds.

    +
\ No newline at end of file diff --git a/classes/MessageStoreLevel.html b/classes/MessageStoreLevel.html new file mode 100644 index 000000000..adbd48f12 --- /dev/null +++ b/classes/MessageStoreLevel.html @@ -0,0 +1,26 @@ +MessageStoreLevel | DWN-SDK Documentation - v0.3.8

A simple implementation of MessageStore that works in both the browser and server-side. +Leverages LevelDB under the hood.

+

Implements

Constructors

Properties

blockstore: BlockstoreLevel
config: MessageStoreLevelConfig
index: IndexLevel

Methods

\ No newline at end of file diff --git a/classes/MessagesGet.html b/classes/MessagesGet.html new file mode 100644 index 000000000..6b99ddef6 --- /dev/null +++ b/classes/MessagesGet.html @@ -0,0 +1,9 @@ +MessagesGet | DWN-SDK Documentation - v0.3.8

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/PermissionsProtocol.html b/classes/PermissionsProtocol.html new file mode 100644 index 000000000..7a080649e --- /dev/null +++ b/classes/PermissionsProtocol.html @@ -0,0 +1,26 @@ +PermissionsProtocol | DWN-SDK Documentation - v0.3.8

This is a first-class DWN protocol for managing permission grants of a given DWN.

+

Constructors

Properties

definition: ProtocolDefinition = ...

The definition of the Permissions protocol.

+
grantPath: "grant" = 'grant'

The protocol path of the grant record.

+
requestPath: "request" = 'request'

The protocol path of the request record.

+
revocationPath: "grant/revocation" = 'grant/revocation'

The protocol path of the revocation record.

+
uri: "https://tbd.website/dwn/permissions" = 'https://tbd.website/dwn/permissions'

The URI of the DWN Permissions protocol.

+

Methods

  • Convenience method to create a permission grant.

    +

    Parameters

    • options: PermissionGrantCreateOptions

    Returns Promise<{
        dataEncodedMessage: DataEncodedRecordsWriteMessage;
        permissionGrantBytes: Uint8Array;
        permissionGrantData: PermissionGrantData;
        recordsWrite: RecordsWrite;
    }>

  • Convenience method to create a permission request.

    +

    Parameters

    • options: PermissionRequestCreateOptions

    Returns Promise<{
        permissionRequestBytes: Uint8Array;
        permissionRequestData: PermissionRequestData;
        recordsWrite: RecordsWrite;
    }>

  • Convenience method to create a permission revocation.

    +

    Parameters

    • options: PermissionRevocationCreateOptions

    Returns Promise<{
        permissionRevocationBytes: Uint8Array;
        permissionRevocationData: PermissionRevocationData;
        recordsWrite: RecordsWrite;
    }>

  • Fetches PermissionGrant with the specified recordID.

    +

    Parameters

    • tenant: string
    • messageStore: MessageStore
    • permissionGrantId: string

    Returns Promise<PermissionGrant>

    the PermissionGrant matching the recordId specified.

    +

    Throws

    if PermissionGrant does not exist

    +
  • Parameters

    • base64UrlEncodedRequest: string

    Returns PermissionRequestData

  • Validates the given Permissions protocol RecordsWrite. It can be a request, grant, or revocation.

    +

    Parameters

    Returns void

\ No newline at end of file diff --git a/classes/PrivateKeySigner.html b/classes/PrivateKeySigner.html new file mode 100644 index 000000000..ae5727d17 --- /dev/null +++ b/classes/PrivateKeySigner.html @@ -0,0 +1,17 @@ +PrivateKeySigner | DWN-SDK Documentation - v0.3.8

A signer that signs using a private key.

+

Implements

Constructors

Properties

Methods

Constructors

Properties

algorithm: string

The name of the signature algorithm used by this signer. +This value will be used as the "alg" parameter in JWS produced. +This parameter is not used by the DWN but is unfortunately a required header property for a JWS as per: +https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 +Valid signature algorithm values can be found at https://www.iana.org/assignments/jose/jose.xhtml

+
keyId: string

The ID of the key used by this signer. +This needs to be a fully-qualified ID (ie. prefixed with DID) so that author can be parsed out for processing such as recordId computation. +Example: did:example:alice#key1 +This value will be used as the "kid" parameter in JWS produced. +While this property is not a required property per JWS specification, it is required for DWN authentication.

+

Methods

  • Signs the given content and returns the signature as bytes.

    +

    Parameters

    • content: Uint8Array

    Returns Promise<Uint8Array>

\ No newline at end of file diff --git a/classes/Protocols.html b/classes/Protocols.html new file mode 100644 index 000000000..87c5a052d --- /dev/null +++ b/classes/Protocols.html @@ -0,0 +1,7 @@ +Protocols | DWN-SDK Documentation - v0.3.8

Class containing Protocol related utility methods.

+

Constructors

Methods

  • Derives public encryptions keys and inject it in the $encryption property for each protocol path segment of the given Protocol definition, +then returns the final encryption-enabled protocol definition. +NOTE: The original definition passed in is unmodified.

    +

    Parameters

    Returns Promise<ProtocolDefinition>

\ No newline at end of file diff --git a/classes/ProtocolsConfigure.html b/classes/ProtocolsConfigure.html new file mode 100644 index 000000000..d21ff3bd2 --- /dev/null +++ b/classes/ProtocolsConfigure.html @@ -0,0 +1,9 @@ +ProtocolsConfigure | DWN-SDK Documentation - v0.3.8

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/ProtocolsQuery.html b/classes/ProtocolsQuery.html new file mode 100644 index 000000000..a7ba7f246 --- /dev/null +++ b/classes/ProtocolsQuery.html @@ -0,0 +1,11 @@ +ProtocolsQuery | DWN-SDK Documentation - v0.3.8

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/Records.html b/classes/Records.html new file mode 100644 index 000000000..d286c6f52 --- /dev/null +++ b/classes/Records.html @@ -0,0 +1,52 @@ +Records | DWN-SDK Documentation - v0.3.8

Class containing useful utilities related to the Records interface.

+

Constructors

Methods

  • This will create individual keys for each of the tags that look like tag.tag_property

    +

    Parameters

    Returns KeyValues

  • Constructs the full key derivation path using dataFormats scheme.

    +

    Parameters

    • schema: undefined | string
    • dataFormat: string

    Returns string[]

  • Constructs the full key derivation path using protocolContext scheme.

    +

    Parameters

    • contextId: undefined | string

    Returns string[]

  • Constructs the full key derivation path using protocolPath scheme.

    +

    Parameters

    Returns string[]

  • Constructs the full key derivation path using schemas scheme.

    +

    Parameters

    • schema: undefined | string

    Returns string[]

  • Converts an incoming RecordsFilter into a Filter usable by MessageStore.

    +

    Parameters

    • filter: RecordsFilter

      A RecordsFilter

      +
    • Optional dateSort: DateSort

    Returns Filter

    a generic Filter able to be used with MessageStore.

    +
  • Decrypts the encrypted data in a message reply using the given ancestor private key.

    +

    Parameters

    Returns Promise<Readable>

  • Derives a descendant private key given an ancestor private key and the full absolute derivation path. +NOTE: right now only ECIES-ES256K algorithm is supported for asymmetric encryption, + so we will only derive SECP256K1 key without additional conditional checks

    +

    Parameters

    Returns Promise<Uint8Array>

  • Checks if the filter supports returning published records.

    +

    Parameters

    • filter: RecordsFilter

    Returns boolean

  • Checks if the filter supports returning unpublished records.

    +

    Parameters

    • filter: RecordsFilter

    Returns boolean

  • Extracts the parent context ID from the given context ID.

    +

    Parameters

    • contextId: undefined | string

    Returns undefined | string

  • Parameters

    • filter: string | number | boolean | {
          gt: RangeValue;
      } & {
          gte?: undefined;
      } & Partial<{
          gt: RangeValue;
      } & {
          gte?: undefined;
      }> & Partial<{
          lt: RangeValue;
      } & {
          lte?: undefined;
      }> | {
          gt: RangeValue;
      } & {
          gte?: undefined;
      } & Partial<{
          gt: RangeValue;
      } & {
          gte?: undefined;
      }> & Partial<{
          lt?: undefined;
      } & {
          lte: RangeValue;
      }> | never | never | never | never | {
          gt?: undefined;
      } & {
          gte: RangeValue;
      } & Partial<{
          gt?: undefined;
      } & {
          gte: RangeValue;
      }> & Partial<{
          lt: RangeValue;
      } & {
          lte?: undefined;
      }> | {
          gt?: undefined;
      } & {
          gte: RangeValue;
      } & Partial<{
          gt?: undefined;
      } & {
          gte: RangeValue;
      }> & Partial<{
          lt?: undefined;
      } & {
          lte: RangeValue;
      }> | {
          lt: RangeValue;
      } & {
          lte?: undefined;
      } & Partial<{
          gt: RangeValue;
      } & {
          gte?: undefined;
      }> & Partial<{
          lt: RangeValue;
      } & {
          lte?: undefined;
      }> | never | {
          lt: RangeValue;
      } & {
          lte?: undefined;
      } & Partial<{
          gt?: undefined;
      } & {
          gte: RangeValue;
      }> & Partial<{
          lt: RangeValue;
      } & {
          lte?: undefined;
      }> | never | never | {
          lt?: undefined;
      } & {
          lte: RangeValue;
      } & Partial<{
          gt: RangeValue;
      } & {
          gte?: undefined;
      }> & Partial<{
          lt?: undefined;
      } & {
          lte: RangeValue;
      }> | never | {
          lt?: undefined;
      } & {
          lte: RangeValue;
      } & Partial<{
          gt?: undefined;
      } & {
          gte: RangeValue;
      }> & Partial<{
          lt?: undefined;
      } & {
          lte: RangeValue;
      }> | StartsWithFilter

    Returns filter is StartsWithFilter

  • Normalizes the protocol and schema URLs within a provided RecordsFilter and returns a copy of RecordsFilter with the modified values.

    +

    Parameters

    • filter: RecordsFilter

      incoming RecordsFilter to normalize.

      +

    Returns RecordsFilter

    a copy of the incoming RecordsFilter with the normalized properties.

    +
  • Determines if signature payload contains a protocolRole and should be authorized as such.

    +

    Parameters

    • signaturePayload: GenericSignaturePayload

    Returns boolean

  • Validates that ancestor derivation path matches the descendant derivation path completely.

    +

    Parameters

    • ancestorKeyDerivationPath: string[]
    • descendantKeyDerivationPath: string[]

    Returns void

    Throws

    with DwnErrorCode.RecordsInvalidAncestorKeyDerivationSegment if fails validation.

    +
  • Validates the referential integrity of both author-delegated grant and owner-delegated grant.

    +

    Parameters

    • message: RecordsWriteMessage | RecordsQueryMessage | RecordsDeleteMessage | RecordsSubscribeMessage | RecordsReadMessage
    • authorSignaturePayload: undefined | GenericSignaturePayload

      Decoded payload of the author signature of the message. Pass undefined if message is not signed. + Passed purely as a performance optimization so we don't have to decode the signature payload again.

      +
    • Optional ownerSignaturePayload: GenericSignaturePayload

      Decoded payload of the owner signature of the message. Pass undefined if no owner signature is present. + Passed purely as a performance optimization so we don't have to decode the owner signature payload again.

      +

    Returns Promise<void>

\ No newline at end of file diff --git a/classes/RecordsDelete.html b/classes/RecordsDelete.html new file mode 100644 index 000000000..b37da2e1e --- /dev/null +++ b/classes/RecordsDelete.html @@ -0,0 +1,13 @@ +RecordsDelete | DWN-SDK Documentation - v0.3.8

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/RecordsQuery.html b/classes/RecordsQuery.html new file mode 100644 index 000000000..d6c6f059b --- /dev/null +++ b/classes/RecordsQuery.html @@ -0,0 +1,13 @@ +RecordsQuery | DWN-SDK Documentation - v0.3.8

A class representing a RecordsQuery DWN message.

+

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

  • Authorizes the delegate who signed this message.

    +

    Parameters

    • messageStore: MessageStore

      Used to check if the grant has been revoked.

      +

    Returns Promise<void>

\ No newline at end of file diff --git a/classes/RecordsRead.html b/classes/RecordsRead.html new file mode 100644 index 000000000..6cad89ca3 --- /dev/null +++ b/classes/RecordsRead.html @@ -0,0 +1,14 @@ +RecordsRead | DWN-SDK Documentation - v0.3.8

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/RecordsSubscribe.html b/classes/RecordsSubscribe.html new file mode 100644 index 000000000..940d3952a --- /dev/null +++ b/classes/RecordsSubscribe.html @@ -0,0 +1,13 @@ +RecordsSubscribe | DWN-SDK Documentation - v0.3.8

A class representing a RecordsSubscribe DWN message.

+

Hierarchy

Accessors

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Returns undefined | GenericSignaturePayload

Methods

\ No newline at end of file diff --git a/classes/RecordsWrite.html b/classes/RecordsWrite.html new file mode 100644 index 000000000..d9707504c --- /dev/null +++ b/classes/RecordsWrite.html @@ -0,0 +1,81 @@ +RecordsWrite | DWN-SDK Documentation - v0.3.8

A class representing a RecordsWrite DWN message. +NOTE: Unable to extend AbstractMessage directly because the incompatible _message type, which is not just a generic <M> type.

+

Implements

Properties

attesters: string[]

Accessors

  • get owner(): undefined | string
  • The owner DID of the message if owner signature is present in the message; undefined otherwise. +This is the logical owner of the message, not to be confused with the actual signer of the owner signature, +this is because the signer of the owner signature may not be the actual DWN owner, but a delegate authorized by the owner.

    +

    Returns undefined | string

  • get ownerSignaturePayload(): undefined | GenericSignaturePayload
  • Decoded owner signature payload.

    +

    Returns undefined | GenericSignaturePayload

  • get ownerSignatureSigner(): undefined | string
  • Gets the signer of owner signature; undefined if owner signature is not present in the message. +This is not to be confused with the logical owner #owner of the message, +this is because the signer of the owner signature may not be the actual DWN owner, but a delegate authorized by the owner. +In the case that the owner signature is signed by the actual DWN owner, this value will be the same as #owner.

    +

    Returns undefined | string

  • get signaturePayload(): undefined | RecordsWriteSignaturePayload
  • Returns undefined | RecordsWriteSignaturePayload

  • get signer(): undefined | string
  • Gets the signer of this message. +This is not to be confused with the logical author of the message.

    +

    Returns undefined | string

Methods

  • Authorizes the author-delegate who signed this message.

    +

    Parameters

    • messageStore: MessageStore

      Used to check if the grant has been revoked.

      +

    Returns Promise<void>

  • Authorizes the owner-delegate who signed this message.

    +

    Parameters

    • messageStore: MessageStore

      Used to check if the grant has been revoked.

      +

    Returns Promise<void>

  • Encrypts the symmetric encryption key using the public keys given and attach the resulting encryption property to the RecordsWrite.

    +

    Parameters

    Returns Promise<void>

  • Signs the RecordsWrite, the signer is commonly the author, but can also be a delegate.

    +

    Parameters

    • options: {
          delegatedGrant?: DataEncodedRecordsWriteMessage;
          permissionGrantId?: string;
          protocolRole?: string;
          signer: Signer;
      }
      • Optional delegatedGrant?: DataEncodedRecordsWriteMessage
      • Optional permissionGrantId?: string
      • Optional protocolRole?: string
      • signer: Signer

    Returns Promise<void>

  • Signs the RecordsWrite as the DWN owner. +This is used when the DWN owner wants to retain a copy of a message that the owner did not author. +NOTE: requires the RecordsWrite to already have the author's signature.

    +

    Parameters

    Returns Promise<void>

  • Signs the RecordsWrite as the DWN owner-delegate. +This is used when a DWN owner-delegate wants to retain a copy of a message that the owner did not author. +NOTE: requires the RecordsWrite to already have the author's signature.

    +

    Parameters

    • signer: Signer
    • delegatedGrant: DataEncodedRecordsWriteMessage

    Returns Promise<void>

  • Creates the attestation property of a RecordsWrite message if given signature inputs; returns undefined otherwise.

    +

    Parameters

    • descriptorCid: string
    • Optional signers: Signer[]

    Returns Promise<undefined | GeneralJws>

  • Convenience method that creates a message by:

    +
      +
    1. Copying over immutable properties from the given source message
    2. +
    3. Copying over mutable properties that are not overwritten from the given source message
    4. +
    5. Replace the mutable properties that are given new value
    6. +
    +

    Parameters

    Returns Promise<RecordsWrite>

  • Creates the signature property in the authorization of a RecordsWrite message.

    +

    Parameters

    • input: {
          attestation: undefined | GeneralJws;
          contextId: undefined | string;
          delegatedGrantId?: string;
          descriptorCid: string;
          encryption: undefined | EncryptionProperty;
          permissionGrantId?: string;
          protocolRole?: string;
          recordId: string;
          signer: Signer;
      }
      • attestation: undefined | GeneralJws
      • contextId: undefined | string
      • Optional delegatedGrantId?: string
      • descriptorCid: string
      • encryption: undefined | EncryptionProperty
      • Optional permissionGrantId?: string
      • Optional protocolRole?: string
      • recordId: string
      • signer: Signer

    Returns Promise<GeneralJws>

  • Fetches the initial RecordsWrite of a record.

    +

    Parameters

    Returns Promise<undefined | RecordsWrite>

    The initial RecordsWrite if found; undefined if the record is not found.

    +
  • Gets the DID of the attesters of the given message.

    +

    Parameters

    • message: InternalRecordsWriteMessage

    Returns string[]

\ No newline at end of file diff --git a/classes/ResumableTaskStoreLevel.html b/classes/ResumableTaskStoreLevel.html new file mode 100644 index 000000000..5602ba0e8 --- /dev/null +++ b/classes/ResumableTaskStoreLevel.html @@ -0,0 +1,41 @@ +ResumableTaskStoreLevel | DWN-SDK Documentation - v0.3.8

A simple single-instance implementation of ResumableTaskStore that works in both browsers and node.js. +Leverages LevelDB under the hood.

+

Implements

Constructors

Properties

Methods

Constructors

Properties

config: ResumableTaskStoreLevelConfig
db: LevelWrapper<string>

Methods

  • Deletes the task associated with the task ID provided. +No-op if the task is not found, as this implies that the task has already been completed. +Called when the task has been successfully completed.

    +

    Parameters

    • taskId: string

    Returns Promise<void>

  • Extends the timeout of the task associated with the task ID provided. +No-op if the task is not found, as this implies that the task has already been completed. +This allows the client that is executing the task to continue working on it before the task is considered timed out.

    +

    Parameters

    • taskId: string

      ID of the task to extend the timeout for.

      +
    • timeoutInSeconds: number

      Timeout in seconds from the current time.

      +

    Returns Promise<void>

  • Grabs a number of unhandled tasks from the store. +Unhandled tasks are tasks that are not currently in-flight/under processing (ie. tasks that have timed-out). +NOTE: The implementation must make sure that once a task is grabbed by a client, +tis timeout must be updated so that it is considered in-flight/under processing +and cannot be grabbed by another client until it is timed-out.

    +

    Parameters

    • count: number

      Desired number of tasks to grab.

      +

    Returns Promise<ManagedResumableTask[]>

    A list of tasks exclusive for the caller to handle; or empty array if there is no tasks, or if all tasks are already grabbed by others.

    +
  • Registers a new resumable task that is currently in-flight/under processing to the store. +If the task is timed out, a client will be able to grab it through the grab() method and resume the task.

    +

    Parameters

    • task: any

      Task specific data. This is deliberately of type any because this store should not have to be ware of its type.

      +
    • timeoutInSeconds: number

      Timeout in seconds from the current time.

      +

    Returns Promise<ManagedResumableTask>

    A ManagedResumableTask object that can be used to extend or delete the task.

    +

    Throws

    with code set to ResumableTaskAlreadyExists if the same task is already registered.

    +
\ No newline at end of file diff --git a/classes/Secp256k1.html b/classes/Secp256k1.html new file mode 100644 index 000000000..3da44f1ef --- /dev/null +++ b/classes/Secp256k1.html @@ -0,0 +1,27 @@ +Secp256k1 | DWN-SDK Documentation - v0.3.8

Class containing SECP256K1 related utility methods.

+

Constructors

Methods

  • Generates key pair in raw bytes, where the publicKey is compressed.

    +

    Returns Promise<{
        privateKey: Uint8Array;
        publicKey: Uint8Array;
    }>

  • Gets the compressed public key of the given private key.

    +

    Parameters

    • privateKey: Uint8Array

    Returns Promise<Uint8Array>

  • Creates a private key in raw bytes from the given SECP256K1 JWK.

    +

    Parameters

    Returns Uint8Array

  • Creates a compressed key in raw bytes from the given SECP256K1 JWK.

    +

    Parameters

    Returns Uint8Array

  • Signs the provided content using the provided JWK.

    +

    Parameters

    Returns Promise<Uint8Array>

  • Verifies a signature against the provided payload hash and public key.

    +

    Parameters

    • content: Uint8Array
    • signature: Uint8Array
    • publicJwk: PublicJwk

    Returns Promise<boolean>

    a boolean indicating whether the signature is valid.

    +
\ No newline at end of file diff --git a/classes/Secp256r1.html b/classes/Secp256r1.html new file mode 100644 index 000000000..2239c4a34 --- /dev/null +++ b/classes/Secp256r1.html @@ -0,0 +1,20 @@ +Secp256r1 | DWN-SDK Documentation - v0.3.8

Class containing SECP256R1 related utility methods.

+

Constructors

Methods

  • Creates a private key in raw bytes from the given SECP256R1 JWK.

    +

    Parameters

    Returns Uint8Array

  • Signs the provided content using the provided JWK. +Signature that is outputted is JWS format, not DER.

    +

    Parameters

    Returns Promise<Uint8Array>

  • Verifies a signature against the provided payload hash and public key.

    +

    Parameters

    • content: Uint8Array
    • signature: Uint8Array

      the signature to verify. Can be in either DER or compact format. If using Oracle Cloud KMS, keys will be DER formatted.

      +
    • publicJwk: PublicJwk

    Returns Promise<boolean>

    a boolean indicating whether the signature is valid.

    +
\ No newline at end of file diff --git a/classes/TestDataGenerator.html b/classes/TestDataGenerator.html new file mode 100644 index 000000000..2be7a5689 --- /dev/null +++ b/classes/TestDataGenerator.html @@ -0,0 +1,59 @@ +TestDataGenerator | DWN-SDK Documentation - v0.3.8

Utility class for generating data for testing.

+

Constructors

Methods

  • Generates a dummy authorization property for a DWN message that only conforms to schema validation.

    +

    Returns AuthorizationModel

  • Generates a dummy authorization property for a DWN message that only conforms to schema validation.

    +

    Returns GeneralJws

  • Parameters

    • Optional input: GenerateEventsGetInput

    Returns Promise<GenerateEventsGetOutput>

  • Parameters

    • input: GenerateEventsQueryInput

    Returns Promise<GenerateEventsQueryOutput>

  • Generates a EventsSubscribe message for testing.

    +

    Parameters

    • Optional input: GenerateEventsSubscribeInput

    Returns Promise<GenerateEventsSubscribeOutput>

  • Generates a valid RecordsWrite that modifies the given an existing write. +Any mutable property is not specified will be automatically mutated. +e.g. if published is not specified, it will be toggled from the state of the given existing write.

    +

    Parameters

    • input: GenerateFromRecordsWriteInput

    Returns Promise<GenerateFromRecordsWriteOut>

  • Parameters

    • input: GenerateMessagesGetInput

    Returns Promise<GenerateMessagesGetOutput>

  • Generates a encrypted RecordsWrite message for testing.

    +

    Parameters

    • input: {
          author: Persona;
          encryptSymmetricKeyWithProtocolContextDerivedKey: boolean;
          encryptSymmetricKeyWithProtocolPathDerivedKey: boolean;
          plaintextBytes: Uint8Array;
          protocolContextDerivedPublicJwk?: PublicJwk;
          protocolContextDerivingRootKeyId?: string;
          protocolDefinition: ProtocolDefinition;
          protocolParentContextId?: string;
          protocolPath: string;
          recipient?: string;
      }
      • author: Persona
      • encryptSymmetricKeyWithProtocolContextDerivedKey: boolean

        Set to true to attach the symmetric key encrypted by the protocol context derived public key

        +
      • encryptSymmetricKeyWithProtocolPathDerivedKey: boolean

        Set to true to attach the symmetric key encrypted by the protocol path derived public key

        +
      • plaintextBytes: Uint8Array
      • Optional protocolContextDerivedPublicJwk?: PublicJwk
      • Optional protocolContextDerivingRootKeyId?: string
      • protocolDefinition: ProtocolDefinition

        Protocol definition used to generate the RecordsWrite. + Must be the RECIPIENT's protocol definition if encryptSymmetricKeyWithProtocolPathDerivedKey is true, + because the recipient's public keys will be needed to encrypt the symmetric key.

        +
      • Optional protocolParentContextId?: string
      • protocolPath: string
      • Optional recipient?: string

    Returns Promise<{
        dataStream: Readable;
        encryptedDataBytes: Uint8Array;
        encryptionInput: EncryptionInput;
        message: RecordsWriteMessage;
        recordsWrite: RecordsWrite;
    }>

  • Generates a ProtocolsConfigure message for testing. +Optional parameters are generated if not given. +Implementation currently uses ProtocolsConfigure.create().

    +

    Parameters

    • Optional input: GenerateProtocolsConfigureInput

    Returns Promise<GenerateProtocolsConfigureOutput>

  • Generates a ProtocolsQuery message for testing.

    +

    Parameters

    • Optional input: GenerateProtocolsQueryInput

    Returns Promise<GenerateProtocolsQueryOutput>

  • Generates a RecordsDelete for testing.

    +

    Parameters

    • Optional input: GenerateRecordsDeleteInput

    Returns Promise<GenerateRecordsDeleteOutput>

  • Generates a RecordsQuery message for testing.

    +

    Parameters

    • Optional input: GenerateRecordsQueryInput

    Returns Promise<GenerateRecordsQueryOutput>

  • Generates a RecordsSubscribe message for testing.

    +

    Parameters

    • Optional input: GenerateRecordsSubscribeInput

    Returns Promise<GenerateRecordsSubscribeOutput>

  • Generates a RecordsWrite message for testing. +Implementation currently uses RecordsWrite.create().

    +

    Parameters

    • Optional input: GenerateRecordsWriteInput

    Returns Promise<GenerateRecordsWriteOutput>

  • Generates a random within a range (inclusive).

    +

    Parameters

    • min: number

      lowest potential value.

      +
    • max: number

      greatest potential value.

      +

    Returns number

  • Generates a random timestamp. Optionally allows you to set specific non-randomized values for the timestamp.

    +

    Parameters

    • Optional options: {
          day?: number;
          hour?: number;
          microsecond?: number;
          millisecond?: number;
          minute?: number;
          month?: number;
          second?: number;
          year?: number;
      }
      • Optional day?: number
      • Optional hour?: number
      • Optional microsecond?: number
      • Optional millisecond?: number
      • Optional minute?: number
      • Optional month?: number
      • Optional second?: number
      • Optional year?: number

    Returns string

    random UTC ISO-8601 timestamp

    +
\ No newline at end of file diff --git a/classes/Time.html b/classes/Time.html new file mode 100644 index 000000000..9d4d4b8fc --- /dev/null +++ b/classes/Time.html @@ -0,0 +1,24 @@ +Time | DWN-SDK Documentation - v0.3.8

Time related utilities.

+

Constructors

Methods

  • Creates a UTC ISO-8601 timestamp offset from now or given timestamp accepted by DWN.

    +

    Parameters

    • offset: {
          seconds: number;
      }

      Negative number means offset into the past.

      +
      • seconds: number
    • Optional timestamp: string

    Returns string

  • Creates a UTC ISO-8601 timestamp in microsecond precision accepted by DWN.

    +

    Parameters

    • options: {
          day?: number;
          hour?: number;
          microsecond?: number;
          millisecond?: number;
          minute?: number;
          month?: number;
          second?: number;
          year?: number;
      }

      Options for creating the timestamp.

      +
      • Optional day?: number
      • Optional hour?: number
      • Optional microsecond?: number
      • Optional millisecond?: number
      • Optional minute?: number
      • Optional month?: number
      • Optional second?: number
      • Optional year?: number

    Returns string

    string

    +
  • Returns an UTC ISO-8601 timestamp with microsecond precision accepted by DWN. +using @js-temporal/polyfill

    +

    Returns string

  • sleeps for the desired duration

    +

    Parameters

    • durationInMillisecond: number

      the desired amount of sleep time

      +

    Returns Promise<void>

    when the provided duration has passed

    +
  • Validates that the provided timestamp is a valid number

    +

    Parameters

    • timestamp: string

      the timestamp to validate

      +

    Returns void

    Throws

    DwnError if timestamp is not a valid number

    +
\ No newline at end of file diff --git a/enums/DateSort.html b/enums/DateSort.html new file mode 100644 index 000000000..49ff16bc5 --- /dev/null +++ b/enums/DateSort.html @@ -0,0 +1,5 @@ +DateSort | DWN-SDK Documentation - v0.3.8

Enumeration DateSort

Enumeration Members

CreatedAscending: "createdAscending"
CreatedDescending: "createdDescending"
PublishedAscending: "publishedAscending"
PublishedDescending: "publishedDescending"
\ No newline at end of file diff --git a/enums/DwnErrorCode.html b/enums/DwnErrorCode.html new file mode 100644 index 000000000..d8bf62f3f --- /dev/null +++ b/enums/DwnErrorCode.html @@ -0,0 +1,151 @@ +DwnErrorCode | DWN-SDK Documentation - v0.3.8

Enumeration DwnErrorCode

DWN SDK error codes.

+

Enumeration Members

AuthenticateDescriptorCidMismatch +AuthenticateJwsMissing +AuthenticationMoreThanOneSignatureNotSupported +AuthorizationAuthorNotOwner +AuthorizationNotGrantedToAuthor +ComputeCidCodecNotSupported +ComputeCidMultihashNotSupported +DidMethodNotSupported +DidNotString +DidNotValid +DidResolutionFailed +Ed25519InvalidJwk +EventEmitterStreamNotOpenError +EventsSubscribeEventStreamUnimplemented +GeneralJwsVerifierGetPublicKeyNotFound +GeneralJwsVerifierInvalidSignature +GrantAuthorizationGrantExpired +GrantAuthorizationGrantMissing +GrantAuthorizationGrantNotYetActive +GrantAuthorizationGrantRevoked +GrantAuthorizationInterfaceMismatch +GrantAuthorizationMethodMismatch +GrantAuthorizationNotGrantedForTenant +GrantAuthorizationNotGrantedToAuthor +HdKeyDerivationPathInvalid +IndexInvalidCursorSortProperty +IndexInvalidCursorValueType +IndexInvalidSortPropertyInMemory +IndexMissingIndexableProperty +JwsDecodePlainObjectPayloadInvalid +JwsVerifySignatureUnsupportedCrv +MessageGetInvalidCid +ParseCidCodecNotSupported +ParseCidMultihashNotSupported +PermissionsProtocolCreateGrantRecordsScopeMissingProtocol +PermissionsProtocolCreateRequestRecordsScopeMissingProtocol +PermissionsProtocolValidateRevocationProtocolTagMismatch +PermissionsProtocolValidateSchemaUnexpectedRecord +PermissionsProtocolValidateScopeContextIdProhibitedProperties +PermissionsProtocolValidateScopeMissingProtocolTag +PermissionsProtocolValidateScopeProtocolMismatch +PrivateKeySignerUnableToDeduceAlgorithm +PrivateKeySignerUnableToDeduceKeyId +PrivateKeySignerUnsupportedCurve +ProtocolAuthorizationActionNotAllowed +ProtocolAuthorizationActionRulesNotFound +ProtocolAuthorizationDuplicateRoleRecipient +ProtocolAuthorizationIncorrectContextId +ProtocolAuthorizationIncorrectDataFormat +ProtocolAuthorizationIncorrectProtocolPath +ProtocolAuthorizationInvalidSchema +ProtocolAuthorizationInvalidType +ProtocolAuthorizationMatchingRoleRecordNotFound +ProtocolAuthorizationMaxSizeInvalid +ProtocolAuthorizationMinSizeInvalid +ProtocolAuthorizationMissingContextId +ProtocolAuthorizationMissingRuleSet +ProtocolAuthorizationNotARole +ProtocolAuthorizationParentNotFoundConstructingRecordChain +ProtocolAuthorizationParentlessIncorrectProtocolPath +ProtocolAuthorizationProtocolNotFound +ProtocolAuthorizationQueryWithoutRole +ProtocolAuthorizationRoleMissingRecipient +ProtocolAuthorizationTagsInvalidSchema +ProtocolsConfigureDuplicateActorInRuleSet +ProtocolsConfigureDuplicateRoleInRuleSet +ProtocolsConfigureInvalidActionDeleteWithoutCreate +ProtocolsConfigureInvalidActionMissingOf +ProtocolsConfigureInvalidActionOfNotAllowed +ProtocolsConfigureInvalidActionUpdateWithoutCreate +ProtocolsConfigureInvalidRecipientOfAction +ProtocolsConfigureInvalidRuleSetRecordType +ProtocolsConfigureInvalidSize +ProtocolsConfigureInvalidTagSchema +ProtocolsConfigureQueryNotAllowed +ProtocolsConfigureRecordNestingDepthExceeded +ProtocolsConfigureRoleDoesNotExistAtGivenPath +ProtocolsConfigureUnauthorized +ProtocolsQueryUnauthorized +RecordsAuthorDelegatedGrantAndIdExistenceMismatch +RecordsAuthorDelegatedGrantCidMismatch +RecordsAuthorDelegatedGrantGrantedToAndOwnerSignatureMismatch +RecordsAuthorDelegatedGrantNotADelegatedGrant +RecordsDecryptNoMatchingKeyEncryptedFound +RecordsDeleteAuthorizationFailed +RecordsDerivePrivateKeyUnSupportedCurve +RecordsGrantAuthorizationConditionPublicationProhibited +RecordsGrantAuthorizationConditionPublicationRequired +RecordsGrantAuthorizationDeleteProtocolScopeMismatch +RecordsGrantAuthorizationQueryOrSubscribeProtocolScopeMismatch +RecordsGrantAuthorizationScopeContextIdMismatch +RecordsGrantAuthorizationScopeNotRecords +RecordsGrantAuthorizationScopeProtocolMismatch +RecordsGrantAuthorizationScopeProtocolPathMismatch +RecordsGrantAuthorizationScopeSchema +RecordsInvalidAncestorKeyDerivationSegment +RecordsOwnerDelegatedGrantAndIdExistenceMismatch +RecordsOwnerDelegatedGrantCidMismatch +RecordsOwnerDelegatedGrantGrantedToAndOwnerSignatureMismatch +RecordsOwnerDelegatedGrantNotADelegatedGrant +RecordsProtocolContextDerivationSchemeMissingContextId +RecordsProtocolPathDerivationSchemeMissingProtocol +RecordsQueryCreateFilterPublishedSortInvalid +RecordsQueryFilterMissingRequiredProperties +RecordsQueryParseFilterPublishedSortInvalid +RecordsReadAuthorizationFailed +RecordsReadReturnedMultiple +RecordsSchemasDerivationSchemeMissingSchema +RecordsSubscribeEventStreamUnimplemented +RecordsSubscribeFilterMissingRequiredProperties +RecordsWriteAttestationIntegrityDescriptorCidMismatch +RecordsWriteAttestationIntegrityInvalidPayloadProperty +RecordsWriteAttestationIntegrityMoreThanOneSignature +RecordsWriteAuthorizationFailed +RecordsWriteCreateDataAndDataCidMutuallyExclusive +RecordsWriteCreateDataCidAndDataSizeMutuallyInclusive +RecordsWriteCreateMissingSigner +RecordsWriteCreateProtocolAndProtocolPathMutuallyInclusive +RecordsWriteDataCidMismatch +RecordsWriteDataSizeMismatch +RecordsWriteGetEntryIdUndefinedAuthor +RecordsWriteGetInitialWriteNotFound +RecordsWriteImmutablePropertyChanged +RecordsWriteMissingDataInPrevious +RecordsWriteMissingDataStream +RecordsWriteMissingEncodedDataInPrevious +RecordsWriteMissingProtocol +RecordsWriteMissingSchema +RecordsWriteMissingSigner +RecordsWriteOwnerAndTenantMismatch +RecordsWriteSignAsOwnerDelegateUnknownAuthor +RecordsWriteSignAsOwnerUnknownAuthor +RecordsWriteValidateIntegrityAttestationMismatch +RecordsWriteValidateIntegrityContextIdMismatch +RecordsWriteValidateIntegrityContextIdNotInSignerSignaturePayload +RecordsWriteValidateIntegrityDateCreatedMismatch +RecordsWriteValidateIntegrityEncryptionCidMismatch +RecordsWriteValidateIntegrityRecordIdUnauthorized +SchemaValidatorAdditionalPropertyNotAllowed +SchemaValidatorFailure +SchemaValidatorSchemaNotFound +SchemaValidatorUnevaluatedPropertyNotAllowed +Secp256k1KeyNotValid +Secp256r1KeyNotValid +TimestampInvalid +UrlProtocolNotNormalizable +UrlProtocolNotNormalized +UrlSchemaNotNormalizable +UrlSchemaNotNormalized +

Enumeration Members

AuthenticateDescriptorCidMismatch: "AuthenticateDescriptorCidMismatch"
AuthenticateJwsMissing: "AuthenticateJwsMissing"
AuthenticationMoreThanOneSignatureNotSupported: "AuthenticationMoreThanOneSignatureNotSupported"
AuthorizationAuthorNotOwner: "AuthorizationAuthorNotOwner"
AuthorizationNotGrantedToAuthor: "AuthorizationNotGrantedToAuthor"
ComputeCidCodecNotSupported: "ComputeCidCodecNotSupported"
ComputeCidMultihashNotSupported: "ComputeCidMultihashNotSupported"
DidMethodNotSupported: "DidMethodNotSupported"
DidNotString: "DidNotString"
DidNotValid: "DidNotValid"
DidResolutionFailed: "DidResolutionFailed"
Ed25519InvalidJwk: "Ed25519InvalidJwk"
EventEmitterStreamNotOpenError: "EventEmitterStreamNotOpenError"
EventsSubscribeEventStreamUnimplemented: "EventsSubscribeEventStreamUnimplemented"
GeneralJwsVerifierGetPublicKeyNotFound: "GeneralJwsVerifierGetPublicKeyNotFound"
GeneralJwsVerifierInvalidSignature: "GeneralJwsVerifierInvalidSignature"
GrantAuthorizationGrantExpired: "GrantAuthorizationGrantExpired"
GrantAuthorizationGrantMissing: "GrantAuthorizationGrantMissing"
GrantAuthorizationGrantNotYetActive: "GrantAuthorizationGrantNotYetActive"
GrantAuthorizationGrantRevoked: "GrantAuthorizationGrantRevoked"
GrantAuthorizationInterfaceMismatch: "GrantAuthorizationInterfaceMismatch"
GrantAuthorizationMethodMismatch: "GrantAuthorizationMethodMismatch"
GrantAuthorizationNotGrantedForTenant: "GrantAuthorizationNotGrantedForTenant"
GrantAuthorizationNotGrantedToAuthor: "GrantAuthorizationNotGrantedToAuthor"
HdKeyDerivationPathInvalid: "HdKeyDerivationPathInvalid"
IndexInvalidCursorSortProperty: "IndexInvalidCursorSortProperty"
IndexInvalidCursorValueType: "IndexInvalidCursorValueType"
IndexInvalidSortPropertyInMemory: "IndexInvalidSortPropertyInMemory"
IndexMissingIndexableProperty: "IndexMissingIndexableProperty"
JwsDecodePlainObjectPayloadInvalid: "JwsDecodePlainObjectPayloadInvalid"
JwsVerifySignatureUnsupportedCrv: "JwsVerifySignatureUnsupportedCrv"
MessageGetInvalidCid: "MessageGetInvalidCid"
ParseCidCodecNotSupported: "ParseCidCodecNotSupported"
ParseCidMultihashNotSupported: "ParseCidMultihashNotSupported"
PermissionsProtocolCreateGrantRecordsScopeMissingProtocol: "PermissionsProtocolCreateGrantRecordsScopeMissingProtocol"
PermissionsProtocolCreateRequestRecordsScopeMissingProtocol: "PermissionsProtocolCreateRequestRecordsScopeMissingProtocol"
PermissionsProtocolValidateRevocationProtocolTagMismatch: "PermissionsProtocolValidateRevocationProtocolTagMismatch"
PermissionsProtocolValidateSchemaUnexpectedRecord: "PermissionsProtocolValidateSchemaUnexpectedRecord"
PermissionsProtocolValidateScopeContextIdProhibitedProperties: "PermissionsProtocolValidateScopeContextIdProhibitedProperties"
PermissionsProtocolValidateScopeMissingProtocolTag: "PermissionsProtocolValidateScopeMissingProtocolTag"
PermissionsProtocolValidateScopeProtocolMismatch: "PermissionsProtocolValidateScopeProtocolMismatch"
PrivateKeySignerUnableToDeduceAlgorithm: "PrivateKeySignerUnableToDeduceAlgorithm"
PrivateKeySignerUnableToDeduceKeyId: "PrivateKeySignerUnableToDeduceKeyId"
PrivateKeySignerUnsupportedCurve: "PrivateKeySignerUnsupportedCurve"
ProtocolAuthorizationActionNotAllowed: "ProtocolAuthorizationActionNotAllowed"
ProtocolAuthorizationActionRulesNotFound: "ProtocolAuthorizationActionRulesNotFound"
ProtocolAuthorizationDuplicateRoleRecipient: "ProtocolAuthorizationDuplicateRoleRecipient"
ProtocolAuthorizationIncorrectContextId: "ProtocolAuthorizationIncorrectContextId"
ProtocolAuthorizationIncorrectDataFormat: "ProtocolAuthorizationIncorrectDataFormat"
ProtocolAuthorizationIncorrectProtocolPath: "ProtocolAuthorizationIncorrectProtocolPath"
ProtocolAuthorizationInvalidSchema: "ProtocolAuthorizationInvalidSchema"
ProtocolAuthorizationInvalidType: "ProtocolAuthorizationInvalidType"
ProtocolAuthorizationMatchingRoleRecordNotFound: "ProtocolAuthorizationMatchingRoleRecordNotFound"
ProtocolAuthorizationMaxSizeInvalid: "ProtocolAuthorizationMaxSizeInvalid"
ProtocolAuthorizationMinSizeInvalid: "ProtocolAuthorizationMinSizeInvalid"
ProtocolAuthorizationMissingContextId: "ProtocolAuthorizationMissingContextId"
ProtocolAuthorizationMissingRuleSet: "ProtocolAuthorizationMissingRuleSet"
ProtocolAuthorizationNotARole: "ProtocolAuthorizationNotARole"
ProtocolAuthorizationParentNotFoundConstructingRecordChain: "ProtocolAuthorizationParentNotFoundConstructingRecordChain"
ProtocolAuthorizationParentlessIncorrectProtocolPath: "ProtocolAuthorizationParentlessIncorrectProtocolPath"
ProtocolAuthorizationProtocolNotFound: "ProtocolAuthorizationProtocolNotFound"
ProtocolAuthorizationQueryWithoutRole: "ProtocolAuthorizationQueryWithoutRole"
ProtocolAuthorizationRoleMissingRecipient: "ProtocolAuthorizationRoleMissingRecipient"
ProtocolAuthorizationTagsInvalidSchema: "ProtocolAuthorizationTagsInvalidSchema"
ProtocolsConfigureDuplicateActorInRuleSet: "ProtocolsConfigureDuplicateActorInRuleSet"
ProtocolsConfigureDuplicateRoleInRuleSet: "ProtocolsConfigureDuplicateRoleInRuleSet"
ProtocolsConfigureInvalidActionDeleteWithoutCreate: "ProtocolsConfigureInvalidActionDeleteWithoutCreate"
ProtocolsConfigureInvalidActionMissingOf: "ProtocolsConfigureInvalidActionMissingOf"
ProtocolsConfigureInvalidActionOfNotAllowed: "ProtocolsConfigureInvalidActionOfNotAllowed"
ProtocolsConfigureInvalidActionUpdateWithoutCreate: "ProtocolsConfigureInvalidActionUpdateWithoutCreate"
ProtocolsConfigureInvalidRecipientOfAction: "ProtocolsConfigureInvalidRecipientOfAction"
ProtocolsConfigureInvalidRuleSetRecordType: "ProtocolsConfigureInvalidRuleSetRecordType"
ProtocolsConfigureInvalidSize: "ProtocolsConfigureInvalidSize"
ProtocolsConfigureInvalidTagSchema: "ProtocolsConfigureInvalidTagSchema"
ProtocolsConfigureQueryNotAllowed: "ProtocolsConfigureQueryNotAllowed"
ProtocolsConfigureRecordNestingDepthExceeded: "ProtocolsConfigureRecordNestingDepthExceeded"
ProtocolsConfigureRoleDoesNotExistAtGivenPath: "ProtocolsConfigureRoleDoesNotExistAtGivenPath"
ProtocolsConfigureUnauthorized: "ProtocolsConfigureUnauthorized"
ProtocolsQueryUnauthorized: "ProtocolsQueryUnauthorized"
RecordsAuthorDelegatedGrantAndIdExistenceMismatch: "RecordsAuthorDelegatedGrantAndIdExistenceMismatch"
RecordsAuthorDelegatedGrantCidMismatch: "RecordsAuthorDelegatedGrantCidMismatch"
RecordsAuthorDelegatedGrantGrantedToAndOwnerSignatureMismatch: "RecordsAuthorDelegatedGrantGrantedToAndOwnerSignatureMismatch"
RecordsAuthorDelegatedGrantNotADelegatedGrant: "RecordsAuthorDelegatedGrantNotADelegatedGrant"
RecordsDecryptNoMatchingKeyEncryptedFound: "RecordsDecryptNoMatchingKeyEncryptedFound"
RecordsDeleteAuthorizationFailed: "RecordsDeleteAuthorizationFailed"
RecordsDerivePrivateKeyUnSupportedCurve: "RecordsDerivePrivateKeyUnSupportedCurve"
RecordsGrantAuthorizationConditionPublicationProhibited: "RecordsGrantAuthorizationConditionPublicationProhibited"
RecordsGrantAuthorizationConditionPublicationRequired: "RecordsGrantAuthorizationConditionPublicationRequired"
RecordsGrantAuthorizationDeleteProtocolScopeMismatch: "RecordsGrantAuthorizationDeleteProtocolScopeMismatch"
RecordsGrantAuthorizationQueryOrSubscribeProtocolScopeMismatch: "RecordsGrantAuthorizationQueryOrSubscribeProtocolScopeMismatch"
RecordsGrantAuthorizationScopeContextIdMismatch: "RecordsGrantAuthorizationScopeContextIdMismatch"
RecordsGrantAuthorizationScopeNotRecords: "RecordsGrantAuthorizationScopeNotRecords"
RecordsGrantAuthorizationScopeProtocolMismatch: "RecordsGrantAuthorizationScopeProtocolMismatch"
RecordsGrantAuthorizationScopeProtocolPathMismatch: "RecordsGrantAuthorizationScopeProtocolPathMismatch"
RecordsGrantAuthorizationScopeSchema: "RecordsGrantAuthorizationScopeSchema"
RecordsInvalidAncestorKeyDerivationSegment: "RecordsInvalidAncestorKeyDerivationSegment"
RecordsOwnerDelegatedGrantAndIdExistenceMismatch: "RecordsOwnerDelegatedGrantAndIdExistenceMismatch"
RecordsOwnerDelegatedGrantCidMismatch: "RecordsOwnerDelegatedGrantCidMismatch"
RecordsOwnerDelegatedGrantGrantedToAndOwnerSignatureMismatch: "RecordsOwnerDelegatedGrantGrantedToAndOwnerSignatureMismatch"
RecordsOwnerDelegatedGrantNotADelegatedGrant: "RecordsOwnerDelegatedGrantNotADelegatedGrant"
RecordsProtocolContextDerivationSchemeMissingContextId: "RecordsProtocolContextDerivationSchemeMissingContextId"
RecordsProtocolPathDerivationSchemeMissingProtocol: "RecordsProtocolPathDerivationSchemeMissingProtocol"
RecordsQueryCreateFilterPublishedSortInvalid: "RecordsQueryCreateFilterPublishedSortInvalid"
RecordsQueryFilterMissingRequiredProperties: "RecordsQueryFilterMissingRequiredProperties"
RecordsQueryParseFilterPublishedSortInvalid: "RecordsQueryParseFilterPublishedSortInvalid"
RecordsReadAuthorizationFailed: "RecordsReadAuthorizationFailed"
RecordsReadReturnedMultiple: "RecordsReadReturnedMultiple"
RecordsSchemasDerivationSchemeMissingSchema: "RecordsSchemasDerivationSchemeMissingSchema"
RecordsSubscribeEventStreamUnimplemented: "RecordsSubscribeEventStreamUnimplemented"
RecordsSubscribeFilterMissingRequiredProperties: "RecordsSubscribeFilterMissingRequiredProperties"
RecordsWriteAttestationIntegrityDescriptorCidMismatch: "RecordsWriteAttestationIntegrityDescriptorCidMismatch"
RecordsWriteAttestationIntegrityInvalidPayloadProperty: "RecordsWriteAttestationIntegrityInvalidPayloadProperty"
RecordsWriteAttestationIntegrityMoreThanOneSignature: "RecordsWriteAttestationIntegrityMoreThanOneSignature"
RecordsWriteAuthorizationFailed: "RecordsWriteAuthorizationFailed"
RecordsWriteCreateDataAndDataCidMutuallyExclusive: "RecordsWriteCreateDataAndDataCidMutuallyExclusive"
RecordsWriteCreateDataCidAndDataSizeMutuallyInclusive: "RecordsWriteCreateDataCidAndDataSizeMutuallyInclusive"
RecordsWriteCreateMissingSigner: "RecordsWriteCreateMissingSigner"
RecordsWriteCreateProtocolAndProtocolPathMutuallyInclusive: "RecordsWriteCreateProtocolAndProtocolPathMutuallyInclusive"
RecordsWriteDataCidMismatch: "RecordsWriteDataCidMismatch"
RecordsWriteDataSizeMismatch: "RecordsWriteDataSizeMismatch"
RecordsWriteGetEntryIdUndefinedAuthor: "RecordsWriteGetEntryIdUndefinedAuthor"
RecordsWriteGetInitialWriteNotFound: "RecordsWriteGetInitialWriteNotFound"
RecordsWriteImmutablePropertyChanged: "RecordsWriteImmutablePropertyChanged"
RecordsWriteMissingDataInPrevious: "RecordsWriteMissingDataInPrevious"
RecordsWriteMissingDataStream: "RecordsWriteMissingDataStream"
RecordsWriteMissingEncodedDataInPrevious: "RecordsWriteMissingEncodedDataInPrevious"
RecordsWriteMissingProtocol: "RecordsWriteMissingProtocol"
RecordsWriteMissingSchema: "RecordsWriteMissingSchema"
RecordsWriteMissingSigner: "RecordsWriteMissingSigner"
RecordsWriteOwnerAndTenantMismatch: "RecordsWriteOwnerAndTenantMismatch"
RecordsWriteSignAsOwnerDelegateUnknownAuthor: "RecordsWriteSignAsOwnerDelegateUnknownAuthor"
RecordsWriteSignAsOwnerUnknownAuthor: "RecordsWriteSignAsOwnerUnknownAuthor"
RecordsWriteValidateIntegrityAttestationMismatch: "RecordsWriteValidateIntegrityAttestationMismatch"
RecordsWriteValidateIntegrityContextIdMismatch: "RecordsWriteValidateIntegrityContextIdMismatch"
RecordsWriteValidateIntegrityContextIdNotInSignerSignaturePayload: "RecordsWriteValidateIntegrityContextIdNotInSignerSignaturePayload"
RecordsWriteValidateIntegrityDateCreatedMismatch: "RecordsWriteValidateIntegrityDateCreatedMismatch"
RecordsWriteValidateIntegrityEncryptionCidMismatch: "RecordsWriteValidateIntegrityEncryptionCidMismatch"
RecordsWriteValidateIntegrityRecordIdUnauthorized: "RecordsWriteValidateIntegrityRecordIdUnauthorized"
SchemaValidatorAdditionalPropertyNotAllowed: "SchemaValidatorAdditionalPropertyNotAllowed"
SchemaValidatorFailure: "SchemaValidatorFailure"
SchemaValidatorSchemaNotFound: "SchemaValidatorSchemaNotFound"
SchemaValidatorUnevaluatedPropertyNotAllowed: "SchemaValidatorUnevaluatedPropertyNotAllowed"
Secp256k1KeyNotValid: "Secp256k1KeyNotValid"
Secp256r1KeyNotValid: "Secp256r1KeyNotValid"
TimestampInvalid: "TimestampInvalid"
UrlProtocolNotNormalizable: "UrlProtocolNotNormalizable"
UrlProtocolNotNormalized: "UrlProtocolNotNormalized"
UrlSchemaNotNormalizable: "UrlSchemaNotNormalizable"
UrlSchemaNotNormalized: "UrlSchemaNotNormalized"
\ No newline at end of file diff --git a/enums/DwnInterfaceName.html b/enums/DwnInterfaceName.html new file mode 100644 index 000000000..6e558239e --- /dev/null +++ b/enums/DwnInterfaceName.html @@ -0,0 +1,5 @@ +DwnInterfaceName | DWN-SDK Documentation - v0.3.8

Enumeration DwnInterfaceName

Enumeration Members

Enumeration Members

Events: "Events"
Messages: "Messages"
Protocols: "Protocols"
Records: "Records"
\ No newline at end of file diff --git a/enums/DwnMethodName.html b/enums/DwnMethodName.html new file mode 100644 index 000000000..5920a19fd --- /dev/null +++ b/enums/DwnMethodName.html @@ -0,0 +1,12 @@ +DwnMethodName | DWN-SDK Documentation - v0.3.8

Enumeration DwnMethodName

Enumeration Members

Configure: "Configure"
Create: "Create"
Delete: "Delete"
Get: "Get"
Grant: "Grant"
Query: "Query"
Read: "Read"
Request: "Request"
Revoke: "Revoke"
Subscribe: "Subscribe"
Write: "Write"
\ No newline at end of file diff --git a/enums/EncryptionAlgorithm.html b/enums/EncryptionAlgorithm.html new file mode 100644 index 000000000..0027656e1 --- /dev/null +++ b/enums/EncryptionAlgorithm.html @@ -0,0 +1,3 @@ +EncryptionAlgorithm | DWN-SDK Documentation - v0.3.8

Enumeration EncryptionAlgorithm

Enumeration Members

Enumeration Members

Aes256Ctr: "A256CTR"
EciesSecp256k1: "ECIES-ES256K"
\ No newline at end of file diff --git a/enums/KeyDerivationScheme.html b/enums/KeyDerivationScheme.html new file mode 100644 index 000000000..056775f5c --- /dev/null +++ b/enums/KeyDerivationScheme.html @@ -0,0 +1,7 @@ +KeyDerivationScheme | DWN-SDK Documentation - v0.3.8

Enumeration KeyDerivationScheme

Enumeration Members

DataFormats: "dataFormats"

Key derivation using the dataFormat value for Flat-space records.

+
ProtocolContext: "protocolContext"
ProtocolPath: "protocolPath"
Schemas: "schemas"

Key derivation using the schema value for Flat-space records.

+
\ No newline at end of file diff --git a/enums/SortDirection.html b/enums/SortDirection.html new file mode 100644 index 000000000..8ddb97e33 --- /dev/null +++ b/enums/SortDirection.html @@ -0,0 +1,3 @@ +SortDirection | DWN-SDK Documentation - v0.3.8

Enumeration SortDirection

Enumeration Members

Enumeration Members

Ascending: 1
Descending: -1
\ No newline at end of file diff --git a/functions/authenticate.html b/functions/authenticate.html new file mode 100644 index 000000000..3595510ae --- /dev/null +++ b/functions/authenticate.html @@ -0,0 +1,3 @@ +authenticate | DWN-SDK Documentation - v0.3.8
  • Verifies all the signature(s) within the authorization property.

    +

    Parameters

    • authorizationModel: undefined | AuthorizationModel
    • didResolver: DidResolver

    Returns Promise<void>

    Throws

    if fails authentication

    +
\ No newline at end of file diff --git a/functions/executeUnlessAborted.html b/functions/executeUnlessAborted.html new file mode 100644 index 000000000..6ef52ae3e --- /dev/null +++ b/functions/executeUnlessAborted.html @@ -0,0 +1,2 @@ +executeUnlessAborted | DWN-SDK Documentation - v0.3.8

Function executeUnlessAborted

  • Wraps the given Promise such that it will reject if the AbortSignal is triggered.

    +

    Type Parameters

    • T

    Parameters

    • promise: Promise<T>
    • signal: undefined | AbortSignal

    Returns Promise<T>

\ No newline at end of file diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 000000000..5154124a9 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1 @@ +DWN-SDK Documentation - v0.3.8
\ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000..2ec6a9a9f --- /dev/null +++ b/index.html @@ -0,0 +1,131 @@ +DWN-SDK Documentation - v0.3.8

DWN-SDK Documentation - v0.3.8

Index

Enumerations

Classes

Interfaces

Type Aliases

Functions

\ No newline at end of file diff --git a/interfaces/DataStore.html b/interfaces/DataStore.html new file mode 100644 index 000000000..4c7401ddc --- /dev/null +++ b/interfaces/DataStore.html @@ -0,0 +1,21 @@ +DataStore | DWN-SDK Documentation - v0.3.8

The interface that defines how to store and fetch data associated with a message.

+
interface DataStore {
    clear(): Promise<void>;
    close(): Promise<void>;
    delete(tenant, recordId, dataCid): Promise<void>;
    get(tenant, recordId, dataCid): Promise<undefined | DataStoreGetResult>;
    open(): Promise<void>;
    put(tenant, recordId, dataCid, dataStream): Promise<DataStorePutResult>;
}

Implemented by

Methods

Methods

  • Clears the entire store. Mainly used for testing to cleaning up in test environments.

    +

    Returns Promise<void>

  • Deletes the specified data. No-op if the data does not exist.

    +

    Parameters

    • tenant: string
    • recordId: string

      The logical ID of the record that references the data.

      +
    • dataCid: string

      The IPFS CID of the data.

      +

    Returns Promise<void>

  • Fetches the specified data.

    +

    Parameters

    • tenant: string
    • recordId: string

      The logical ID of the record that references the data.

      +
    • dataCid: string

      The IPFS CID of the data.

      +

    Returns Promise<undefined | DataStoreGetResult>

    the data size and data stream if found, otherwise undefined.

    +
  • Stores the given data.

    +

    Parameters

    • tenant: string
    • recordId: string

      The logical ID of the record that references the data.

      +
    • dataCid: string

      The IPFS CID of the data.

      +
    • dataStream: Readable

    Returns Promise<DataStorePutResult>

\ No newline at end of file diff --git a/interfaces/EventLog.html b/interfaces/EventLog.html new file mode 100644 index 000000000..37faf3a2e --- /dev/null +++ b/interfaces/EventLog.html @@ -0,0 +1,25 @@ +EventLog | DWN-SDK Documentation - v0.3.8
interface EventLog {
    append(tenant, messageCid, indexes): Promise<void>;
    clear(): Promise<void>;
    close(): Promise<void>;
    deleteEventsByCid(tenant, messageCids): Promise<void>;
    getEvents(tenant, cursor?): Promise<{
        cursor?: PaginationCursor;
        events: string[];
    }>;
    open(): Promise<void>;
    queryEvents(tenant, filters, cursor?): Promise<{
        cursor?: PaginationCursor;
        events: string[];
    }>;
}

Implemented by

Methods

  • adds an event to a tenant's event log

    +

    Parameters

    • tenant: string

      the tenant's DID

      +
    • messageCid: string

      the CID of the message

      +
    • indexes: KeyValues

      (key-value pairs) to be included as part of indexing this event.

      +

    Returns Promise<void>

  • Clears the entire store. Mainly used for cleaning up in test environment.

    +

    Returns Promise<void>

  • closes the connection to the underlying store

    +

    Returns Promise<void>

  • deletes any events that have any of the messageCids provided

    +

    Parameters

    • tenant: string
    • messageCids: string[]

    Returns Promise<void>

    the number of events deleted

    +
  • Retrieves all of a tenant's events that occurred after the cursor provided. +If no cursor is provided, all events for a given tenant will be returned.

    +

    The cursor is a messageCid.

    +

    Returns an array of messageCids that represent the events.

    +

    Parameters

    Returns Promise<{
        cursor?: PaginationCursor;
        events: string[];
    }>

  • opens a connection to the underlying store

    +

    Returns Promise<void>

  • retrieves a filtered set of events that occurred after a the cursor provided, accepts multiple filters.

    +

    If no cursor is provided, all events for a given tenant and filter combo will be returned. +The cursor is a messageCid.

    +

    Returns an array of messageCids that represent the events.

    +

    Parameters

    Returns Promise<{
        cursor?: PaginationCursor;
        events: string[];
    }>

\ No newline at end of file diff --git a/interfaces/EventStream.html b/interfaces/EventStream.html new file mode 100644 index 000000000..7f8c42b11 --- /dev/null +++ b/interfaces/EventStream.html @@ -0,0 +1,6 @@ +EventStream | DWN-SDK Documentation - v0.3.8

The EventStream interface implements a pub/sub system based on Message filters.

+
interface EventStream {
    close(): Promise<void>;
    emit(tenant, event, indexes): void;
    open(): Promise<void>;
    subscribe(tenant, id, listener): Promise<EventSubscription>;
}

Implemented by

Methods

Methods

\ No newline at end of file diff --git a/interfaces/EventSubscription.html b/interfaces/EventSubscription.html new file mode 100644 index 000000000..51d84056c --- /dev/null +++ b/interfaces/EventSubscription.html @@ -0,0 +1,3 @@ +EventSubscription | DWN-SDK Documentation - v0.3.8

Interface EventSubscription

interface EventSubscription {
    close: (() => Promise<void>);
    id: string;
}

Properties

Properties

close: (() => Promise<void>)

Type declaration

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

id: string
\ No newline at end of file diff --git a/interfaces/MessageStore.html b/interfaces/MessageStore.html new file mode 100644 index 000000000..cdc9e04d0 --- /dev/null +++ b/interfaces/MessageStore.html @@ -0,0 +1,18 @@ +MessageStore | DWN-SDK Documentation - v0.3.8

Interface MessageStore

interface MessageStore {
    clear(): Promise<void>;
    close(): Promise<void>;
    delete(tenant, cid, options?): Promise<void>;
    get(tenant, cid, options?): Promise<undefined | GenericMessage>;
    open(): Promise<void>;
    put(tenant, message, indexes, options?): Promise<void>;
    query(tenant, filters, messageSort?, pagination?, options?): Promise<{
        cursor?: PaginationCursor;
        messages: GenericMessage[];
    }>;
}

Implemented by

Methods

Methods

  • Clears the entire store. Mainly used for cleaning up in test environment.

    +

    Returns Promise<void>

  • adds a message to the underlying store. Uses the message's cid as the key

    +

    Parameters

    Returns Promise<void>

\ No newline at end of file diff --git a/interfaces/MessageStoreOptions.html b/interfaces/MessageStoreOptions.html new file mode 100644 index 000000000..f21dbd89c --- /dev/null +++ b/interfaces/MessageStoreOptions.html @@ -0,0 +1,2 @@ +MessageStoreOptions | DWN-SDK Documentation - v0.3.8

Interface MessageStoreOptions

interface MessageStoreOptions {
    signal?: AbortSignal;
}

Properties

Properties

signal?: AbortSignal
\ No newline at end of file diff --git a/interfaces/MessageSubscription.html b/interfaces/MessageSubscription.html new file mode 100644 index 000000000..994d8c82d --- /dev/null +++ b/interfaces/MessageSubscription.html @@ -0,0 +1,3 @@ +MessageSubscription | DWN-SDK Documentation - v0.3.8

Interface MessageSubscription

interface MessageSubscription {
    close: (() => Promise<void>);
    id: string;
}

Properties

Properties

close: (() => Promise<void>)

Type declaration

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

id: string
\ No newline at end of file diff --git a/interfaces/ResumableTaskStore.html b/interfaces/ResumableTaskStore.html new file mode 100644 index 000000000..212a63c70 --- /dev/null +++ b/interfaces/ResumableTaskStore.html @@ -0,0 +1,57 @@ +ResumableTaskStore | DWN-SDK Documentation - v0.3.8

Interface ResumableTaskStore

Interface for interacting with the resumable task store.

+

Implementer's Note: +The store implementation used in a horizontally scalable deployment, such as in a Kubernetes cluster, +must account for concurrent access by multiple ResumableTaskStore instances. +It would be undesirable to have many kubernetes pods all trying to handle the same resumable task. +A minimal viable implementation can use a per tenant exclusive lock on the store when grab() and method is called. +This would prevent issues that occur from concurrent modification to the same task to the store, +but negatively impacts the throughput performance of the DWN. +Requirements for a more performant implementation that allows distributed processing of resumable tasks across multiple clients:

+
    +
  1. The implementation probably requires both: + a. a persistent store for storing the data of each resumable task; and + b. an message streaming queue/service for distributing the each task exclusively to one of multiple handling clients.
  2. +
  3. The grab() and/or open() implementation will need to copy the timed-out tasks from persistent store into the message queue/service +for distributed processing by multiple clients when there is no resumable tasks to grab in the message queue. +During the move, the persistent store should be locked to prevent multiple copies of the same tasks from being copied.
  4. +
  5. Both Google's pub-sub and Amazon's SQS require an Ack ID / Receipt Handle to acknowledge the message, +The value of Ack ID / Receipt Handle is not known until the message is received, +therefore the implementer will likely need to have an in-memory mapping of task ID -> Ack ID / Receipt Handle +so that delete() can be called with task ID.
  6. +
+
interface ResumableTaskStore {
    clear(): Promise<void>;
    close(): Promise<void>;
    delete(taskId): Promise<void>;
    extend(taskId, timeoutInSeconds): Promise<void>;
    grab(count): Promise<ManagedResumableTask[]>;
    open(): Promise<void>;
    read(taskId): Promise<undefined | ManagedResumableTask>;
    register(task, timeoutInSeconds): Promise<ManagedResumableTask>;
}

Implemented by

Methods

  • Deletes the task associated with the task ID provided. +No-op if the task is not found, as this implies that the task has already been completed. +Called when the task has been successfully completed.

    +

    Parameters

    • taskId: string

    Returns Promise<void>

  • Extends the timeout of the task associated with the task ID provided. +No-op if the task is not found, as this implies that the task has already been completed. +This allows the client that is executing the task to continue working on it before the task is considered timed out.

    +

    Parameters

    • taskId: string

      ID of the task to extend the timeout for.

      +
    • timeoutInSeconds: number

      Timeout in seconds from the current time.

      +

    Returns Promise<void>

  • Grabs a number of unhandled tasks from the store. +Unhandled tasks are tasks that are not currently in-flight/under processing (ie. tasks that have timed-out). +NOTE: The implementation must make sure that once a task is grabbed by a client, +tis timeout must be updated so that it is considered in-flight/under processing +and cannot be grabbed by another client until it is timed-out.

    +

    Parameters

    • count: number

      Desired number of tasks to grab.

      +

    Returns Promise<ManagedResumableTask[]>

    A list of tasks exclusive for the caller to handle; or empty array if there is no tasks, or if all tasks are already grabbed by others.

    +
  • Reads the task associated with the task ID provided regardless of whether it is in-flight/under processing or not. +This is mainly introduced for testing purposes: ie. to check the status of a task for easy test verification.

    +

    Parameters

    • taskId: string

      ID of the task to read.

      +

    Returns Promise<undefined | ManagedResumableTask>

  • Registers a new resumable task that is currently in-flight/under processing to the store. +If the task is timed out, a client will be able to grab it through the grab() method and resume the task.

    +

    Parameters

    • task: any

      Task specific data. This is deliberately of type any because this store should not have to be ware of its type.

      +
    • timeoutInSeconds: number

      Timeout in seconds from the current time.

      +

    Returns Promise<ManagedResumableTask>

    A ManagedResumableTask object that can be used to extend or delete the task.

    +

    Throws

    with code set to ResumableTaskAlreadyExists if the same task is already registered.

    +
\ No newline at end of file diff --git a/interfaces/Signer.html b/interfaces/Signer.html new file mode 100644 index 000000000..b57fc3ed1 --- /dev/null +++ b/interfaces/Signer.html @@ -0,0 +1,16 @@ +Signer | DWN-SDK Documentation - v0.3.8

A signer that is capable of generating a digital signature over any given bytes.

+
interface Signer {
    algorithm: string;
    keyId: string;
    sign(content): Promise<Uint8Array>;
}

Implemented by

Properties

Methods

Properties

algorithm: string

The name of the signature algorithm used by this signer. +This value will be used as the "alg" parameter in JWS produced. +This parameter is not used by the DWN but is unfortunately a required header property for a JWS as per: +https://datatracker.ietf.org/doc/html/rfc7515#section-4.1.1 +Valid signature algorithm values can be found at https://www.iana.org/assignments/jose/jose.xhtml

+
keyId: string

The ID of the key used by this signer. +This needs to be a fully-qualified ID (ie. prefixed with DID) so that author can be parsed out for processing such as recordId computation. +Example: did:example:alice#key1 +This value will be used as the "kid" parameter in JWS produced. +While this property is not a required property per JWS specification, it is required for DWN authentication.

+

Methods

  • Signs the given content and returns the signature as bytes.

    +

    Parameters

    • content: Uint8Array

    Returns Promise<Uint8Array>

\ No newline at end of file diff --git a/interfaces/TenantGate.html b/interfaces/TenantGate.html new file mode 100644 index 000000000..79944f41e --- /dev/null +++ b/interfaces/TenantGate.html @@ -0,0 +1,4 @@ +TenantGate | DWN-SDK Documentation - v0.3.8

An interface that gates tenant access to the DWN.

+
interface TenantGate {
    isActiveTenant(did): Promise<ActiveTenantCheckResult>;
}

Implemented by

Methods

\ No newline at end of file diff --git a/types/ActiveTenantCheckResult.html b/types/ActiveTenantCheckResult.html new file mode 100644 index 000000000..7937b3e0f --- /dev/null +++ b/types/ActiveTenantCheckResult.html @@ -0,0 +1,4 @@ +ActiveTenantCheckResult | DWN-SDK Documentation - v0.3.8

Type alias ActiveTenantCheckResult

ActiveTenantCheckResult: {
    detail?: string;
    isActiveTenant: boolean;
}

The result of the isActiveTenant() call.

+

Type declaration

  • Optional detail?: string

    An optional detail message if the given DID is not an active tenant of the DWN.

    +
  • isActiveTenant: boolean

    true if the given DID is an active tenant of the DWN; false otherwise.

    +
\ No newline at end of file diff --git a/types/CreateFromOptions.html b/types/CreateFromOptions.html new file mode 100644 index 000000000..1b821694f --- /dev/null +++ b/types/CreateFromOptions.html @@ -0,0 +1,4 @@ +CreateFromOptions | DWN-SDK Documentation - v0.3.8

Type alias CreateFromOptions

CreateFromOptions: {
    attestationSigners?: Signer[];
    data?: Uint8Array;
    dataFormat?: string;
    datePublished?: string;
    delegatedGrant?: DataEncodedRecordsWriteMessage;
    encryptionInput?: EncryptionInput;
    messageTimestamp?: string;
    protocolRole?: string;
    published?: boolean;
    recordsWriteMessage: RecordsWriteMessage;
    signer?: Signer;
    tags?: RecordsWriteTags;
}

Type declaration

  • Optional attestationSigners?: Signer[]
  • Optional data?: Uint8Array
  • Optional dataFormat?: string

    The data format of the new data. If not given, the data format from the existing message will be used.

    +
  • Optional datePublished?: string
  • Optional delegatedGrant?: DataEncodedRecordsWriteMessage

    The delegated grant to sign on behalf of the logical author, which is the grantor (grantedBy) of the delegated grant.

    +
  • Optional encryptionInput?: EncryptionInput
  • Optional messageTimestamp?: string
  • Optional protocolRole?: string
  • Optional published?: boolean
  • recordsWriteMessage: RecordsWriteMessage
  • Optional signer?: Signer

    The signer of the message, which is commonly the author, but can also be a delegate.

    +
  • Optional tags?: RecordsWriteTags
\ No newline at end of file diff --git a/types/DataStoreGetResult.html b/types/DataStoreGetResult.html new file mode 100644 index 000000000..d2ac44b02 --- /dev/null +++ b/types/DataStoreGetResult.html @@ -0,0 +1,3 @@ +DataStoreGetResult | DWN-SDK Documentation - v0.3.8

Type alias DataStoreGetResult

DataStoreGetResult: {
    dataSize: number;
    dataStream: Readable;
}

Result of a data store get() method call if the data exists.

+

Type declaration

  • dataSize: number

    The number of bytes of the data stored.

    +
  • dataStream: Readable
\ No newline at end of file diff --git a/types/DataStorePutResult.html b/types/DataStorePutResult.html new file mode 100644 index 000000000..cf4c35d24 --- /dev/null +++ b/types/DataStorePutResult.html @@ -0,0 +1,3 @@ +DataStorePutResult | DWN-SDK Documentation - v0.3.8

Type alias DataStorePutResult

DataStorePutResult: {
    dataSize: number;
}

Result of a data store put() method call.

+

Type declaration

  • dataSize: number

    The number of bytes of the data stored.

    +
\ No newline at end of file diff --git a/types/DerivedPrivateJwk.html b/types/DerivedPrivateJwk.html new file mode 100644 index 000000000..ad1a02b38 --- /dev/null +++ b/types/DerivedPrivateJwk.html @@ -0,0 +1 @@ +DerivedPrivateJwk | DWN-SDK Documentation - v0.3.8

Type alias DerivedPrivateJwk

DerivedPrivateJwk: {
    derivationPath?: string[];
    derivationScheme: KeyDerivationScheme;
    derivedPrivateKey: PrivateJwk;
    rootKeyId: string;
}

Type declaration

\ No newline at end of file diff --git a/types/DwnConfig.html b/types/DwnConfig.html new file mode 100644 index 000000000..65b72d763 --- /dev/null +++ b/types/DwnConfig.html @@ -0,0 +1,2 @@ +DwnConfig | DWN-SDK Documentation - v0.3.8

Type alias DwnConfig

DwnConfig: {
    dataStore: DataStore;
    didResolver?: DidResolver;
    eventLog: EventLog;
    eventStream?: EventStream;
    messageStore: MessageStore;
    resumableTaskStore: ResumableTaskStore;
    tenantGate?: TenantGate;
}

DWN configuration.

+

Type declaration

\ No newline at end of file diff --git a/types/EncryptionInput.html b/types/EncryptionInput.html new file mode 100644 index 000000000..e946481d6 --- /dev/null +++ b/types/EncryptionInput.html @@ -0,0 +1,7 @@ +EncryptionInput | DWN-SDK Documentation - v0.3.8

Type alias EncryptionInput

EncryptionInput: {
    algorithm?: EncryptionAlgorithm;
    initializationVector: Uint8Array;
    key: Uint8Array;
    keyEncryptionInputs: KeyEncryptionInput[];
}

Input that describes how data is encrypted as spec-ed in TP18 (https://github.com/TBD54566975/technical-proposals/pull/6).

+

Type declaration

  • Optional algorithm?: EncryptionAlgorithm

    Algorithm used for encrypting the Data. Uses {EncryptionAlgorithm.Aes256Ctr} if not given.

    +
  • initializationVector: Uint8Array

    Initialization vector used for encrypting the data.

    +
  • key: Uint8Array

    Symmetric key used to encrypt the data.

    +
  • keyEncryptionInputs: KeyEncryptionInput[]

    Array of input that specifies how the symmetric key is encrypted. +Each entry in the array will result in a unique ciphertext of the symmetric key.

    +
\ No newline at end of file diff --git a/types/EncryptionProperty.html b/types/EncryptionProperty.html new file mode 100644 index 000000000..ea4b303c4 --- /dev/null +++ b/types/EncryptionProperty.html @@ -0,0 +1 @@ +EncryptionProperty | DWN-SDK Documentation - v0.3.8

Type alias EncryptionProperty

EncryptionProperty: {
    algorithm: EncryptionAlgorithm;
    initializationVector: string;
    keyEncryption: EncryptedKey[];
}

Type declaration

\ No newline at end of file diff --git a/types/EqualFilter.html b/types/EqualFilter.html new file mode 100644 index 000000000..bbe5e2e04 --- /dev/null +++ b/types/EqualFilter.html @@ -0,0 +1 @@ +EqualFilter | DWN-SDK Documentation - v0.3.8

Type alias EqualFilter

EqualFilter: string | number | boolean
\ No newline at end of file diff --git a/types/EventListener.html b/types/EventListener.html new file mode 100644 index 000000000..dd98ea698 --- /dev/null +++ b/types/EventListener.html @@ -0,0 +1 @@ +EventListener | DWN-SDK Documentation - v0.3.8

Type alias EventListener

EventListener: ((tenant, event, indexes) => void)

Type declaration

    • (tenant, event, indexes): void
    • Parameters

      Returns void

\ No newline at end of file diff --git a/types/EventSubscriptionHandler.html b/types/EventSubscriptionHandler.html new file mode 100644 index 000000000..bf8cda2b3 --- /dev/null +++ b/types/EventSubscriptionHandler.html @@ -0,0 +1 @@ +EventSubscriptionHandler | DWN-SDK Documentation - v0.3.8

Type alias EventSubscriptionHandler

EventSubscriptionHandler: ((event) => void)

Type declaration

\ No newline at end of file diff --git a/types/EventsGetMessage.html b/types/EventsGetMessage.html new file mode 100644 index 000000000..21bac60d2 --- /dev/null +++ b/types/EventsGetMessage.html @@ -0,0 +1 @@ +EventsGetMessage | DWN-SDK Documentation - v0.3.8

Type alias EventsGetMessage

EventsGetMessage: GenericMessage & {
    authorization: AuthorizationModel;
    descriptor: EventsGetDescriptor;
}

Type declaration

  • authorization: AuthorizationModel
  • descriptor: EventsGetDescriptor
\ No newline at end of file diff --git a/types/EventsGetOptions.html b/types/EventsGetOptions.html new file mode 100644 index 000000000..9fc48a1f4 --- /dev/null +++ b/types/EventsGetOptions.html @@ -0,0 +1 @@ +EventsGetOptions | DWN-SDK Documentation - v0.3.8

Type alias EventsGetOptions

EventsGetOptions: {
    cursor?: PaginationCursor;
    messageTimestamp?: string;
    signer: Signer;
}

Type declaration

\ No newline at end of file diff --git a/types/EventsGetReply.html b/types/EventsGetReply.html new file mode 100644 index 000000000..d6f4d4c52 --- /dev/null +++ b/types/EventsGetReply.html @@ -0,0 +1 @@ +EventsGetReply | DWN-SDK Documentation - v0.3.8

Type alias EventsGetReply

EventsGetReply: GenericMessageReply & {
    cursor?: PaginationCursor;
    entries?: string[];
}

Type declaration

\ No newline at end of file diff --git a/types/EventsQueryMessage.html b/types/EventsQueryMessage.html new file mode 100644 index 000000000..b43911c4d --- /dev/null +++ b/types/EventsQueryMessage.html @@ -0,0 +1 @@ +EventsQueryMessage | DWN-SDK Documentation - v0.3.8

Type alias EventsQueryMessage

EventsQueryMessage: GenericMessage & {
    authorization: AuthorizationModel;
    descriptor: EventsQueryDescriptor;
}

Type declaration

  • authorization: AuthorizationModel
  • descriptor: EventsQueryDescriptor
\ No newline at end of file diff --git a/types/EventsQueryOptions.html b/types/EventsQueryOptions.html new file mode 100644 index 000000000..d16965cb8 --- /dev/null +++ b/types/EventsQueryOptions.html @@ -0,0 +1 @@ +EventsQueryOptions | DWN-SDK Documentation - v0.3.8

Type alias EventsQueryOptions

EventsQueryOptions: {
    cursor?: PaginationCursor;
    filters: EventsFilter[];
    messageTimestamp?: string;
    signer: Signer;
}

Type declaration

\ No newline at end of file diff --git a/types/EventsQueryReply.html b/types/EventsQueryReply.html new file mode 100644 index 000000000..deab04615 --- /dev/null +++ b/types/EventsQueryReply.html @@ -0,0 +1 @@ +EventsQueryReply | DWN-SDK Documentation - v0.3.8

Type alias EventsQueryReply

EventsQueryReply: GenericMessageReply & {
    cursor?: PaginationCursor;
    entries?: string[];
}

Type declaration

\ No newline at end of file diff --git a/types/EventsSubscribeDescriptor.html b/types/EventsSubscribeDescriptor.html new file mode 100644 index 000000000..b60550ae4 --- /dev/null +++ b/types/EventsSubscribeDescriptor.html @@ -0,0 +1 @@ +EventsSubscribeDescriptor | DWN-SDK Documentation - v0.3.8

Type alias EventsSubscribeDescriptor

EventsSubscribeDescriptor: {
    filters: EventsFilter[];
    interface: Events;
    messageTimestamp: string;
    method: Subscribe;
}

Type declaration

  • filters: EventsFilter[]
  • interface: Events
  • messageTimestamp: string
  • method: Subscribe
\ No newline at end of file diff --git a/types/EventsSubscribeMessage.html b/types/EventsSubscribeMessage.html new file mode 100644 index 000000000..c0ff50ba2 --- /dev/null +++ b/types/EventsSubscribeMessage.html @@ -0,0 +1 @@ +EventsSubscribeMessage | DWN-SDK Documentation - v0.3.8

Type alias EventsSubscribeMessage

EventsSubscribeMessage: {
    authorization: AuthorizationModel;
    descriptor: EventsSubscribeDescriptor;
}

Type declaration

\ No newline at end of file diff --git a/types/EventsSubscribeOptions.html b/types/EventsSubscribeOptions.html new file mode 100644 index 000000000..8e898f191 --- /dev/null +++ b/types/EventsSubscribeOptions.html @@ -0,0 +1 @@ +EventsSubscribeOptions | DWN-SDK Documentation - v0.3.8

Type alias EventsSubscribeOptions

EventsSubscribeOptions: {
    filters?: EventsFilter[];
    messageTimestamp?: string;
    signer: Signer;
}

Type declaration

  • Optional filters?: EventsFilter[]
  • Optional messageTimestamp?: string
  • signer: Signer
\ No newline at end of file diff --git a/types/EventsSubscribeReply.html b/types/EventsSubscribeReply.html new file mode 100644 index 000000000..04f860e3e --- /dev/null +++ b/types/EventsSubscribeReply.html @@ -0,0 +1 @@ +EventsSubscribeReply | DWN-SDK Documentation - v0.3.8

Type alias EventsSubscribeReply

EventsSubscribeReply: GenericMessageReply & {
    subscription?: MessageSubscription;
}

Type declaration

\ No newline at end of file diff --git a/types/Filter.html b/types/Filter.html new file mode 100644 index 000000000..a5547dfa3 --- /dev/null +++ b/types/Filter.html @@ -0,0 +1 @@ +Filter | DWN-SDK Documentation - v0.3.8
Filter: {
    [property: string]: FilterValue;
}

Type declaration

  • [property: string]: FilterValue
\ No newline at end of file diff --git a/types/GenericMessage.html b/types/GenericMessage.html new file mode 100644 index 000000000..0a7b02b59 --- /dev/null +++ b/types/GenericMessage.html @@ -0,0 +1,2 @@ +GenericMessage | DWN-SDK Documentation - v0.3.8

Type alias GenericMessage

GenericMessage: {
    authorization?: AuthorizationModel;
    descriptor: Descriptor;
}

Intersection type for all concrete message types.

+

Type declaration

  • Optional authorization?: AuthorizationModel
  • descriptor: Descriptor
\ No newline at end of file diff --git a/types/GenericMessageReply.html b/types/GenericMessageReply.html new file mode 100644 index 000000000..329a303ab --- /dev/null +++ b/types/GenericMessageReply.html @@ -0,0 +1 @@ +GenericMessageReply | DWN-SDK Documentation - v0.3.8

Type alias GenericMessageReply

GenericMessageReply: {
    status: Status;
}

Type declaration

  • status: Status
\ No newline at end of file diff --git a/types/KeyEncryptionInput.html b/types/KeyEncryptionInput.html new file mode 100644 index 000000000..ebaa92234 --- /dev/null +++ b/types/KeyEncryptionInput.html @@ -0,0 +1,7 @@ +KeyEncryptionInput | DWN-SDK Documentation - v0.3.8

Type alias KeyEncryptionInput

KeyEncryptionInput: {
    algorithm?: EncryptionAlgorithm;
    derivationScheme: KeyDerivationScheme;
    publicKey: PublicJwk;
    publicKeyId: string;
}

Input that specifies how a symmetric key is encrypted.

+

Type declaration

  • Optional algorithm?: EncryptionAlgorithm

    Algorithm used for encrypting the symmetric key. Uses {EncryptionAlgorithm.EciesSecp256k1} if not given.

    +
  • derivationScheme: KeyDerivationScheme

    Key derivation scheme used to derive the public key to encrypt the symmetric key.

    +
  • publicKey: PublicJwk

    Public key to be used to encrypt the symmetric key.

    +
  • publicKeyId: string

    Fully qualified ID of root public key used derive the public key to be used to to encrypt the symmetric key. +(e.g. did:example:abc#encryption-key-id)

    +
\ No newline at end of file diff --git a/types/KeyMaterial.html b/types/KeyMaterial.html new file mode 100644 index 000000000..e35020047 --- /dev/null +++ b/types/KeyMaterial.html @@ -0,0 +1,2 @@ +KeyMaterial | DWN-SDK Documentation - v0.3.8

Type alias KeyMaterial

KeyMaterial: {
    keyId: string;
    keyPair: {
        privateJwk: PrivateJwk;
        publicJwk: PublicJwk;
    };
}

Contains a public-private key pair and the associated key ID.

+

Type declaration

\ No newline at end of file diff --git a/types/ManagedResumableTask.html b/types/ManagedResumableTask.html new file mode 100644 index 000000000..544242f95 --- /dev/null +++ b/types/ManagedResumableTask.html @@ -0,0 +1,6 @@ +ManagedResumableTask | DWN-SDK Documentation - v0.3.8

Type alias ManagedResumableTask

ManagedResumableTask: {
    id: string;
    retryCount: number;
    task: any;
    timeout: number;
}

An managed resumable task model.

+

Type declaration

  • id: string

    Globally unique ID. Used to extend or delete the task.

    +
  • retryCount: number

    Number of retries

    +
  • task: any

    Task specific data. This is deliberately of type any because this store should not have to be ware of its type.

    +
  • timeout: number

    Task timeout in Epoch Time.

    +
\ No newline at end of file diff --git a/types/MessageEvent.html b/types/MessageEvent.html new file mode 100644 index 000000000..0bcd4df30 --- /dev/null +++ b/types/MessageEvent.html @@ -0,0 +1,3 @@ +MessageEvent | DWN-SDK Documentation - v0.3.8

Type alias MessageEvent

MessageEvent: {
    initialWrite?: RecordsWriteMessage;
    message: GenericMessage;
}

MessageEvent contains the message being emitted and an optional initial write message.

+

Type declaration

\ No newline at end of file diff --git a/types/MessageSort.html b/types/MessageSort.html new file mode 100644 index 000000000..ea4e73066 --- /dev/null +++ b/types/MessageSort.html @@ -0,0 +1 @@ +MessageSort | DWN-SDK Documentation - v0.3.8

Type alias MessageSort

MessageSort: {
    dateCreated?: SortDirection;
    datePublished?: SortDirection;
    messageTimestamp?: SortDirection;
}

Type declaration

\ No newline at end of file diff --git a/types/MessagesGetMessage.html b/types/MessagesGetMessage.html new file mode 100644 index 000000000..03db63808 --- /dev/null +++ b/types/MessagesGetMessage.html @@ -0,0 +1 @@ +MessagesGetMessage | DWN-SDK Documentation - v0.3.8

Type alias MessagesGetMessage

MessagesGetMessage: GenericMessage & {
    authorization: AuthorizationModel;
    descriptor: MessagesGetDescriptor;
}

Type declaration

  • authorization: AuthorizationModel
  • descriptor: MessagesGetDescriptor
\ No newline at end of file diff --git a/types/MessagesGetOptions.html b/types/MessagesGetOptions.html new file mode 100644 index 000000000..59bc66a35 --- /dev/null +++ b/types/MessagesGetOptions.html @@ -0,0 +1 @@ +MessagesGetOptions | DWN-SDK Documentation - v0.3.8

Type alias MessagesGetOptions

MessagesGetOptions: {
    messageCids: string[];
    messageTimestamp?: string;
    signer: Signer;
}

Type declaration

  • messageCids: string[]
  • Optional messageTimestamp?: string
  • signer: Signer
\ No newline at end of file diff --git a/types/MessagesGetReply.html b/types/MessagesGetReply.html new file mode 100644 index 000000000..a5ff51aa3 --- /dev/null +++ b/types/MessagesGetReply.html @@ -0,0 +1 @@ +MessagesGetReply | DWN-SDK Documentation - v0.3.8

Type alias MessagesGetReply

MessagesGetReply: GenericMessageReply & {
    entries?: MessagesGetReplyEntry[];
}

Type declaration

\ No newline at end of file diff --git a/types/MessagesGetReplyEntry.html b/types/MessagesGetReplyEntry.html new file mode 100644 index 000000000..cdae076bf --- /dev/null +++ b/types/MessagesGetReplyEntry.html @@ -0,0 +1 @@ +MessagesGetReplyEntry | DWN-SDK Documentation - v0.3.8

Type alias MessagesGetReplyEntry

MessagesGetReplyEntry: {
    encodedData?: string;
    error?: string;
    message?: GenericMessage;
    messageCid: string;
}

Type declaration

  • Optional encodedData?: string
  • Optional error?: string
  • Optional message?: GenericMessage
  • messageCid: string
\ No newline at end of file diff --git a/types/OneOfFilter.html b/types/OneOfFilter.html new file mode 100644 index 000000000..6b9fb6a06 --- /dev/null +++ b/types/OneOfFilter.html @@ -0,0 +1 @@ +OneOfFilter | DWN-SDK Documentation - v0.3.8

Type alias OneOfFilter

OneOfFilter: EqualFilter[]
\ No newline at end of file diff --git a/types/Pagination.html b/types/Pagination.html new file mode 100644 index 000000000..578012912 --- /dev/null +++ b/types/Pagination.html @@ -0,0 +1,3 @@ +Pagination | DWN-SDK Documentation - v0.3.8

Type alias Pagination

Pagination: {
    cursor?: PaginationCursor;
    limit?: number;
}

Pagination Options for querying messages.

+

The cursor is the messageCid of the message you would like to pagination from.

+

Type declaration

\ No newline at end of file diff --git a/types/PaginationCursor.html b/types/PaginationCursor.html new file mode 100644 index 000000000..e865b45c3 --- /dev/null +++ b/types/PaginationCursor.html @@ -0,0 +1 @@ +PaginationCursor | DWN-SDK Documentation - v0.3.8

Type alias PaginationCursor

PaginationCursor: {
    messageCid: string;
    value: string | number;
}

Type declaration

  • messageCid: string
  • value: string | number
\ No newline at end of file diff --git a/types/PermissionConditions.html b/types/PermissionConditions.html new file mode 100644 index 000000000..9c66810e9 --- /dev/null +++ b/types/PermissionConditions.html @@ -0,0 +1,4 @@ +PermissionConditions | DWN-SDK Documentation - v0.3.8

Type alias PermissionConditions

PermissionConditions: {
    publication?: PermissionConditionPublication;
}

Type declaration

  • Optional publication?: PermissionConditionPublication

    indicates whether a message written with the invocation of a permission must, may, or must not +be marked as public. +If undefined, it is optional to make the message public.

    +
\ No newline at end of file diff --git a/types/PermissionScope.html b/types/PermissionScope.html new file mode 100644 index 000000000..218ccfd3c --- /dev/null +++ b/types/PermissionScope.html @@ -0,0 +1,2 @@ +PermissionScope | DWN-SDK Documentation - v0.3.8

Type alias PermissionScope

PermissionScope: ProtocolPermissionScope | MessagesPermissionScope | EventsPermissionScope | RecordsPermissionScope

The data model for a permission scope.

+
\ No newline at end of file diff --git a/types/Persona.html b/types/Persona.html new file mode 100644 index 000000000..bbebbbfc6 --- /dev/null +++ b/types/Persona.html @@ -0,0 +1,2 @@ +Persona | DWN-SDK Documentation - v0.3.8
Persona: {
    did: string;
    keyId: string;
    keyPair: {
        privateJwk: PrivateJwk;
        publicJwk: PublicJwk;
    };
    signer: Signer;
}

A logical grouping of user data used to generate test messages.

+

Type declaration

\ No newline at end of file diff --git a/types/PrivateJwk.html b/types/PrivateJwk.html new file mode 100644 index 000000000..29109c369 --- /dev/null +++ b/types/PrivateJwk.html @@ -0,0 +1,4 @@ +PrivateJwk | DWN-SDK Documentation - v0.3.8

Type alias PrivateJwk

PrivateJwk: PublicJwk & {
    d: string;
}

Type declaration

  • d: string

    the Elliptic Curve private key value. +It is represented as the base64url encoding of the octet string representation of the private key value +MUST be present to represent Elliptic Curve private keys.

    +
\ No newline at end of file diff --git a/types/ProtocolDefinition.html b/types/ProtocolDefinition.html new file mode 100644 index 000000000..05d6f0e22 --- /dev/null +++ b/types/ProtocolDefinition.html @@ -0,0 +1,2 @@ +ProtocolDefinition | DWN-SDK Documentation - v0.3.8

Type alias ProtocolDefinition

ProtocolDefinition: {
    protocol: string;
    published: boolean;
    structure: {
        [key: string]: ProtocolRuleSet;
    };
    types: ProtocolTypes;
}

Type declaration

  • protocol: string
  • published: boolean

    Denotes if this Protocol Definition can be returned by unauthenticated or unauthorized ProtocolsQuery.

    +
  • structure: {
        [key: string]: ProtocolRuleSet;
    }
  • types: ProtocolTypes
\ No newline at end of file diff --git a/types/ProtocolRuleSet.html b/types/ProtocolRuleSet.html new file mode 100644 index 000000000..54796bbaa --- /dev/null +++ b/types/ProtocolRuleSet.html @@ -0,0 +1,8 @@ +ProtocolRuleSet | DWN-SDK Documentation - v0.3.8

Type alias ProtocolRuleSet

ProtocolRuleSet: {
    $actions?: ProtocolActionRule[];
    $encryption?: ProtocolPathEncryption;
    $role?: boolean;
    $size?: {
        max?: number;
        min?: number;
    };
    $tags?: {
        $allowUndefinedTags?: boolean;
        $requiredTags?: string[];
        [key: string]: any;
    };
    [key: string]: any;
}

Type declaration

  • [key: string]: any
  • Optional $actions?: ProtocolActionRule[]
  • Optional $encryption?: ProtocolPathEncryption

    Encryption setting for objects that are in this protocol path.

    +
  • Optional $role?: boolean

    If true, this marks a record as a role that may used within a context. +The recipient of a $role record may invoke their role by setting protocolRole property to the protocol path of the $role record.

    +
  • Optional $size?: {
        max?: number;
        min?: number;
    }

    If $size is set, the record size in bytes must be within the limits.

    +
    • Optional max?: number
    • Optional min?: number
  • Optional $tags?: {
        $allowUndefinedTags?: boolean;
        $requiredTags?: string[];
        [key: string]: any;
    }

    If $tags is set, the record must conform to the tag rules.

    +
    • [key: string]: any
    • Optional $allowUndefinedTags?: boolean

      allow properties other than those explicitly listed. defaults to false

      +
    • Optional $requiredTags?: string[]

      array of required tags

      +
\ No newline at end of file diff --git a/types/ProtocolTypes.html b/types/ProtocolTypes.html new file mode 100644 index 000000000..45599b73e --- /dev/null +++ b/types/ProtocolTypes.html @@ -0,0 +1 @@ +ProtocolTypes | DWN-SDK Documentation - v0.3.8

Type alias ProtocolTypes

ProtocolTypes: {
    [key: string]: ProtocolType;
}

Type declaration

  • [key: string]: ProtocolType
\ No newline at end of file diff --git a/types/ProtocolsConfigureDescriptor.html b/types/ProtocolsConfigureDescriptor.html new file mode 100644 index 000000000..3d72dcde1 --- /dev/null +++ b/types/ProtocolsConfigureDescriptor.html @@ -0,0 +1 @@ +ProtocolsConfigureDescriptor | DWN-SDK Documentation - v0.3.8

Type alias ProtocolsConfigureDescriptor

ProtocolsConfigureDescriptor: {
    definition: ProtocolDefinition;
    interface: Protocols;
    messageTimestamp: string;
    method: Configure;
}

Type declaration

\ No newline at end of file diff --git a/types/ProtocolsConfigureMessage.html b/types/ProtocolsConfigureMessage.html new file mode 100644 index 000000000..639f7d4f7 --- /dev/null +++ b/types/ProtocolsConfigureMessage.html @@ -0,0 +1 @@ +ProtocolsConfigureMessage | DWN-SDK Documentation - v0.3.8

Type alias ProtocolsConfigureMessage

ProtocolsConfigureMessage: GenericMessage & {
    authorization: AuthorizationModel;
    descriptor: ProtocolsConfigureDescriptor;
}

Type declaration

\ No newline at end of file diff --git a/types/ProtocolsConfigureOptions.html b/types/ProtocolsConfigureOptions.html new file mode 100644 index 000000000..b77d6531d --- /dev/null +++ b/types/ProtocolsConfigureOptions.html @@ -0,0 +1 @@ +ProtocolsConfigureOptions | DWN-SDK Documentation - v0.3.8

Type alias ProtocolsConfigureOptions

ProtocolsConfigureOptions: {
    definition: ProtocolDefinition;
    messageTimestamp?: string;
    permissionGrantId?: string;
    signer: Signer;
}

Type declaration

\ No newline at end of file diff --git a/types/ProtocolsQueryFilter.html b/types/ProtocolsQueryFilter.html new file mode 100644 index 000000000..35d675351 --- /dev/null +++ b/types/ProtocolsQueryFilter.html @@ -0,0 +1 @@ +ProtocolsQueryFilter | DWN-SDK Documentation - v0.3.8

Type alias ProtocolsQueryFilter

ProtocolsQueryFilter: {
    protocol: string;
}

Type declaration

  • protocol: string
\ No newline at end of file diff --git a/types/ProtocolsQueryMessage.html b/types/ProtocolsQueryMessage.html new file mode 100644 index 000000000..5e6f24e5a --- /dev/null +++ b/types/ProtocolsQueryMessage.html @@ -0,0 +1 @@ +ProtocolsQueryMessage | DWN-SDK Documentation - v0.3.8

Type alias ProtocolsQueryMessage

ProtocolsQueryMessage: GenericMessage & {
    descriptor: ProtocolsQueryDescriptor;
}

Type declaration

  • descriptor: ProtocolsQueryDescriptor
\ No newline at end of file diff --git a/types/ProtocolsQueryOptions.html b/types/ProtocolsQueryOptions.html new file mode 100644 index 000000000..d74f78c55 --- /dev/null +++ b/types/ProtocolsQueryOptions.html @@ -0,0 +1 @@ +ProtocolsQueryOptions | DWN-SDK Documentation - v0.3.8

Type alias ProtocolsQueryOptions

ProtocolsQueryOptions: {
    filter?: ProtocolsQueryFilter;
    messageTimestamp?: string;
    permissionGrantId?: string;
    signer?: Signer;
}

Type declaration

  • Optional filter?: ProtocolsQueryFilter
  • Optional messageTimestamp?: string
  • Optional permissionGrantId?: string
  • Optional signer?: Signer
\ No newline at end of file diff --git a/types/ProtocolsQueryReply.html b/types/ProtocolsQueryReply.html new file mode 100644 index 000000000..7e20974ae --- /dev/null +++ b/types/ProtocolsQueryReply.html @@ -0,0 +1 @@ +ProtocolsQueryReply | DWN-SDK Documentation - v0.3.8

Type alias ProtocolsQueryReply

ProtocolsQueryReply: GenericMessageReply & {
    entries?: ProtocolsConfigureMessage[];
}

Type declaration

\ No newline at end of file diff --git a/types/PublicJwk.html b/types/PublicJwk.html new file mode 100644 index 000000000..9d646cbcc --- /dev/null +++ b/types/PublicJwk.html @@ -0,0 +1,8 @@ +PublicJwk | DWN-SDK Documentation - v0.3.8

Type alias PublicJwk

PublicJwk: Jwk & {
    crv: "Ed25519" | "secp256k1" | "P-256";
    x: string;
    y?: string;
}

Type declaration

  • crv: "Ed25519" | "secp256k1" | "P-256"

    The "crv" (curve) parameter identifies the cryptographic curve used with the key. +MUST be present for all EC public keys

    +
  • x: string

    the x coordinate for the Elliptic Curve point. +Represented as the base64url encoding of the octet string representation of the coordinate. +MUST be present for all EC public keys

    +
  • Optional y?: string

    the y coordinate for the Elliptic Curve point. +Represented as the base64url encoding of the octet string representation of the coordinate.

    +
\ No newline at end of file diff --git a/types/QueryOptions.html b/types/QueryOptions.html new file mode 100644 index 000000000..a746c2913 --- /dev/null +++ b/types/QueryOptions.html @@ -0,0 +1 @@ +QueryOptions | DWN-SDK Documentation - v0.3.8

Type alias QueryOptions

QueryOptions: {
    cursor?: PaginationCursor;
    limit?: number;
    sortDirection?: SortDirection;
    sortProperty: string;
}

Type declaration

\ No newline at end of file diff --git a/types/QueryResultEntry.html b/types/QueryResultEntry.html new file mode 100644 index 000000000..87a691480 --- /dev/null +++ b/types/QueryResultEntry.html @@ -0,0 +1,6 @@ +QueryResultEntry | DWN-SDK Documentation - v0.3.8

Type alias QueryResultEntry

QueryResultEntry: GenericMessage & {
    encodedData?: string;
}

Message returned in a query result. +NOTE: the message structure is a modified version of the message received, the most notable differences are:

+
    +
  1. May include encoded data
  2. +
+

Type declaration

  • Optional encodedData?: string
\ No newline at end of file diff --git a/types/RangeCriterion.html b/types/RangeCriterion.html new file mode 100644 index 000000000..092060607 --- /dev/null +++ b/types/RangeCriterion.html @@ -0,0 +1,3 @@ +RangeCriterion | DWN-SDK Documentation - v0.3.8

Type alias RangeCriterion

RangeCriterion: {
    from?: string;
    to?: string;
}

Type declaration

  • Optional from?: string

    Inclusive starting date-time.

    +
  • Optional to?: string

    Inclusive end date-time.

    +
\ No newline at end of file diff --git a/types/RangeFilter.html b/types/RangeFilter.html new file mode 100644 index 000000000..e7293d4ae --- /dev/null +++ b/types/RangeFilter.html @@ -0,0 +1,2 @@ +RangeFilter | DWN-SDK Documentation - v0.3.8

Type alias RangeFilter

RangeFilter: (GT | LT) & Partial<GT> & Partial<LT>

Ranger filter. 1 condition is required.

+
\ No newline at end of file diff --git a/types/RecordSubscriptionHandler.html b/types/RecordSubscriptionHandler.html new file mode 100644 index 000000000..139560274 --- /dev/null +++ b/types/RecordSubscriptionHandler.html @@ -0,0 +1 @@ +RecordSubscriptionHandler | DWN-SDK Documentation - v0.3.8

Type alias RecordSubscriptionHandler

RecordSubscriptionHandler: ((event) => void)

Type declaration

    • (event): void
    • Parameters

      • event: RecordEvent

      Returns void

\ No newline at end of file diff --git a/types/RecordsDeleteMessage.html b/types/RecordsDeleteMessage.html new file mode 100644 index 000000000..b546e469a --- /dev/null +++ b/types/RecordsDeleteMessage.html @@ -0,0 +1 @@ +RecordsDeleteMessage | DWN-SDK Documentation - v0.3.8

Type alias RecordsDeleteMessage

RecordsDeleteMessage: GenericMessage & {
    authorization: AuthorizationModel;
    descriptor: RecordsDeleteDescriptor;
}

Type declaration

  • authorization: AuthorizationModel
  • descriptor: RecordsDeleteDescriptor
\ No newline at end of file diff --git a/types/RecordsDeleteOptions.html b/types/RecordsDeleteOptions.html new file mode 100644 index 000000000..e1bff1750 --- /dev/null +++ b/types/RecordsDeleteOptions.html @@ -0,0 +1,3 @@ +RecordsDeleteOptions | DWN-SDK Documentation - v0.3.8

Type alias RecordsDeleteOptions

RecordsDeleteOptions: {
    delegatedGrant?: DataEncodedRecordsWriteMessage;
    messageTimestamp?: string;
    protocolRole?: string;
    prune?: boolean;
    recordId: string;
    signer: Signer;
}

Type declaration

  • Optional delegatedGrant?: DataEncodedRecordsWriteMessage

    The delegated grant to sign on behalf of the logical author, which is the grantor (grantedBy) of the delegated grant.

    +
  • Optional messageTimestamp?: string
  • Optional protocolRole?: string
  • Optional prune?: boolean

    Denotes if all the descendent records should be purged. Defaults to false.

    +
  • recordId: string
  • signer: Signer
\ No newline at end of file diff --git a/types/RecordsQueryMessage.html b/types/RecordsQueryMessage.html new file mode 100644 index 000000000..8f844496f --- /dev/null +++ b/types/RecordsQueryMessage.html @@ -0,0 +1 @@ +RecordsQueryMessage | DWN-SDK Documentation - v0.3.8

Type alias RecordsQueryMessage

RecordsQueryMessage: GenericMessage & {
    descriptor: RecordsQueryDescriptor;
}

Type declaration

  • descriptor: RecordsQueryDescriptor
\ No newline at end of file diff --git a/types/RecordsQueryOptions.html b/types/RecordsQueryOptions.html new file mode 100644 index 000000000..3b31dedd3 --- /dev/null +++ b/types/RecordsQueryOptions.html @@ -0,0 +1,2 @@ +RecordsQueryOptions | DWN-SDK Documentation - v0.3.8

Type alias RecordsQueryOptions

RecordsQueryOptions: {
    dateSort?: DateSort;
    delegatedGrant?: DataEncodedRecordsWriteMessage;
    filter: RecordsFilter;
    messageTimestamp?: string;
    pagination?: Pagination;
    protocolRole?: string;
    signer?: Signer;
}

Type declaration

  • Optional dateSort?: DateSort
  • Optional delegatedGrant?: DataEncodedRecordsWriteMessage

    The delegated grant to sign on behalf of the logical author, which is the grantor (grantedBy) of the delegated grant.

    +
  • filter: RecordsFilter
  • Optional messageTimestamp?: string
  • Optional pagination?: Pagination
  • Optional protocolRole?: string
  • Optional signer?: Signer
\ No newline at end of file diff --git a/types/RecordsQueryReply.html b/types/RecordsQueryReply.html new file mode 100644 index 000000000..d60719422 --- /dev/null +++ b/types/RecordsQueryReply.html @@ -0,0 +1 @@ +RecordsQueryReply | DWN-SDK Documentation - v0.3.8

Type alias RecordsQueryReply

RecordsQueryReply: GenericMessageReply & {
    cursor?: PaginationCursor;
    entries?: RecordsQueryReplyEntry[];
}

Type declaration

\ No newline at end of file diff --git a/types/RecordsQueryReplyEntry.html b/types/RecordsQueryReplyEntry.html new file mode 100644 index 000000000..49f61c91d --- /dev/null +++ b/types/RecordsQueryReplyEntry.html @@ -0,0 +1,9 @@ +RecordsQueryReplyEntry | DWN-SDK Documentation - v0.3.8

Type alias RecordsQueryReplyEntry

RecordsQueryReplyEntry: RecordsWriteMessage & {
    encodedData?: string;
    initialWrite?: RecordsWriteMessage;
}

Data structure returned in a RecordsQuery reply entry. +NOTE: the message structure is a modified version of the message received, the most notable differences are:

+
    +
  1. May include an initial RecordsWrite message
  2. +
  3. May include encoded data
  4. +
+

Type declaration

  • Optional encodedData?: string

    The encoded data of the record if the data associated with the record is equal or smaller than DwnConstant.maxDataSizeAllowedToBeEncoded.

    +
  • Optional initialWrite?: RecordsWriteMessage

    The initial write of the record if the returned RecordsWrite message itself is not the initial write.

    +
\ No newline at end of file diff --git a/types/RecordsReadMessage.html b/types/RecordsReadMessage.html new file mode 100644 index 000000000..4fd51ef64 --- /dev/null +++ b/types/RecordsReadMessage.html @@ -0,0 +1 @@ +RecordsReadMessage | DWN-SDK Documentation - v0.3.8

Type alias RecordsReadMessage

RecordsReadMessage: {
    authorization?: AuthorizationModel;
    descriptor: RecordsReadDescriptor;
}

Type declaration

  • Optional authorization?: AuthorizationModel
  • descriptor: RecordsReadDescriptor
\ No newline at end of file diff --git a/types/RecordsReadOptions.html b/types/RecordsReadOptions.html new file mode 100644 index 000000000..85a000e3b --- /dev/null +++ b/types/RecordsReadOptions.html @@ -0,0 +1,4 @@ +RecordsReadOptions | DWN-SDK Documentation - v0.3.8

Type alias RecordsReadOptions

RecordsReadOptions: {
    delegatedGrant?: DataEncodedRecordsWriteMessage;
    filter: RecordsFilter;
    messageTimestamp?: string;
    permissionGrantId?: string;
    protocolRole?: string;
    signer?: Signer;
}

Type declaration

  • Optional delegatedGrant?: DataEncodedRecordsWriteMessage

    The delegated grant to sign on behalf of the logical author, which is the grantor (grantedBy) of the delegated grant.

    +
  • filter: RecordsFilter
  • Optional messageTimestamp?: string
  • Optional permissionGrantId?: string
  • Optional protocolRole?: string

    Used when authorizing protocol records. +The protocol path to the role record type whose recipient is the author of this RecordsRead

    +
  • Optional signer?: Signer
\ No newline at end of file diff --git a/types/RecordsReadReply.html b/types/RecordsReadReply.html new file mode 100644 index 000000000..8af095da7 --- /dev/null +++ b/types/RecordsReadReply.html @@ -0,0 +1 @@ +RecordsReadReply | DWN-SDK Documentation - v0.3.8

Type alias RecordsReadReply

RecordsReadReply: GenericMessageReply & {
    record?: RecordsWriteMessage & {
        data: Readable;
        initialWrite?: RecordsWriteMessage;
    };
}

Type declaration

\ No newline at end of file diff --git a/types/RecordsSubscribeDescriptor.html b/types/RecordsSubscribeDescriptor.html new file mode 100644 index 000000000..eb8dfd21a --- /dev/null +++ b/types/RecordsSubscribeDescriptor.html @@ -0,0 +1 @@ +RecordsSubscribeDescriptor | DWN-SDK Documentation - v0.3.8

Type alias RecordsSubscribeDescriptor

RecordsSubscribeDescriptor: {
    filter: RecordsFilter;
    interface: Records;
    messageTimestamp: string;
    method: Subscribe;
}

Type declaration

  • filter: RecordsFilter
  • interface: Records
  • messageTimestamp: string
  • method: Subscribe
\ No newline at end of file diff --git a/types/RecordsSubscribeMessage.html b/types/RecordsSubscribeMessage.html new file mode 100644 index 000000000..f39ed946b --- /dev/null +++ b/types/RecordsSubscribeMessage.html @@ -0,0 +1 @@ +RecordsSubscribeMessage | DWN-SDK Documentation - v0.3.8

Type alias RecordsSubscribeMessage

RecordsSubscribeMessage: GenericMessage & {
    descriptor: RecordsSubscribeDescriptor;
}

Type declaration

\ No newline at end of file diff --git a/types/RecordsSubscribeOptions.html b/types/RecordsSubscribeOptions.html new file mode 100644 index 000000000..8a7779e96 --- /dev/null +++ b/types/RecordsSubscribeOptions.html @@ -0,0 +1,2 @@ +RecordsSubscribeOptions | DWN-SDK Documentation - v0.3.8

Type alias RecordsSubscribeOptions

RecordsSubscribeOptions: {
    delegatedGrant?: DataEncodedRecordsWriteMessage;
    filter: RecordsFilter;
    messageTimestamp?: string;
    protocolRole?: string;
    signer?: Signer;
}

Type declaration

  • Optional delegatedGrant?: DataEncodedRecordsWriteMessage

    The delegated grant to sign on behalf of the logical author, which is the grantor (grantedBy) of the delegated grant.

    +
  • filter: RecordsFilter
  • Optional messageTimestamp?: string
  • Optional protocolRole?: string
  • Optional signer?: Signer
\ No newline at end of file diff --git a/types/RecordsSubscribeReply.html b/types/RecordsSubscribeReply.html new file mode 100644 index 000000000..10fc0e12d --- /dev/null +++ b/types/RecordsSubscribeReply.html @@ -0,0 +1 @@ +RecordsSubscribeReply | DWN-SDK Documentation - v0.3.8

Type alias RecordsSubscribeReply

RecordsSubscribeReply: GenericMessageReply & {
    subscription?: MessageSubscription;
}

Type declaration

\ No newline at end of file diff --git a/types/RecordsWriteDescriptor.html b/types/RecordsWriteDescriptor.html new file mode 100644 index 000000000..a9322285d --- /dev/null +++ b/types/RecordsWriteDescriptor.html @@ -0,0 +1 @@ +RecordsWriteDescriptor | DWN-SDK Documentation - v0.3.8

Type alias RecordsWriteDescriptor

RecordsWriteDescriptor: {
    dataCid: string;
    dataFormat: string;
    dataSize: number;
    dateCreated: string;
    datePublished?: string;
    interface: Records;
    messageTimestamp: string;
    method: Write;
    parentId?: string;
    protocol?: string;
    protocolPath?: string;
    published?: boolean;
    recipient?: string;
    schema?: string;
    tags?: RecordsWriteTags;
}

Type declaration

  • dataCid: string
  • dataFormat: string
  • dataSize: number
  • dateCreated: string
  • Optional datePublished?: string
  • interface: Records
  • messageTimestamp: string
  • method: Write
  • Optional parentId?: string
  • Optional protocol?: string
  • Optional protocolPath?: string
  • Optional published?: boolean
  • Optional recipient?: string
  • Optional schema?: string
  • Optional tags?: RecordsWriteTags
\ No newline at end of file diff --git a/types/RecordsWriteMessage.html b/types/RecordsWriteMessage.html new file mode 100644 index 000000000..c26ff33dd --- /dev/null +++ b/types/RecordsWriteMessage.html @@ -0,0 +1 @@ +RecordsWriteMessage | DWN-SDK Documentation - v0.3.8

Type alias RecordsWriteMessage

RecordsWriteMessage: {
    attestation?: GeneralJws;
    authorization: AuthorizationModel;
    contextId?: string;
    descriptor: RecordsWriteDescriptor;
    encryption?: EncryptionProperty;
    recordId: string;
}

Type declaration

\ No newline at end of file diff --git a/types/RecordsWriteOptions.html b/types/RecordsWriteOptions.html new file mode 100644 index 000000000..00f2fdf49 --- /dev/null +++ b/types/RecordsWriteOptions.html @@ -0,0 +1,5 @@ +RecordsWriteOptions | DWN-SDK Documentation - v0.3.8

Type alias RecordsWriteOptions

RecordsWriteOptions: {
    attestationSigners?: Signer[];
    data?: Uint8Array;
    dataCid?: string;
    dataFormat: string;
    dataSize?: number;
    dateCreated?: string;
    datePublished?: string;
    delegatedGrant?: DataEncodedRecordsWriteMessage;
    encryptionInput?: EncryptionInput;
    messageTimestamp?: string;
    parentContextId?: string;
    permissionGrantId?: string;
    protocol?: string;
    protocolPath?: string;
    protocolRole?: string;
    published?: boolean;
    recipient?: string;
    recordId?: string;
    schema?: string;
    signer?: Signer;
    tags?: RecordsWriteTags;
}

Type declaration

  • Optional attestationSigners?: Signer[]
  • Optional data?: Uint8Array
  • Optional dataCid?: string
  • dataFormat: string
  • Optional dataSize?: number
  • Optional dateCreated?: string
  • Optional datePublished?: string
  • Optional delegatedGrant?: DataEncodedRecordsWriteMessage

    The delegated grant invoked to sign on behalf of the logical author, which is the grantor of the delegated grant.

    +
  • Optional encryptionInput?: EncryptionInput
  • Optional messageTimestamp?: string
  • Optional parentContextId?: string

    Must be given if this message is for a non-root protocol record. +If not given, it either means this write is for a root protocol record or a flat-space record.

    +
  • Optional permissionGrantId?: string
  • Optional protocol?: string
  • Optional protocolPath?: string
  • Optional protocolRole?: string
  • Optional published?: boolean
  • Optional recipient?: string
  • Optional recordId?: string
  • Optional schema?: string
  • Optional signer?: Signer

    The signer of the message, which is commonly the author, but can also be a delegate.

    +
  • Optional tags?: RecordsWriteTags
\ No newline at end of file diff --git a/types/RecordsWriteTagValue.html b/types/RecordsWriteTagValue.html new file mode 100644 index 000000000..59ed638e7 --- /dev/null +++ b/types/RecordsWriteTagValue.html @@ -0,0 +1 @@ +RecordsWriteTagValue | DWN-SDK Documentation - v0.3.8

Type alias RecordsWriteTagValue

RecordsWriteTagValue: string | number | boolean | string[] | number[]
\ No newline at end of file diff --git a/types/RecordsWriteTags.html b/types/RecordsWriteTags.html new file mode 100644 index 000000000..9ec839fef --- /dev/null +++ b/types/RecordsWriteTags.html @@ -0,0 +1 @@ +RecordsWriteTags | DWN-SDK Documentation - v0.3.8

Type alias RecordsWriteTags

RecordsWriteTags: {
    [property: string]: RecordsWriteTagValue;
}

Type declaration

\ No newline at end of file diff --git a/types/SubscriptionReply.html b/types/SubscriptionReply.html new file mode 100644 index 000000000..9e1378f48 --- /dev/null +++ b/types/SubscriptionReply.html @@ -0,0 +1 @@ +SubscriptionReply | DWN-SDK Documentation - v0.3.8

Type alias SubscriptionReply

SubscriptionReply: GenericMessageReply & {
    subscription?: MessageSubscription;
}

Type declaration

\ No newline at end of file diff --git a/types/UnionMessageReply.html b/types/UnionMessageReply.html new file mode 100644 index 000000000..5e9655d59 --- /dev/null +++ b/types/UnionMessageReply.html @@ -0,0 +1,10 @@ +UnionMessageReply | DWN-SDK Documentation - v0.3.8

Type alias UnionMessageReply

UnionMessageReply: GenericMessageReply & {
    cursor?: PaginationCursor;
    entries?: QueryResultEntry[] | ProtocolsConfigureMessage[] | MessagesGetReplyEntry[] | string[];
    record?: RecordsWriteMessage & {
        data: Readable;
        initialWrite?: RecordsWriteMessage;
    };
    subscription?: MessageSubscription;
}

Catch-all message reply type. It is recommended to use GenericMessageReply or a message-specific reply type wherever possible.

+

Type declaration

  • Optional cursor?: PaginationCursor

    A cursor for pagination if applicable (e.g. RecordsQuery). +Mutually exclusive with record.

    +
  • Optional entries?: QueryResultEntry[] | ProtocolsConfigureMessage[] | MessagesGetReplyEntry[] | string[]

    Resulting message entries or events returned from the invocation of the corresponding message. +e.g. the resulting messages from a RecordsQuery, or array of messageCid strings for EventsGet or EventsQuery +Mutually exclusive with record.

    +
  • Optional record?: RecordsWriteMessage & {
        data: Readable;
        initialWrite?: RecordsWriteMessage;
    }

    Record corresponding to the message received if applicable (e.g. RecordsRead). +Mutually exclusive with entries and cursor.

    +
  • Optional subscription?: MessageSubscription

    A subscription object if a subscription was requested.

    +
\ No newline at end of file