From c21c2f94e3c2103a3fb484ce230a3435d47e86cd Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Wed, 27 Jun 2018 14:26:54 +0200 Subject: [PATCH] Update Multiaddr --- package.json | 2 +- types/libp2p-railing/index.d.ts | 2 +- types/multiaddr/index.d.ts | 105 ++++++++++++++++++++------------ types/peer-info/index.d.ts | 20 +++--- yarn.lock | 95 +++++++++++++++++++++++++++-- 5 files changed, 168 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 0214aa4..1d31dde 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "test": "echo \"No 'yarn run test' available\"" }, "devDependencies": { - "@polkadot/dev": "^0.20.3", + "@polkadot/dev": "^0.20.8", "@types/node": "^10.3.4" } } diff --git a/types/libp2p-railing/index.d.ts b/types/libp2p-railing/index.d.ts index 691c25e..ab05bc8 100644 --- a/types/libp2p-railing/index.d.ts +++ b/types/libp2p-railing/index.d.ts @@ -8,7 +8,7 @@ declare namespace LibP2pRailing { type Options = { - list: Array, + list: Array, interval?: number }; diff --git a/types/multiaddr/index.d.ts b/types/multiaddr/index.d.ts index b67639a..1d06395 100644 --- a/types/multiaddr/index.d.ts +++ b/types/multiaddr/index.d.ts @@ -6,51 +6,80 @@ /// /// -declare namespace MultiAddr { - type Address = { - family: string, - host: string, - port: string - }; +declare namespace Multiaddr { + type Code = number + type Size = number - type Options = Address & { - transport: string - }; + type Protocol = { + code: Code, + size: Size, + name: string, + resolvable: boolean + } - type Proto = { - code: number, - name: string, - size: number - }; + interface Protocols { + (proto: string | number): Protocol; - type Tuple = [ number, Buffer ]; + readonly lengthPrefixedVarSize: number; + readonly V: number; + readonly table: Array<[number, number, string]>; + readonly names: { [index: string]: Protocol }; + readonly codes: { [index: number]: Protocol }; - type TupleString = [ number, string ]; -} + object(code: Code, size: Size, name: string, resolvable: boolean): Protocol; + } -declare class MultiAddr { - constructor (addr: MultiAddr | Buffer | string); + type Options = { + family: string, + host: string, + transport: string, + port: string + } - static isMultiAddr (addr: any): addr is MultiAddr; - static isName (other: MultiAddr): boolean; - static fromNodeAddress (addr: { address: string, port: string }, transport: string): MultiAddr; + type NodeAddress = { + family: string, + address: string, + port: string + } - decapsulate (other: MultiAddr): MultiAddr; - encapsulate (other: MultiAddr): MultiAddr; - equals (other: MultiAddr): boolean; - getPeerId (): PeerId; - inspect (): string; - isThinWaistAddress (other?: MultiAddr): boolean; - nodeAddress (): MultiAddr.Address; - protos (): MultiAddr.Proto[]; - protoCodes (): number[]; - protoNames (): string[]; - stringTuples (): MultiAddr.TupleString[]; - tuples (): MultiAddr.Tuple[]; - toOptions (): MultiAddr.Options; - toString (): string; -} + interface Multiaddr { + readonly buffer: Buffer; + + toString(): string; + toOptions(): Options; + inspect(): string; + protos(): Protocol[]; + protoCodes(): Code[]; + protoNames(): string[]; + tuples(): Array<[Code, Buffer]>; + stringTuples(): Array<[Code, string | number]>; + encapsulate(addr: string | Buffer | Multiaddr): Multiaddr; + decapsulate(addr: string | Buffer | Multiaddr): Multiaddr; + getPeerId(): string | undefined; + equals(other: Multiaddr): boolean; + nodeAddress(): NodeAddress; + isThinWaistAddress(addr: Multiaddr): boolean; + fromStupidString(str: string): never; + } + + interface Exports { + (addr: string | Buffer | Multiaddr): Multiaddr; + + readonly Buffer: typeof Buffer; + readonly protocols: Protocols; + + fromNodeAddress(addr: NodeAddress, transport: string): Multiaddr; + isMultiaddr(addr: any): boolean; + isName(name: any): boolean; + resolve(value: any, cb: (error: Error) => void): void; + } + } declare module 'multiaddr' { -export default MultiAddr; +const multiaddr: Multiaddr.Exports + +export type Multiaddr = Multiaddr.Multiaddr +export type Protocol = Multiaddr.Protocol + +export default multiaddr } diff --git a/types/peer-info/index.d.ts b/types/peer-info/index.d.ts index cc5f288..4e53948 100644 --- a/types/peer-info/index.d.ts +++ b/types/peer-info/index.d.ts @@ -14,16 +14,16 @@ declare namespace PeerInfo { bits: number }; - type MultiAddrSet = { + type MultiaddrSet = { readonly size: number; - add (addr: MultiAddr | string): void; - addSafe (add: MultiAddr | string): void; - delete (addr: MultiAddr): void; - forEach (cb: (addr: MultiAddr, index: number) => any): void; - has (addr: MultiAddr): boolean; - replace (addr: MultiAddr, other: MultiAddr): void; - toArray (): MultiAddr[]; + add (addr: Multiaddr.Multiaddr | string): void; + addSafe (add: Multiaddr.Multiaddr | string): void; + delete (addr: Multiaddr.Multiaddr): void; + forEach (cb: (addr: Multiaddr.Multiaddr, index: number) => any): void; + has (addr: Multiaddr.Multiaddr): boolean; + replace (addr: Multiaddr.Multiaddr, other: Multiaddr.Multiaddr): void; + toArray (): Multiaddr.Multiaddr[]; }; } @@ -34,9 +34,9 @@ declare class PeerInfo { static isPeerInfo (info: any): info is PeerInfo; readonly id: PeerId; - readonly multiaddrs: PeerInfo.MultiAddrSet; + readonly multiaddrs: PeerInfo.MultiaddrSet; - connect (addr: MultiAddr): void; + connect (addr: Multiaddr.Multiaddr): void; disconnect (): void; isConnected (): boolean; } diff --git a/yarn.lock b/yarn.lock index 31995d3..bdca451 100644 --- a/yarn.lock +++ b/yarn.lock @@ -683,9 +683,9 @@ lodash "^4.17.5" to-fast-properties "^2.0.0" -"@polkadot/dev@^0.20.3": - version "0.20.3" - resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.3.tgz#4650600dd1f5952ee0054f267c7ebc76dd883593" +"@polkadot/dev@^0.20.8": + version "0.20.8" + resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.20.8.tgz#48d96f5b8c9b16c3abb94fa0df25705b48055bba" dependencies: "@babel/cli" "^7.0.0-beta.51" "@babel/core" "^7.0.0-beta.51" @@ -724,6 +724,8 @@ mkdirp "^0.5.1" ncp "^2.0.0" rimraf "^2.6.2" + tslint "^5.10.0" + tslint-config-semistandard "^7.0.0" typescript "^2.9.2" "@types/jest@^23.1.1": @@ -1217,7 +1219,7 @@ buffer-from@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" -builtin-modules@^1.0.0: +builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1319,7 +1321,7 @@ chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: @@ -1473,7 +1475,7 @@ commander@2.9.0, commander@~2.9.0: dependencies: graceful-readlink ">= 1.0.0" -commander@^2.8.1, commander@^2.9.0: +commander@^2.12.1, commander@^2.8.1, commander@^2.9.0: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" @@ -1883,6 +1885,13 @@ diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" +doctrine@0.7.2, doctrine@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" + dependencies: + esutils "^1.1.6" + isarray "0.0.1" + doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -2126,6 +2135,10 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" +esutils@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -5360,6 +5373,76 @@ trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +tslib@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" + +tslib@^1.0.0, tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + +tslint-config-semistandard@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tslint-config-semistandard/-/tslint-config-semistandard-7.0.0.tgz#c2d3214b6282a4fed07e875dd9f0691be4e832f1" + dependencies: + tslint-config-standard "^7.0.0" + tslint-eslint-rules "^4.1.1" + +tslint-config-standard@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/tslint-config-standard/-/tslint-config-standard-7.1.0.tgz#6bcc435a179478e365f6cc62312a561221985760" + dependencies: + tslint-eslint-rules "^5.3.1" + +tslint-eslint-rules@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz#7c30e7882f26bc276bff91d2384975c69daf88ba" + dependencies: + doctrine "^0.7.2" + tslib "^1.0.0" + tsutils "^1.4.0" + +tslint-eslint-rules@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.3.1.tgz#10dec4361df0b3e4385d91ff8e0226bda4ec2ad4" + dependencies: + doctrine "0.7.2" + tslib "1.9.0" + tsutils "2.8.0" + +tslint@^5.10.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.10.0.tgz#11e26bccb88afa02dd0d9956cae3d4540b5f54c3" + dependencies: + babel-code-frame "^6.22.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^3.2.0" + glob "^7.1.1" + js-yaml "^3.7.0" + minimatch "^3.0.4" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.12.1" + +tsutils@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.8.0.tgz#0160173729b3bf138628dd14a1537e00851d814a" + dependencies: + tslib "^1.7.1" + +tsutils@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0" + +tsutils@^2.12.1: + version "2.27.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.1.tgz#ab0276ac23664f36ce8fd4414daec4aebf4373ee" + dependencies: + tslib "^1.8.1" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"