diff --git a/assets/main.js b/assets/main.js index d0aa8d5f..7270cff8 100644 --- a/assets/main.js +++ b/assets/main.js @@ -1,8 +1,8 @@ "use strict"; "use strict";(()=>{var Pe=Object.create;var ne=Object.defineProperty;var Ie=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Ie(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Pe(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),v=s.str.charAt(1),f;v in s.node.edges?f=s.node.edges[v]:(f=new t.TokenSet,s.node.edges[v]=f),s.str.length==1&&(f.final=!0),i.push({node:f,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}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){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ne(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function 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=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ce(l.parent,i)}.${d}`);let v=document.createElement("li");v.classList.value=l.classes??"";let f=document.createElement("a");f.href=r.base+l.url,f.innerHTML=u+d,v.append(f),e.appendChild(v)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var Be={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>Be[e])}var C=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",pe="mousemove",B="mouseup",J={x:0,y:0},fe=!1,ee=!1,He=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(He=!0,F="touchstart",pe="touchmove",B="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(pe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ee=!1});document.addEventListener("click",t=>{fe&&(t.preventDefault(),t.stopImmediatePropagation(),fe=!1)});var X=class extends C{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){D||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!D&&this.active&&n.target.closest(".col-sidebar")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ve=document.head.appendChild(document.createElement("style"));ve.dataset.for="filters";var Y=class extends C{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ve.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var Z=class extends C{constructor(n){super(n);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 r=Q.getItem(this.key);this.el.open=r?r==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let i=this.summary.querySelector("a");i&&i.addEventListener("click",()=>{location.assign(i.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.href===r.href&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); + ${ce(l.parent,i)}.${d}`);let v=document.createElement("li");v.classList.value=l.classes??"";let f=document.createElement("a");f.href=r.base+l.url,f.innerHTML=u+d,v.append(f),e.appendChild(v)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var Be={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>Be[e])}var C=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",pe="mousemove",B="mouseup",J={x:0,y:0},fe=!1,ee=!1,He=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(He=!0,F="touchstart",pe="touchmove",B="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(pe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ee=!1});document.addEventListener("click",t=>{fe&&(t.preventDefault(),t.stopImmediatePropagation(),fe=!1)});var X=class extends C{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ve=document.head.appendChild(document.createElement("style"));ve.dataset.for="filters";var Y=class extends C{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()),ve.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.handleValueChange()}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(),document.querySelectorAll(".tsd-index-section").forEach(e=>{e.style.display="block";let n=Array.from(e.querySelectorAll(".tsd-index-link")).every(r=>r.offsetParent==null);e.style.display=n?"none":"block"})}};var Z=class extends C{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.href===r.href&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); /*! Bundled license information: lunr/lunr.js: diff --git a/assets/style.css b/assets/style.css index 07a385b7..98a43779 100644 --- a/assets/style.css +++ b/assets/style.css @@ -29,7 +29,7 @@ --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: var(--light-color-ts-type-alias); + --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); @@ -69,7 +69,7 @@ --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: var(--dark-color-ts-type-alias); + --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); @@ -266,12 +266,12 @@ h6 { line-height: 1.2; } -h1 > a, -h2 > a, -h3 > a, -h4 > a, -h5 > a, -h6 > a { +h1 > a:not(.link), +h2 > a:not(.link), +h3 > a:not(.link), +h4 > a:not(.link), +h5 > a:not(.link), +h6 > a:not(.link) { text-decoration: none; color: var(--color-text); } @@ -649,6 +649,28 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { 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; } @@ -714,12 +736,15 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { } .tsd-navigation > a, .tsd-navigation .tsd-accordion-summary { - width: calc(100% - 0.5rem); + width: calc(100% - 0.25rem); + display: flex; + align-items: center; } .tsd-navigation a, .tsd-navigation summary > span, .tsd-page-navigation a { - display: inline-flex; + display: flex; + width: calc(100% - 0.25rem); align-items: center; padding: 0.25rem; color: var(--color-text); @@ -759,11 +784,6 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { margin-left: -1.5rem; } -.tsd-nested-navigation > li > a, -.tsd-nested-navigation > li > span { - width: calc(100% - 1.75rem - 0.5rem); -} - .tsd-page-navigation ul { padding-left: 1.75rem; } diff --git a/classes/index.MultiaddrFilter.html b/classes/index.MultiaddrFilter.html index ccca2954..b37aa65b 100644 --- a/classes/index.MultiaddrFilter.html +++ b/classes/index.MultiaddrFilter.html @@ -4,8 +4,8 @@ multiaddr is in a ipcidr range.

Example

import { multiaddr, MultiaddrFilter } from '@multiformats/multiaddr'

const range = multiaddr('/ip4/192.168.10.10/ipcidr/24')
const filter = new MultiaddrFilter(range)

const input = multiaddr('/ip4/192.168.10.2/udp/60')
console.info(filter.contains(input)) // true
-

Constructors

Constructors

Properties

Methods

Constructors

Properties

multiaddr: Multiaddr
netmask: IpNet

Methods

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

multiaddr: Multiaddr
netmask: IpNet

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/functions/convert.convert.html b/functions/convert.convert.html index e2e1ec7c..57597218 100644 --- a/functions/convert.convert.html +++ b/functions/convert.convert.html @@ -1,2 +1,2 @@ convert | @multiformats/multiaddr

Generated using TypeDoc

\ No newline at end of file +

Parameters

  • proto: string
  • a: string

Returns Uint8Array

  • Parameters

    Returns string

  • Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/convert.convertToBytes.html b/functions/convert.convertToBytes.html index 6e011800..aa014c5c 100644 --- a/functions/convert.convertToBytes.html +++ b/functions/convert.convertToBytes.html @@ -1 +1 @@ -convertToBytes | @multiformats/multiaddr

    Generated using TypeDoc

    \ No newline at end of file +convertToBytes | @multiformats/multiaddr

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/convert.convertToIpNet.html b/functions/convert.convertToIpNet.html index 2f3dd025..6db1b160 100644 --- a/functions/convert.convertToIpNet.html +++ b/functions/convert.convertToIpNet.html @@ -1 +1 @@ -convertToIpNet | @multiformats/multiaddr

    Generated using TypeDoc

    \ No newline at end of file +convertToIpNet | @multiformats/multiaddr

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/convert.convertToString.html b/functions/convert.convertToString.html index a66061ac..78e917ce 100644 --- a/functions/convert.convertToString.html +++ b/functions/convert.convertToString.html @@ -1,2 +1,2 @@ convertToString | @multiformats/multiaddr
    • Convert [code,Uint8Array] to string

      -

      Parameters

      Returns string

    Generated using TypeDoc

    \ No newline at end of file +

    Parameters

    Returns string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/index.fromNodeAddress.html b/functions/index.fromNodeAddress.html index 99483b33..06705c03 100644 --- a/functions/index.fromNodeAddress.html +++ b/functions/index.fromNodeAddress.html @@ -1,4 +1,4 @@ fromNodeAddress | @multiformats/multiaddr
    • Creates a Multiaddr from a node-friendly address object

      Parameters

      Returns Multiaddr

      Example

      import { fromNodeAddress } from '@multiformats/multiaddr'

      fromNodeAddress({address: '127.0.0.1', port: '4001'}, 'tcp')
      // Multiaddr(/ip4/127.0.0.1/tcp/4001)
      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/index.isMultiaddr.html b/functions/index.isMultiaddr.html index efe62ea4..5b207f77 100644 --- a/functions/index.isMultiaddr.html +++ b/functions/index.isMultiaddr.html @@ -1,4 +1,4 @@ isMultiaddr | @multiformats/multiaddr
    • Check if object is a Multiaddr instance

      Parameters

      • value: any

      Returns value is Multiaddr

      Example

      import { isMultiaddr, multiaddr } from '@multiformats/multiaddr'

      isMultiaddr(5)
      // false
      isMultiaddr(multiaddr('/ip4/127.0.0.1'))
      // true
      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/index.isName.html b/functions/index.isName.html index 0e4967e0..666a7a22 100644 --- a/functions/index.isName.html +++ b/functions/index.isName.html @@ -1,4 +1,4 @@ isName | @multiformats/multiaddr
    • Returns if something is a Multiaddr that is a resolvable name

      Parameters

      Returns boolean

      Example

      import { isName, multiaddr } from '@multiformats/multiaddr'

      isName(multiaddr('/ip4/127.0.0.1'))
      // false
      isName(multiaddr('/dns/ipfs.io'))
      // true
      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/index.multiaddr-1.html b/functions/index.multiaddr-1.html index e036165e..4bcc916e 100644 --- a/functions/index.multiaddr-1.html +++ b/functions/index.multiaddr-1.html @@ -2,4 +2,4 @@

    Parameters

    Returns Multiaddr

    Example

    import { multiaddr } from '@libp2p/multiaddr'

    multiaddr('/ip4/127.0.0.1/tcp/4001')
    // Multiaddr(/ip4/127.0.0.1/tcp/4001)
    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/index.protocols.html b/functions/index.protocols.html index 3deb0e22..4d68dd34 100644 --- a/functions/index.protocols.html +++ b/functions/index.protocols.html @@ -1,4 +1,4 @@ protocols | @multiformats/multiaddr
    • For the passed proto string or number, return a Protocol

      Parameters

      • proto: string | number

      Returns Protocol

      Example

      import { protocol } from '@multiformats/multiaddr'

      console.info(protocol(4))
      // { code: 4, size: 32, name: 'ip4', resolvable: false, path: false }
      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/functions/resolvers.dnsaddrResolver.html b/functions/resolvers.dnsaddrResolver.html index 0608691d..a4a9b3e5 100644 --- a/functions/resolvers.dnsaddrResolver.html +++ b/functions/resolvers.dnsaddrResolver.html @@ -1,4 +1,4 @@ dnsaddrResolver | @multiformats/multiaddr
    • Resolver for dnsaddr addresses.

      Parameters

      Returns Promise<string[]>

      Example

      import { dnsaddrResolver } from '@multiformats/multiaddr/resolvers'
      import { multiaddr } from '@multiformats/multiaddr'

      const ma = multiaddr('/dnsaddr/bootstrap.libp2p.io')
      const addresses = await dnsaddrResolver(ma)

      console.info(addresses)
      //[
      // '/dnsaddr/am6.bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb',
      // '/dnsaddr/ny5.bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa',
      // '/dnsaddr/sg1.bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt',
      // '/dnsaddr/sv15.bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN'
      //]
      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/index.html b/index.html index 5143f1b5..5630e8f7 100644 --- a/index.html +++ b/index.html @@ -48,4 +48,4 @@
  • MIT (LICENSE-MIT / http://opensource.org/licenses/MIT)
  • Contribution

    Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/interfaces/index.AbortOptions.html b/interfaces/index.AbortOptions.html index 38bb4fd8..c017f70f 100644 --- a/interfaces/index.AbortOptions.html +++ b/interfaces/index.AbortOptions.html @@ -1,3 +1,3 @@ AbortOptions | @multiformats/multiaddr

    Allows aborting long-lived operations

    -
    interface AbortOptions {
        signal?: AbortSignal;
    }

    Properties

    Properties

    signal?: AbortSignal

    Generated using TypeDoc

    \ No newline at end of file +
    interface AbortOptions {
        signal?: AbortSignal;
    }

    Properties

    Properties

    signal?: AbortSignal

    Generated using TypeDoc

    \ No newline at end of file diff --git a/interfaces/index.Multiaddr.html b/interfaces/index.Multiaddr.html index 1267f177..6ada2269 100644 --- a/interfaces/index.Multiaddr.html +++ b/interfaces/index.Multiaddr.html @@ -1,4 +1,4 @@ -Multiaddr | @multiformats/multiaddr
    interface Multiaddr {
        bytes: Uint8Array;
        decapsulate(addr): Multiaddr;
        decapsulateCode(code): Multiaddr;
        encapsulate(addr): Multiaddr;
        equals(addr): boolean;
        getPath(): null | string;
        getPeerId(): null | string;
        isThinWaistAddress(addr?): boolean;
        nodeAddress(): NodeAddress;
        protoCodes(): number[];
        protoNames(): string[];
        protos(): Protocol[];
        resolve(options?): Promise<Multiaddr[]>;
        stringTuples(): StringTuple[];
        toJSON(): string;
        toOptions(): MultiaddrObject;
        toString(): string;
        tuples(): Tuple[];
    }

    Properties

    bytes +Multiaddr | @multiformats/multiaddr
    interface Multiaddr {
        bytes: Uint8Array;
        decapsulate(addr): Multiaddr;
        decapsulateCode(code): Multiaddr;
        encapsulate(addr): Multiaddr;
        equals(addr): boolean;
        getPath(): null | string;
        getPeerId(): null | string;
        isThinWaistAddress(addr?): boolean;
        nodeAddress(): NodeAddress;
        protoCodes(): number[];
        protoNames(): string[];
        protos(): Protocol[];
        resolve(options?): Promise<Multiaddr[]>;
        stringTuples(): StringTuple[];
        toJSON(): string;
        toOptions(): MultiaddrObject;
        toString(): string;
        tuples(): Tuple[];
    }

    Properties

    Methods

    Properties

    bytes: Uint8Array

    Methods

    • Decapsulates a Multiaddr from another Multiaddr

      +

    Properties

    bytes: Uint8Array

    Methods

    • Decapsulates a Multiaddr from another Multiaddr

      Parameters

      • addr: string | Multiaddr

        Multiaddr to remove from this Multiaddr

      Returns Multiaddr

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      const mh1 = multiaddr('/ip4/8.8.8.8/tcp/1080')
      // Multiaddr(/ip4/8.8.8.8/tcp/1080)

      const mh2 = multiaddr('/ip4/127.0.0.1/tcp/4001')
      // Multiaddr(/ip4/127.0.0.1/tcp/4001)

      const mh3 = mh1.encapsulate(mh2)
      // Multiaddr(/ip4/8.8.8.8/tcp/1080/ip4/127.0.0.1/tcp/4001)

      mh3.decapsulate(mh2).toString()
      // '/ip4/8.8.8.8/tcp/1080'
      -
    • A more reliable version of decapsulate if you are targeting a +

    • A more reliable version of decapsulate if you are targeting a specific code, such as 421 (the p2p protocol code). The last index of the code will be removed from the Multiaddr, and a new instance will be returned. If the code is not present, the original Multiaddr is returned.

      Parameters

      • code: number

      Returns Multiaddr

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      const addr = multiaddr('/ip4/0.0.0.0/tcp/8080/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC')
      // Multiaddr(/ip4/0.0.0.0/tcp/8080/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC)

      addr.decapsulateCode(421).toString()
      // '/ip4/0.0.0.0/tcp/8080'

      multiaddr('/ip4/127.0.0.1/tcp/8080').decapsulateCode(421).toString()
      // '/ip4/127.0.0.1/tcp/8080'
      -
    • Encapsulates a Multiaddr in another Multiaddr

      Parameters

      Returns Multiaddr

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      const mh1 = multiaddr('/ip4/8.8.8.8/tcp/1080')
      // Multiaddr(/ip4/8.8.8.8/tcp/1080)

      const mh2 = multiaddr('/ip4/127.0.0.1/tcp/4001')
      // Multiaddr(/ip4/127.0.0.1/tcp/4001)

      const mh3 = mh1.encapsulate(mh2)
      // Multiaddr(/ip4/8.8.8.8/tcp/1080/ip4/127.0.0.1/tcp/4001)

      mh3.toString()
      // '/ip4/8.8.8.8/tcp/1080/ip4/127.0.0.1/tcp/4001'
      -
    • Checks if two Multiaddrs are the same

      +
    • Checks if two Multiaddrs are the same

      Parameters

      Returns boolean

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      const mh1 = multiaddr('/ip4/8.8.8.8/tcp/1080')
      // Multiaddr(/ip4/8.8.8.8/tcp/1080)

      const mh2 = multiaddr('/ip4/127.0.0.1/tcp/4001')
      // Multiaddr(/ip4/127.0.0.1/tcp/4001)

      mh1.equals(mh1)
      // true

      mh1.equals(mh2)
      // false
      -
    • Extract the path if the multiaddr contains one

      +
    • Extract the path if the multiaddr contains one

      Returns null | string

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      const mh1 = multiaddr('/ip4/8.8.8.8/tcp/1080/unix/tmp/p2p.sock')
      // Multiaddr(/ip4/8.8.8.8/tcp/1080/unix/tmp/p2p.sock)

      // should return utf8 string or null if the id is missing or invalid
      const path = mh1.getPath()
      -
    • Extract the peerId if the multiaddr contains one

      +
    • Extract the peerId if the multiaddr contains one

      Returns null | string

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      const mh1 = multiaddr('/ip4/8.8.8.8/tcp/1080/ipfs/QmValidBase58string')
      // Multiaddr(/ip4/8.8.8.8/tcp/1080/ipfs/QmValidBase58string)

      // should return QmValidBase58string or null if the id is missing or invalid
      const peerId = mh1.getPeerId()
      -
    • Returns if a Multiaddr is a Thin Waist address or not.

      +
    • Returns if a Multiaddr is a Thin Waist address or not.

      Thin Waist is if a Multiaddr adheres to the standard combination of:

      {IPv4, IPv6}/{TCP, UDP}

      Parameters

      Returns boolean

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      const mh1 = multiaddr('/ip4/127.0.0.1/tcp/4001')
      // Multiaddr(/ip4/127.0.0.1/tcp/4001)
      const mh2 = multiaddr('/ip4/192.168.2.1/tcp/5001')
      // Multiaddr(/ip4/192.168.2.1/tcp/5001)
      const mh3 = mh1.encapsulate(mh2)
      // Multiaddr(/ip4/127.0.0.1/tcp/4001/ip4/192.168.2.1/tcp/5001)
      const mh4 = multiaddr('/ip4/127.0.0.1/tcp/2000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a')
      // Multiaddr(/ip4/127.0.0.1/tcp/2000/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSooo2a)
      mh1.isThinWaistAddress()
      // true
      mh2.isThinWaistAddress()
      // true
      mh3.isThinWaistAddress()
      // false
      mh4.isThinWaistAddress()
      // false
      -
    • Gets a Multiaddrs node-friendly address object. Note that protocol information +

    • Gets a Multiaddrs node-friendly address object. Note that protocol information is left out: in Node (and most network systems) the protocol is unknowable given only the address.

      Has to be a ThinWaist Address, otherwise throws error

      Returns NodeAddress

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      multiaddr('/ip4/127.0.0.1/tcp/4001').nodeAddress()
      // {family: 4, address: '127.0.0.1', port: 4001}
      -
    • Returns the codes of the protocols in left-to-right order. +

    • Returns the codes of the protocols in left-to-right order. See list of protocols

      Returns number[]

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      multiaddr('/ip4/127.0.0.1/tcp/4001').protoCodes()
      // [ 4, 6 ]
      -
    • Returns the names of the protocols in left-to-right order. +

    • Returns the names of the protocols in left-to-right order. See list of protocols

      Returns string[]

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      multiaddr('/ip4/127.0.0.1/tcp/4001').protoNames()
      // [ 'ip4', 'tcp' ]
      -
    • Returns the protocols the Multiaddr is defined with, as an array of objects, in +

    • Returns the protocols the Multiaddr is defined with, as an array of objects, in left-to-right order. Each object contains the protocol code, protocol name, and the size of its address space in bits. See list of protocols

      Returns Protocol[]

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      multiaddr('/ip4/127.0.0.1/tcp/4001').protos()
      // [ { code: 4, size: 32, name: 'ip4' },
      // { code: 6, size: 16, name: 'tcp' } ]
      -
    • Resolve multiaddr if containing resolvable hostname.

      Parameters

      Returns Promise<Multiaddr[]>

      Example

      import { multiaddr, resolvers } from '@multiformats/multiaddr'

      resolvers.set('dnsaddr', resolverFunction)
      const mh1 = multiaddr('/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb')
      const resolvedMultiaddrs = await mh1.resolve()
      // [
      // Multiaddr(/ip4/147.75.83.83/tcp/4001/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb),
      // Multiaddr(/ip4/147.75.83.83/tcp/443/wss/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb),
      // Multiaddr(/ip4/147.75.83.83/udp/4001/quic/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb)
      // ]
      -
    • Returns a tuple of string/number parts

      • tuples[][0] = code of protocol
      • tuples[][1] = contents of address

      Returns StringTuple[]

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      multiaddr('/ip4/127.0.0.1/tcp/4001').stringTuples()
      // [ [ 4, '127.0.0.1' ], [ 6, '4001' ] ]
      -
    • Returns Multiaddr as a JSON encoded object

      +
    • Returns Multiaddr as a JSON encoded object

      Returns string

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      JSON.stringify(multiaddr('/ip4/127.0.0.1/tcp/4001'))
      // '/ip4/127.0.0.1/tcp/4001'
      -
    • Returns Multiaddr as a convinient options object to be used with net.createConnection

      +
    • Returns Multiaddr as a convinient options object to be used with net.createConnection

      Returns MultiaddrObject

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      multiaddr('/ip4/127.0.0.1/tcp/4001').toOptions()
      // { family: 4, host: '127.0.0.1', transport: 'tcp', port: 4001 }
      -
    • Returns Multiaddr as a String

      +
    • Returns Multiaddr as a String

      Returns string

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      multiaddr('/ip4/127.0.0.1/tcp/4001').toString()
      // '/ip4/127.0.0.1/tcp/4001'
      -
    • Returns a tuple of parts

      Returns Tuple[]

      Example

      import { multiaddr } from '@multiformats/multiaddr'

      multiaddr('/ip4/127.0.0.1/tcp/4001').tuples()
      // [ [ 4, <Buffer 7f 00 00 01> ], [ 6, <Buffer 0f a1> ] ]
      -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/interfaces/index.MultiaddrObject.html b/interfaces/index.MultiaddrObject.html index 442f6f12..9260ad64 100644 --- a/interfaces/index.MultiaddrObject.html +++ b/interfaces/index.MultiaddrObject.html @@ -1,6 +1,6 @@ MultiaddrObject | @multiformats/multiaddr

    A plain JavaScript object representation of a Multiaddr

    -
    interface MultiaddrObject {
        family: 4 | 6;
        host: string;
        port: number;
        transport: string;
    }

    Properties

    interface MultiaddrObject {
        family: 4 | 6;
        host: string;
        port: number;
        transport: string;
    }

    Properties

    family: 4 | 6
    host: string
    port: number
    transport: string

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    family: 4 | 6
    host: string
    port: number
    transport: string

    Generated using TypeDoc

    \ No newline at end of file diff --git a/interfaces/index.NodeAddress.html b/interfaces/index.NodeAddress.html index 2aaf974e..317afeea 100644 --- a/interfaces/index.NodeAddress.html +++ b/interfaces/index.NodeAddress.html @@ -1,5 +1,5 @@ NodeAddress | @multiformats/multiaddr

    A NodeAddress is an IPv4/IPv6 address/TCP port combination

    -
    interface NodeAddress {
        address: string;
        family: 4 | 6;
        port: number;
    }

    Properties

    interface NodeAddress {
        address: string;
        family: 4 | 6;
        port: number;
    }

    Properties

    Properties

    address: string
    family: 4 | 6
    port: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    address: string
    family: 4 | 6
    port: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/interfaces/index.Protocol.html b/interfaces/index.Protocol.html index 0c07f08c..ea6d8239 100644 --- a/interfaces/index.Protocol.html +++ b/interfaces/index.Protocol.html @@ -1,7 +1,7 @@ Protocol | @multiformats/multiaddr

    Protocols are present in the protocol table

    -
    interface Protocol {
        code: number;
        name: string;
        path?: boolean;
        resolvable?: boolean;
        size: number;
    }

    Properties

    interface Protocol {
        code: number;
        name: string;
        path?: boolean;
        resolvable?: boolean;
        size: number;
    }

    Properties

    code: number
    name: string
    path?: boolean
    resolvable?: boolean
    size: number

    Generated using TypeDoc

    \ No newline at end of file +

    Properties

    code: number
    name: string
    path?: boolean
    resolvable?: boolean
    size: number

    Generated using TypeDoc

    \ No newline at end of file diff --git a/interfaces/index.Resolver.html b/interfaces/index.Resolver.html index cf19a679..5815c524 100644 --- a/interfaces/index.Resolver.html +++ b/interfaces/index.Resolver.html @@ -1,3 +1,3 @@ Resolver | @multiformats/multiaddr

    A Resolver is a function that takes a Multiaddr and resolves it into one or more string representations of that Multiaddr.

    -
    interface Resolver ((addr, options?) => Promise<string[]>)

    Generated using TypeDoc

    \ No newline at end of file +
    interface Resolver ((addr, options?) => Promise<string[]>)

    Generated using TypeDoc

    \ No newline at end of file diff --git a/modules/convert.html b/modules/convert.html index 85cf7338..0842234d 100644 --- a/modules/convert.html +++ b/modules/convert.html @@ -1,6 +1,6 @@ convert | @multiformats/multiaddr

    Provides methods for converting

    -

    Index

    Functions

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/modules/index.html b/modules/index.html index 1a0b7a84..4f7a636b 100644 --- a/modules/index.html +++ b/modules/index.html @@ -28,7 +28,7 @@

    A resolver receives a Multiaddr as a parameter and returns a Promise<Array<string>>.

    -

    Index

    Classes

    Index

    Classes

    Interfaces

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/modules/resolvers.html b/modules/resolvers.html index 9eb9a903..b2800a7f 100644 --- a/modules/resolvers.html +++ b/modules/resolvers.html @@ -1,3 +1,3 @@ resolvers | @multiformats/multiaddr

    Provides strategies for resolving multiaddrs.

    -

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file +

    Index

    Functions

    Generated using TypeDoc

    \ No newline at end of file diff --git a/types/index.MultiaddrInput.html b/types/index.MultiaddrInput.html index 31eb8853..aa3d41b4 100644 --- a/types/index.MultiaddrInput.html +++ b/types/index.MultiaddrInput.html @@ -1,2 +1,2 @@ MultiaddrInput | @multiformats/multiaddr
    MultiaddrInput: string | Multiaddr | Uint8Array | null

    These types can be parsed into a Multiaddr object

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/types/index.StringTuple.html b/types/index.StringTuple.html index a3bfc1b5..646f826e 100644 --- a/types/index.StringTuple.html +++ b/types/index.StringTuple.html @@ -1,2 +1,2 @@ StringTuple | @multiformats/multiaddr
    StringTuple: [number, string?]

    A code/value pair with the value as a string

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/types/index.Tuple.html b/types/index.Tuple.html index b8f2cb59..fd108868 100644 --- a/types/index.Tuple.html +++ b/types/index.Tuple.html @@ -1,2 +1,2 @@ Tuple | @multiformats/multiaddr
    Tuple: [number, Uint8Array?]

    A code/value pair

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file diff --git a/variables/index.resolvers.html b/variables/index.resolvers.html index fdd703e2..24d9681d 100644 --- a/variables/index.resolvers.html +++ b/variables/index.resolvers.html @@ -1,2 +1,2 @@ resolvers | @multiformats/multiaddr
    resolvers: Map<string, Resolver> = ...

    All configured Resolvers

    -

    Generated using TypeDoc

    \ No newline at end of file +

    Generated using TypeDoc

    \ No newline at end of file