From 6dc3fbe7dc8bd2bff4fa66f47fad4e6cd33d104d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 5 Jul 2024 22:22:50 +0000 Subject: [PATCH] 2024-07-05T22:22:50+00:00 Signed-off-by: GitHub Actions --- .nojekyll | 1 + assets/highlight.css | 22 + assets/icons.js | 18 + assets/icons.svg | 1 + assets/main.js | 60 + assets/navigation.js | 1 + assets/search.js | 1 + assets/style.css | 1448 +++++++++++++++++++++ classes/AllowAllTenantGate.html | 5 + classes/Cid.html | 17 + classes/DataStoreLevel.html | 27 + classes/DataStream.html | 13 + classes/Dwn.html | 16 + classes/DwnConstant.html | 6 + classes/DwnError.html | 4 + classes/Encoder.html | 11 + classes/Encryption.html | 17 + classes/EventEmitterStream.html | 7 + classes/EventLogLevel.html | 28 + classes/HdKey.html | 14 + classes/Jws.html | 18 + classes/Message.html | 46 + classes/MessageStoreLevel.html | 26 + classes/MessagesQuery.html | 17 + classes/MessagesRead.html | 17 + classes/MessagesSubscribe.html | 19 + classes/PermissionGrant.html | 23 + classes/PermissionRequest.html | 16 + classes/PermissionsProtocol.html | 32 + classes/Poller.html | 12 + classes/PrivateKeySigner.html | 17 + classes/Protocols.html | 7 + classes/ProtocolsConfigure.html | 17 + classes/ProtocolsQuery.html | 19 + classes/Records.html | 54 + classes/RecordsDelete.html | 21 + classes/RecordsQuery.html | 21 + classes/RecordsRead.html | 22 + classes/RecordsSubscribe.html | 21 + classes/RecordsWrite.html | 87 ++ classes/ResumableTaskStoreLevel.html | 41 + classes/Secp256k1.html | 27 + classes/Secp256r1.html | 20 + classes/TestDataGenerator.html | 59 + classes/Time.html | 24 + enums/DateSort.html | 5 + enums/DwnErrorCode.html | 149 +++ enums/DwnInterfaceName.html | 4 + enums/DwnMethodName.html | 7 + enums/EncryptionAlgorithm.html | 3 + enums/KeyDerivationScheme.html | 7 + enums/PermissionConditionPublication.html | 3 + enums/SortDirection.html | 3 + functions/authenticate.html | 3 + functions/executeUnlessAborted.html | 2 + hierarchy.html | 1 + index.html | 138 ++ interfaces/DataStore.html | 21 + interfaces/EventLog.html | 25 + interfaces/EventStream.html | 6 + interfaces/EventSubscription.html | 3 + interfaces/MessageStore.html | 18 + interfaces/MessageStoreOptions.html | 2 + interfaces/MessageSubscription.html | 3 + interfaces/ResumableTaskStore.html | 57 + interfaces/Signer.html | 16 + interfaces/TenantGate.html | 4 + types/ActiveTenantCheckResult.html | 4 + types/CreateFromOptions.html | 4 + types/DataStoreGetResult.html | 3 + types/DataStorePutResult.html | 3 + types/DerivedPrivateJwk.html | 1 + types/DwnConfig.html | 2 + types/EncryptionInput.html | 7 + types/EncryptionProperty.html | 1 + types/EqualFilter.html | 1 + types/EventListener.html | 1 + types/Filter.html | 1 + types/GenericMessage.html | 2 + types/GenericMessageReply.html | 1 + types/KeyEncryptionInput.html | 7 + types/KeyMaterial.html | 2 + types/ManagedResumableTask.html | 6 + types/MessageEvent.html | 3 + types/MessageSort.html | 1 + types/MessageSubscriptionHandler.html | 1 + types/MessagesFilter.html | 2 + types/MessagesPermissionScope.html | 1 + types/MessagesQueryMessage.html | 1 + types/MessagesQueryOptions.html | 1 + types/MessagesQueryReply.html | 1 + types/MessagesReadMessage.html | 1 + types/MessagesReadOptions.html | 1 + types/MessagesReadReply.html | 1 + types/MessagesReadReplyEntry.html | 1 + types/MessagesSubscribeDescriptor.html | 1 + types/MessagesSubscribeMessage.html | 1 + types/MessagesSubscribeOptions.html | 1 + types/MessagesSubscribeReply.html | 1 + types/OneOfFilter.html | 1 + types/Pagination.html | 3 + types/PaginationCursor.html | 1 + types/PermissionConditions.html | 4 + types/PermissionGrantData.html | 7 + types/PermissionRequestData.html | 5 + types/PermissionRevocationData.html | 3 + types/PermissionScope.html | 2 + types/Persona.html | 2 + types/PrivateJwk.html | 4 + types/ProtocolDefinition.html | 2 + types/ProtocolPermissionScope.html | 1 + types/ProtocolRuleSet.html | 8 + types/ProtocolTypes.html | 1 + types/ProtocolsConfigureDescriptor.html | 1 + types/ProtocolsConfigureMessage.html | 1 + types/ProtocolsConfigureOptions.html | 1 + types/ProtocolsQueryFilter.html | 1 + types/ProtocolsQueryMessage.html | 1 + types/ProtocolsQueryOptions.html | 1 + types/ProtocolsQueryReply.html | 1 + types/PublicJwk.html | 8 + types/QueryOptions.html | 1 + types/QueryResultEntry.html | 6 + types/RangeCriterion.html | 3 + types/RangeFilter.html | 2 + types/RecordSubscriptionHandler.html | 1 + types/RecordsDeleteMessage.html | 1 + types/RecordsDeleteOptions.html | 3 + types/RecordsPermissionScope.html | 4 + types/RecordsQueryMessage.html | 1 + types/RecordsQueryOptions.html | 2 + types/RecordsQueryReply.html | 1 + types/RecordsQueryReplyEntry.html | 9 + types/RecordsReadMessage.html | 1 + types/RecordsReadOptions.html | 4 + types/RecordsReadReply.html | 1 + types/RecordsSubscribeDescriptor.html | 1 + types/RecordsSubscribeMessage.html | 1 + types/RecordsSubscribeOptions.html | 2 + types/RecordsSubscribeReply.html | 1 + types/RecordsWriteDescriptor.html | 1 + types/RecordsWriteMessage.html | 1 + types/RecordsWriteOptions.html | 5 + types/RecordsWriteTagValue.html | 1 + types/RecordsWriteTags.html | 1 + types/SubscriptionReply.html | 1 + types/UnionMessageReply.html | 12 + 147 files changed, 3071 insertions(+) create mode 100644 .nojekyll create mode 100644 assets/highlight.css create mode 100644 assets/icons.js create mode 100644 assets/icons.svg create mode 100644 assets/main.js create mode 100644 assets/navigation.js create mode 100644 assets/search.js create mode 100644 assets/style.css create mode 100644 classes/AllowAllTenantGate.html create mode 100644 classes/Cid.html create mode 100644 classes/DataStoreLevel.html create mode 100644 classes/DataStream.html create mode 100644 classes/Dwn.html create mode 100644 classes/DwnConstant.html create mode 100644 classes/DwnError.html create mode 100644 classes/Encoder.html create mode 100644 classes/Encryption.html create mode 100644 classes/EventEmitterStream.html create mode 100644 classes/EventLogLevel.html create mode 100644 classes/HdKey.html create mode 100644 classes/Jws.html create mode 100644 classes/Message.html create mode 100644 classes/MessageStoreLevel.html create mode 100644 classes/MessagesQuery.html create mode 100644 classes/MessagesRead.html create mode 100644 classes/MessagesSubscribe.html create mode 100644 classes/PermissionGrant.html create mode 100644 classes/PermissionRequest.html create mode 100644 classes/PermissionsProtocol.html create mode 100644 classes/Poller.html create mode 100644 classes/PrivateKeySigner.html create mode 100644 classes/Protocols.html create mode 100644 classes/ProtocolsConfigure.html create mode 100644 classes/ProtocolsQuery.html create mode 100644 classes/Records.html create mode 100644 classes/RecordsDelete.html create mode 100644 classes/RecordsQuery.html create mode 100644 classes/RecordsRead.html create mode 100644 classes/RecordsSubscribe.html create mode 100644 classes/RecordsWrite.html create mode 100644 classes/ResumableTaskStoreLevel.html create mode 100644 classes/Secp256k1.html create mode 100644 classes/Secp256r1.html create mode 100644 classes/TestDataGenerator.html create mode 100644 classes/Time.html create mode 100644 enums/DateSort.html create mode 100644 enums/DwnErrorCode.html create mode 100644 enums/DwnInterfaceName.html create mode 100644 enums/DwnMethodName.html create mode 100644 enums/EncryptionAlgorithm.html create mode 100644 enums/KeyDerivationScheme.html create mode 100644 enums/PermissionConditionPublication.html create mode 100644 enums/SortDirection.html create mode 100644 functions/authenticate.html create mode 100644 functions/executeUnlessAborted.html create mode 100644 hierarchy.html create mode 100644 index.html create mode 100644 interfaces/DataStore.html create mode 100644 interfaces/EventLog.html create mode 100644 interfaces/EventStream.html create mode 100644 interfaces/EventSubscription.html create mode 100644 interfaces/MessageStore.html create mode 100644 interfaces/MessageStoreOptions.html create mode 100644 interfaces/MessageSubscription.html create mode 100644 interfaces/ResumableTaskStore.html create mode 100644 interfaces/Signer.html create mode 100644 interfaces/TenantGate.html create mode 100644 types/ActiveTenantCheckResult.html create mode 100644 types/CreateFromOptions.html create mode 100644 types/DataStoreGetResult.html create mode 100644 types/DataStorePutResult.html create mode 100644 types/DerivedPrivateJwk.html create mode 100644 types/DwnConfig.html create mode 100644 types/EncryptionInput.html create mode 100644 types/EncryptionProperty.html create mode 100644 types/EqualFilter.html create mode 100644 types/EventListener.html create mode 100644 types/Filter.html create mode 100644 types/GenericMessage.html create mode 100644 types/GenericMessageReply.html create mode 100644 types/KeyEncryptionInput.html create mode 100644 types/KeyMaterial.html create mode 100644 types/ManagedResumableTask.html create mode 100644 types/MessageEvent.html create mode 100644 types/MessageSort.html create mode 100644 types/MessageSubscriptionHandler.html create mode 100644 types/MessagesFilter.html create mode 100644 types/MessagesPermissionScope.html create mode 100644 types/MessagesQueryMessage.html create mode 100644 types/MessagesQueryOptions.html create mode 100644 types/MessagesQueryReply.html create mode 100644 types/MessagesReadMessage.html create mode 100644 types/MessagesReadOptions.html create mode 100644 types/MessagesReadReply.html create mode 100644 types/MessagesReadReplyEntry.html create mode 100644 types/MessagesSubscribeDescriptor.html create mode 100644 types/MessagesSubscribeMessage.html create mode 100644 types/MessagesSubscribeOptions.html create mode 100644 types/MessagesSubscribeReply.html create mode 100644 types/OneOfFilter.html create mode 100644 types/Pagination.html create mode 100644 types/PaginationCursor.html create mode 100644 types/PermissionConditions.html create mode 100644 types/PermissionGrantData.html create mode 100644 types/PermissionRequestData.html create mode 100644 types/PermissionRevocationData.html create mode 100644 types/PermissionScope.html create mode 100644 types/Persona.html create mode 100644 types/PrivateJwk.html create mode 100644 types/ProtocolDefinition.html create mode 100644 types/ProtocolPermissionScope.html create mode 100644 types/ProtocolRuleSet.html create mode 100644 types/ProtocolTypes.html create mode 100644 types/ProtocolsConfigureDescriptor.html create mode 100644 types/ProtocolsConfigureMessage.html create mode 100644 types/ProtocolsConfigureOptions.html create mode 100644 types/ProtocolsQueryFilter.html create mode 100644 types/ProtocolsQueryMessage.html create mode 100644 types/ProtocolsQueryOptions.html create mode 100644 types/ProtocolsQueryReply.html create mode 100644 types/PublicJwk.html create mode 100644 types/QueryOptions.html create mode 100644 types/QueryResultEntry.html create mode 100644 types/RangeCriterion.html create mode 100644 types/RangeFilter.html create mode 100644 types/RecordSubscriptionHandler.html create mode 100644 types/RecordsDeleteMessage.html create mode 100644 types/RecordsDeleteOptions.html create mode 100644 types/RecordsPermissionScope.html create mode 100644 types/RecordsQueryMessage.html create mode 100644 types/RecordsQueryOptions.html create mode 100644 types/RecordsQueryReply.html create mode 100644 types/RecordsQueryReplyEntry.html create mode 100644 types/RecordsReadMessage.html create mode 100644 types/RecordsReadOptions.html create mode 100644 types/RecordsReadReply.html create mode 100644 types/RecordsSubscribeDescriptor.html create mode 100644 types/RecordsSubscribeMessage.html create mode 100644 types/RecordsSubscribeOptions.html create mode 100644 types/RecordsSubscribeReply.html create mode 100644 types/RecordsWriteDescriptor.html create mode 100644 types/RecordsWriteMessage.html create mode 100644 types/RecordsWriteOptions.html create mode 100644 types/RecordsWriteTagValue.html create mode 100644 types/RecordsWriteTags.html create mode 100644 types/SubscriptionReply.html create mode 100644 types/UnionMessageReply.html 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..e88e8ca77 --- /dev/null +++ b/assets/icons.js @@ -0,0 +1,18 @@ +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `""`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/assets/icons.svg b/assets/icons.svg new file mode 100644 index 000000000..e371b8b5d --- /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..7d7f77a07 --- /dev/null +++ b/assets/main.js @@ -0,0 +1,60 @@ +"use strict"; +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."}; +"use strict";(()=>{var Ce=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Ce(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!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)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),Ve(t,i,r,e)}function Ve(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?He(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function He(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var Be={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>Be[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",H="mouseup",J={x:0,y:0},me=!1,ne=!1,je=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",H="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(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 re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var qe=new U;Object.defineProperty(window,"app",{value:qe});fe();we();})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/assets/navigation.js b/assets/navigation.js new file mode 100644 index 000000000..3f0bf7128 --- /dev/null +++ b/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA5WaTXPbNhCG/4vOnrr21G7rm0dynNhxrUpOe8jkAJMrCWMIUADQiqaT/94hRUkgsFgAV73vPiCWWHxRX/8bWfhhRzejCbMwV9qOzkYbZlejmxHIZm3OD7//srJrMTobvXFZj27++Hl2itzKO62VHqsagmhHIwmfpAW9YBX8xdYYZaCTpCewK1VHMCcxzriTld5tLFfyViyV5na19kmIJc57hN0ENH9nrX9erSB8MsQS501Br7kxXMmxkjVvQ6bNq+BVF+2jaXe8lfadT7iGCoMOxDjjVgi1vRXiBSST9p5Zp+OVYMaAOQ89Q97FpUsc8zpEjHlNxUyYZXOrNHyGdxBh+FBPkzSwdYzSaiRhK5HQrUzEjJU0lkmLxh7EBKOrQxTQKVT0naxUDUhwLyRi+1JBw3uNJLyDtHdrbi3oWPZDT5L4WS0jA2IgU5yP9SPswvjuZyruYWvCqIetoWKewBi2RAqoFzJiqSIILBk883cDGun/QM7hzIAhZe2qOZR582oqzV/jOTpZKN5pxrzXaM15hjzWDL43YEhab8njmalWVlUKeZeIiWQqIbDi3v9ORnZLFjzCbs6XEmV4Dpq2f1akNo5SVvxYyQVfNhoZCKEnixgZ6EOdIs2gUrpGetYLGbETEIAtoAM5gxPpi6tmUPCSdcQMBlGwviOD9q/mRHo6laaYZs1eBbww80bNlBEjxZ5Dtbm8un67CGlHKSNex+M1Gf8Cxrb7k3uQoJnFtgGBheTxNZLp9tesfdgplB929c4ubIi4vLpGFm6UcBCTAH8T4TOwDQSG2Q9Ob28TwBwXhXQXYJTmGnJBz12zJsnrfTnYVKcRH4UNqwmlhjYK6q9GDghbhobB2GHFAcTOKUPIbWX5O+y94xVUb20HhLP6292mPfzgNo/865+/X1xduqcgDczCB63WwQvecwNDinisvnuw+KOGjmzmtEkxj44ksz0lQ91vKx62bwHSNySJ3QFqwZcB6SCkCKdTzCe5aYJOenI+barVBrTdxYEHR5L5vWHiAxfWLYoedpKSlG5+5caCRDiumCLhj5L3FN0CxavgOLRnDNUy1gw2Ikg2YklRH2GXGBKhI4P5xCxozgQCO0gpyhOTbAn1YDL1cZgnyd1npxsDAc/RMjnDa8gBJryJjFOcFegjk7UIR1zcmdmGwUfyUM1lnY5t80ptgqEdseXSu419pGowTxE3sgxhniIuWpKhI5fZnksSKXAsJdREAhxLCZXs/tFQTLyTVqexnSuXfTyoTWBfSipaFIi1uJXES/R9xfzE6/R9xXzyxQ5dKfazhOcFPg05UooyZUsuve8He8hJyWeMG23CAeDrSV745SJ4I5gnn9td37Wb0Dj2aMmn9td4NNcxlZDf1f67TQru+vL56LpTuN5MQRslsYdrf05GRzf2+Tv6w63cBBZccnRMB45cZipXuC2XPmsEzCHY+3hyLu2lDY6xOjGXdLotjU/vlLe8ncgEHzWWtxCZ4qPG7Ba6bQk+IWOeMm4qLyU7uGFQKh8le7hhELrYIZYktftsjU0NByFFoDpa0r/+mdsLC3Qv5esp3ozJJYzbG2qNzFZDNYuFDz9HSlK6W/OMI1TUmNdC/9kiMqwxTxE38q4xTyY3sQDgrkw2VeGIpYRKJ6Jk7LshaGUHhmIiWlO4K5NNHPxCRwGTTmvBqc+JoJKafebzv5/F1+24s7QNOsGlZzI/jE516YnMD6OSXnYec783JrPuuUrYdLZdSwmVzrJrKaG+sOU/TDTkwx48hVzyUVs9xXOXLnQUBIYU8YvkSlJ3yoEhRWSNXYG07X/2nBwuGtn9/86cu/qQdf2bg4EfUDUWvkgBxty+Km2hxnCYL8B++x+lw3uqOyoAAA==" \ No newline at end of file diff --git a/assets/search.js b/assets/search.js new file mode 100644 index 000000000..888562197 --- /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..9d619a641 --- /dev/null +++ b/assets/style.css @@ -0,0 +1,1448 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +*:focus-visible, +.tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +footer > p { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} +a.tsd-anchor-link { + color: var(--color-text); +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; +} + +.tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; +} + +.tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-navigation .tsd-nav-link { + display: none; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation-section { + margin-left: 10px; +} +.tsd-page-navigation-section > summary { + padding: 0.25rem; +} +.tsd-page-navigation-section > div { + margin-left: 20px; +} +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; + vertical-align: text-top; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} +.tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; +} +.tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/classes/AllowAllTenantGate.html b/classes/AllowAllTenantGate.html new file mode 100644 index 000000000..51b69a5b7 --- /dev/null +++ b/classes/AllowAllTenantGate.html @@ -0,0 +1,5 @@ +AllowAllTenantGate | DWN-SDK Documentation - v0.4.2

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..1bfec0f00 --- /dev/null +++ b/classes/Cid.html @@ -0,0 +1,17 @@ +Cid | DWN-SDK Documentation - v0.4.2

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

    +

    codec is not supported

    +

    encoding fails

    +

    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..3836f7d23 --- /dev/null +++ b/classes/DataStoreLevel.html @@ -0,0 +1,27 @@ +DataStoreLevel | DWN-SDK Documentation - v0.4.2

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..0be337486 --- /dev/null +++ b/classes/DataStream.html @@ -0,0 +1,13 @@ +DataStream | DWN-SDK Documentation - v0.4.2

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..dc0a17b93 --- /dev/null +++ b/classes/Dwn.html @@ -0,0 +1,16 @@ +Dwn | DWN-SDK Documentation - v0.4.2

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..3e0ecb4a3 --- /dev/null +++ b/classes/DwnConstant.html @@ -0,0 +1,6 @@ +DwnConstant | DWN-SDK Documentation - v0.4.2

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..3552254ff --- /dev/null +++ b/classes/DwnError.html @@ -0,0 +1,4 @@ +DwnError | DWN-SDK Documentation - v0.4.2

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..b50740d1c --- /dev/null +++ b/classes/Encoder.html @@ -0,0 +1,11 @@ +Encoder | DWN-SDK Documentation - v0.4.2

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..bb7779890 --- /dev/null +++ b/classes/Encryption.html @@ -0,0 +1,17 @@ +Encryption | DWN-SDK Documentation - v0.4.2

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..ae4a76645 --- /dev/null +++ b/classes/EventEmitterStream.html @@ -0,0 +1,7 @@ +EventEmitterStream | DWN-SDK Documentation - v0.4.2

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..859a99b52 --- /dev/null +++ b/classes/EventLogLevel.html @@ -0,0 +1,28 @@ +EventLogLevel | DWN-SDK Documentation - v0.4.2

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/HdKey.html b/classes/HdKey.html new file mode 100644 index 000000000..d87a979fb --- /dev/null +++ b/classes/HdKey.html @@ -0,0 +1,14 @@ +HdKey | DWN-SDK Documentation - v0.4.2

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..fa59ecf8a --- /dev/null +++ b/classes/Jws.html @@ -0,0 +1,18 @@ +Jws | DWN-SDK Documentation - v0.4.2

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..92786c28f --- /dev/null +++ b/classes/Message.html @@ -0,0 +1,46 @@ +Message | DWN-SDK Documentation - v0.4.2

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;
      }
      • OptionaldelegatedGrant?: DataEncodedRecordsWriteMessage
      • descriptor: Descriptor
      • OptionalpermissionGrantId?: string
      • OptionalprotocolRole?: 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
    • OptionaladditionalPayloadProperties: {
          delegatedGrantId?: string;
          permissionGrantId?: string;
          protocolRole?: string;
      }
      • OptionaldelegatedGrantId?: string
      • OptionalpermissionGrantId?: string
      • OptionalprotocolRole?: 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

    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..564cfe9fe --- /dev/null +++ b/classes/MessageStoreLevel.html @@ -0,0 +1,26 @@ +MessageStoreLevel | DWN-SDK Documentation - v0.4.2

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/MessagesQuery.html b/classes/MessagesQuery.html new file mode 100644 index 000000000..defa1e315 --- /dev/null +++ b/classes/MessagesQuery.html @@ -0,0 +1,17 @@ +MessagesQuery | DWN-SDK Documentation - v0.4.2

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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

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

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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

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

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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

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

