@multiformats/multiaddr
Advanced tools
| import type { MultibaseCodec } from 'multiformats'; | ||
| import type { SupportedEncodings } from 'uint8arrays/to-string'; | ||
| export declare function bytesToString(base: SupportedEncodings): (buf: Uint8Array) => string; | ||
| export declare function stringToBytes(base: SupportedEncodings): (value: string) => Uint8Array; | ||
| export declare function bytes2port(buf: Uint8Array): string; | ||
| export declare function port2bytes(port: string | number): Uint8Array; | ||
| export declare function onion2bytes(str: string): Uint8Array; | ||
| export declare function onion32bytes(str: string): Uint8Array; | ||
| export declare function bytes2onion(buf: Uint8Array): string; | ||
| export declare const ip4ToBytes: (ip: string) => Uint8Array; | ||
| export declare const ip6ToBytes: (ip: string) => Uint8Array; | ||
| export declare const ip4ToString: (buf: Uint8Array) => string; | ||
| export declare const ip6ToString: (buf: Uint8Array) => string; | ||
| export declare function ip6StringToValue(str: string): string; | ||
| export declare function mb2bytes(mbstr: string): Uint8Array; | ||
| export declare function bytes2mb(base: MultibaseCodec<any>): (buf: Uint8Array) => string; | ||
| //# sourceMappingURL=utils.d.ts.map |
| {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,wBAAgB,aAAa,CAAE,IAAI,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,CAIpF;AAED,wBAAgB,aAAa,CAAE,IAAI,EAAE,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,CAItF;AAED,wBAAgB,UAAU,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAGnD;AAED,wBAAgB,UAAU,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAM7D;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAwBpD;AAED,wBAAgB,YAAY,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAwBrD;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAMpD;AAID,eAAO,MAAM,UAAU,GAAa,IAAI,MAAM,KAAG,UAgBhD,CAAA;AAID,eAAO,MAAM,UAAU,GAAa,IAAI,MAAM,KAAG,UAoDhD,CAAA;AAGD,eAAO,MAAM,WAAW,GAAa,KAAK,UAAU,KAAG,MAYtD,CAAA;AAED,eAAO,MAAM,WAAW,GAAa,KAAK,UAAU,KAAG,MAyBtD,CAAA;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQrD;AASD,wBAAgB,QAAQ,CAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAEnD;AAED,wBAAgB,QAAQ,CAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,CAIhF"} |
| import { isIPv4 } from '@chainsafe/is-ip'; | ||
| import { base32 } from 'multiformats/bases/base32'; | ||
| import { bases } from 'multiformats/basics'; | ||
| import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; | ||
| import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; | ||
| import { toString as uint8ArrayToString } from 'uint8arrays/to-string'; | ||
| import { InvalidMultiaddrError } from "./errors.js"; | ||
| export function bytesToString(base) { | ||
| return (buf) => { | ||
| return uint8ArrayToString(buf, base); | ||
| }; | ||
| } | ||
| export function stringToBytes(base) { | ||
| return (buf) => { | ||
| return uint8ArrayFromString(buf, base); | ||
| }; | ||
| } | ||
| export function bytes2port(buf) { | ||
| const view = new DataView(buf.buffer); | ||
| return view.getUint16(buf.byteOffset).toString(); | ||
| } | ||
| export function port2bytes(port) { | ||
| const buf = new ArrayBuffer(2); | ||
| const view = new DataView(buf); | ||
| view.setUint16(0, typeof port === 'string' ? parseInt(port) : port); | ||
| return new Uint8Array(buf); | ||
| } | ||
| export function onion2bytes(str) { | ||
| const addr = str.split(':'); | ||
| if (addr.length !== 2) { | ||
| throw new Error(`failed to parse onion addr: ["'${addr.join('", "')}'"]' does not contain a port number`); | ||
| } | ||
| if (addr[0].length !== 16) { | ||
| throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion address.`); | ||
| } | ||
| // onion addresses do not include the multibase prefix, add it before decoding | ||
| const buf = uint8ArrayFromString(addr[0], 'base32'); | ||
| // onion port number | ||
| const port = parseInt(addr[1], 10); | ||
| if (port < 1 || port > 65536) { | ||
| throw new Error('Port number is not in range(1, 65536)'); | ||
| } | ||
| const portBuf = port2bytes(port); | ||
| return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length); | ||
| } | ||
| export function onion32bytes(str) { | ||
| const addr = str.split(':'); | ||
| if (addr.length !== 2) { | ||
| throw new Error(`failed to parse onion addr: ["'${addr.join('", "')}'"]' does not contain a port number`); | ||
| } | ||
| if (addr[0].length !== 56) { | ||
| throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion3 address.`); | ||
| } | ||
| // onion addresses do not include the multibase prefix, add it before decoding | ||
| const buf = base32.decode(`b${addr[0]}`); | ||
| // onion port number | ||
| const port = parseInt(addr[1], 10); | ||
| if (port < 1 || port > 65536) { | ||
| throw new Error('Port number is not in range(1, 65536)'); | ||
| } | ||
| const portBuf = port2bytes(port); | ||
| return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length); | ||
| } | ||
| export function bytes2onion(buf) { | ||
| const addrBytes = buf.subarray(0, buf.length - 2); | ||
| const portBytes = buf.subarray(buf.length - 2); | ||
| const addr = uint8ArrayToString(addrBytes, 'base32'); | ||
| const port = bytes2port(portBytes); | ||
| return `${addr}:${port}`; | ||
| } | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7 | ||
| // but with buf/offset args removed because we don't use them | ||
| export const ip4ToBytes = function (ip) { | ||
| ip = ip.toString().trim(); | ||
| const bytes = new Uint8Array(4); | ||
| ip.split(/\./g).forEach((byte, index) => { | ||
| const value = parseInt(byte, 10); | ||
| if (isNaN(value) || value < 0 || value > 0xff) { | ||
| throw new InvalidMultiaddrError('Invalid byte value in IP address'); | ||
| } | ||
| bytes[index] = value; | ||
| }); | ||
| return bytes; | ||
| }; | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7 | ||
| // but with buf/offset args removed because we don't use them | ||
| export const ip6ToBytes = function (ip) { | ||
| let offset = 0; | ||
| ip = ip.toString().trim(); | ||
| const sections = ip.split(':', 8); | ||
| let i; | ||
| for (i = 0; i < sections.length; i++) { | ||
| const isv4 = isIPv4(sections[i]); | ||
| let v4Buffer; | ||
| if (isv4) { | ||
| v4Buffer = ip4ToBytes(sections[i]); | ||
| sections[i] = uint8ArrayToString(v4Buffer.subarray(0, 2), 'base16'); | ||
| } | ||
| if (v4Buffer != null && ++i < 8) { | ||
| sections.splice(i, 0, uint8ArrayToString(v4Buffer.subarray(2, 4), 'base16')); | ||
| } | ||
| } | ||
| if (sections[0] === '') { | ||
| while (sections.length < 8) { | ||
| sections.unshift('0'); | ||
| } | ||
| } | ||
| else if (sections[sections.length - 1] === '') { | ||
| while (sections.length < 8) { | ||
| sections.push('0'); | ||
| } | ||
| } | ||
| else if (sections.length < 8) { | ||
| for (i = 0; i < sections.length && sections[i] !== ''; i++) { } | ||
| const argv = [i, 1]; | ||
| for (i = 9 - sections.length; i > 0; i--) { | ||
| argv.push('0'); | ||
| } | ||
| sections.splice.apply(sections, argv); | ||
| } | ||
| const bytes = new Uint8Array(offset + 16); | ||
| for (i = 0; i < sections.length; i++) { | ||
| if (sections[i] === '') { | ||
| sections[i] = '0'; | ||
| } | ||
| const word = parseInt(sections[i], 16); | ||
| if (isNaN(word) || word < 0 || word > 0xffff) { | ||
| throw new InvalidMultiaddrError('Invalid byte value in IP address'); | ||
| } | ||
| bytes[offset++] = (word >> 8) & 0xff; | ||
| bytes[offset++] = word & 0xff; | ||
| } | ||
| return bytes; | ||
| }; | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L63 | ||
| export const ip4ToString = function (buf) { | ||
| if (buf.byteLength !== 4) { | ||
| throw new InvalidMultiaddrError('IPv4 address was incorrect length'); | ||
| } | ||
| const result = []; | ||
| for (let i = 0; i < buf.byteLength; i++) { | ||
| result.push(buf[i]); | ||
| } | ||
| return result.join('.'); | ||
| }; | ||
| export const ip6ToString = function (buf) { | ||
| if (buf.byteLength !== 16) { | ||
| throw new InvalidMultiaddrError('IPv6 address was incorrect length'); | ||
| } | ||
| const result = []; | ||
| for (let i = 0; i < buf.byteLength; i += 2) { | ||
| const byte1 = buf[i]; | ||
| const byte2 = buf[i + 1]; | ||
| const tuple = `${byte1.toString(16).padStart(2, '0')}${byte2.toString(16).padStart(2, '0')}`; | ||
| result.push(tuple); | ||
| } | ||
| const ip = result.join(':'); | ||
| try { | ||
| const url = new URL(`http://[${ip}]`); | ||
| return url.hostname.substring(1, url.hostname.length - 1); | ||
| } | ||
| catch { | ||
| throw new InvalidMultiaddrError(`Invalid IPv6 address "${ip}"`); | ||
| } | ||
| }; | ||
| export function ip6StringToValue(str) { | ||
| try { | ||
| const url = new URL(`http://[${str}]`); | ||
| return url.hostname.substring(1, url.hostname.length - 1); | ||
| } | ||
| catch { | ||
| throw new InvalidMultiaddrError(`Invalid IPv6 address "${str}"`); | ||
| } | ||
| } | ||
| const decoders = Object.values(bases).map((c) => c.decoder); | ||
| const anybaseDecoder = (function () { | ||
| let acc = decoders[0].or(decoders[1]); | ||
| decoders.slice(2).forEach((d) => (acc = acc.or(d))); | ||
| return acc; | ||
| })(); | ||
| export function mb2bytes(mbstr) { | ||
| return anybaseDecoder.decode(mbstr); | ||
| } | ||
| export function bytes2mb(base) { | ||
| return (buf) => { | ||
| return base.encoder.encode(buf); | ||
| }; | ||
| } | ||
| //# sourceMappingURL=utils.js.map |
| {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"} |
+239
| import { isIPv4 } from '@chainsafe/is-ip' | ||
| import { base32 } from 'multiformats/bases/base32' | ||
| import { bases } from 'multiformats/basics' | ||
| import { concat as uint8ArrayConcat } from 'uint8arrays/concat' | ||
| import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' | ||
| import { toString as uint8ArrayToString } from 'uint8arrays/to-string' | ||
| import { InvalidMultiaddrError } from './errors.ts' | ||
| import type { MultibaseCodec } from 'multiformats' | ||
| import type { SupportedEncodings } from 'uint8arrays/to-string' | ||
| export function bytesToString (base: SupportedEncodings): (buf: Uint8Array) => string { | ||
| return (buf) => { | ||
| return uint8ArrayToString(buf, base) | ||
| } | ||
| } | ||
| export function stringToBytes (base: SupportedEncodings): (value: string) => Uint8Array { | ||
| return (buf) => { | ||
| return uint8ArrayFromString(buf, base) | ||
| } | ||
| } | ||
| export function bytes2port (buf: Uint8Array): string { | ||
| const view = new DataView(buf.buffer) | ||
| return view.getUint16(buf.byteOffset).toString() | ||
| } | ||
| export function port2bytes (port: string | number): Uint8Array { | ||
| const buf = new ArrayBuffer(2) | ||
| const view = new DataView(buf) | ||
| view.setUint16(0, typeof port === 'string' ? parseInt(port) : port) | ||
| return new Uint8Array(buf) | ||
| } | ||
| export function onion2bytes (str: string): Uint8Array { | ||
| const addr = str.split(':') | ||
| if (addr.length !== 2) { | ||
| throw new Error(`failed to parse onion addr: ["'${addr.join('", "')}'"]' does not contain a port number`) | ||
| } | ||
| if (addr[0].length !== 16) { | ||
| throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion address.`) | ||
| } | ||
| // onion addresses do not include the multibase prefix, add it before decoding | ||
| const buf = uint8ArrayFromString(addr[0], 'base32') | ||
| // onion port number | ||
| const port = parseInt(addr[1], 10) | ||
| if (port < 1 || port > 65536) { | ||
| throw new Error('Port number is not in range(1, 65536)') | ||
| } | ||
| const portBuf = port2bytes(port) | ||
| return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length) | ||
| } | ||
| export function onion32bytes (str: string): Uint8Array { | ||
| const addr = str.split(':') | ||
| if (addr.length !== 2) { | ||
| throw new Error(`failed to parse onion addr: ["'${addr.join('", "')}'"]' does not contain a port number`) | ||
| } | ||
| if (addr[0].length !== 56) { | ||
| throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion3 address.`) | ||
| } | ||
| // onion addresses do not include the multibase prefix, add it before decoding | ||
| const buf = base32.decode(`b${addr[0]}`) | ||
| // onion port number | ||
| const port = parseInt(addr[1], 10) | ||
| if (port < 1 || port > 65536) { | ||
| throw new Error('Port number is not in range(1, 65536)') | ||
| } | ||
| const portBuf = port2bytes(port) | ||
| return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length) | ||
| } | ||
| export function bytes2onion (buf: Uint8Array): string { | ||
| const addrBytes = buf.subarray(0, buf.length - 2) | ||
| const portBytes = buf.subarray(buf.length - 2) | ||
| const addr = uint8ArrayToString(addrBytes, 'base32') | ||
| const port = bytes2port(portBytes) | ||
| return `${addr}:${port}` | ||
| } | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7 | ||
| // but with buf/offset args removed because we don't use them | ||
| export const ip4ToBytes = function (ip: string): Uint8Array { | ||
| ip = ip.toString().trim() | ||
| const bytes = new Uint8Array(4) | ||
| ip.split(/\./g).forEach((byte, index) => { | ||
| const value = parseInt(byte, 10) | ||
| if (isNaN(value) || value < 0 || value > 0xff) { | ||
| throw new InvalidMultiaddrError('Invalid byte value in IP address') | ||
| } | ||
| bytes[index] = value | ||
| }) | ||
| return bytes | ||
| } | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7 | ||
| // but with buf/offset args removed because we don't use them | ||
| export const ip6ToBytes = function (ip: string): Uint8Array { | ||
| let offset = 0 | ||
| ip = ip.toString().trim() | ||
| const sections = ip.split(':', 8) | ||
| let i | ||
| for (i = 0; i < sections.length; i++) { | ||
| const isv4 = isIPv4(sections[i]) | ||
| let v4Buffer: Uint8Array | undefined | ||
| if (isv4) { | ||
| v4Buffer = ip4ToBytes(sections[i]) | ||
| sections[i] = uint8ArrayToString(v4Buffer.subarray(0, 2), 'base16') | ||
| } | ||
| if (v4Buffer != null && ++i < 8) { | ||
| sections.splice(i, 0, uint8ArrayToString(v4Buffer.subarray(2, 4), 'base16')) | ||
| } | ||
| } | ||
| if (sections[0] === '') { | ||
| while (sections.length < 8) { sections.unshift('0') } | ||
| } else if (sections[sections.length - 1] === '') { | ||
| while (sections.length < 8) { sections.push('0') } | ||
| } else if (sections.length < 8) { | ||
| for (i = 0; i < sections.length && sections[i] !== ''; i++) { } | ||
| const argv: [number, number, ...string[]] = [i, 1] | ||
| for (i = 9 - sections.length; i > 0; i--) { | ||
| argv.push('0') | ||
| } | ||
| sections.splice.apply(sections, argv) | ||
| } | ||
| const bytes = new Uint8Array(offset + 16) | ||
| for (i = 0; i < sections.length; i++) { | ||
| if (sections[i] === '') { | ||
| sections[i] = '0' | ||
| } | ||
| const word = parseInt(sections[i], 16) | ||
| if (isNaN(word) || word < 0 || word > 0xffff) { | ||
| throw new InvalidMultiaddrError('Invalid byte value in IP address') | ||
| } | ||
| bytes[offset++] = (word >> 8) & 0xff | ||
| bytes[offset++] = word & 0xff | ||
| } | ||
| return bytes | ||
| } | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L63 | ||
| export const ip4ToString = function (buf: Uint8Array): string { | ||
| if (buf.byteLength !== 4) { | ||
| throw new InvalidMultiaddrError('IPv4 address was incorrect length') | ||
| } | ||
| const result = [] | ||
| for (let i = 0; i < buf.byteLength; i++) { | ||
| result.push(buf[i]) | ||
| } | ||
| return result.join('.') | ||
| } | ||
| export const ip6ToString = function (buf: Uint8Array): string { | ||
| if (buf.byteLength !== 16) { | ||
| throw new InvalidMultiaddrError('IPv6 address was incorrect length') | ||
| } | ||
| const result: string[] = [] | ||
| for (let i = 0; i < buf.byteLength; i += 2) { | ||
| const byte1 = buf[i] | ||
| const byte2 = buf[i + 1] | ||
| const tuple = `${byte1.toString(16).padStart(2, '0')}${byte2.toString(16).padStart(2, '0')}` | ||
| result.push(tuple) | ||
| } | ||
| const ip = result.join(':') | ||
| try { | ||
| const url = new URL(`http://[${ip}]`) | ||
| return url.hostname.substring(1, url.hostname.length - 1) | ||
| } catch { | ||
| throw new InvalidMultiaddrError(`Invalid IPv6 address "${ip}"`) | ||
| } | ||
| } | ||
| export function ip6StringToValue (str: string): string { | ||
| try { | ||
| const url = new URL(`http://[${str}]`) | ||
| return url.hostname.substring(1, url.hostname.length - 1) | ||
| } catch { | ||
| throw new InvalidMultiaddrError(`Invalid IPv6 address "${str}"`) | ||
| } | ||
| } | ||
| const decoders = Object.values(bases).map((c) => c.decoder) | ||
| const anybaseDecoder = (function () { | ||
| let acc = decoders[0].or(decoders[1]) | ||
| decoders.slice(2).forEach((d) => (acc = acc.or(d))) | ||
| return acc | ||
| })() | ||
| export function mb2bytes (mbstr: string): Uint8Array { | ||
| return anybaseDecoder.decode(mbstr) | ||
| } | ||
| export function bytes2mb (base: MultibaseCodec<any>): (buf: Uint8Array) => string { | ||
| return (buf) => { | ||
| return base.encoder.encode(buf) | ||
| } | ||
| } |
| (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.MultiformatsMultiaddr = factory()}(typeof self !== 'undefined' ? self : this, function () { | ||
| "use strict";var MultiformatsMultiaddr=(()=>{var Ne=Object.defineProperty;var Rr=Object.getOwnPropertyDescriptor;var Mr=Object.getOwnPropertyNames;var Lr=Object.prototype.hasOwnProperty;var b=(r,t)=>{for(var e in t)Ne(r,e,{get:t[e],enumerable:!0})},Vr=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Mr(t))!Lr.call(r,o)&&o!==e&&Ne(r,o,{get:()=>t[o],enumerable:!(n=Rr(t,o))||n.enumerable});return r};var kr=r=>Vr(Ne({},"__esModule",{value:!0}),r);var Co={};b(Co,{CODE_CERTHASH:()=>ir,CODE_DCCP:()=>Wt,CODE_DNS:()=>De,CODE_DNS4:()=>Se,CODE_DNS6:()=>le,CODE_DNSADDR:()=>Te,CODE_GARLIC32:()=>Zt,CODE_GARLIC64:()=>Kt,CODE_HTTP:()=>sr,CODE_HTTPS:()=>cr,CODE_HTTP_PATH:()=>ar,CODE_IP4:()=>de,CODE_IP6:()=>Z,CODE_IP6ZONE:()=>Ie,CODE_IPCIDR:()=>jt,CODE_MEMORY:()=>gr,CODE_NOISE:()=>tr,CODE_ONION:()=>Jt,CODE_ONION3:()=>Qt,CODE_P2P:()=>Pe,CODE_P2P_CIRCUIT:()=>Ae,CODE_P2P_STARDUST:()=>lr,CODE_P2P_WEBRTC_DIRECT:()=>hr,CODE_P2P_WEBRTC_STAR:()=>fr,CODE_P2P_WEBSOCKET_STAR:()=>ur,CODE_QUIC:()=>rr,CODE_QUIC_V1:()=>nr,CODE_SCTP:()=>qt,CODE_SNI:()=>er,CODE_TCP:()=>pe,CODE_TLS:()=>Yt,CODE_UDP:()=>ue,CODE_UDT:()=>Ht,CODE_UNIX:()=>Xt,CODE_UTP:()=>Gt,CODE_WEBRTC:()=>xr,CODE_WEBRTC_DIRECT:()=>mr,CODE_WEBTRANSPORT:()=>or,CODE_WS:()=>dr,CODE_WSS:()=>pr,MultiaddrFilter:()=>_e,fromNodeAddress:()=>xo,fromStringTuples:()=>wo,fromTuples:()=>go,isMultiaddr:()=>Oe,isName:()=>bo,multiaddr:()=>F,protocols:()=>yo,resolvers:()=>wt});var Re={};b(Re,{base10:()=>Xr});var vo=new Uint8Array(0);function bt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function O(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function yt(r){return new TextEncoder().encode(r)}function Ct(r){return new TextDecoder().decode(r)}function $r(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var o=0;o<r.length;o++){var i=r.charAt(o),s=i.charCodeAt(0);if(e[s]!==255)throw new TypeError(i+" is ambiguous");e[s]=o}var a=r.length,c=r.charAt(0),d=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function P(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var w=0,M=0,v=0,D=p.length;v!==D&&p[v]===0;)v++,w++;for(var S=(D-v)*f+1>>>0,y=new Uint8Array(S);v!==D;){for(var T=p[v],N=0,I=S-1;(T!==0||N<M)&&I!==-1;I--,N++)T+=256*y[I]>>>0,y[I]=T%a>>>0,T=T/a>>>0;if(T!==0)throw new Error("Non-zero carry");M=N,v++}for(var A=S-M;A!==S&&y[A]===0;)A++;for(var xe=c.repeat(w);A<S;++A)xe+=r.charAt(y[A]);return xe}function R(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var w=0;if(p[w]!==" "){for(var M=0,v=0;p[w]===c;)M++,w++;for(var D=(p.length-w)*d+1>>>0,S=new Uint8Array(D);p[w];){var y=e[p.charCodeAt(w)];if(y===255)return;for(var T=0,N=D-1;(y!==0||T<v)&&N!==-1;N--,T++)y+=a*S[N]>>>0,S[N]=y%256>>>0,y=y/256>>>0;if(y!==0)throw new Error("Non-zero carry");v=T,w++}if(p[w]!==" "){for(var I=D-v;I!==D&&S[I]===0;)I++;for(var A=new Uint8Array(M+(D-I)),xe=M;I!==D;)A[xe++]=S[I++];return A}}}function Fr(p){var w=R(p);if(w)return w;throw new Error(`Non-${t} character`)}return{encode:P,decodeUnsafe:R,decode:Fr}}var Wr=$r,jr=Wr,vt=jr;var Ue=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Be=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return It(this,t)}},ze=class{decoders;constructor(t){this.decoders=t}or(t){return It(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function It(r,t){return new ze({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var Fe=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ue(t,e,n),this.decoder=new Be(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function q({name:r,prefix:t,encode:e,decode:n}){return new Fe(r,t,e,n)}function U({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=vt(e,r);return q({prefix:t,name:r,encode:n,decode:i=>O(o(i))})}function qr(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*e/8|0),s=0,a=0,c=0;for(let d=0;d<o;++d){let f=t[r[d]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|f,s+=e,s>=8&&(s-=8,i[c++]=255&a>>s)}if(s>=e||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return i}function Hr(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,i="",s=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],s+=8;s>e;)s-=e,i+=t[o&a>>s];if(s!==0&&(i+=t[o&a<<e-s]),n)for(;(i.length*e&7)!==0;)i+="=";return i}function Gr(r){let t={};for(let e=0;e<r.length;++e)t[r[e]]=e;return t}function l({name:r,prefix:t,bitsPerChar:e,alphabet:n}){let o=Gr(n);return q({prefix:t,name:r,encode(i){return Hr(i,n,e)},decode(i){return qr(i,o,e,r)}})}var Xr=U({prefix:"9",name:"base10",alphabet:"0123456789"});var Me={};b(Me,{base16:()=>Jr,base16upper:()=>Qr});var Jr=l({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Qr=l({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Le={};b(Le,{base2:()=>Kr});var Kr=l({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ve={};b(Ve,{base256emoji:()=>rn});var Dt=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Zr=Dt.reduce((r,t,e)=>(r[e]=t,r),[]),Yr=Dt.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function en(r){return r.reduce((t,e)=>(t+=Zr[e],t),"")}function tn(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=Yr[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var rn=q({prefix:"\u{1F680}",name:"base256emoji",encode:en,decode:tn});var ke={};b(ke,{base32:()=>B,base32hex:()=>an,base32hexpad:()=>dn,base32hexpadupper:()=>pn,base32hexupper:()=>cn,base32pad:()=>on,base32padupper:()=>sn,base32upper:()=>nn,base32z:()=>un});var B=l({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),nn=l({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),on=l({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),sn=l({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),an=l({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),cn=l({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),dn=l({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),pn=l({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),un=l({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var $e={};b($e,{base36:()=>te,base36upper:()=>ln});var te=U({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ln=U({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var We={};b(We,{base58btc:()=>C,base58flickr:()=>fn});var C=U({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),fn=U({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var qe={};b(qe,{base64:()=>hn,base64pad:()=>mn,base64url:()=>je,base64urlpad:()=>xn});var hn=l({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),mn=l({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),je=l({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),xn=l({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var He={};b(He,{base8:()=>gn});var gn=l({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ge={};b(Ge,{identity:()=>wn});var wn=q({prefix:"\0",name:"identity",encode:r=>Ct(r),decode:r=>yt(r)});var Lo=new TextEncoder,Vo=new TextDecoder;var Je={};b(Je,{identity:()=>kn});var Cn=Pt,St=128,En=127,vn=~En,In=Math.pow(2,31);function Pt(r,t,e){t=t||[],e=e||0;for(var n=e;r>=In;)t[e++]=r&255|St,r/=128;for(;r&vn;)t[e++]=r&255|St,r>>>=7;return t[e]=r|0,Pt.bytes=e-n+1,t}var Dn=Xe,Sn=128,Tt=127;function Xe(r,n){var e=0,n=n||0,o=0,i=n,s,a=r.length;do{if(i>=a)throw Xe.bytes=0,new RangeError("Could not decode varint");s=r[i++],e+=o<28?(s&Tt)<<o:(s&Tt)*Math.pow(2,o),o+=7}while(s>=Sn);return Xe.bytes=i-n,e}var Tn=Math.pow(2,7),Pn=Math.pow(2,14),An=Math.pow(2,21),On=Math.pow(2,28),_n=Math.pow(2,35),Nn=Math.pow(2,42),Un=Math.pow(2,49),Bn=Math.pow(2,56),zn=Math.pow(2,63),Fn=function(r){return r<Tn?1:r<Pn?2:r<An?3:r<On?4:r<_n?5:r<Nn?6:r<Un?7:r<Bn?8:r<zn?9:10},Rn={encode:Cn,decode:Dn,encodingLength:Fn},Mn=Rn,re=Mn;function ne(r,t=0){return[re.decode(r,t),re.decode.bytes]}function H(r,t,e=0){return re.encode(r,t,e),t}function G(r){return re.encodingLength(r)}function L(r,t){let e=t.byteLength,n=G(r),o=n+G(e),i=new Uint8Array(o+e);return H(r,i,0),H(e,i,n),i.set(t,o),new X(r,e,t,i)}function At(r){let t=O(r),[e,n]=ne(t),[o,i]=ne(t.subarray(n)),s=t.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new X(e,o,s,t)}function Ot(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&bt(r.bytes,e.bytes)}}var X=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=n,this.bytes=o}};var _t=0,Ln="identity",Nt=O;function Vn(r){return L(_t,Nt(r))}var kn={code:_t,name:Ln,encode:Nt,digest:Vn};var Ze={};b(Ze,{sha256:()=>$n,sha512:()=>Wn});function Ke({name:r,code:t,encode:e}){return new Qe(r,t,e)}var Qe=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?L(this.code,e):e.then(n=>L(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Bt(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var $n=Ke({name:"sha2-256",code:18,encode:Bt("SHA-256")}),Wn=Ke({name:"sha2-512",code:19,encode:Bt("SHA-512")});function zt(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return qn(e,Ye(r),t??C.encoder);default:return Hn(e,Ye(r),t??B.encoder)}}var Ft=new WeakMap;function Ye(r){let t=Ft.get(r);if(t==null){let e=new Map;return Ft.set(r,e),e}return t}var z=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==ie)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==Gn)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=L(t,e);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&Ot(t.multihash,n.multihash)}toString(t){return zt(this,t)}toJSON(){return{"/":zt(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:o,multihash:i,bytes:s}=e;return new r(n,o,i,s??Rt(n,o,i.bytes))}else if(e[Xn]===!0){let{version:n,multihash:o,code:i}=e,s=At(o);return r.create(n,i,s)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==ie)throw new Error(`Version 0 CID must use dag-pb (code: ${ie}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Rt(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,ie,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,o=O(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let i=o.subarray(e.multihashSize-e.digestSize),s=new X(e.multihashCode,e.digestSize,i,o);return[e.version===0?r.createV0(s):r.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[P,R]=ne(t.subarray(e));return e+=R,P},o=n(),i=ie;if(o===18?(o=0,e=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=e,a=n(),c=n(),d=e+c,f=d-s;return{version:o,codec:i,multihashCode:a,digestSize:c,multihashSize:f,size:d}}static parse(t,e){let[n,o]=jn(t,e),i=r.decode(o);if(i.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ye(i).set(n,t),i}};function jn(r,t){switch(r[0]){case"Q":{let e=t??C;return[C.prefix,e.decode(`${C.prefix}${r}`)]}case C.prefix:{let e=t??C;return[C.prefix,e.decode(r)]}case B.prefix:{let e=t??B;return[B.prefix,e.decode(r)]}case te.prefix:{let e=t??te;return[te.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function qn(r,t,e){let{prefix:n}=e;if(n!==C.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let i=e.encode(r).slice(1);return t.set(n,i),i}else return o}function Hn(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let i=e.encode(r);return t.set(n,i),i}else return o}var ie=112,Gn=18;function Rt(r,t,e){let n=G(r),o=n+G(t),i=new Uint8Array(o+e.byteLength);return H(r,i,0),H(t,i,n),i.set(e,o),i}var Xn=Symbol.for("@ipld/js-cid/CID");var se={...Ge,...Le,...He,...Re,...Me,...ke,...$e,...We,...qe,...Ve},ci={...Ze,...Je};function ae(r=0){return new Uint8Array(r)}function Lt(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Mt=Lt("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),et=Lt("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=ae(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),Jn={utf8:Mt,"utf-8":Mt,hex:se.base16,latin1:et,ascii:et,binary:et,...se},we=Jn;function E(r,t="utf8"){let e=we[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var h=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},_=class extends Error{static name="ValidationError";name="ValidationError"},V=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},be=class extends Error{static name="InvalidProtocolError";name="InvalidProtocolError"};function Vt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function k(r,t="utf8"){let e=we[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}var Qn=Math.pow(2,7),Kn=Math.pow(2,14),Zn=Math.pow(2,21),tt=Math.pow(2,28),rt=Math.pow(2,35),nt=Math.pow(2,42),ot=Math.pow(2,49),u=128,x=127;function J(r){if(r<Qn)return 1;if(r<Kn)return 2;if(r<Zn)return 3;if(r<tt)return 4;if(r<rt)return 5;if(r<nt)return 6;if(r<ot)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function it(r,t,e=0){switch(J(r)){case 8:t[e++]=r&255|u,r/=128;case 7:t[e++]=r&255|u,r/=128;case 6:t[e++]=r&255|u,r/=128;case 5:t[e++]=r&255|u,r/=128;case 4:t[e++]=r&255|u,r>>>=7;case 3:t[e++]=r&255|u,r>>>=7;case 2:t[e++]=r&255|u,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Yn(r,t){let e=r[t],n=0;if(n+=e&x,e<u||(e=r[t+1],n+=(e&x)<<7,e<u)||(e=r[t+2],n+=(e&x)<<14,e<u)||(e=r[t+3],n+=(e&x)<<21,e<u)||(e=r[t+4],n+=(e&x)*tt,e<u)||(e=r[t+5],n+=(e&x)*rt,e<u)||(e=r[t+6],n+=(e&x)*nt,e<u)||(e=r[t+7],n+=(e&x)*ot,e<u))return n;throw new RangeError("Could not decode varint")}function eo(r,t){let e=r.get(t),n=0;if(n+=e&x,e<u||(e=r.get(t+1),n+=(e&x)<<7,e<u)||(e=r.get(t+2),n+=(e&x)<<14,e<u)||(e=r.get(t+3),n+=(e&x)<<21,e<u)||(e=r.get(t+4),n+=(e&x)*tt,e<u)||(e=r.get(t+5),n+=(e&x)*rt,e<u)||(e=r.get(t+6),n+=(e&x)*nt,e<u)||(e=r.get(t+7),n+=(e&x)*ot,e<u))return n;throw new RangeError("Could not decode varint")}function st(r,t=0){return r instanceof Uint8Array?Yn(r,t):eo(r,t)}function ce(r,t){t==null&&(t=r.reduce((o,i)=>o+i.length,0));let e=ae(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return e}var ye=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,o){return this.readAtomically(()=>{let i=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",d=2**(8*o)-1;for(;;){let f=this.readAtomically(()=>{let P=this.readChar();if(P===void 0)return;let R=Number.parseInt(P,t);if(!Number.isNaN(R))return R});if(f===void 0)break;if(i*=t,i+=f,i>d||(s+=1,e!==void 0&&s>e))return}if(s!==0)return!n&&c&&s>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let o=n*2;if(n<e.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return e[o]=s[0],e[o+1]=s[1],e[o+2]=s[2],e[o+3]=s[3],[o+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[o,!1];e[o]=i>>8,e[o+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),s=16-(n+2),[a]=t(i.subarray(0,s));return e.set(i.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var kt=45,ro=15,Q=new ye;function Ce(r){if(!(r.length>ro))return Q.new(r).parseWith(()=>Q.readIPv4Addr())}function Ee(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>kt))return Q.new(r).parseWith(()=>Q.readIPv6Addr())}function K(r,t=!1){if(r.includes("%")&&(r=r.split("%")[0]),r.length>kt)return;let e=Q.new(r).parseWith(()=>Q.readIPAddr());if(e)return t&&e.length===4?Uint8Array.from([0,0,0,0,0,0,0,0,0,0,255,255,e[0],e[1],e[2],e[3]]):e}function ve(r){return!!Ce(r)}function $t(r){return!!Ee(r)}var de=4,pe=6,ue=273,Wt=33,Z=41,Ie=42,jt=43,De=53,Se=54,le=55,Te=56,qt=132,Ht=301,Gt=302,Xt=400,Pe=421,Jt=444,Qt=445,Kt=446,Zt=447,Yt=448,er=449,tr=454,rr=460,nr=461,or=465,ir=466,sr=480,ar=481,cr=443,dr=477,pr=478,ur=479,lr=277,fr=275,hr=276,mr=280,xr=281,Ae=290,gr=777;function wr(r,t,e){let n=0;for(let o of r)if(!(n<t)){if(n>e)break;if(o!==255)return!1;n++}return!0}function br(r,t,e,n){let o=0;for(let i of r)if(!(o<e)){if(o>n)break;if(i!==t[o])return!1;o++}return!0}function at(r){switch(r.length){case $:return r.join(".");case W:{let t=[];for(let e=0;e<r.length;e++)e%2===0&&t.push(r[e].toString(16).padStart(2,"0")+r[e+1].toString(16).padStart(2,"0"));return t.join(":")}default:throw new Error("Invalid ip length")}}function yr(r){let t=0;for(let[e,n]of r.entries()){if(n===255){t+=8;continue}for(;(n&128)!=0;)t++,n=n<<1;if((n&128)!=0)return-1;for(let o=e+1;o<r.length;o++)if(r[o]!=0)return-1;break}return t}function Cr(r){let t="0x";for(let e of r)t+=(e>>4).toString(16)+(e&15).toString(16);return t}var $=4,W=16,Fi=parseInt("0xFFFF",16),no=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function fe(r,t){t.length===W&&r.length===$&&wr(t,0,11)&&(t=t.slice(12)),t.length===$&&r.length===W&&br(r,no,0,11)&&(r=r.slice(12));let e=r.length;if(e!=t.length)throw new Error("Failed to mask ip");let n=new Uint8Array(e);for(let o=0;o<e;o++)n[o]=r[o]&t[o];return n}function Er(r,t){if(typeof t=="string"&&(t=K(t)),t==null)throw new Error("Invalid ip");if(t.length!==r.network.length)return!1;for(let e=0;e<t.length;e++)if((r.network[e]&r.mask[e])!==(t[e]&r.mask[e]))return!1;return!0}function ct(r){let[t,e]=r.split("/");if(!t||!e)throw new Error("Failed to parse given CIDR: "+r);let n=$,o=Ce(t);if(o==null&&(n=W,o=Ee(t),o==null))throw new Error("Failed to parse given CIDR: "+r);let i=parseInt(e,10);if(Number.isNaN(i)||String(i).length!==e.length||i<0||i>n*8)throw new Error("Failed to parse given CIDR: "+r);let s=dt(i,8*n);return{network:fe(o,s),mask:s}}function dt(r,t){if(t!==8*$&&t!==8*W)throw new Error("Invalid CIDR mask");if(r<0||r>t)throw new Error("Invalid CIDR mask");let e=t/8,n=new Uint8Array(e);for(let o=0;o<e;o++){if(r>=8){n[o]=255,r-=8;continue}n[o]=255-(255>>r),r=0}return n}var Y=class{constructor(t,e){if(e==null)({network:this.network,mask:this.mask}=ct(t));else{let n=K(t);if(n==null)throw new Error("Failed to parse network");e=String(e);let o=parseInt(e,10);if(Number.isNaN(o)||String(o).length!==e.length||o<0||o>n.length*8){let i=K(e);if(i==null)throw new Error("Failed to parse mask");this.mask=i}else this.mask=dt(o,8*n.length);this.network=fe(n,this.mask)}}contains(t){return Er({network:this.network,mask:this.mask},t)}toString(){let t=yr(this.mask),e=t!==-1?String(t):Cr(this.mask);return at(this.network)+"/"+e}};function ut(r){return t=>E(t,r)}function lt(r){return t=>k(t,r)}function ee(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function j(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(t)}function vr(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=k(t[0],"base32"),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=j(n);return ce([e,o],e.length+o.length)}function Ir(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=B.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=j(n);return ce([e,o],e.length+o.length)}function ft(r){let t=r.subarray(0,r.length-2),e=r.subarray(r.length-2),n=E(t,"base32"),o=ee(e);return`${n}:${o}`}var ht=function(r){r=r.toString().trim();let t=new Uint8Array(4);return r.split(/\./g).forEach((e,n)=>{let o=parseInt(e,10);if(isNaN(o)||o<0||o>255)throw new h("Invalid byte value in IP address");t[n]=o}),t},Dr=function(r){let t=0;r=r.toString().trim();let e=r.split(":",8),n;for(n=0;n<e.length;n++){let i=ve(e[n]),s;i&&(s=ht(e[n]),e[n]=E(s.subarray(0,2),"base16")),s!=null&&++n<8&&e.splice(n,0,E(s.subarray(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let i=[n,1];for(n=9-e.length;n>0;n--)i.push("0");e.splice.apply(e,i)}let o=new Uint8Array(t+16);for(n=0;n<e.length;n++){e[n]===""&&(e[n]="0");let i=parseInt(e[n],16);if(isNaN(i)||i<0||i>65535)throw new h("Invalid byte value in IP address");o[t++]=i>>8&255,o[t++]=i&255}return o},Sr=function(r){if(r.byteLength!==4)throw new h("IPv4 address was incorrect length");let t=[];for(let e=0;e<r.byteLength;e++)t.push(r[e]);return t.join(".")},Tr=function(r){if(r.byteLength!==16)throw new h("IPv6 address was incorrect length");let t=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],i=r[n+1],s=`${o.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`;t.push(s)}let e=t.join(":");try{let n=new URL(`http://[${e}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new h(`Invalid IPv6 address "${e}"`)}};function Pr(r){try{let t=new URL(`http://[${r}]`);return t.hostname.substring(1,t.hostname.length-1)}catch{throw new h(`Invalid IPv6 address "${r}"`)}}var pt=Object.values(se).map(r=>r.decoder),oo=function(){let r=pt[0].or(pt[1]);return pt.slice(2).forEach(t=>r=r.or(t)),r}();function Ar(r){return oo.decode(r)}function Or(r){return t=>r.encoder.encode(t)}function _r(r){let t,e;if(r.getComponents().forEach(n=>{(n.name==="ip4"||n.name==="ip6")&&(e=n.value),n.name==="ipcidr"&&(t=n.value)}),t==null||e==null)throw new Error("Invalid multiaddr");return new Y(e,t)}function io(r){if(parseInt(r).toString()!==r)throw new _("Value must be an integer")}function so(r){if(r<0)throw new _("Value must be a positive integer, or zero")}function ao(r){return t=>{if(t>r)throw new _(`Value must be smaller than or equal to ${r}`)}}function co(...r){return t=>{for(let e of r)e(t)}}var he=co(io,so,ao(65535));var m=-1,mt=class{protocolsByCode=new Map;protocolsByName=new Map;getCodec(t){let e;if(typeof t=="string"?e=this.protocolsByName.get(t):e=this.protocolsByCode.get(t),e==null)throw new be(`Protocol ${t} was unknown`);return e}addCodec(t,e,n){this.protocolsByCode.set(t,e),this.protocolsByName.set(e.name,e),n?.forEach(o=>{this.protocolsByName.set(o,e)})}deleteCodec(t){let e=this.getCodec(t);e!=null&&(this.protocolsByCode.delete(e.code),this.protocolsByName.delete(e.name),e.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},g=new mt,po=[{code:4,name:"ip4",size:32,valueToBytes:ht,bytesToValue:Sr,validate:r=>{if(!ve(r))throw new _(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:j,bytesToValue:ee,validate:he},{code:273,name:"udp",size:16,valueToBytes:j,bytesToValue:ee,validate:he},{code:33,name:"dccp",size:16,valueToBytes:j,bytesToValue:ee,validate:he},{code:41,name:"ip6",size:128,valueToBytes:Dr,bytesToValue:Tr,stringToValue:Pr,validate:r=>{if(!$t(r))throw new _(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:m},{code:43,name:"ipcidr",size:8,bytesToValue:ut("base10"),valueToBytes:lt("base10")},{code:53,name:"dns",size:m,resolvable:!0},{code:54,name:"dns4",size:m,resolvable:!0},{code:55,name:"dns6",size:m,resolvable:!0},{code:56,name:"dnsaddr",size:m,resolvable:!0},{code:132,name:"sctp",size:16,valueToBytes:j,bytesToValue:ee,validate:he},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:m,path:!0,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:m,bytesToValue:ut("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?lt("base58btc")(r):z.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:ft,valueToBytes:vr},{code:445,name:"onion3",size:296,bytesToValue:ft,valueToBytes:Ir},{code:446,name:"garlic64",size:m},{code:447,name:"garlic32",size:m},{code:448,name:"tls"},{code:449,name:"sni",size:m},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:m,bytesToValue:Or(je),valueToBytes:Ar},{code:480,name:"http"},{code:481,name:"http-path",size:m,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:m}];po.forEach(r=>{g.addCodec(r.code,r,r.aliases)});function Nr(r){let t=[],e=0;for(;e<r.length;){let n=st(r,e),o=g.getCodec(n),i=J(n),s=uo(o,r,e+i),a=0;s>0&&o.size===m&&(a=J(s));let c=i+a+s,d={code:n,name:o.name,bytes:r.subarray(e,e+c)};if(s>0){let f=e+i+a,P=r.subarray(f,f+s);d.value=o.bytesToValue?.(P)??E(P)}t.push(d),e+=c}return t}function Ur(r){let t=0,e=[];for(let n of r){if(n.bytes==null){let o=g.getCodec(n.code),i=J(n.code),s,a=0,c=0;n.value!=null&&(s=o.valueToBytes?.(n.value)??k(n.value),a=s.byteLength,o.size===m&&(c=J(a)));let d=new Uint8Array(i+c+a),f=0;it(n.code,d,f),f+=i,s!=null&&(o.size===m&&(it(a,d,f),f+=c),d.set(s,f)),n.bytes=d}e.push(n.bytes),t+=n.bytes.byteLength}return ce(e,t)}function Br(r){if(r.charAt(0)!=="/")throw new h('String multiaddr must start with "/"');let t=[],e="protocol",n="",o="";for(let i=1;i<r.length;i++){let s=r.charAt(i);s!=="/"&&(e==="protocol"?o+=r.charAt(i):n+=r.charAt(i));let a=i===r.length-1;if(s==="/"||a){let c=g.getCodec(o);if(e==="protocol"){if(c.size==null||c.size===0){t.push({code:c.code,name:c.name}),n="",o="",e="protocol";continue}else if(a)throw new h(`Component ${o} was missing value`);e="value"}else if(e==="value"){let d={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new h(`Component ${o} was missing value`);d.value=c.stringToValue?.(n)??n}t.push(d),n="",o="",e="protocol"}}}if(o!==""&&n!=="")throw new h("Incomplete multiaddr");return t}function zr(r){return`/${r.flatMap(t=>{if(t.value==null)return t.name;let e=g.getCodec(t.code);if(e==null)throw new h(`Unknown protocol code ${t.code}`);return[t.name,e.valueToString?.(t.value)??t.value]}).join("/")}`}function uo(r,t,e){return r.size==null||r.size===0?0:r.size>0?r.size/8:st(t,e)}var lo=Symbol.for("nodejs.util.inspect.custom"),gt=Symbol.for("@multiformats/multiaddr"),fo=[53,54,55,56],xt=class extends Error{constructor(t="No available resolver"){super(t),this.name="NoAvailableResolverError"}};function ho(r){if(r==null&&(r="/"),Oe(r))return r.getComponents();if(r instanceof Uint8Array)return Nr(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Br(r);if(Array.isArray(r))return r;throw new h("Must be a string, Uint8Array, Component[], or another Multiaddr")}var me=class r{[gt]=!0;#e;#t;#r;constructor(t="/",e={}){this.#e=ho(t),e.validate!==!1&&mo(this)}get bytes(){return this.#r==null&&(this.#r=Ur(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=zr(this.#e)),this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,o,i="";for(let{code:a,name:c,value:d}of this.#e)a===42&&(i=`%${d??""}`),fo.includes(a)&&(e="tcp",o=443,n=`${d??""}${i}`,t=a===55?6:4),(a===6||a===273)&&(e=c==="tcp"?"tcp":"udp",o=parseInt(d??"")),(a===4||a===41)&&(e="tcp",n=`${d??""}${i}`,t=a===41?6:4);if(t==null||e==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:o}}getComponents(){return[...this.#e]}protos(){return this.#e.map(({code:t,value:e})=>{let n=g.getCodec(t);return{code:t,size:n.size??0,name:n.name,resolvable:!!n.resolvable,path:!!n.path}})}protoCodes(){return this.#e.map(({code:t})=>t)}protoNames(){return this.#e.map(({name:t})=>t)}tuples(){return this.#e.map(({code:t,value:e})=>{if(e==null)return[t];let n=g.getCodec(t),o=[t];return e!=null&&o.push(n.valueToBytes?.(e)??k(e)),o})}stringTuples(){return this.#e.map(({code:t,value:e})=>e==null?[t]:[t,e])}encapsulate(t){let e=new r(t);return new r([...this.#e,...e.getComponents()],{validate:!1})}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new V(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(t){let e;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===t){e=n;break}return new r(this.#e.slice(0,e),{validate:!1})}getPeerId(){try{let t=[];this.#e.forEach(({code:n,value:o})=>{n===421&&t.push([n,o]),n===290&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?E(C.decode(`z${n}`),"base58btc"):E(z.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){for(let t of this.#e)if(g.getCodec(t.code).path)return t.value??null;return null}equals(t){return Vt(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=wt.get(e.name);if(n==null)throw new xt(`no available resolver for ${e.name}`);return(await n(this,t)).map(i=>F(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(){return!(this.#e.length!==2||this.#e[0].code!==4&&this.#e[0].code!==41||this.#e[1].code!==6&&this.#e[1].code!==273)}[lo](){return`Multiaddr(${this.toString()})`}};function mo(r){r.getComponents().forEach(t=>{let e=g.getCodec(t.code);t.value!=null&&e.validate?.(t.value)})}var _e=class{multiaddr;netmask;constructor(t){this.multiaddr=F(t),this.netmask=_r(this.multiaddr)}contains(t){if(t==null)return!1;let e=F(t),n;for(let[o,i]of e.stringTuples())if(o===4||o===41){n=i;break}return n===void 0?!1:this.netmask.contains(n)}};var wt=new Map;function xo(r,t){if(r==null)throw new V("requires node address object");if(t==null)throw new V("requires transport protocol");let e,n=r.address;switch(r.family){case 4:e="ip4";break;case 6:if(e="ip6",n.includes("%")){let o=n.split("%");if(o.length!==2)throw Error("Multiple ip6 zones in multiaddr");n=o[0],e=`ip6zone/${o[1]}/ip6`}break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new me("/"+[e,n,t,r.port].join("/"))}function go(r){return F(r.map(([t,e])=>{let n=g.getCodec(t),o={code:t,name:n.name};return e!=null&&(o.value=n.bytesToValue?.(e)??E(e)),o}))}function wo(r){return F(r.map(([t,e])=>{let n=g.getCodec(t),o={code:t,name:n.name};return e!=null&&(o.value=e),o}))}function bo(r){return Oe(r)?r.protos().some(t=>t.resolvable):!1}function Oe(r){return!!r?.[gt]}function F(r){return new me(r)}function yo(r){let t=g.getCodec(r);return{code:t.code,size:t.size??0,name:t.name,resolvable:!!t.resolvable,path:!!t.path}}return kr(Co);})(); | ||
| "use strict";var MultiformatsMultiaddr=(()=>{var Ne=Object.defineProperty;var Rr=Object.getOwnPropertyDescriptor;var Mr=Object.getOwnPropertyNames;var Lr=Object.prototype.hasOwnProperty;var b=(r,t)=>{for(var e in t)Ne(r,e,{get:t[e],enumerable:!0})},Vr=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Mr(t))!Lr.call(r,o)&&o!==e&&Ne(r,o,{get:()=>t[o],enumerable:!(n=Rr(t,o))||n.enumerable});return r};var kr=r=>Vr(Ne({},"__esModule",{value:!0}),r);var Co={};b(Co,{CODE_CERTHASH:()=>ir,CODE_DCCP:()=>Wt,CODE_DNS:()=>De,CODE_DNS4:()=>Se,CODE_DNS6:()=>le,CODE_DNSADDR:()=>Te,CODE_GARLIC32:()=>Zt,CODE_GARLIC64:()=>Kt,CODE_HTTP:()=>sr,CODE_HTTPS:()=>cr,CODE_HTTP_PATH:()=>ar,CODE_IP4:()=>de,CODE_IP6:()=>Z,CODE_IP6ZONE:()=>Ie,CODE_IPCIDR:()=>jt,CODE_MEMORY:()=>gr,CODE_NOISE:()=>tr,CODE_ONION:()=>Jt,CODE_ONION3:()=>Qt,CODE_P2P:()=>Pe,CODE_P2P_CIRCUIT:()=>Ae,CODE_P2P_STARDUST:()=>lr,CODE_P2P_WEBRTC_DIRECT:()=>hr,CODE_P2P_WEBRTC_STAR:()=>fr,CODE_P2P_WEBSOCKET_STAR:()=>ur,CODE_QUIC:()=>rr,CODE_QUIC_V1:()=>nr,CODE_SCTP:()=>qt,CODE_SNI:()=>er,CODE_TCP:()=>pe,CODE_TLS:()=>Yt,CODE_UDP:()=>ue,CODE_UDT:()=>Ht,CODE_UNIX:()=>Xt,CODE_UTP:()=>Gt,CODE_WEBRTC:()=>xr,CODE_WEBRTC_DIRECT:()=>mr,CODE_WEBTRANSPORT:()=>or,CODE_WS:()=>dr,CODE_WSS:()=>pr,MultiaddrFilter:()=>_e,fromNodeAddress:()=>xo,fromStringTuples:()=>wo,fromTuples:()=>go,isMultiaddr:()=>Oe,isName:()=>bo,multiaddr:()=>R,protocols:()=>yo,resolvers:()=>mt});var Re={};b(Re,{base10:()=>Xr});var vo=new Uint8Array(0);function bt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function O(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function yt(r){return new TextEncoder().encode(r)}function Ct(r){return new TextDecoder().decode(r)}function $r(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var o=0;o<r.length;o++){var i=r.charAt(o),s=i.charCodeAt(0);if(e[s]!==255)throw new TypeError(i+" is ambiguous");e[s]=o}var a=r.length,c=r.charAt(0),d=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function P(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var w=0,L=0,v=0,D=p.length;v!==D&&p[v]===0;)v++,w++;for(var S=(D-v)*f+1>>>0,C=new Uint8Array(S);v!==D;){for(var T=p[v],N=0,I=S-1;(T!==0||N<L)&&I!==-1;I--,N++)T+=256*C[I]>>>0,C[I]=T%a>>>0,T=T/a>>>0;if(T!==0)throw new Error("Non-zero carry");L=N,v++}for(var A=S-L;A!==S&&C[A]===0;)A++;for(var xe=c.repeat(w);A<S;++A)xe+=r.charAt(C[A]);return xe}function M(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var w=0;if(p[w]!==" "){for(var L=0,v=0;p[w]===c;)L++,w++;for(var D=(p.length-w)*d+1>>>0,S=new Uint8Array(D);p[w];){var C=e[p.charCodeAt(w)];if(C===255)return;for(var T=0,N=D-1;(C!==0||T<v)&&N!==-1;N--,T++)C+=a*S[N]>>>0,S[N]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");v=T,w++}if(p[w]!==" "){for(var I=D-v;I!==D&&S[I]===0;)I++;for(var A=new Uint8Array(L+(D-I)),xe=L;I!==D;)A[xe++]=S[I++];return A}}}function Fr(p){var w=M(p);if(w)return w;throw new Error(`Non-${t} character`)}return{encode:P,decodeUnsafe:M,decode:Fr}}var Wr=$r,jr=Wr,vt=jr;var Ue=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Be=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return It(this,t)}},ze=class{decoders;constructor(t){this.decoders=t}or(t){return It(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function It(r,t){return new ze({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var Fe=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ue(t,e,n),this.decoder=new Be(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function q({name:r,prefix:t,encode:e,decode:n}){return new Fe(r,t,e,n)}function U({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=vt(e,r);return q({prefix:t,name:r,encode:n,decode:i=>O(o(i))})}function qr(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*e/8|0),s=0,a=0,c=0;for(let d=0;d<o;++d){let f=t[r[d]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|f,s+=e,s>=8&&(s-=8,i[c++]=255&a>>s)}if(s>=e||(255&a<<8-s)!==0)throw new SyntaxError("Unexpected end of data");return i}function Hr(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,i="",s=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],s+=8;s>e;)s-=e,i+=t[o&a>>s];if(s!==0&&(i+=t[o&a<<e-s]),n)for(;(i.length*e&7)!==0;)i+="=";return i}function Gr(r){let t={};for(let e=0;e<r.length;++e)t[r[e]]=e;return t}function l({name:r,prefix:t,bitsPerChar:e,alphabet:n}){let o=Gr(n);return q({prefix:t,name:r,encode(i){return Hr(i,n,e)},decode(i){return qr(i,o,e,r)}})}var Xr=U({prefix:"9",name:"base10",alphabet:"0123456789"});var Me={};b(Me,{base16:()=>Jr,base16upper:()=>Qr});var Jr=l({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Qr=l({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Le={};b(Le,{base2:()=>Kr});var Kr=l({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ve={};b(Ve,{base256emoji:()=>rn});var Dt=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Zr=Dt.reduce((r,t,e)=>(r[e]=t,r),[]),Yr=Dt.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function en(r){return r.reduce((t,e)=>(t+=Zr[e],t),"")}function tn(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=Yr[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var rn=q({prefix:"\u{1F680}",name:"base256emoji",encode:en,decode:tn});var ke={};b(ke,{base32:()=>B,base32hex:()=>an,base32hexpad:()=>dn,base32hexpadupper:()=>pn,base32hexupper:()=>cn,base32pad:()=>on,base32padupper:()=>sn,base32upper:()=>nn,base32z:()=>un});var B=l({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),nn=l({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),on=l({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),sn=l({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),an=l({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),cn=l({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),dn=l({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),pn=l({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),un=l({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var $e={};b($e,{base36:()=>te,base36upper:()=>ln});var te=U({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ln=U({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var We={};b(We,{base58btc:()=>E,base58flickr:()=>fn});var E=U({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),fn=U({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var qe={};b(qe,{base64:()=>hn,base64pad:()=>mn,base64url:()=>je,base64urlpad:()=>xn});var hn=l({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),mn=l({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),je=l({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),xn=l({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var He={};b(He,{base8:()=>gn});var gn=l({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ge={};b(Ge,{identity:()=>wn});var wn=q({prefix:"\0",name:"identity",encode:r=>Ct(r),decode:r=>yt(r)});var Lo=new TextEncoder,Vo=new TextDecoder;var Je={};b(Je,{identity:()=>kn});var Cn=Pt,St=128,En=127,vn=~En,In=Math.pow(2,31);function Pt(r,t,e){t=t||[],e=e||0;for(var n=e;r>=In;)t[e++]=r&255|St,r/=128;for(;r&vn;)t[e++]=r&255|St,r>>>=7;return t[e]=r|0,Pt.bytes=e-n+1,t}var Dn=Xe,Sn=128,Tt=127;function Xe(r,n){var e=0,n=n||0,o=0,i=n,s,a=r.length;do{if(i>=a)throw Xe.bytes=0,new RangeError("Could not decode varint");s=r[i++],e+=o<28?(s&Tt)<<o:(s&Tt)*Math.pow(2,o),o+=7}while(s>=Sn);return Xe.bytes=i-n,e}var Tn=Math.pow(2,7),Pn=Math.pow(2,14),An=Math.pow(2,21),On=Math.pow(2,28),_n=Math.pow(2,35),Nn=Math.pow(2,42),Un=Math.pow(2,49),Bn=Math.pow(2,56),zn=Math.pow(2,63),Fn=function(r){return r<Tn?1:r<Pn?2:r<An?3:r<On?4:r<_n?5:r<Nn?6:r<Un?7:r<Bn?8:r<zn?9:10},Rn={encode:Cn,decode:Dn,encodingLength:Fn},Mn=Rn,re=Mn;function ne(r,t=0){return[re.decode(r,t),re.decode.bytes]}function H(r,t,e=0){return re.encode(r,t,e),t}function G(r){return re.encodingLength(r)}function V(r,t){let e=t.byteLength,n=G(r),o=n+G(e),i=new Uint8Array(o+e);return H(r,i,0),H(e,i,n),i.set(t,o),new X(r,e,t,i)}function At(r){let t=O(r),[e,n]=ne(t),[o,i]=ne(t.subarray(n)),s=t.subarray(n+i);if(s.byteLength!==o)throw new Error("Incorrect length");return new X(e,o,s,t)}function Ot(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&bt(r.bytes,e.bytes)}}var X=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=n,this.bytes=o}};var _t=0,Ln="identity",Nt=O;function Vn(r){return V(_t,Nt(r))}var kn={code:_t,name:Ln,encode:Nt,digest:Vn};var Ze={};b(Ze,{sha256:()=>$n,sha512:()=>Wn});function Ke({name:r,code:t,encode:e}){return new Qe(r,t,e)}var Qe=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?V(this.code,e):e.then(n=>V(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Bt(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var $n=Ke({name:"sha2-256",code:18,encode:Bt("SHA-256")}),Wn=Ke({name:"sha2-512",code:19,encode:Bt("SHA-512")});function zt(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return qn(e,Ye(r),t??E.encoder);default:return Hn(e,Ye(r),t??B.encoder)}}var Ft=new WeakMap;function Ye(r){let t=Ft.get(r);if(t==null){let e=new Map;return Ft.set(r,e),e}return t}var z=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==ie)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==Gn)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=V(t,e);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&Ot(t.multihash,n.multihash)}toString(t){return zt(this,t)}toJSON(){return{"/":zt(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:o,multihash:i,bytes:s}=e;return new r(n,o,i,s??Rt(n,o,i.bytes))}else if(e[Xn]===!0){let{version:n,multihash:o,code:i}=e,s=At(o);return r.create(n,i,s)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==ie)throw new Error(`Version 0 CID must use dag-pb (code: ${ie}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Rt(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,ie,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,o=O(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let i=o.subarray(e.multihashSize-e.digestSize),s=new X(e.multihashCode,e.digestSize,i,o);return[e.version===0?r.createV0(s):r.createV1(e.codec,s),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[P,M]=ne(t.subarray(e));return e+=M,P},o=n(),i=ie;if(o===18?(o=0,e=0):i=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let s=e,a=n(),c=n(),d=e+c,f=d-s;return{version:o,codec:i,multihashCode:a,digestSize:c,multihashSize:f,size:d}}static parse(t,e){let[n,o]=jn(t,e),i=r.decode(o);if(i.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ye(i).set(n,t),i}};function jn(r,t){switch(r[0]){case"Q":{let e=t??E;return[E.prefix,e.decode(`${E.prefix}${r}`)]}case E.prefix:{let e=t??E;return[E.prefix,e.decode(r)]}case B.prefix:{let e=t??B;return[B.prefix,e.decode(r)]}case te.prefix:{let e=t??te;return[te.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function qn(r,t,e){let{prefix:n}=e;if(n!==E.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let i=e.encode(r).slice(1);return t.set(n,i),i}else return o}function Hn(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let i=e.encode(r);return t.set(n,i),i}else return o}var ie=112,Gn=18;function Rt(r,t,e){let n=G(r),o=n+G(t),i=new Uint8Array(o+e.byteLength);return H(r,i,0),H(t,i,n),i.set(e,o),i}var Xn=Symbol.for("@ipld/js-cid/CID");var se={...Ge,...Le,...He,...Re,...Me,...ke,...$e,...We,...qe,...Ve},ci={...Ze,...Je};function ae(r=0){return new Uint8Array(r)}function Lt(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Mt=Lt("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),et=Lt("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=ae(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),Jn={utf8:Mt,"utf-8":Mt,hex:se.base16,latin1:et,ascii:et,binary:et,...se},we=Jn;function y(r,t="utf8"){let e=we[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var h=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},_=class extends Error{static name="ValidationError";name="ValidationError"},k=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},be=class extends Error{static name="InvalidProtocolError";name="InvalidProtocolError"};function Vt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function F(r,t="utf8"){let e=we[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}var Qn=Math.pow(2,7),Kn=Math.pow(2,14),Zn=Math.pow(2,21),tt=Math.pow(2,28),rt=Math.pow(2,35),nt=Math.pow(2,42),ot=Math.pow(2,49),u=128,x=127;function J(r){if(r<Qn)return 1;if(r<Kn)return 2;if(r<Zn)return 3;if(r<tt)return 4;if(r<rt)return 5;if(r<nt)return 6;if(r<ot)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function it(r,t,e=0){switch(J(r)){case 8:t[e++]=r&255|u,r/=128;case 7:t[e++]=r&255|u,r/=128;case 6:t[e++]=r&255|u,r/=128;case 5:t[e++]=r&255|u,r/=128;case 4:t[e++]=r&255|u,r>>>=7;case 3:t[e++]=r&255|u,r>>>=7;case 2:t[e++]=r&255|u,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Yn(r,t){let e=r[t],n=0;if(n+=e&x,e<u||(e=r[t+1],n+=(e&x)<<7,e<u)||(e=r[t+2],n+=(e&x)<<14,e<u)||(e=r[t+3],n+=(e&x)<<21,e<u)||(e=r[t+4],n+=(e&x)*tt,e<u)||(e=r[t+5],n+=(e&x)*rt,e<u)||(e=r[t+6],n+=(e&x)*nt,e<u)||(e=r[t+7],n+=(e&x)*ot,e<u))return n;throw new RangeError("Could not decode varint")}function eo(r,t){let e=r.get(t),n=0;if(n+=e&x,e<u||(e=r.get(t+1),n+=(e&x)<<7,e<u)||(e=r.get(t+2),n+=(e&x)<<14,e<u)||(e=r.get(t+3),n+=(e&x)<<21,e<u)||(e=r.get(t+4),n+=(e&x)*tt,e<u)||(e=r.get(t+5),n+=(e&x)*rt,e<u)||(e=r.get(t+6),n+=(e&x)*nt,e<u)||(e=r.get(t+7),n+=(e&x)*ot,e<u))return n;throw new RangeError("Could not decode varint")}function st(r,t=0){return r instanceof Uint8Array?Yn(r,t):eo(r,t)}function ce(r,t){t==null&&(t=r.reduce((o,i)=>o+i.length,0));let e=ae(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return e}var ye=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,o){return this.readAtomically(()=>{let i=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",d=2**(8*o)-1;for(;;){let f=this.readAtomically(()=>{let P=this.readChar();if(P===void 0)return;let M=Number.parseInt(P,t);if(!Number.isNaN(M))return M});if(f===void 0)break;if(i*=t,i+=f,i>d||(s+=1,e!==void 0&&s>e))return}if(s!==0)return!n&&c&&s>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let o=n*2;if(n<e.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return e[o]=s[0],e[o+1]=s[1],e[o+2]=s[2],e[o+3]=s[3],[o+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[o,!1];e[o]=i>>8,e[o+1]=i&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),s=16-(n+2),[a]=t(i.subarray(0,s));return e.set(i.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var kt=45,ro=15,Q=new ye;function Ce(r){if(!(r.length>ro))return Q.new(r).parseWith(()=>Q.readIPv4Addr())}function Ee(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>kt))return Q.new(r).parseWith(()=>Q.readIPv6Addr())}function K(r,t=!1){if(r.includes("%")&&(r=r.split("%")[0]),r.length>kt)return;let e=Q.new(r).parseWith(()=>Q.readIPAddr());if(e)return t&&e.length===4?Uint8Array.from([0,0,0,0,0,0,0,0,0,0,255,255,e[0],e[1],e[2],e[3]]):e}function ve(r){return!!Ce(r)}function $t(r){return!!Ee(r)}var de=4,pe=6,ue=273,Wt=33,Z=41,Ie=42,jt=43,De=53,Se=54,le=55,Te=56,qt=132,Ht=301,Gt=302,Xt=400,Pe=421,Jt=444,Qt=445,Kt=446,Zt=447,Yt=448,er=449,tr=454,rr=460,nr=461,or=465,ir=466,sr=480,ar=481,cr=443,dr=477,pr=478,ur=479,lr=277,fr=275,hr=276,mr=280,xr=281,Ae=290,gr=777;function ct(r){return t=>y(t,r)}function dt(r){return t=>F(t,r)}function Y(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function $(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(t)}function wr(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=F(t[0],"base32"),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=$(n);return ce([e,o],e.length+o.length)}function br(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=B.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=$(n);return ce([e,o],e.length+o.length)}function pt(r){let t=r.subarray(0,r.length-2),e=r.subarray(r.length-2),n=y(t,"base32"),o=Y(e);return`${n}:${o}`}var ut=function(r){r=r.toString().trim();let t=new Uint8Array(4);return r.split(/\./g).forEach((e,n)=>{let o=parseInt(e,10);if(isNaN(o)||o<0||o>255)throw new h("Invalid byte value in IP address");t[n]=o}),t},yr=function(r){let t=0;r=r.toString().trim();let e=r.split(":",8),n;for(n=0;n<e.length;n++){let i=ve(e[n]),s;i&&(s=ut(e[n]),e[n]=y(s.subarray(0,2),"base16")),s!=null&&++n<8&&e.splice(n,0,y(s.subarray(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let i=[n,1];for(n=9-e.length;n>0;n--)i.push("0");e.splice.apply(e,i)}let o=new Uint8Array(t+16);for(n=0;n<e.length;n++){e[n]===""&&(e[n]="0");let i=parseInt(e[n],16);if(isNaN(i)||i<0||i>65535)throw new h("Invalid byte value in IP address");o[t++]=i>>8&255,o[t++]=i&255}return o},Cr=function(r){if(r.byteLength!==4)throw new h("IPv4 address was incorrect length");let t=[];for(let e=0;e<r.byteLength;e++)t.push(r[e]);return t.join(".")},Er=function(r){if(r.byteLength!==16)throw new h("IPv6 address was incorrect length");let t=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],i=r[n+1],s=`${o.toString(16).padStart(2,"0")}${i.toString(16).padStart(2,"0")}`;t.push(s)}let e=t.join(":");try{let n=new URL(`http://[${e}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new h(`Invalid IPv6 address "${e}"`)}};function vr(r){try{let t=new URL(`http://[${r}]`);return t.hostname.substring(1,t.hostname.length-1)}catch{throw new h(`Invalid IPv6 address "${r}"`)}}var at=Object.values(se).map(r=>r.decoder),no=function(){let r=at[0].or(at[1]);return at.slice(2).forEach(t=>r=r.or(t)),r}();function Ir(r){return no.decode(r)}function Dr(r){return t=>r.encoder.encode(t)}function oo(r){if(parseInt(r).toString()!==r)throw new _("Value must be an integer")}function io(r){if(r<0)throw new _("Value must be a positive integer, or zero")}function so(r){return t=>{if(t>r)throw new _(`Value must be smaller than or equal to ${r}`)}}function ao(...r){return t=>{for(let e of r)e(t)}}var fe=ao(oo,io,so(65535));var m=-1,lt=class{protocolsByCode=new Map;protocolsByName=new Map;getCodec(t){let e;if(typeof t=="string"?e=this.protocolsByName.get(t):e=this.protocolsByCode.get(t),e==null)throw new be(`Protocol ${t} was unknown`);return e}addCodec(t,e,n){this.protocolsByCode.set(t,e),this.protocolsByName.set(e.name,e),n?.forEach(o=>{this.protocolsByName.set(o,e)})}deleteCodec(t){let e=this.getCodec(t);e!=null&&(this.protocolsByCode.delete(e.code),this.protocolsByName.delete(e.name),e.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},g=new lt,co=[{code:4,name:"ip4",size:32,valueToBytes:ut,bytesToValue:Cr,validate:r=>{if(!ve(r))throw new _(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:$,bytesToValue:Y,validate:fe},{code:273,name:"udp",size:16,valueToBytes:$,bytesToValue:Y,validate:fe},{code:33,name:"dccp",size:16,valueToBytes:$,bytesToValue:Y,validate:fe},{code:41,name:"ip6",size:128,valueToBytes:yr,bytesToValue:Er,stringToValue:vr,validate:r=>{if(!$t(r))throw new _(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:m},{code:43,name:"ipcidr",size:8,bytesToValue:ct("base10"),valueToBytes:dt("base10")},{code:53,name:"dns",size:m,resolvable:!0},{code:54,name:"dns4",size:m,resolvable:!0},{code:55,name:"dns6",size:m,resolvable:!0},{code:56,name:"dnsaddr",size:m,resolvable:!0},{code:132,name:"sctp",size:16,valueToBytes:$,bytesToValue:Y,validate:fe},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:m,path:!0,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:m,bytesToValue:ct("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?dt("base58btc")(r):z.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:pt,valueToBytes:wr},{code:445,name:"onion3",size:296,bytesToValue:pt,valueToBytes:br},{code:446,name:"garlic64",size:m},{code:447,name:"garlic32",size:m},{code:448,name:"tls"},{code:449,name:"sni",size:m},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:m,bytesToValue:Dr(je),valueToBytes:Ir},{code:480,name:"http"},{code:481,name:"http-path",size:m,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:m}];co.forEach(r=>{g.addCodec(r.code,r,r.aliases)});function Sr(r){let t=[],e=0;for(;e<r.length;){let n=st(r,e),o=g.getCodec(n),i=J(n),s=po(o,r,e+i),a=0;s>0&&o.size===m&&(a=J(s));let c=i+a+s,d={code:n,name:o.name,bytes:r.subarray(e,e+c)};if(s>0){let f=e+i+a,P=r.subarray(f,f+s);d.value=o.bytesToValue?.(P)??y(P)}t.push(d),e+=c}return t}function Tr(r){let t=0,e=[];for(let n of r){if(n.bytes==null){let o=g.getCodec(n.code),i=J(n.code),s,a=0,c=0;n.value!=null&&(s=o.valueToBytes?.(n.value)??F(n.value),a=s.byteLength,o.size===m&&(c=J(a)));let d=new Uint8Array(i+c+a),f=0;it(n.code,d,f),f+=i,s!=null&&(o.size===m&&(it(a,d,f),f+=c),d.set(s,f)),n.bytes=d}e.push(n.bytes),t+=n.bytes.byteLength}return ce(e,t)}function Pr(r){if(r.charAt(0)!=="/")throw new h('String multiaddr must start with "/"');let t=[],e="protocol",n="",o="";for(let i=1;i<r.length;i++){let s=r.charAt(i);s!=="/"&&(e==="protocol"?o+=r.charAt(i):n+=r.charAt(i));let a=i===r.length-1;if(s==="/"||a){let c=g.getCodec(o);if(e==="protocol"){if(c.size==null||c.size===0){t.push({code:c.code,name:c.name}),n="",o="",e="protocol";continue}else if(a)throw new h(`Component ${o} was missing value`);e="value"}else if(e==="value"){let d={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new h(`Component ${o} was missing value`);d.value=c.stringToValue?.(n)??n}t.push(d),n="",o="",e="protocol"}}}if(o!==""&&n!=="")throw new h("Incomplete multiaddr");return t}function Ar(r){return`/${r.flatMap(t=>{if(t.value==null)return t.name;let e=g.getCodec(t.code);if(e==null)throw new h(`Unknown protocol code ${t.code}`);return[t.name,e.valueToString?.(t.value)??t.value]}).join("/")}`}function po(r,t,e){return r.size==null||r.size===0?0:r.size>0?r.size/8:st(t,e)}var uo=Symbol.for("nodejs.util.inspect.custom"),ht=Symbol.for("@multiformats/multiaddr"),lo=[53,54,55,56],ft=class extends Error{constructor(t="No available resolver"){super(t),this.name="NoAvailableResolverError"}};function fo(r){if(r==null&&(r="/"),Oe(r))return r.getComponents();if(r instanceof Uint8Array)return Sr(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Pr(r);if(Array.isArray(r))return r;throw new h("Must be a string, Uint8Array, Component[], or another Multiaddr")}var he=class r{[ht]=!0;#e;#t;#r;constructor(t="/",e={}){this.#e=fo(t),e.validate!==!1&&ho(this)}get bytes(){return this.#r==null&&(this.#r=Tr(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=Ar(this.#e)),this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,o,i="";for(let{code:a,name:c,value:d}of this.#e)a===42&&(i=`%${d??""}`),lo.includes(a)&&(e="tcp",o=443,n=`${d??""}${i}`,t=a===55?6:4),(a===6||a===273)&&(e=c==="tcp"?"tcp":"udp",o=parseInt(d??"")),(a===4||a===41)&&(e="tcp",n=`${d??""}${i}`,t=a===41?6:4);if(t==null||e==null||n==null||o==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:o}}getComponents(){return[...this.#e]}protos(){return this.#e.map(({code:t,value:e})=>{let n=g.getCodec(t);return{code:t,size:n.size??0,name:n.name,resolvable:!!n.resolvable,path:!!n.path}})}protoCodes(){return this.#e.map(({code:t})=>t)}protoNames(){return this.#e.map(({name:t})=>t)}tuples(){return this.#e.map(({code:t,value:e})=>{if(e==null)return[t];let n=g.getCodec(t),o=[t];return e!=null&&o.push(n.valueToBytes?.(e)??F(e)),o})}stringTuples(){return this.#e.map(({code:t,value:e})=>e==null?[t]:[t,e])}encapsulate(t){let e=new r(t);return new r([...this.#e,...e.getComponents()],{validate:!1})}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new k(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(t){let e;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===t){e=n;break}return new r(this.#e.slice(0,e),{validate:!1})}getPeerId(){try{let t=[];this.#e.forEach(({code:n,value:o})=>{n===421&&t.push([n,o]),n===290&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?y(E.decode(`z${n}`),"base58btc"):y(z.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){for(let t of this.#e)if(g.getCodec(t.code).path)return t.value??null;return null}equals(t){return Vt(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(i=>i.resolvable);if(e==null)return[this];let n=mt.get(e.name);if(n==null)throw new ft(`no available resolver for ${e.name}`);return(await n(this,t)).map(i=>R(i))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(){return!(this.#e.length!==2||this.#e[0].code!==4&&this.#e[0].code!==41||this.#e[1].code!==6&&this.#e[1].code!==273)}[uo](){return`Multiaddr(${this.toString()})`}};function ho(r){r.getComponents().forEach(t=>{let e=g.getCodec(t.code);t.value!=null&&e.validate?.(t.value)})}function Or(r,t,e){let n=0;for(let o of r)if(!(n<t)){if(n>e)break;if(o!==255)return!1;n++}return!0}function _r(r,t,e,n){let o=0;for(let i of r)if(!(o<e)){if(o>n)break;if(i!==t[o])return!1;o++}return!0}function xt(r){switch(r.length){case W:return r.join(".");case j:{let t=[];for(let e=0;e<r.length;e++)e%2===0&&t.push(r[e].toString(16).padStart(2,"0")+r[e+1].toString(16).padStart(2,"0"));return t.join(":")}default:throw new Error("Invalid ip length")}}function Nr(r){let t=0;for(let[e,n]of r.entries()){if(n===255){t+=8;continue}for(;(n&128)!=0;)t++,n=n<<1;if((n&128)!=0)return-1;for(let o=e+1;o<r.length;o++)if(r[o]!=0)return-1;break}return t}function Ur(r){let t="0x";for(let e of r)t+=(e>>4).toString(16)+(e&15).toString(16);return t}var W=4,j=16,gs=parseInt("0xFFFF",16),mo=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function me(r,t){t.length===j&&r.length===W&&Or(t,0,11)&&(t=t.slice(12)),t.length===W&&r.length===j&&_r(r,mo,0,11)&&(r=r.slice(12));let e=r.length;if(e!=t.length)throw new Error("Failed to mask ip");let n=new Uint8Array(e);for(let o=0;o<e;o++)n[o]=r[o]&t[o];return n}function Br(r,t){if(typeof t=="string"&&(t=K(t)),t==null)throw new Error("Invalid ip");if(t.length!==r.network.length)return!1;for(let e=0;e<t.length;e++)if((r.network[e]&r.mask[e])!==(t[e]&r.mask[e]))return!1;return!0}function gt(r){let[t,e]=r.split("/");if(!t||!e)throw new Error("Failed to parse given CIDR: "+r);let n=W,o=Ce(t);if(o==null&&(n=j,o=Ee(t),o==null))throw new Error("Failed to parse given CIDR: "+r);let i=parseInt(e,10);if(Number.isNaN(i)||String(i).length!==e.length||i<0||i>n*8)throw new Error("Failed to parse given CIDR: "+r);let s=wt(i,8*n);return{network:me(o,s),mask:s}}function wt(r,t){if(t!==8*W&&t!==8*j)throw new Error("Invalid CIDR mask");if(r<0||r>t)throw new Error("Invalid CIDR mask");let e=t/8,n=new Uint8Array(e);for(let o=0;o<e;o++){if(r>=8){n[o]=255,r-=8;continue}n[o]=255-(255>>r),r=0}return n}var ee=class{constructor(t,e){if(e==null)({network:this.network,mask:this.mask}=gt(t));else{let n=K(t);if(n==null)throw new Error("Failed to parse network");e=String(e);let o=parseInt(e,10);if(Number.isNaN(o)||String(o).length!==e.length||o<0||o>n.length*8){let i=K(e);if(i==null)throw new Error("Failed to parse mask");this.mask=i}else this.mask=wt(o,8*n.length);this.network=me(n,this.mask)}}contains(t){return Br({network:this.network,mask:this.mask},t)}toString(){let t=Nr(this.mask),e=t!==-1?String(t):Ur(this.mask);return xt(this.network)+"/"+e}};function zr(r){let t,e;if(r.getComponents().forEach(n=>{(n.name==="ip4"||n.name==="ip6")&&(e=n.value),n.name==="ipcidr"&&(t=n.value)}),t==null||e==null)throw new Error("Invalid multiaddr");return new ee(e,t)}var _e=class{multiaddr;netmask;constructor(t){this.multiaddr=R(t),this.netmask=zr(this.multiaddr)}contains(t){if(t==null)return!1;let e=R(t),n;for(let[o,i]of e.stringTuples())if(o===4||o===41){n=i;break}return n===void 0?!1:this.netmask.contains(n)}};var mt=new Map;function xo(r,t){if(r==null)throw new k("requires node address object");if(t==null)throw new k("requires transport protocol");let e,n=r.address;switch(r.family){case 4:e="ip4";break;case 6:if(e="ip6",n.includes("%")){let o=n.split("%");if(o.length!==2)throw Error("Multiple ip6 zones in multiaddr");n=o[0],e=`ip6zone/${o[1]}/ip6`}break;default:throw Error("Invalid addr family, should be 4 or 6.")}return new he("/"+[e,n,t,r.port].join("/"))}function go(r){return R(r.map(([t,e])=>{let n=g.getCodec(t),o={code:t,name:n.name};return e!=null&&(o.value=n.bytesToValue?.(e)??y(e)),o}))}function wo(r){return R(r.map(([t,e])=>{let n=g.getCodec(t),o={code:t,name:n.name};return e!=null&&(o.value=e),o}))}function bo(r){return Oe(r)?r.protos().some(t=>t.resolvable):!1}function Oe(r){return!!r?.[ht]}function R(r){return new he(r)}function yo(r){let t=g.getCodec(r);return{code:t.code,size:t.size??0,name:t.name,resolvable:!!t.resolvable,path:!!t.path}}return kr(Co);})(); | ||
| return MultiformatsMultiaddr})); | ||
| //# sourceMappingURL=index.min.js.map |
| import { IpNet } from '@chainsafe/netmask'; | ||
| import type { Multiaddr } from './index.ts'; | ||
| import type { MultibaseCodec } from 'multiformats'; | ||
| import type { SupportedEncodings } from 'uint8arrays/to-string'; | ||
| export declare function bytesToString(base: SupportedEncodings): (buf: Uint8Array) => string; | ||
| export declare function stringToBytes(base: SupportedEncodings): (value: string) => Uint8Array; | ||
| export declare function bytes2port(buf: Uint8Array): string; | ||
| export declare function port2bytes(port: string | number): Uint8Array; | ||
| export declare function onion2bytes(str: string): Uint8Array; | ||
| export declare function onion32bytes(str: string): Uint8Array; | ||
| export declare function bytes2onion(buf: Uint8Array): string; | ||
| export declare const ip4ToBytes: (ip: string) => Uint8Array; | ||
| export declare const ip6ToBytes: (ip: string) => Uint8Array; | ||
| export declare const ip4ToString: (buf: Uint8Array) => string; | ||
| export declare const ip6ToString: (buf: Uint8Array) => string; | ||
| export declare function ip6StringToValue(str: string): string; | ||
| export declare function mb2bytes(mbstr: string): Uint8Array; | ||
| export declare function bytes2mb(base: MultibaseCodec<any>): (buf: Uint8Array) => string; | ||
| export declare function convertToIpNet(multiaddr: Multiaddr): IpNet; | ||
@@ -20,0 +4,0 @@ /** |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAQ1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,wBAAgB,aAAa,CAAE,IAAI,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,CAIpF;AAED,wBAAgB,aAAa,CAAE,IAAI,EAAE,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,CAItF;AAED,wBAAgB,UAAU,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAGnD;AAED,wBAAgB,UAAU,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAM7D;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAwBpD;AAED,wBAAgB,YAAY,CAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAwBrD;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAMpD;AAID,eAAO,MAAM,UAAU,GAAa,IAAI,MAAM,KAAG,UAgBhD,CAAA;AAID,eAAO,MAAM,UAAU,GAAa,IAAI,MAAM,KAAG,UAoDhD,CAAA;AAGD,eAAO,MAAM,WAAW,GAAa,KAAK,UAAU,KAAG,MAYtD,CAAA;AAED,eAAO,MAAM,WAAW,GAAa,KAAK,UAAU,KAAG,MAyBtD,CAAA;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQrD;AASD,wBAAgB,QAAQ,CAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAEnD;AAED,wBAAgB,QAAQ,CAAE,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,CAIhF;AAED,wBAAgB,cAAc,CAAE,SAAS,EAAE,SAAS,GAAG,KAAK,CAkB3D;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;AAC9D,wBAAgB,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;AAS9D;;;;GAIG;AACH,wBAAgB,eAAe,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAIhF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAI/E"} | ||
| {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAI1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,wBAAgB,cAAc,CAAE,SAAS,EAAE,SAAS,GAAG,KAAK,CAkB3D;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAAA;AAC9D,wBAAgB,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;AAS9D;;;;GAIG;AACH,wBAAgB,eAAe,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAIhF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAI/E"} |
+0
-186
@@ -1,191 +0,5 @@ | ||
| import { isIPv4 } from '@chainsafe/is-ip'; | ||
| import { IpNet } from '@chainsafe/netmask'; | ||
| import { base32 } from 'multiformats/bases/base32'; | ||
| import { bases } from 'multiformats/basics'; | ||
| import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; | ||
| import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'; | ||
| import { toString as uint8ArrayToString } from 'uint8arrays/to-string'; | ||
| import { InvalidMultiaddrError } from "./errors.js"; | ||
| import { registry } from './registry.js'; | ||
| export function bytesToString(base) { | ||
| return (buf) => { | ||
| return uint8ArrayToString(buf, base); | ||
| }; | ||
| } | ||
| export function stringToBytes(base) { | ||
| return (buf) => { | ||
| return uint8ArrayFromString(buf, base); | ||
| }; | ||
| } | ||
| export function bytes2port(buf) { | ||
| const view = new DataView(buf.buffer); | ||
| return view.getUint16(buf.byteOffset).toString(); | ||
| } | ||
| export function port2bytes(port) { | ||
| const buf = new ArrayBuffer(2); | ||
| const view = new DataView(buf); | ||
| view.setUint16(0, typeof port === 'string' ? parseInt(port) : port); | ||
| return new Uint8Array(buf); | ||
| } | ||
| export function onion2bytes(str) { | ||
| const addr = str.split(':'); | ||
| if (addr.length !== 2) { | ||
| throw new Error(`failed to parse onion addr: ["'${addr.join('", "')}'"]' does not contain a port number`); | ||
| } | ||
| if (addr[0].length !== 16) { | ||
| throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion address.`); | ||
| } | ||
| // onion addresses do not include the multibase prefix, add it before decoding | ||
| const buf = uint8ArrayFromString(addr[0], 'base32'); | ||
| // onion port number | ||
| const port = parseInt(addr[1], 10); | ||
| if (port < 1 || port > 65536) { | ||
| throw new Error('Port number is not in range(1, 65536)'); | ||
| } | ||
| const portBuf = port2bytes(port); | ||
| return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length); | ||
| } | ||
| export function onion32bytes(str) { | ||
| const addr = str.split(':'); | ||
| if (addr.length !== 2) { | ||
| throw new Error(`failed to parse onion addr: ["'${addr.join('", "')}'"]' does not contain a port number`); | ||
| } | ||
| if (addr[0].length !== 56) { | ||
| throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion3 address.`); | ||
| } | ||
| // onion addresses do not include the multibase prefix, add it before decoding | ||
| const buf = base32.decode(`b${addr[0]}`); | ||
| // onion port number | ||
| const port = parseInt(addr[1], 10); | ||
| if (port < 1 || port > 65536) { | ||
| throw new Error('Port number is not in range(1, 65536)'); | ||
| } | ||
| const portBuf = port2bytes(port); | ||
| return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length); | ||
| } | ||
| export function bytes2onion(buf) { | ||
| const addrBytes = buf.subarray(0, buf.length - 2); | ||
| const portBytes = buf.subarray(buf.length - 2); | ||
| const addr = uint8ArrayToString(addrBytes, 'base32'); | ||
| const port = bytes2port(portBytes); | ||
| return `${addr}:${port}`; | ||
| } | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7 | ||
| // but with buf/offset args removed because we don't use them | ||
| export const ip4ToBytes = function (ip) { | ||
| ip = ip.toString().trim(); | ||
| const bytes = new Uint8Array(4); | ||
| ip.split(/\./g).forEach((byte, index) => { | ||
| const value = parseInt(byte, 10); | ||
| if (isNaN(value) || value < 0 || value > 0xff) { | ||
| throw new InvalidMultiaddrError('Invalid byte value in IP address'); | ||
| } | ||
| bytes[index] = value; | ||
| }); | ||
| return bytes; | ||
| }; | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7 | ||
| // but with buf/offset args removed because we don't use them | ||
| export const ip6ToBytes = function (ip) { | ||
| let offset = 0; | ||
| ip = ip.toString().trim(); | ||
| const sections = ip.split(':', 8); | ||
| let i; | ||
| for (i = 0; i < sections.length; i++) { | ||
| const isv4 = isIPv4(sections[i]); | ||
| let v4Buffer; | ||
| if (isv4) { | ||
| v4Buffer = ip4ToBytes(sections[i]); | ||
| sections[i] = uint8ArrayToString(v4Buffer.subarray(0, 2), 'base16'); | ||
| } | ||
| if (v4Buffer != null && ++i < 8) { | ||
| sections.splice(i, 0, uint8ArrayToString(v4Buffer.subarray(2, 4), 'base16')); | ||
| } | ||
| } | ||
| if (sections[0] === '') { | ||
| while (sections.length < 8) { | ||
| sections.unshift('0'); | ||
| } | ||
| } | ||
| else if (sections[sections.length - 1] === '') { | ||
| while (sections.length < 8) { | ||
| sections.push('0'); | ||
| } | ||
| } | ||
| else if (sections.length < 8) { | ||
| for (i = 0; i < sections.length && sections[i] !== ''; i++) { } | ||
| const argv = [i, 1]; | ||
| for (i = 9 - sections.length; i > 0; i--) { | ||
| argv.push('0'); | ||
| } | ||
| sections.splice.apply(sections, argv); | ||
| } | ||
| const bytes = new Uint8Array(offset + 16); | ||
| for (i = 0; i < sections.length; i++) { | ||
| if (sections[i] === '') { | ||
| sections[i] = '0'; | ||
| } | ||
| const word = parseInt(sections[i], 16); | ||
| if (isNaN(word) || word < 0 || word > 0xffff) { | ||
| throw new InvalidMultiaddrError('Invalid byte value in IP address'); | ||
| } | ||
| bytes[offset++] = (word >> 8) & 0xff; | ||
| bytes[offset++] = word & 0xff; | ||
| } | ||
| return bytes; | ||
| }; | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L63 | ||
| export const ip4ToString = function (buf) { | ||
| if (buf.byteLength !== 4) { | ||
| throw new InvalidMultiaddrError('IPv4 address was incorrect length'); | ||
| } | ||
| const result = []; | ||
| for (let i = 0; i < buf.byteLength; i++) { | ||
| result.push(buf[i]); | ||
| } | ||
| return result.join('.'); | ||
| }; | ||
| export const ip6ToString = function (buf) { | ||
| if (buf.byteLength !== 16) { | ||
| throw new InvalidMultiaddrError('IPv6 address was incorrect length'); | ||
| } | ||
| const result = []; | ||
| for (let i = 0; i < buf.byteLength; i += 2) { | ||
| const byte1 = buf[i]; | ||
| const byte2 = buf[i + 1]; | ||
| const tuple = `${byte1.toString(16).padStart(2, '0')}${byte2.toString(16).padStart(2, '0')}`; | ||
| result.push(tuple); | ||
| } | ||
| const ip = result.join(':'); | ||
| try { | ||
| const url = new URL(`http://[${ip}]`); | ||
| return url.hostname.substring(1, url.hostname.length - 1); | ||
| } | ||
| catch { | ||
| throw new InvalidMultiaddrError(`Invalid IPv6 address "${ip}"`); | ||
| } | ||
| }; | ||
| export function ip6StringToValue(str) { | ||
| try { | ||
| const url = new URL(`http://[${str}]`); | ||
| return url.hostname.substring(1, url.hostname.length - 1); | ||
| } | ||
| catch { | ||
| throw new InvalidMultiaddrError(`Invalid IPv6 address "${str}"`); | ||
| } | ||
| } | ||
| const decoders = Object.values(bases).map((c) => c.decoder); | ||
| const anybaseDecoder = (function () { | ||
| let acc = decoders[0].or(decoders[1]); | ||
| decoders.slice(2).forEach((d) => (acc = acc.or(d))); | ||
| return acc; | ||
| })(); | ||
| export function mb2bytes(mbstr) { | ||
| return anybaseDecoder.decode(mbstr); | ||
| } | ||
| export function bytes2mb(base) { | ||
| return (buf) => { | ||
| return base.encoder.encode(buf); | ||
| }; | ||
| } | ||
| export function convertToIpNet(multiaddr) { | ||
@@ -192,0 +6,0 @@ let mask; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/convert.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,MAAM,UAAU,cAAc,CAAE,SAAoB;IAClD,IAAI,IAAwB,CAAA;IAC5B,IAAI,IAAwB,CAAA;IAE5B,SAAS,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC5C,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACzD,IAAI,GAAG,SAAS,CAAC,KAAK,CAAA;QACxB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAA;QACxB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC;AASD,MAAM,UAAU,OAAO,CAAE,KAAa,EAAE,CAAsB;IAC5D,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;QAC5B,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACjC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAE,KAAsB,EAAE,GAAe;IACtE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzC,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA,CAAE,0BAA0B;AACtG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAE,KAAsB,EAAE,GAAW;IACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzC,OAAO,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA,CAAC,4BAA4B;AACzG,CAAC"} |
@@ -5,4 +5,4 @@ import { isIPv4, isIPv6 } from '@chainsafe/is-ip'; | ||
| import { CODE_CERTHASH, CODE_DCCP, CODE_DNS, CODE_DNS4, CODE_DNS6, CODE_DNSADDR, CODE_GARLIC32, CODE_GARLIC64, CODE_HTTP, CODE_HTTP_PATH, CODE_HTTPS, CODE_IP4, CODE_IP6, CODE_IP6ZONE, CODE_IPCIDR, CODE_MEMORY, CODE_NOISE, CODE_ONION, CODE_ONION3, CODE_P2P, CODE_P2P_CIRCUIT, CODE_P2P_STARDUST, CODE_P2P_WEBRTC_DIRECT, CODE_P2P_WEBRTC_STAR, CODE_P2P_WEBSOCKET_STAR, CODE_QUIC, CODE_QUIC_V1, CODE_SCTP, CODE_SNI, CODE_TCP, CODE_TLS, CODE_UDP, CODE_UDT, CODE_UNIX, CODE_UTP, CODE_WEBRTC, CODE_WEBRTC_DIRECT, CODE_WEBTRANSPORT, CODE_WS, CODE_WSS } from "./constants.js"; | ||
| import { bytes2mb, bytes2onion, bytes2port, bytesToString, ip4ToBytes, ip4ToString, ip6StringToValue, ip6ToBytes, ip6ToString, mb2bytes, onion2bytes, onion32bytes, port2bytes, stringToBytes } from "./convert.js"; | ||
| import { InvalidProtocolError, ValidationError } from "./errors.js"; | ||
| import { bytes2mb, bytes2onion, bytes2port, bytesToString, ip4ToBytes, ip4ToString, ip6StringToValue, ip6ToBytes, ip6ToString, mb2bytes, onion2bytes, onion32bytes, port2bytes, stringToBytes } from "./utils.js"; | ||
| import { validatePort } from "./validation.js"; | ||
@@ -9,0 +9,0 @@ export const V = -1; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACrjB,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AACjN,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AAqCnB,MAAM,QAAQ;IACJ,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAA;IAClD,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAA;IAE1D,QAAQ,CAAE,GAAoB;QAC5B,IAAI,KAAgC,CAAA;QAEpC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,oBAAoB,CAAC,YAAY,GAAG,cAAc,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,CAAE,GAAW,EAAE,KAAoB,EAAE,OAAkB;QAC7D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAE3C,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW,CAAE,GAAW;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAEhC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEvC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;AAEtC,MAAM,MAAM,GAAoB,CAAC;QAC/B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,WAAW;QACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,eAAe,CAAC,yBAAyB,KAAK,GAAG,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;KACF,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,UAAU;QACxB,QAAQ,EAAE,YAAY;KACvB,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,UAAU;QACxB,QAAQ,EAAE,YAAY;KACvB,EAAE;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,UAAU;QACxB,QAAQ,EAAE,YAAY;KACvB,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE,gBAAgB;QAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,eAAe,CAAC,yBAAyB,KAAK,GAAG,CAAC,CAAA;YAC9D,CAAC;QACH,CAAC;KACF,EAAE;QACD,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,CAAC;KACR,EAAE;QACD,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC;QACrC,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC;KACtC,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,IAAI;KACjB,EAAE;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,IAAI;KACjB,EAAE;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,IAAI;KACjB,EAAE;QACD,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,CAAC;QACP,UAAU,EAAE,IAAI;KACjB,EAAE;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,UAAU;QACxB,QAAQ,EAAE,YAAY;KACvB,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;KACZ,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;KACZ,EAAE;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC;QAC/C,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC;KAChD,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC;QACxC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACpB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAA;YACxC,CAAC;YAED,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAA;QACvC,CAAC;KACF,EAAE;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,WAAW;KAC1B,EAAE;QACD,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,WAAW;QACzB,YAAY,EAAE,YAAY;KAC3B,EAAE;QACD,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,CAAC;KACR,EAAE;QACD,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,CAAC;KACR,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;KACZ,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,CAAC;KACR,EAAE;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd,EAAE;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;KACb,EAAE;QACD,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;KAChB,EAAE;QACD,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,cAAc;KACrB,EAAE;QACD,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC;QACjC,YAAY,EAAE,QAAQ;KACvB,EAAE;QACD,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;KACb,EAAE;QACD,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,CAAC;QACP,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE;QACrD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KAC7D,EAAE;QACD,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;KACd,EAAE;QACD,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI;KACX,EAAE;QACD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;KACZ,EAAE;QACD,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,oBAAoB;KAC3B,EAAE;QACD,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,cAAc;KACrB,EAAE;QACD,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,iBAAiB;KACxB,EAAE;QACD,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,mBAAmB;KAC1B,EAAE;QACD,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,eAAe;KACtB,EAAE;QACD,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;KACf,EAAE;QACD,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,aAAa;KACpB,EAAE;QACD,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC;KACR,CAAC,CAAA;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;IACrB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;AACrD,CAAC,CAAC,CAAA"} |
| { | ||
| "bytes2mb": "https://multiformats.github.io/js-multiaddr/functions/convert.bytes2mb.html", | ||
| "./convert:bytes2mb": "https://multiformats.github.io/js-multiaddr/functions/convert.bytes2mb.html", | ||
| "bytes2onion": "https://multiformats.github.io/js-multiaddr/functions/convert.bytes2onion.html", | ||
| "./convert:bytes2onion": "https://multiformats.github.io/js-multiaddr/functions/convert.bytes2onion.html", | ||
| "bytes2port": "https://multiformats.github.io/js-multiaddr/functions/convert.bytes2port.html", | ||
| "./convert:bytes2port": "https://multiformats.github.io/js-multiaddr/functions/convert.bytes2port.html", | ||
| "bytesToString": "https://multiformats.github.io/js-multiaddr/functions/convert.bytesToString.html", | ||
| "./convert:bytesToString": "https://multiformats.github.io/js-multiaddr/functions/convert.bytesToString.html", | ||
| "convert": "https://multiformats.github.io/js-multiaddr/functions/convert.convert.html", | ||
@@ -18,22 +10,2 @@ "./convert:convert": "https://multiformats.github.io/js-multiaddr/functions/convert.convert.html", | ||
| "./convert:convertToString": "https://multiformats.github.io/js-multiaddr/functions/convert.convertToString.html", | ||
| "ip4ToBytes": "https://multiformats.github.io/js-multiaddr/functions/convert.ip4ToBytes.html", | ||
| "./convert:ip4ToBytes": "https://multiformats.github.io/js-multiaddr/functions/convert.ip4ToBytes.html", | ||
| "ip4ToString": "https://multiformats.github.io/js-multiaddr/functions/convert.ip4ToString.html", | ||
| "./convert:ip4ToString": "https://multiformats.github.io/js-multiaddr/functions/convert.ip4ToString.html", | ||
| "ip6StringToValue": "https://multiformats.github.io/js-multiaddr/functions/convert.ip6StringToValue.html", | ||
| "./convert:ip6StringToValue": "https://multiformats.github.io/js-multiaddr/functions/convert.ip6StringToValue.html", | ||
| "ip6ToBytes": "https://multiformats.github.io/js-multiaddr/functions/convert.ip6ToBytes.html", | ||
| "./convert:ip6ToBytes": "https://multiformats.github.io/js-multiaddr/functions/convert.ip6ToBytes.html", | ||
| "ip6ToString": "https://multiformats.github.io/js-multiaddr/functions/convert.ip6ToString.html", | ||
| "./convert:ip6ToString": "https://multiformats.github.io/js-multiaddr/functions/convert.ip6ToString.html", | ||
| "mb2bytes": "https://multiformats.github.io/js-multiaddr/functions/convert.mb2bytes.html", | ||
| "./convert:mb2bytes": "https://multiformats.github.io/js-multiaddr/functions/convert.mb2bytes.html", | ||
| "onion2bytes": "https://multiformats.github.io/js-multiaddr/functions/convert.onion2bytes.html", | ||
| "./convert:onion2bytes": "https://multiformats.github.io/js-multiaddr/functions/convert.onion2bytes.html", | ||
| "onion32bytes": "https://multiformats.github.io/js-multiaddr/functions/convert.onion32bytes.html", | ||
| "./convert:onion32bytes": "https://multiformats.github.io/js-multiaddr/functions/convert.onion32bytes.html", | ||
| "port2bytes": "https://multiformats.github.io/js-multiaddr/functions/convert.port2bytes.html", | ||
| "./convert:port2bytes": "https://multiformats.github.io/js-multiaddr/functions/convert.port2bytes.html", | ||
| "stringToBytes": "https://multiformats.github.io/js-multiaddr/functions/convert.stringToBytes.html", | ||
| "./convert:stringToBytes": "https://multiformats.github.io/js-multiaddr/functions/convert.stringToBytes.html", | ||
| "MultiaddrFilter": "https://multiformats.github.io/js-multiaddr/classes/index.MultiaddrFilter.html", | ||
@@ -40,0 +12,0 @@ "Component": "https://multiformats.github.io/js-multiaddr/interfaces/index.Component.html", |
+1
-1
| { | ||
| "name": "@multiformats/multiaddr", | ||
| "version": "12.4.3", | ||
| "version": "12.4.4", | ||
| "description": "multiaddr implementation (binary + string representation of network addresses)", | ||
@@ -5,0 +5,0 @@ "license": "Apache-2.0 OR MIT", |
+0
-237
@@ -1,244 +0,7 @@ | ||
| import { isIPv4 } from '@chainsafe/is-ip' | ||
| import { IpNet } from '@chainsafe/netmask' | ||
| import { base32 } from 'multiformats/bases/base32' | ||
| import { bases } from 'multiformats/basics' | ||
| import { concat as uint8ArrayConcat } from 'uint8arrays/concat' | ||
| import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string' | ||
| import { toString as uint8ArrayToString } from 'uint8arrays/to-string' | ||
| import { InvalidMultiaddrError } from './errors.ts' | ||
| import { registry } from './registry.js' | ||
| import type { Multiaddr } from './index.ts' | ||
| import type { MultibaseCodec } from 'multiformats' | ||
| import type { SupportedEncodings } from 'uint8arrays/to-string' | ||
| export function bytesToString (base: SupportedEncodings): (buf: Uint8Array) => string { | ||
| return (buf) => { | ||
| return uint8ArrayToString(buf, base) | ||
| } | ||
| } | ||
| export function stringToBytes (base: SupportedEncodings): (value: string) => Uint8Array { | ||
| return (buf) => { | ||
| return uint8ArrayFromString(buf, base) | ||
| } | ||
| } | ||
| export function bytes2port (buf: Uint8Array): string { | ||
| const view = new DataView(buf.buffer) | ||
| return view.getUint16(buf.byteOffset).toString() | ||
| } | ||
| export function port2bytes (port: string | number): Uint8Array { | ||
| const buf = new ArrayBuffer(2) | ||
| const view = new DataView(buf) | ||
| view.setUint16(0, typeof port === 'string' ? parseInt(port) : port) | ||
| return new Uint8Array(buf) | ||
| } | ||
| export function onion2bytes (str: string): Uint8Array { | ||
| const addr = str.split(':') | ||
| if (addr.length !== 2) { | ||
| throw new Error(`failed to parse onion addr: ["'${addr.join('", "')}'"]' does not contain a port number`) | ||
| } | ||
| if (addr[0].length !== 16) { | ||
| throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion address.`) | ||
| } | ||
| // onion addresses do not include the multibase prefix, add it before decoding | ||
| const buf = uint8ArrayFromString(addr[0], 'base32') | ||
| // onion port number | ||
| const port = parseInt(addr[1], 10) | ||
| if (port < 1 || port > 65536) { | ||
| throw new Error('Port number is not in range(1, 65536)') | ||
| } | ||
| const portBuf = port2bytes(port) | ||
| return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length) | ||
| } | ||
| export function onion32bytes (str: string): Uint8Array { | ||
| const addr = str.split(':') | ||
| if (addr.length !== 2) { | ||
| throw new Error(`failed to parse onion addr: ["'${addr.join('", "')}'"]' does not contain a port number`) | ||
| } | ||
| if (addr[0].length !== 56) { | ||
| throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion3 address.`) | ||
| } | ||
| // onion addresses do not include the multibase prefix, add it before decoding | ||
| const buf = base32.decode(`b${addr[0]}`) | ||
| // onion port number | ||
| const port = parseInt(addr[1], 10) | ||
| if (port < 1 || port > 65536) { | ||
| throw new Error('Port number is not in range(1, 65536)') | ||
| } | ||
| const portBuf = port2bytes(port) | ||
| return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length) | ||
| } | ||
| export function bytes2onion (buf: Uint8Array): string { | ||
| const addrBytes = buf.subarray(0, buf.length - 2) | ||
| const portBytes = buf.subarray(buf.length - 2) | ||
| const addr = uint8ArrayToString(addrBytes, 'base32') | ||
| const port = bytes2port(portBytes) | ||
| return `${addr}:${port}` | ||
| } | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7 | ||
| // but with buf/offset args removed because we don't use them | ||
| export const ip4ToBytes = function (ip: string): Uint8Array { | ||
| ip = ip.toString().trim() | ||
| const bytes = new Uint8Array(4) | ||
| ip.split(/\./g).forEach((byte, index) => { | ||
| const value = parseInt(byte, 10) | ||
| if (isNaN(value) || value < 0 || value > 0xff) { | ||
| throw new InvalidMultiaddrError('Invalid byte value in IP address') | ||
| } | ||
| bytes[index] = value | ||
| }) | ||
| return bytes | ||
| } | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7 | ||
| // but with buf/offset args removed because we don't use them | ||
| export const ip6ToBytes = function (ip: string): Uint8Array { | ||
| let offset = 0 | ||
| ip = ip.toString().trim() | ||
| const sections = ip.split(':', 8) | ||
| let i | ||
| for (i = 0; i < sections.length; i++) { | ||
| const isv4 = isIPv4(sections[i]) | ||
| let v4Buffer: Uint8Array | undefined | ||
| if (isv4) { | ||
| v4Buffer = ip4ToBytes(sections[i]) | ||
| sections[i] = uint8ArrayToString(v4Buffer.subarray(0, 2), 'base16') | ||
| } | ||
| if (v4Buffer != null && ++i < 8) { | ||
| sections.splice(i, 0, uint8ArrayToString(v4Buffer.subarray(2, 4), 'base16')) | ||
| } | ||
| } | ||
| if (sections[0] === '') { | ||
| while (sections.length < 8) { sections.unshift('0') } | ||
| } else if (sections[sections.length - 1] === '') { | ||
| while (sections.length < 8) { sections.push('0') } | ||
| } else if (sections.length < 8) { | ||
| for (i = 0; i < sections.length && sections[i] !== ''; i++) { } | ||
| const argv: [number, number, ...string[]] = [i, 1] | ||
| for (i = 9 - sections.length; i > 0; i--) { | ||
| argv.push('0') | ||
| } | ||
| sections.splice.apply(sections, argv) | ||
| } | ||
| const bytes = new Uint8Array(offset + 16) | ||
| for (i = 0; i < sections.length; i++) { | ||
| if (sections[i] === '') { | ||
| sections[i] = '0' | ||
| } | ||
| const word = parseInt(sections[i], 16) | ||
| if (isNaN(word) || word < 0 || word > 0xffff) { | ||
| throw new InvalidMultiaddrError('Invalid byte value in IP address') | ||
| } | ||
| bytes[offset++] = (word >> 8) & 0xff | ||
| bytes[offset++] = word & 0xff | ||
| } | ||
| return bytes | ||
| } | ||
| // Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L63 | ||
| export const ip4ToString = function (buf: Uint8Array): string { | ||
| if (buf.byteLength !== 4) { | ||
| throw new InvalidMultiaddrError('IPv4 address was incorrect length') | ||
| } | ||
| const result = [] | ||
| for (let i = 0; i < buf.byteLength; i++) { | ||
| result.push(buf[i]) | ||
| } | ||
| return result.join('.') | ||
| } | ||
| export const ip6ToString = function (buf: Uint8Array): string { | ||
| if (buf.byteLength !== 16) { | ||
| throw new InvalidMultiaddrError('IPv6 address was incorrect length') | ||
| } | ||
| const result: string[] = [] | ||
| for (let i = 0; i < buf.byteLength; i += 2) { | ||
| const byte1 = buf[i] | ||
| const byte2 = buf[i + 1] | ||
| const tuple = `${byte1.toString(16).padStart(2, '0')}${byte2.toString(16).padStart(2, '0')}` | ||
| result.push(tuple) | ||
| } | ||
| const ip = result.join(':') | ||
| try { | ||
| const url = new URL(`http://[${ip}]`) | ||
| return url.hostname.substring(1, url.hostname.length - 1) | ||
| } catch { | ||
| throw new InvalidMultiaddrError(`Invalid IPv6 address "${ip}"`) | ||
| } | ||
| } | ||
| export function ip6StringToValue (str: string): string { | ||
| try { | ||
| const url = new URL(`http://[${str}]`) | ||
| return url.hostname.substring(1, url.hostname.length - 1) | ||
| } catch { | ||
| throw new InvalidMultiaddrError(`Invalid IPv6 address "${str}"`) | ||
| } | ||
| } | ||
| const decoders = Object.values(bases).map((c) => c.decoder) | ||
| const anybaseDecoder = (function () { | ||
| let acc = decoders[0].or(decoders[1]) | ||
| decoders.slice(2).forEach((d) => (acc = acc.or(d))) | ||
| return acc | ||
| })() | ||
| export function mb2bytes (mbstr: string): Uint8Array { | ||
| return anybaseDecoder.decode(mbstr) | ||
| } | ||
| export function bytes2mb (base: MultibaseCodec<any>): (buf: Uint8Array) => string { | ||
| return (buf) => { | ||
| return base.encoder.encode(buf) | ||
| } | ||
| } | ||
| export function convertToIpNet (multiaddr: Multiaddr): IpNet { | ||
@@ -245,0 +8,0 @@ let mask: string | undefined |
+1
-1
@@ -5,4 +5,4 @@ import { isIPv4, isIPv6 } from '@chainsafe/is-ip' | ||
| import { CODE_CERTHASH, CODE_DCCP, CODE_DNS, CODE_DNS4, CODE_DNS6, CODE_DNSADDR, CODE_GARLIC32, CODE_GARLIC64, CODE_HTTP, CODE_HTTP_PATH, CODE_HTTPS, CODE_IP4, CODE_IP6, CODE_IP6ZONE, CODE_IPCIDR, CODE_MEMORY, CODE_NOISE, CODE_ONION, CODE_ONION3, CODE_P2P, CODE_P2P_CIRCUIT, CODE_P2P_STARDUST, CODE_P2P_WEBRTC_DIRECT, CODE_P2P_WEBRTC_STAR, CODE_P2P_WEBSOCKET_STAR, CODE_QUIC, CODE_QUIC_V1, CODE_SCTP, CODE_SNI, CODE_TCP, CODE_TLS, CODE_UDP, CODE_UDT, CODE_UNIX, CODE_UTP, CODE_WEBRTC, CODE_WEBRTC_DIRECT, CODE_WEBTRANSPORT, CODE_WS, CODE_WSS } from './constants.ts' | ||
| import { bytes2mb, bytes2onion, bytes2port, bytesToString, ip4ToBytes, ip4ToString, ip6StringToValue, ip6ToBytes, ip6ToString, mb2bytes, onion2bytes, onion32bytes, port2bytes, stringToBytes } from './convert.ts' | ||
| import { InvalidProtocolError, ValidationError } from './errors.ts' | ||
| import { bytes2mb, bytes2onion, bytes2port, bytesToString, ip4ToBytes, ip4ToString, ip6StringToValue, ip6ToBytes, ip6ToString, mb2bytes, onion2bytes, onion32bytes, port2bytes, stringToBytes } from './utils.ts' | ||
| import { validatePort } from './validation.ts' | ||
@@ -9,0 +9,0 @@ |
Sorry, the diff of this file is too big to display
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
70
7.69%437355
-0.47%4623
-0.52%