A class representing a Permission Grant for a more convenient abstraction.

+

Properties

Optional conditions that must be met when the grant is used.

+
dateExpires: string

Timestamp at which this grant will no longer be active.

+
dateGranted: string

The date at which the grant was given.

+
delegated?: boolean

Whether this grant is delegated or not. If true, the grantedTo will be able to act as the grantedTo within the scope of this grant.

+
description?: string

Optional string that communicates what the grant would be used for

+
grantee: string

The grantee of the permission.

+
grantor: string

The grantor of the permission.

+
id: string

The ID of the permission grant, which is the record ID DWN message.

+
requestId?: string

Optional CID of a permission request. This is optional because grants may be given without being officially requested

+

The scope of the allowed access.

+

Methods

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

A class representing a Permission Request for a more convenient abstraction.

+

Properties

Optional conditions that must be met when the requested grant is used.

+
delegated?: boolean

Whether the requested grant is delegated or not. +If true, the requestor will be able to act as the grantor of the permission within the scope of the requested grant.

+
description?: string

Optional string that communicates what the requested grant would be used for.

+
id: string

The ID of the permission request, which is the record ID DWN message.

+
requester: string

The requester for of the permission.

+

The scope of the allowed access.

+

Methods

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

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<{
        dataEncodedMessage: DataEncodedRecordsWriteMessage;
        permissionRequestBytes: Uint8Array;
        permissionRequestData: PermissionRequestData;
        recordsWrite: RecordsWrite;
    }>

  • Convenience method to create a permission revocation.

    +

    Parameters

    • options: PermissionRevocationCreateOptions

    Returns Promise<{
        dataEncodedMessage: DataEncodedRecordsWriteMessage;
        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.

    +

    if PermissionGrant does not exist

    +
  • Gets the scope from the given permission record. +If the record is a revocation, the scope is fetched from the grant that is being revoked.

    +

    Parameters

    • tenant: string
    • messageStore: MessageStore

      The message store to fetch the grant for a revocation.

      +
    • incomingMessage: DataEncodedRecordsWriteMessage

    Returns Promise<PermissionScope>

  • 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/Poller.html b/classes/Poller.html new file mode 100644 index 000000000..894987dd0 --- /dev/null +++ b/classes/Poller.html @@ -0,0 +1,12 @@ +Poller | DWN-SDK Documentation - v0.4.2

Constructors

Properties

pollRetrySleep: number = 20

The interval in milliseconds to wait before retrying the delegate function.

+
pollTimeout: number = 2000

The maximum time in milliseconds to wait before timing out the delegate function.

+

Methods

  • Polls the delegate function until it succeeds or the timeout is exceeded.

    +

    Type Parameters

    • T

    Parameters

    • delegate: (() => Promise<T>)

      a function that returns a promise and may throw.

      +
        • (): Promise<T>
        • Returns Promise<T>

    • retrySleep: number = Poller.pollRetrySleep

      the interval in milliseconds to wait before retrying the delegate function.

      +
    • timeout: number = Poller.pollTimeout

      the maximum time in milliseconds to wait before timing out the delegate function.

      +

    Returns Promise<T>

    Operation timed out if the timeout is exceeded.

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

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..000395910 --- /dev/null +++ b/classes/Protocols.html @@ -0,0 +1,7 @@ +Protocols | DWN-SDK Documentation - v0.4.2

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..51cb1c19f --- /dev/null +++ b/classes/ProtocolsConfigure.html @@ -0,0 +1,17 @@ +ProtocolsConfigure | DWN-SDK Documentation - v0.4.2

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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

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

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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

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

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

      +
    • OptionaldateSort: DateSort

    Returns Filter

    a generic Filter able to be used with MessageStore.

    +
  • This will create individual keys for each of the tag filters that look like tag.tag_filter_property

    +

    Parameters

    • tags: {
          [property: string]: RecordsWriteTagsFilter;
      }
      • [property: string]: RecordsWriteTagsFilter

    Returns Filter

  • 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

    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.

      +
    • OptionalownerSignaturePayload: 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..17bb9fc62 --- /dev/null +++ b/classes/RecordsDelete.html @@ -0,0 +1,21 @@ +RecordsDelete | DWN-SDK Documentation - v0.4.2

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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

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

A class representing a RecordsQuery DWN message.

+

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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 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..b8af6b983 --- /dev/null +++ b/classes/RecordsRead.html @@ -0,0 +1,22 @@ +RecordsRead | DWN-SDK Documentation - v0.4.2

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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

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

A class representing a RecordsSubscribe DWN message.

+

Hierarchy

Accessors

  • get author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • get message(): M
  • Valid JSON message representing this DWN message.

    +

    Returns M

  • get signaturePayload(): undefined | GenericSignaturePayload
  • Decoded payload of the signature of this message.

    +

    Returns undefined | GenericSignaturePayload

  • 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

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

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 author(): undefined | string
  • DID of the logical author of this message. +NOTE: we say "logical" author because a message can be signed by a delegate of the actual author, +in which case the author DID would not be the same as the signer/delegate DID, +but be the DID of the grantor (grantedBy) of the delegated grant presented.

    +

    Returns undefined | string

  • 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
  • Decoded payload of the signature of this message.

    +

    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;
      }
      • OptionaldelegatedGrant?: DataEncodedRecordsWriteMessage
      • OptionalpermissionGrantId?: string
      • OptionalprotocolRole?: 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
    • Optionalsigners: 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
      • OptionaldelegatedGrantId?: string
      • descriptorCid: string
      • encryption: undefined | EncryptionProperty
      • OptionalpermissionGrantId?: string
      • OptionalprotocolRole?: 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..c08361df9 --- /dev/null +++ b/classes/ResumableTaskStoreLevel.html @@ -0,0 +1,41 @@ +ResumableTaskStoreLevel | DWN-SDK Documentation - v0.4.2

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.

    +

    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..41e599454 --- /dev/null +++ b/classes/Secp256k1.html @@ -0,0 +1,27 @@ +Secp256k1 | DWN-SDK Documentation - v0.4.2

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..21314302a --- /dev/null +++ b/classes/Secp256r1.html @@ -0,0 +1,20 @@ +Secp256r1 | DWN-SDK Documentation - v0.4.2

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..de23d74a5 --- /dev/null +++ b/classes/TestDataGenerator.html @@ -0,0 +1,59 @@ +TestDataGenerator | DWN-SDK Documentation - v0.4.2

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

  • 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

    • Optionalinput: GenerateGrantCreateInput

    Returns Promise<GenerateGrantCreateOutput>

  • Parameters

    • input: GenerateMessagesQueryInput

    Returns Promise<GenerateMessagesQueryOutput>

  • Parameters

    • input: GenerateMessagesReadInput

    Returns Promise<GenerateMessagesReadOutput>

  • Generates a MessagesSubscribe message for testing.

    +

    Parameters

    • Optionalinput: GenerateMessagesSubscribeInput

    Returns Promise<GenerateMessagesSubscribeOutput>

  • 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
      • OptionalprotocolContextDerivedPublicJwk?: PublicJwk
      • OptionalprotocolContextDerivingRootKeyId?: 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.

        +
      • OptionalprotocolParentContextId?: string
      • protocolPath: string
      • Optionalrecipient?: 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

    • Optionalinput: GenerateProtocolsConfigureInput

    Returns Promise<GenerateProtocolsConfigureOutput>

  • Generates a ProtocolsQuery message for testing.

    +

    Parameters

    • Optionalinput: GenerateProtocolsQueryInput

    Returns Promise<GenerateProtocolsQueryOutput>

  • Generates a RecordsDelete for testing.

    +

    Parameters

    • Optionalinput: GenerateRecordsDeleteInput

    Returns Promise<GenerateRecordsDeleteOutput>

  • Generates a RecordsQuery message for testing.

    +

    Parameters

    • Optionalinput: GenerateRecordsQueryInput

    Returns Promise<GenerateRecordsQueryOutput>

  • Generates a RecordsSubscribe message for testing.

    +

    Parameters

    • Optionalinput: GenerateRecordsSubscribeInput

    Returns Promise<GenerateRecordsSubscribeOutput>

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

    +

    Parameters

    • Optionalinput: 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

    • Optionaloptions: {
          day?: number;
          hour?: number;
          microsecond?: number;
          millisecond?: number;
          minute?: number;
          month?: number;
          second?: number;
          year?: number;
      }
      • Optionalday?: number
      • Optionalhour?: number
      • Optionalmicrosecond?: number
      • Optionalmillisecond?: number
      • Optionalminute?: number
      • Optionalmonth?: number
      • Optionalsecond?: number
      • Optionalyear?: 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..b8753791d --- /dev/null +++ b/classes/Time.html @@ -0,0 +1,24 @@ +Time | DWN-SDK Documentation - v0.4.2

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
    • Optionaltimestamp: 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.

      +
      • Optionalday?: number
      • Optionalhour?: number
      • Optionalmicrosecond?: number
      • Optionalmillisecond?: number
      • Optionalminute?: number
      • Optionalmonth?: number
      • Optionalsecond?: number
      • Optionalyear?: 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

    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..838abc904 --- /dev/null +++ b/enums/DateSort.html @@ -0,0 +1,5 @@ +DateSort | DWN-SDK Documentation - v0.4.2

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..f3e03d206 --- /dev/null +++ b/enums/DwnErrorCode.html @@ -0,0 +1,149 @@ +DwnErrorCode | DWN-SDK Documentation - v0.4.2

Enumeration DwnErrorCode

DWN SDK error codes.

+

Enumeration Members

AuthenticateDescriptorCidMismatch +AuthenticateJwsMissing +AuthenticationMoreThanOneSignatureNotSupported +AuthorizationAuthorNotOwner +AuthorizationNotGrantedToAuthor +ComputeCidCodecNotSupported +ComputeCidMultihashNotSupported +Ed25519InvalidJwk +EventEmitterStreamNotOpenError +GeneralJwsVerifierGetPublicKeyNotFound +GeneralJwsVerifierInvalidSignature +GrantAuthorizationGrantExpired +GrantAuthorizationGrantMissing +GrantAuthorizationGrantNotYetActive +GrantAuthorizationGrantRevoked +GrantAuthorizationInterfaceMismatch +GrantAuthorizationMethodMismatch +GrantAuthorizationNotGrantedForTenant +GrantAuthorizationNotGrantedToAuthor +HdKeyDerivationPathInvalid +IndexInvalidCursorSortProperty +IndexInvalidCursorValueType +IndexInvalidSortPropertyInMemory +IndexMissingIndexableProperty +JwsDecodePlainObjectPayloadInvalid +JwsVerifySignatureUnsupportedCrv +MessageGetInvalidCid +MessagesGrantAuthorizationMismatchedProtocol +MessagesQueryAuthorizationFailed +MessagesReadAuthorizationFailed +MessagesReadInvalidCid +MessagesReadVerifyScopeFailed +MessagesSubscribeAuthorizationFailed +MessagesSubscribeEventStreamUnimplemented +ParseCidCodecNotSupported +ParseCidMultihashNotSupported +PermissionsProtocolCreateGrantRecordsScopeMissingProtocol +PermissionsProtocolCreateRequestRecordsScopeMissingProtocol +PermissionsProtocolGetScopeInvalidProtocol +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 +ProtocolAuthorizationRoleMissingRecipient +ProtocolAuthorizationTagsInvalidSchema +ProtocolsConfigureDuplicateActorInRuleSet +ProtocolsConfigureDuplicateRoleInRuleSet +ProtocolsConfigureInvalidActionDeleteWithoutCreate +ProtocolsConfigureInvalidActionMissingOf +ProtocolsConfigureInvalidActionOfNotAllowed +ProtocolsConfigureInvalidActionUpdateWithoutCreate +ProtocolsConfigureInvalidRecipientOfAction +ProtocolsConfigureInvalidRuleSetRecordType +ProtocolsConfigureInvalidSize +ProtocolsConfigureInvalidTagSchema +ProtocolsConfigureRecordNestingDepthExceeded +ProtocolsConfigureRoleDoesNotExistAtGivenPath +ProtocolsQueryUnauthorized +RecordsAuthorDelegatedGrantAndIdExistenceMismatch +RecordsAuthorDelegatedGrantCidMismatch +RecordsAuthorDelegatedGrantGrantedToAndOwnerSignatureMismatch +RecordsAuthorDelegatedGrantNotADelegatedGrant +RecordsDecryptNoMatchingKeyEncryptedFound +RecordsDeleteAuthorizationFailed +RecordsDerivePrivateKeyUnSupportedCurve +RecordsGrantAuthorizationConditionPublicationProhibited +RecordsGrantAuthorizationConditionPublicationRequired +RecordsGrantAuthorizationDeleteProtocolScopeMismatch +RecordsGrantAuthorizationQueryOrSubscribeProtocolScopeMismatch +RecordsGrantAuthorizationScopeContextIdMismatch +RecordsGrantAuthorizationScopeProtocolMismatch +RecordsGrantAuthorizationScopeProtocolPathMismatch +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 +RecordsWriteGetNewestWriteRecordNotFound +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 +UrlSchemaNotNormalized +

Enumeration Members

AuthenticateDescriptorCidMismatch: "AuthenticateDescriptorCidMismatch"
AuthenticateJwsMissing: "AuthenticateJwsMissing"
AuthenticationMoreThanOneSignatureNotSupported: "AuthenticationMoreThanOneSignatureNotSupported"
AuthorizationAuthorNotOwner: "AuthorizationAuthorNotOwner"
AuthorizationNotGrantedToAuthor: "AuthorizationNotGrantedToAuthor"
ComputeCidCodecNotSupported: "ComputeCidCodecNotSupported"
ComputeCidMultihashNotSupported: "ComputeCidMultihashNotSupported"
Ed25519InvalidJwk: "Ed25519InvalidJwk"
EventEmitterStreamNotOpenError: "EventEmitterStreamNotOpenError"
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"
MessagesGrantAuthorizationMismatchedProtocol: "EventsGrantAuthorizationMismatchedProtocol"
MessagesQueryAuthorizationFailed: "MessagesQueryAuthorizationFailed"
MessagesReadAuthorizationFailed: "MessagesReadAuthorizationFailed"
MessagesReadInvalidCid: "MessagesReadInvalidCid"
MessagesReadVerifyScopeFailed: "MessagesReadVerifyScopeFailed"
MessagesSubscribeAuthorizationFailed: "MessagesSubscribeAuthorizationFailed"
MessagesSubscribeEventStreamUnimplemented: "MessagesSubscribeEventStreamUnimplemented"
ParseCidCodecNotSupported: "ParseCidCodecNotSupported"
ParseCidMultihashNotSupported: "ParseCidMultihashNotSupported"
PermissionsProtocolCreateGrantRecordsScopeMissingProtocol: "PermissionsProtocolCreateGrantRecordsScopeMissingProtocol"
PermissionsProtocolCreateRequestRecordsScopeMissingProtocol: "PermissionsProtocolCreateRequestRecordsScopeMissingProtocol"
PermissionsProtocolGetScopeInvalidProtocol: "PermissionsProtocolGetScopeInvalidProtocol"
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"
ProtocolAuthorizationRoleMissingRecipient: "ProtocolAuthorizationRoleMissingRecipient"
ProtocolAuthorizationTagsInvalidSchema: "ProtocolAuthorizationTagsInvalidSchema"
ProtocolsConfigureDuplicateActorInRuleSet: "ProtocolsConfigureDuplicateActorInRuleSet"
ProtocolsConfigureDuplicateRoleInRuleSet: "ProtocolsConfigureDuplicateRoleInRuleSet"
ProtocolsConfigureInvalidActionDeleteWithoutCreate: "ProtocolsConfigureInvalidActionDeleteWithoutCreate"
ProtocolsConfigureInvalidActionMissingOf: "ProtocolsConfigureInvalidActionMissingOf"
ProtocolsConfigureInvalidActionOfNotAllowed: "ProtocolsConfigureInvalidActionOfNotAllowed"
ProtocolsConfigureInvalidActionUpdateWithoutCreate: "ProtocolsConfigureInvalidActionUpdateWithoutCreate"
ProtocolsConfigureInvalidRecipientOfAction: "ProtocolsConfigureInvalidRecipientOfAction"
ProtocolsConfigureInvalidRuleSetRecordType: "ProtocolsConfigureInvalidRuleSetRecordType"
ProtocolsConfigureInvalidSize: "ProtocolsConfigureInvalidSize"
ProtocolsConfigureInvalidTagSchema: "ProtocolsConfigureInvalidTagSchema"
ProtocolsConfigureRecordNestingDepthExceeded: "ProtocolsConfigureRecordNestingDepthExceeded"
ProtocolsConfigureRoleDoesNotExistAtGivenPath: "ProtocolsConfigureRoleDoesNotExistAtGivenPath"
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"
RecordsGrantAuthorizationScopeProtocolMismatch: "RecordsGrantAuthorizationScopeProtocolMismatch"
RecordsGrantAuthorizationScopeProtocolPathMismatch: "RecordsGrantAuthorizationScopeProtocolPathMismatch"
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"
RecordsWriteGetNewestWriteRecordNotFound: "RecordsWriteGetNewestWriteRecordNotFound"
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"
UrlSchemaNotNormalized: "UrlSchemaNotNormalized"
\ No newline at end of file diff --git a/enums/DwnInterfaceName.html b/enums/DwnInterfaceName.html new file mode 100644 index 000000000..eb5503d8b --- /dev/null +++ b/enums/DwnInterfaceName.html @@ -0,0 +1,4 @@ +DwnInterfaceName | DWN-SDK Documentation - v0.4.2

Enumeration DwnInterfaceName

Enumeration Members

Enumeration Members

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..024661706 --- /dev/null +++ b/enums/DwnMethodName.html @@ -0,0 +1,7 @@ +DwnMethodName | DWN-SDK Documentation - v0.4.2

Enumeration DwnMethodName

Enumeration Members

Enumeration Members

Configure: "Configure"
Delete: "Delete"
Query: "Query"
Read: "Read"
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..e81d74136 --- /dev/null +++ b/enums/EncryptionAlgorithm.html @@ -0,0 +1,3 @@ +EncryptionAlgorithm | DWN-SDK Documentation - v0.4.2

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..c835c27a0 --- /dev/null +++ b/enums/KeyDerivationScheme.html @@ -0,0 +1,7 @@ +KeyDerivationScheme | DWN-SDK Documentation - v0.4.2

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/PermissionConditionPublication.html b/enums/PermissionConditionPublication.html new file mode 100644 index 000000000..12b669432 --- /dev/null +++ b/enums/PermissionConditionPublication.html @@ -0,0 +1,3 @@ +PermissionConditionPublication | DWN-SDK Documentation - v0.4.2

Enumeration PermissionConditionPublication

Enumeration Members

Enumeration Members

Prohibited: "Prohibited"
Required: "Required"
\ No newline at end of file diff --git a/enums/SortDirection.html b/enums/SortDirection.html new file mode 100644 index 000000000..b67751213 --- /dev/null +++ b/enums/SortDirection.html @@ -0,0 +1,3 @@ +SortDirection | DWN-SDK Documentation - v0.4.2

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..e3c14ff61 --- /dev/null +++ b/functions/authenticate.html @@ -0,0 +1,3 @@ +authenticate | DWN-SDK Documentation - v0.4.2
  • Verifies all the signature(s) within the authorization property.

    +

    Parameters

    • authorizationModel: undefined | AuthorizationModel
    • didResolver: DidResolver

    Returns Promise<void>

    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..fc7e799de --- /dev/null +++ b/functions/executeUnlessAborted.html @@ -0,0 +1,2 @@ +executeUnlessAborted | DWN-SDK Documentation - v0.4.2

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..48d595b24 --- /dev/null +++ b/hierarchy.html @@ -0,0 +1 @@ +DWN-SDK Documentation - v0.4.2
\ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000..0e6a64f29 --- /dev/null +++ b/index.html @@ -0,0 +1,138 @@ +DWN-SDK Documentation - v0.4.2

DWN-SDK Documentation - v0.4.2

Index

Enumerations

Classes

Interfaces

Type Aliases

ActiveTenantCheckResult +CreateFromOptions +DataStoreGetResult +DataStorePutResult +DerivedPrivateJwk +DwnConfig +EncryptionInput +EncryptionProperty +EqualFilter +EventListener +Filter +GenericMessage +GenericMessageReply +KeyEncryptionInput +KeyMaterial +ManagedResumableTask +MessageEvent +MessageSort +MessageSubscriptionHandler +MessagesFilter +MessagesPermissionScope +MessagesQueryMessage +MessagesQueryOptions +MessagesQueryReply +MessagesReadMessage +MessagesReadOptions +MessagesReadReply +MessagesReadReplyEntry +MessagesSubscribeDescriptor +MessagesSubscribeMessage +MessagesSubscribeOptions +MessagesSubscribeReply +OneOfFilter +Pagination +PaginationCursor +PermissionConditions +PermissionGrantData +PermissionRequestData +PermissionRevocationData +PermissionScope +Persona +PrivateJwk +ProtocolDefinition +ProtocolPermissionScope +ProtocolRuleSet +ProtocolTypes +ProtocolsConfigureDescriptor +ProtocolsConfigureMessage +ProtocolsConfigureOptions +ProtocolsQueryFilter +ProtocolsQueryMessage +ProtocolsQueryOptions +ProtocolsQueryReply +PublicJwk +QueryOptions +QueryResultEntry +RangeCriterion +RangeFilter +RecordSubscriptionHandler +RecordsDeleteMessage +RecordsDeleteOptions +RecordsPermissionScope +RecordsQueryMessage +RecordsQueryOptions +RecordsQueryReply +RecordsQueryReplyEntry +RecordsReadMessage +RecordsReadOptions +RecordsReadReply +RecordsSubscribeDescriptor +RecordsSubscribeMessage +RecordsSubscribeOptions +RecordsSubscribeReply +RecordsWriteDescriptor +RecordsWriteMessage +RecordsWriteOptions +RecordsWriteTagValue +RecordsWriteTags +SubscriptionReply +UnionMessageReply +

Functions

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

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

+
interface DataStore {
    clear(): Promise<void>;
    close(): Promise<void>;
    delete(tenant: string, recordId: string, dataCid: string): Promise<void>;
    get(tenant: string, recordId: string, dataCid: string): Promise<undefined | DataStoreGetResult>;
    open(): Promise<void>;
    put(tenant: string, recordId: string, dataCid: string, dataStream: Readable): 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..ac4b2d90b --- /dev/null +++ b/interfaces/EventLog.html @@ -0,0 +1,25 @@ +EventLog | DWN-SDK Documentation - v0.4.2
interface EventLog {
    append(tenant: string, messageCid: string, indexes: KeyValues): Promise<void>;
    clear(): Promise<void>;
    close(): Promise<void>;
    deleteEventsByCid(tenant: string, messageCids: string[]): Promise<void>;
    getEvents(tenant: string, cursor?: PaginationCursor): Promise<{
        cursor?: PaginationCursor;
        events: string[];
    }>;
    open(): Promise<void>;
    queryEvents(tenant: string, filters: Filter[], cursor?: PaginationCursor): 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..41c3aba3c --- /dev/null +++ b/interfaces/EventStream.html @@ -0,0 +1,6 @@ +EventStream | DWN-SDK Documentation - v0.4.2

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

+
interface EventStream {
    close(): Promise<void>;
    emit(tenant: string, event: MessageEvent, indexes: KeyValues): void;
    open(): Promise<void>;
    subscribe(tenant: string, id: string, listener: EventListener): 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..8d853f56b --- /dev/null +++ b/interfaces/EventSubscription.html @@ -0,0 +1,3 @@ +EventSubscription | DWN-SDK Documentation - v0.4.2

Interface EventSubscription

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

Properties

Properties

close: (() => 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..195545460 --- /dev/null +++ b/interfaces/MessageStore.html @@ -0,0 +1,18 @@ +MessageStore | DWN-SDK Documentation - v0.4.2

Interface MessageStore

interface MessageStore {
    clear(): Promise<void>;
    close(): Promise<void>;
    delete(tenant: string, cid: string, options?: MessageStoreOptions): Promise<void>;
    get(tenant: string, cid: string, options?: MessageStoreOptions): Promise<undefined | GenericMessage>;
    open(): Promise<void>;
    put(tenant: string, message: GenericMessage, indexes: KeyValues, options?: MessageStoreOptions): Promise<void>;
    query(tenant: string, filters: Filter[], messageSort?: MessageSort, pagination?: Pagination, options?: MessageStoreOptions): 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..218b3f7dc --- /dev/null +++ b/interfaces/MessageStoreOptions.html @@ -0,0 +1,2 @@ +MessageStoreOptions | DWN-SDK Documentation - v0.4.2

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..18b996352 --- /dev/null +++ b/interfaces/MessageSubscription.html @@ -0,0 +1,3 @@ +MessageSubscription | DWN-SDK Documentation - v0.4.2

Interface MessageSubscription

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

Properties

Properties

close: (() => 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..be46814f0 --- /dev/null +++ b/interfaces/ResumableTaskStore.html @@ -0,0 +1,57 @@ +ResumableTaskStore | DWN-SDK Documentation - v0.4.2

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: string): Promise<void>;
    extend(taskId: string, timeoutInSeconds: number): Promise<void>;
    grab(count: number): Promise<ManagedResumableTask[]>;
    open(): Promise<void>;
    read(taskId: string): Promise<undefined | ManagedResumableTask>;
    register(task: any, timeoutInSeconds: number): 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.

    +

    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..d63d79972 --- /dev/null +++ b/interfaces/Signer.html @@ -0,0 +1,16 @@ +Signer | DWN-SDK Documentation - v0.4.2

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

+
interface Signer {
    algorithm: string;
    keyId: string;
    sign(content: Uint8Array): 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..2e2c65a13 --- /dev/null +++ b/interfaces/TenantGate.html @@ -0,0 +1,4 @@ +TenantGate | DWN-SDK Documentation - v0.4.2

An interface that gates tenant access to the DWN.

+
interface TenantGate {
    isActiveTenant(did: string): 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..40b2d973f --- /dev/null +++ b/types/ActiveTenantCheckResult.html @@ -0,0 +1,4 @@ +ActiveTenantCheckResult | DWN-SDK Documentation - v0.4.2

Type Alias ActiveTenantCheckResult

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

The result of the isActiveTenant() call.

+

Type declaration

  • Optionaldetail?: 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..4a7c738db --- /dev/null +++ b/types/CreateFromOptions.html @@ -0,0 +1,4 @@ +CreateFromOptions | DWN-SDK Documentation - v0.4.2

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

  • OptionalattestationSigners?: Signer[]
  • Optionaldata?: Uint8Array
  • OptionaldataFormat?: string

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

    +
  • OptionaldatePublished?: string
  • OptionaldelegatedGrant?: DataEncodedRecordsWriteMessage

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

    +
  • OptionalencryptionInput?: EncryptionInput
  • OptionalmessageTimestamp?: string
  • OptionalprotocolRole?: string
  • Optionalpublished?: boolean
  • recordsWriteMessage: RecordsWriteMessage
  • Optionalsigner?: Signer

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

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

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..f2e81e965 --- /dev/null +++ b/types/DataStorePutResult.html @@ -0,0 +1,3 @@ +DataStorePutResult | DWN-SDK Documentation - v0.4.2

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..3b690b83e --- /dev/null +++ b/types/DerivedPrivateJwk.html @@ -0,0 +1 @@ +DerivedPrivateJwk | DWN-SDK Documentation - v0.4.2

Type Alias DerivedPrivateJwk

DerivedPrivateJwk: {
    derivationPath?: string[];
    derivationScheme: KeyDerivationScheme;
    derivedPrivateKey: PrivateJwk;
    rootKeyId: string;
}
\ No newline at end of file diff --git a/types/DwnConfig.html b/types/DwnConfig.html new file mode 100644 index 000000000..1d5b36819 --- /dev/null +++ b/types/DwnConfig.html @@ -0,0 +1,2 @@ +DwnConfig | DWN-SDK Documentation - v0.4.2

Type Alias DwnConfig

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

DWN configuration.

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

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

  • Optionalalgorithm?: 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..8791d27ec --- /dev/null +++ b/types/EncryptionProperty.html @@ -0,0 +1 @@ +EncryptionProperty | DWN-SDK Documentation - v0.4.2

Type Alias EncryptionProperty

EncryptionProperty: {
    algorithm: EncryptionAlgorithm;
    initializationVector: string;
    keyEncryption: EncryptedKey[];
}
\ No newline at end of file diff --git a/types/EqualFilter.html b/types/EqualFilter.html new file mode 100644 index 000000000..0f635e402 --- /dev/null +++ b/types/EqualFilter.html @@ -0,0 +1 @@ +EqualFilter | DWN-SDK Documentation - v0.4.2

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..1644e9517 --- /dev/null +++ b/types/EventListener.html @@ -0,0 +1 @@ +EventListener | DWN-SDK Documentation - v0.4.2

Type Alias EventListener

EventListener: ((tenant: string, event: MessageEvent, indexes: KeyValues) => void)
\ No newline at end of file diff --git a/types/Filter.html b/types/Filter.html new file mode 100644 index 000000000..5bf6057c8 --- /dev/null +++ b/types/Filter.html @@ -0,0 +1 @@ +Filter | DWN-SDK Documentation - v0.4.2
Filter: {
    [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..26fc9f3aa --- /dev/null +++ b/types/GenericMessage.html @@ -0,0 +1,2 @@ +GenericMessage | DWN-SDK Documentation - v0.4.2

Type Alias GenericMessage

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

Intersection type for all concrete message types.

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

Type Alias GenericMessageReply

GenericMessageReply: {
    status: Status;
}
\ No newline at end of file diff --git a/types/KeyEncryptionInput.html b/types/KeyEncryptionInput.html new file mode 100644 index 000000000..2633510c1 --- /dev/null +++ b/types/KeyEncryptionInput.html @@ -0,0 +1,7 @@ +KeyEncryptionInput | DWN-SDK Documentation - v0.4.2

Type Alias KeyEncryptionInput

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

Input that specifies how a symmetric key is encrypted.

+

Type declaration

  • Optionalalgorithm?: 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..be819442c --- /dev/null +++ b/types/KeyMaterial.html @@ -0,0 +1,2 @@ +KeyMaterial | DWN-SDK Documentation - v0.4.2

Type Alias KeyMaterial

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

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

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

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..a81f05e22 --- /dev/null +++ b/types/MessageEvent.html @@ -0,0 +1,3 @@ +MessageEvent | DWN-SDK Documentation - v0.4.2

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..fa2d99ab6 --- /dev/null +++ b/types/MessageSort.html @@ -0,0 +1 @@ +MessageSort | DWN-SDK Documentation - v0.4.2

Type Alias MessageSort

MessageSort: {
    dateCreated?: SortDirection;
    datePublished?: SortDirection;
    messageTimestamp?: SortDirection;
}
\ No newline at end of file diff --git a/types/MessageSubscriptionHandler.html b/types/MessageSubscriptionHandler.html new file mode 100644 index 000000000..b0abe1724 --- /dev/null +++ b/types/MessageSubscriptionHandler.html @@ -0,0 +1 @@ +MessageSubscriptionHandler | DWN-SDK Documentation - v0.4.2

Type Alias MessageSubscriptionHandler

MessageSubscriptionHandler: ((event: MessageEvent) => void)
\ No newline at end of file diff --git a/types/MessagesFilter.html b/types/MessagesFilter.html new file mode 100644 index 000000000..ec9c2187f --- /dev/null +++ b/types/MessagesFilter.html @@ -0,0 +1,2 @@ +MessagesFilter | DWN-SDK Documentation - v0.4.2

Type Alias MessagesFilter

MessagesFilter: {
    interface?: string;
    messageTimestamp?: RangeCriterion;
    method?: string;
    protocol?: string;
}

filters used when filtering for any type of Message across interfaces

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

Type Alias MessagesPermissionScope

MessagesPermissionScope: {
    interface: Messages;
    method: Query | Read | Subscribe;
    protocol?: string;
}
\ No newline at end of file diff --git a/types/MessagesQueryMessage.html b/types/MessagesQueryMessage.html new file mode 100644 index 000000000..c02e9e22f --- /dev/null +++ b/types/MessagesQueryMessage.html @@ -0,0 +1 @@ +MessagesQueryMessage | DWN-SDK Documentation - v0.4.2

Type Alias MessagesQueryMessage

MessagesQueryMessage: GenericMessage & {
    authorization: AuthorizationModel;
    descriptor: MessagesQueryDescriptor;
}
\ No newline at end of file diff --git a/types/MessagesQueryOptions.html b/types/MessagesQueryOptions.html new file mode 100644 index 000000000..4c864aab9 --- /dev/null +++ b/types/MessagesQueryOptions.html @@ -0,0 +1 @@ +MessagesQueryOptions | DWN-SDK Documentation - v0.4.2

Type Alias MessagesQueryOptions

MessagesQueryOptions: {
    cursor?: PaginationCursor;
    filters?: MessagesFilter[];
    messageTimestamp?: string;
    permissionGrantId?: string;
    signer: Signer;
}
\ No newline at end of file diff --git a/types/MessagesQueryReply.html b/types/MessagesQueryReply.html new file mode 100644 index 000000000..76672dc2b --- /dev/null +++ b/types/MessagesQueryReply.html @@ -0,0 +1 @@ +MessagesQueryReply | DWN-SDK Documentation - v0.4.2

Type Alias MessagesQueryReply

MessagesQueryReply: GenericMessageReply & {
    cursor?: PaginationCursor;
    entries?: string[];
}
\ No newline at end of file diff --git a/types/MessagesReadMessage.html b/types/MessagesReadMessage.html new file mode 100644 index 000000000..880a9cb44 --- /dev/null +++ b/types/MessagesReadMessage.html @@ -0,0 +1 @@ +MessagesReadMessage | DWN-SDK Documentation - v0.4.2

Type Alias MessagesReadMessage

MessagesReadMessage: GenericMessage & {
    authorization: AuthorizationModel;
    descriptor: MessagesReadDescriptor;
}
\ No newline at end of file diff --git a/types/MessagesReadOptions.html b/types/MessagesReadOptions.html new file mode 100644 index 000000000..45f4ff718 --- /dev/null +++ b/types/MessagesReadOptions.html @@ -0,0 +1 @@ +MessagesReadOptions | DWN-SDK Documentation - v0.4.2

Type Alias MessagesReadOptions

MessagesReadOptions: {
    messageCid: string;
    messageTimestamp?: string;
    permissionGrantId?: string;
    signer: Signer;
}
\ No newline at end of file diff --git a/types/MessagesReadReply.html b/types/MessagesReadReply.html new file mode 100644 index 000000000..41239b76e --- /dev/null +++ b/types/MessagesReadReply.html @@ -0,0 +1 @@ +MessagesReadReply | DWN-SDK Documentation - v0.4.2

Type Alias MessagesReadReply

MessagesReadReply: GenericMessageReply & {
    entry?: MessagesReadReplyEntry;
}
\ No newline at end of file diff --git a/types/MessagesReadReplyEntry.html b/types/MessagesReadReplyEntry.html new file mode 100644 index 000000000..ea2dd1ce1 --- /dev/null +++ b/types/MessagesReadReplyEntry.html @@ -0,0 +1 @@ +MessagesReadReplyEntry | DWN-SDK Documentation - v0.4.2

Type Alias MessagesReadReplyEntry

MessagesReadReplyEntry: {
    data?: Readable;
    message: GenericMessage;
    messageCid: string;
}
\ No newline at end of file diff --git a/types/MessagesSubscribeDescriptor.html b/types/MessagesSubscribeDescriptor.html new file mode 100644 index 000000000..2cad54ece --- /dev/null +++ b/types/MessagesSubscribeDescriptor.html @@ -0,0 +1 @@ +MessagesSubscribeDescriptor | DWN-SDK Documentation - v0.4.2

Type Alias MessagesSubscribeDescriptor

MessagesSubscribeDescriptor: {
    filters: MessagesFilter[];
    interface: Messages;
    messageTimestamp: string;
    method: Subscribe;
}
\ No newline at end of file diff --git a/types/MessagesSubscribeMessage.html b/types/MessagesSubscribeMessage.html new file mode 100644 index 000000000..92c25becf --- /dev/null +++ b/types/MessagesSubscribeMessage.html @@ -0,0 +1 @@ +MessagesSubscribeMessage | DWN-SDK Documentation - v0.4.2

Type Alias MessagesSubscribeMessage

MessagesSubscribeMessage: {
    authorization: AuthorizationModel;
    descriptor: MessagesSubscribeDescriptor;
}
\ No newline at end of file diff --git a/types/MessagesSubscribeOptions.html b/types/MessagesSubscribeOptions.html new file mode 100644 index 000000000..a86b68337 --- /dev/null +++ b/types/MessagesSubscribeOptions.html @@ -0,0 +1 @@ +MessagesSubscribeOptions | DWN-SDK Documentation - v0.4.2

Type Alias MessagesSubscribeOptions

MessagesSubscribeOptions: {
    filters?: MessagesFilter[];
    messageTimestamp?: string;
    permissionGrantId?: string;
    signer: Signer;
}
\ No newline at end of file diff --git a/types/MessagesSubscribeReply.html b/types/MessagesSubscribeReply.html new file mode 100644 index 000000000..dd44488ef --- /dev/null +++ b/types/MessagesSubscribeReply.html @@ -0,0 +1 @@ +MessagesSubscribeReply | DWN-SDK Documentation - v0.4.2

Type Alias MessagesSubscribeReply

MessagesSubscribeReply: GenericMessageReply & {
    subscription?: MessageSubscription;
}
\ No newline at end of file diff --git a/types/OneOfFilter.html b/types/OneOfFilter.html new file mode 100644 index 000000000..3c1cb306d --- /dev/null +++ b/types/OneOfFilter.html @@ -0,0 +1 @@ +OneOfFilter | DWN-SDK Documentation - v0.4.2

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..07e48c083 --- /dev/null +++ b/types/Pagination.html @@ -0,0 +1,3 @@ +Pagination | DWN-SDK Documentation - v0.4.2

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.

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

Type Alias PaginationCursor

PaginationCursor: {
    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..9169e9b68 --- /dev/null +++ b/types/PermissionConditions.html @@ -0,0 +1,4 @@ +PermissionConditions | DWN-SDK Documentation - v0.4.2

Type Alias PermissionConditions

PermissionConditions: {
    publication?: PermissionConditionPublication;
}

Type declaration

  • Optionalpublication?: 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/PermissionGrantData.html b/types/PermissionGrantData.html new file mode 100644 index 000000000..c7376708f --- /dev/null +++ b/types/PermissionGrantData.html @@ -0,0 +1,7 @@ +PermissionGrantData | DWN-SDK Documentation - v0.4.2

Type Alias PermissionGrantData

PermissionGrantData: {
    conditions?: PermissionConditions;
    dateExpires: string;
    delegated?: boolean;
    description?: string;
    requestId?: string;
    scope: PermissionScope;
}

Type for the data payload of a permission grant message.

+

Type declaration

  • Optionalconditions?: PermissionConditions
  • dateExpires: string

    Timestamp at which this grant will no longer be active.

    +
  • Optionaldelegated?: boolean

    Whether this grant is delegated or not. If true, the grantedTo will be able to act as the grantedTo within the scope of this grant.

    +
  • Optionaldescription?: string

    Optional string that communicates what the grant would be used for

    +
  • OptionalrequestId?: string

    Optional CID of a permission request. This is optional because grants may be given without being officially requested

    +
  • scope: PermissionScope

    The scope of the allowed access.

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

Type Alias PermissionRequestData

PermissionRequestData: {
    conditions?: PermissionConditions;
    delegated: boolean;
    description?: string;
    scope: PermissionScope;
}

Type for the data payload of a permission request message.

+

Type declaration

  • Optionalconditions?: PermissionConditions
  • delegated: boolean

    If the grant is a delegated grant or not. If true, the grantedTo will be able to act as the grantedBy within the scope of this grant.

    +
  • Optionaldescription?: string

    Optional string that communicates what the grant would be used for.

    +
  • scope: PermissionScope

    The scope of the allowed access.

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

Type Alias PermissionRevocationData

PermissionRevocationData: {
    description?: string;
}

Type for the data payload of a permission revocation message.

+

Type declaration

  • Optionaldescription?: string

    Optional string that communicates the details of the revocation.

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

Type Alias PermissionScope

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..bf62b7edf --- /dev/null +++ b/types/Persona.html @@ -0,0 +1,2 @@ +Persona | DWN-SDK Documentation - v0.4.2
Persona: {
    did: string;
    keyId: string;
    keyPair: {
        privateJwk: PrivateJwk;
        publicJwk: PublicJwk;
    };
    signer: Signer;
}

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

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

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..82be20a72 --- /dev/null +++ b/types/ProtocolDefinition.html @@ -0,0 +1,2 @@ +ProtocolDefinition | DWN-SDK Documentation - v0.4.2

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/ProtocolPermissionScope.html b/types/ProtocolPermissionScope.html new file mode 100644 index 000000000..af80f2eda --- /dev/null +++ b/types/ProtocolPermissionScope.html @@ -0,0 +1 @@ +ProtocolPermissionScope | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolPermissionScope

ProtocolPermissionScope: {
    interface: Protocols;
    method: Configure | Query;
}
\ No newline at end of file diff --git a/types/ProtocolRuleSet.html b/types/ProtocolRuleSet.html new file mode 100644 index 000000000..8afdb09f5 --- /dev/null +++ b/types/ProtocolRuleSet.html @@ -0,0 +1,8 @@ +ProtocolRuleSet | DWN-SDK Documentation - v0.4.2

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.

    +
    • Optionalmax?: number
    • Optionalmin?: 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..9a8731c83 --- /dev/null +++ b/types/ProtocolTypes.html @@ -0,0 +1 @@ +ProtocolTypes | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolTypes

ProtocolTypes: {
    [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..54753c7c2 --- /dev/null +++ b/types/ProtocolsConfigureDescriptor.html @@ -0,0 +1 @@ +ProtocolsConfigureDescriptor | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolsConfigureDescriptor

ProtocolsConfigureDescriptor: {
    definition: ProtocolDefinition;
    interface: Protocols;
    messageTimestamp: string;
    method: Configure;
}
\ No newline at end of file diff --git a/types/ProtocolsConfigureMessage.html b/types/ProtocolsConfigureMessage.html new file mode 100644 index 000000000..4b44f59c9 --- /dev/null +++ b/types/ProtocolsConfigureMessage.html @@ -0,0 +1 @@ +ProtocolsConfigureMessage | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolsConfigureMessage

ProtocolsConfigureMessage: GenericMessage & {
    authorization: AuthorizationModel;
    descriptor: ProtocolsConfigureDescriptor;
}
\ No newline at end of file diff --git a/types/ProtocolsConfigureOptions.html b/types/ProtocolsConfigureOptions.html new file mode 100644 index 000000000..80e87cb47 --- /dev/null +++ b/types/ProtocolsConfigureOptions.html @@ -0,0 +1 @@ +ProtocolsConfigureOptions | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolsConfigureOptions

ProtocolsConfigureOptions: {
    definition: ProtocolDefinition;
    messageTimestamp?: string;
    permissionGrantId?: string;
    signer: Signer;
}
\ No newline at end of file diff --git a/types/ProtocolsQueryFilter.html b/types/ProtocolsQueryFilter.html new file mode 100644 index 000000000..924f505c8 --- /dev/null +++ b/types/ProtocolsQueryFilter.html @@ -0,0 +1 @@ +ProtocolsQueryFilter | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolsQueryFilter

ProtocolsQueryFilter: {
    protocol: string;
}
\ No newline at end of file diff --git a/types/ProtocolsQueryMessage.html b/types/ProtocolsQueryMessage.html new file mode 100644 index 000000000..ba95437b3 --- /dev/null +++ b/types/ProtocolsQueryMessage.html @@ -0,0 +1 @@ +ProtocolsQueryMessage | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolsQueryMessage

ProtocolsQueryMessage: GenericMessage & {
    descriptor: ProtocolsQueryDescriptor;
}
\ No newline at end of file diff --git a/types/ProtocolsQueryOptions.html b/types/ProtocolsQueryOptions.html new file mode 100644 index 000000000..3ed142c88 --- /dev/null +++ b/types/ProtocolsQueryOptions.html @@ -0,0 +1 @@ +ProtocolsQueryOptions | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolsQueryOptions

ProtocolsQueryOptions: {
    filter?: ProtocolsQueryFilter;
    messageTimestamp?: string;
    permissionGrantId?: string;
    signer?: Signer;
}
\ No newline at end of file diff --git a/types/ProtocolsQueryReply.html b/types/ProtocolsQueryReply.html new file mode 100644 index 000000000..6bc52fb38 --- /dev/null +++ b/types/ProtocolsQueryReply.html @@ -0,0 +1 @@ +ProtocolsQueryReply | DWN-SDK Documentation - v0.4.2

Type Alias ProtocolsQueryReply

ProtocolsQueryReply: GenericMessageReply & {
    entries?: ProtocolsConfigureMessage[];
}
\ No newline at end of file diff --git a/types/PublicJwk.html b/types/PublicJwk.html new file mode 100644 index 000000000..4d4eb7462 --- /dev/null +++ b/types/PublicJwk.html @@ -0,0 +1,8 @@ +PublicJwk | DWN-SDK Documentation - v0.4.2

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

    +
  • Optionaly?: 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..ce73b4689 --- /dev/null +++ b/types/QueryOptions.html @@ -0,0 +1 @@ +QueryOptions | DWN-SDK Documentation - v0.4.2

Type Alias QueryOptions

QueryOptions: {
    cursor?: PaginationCursor;
    limit?: number;
    sortDirection?: SortDirection;
    sortProperty: string;
}
\ No newline at end of file diff --git a/types/QueryResultEntry.html b/types/QueryResultEntry.html new file mode 100644 index 000000000..9767ac000 --- /dev/null +++ b/types/QueryResultEntry.html @@ -0,0 +1,6 @@ +QueryResultEntry | DWN-SDK Documentation - v0.4.2

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. +
+
\ No newline at end of file diff --git a/types/RangeCriterion.html b/types/RangeCriterion.html new file mode 100644 index 000000000..6ad1ff114 --- /dev/null +++ b/types/RangeCriterion.html @@ -0,0 +1,3 @@ +RangeCriterion | DWN-SDK Documentation - v0.4.2

Type Alias RangeCriterion

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

Type declaration

  • Optionalfrom?: string

    Inclusive starting date-time.

    +
  • Optionalto?: 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..1dff348e7 --- /dev/null +++ b/types/RangeFilter.html @@ -0,0 +1,2 @@ +RangeFilter | DWN-SDK Documentation - v0.4.2

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..978ffe08a --- /dev/null +++ b/types/RecordSubscriptionHandler.html @@ -0,0 +1 @@ +RecordSubscriptionHandler | DWN-SDK Documentation - v0.4.2

Type Alias RecordSubscriptionHandler

RecordSubscriptionHandler: ((event: RecordEvent) => void)
\ No newline at end of file diff --git a/types/RecordsDeleteMessage.html b/types/RecordsDeleteMessage.html new file mode 100644 index 000000000..273e85348 --- /dev/null +++ b/types/RecordsDeleteMessage.html @@ -0,0 +1 @@ +RecordsDeleteMessage | DWN-SDK Documentation - v0.4.2

Type Alias RecordsDeleteMessage

RecordsDeleteMessage: GenericMessage & {
    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..e50a98731 --- /dev/null +++ b/types/RecordsDeleteOptions.html @@ -0,0 +1,3 @@ +RecordsDeleteOptions | DWN-SDK Documentation - v0.4.2

Type Alias RecordsDeleteOptions

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

Type declaration

  • OptionaldelegatedGrant?: DataEncodedRecordsWriteMessage

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

    +
  • OptionalmessageTimestamp?: string
  • OptionalprotocolRole?: string
  • Optionalprune?: 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/RecordsPermissionScope.html b/types/RecordsPermissionScope.html new file mode 100644 index 000000000..c04aee93e --- /dev/null +++ b/types/RecordsPermissionScope.html @@ -0,0 +1,4 @@ +RecordsPermissionScope | DWN-SDK Documentation - v0.4.2

Type Alias RecordsPermissionScope

RecordsPermissionScope: {
    contextId?: string;
    interface: Records;
    method:
        | Read
        | Write
        | Query
        | Subscribe
        | Delete;
    protocol: string;
    protocolPath?: string;
}

The data model for a permission scope that is specific to the Records interface.

+

Type declaration

  • OptionalcontextId?: string

    May only be present when protocol is defined and protocolPath is undefined

    +
  • interface: Records
  • method:
        | Read
        | Write
        | Query
        | Subscribe
        | Delete
  • protocol: string
  • OptionalprotocolPath?: string

    May only be present when protocol is defined and contextId is undefined

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

Type Alias RecordsQueryMessage

RecordsQueryMessage: GenericMessage & {
    descriptor: RecordsQueryDescriptor;
}
\ No newline at end of file diff --git a/types/RecordsQueryOptions.html b/types/RecordsQueryOptions.html new file mode 100644 index 000000000..fd4b11647 --- /dev/null +++ b/types/RecordsQueryOptions.html @@ -0,0 +1,2 @@ +RecordsQueryOptions | DWN-SDK Documentation - v0.4.2

Type Alias RecordsQueryOptions

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

Type declaration

  • OptionaldateSort?: DateSort
  • OptionaldelegatedGrant?: DataEncodedRecordsWriteMessage

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

    +
  • filter: RecordsFilter
  • OptionalmessageTimestamp?: string
  • Optionalpagination?: Pagination
  • OptionalprotocolRole?: string
  • Optionalsigner?: Signer
\ No newline at end of file diff --git a/types/RecordsQueryReply.html b/types/RecordsQueryReply.html new file mode 100644 index 000000000..49a649481 --- /dev/null +++ b/types/RecordsQueryReply.html @@ -0,0 +1 @@ +RecordsQueryReply | DWN-SDK Documentation - v0.4.2

Type Alias RecordsQueryReply

RecordsQueryReply: GenericMessageReply & {
    cursor?: PaginationCursor;
    entries?: RecordsQueryReplyEntry[];
}
\ No newline at end of file diff --git a/types/RecordsQueryReplyEntry.html b/types/RecordsQueryReplyEntry.html new file mode 100644 index 000000000..5b80c3308 --- /dev/null +++ b/types/RecordsQueryReplyEntry.html @@ -0,0 +1,9 @@ +RecordsQueryReplyEntry | DWN-SDK Documentation - v0.4.2

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

  • OptionalencodedData?: string

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

    +
  • OptionalinitialWrite?: 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..04aee0a5a --- /dev/null +++ b/types/RecordsReadMessage.html @@ -0,0 +1 @@ +RecordsReadMessage | DWN-SDK Documentation - v0.4.2

Type Alias RecordsReadMessage

RecordsReadMessage: {
    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..449d70da0 --- /dev/null +++ b/types/RecordsReadOptions.html @@ -0,0 +1,4 @@ +RecordsReadOptions | DWN-SDK Documentation - v0.4.2

Type Alias RecordsReadOptions

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

Type declaration

  • OptionaldelegatedGrant?: DataEncodedRecordsWriteMessage

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

    +
  • filter: RecordsFilter
  • OptionalmessageTimestamp?: string
  • OptionalpermissionGrantId?: string
  • OptionalprotocolRole?: string

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

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

Type Alias RecordsReadReply

RecordsReadReply: GenericMessageReply & {
    record?: RecordsWriteMessage & {
        data: Readable;
        initialWrite?: RecordsWriteMessage;
    };
}
\ No newline at end of file diff --git a/types/RecordsSubscribeDescriptor.html b/types/RecordsSubscribeDescriptor.html new file mode 100644 index 000000000..c4efa8777 --- /dev/null +++ b/types/RecordsSubscribeDescriptor.html @@ -0,0 +1 @@ +RecordsSubscribeDescriptor | DWN-SDK Documentation - v0.4.2

Type Alias RecordsSubscribeDescriptor

RecordsSubscribeDescriptor: {
    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..1c1e81f7c --- /dev/null +++ b/types/RecordsSubscribeMessage.html @@ -0,0 +1 @@ +RecordsSubscribeMessage | DWN-SDK Documentation - v0.4.2

Type Alias RecordsSubscribeMessage

RecordsSubscribeMessage: GenericMessage & {
    descriptor: RecordsSubscribeDescriptor;
}
\ No newline at end of file diff --git a/types/RecordsSubscribeOptions.html b/types/RecordsSubscribeOptions.html new file mode 100644 index 000000000..194ab253e --- /dev/null +++ b/types/RecordsSubscribeOptions.html @@ -0,0 +1,2 @@ +RecordsSubscribeOptions | DWN-SDK Documentation - v0.4.2

Type Alias RecordsSubscribeOptions

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

Type declaration

  • OptionaldelegatedGrant?: DataEncodedRecordsWriteMessage

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

    +
  • filter: RecordsFilter
  • OptionalmessageTimestamp?: string
  • OptionalprotocolRole?: string
  • Optionalsigner?: Signer
\ No newline at end of file diff --git a/types/RecordsSubscribeReply.html b/types/RecordsSubscribeReply.html new file mode 100644 index 000000000..5a0dc204c --- /dev/null +++ b/types/RecordsSubscribeReply.html @@ -0,0 +1 @@ +RecordsSubscribeReply | DWN-SDK Documentation - v0.4.2

Type Alias RecordsSubscribeReply

RecordsSubscribeReply: GenericMessageReply & {
    subscription?: MessageSubscription;
}
\ No newline at end of file diff --git a/types/RecordsWriteDescriptor.html b/types/RecordsWriteDescriptor.html new file mode 100644 index 000000000..e658a8d46 --- /dev/null +++ b/types/RecordsWriteDescriptor.html @@ -0,0 +1 @@ +RecordsWriteDescriptor | DWN-SDK Documentation - v0.4.2

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;
}
\ No newline at end of file diff --git a/types/RecordsWriteMessage.html b/types/RecordsWriteMessage.html new file mode 100644 index 000000000..20012ff62 --- /dev/null +++ b/types/RecordsWriteMessage.html @@ -0,0 +1 @@ +RecordsWriteMessage | DWN-SDK Documentation - v0.4.2

Type Alias RecordsWriteMessage

RecordsWriteMessage: {
    attestation?: GeneralJws;
    authorization: AuthorizationModel;
    contextId?: string;
    descriptor: RecordsWriteDescriptor;
    encryption?: EncryptionProperty;
    recordId: string;
}
\ No newline at end of file diff --git a/types/RecordsWriteOptions.html b/types/RecordsWriteOptions.html new file mode 100644 index 000000000..81cf71886 --- /dev/null +++ b/types/RecordsWriteOptions.html @@ -0,0 +1,5 @@ +RecordsWriteOptions | DWN-SDK Documentation - v0.4.2

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

  • OptionalattestationSigners?: Signer[]
  • Optionaldata?: Uint8Array
  • OptionaldataCid?: string
  • dataFormat: string
  • OptionaldataSize?: number
  • OptionaldateCreated?: string
  • OptionaldatePublished?: string
  • OptionaldelegatedGrant?: DataEncodedRecordsWriteMessage

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

    +
  • OptionalencryptionInput?: EncryptionInput
  • OptionalmessageTimestamp?: string
  • OptionalparentContextId?: 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.

    +
  • OptionalpermissionGrantId?: string
  • Optionalprotocol?: string
  • OptionalprotocolPath?: string
  • OptionalprotocolRole?: string
  • Optionalpublished?: boolean
  • Optionalrecipient?: string
  • OptionalrecordId?: string
  • Optionalschema?: string
  • Optionalsigner?: Signer

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

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

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..6b686442c --- /dev/null +++ b/types/RecordsWriteTags.html @@ -0,0 +1 @@ +RecordsWriteTags | DWN-SDK Documentation - v0.4.2

Type Alias RecordsWriteTags

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

Type Alias SubscriptionReply

SubscriptionReply: GenericMessageReply & {
    subscription?: MessageSubscription;
}
\ No newline at end of file diff --git a/types/UnionMessageReply.html b/types/UnionMessageReply.html new file mode 100644 index 000000000..dd338f80f --- /dev/null +++ b/types/UnionMessageReply.html @@ -0,0 +1,12 @@ +UnionMessageReply | DWN-SDK Documentation - v0.4.2

Type Alias UnionMessageReply

UnionMessageReply: GenericMessageReply & {
    cursor?: PaginationCursor;
    entries?: QueryResultEntry[] | ProtocolsConfigureMessage[] | string[];
    entry?: MessagesReadReplyEntry;
    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

  • Optionalcursor?: PaginationCursor

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

    +
  • Optionalentries?: QueryResultEntry[] | ProtocolsConfigureMessage[] | 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 MessagesQuery +Mutually exclusive with record.

    +
  • Optionalentry?: MessagesReadReplyEntry

    A single message entry if applicable (e.g. MessagesRead). +Mutually exclusive with record, entries and cursor.

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

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

    +
  • Optionalsubscription?: MessageSubscription

    A subscription object if a subscription was requested.

    +
\ No newline at end of file