mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-04-25 10:32:14 +00:00
chore: add dist
This commit is contained in:
parent
c95b32de5f
commit
8dd045e8bb
1
.gitignore
vendored
1
.gitignore
vendored
@ -37,7 +37,6 @@ build
|
|||||||
node_modules
|
node_modules
|
||||||
|
|
||||||
lib
|
lib
|
||||||
dist
|
|
||||||
test/test-data/go-ipfs-repo/LOCK
|
test/test-data/go-ipfs-repo/LOCK
|
||||||
test/test-data/go-ipfs-repo/LOG
|
test/test-data/go-ipfs-repo/LOG
|
||||||
test/test-data/go-ipfs-repo/LOG.old
|
test/test-data/go-ipfs-repo/LOG.old
|
||||||
|
49
dist/index.min.js
vendored
Normal file
49
dist/index.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
72
dist/src/address-manager/index.d.ts
vendored
Normal file
72
dist/src/address-manager/index.d.ts
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
export = AddressManager;
|
||||||
|
/**
|
||||||
|
* @typedef {Object} AddressManagerOptions
|
||||||
|
* @property {string[]} [listen = []] - list of multiaddrs string representation to listen.
|
||||||
|
* @property {string[]} [announce = []] - list of multiaddrs string representation to announce.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @fires AddressManager#change:addresses Emitted when a addresses change.
|
||||||
|
*/
|
||||||
|
declare class AddressManager extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* Responsible for managing the peer addresses.
|
||||||
|
* Peers can specify their listen and announce addresses.
|
||||||
|
* The listen addresses will be used by the libp2p transports to listen for new connections,
|
||||||
|
* while the announce addresses will be used for the peer addresses' to other peers in the network.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {PeerId} peerId - The Peer ID of the node
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {Array<string>} [options.listen = []] - list of multiaddrs string representation to listen.
|
||||||
|
* @param {Array<string>} [options.announce = []] - list of multiaddrs string representation to announce.
|
||||||
|
*/
|
||||||
|
constructor(peerId: PeerId, { listen, announce }?: {
|
||||||
|
listen?: string[] | undefined;
|
||||||
|
announce?: string[] | undefined;
|
||||||
|
} | undefined);
|
||||||
|
peerId: PeerId;
|
||||||
|
listen: Set<string>;
|
||||||
|
announce: Set<string>;
|
||||||
|
observed: Set<any>;
|
||||||
|
/**
|
||||||
|
* Get peer listen multiaddrs.
|
||||||
|
*
|
||||||
|
* @returns {Multiaddr[]}
|
||||||
|
*/
|
||||||
|
getListenAddrs(): Multiaddr[];
|
||||||
|
/**
|
||||||
|
* Get peer announcing multiaddrs.
|
||||||
|
*
|
||||||
|
* @returns {Multiaddr[]}
|
||||||
|
*/
|
||||||
|
getAnnounceAddrs(): Multiaddr[];
|
||||||
|
/**
|
||||||
|
* Get observed multiaddrs.
|
||||||
|
*
|
||||||
|
* @returns {Array<Multiaddr>}
|
||||||
|
*/
|
||||||
|
getObservedAddrs(): Array<Multiaddr>;
|
||||||
|
/**
|
||||||
|
* Add peer observed addresses
|
||||||
|
*
|
||||||
|
* @param {string | Multiaddr} addr
|
||||||
|
*/
|
||||||
|
addObservedAddr(addr: string | Multiaddr): void;
|
||||||
|
}
|
||||||
|
declare namespace AddressManager {
|
||||||
|
export { AddressManagerOptions };
|
||||||
|
}
|
||||||
|
import { EventEmitter } from "events";
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
import { Multiaddr } from "multiaddr";
|
||||||
|
type AddressManagerOptions = {
|
||||||
|
/**
|
||||||
|
* - list of multiaddrs string representation to listen.
|
||||||
|
*/
|
||||||
|
listen?: string[] | undefined;
|
||||||
|
/**
|
||||||
|
* - list of multiaddrs string representation to announce.
|
||||||
|
*/
|
||||||
|
announce?: string[] | undefined;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/address-manager/index.d.ts.map
vendored
Normal file
1
dist/src/address-manager/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/address-manager/index.js"],"names":[],"mappings":";AAMA;;;;GAIG;AAEH;;GAEG;AACH;IACE;;;;;;;;;;;OAWG;IACH,oBALW,MAAM;;;mBAYhB;IAJC,eAAoB;IACpB,oBAAsD;IACtD,sBAA0D;IAC1D,mBAAyB;IAG3B;;;;OAIG;IACH,kBAFa,SAAS,EAAE,CAIvB;IAED;;;;OAIG;IACH,oBAFa,SAAS,EAAE,CAIvB;IAED;;;;OAIG;IACH,oBAFa,MAAM,SAAS,CAAC,CAI5B;IAED;;;;OAIG;IACH,sBAFW,MAAM,GAAG,SAAS,QAyB5B;CACF"}
|
109
dist/src/circuit/auto-relay.d.ts
vendored
Normal file
109
dist/src/circuit/auto-relay.d.ts
vendored
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
export = AutoRelay;
|
||||||
|
/**
|
||||||
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
||||||
|
* @typedef {import('../peer-store/address-book').Address} Address
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} AutoRelayProperties
|
||||||
|
* @property {import('../')} libp2p
|
||||||
|
*
|
||||||
|
* @typedef {Object} AutoRelayOptions
|
||||||
|
* @property {number} [maxListeners = 1] - maximum number of relays to listen.
|
||||||
|
* @property {(error: Error, msg?: string) => {}} [onError]
|
||||||
|
*/
|
||||||
|
declare class AutoRelay {
|
||||||
|
/**
|
||||||
|
* Creates an instance of AutoRelay.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {AutoRelayProperties & AutoRelayOptions} props
|
||||||
|
*/
|
||||||
|
constructor({ libp2p, maxListeners, onError }: AutoRelayProperties & AutoRelayOptions);
|
||||||
|
_libp2p: import("../");
|
||||||
|
_peerId: PeerId;
|
||||||
|
_peerStore: import("../peer-store");
|
||||||
|
_connectionManager: import("../connection-manager");
|
||||||
|
_transportManager: import("../transport-manager");
|
||||||
|
_addressSorter: (addresses: import("../peer-store/address-book").Address[]) => import("../peer-store/address-book").Address[];
|
||||||
|
maxListeners: number;
|
||||||
|
/**
|
||||||
|
* @type {Set<string>}
|
||||||
|
*/
|
||||||
|
_listenRelays: Set<string>;
|
||||||
|
/**
|
||||||
|
* Check if a peer supports the relay protocol.
|
||||||
|
* If the protocol is not supported, check if it was supported before and remove it as a listen relay.
|
||||||
|
* If the protocol is supported, check if the peer supports **HOP** and add it as a listener if
|
||||||
|
* inside the threshold.
|
||||||
|
*
|
||||||
|
* @param {Object} props
|
||||||
|
* @param {PeerId} props.peerId
|
||||||
|
* @param {string[]} props.protocols
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
_onProtocolChange({ peerId, protocols }: {
|
||||||
|
peerId: PeerId;
|
||||||
|
protocols: string[];
|
||||||
|
}): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Peer disconnects.
|
||||||
|
*
|
||||||
|
* @param {Connection} connection - connection to the peer
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
_onPeerDisconnected(connection: Connection): void;
|
||||||
|
/**
|
||||||
|
* @param {Error} error
|
||||||
|
* @param {string} [msg]
|
||||||
|
*/
|
||||||
|
_onError: (error: Error, msg?: string | undefined) => void;
|
||||||
|
/**
|
||||||
|
* Attempt to listen on the given relay connection.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Connection} connection - connection to the peer
|
||||||
|
* @param {string} id - peer identifier string
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
private _addListenRelay;
|
||||||
|
/**
|
||||||
|
* Remove listen relay.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {string} id - peer identifier string.
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
private _removeListenRelay;
|
||||||
|
/**
|
||||||
|
* Try to listen on available hop relay connections.
|
||||||
|
* The following order will happen while we do not have enough relays.
|
||||||
|
* 1. Check the metadata store for known relays, try to listen on the ones we are already connected.
|
||||||
|
* 2. Dial and try to listen on the peers we know that support hop but are not connected.
|
||||||
|
* 3. Search the network.
|
||||||
|
*
|
||||||
|
* @param {string[]} [peersToIgnore]
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
_listenOnAvailableHopRelays(peersToIgnore?: string[] | undefined): Promise<void>;
|
||||||
|
/**
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
*/
|
||||||
|
_tryToListenOnRelay(peerId: PeerId): Promise<void>;
|
||||||
|
}
|
||||||
|
declare namespace AutoRelay {
|
||||||
|
export { Connection, Address, AutoRelayProperties, AutoRelayOptions };
|
||||||
|
}
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
type AutoRelayProperties = {
|
||||||
|
libp2p: import('../');
|
||||||
|
};
|
||||||
|
type AutoRelayOptions = {
|
||||||
|
/**
|
||||||
|
* - maximum number of relays to listen.
|
||||||
|
*/
|
||||||
|
maxListeners?: number | undefined;
|
||||||
|
onError?: ((error: Error, msg?: string | undefined) => {}) | undefined;
|
||||||
|
};
|
||||||
|
type Address = import('../peer-store/address-book').Address;
|
||||||
|
//# sourceMappingURL=auto-relay.d.ts.map
|
1
dist/src/circuit/auto-relay.d.ts.map
vendored
Normal file
1
dist/src/circuit/auto-relay.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"auto-relay.d.ts","sourceRoot":"","sources":["../../../src/circuit/auto-relay.js"],"names":[],"mappings":";AAsBA;;;GAGG;AAEH;;;;;;;GAOG;AAEH;IACE;;;;;OAKG;IACH,+CAFW,mBAAmB,GAAG,gBAAgB,EA+BhD;IA5BC,uBAAqB;IACrB,gBAA4B;IAC5B,oCAAkC;IAClC,oDAAkD;IAClD,kDAAgD;IAChD,8HAAiD;IAEjD,qBAAgC;IAEhC;;OAEG;IACH,eAFU,IAAI,MAAM,CAAC,CAES;IAkBhC;;;;;;;;;;OAUG;IACH;QAJyB,MAAM,EAApB,MAAM;QACU,SAAS,EAAzB,MAAM,EAAE;QACN,QAAQ,IAAI,CAAC,CAsCzB;IAED;;;;;OAKG;IACH,gCAHW,UAAU,GACR,IAAI,CAYhB;IA3EC;;;OAGG;IACH,kBAHW,KAAK,oCAMf;IAsEH;;;;;;;OAOG;IACH,wBA0BC;IAED;;;;;;OAMG;IACH,2BAKC;IAED;;;;;;;;;OASG;IACH,mEAFa,QAAQ,IAAI,CAAC,CAyEzB;IAED;;OAEG;IACH,4BAFW,MAAM,iBAShB;CACF;;;;;;;YAhQa,OAAO,KAAK,CAAC;;;;;;;uBAIL,KAAK,+BAAmB,EAAE;;eATnC,OAAO,4BAA4B,EAAE,OAAO"}
|
67
dist/src/circuit/circuit/hop.d.ts
vendored
Normal file
67
dist/src/circuit/circuit/hop.d.ts
vendored
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
export type ICircuitRelay = import('../protocol').ICircuitRelay;
|
||||||
|
export type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
export type MuxedStream = import('libp2p-interfaces/src/stream-muxer/types').MuxedStream;
|
||||||
|
export type Transport = import('../transport');
|
||||||
|
export type HopRequest = {
|
||||||
|
connection: Connection;
|
||||||
|
request: ICircuitRelay;
|
||||||
|
streamHandler: StreamHandler;
|
||||||
|
circuit: Transport;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* @typedef {import('../protocol').ICircuitRelay} ICircuitRelay
|
||||||
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
||||||
|
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
|
||||||
|
* @typedef {import('../transport')} Transport
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} HopRequest
|
||||||
|
* @property {Connection} connection
|
||||||
|
* @property {ICircuitRelay} request
|
||||||
|
* @property {StreamHandler} streamHandler
|
||||||
|
* @property {Transport} circuit
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @param {HopRequest} options
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
export function handleHop({ connection, request, streamHandler, circuit }: HopRequest): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Performs a HOP request to a relay peer, to request a connection to another
|
||||||
|
* peer. A new, virtual, connection will be created between the two via the relay.
|
||||||
|
*
|
||||||
|
* @param {object} options
|
||||||
|
* @param {Connection} options.connection - Connection to the relay
|
||||||
|
* @param {ICircuitRelay} options.request
|
||||||
|
* @returns {Promise<MuxedStream>}
|
||||||
|
*/
|
||||||
|
export function hop({ connection, request }: {
|
||||||
|
connection: Connection;
|
||||||
|
request: ICircuitRelay;
|
||||||
|
}): Promise<MuxedStream>;
|
||||||
|
/**
|
||||||
|
* Performs a CAN_HOP request to a relay peer, in order to understand its capabilities.
|
||||||
|
*
|
||||||
|
* @param {object} options
|
||||||
|
* @param {Connection} options.connection - Connection to the relay
|
||||||
|
* @returns {Promise<boolean>}
|
||||||
|
*/
|
||||||
|
export function canHop({ connection }: {
|
||||||
|
connection: Connection;
|
||||||
|
}): Promise<boolean>;
|
||||||
|
/**
|
||||||
|
* Creates an unencoded CAN_HOP response based on the Circuits configuration
|
||||||
|
*
|
||||||
|
* @param {Object} options
|
||||||
|
* @param {Connection} options.connection
|
||||||
|
* @param {StreamHandler} options.streamHandler
|
||||||
|
* @param {Transport} options.circuit
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
export function handleCanHop({ connection, streamHandler, circuit }: {
|
||||||
|
connection: Connection;
|
||||||
|
streamHandler: StreamHandler;
|
||||||
|
circuit: Transport;
|
||||||
|
}): void;
|
||||||
|
import StreamHandler = require("./stream-handler");
|
||||||
|
//# sourceMappingURL=hop.d.ts.map
|
1
dist/src/circuit/circuit/hop.d.ts.map
vendored
Normal file
1
dist/src/circuit/circuit/hop.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"hop.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/hop.js"],"names":[],"mappings":"4BAoBa,OAAO,aAAa,EAAE,aAAa;;0BAEnC,OAAO,0CAA0C,EAAE,WAAW;wBAC9D,OAAO,cAAc,CAAC;;gBAKrB,UAAU;aACV,aAAa;mBACb,aAAa;aACb,SAAS;;AAZvB;;;;;GAKG;AAEH;;;;;;GAMG;AAEH;;;GAGG;AACH,2EAHW,UAAU,GACR,QAAQ,IAAI,CAAC,CA4EzB;AAED;;;;;;;;GAQG;AACH;IAJ+B,UAAU,EAA9B,UAAU;IACa,OAAO,EAA9B,aAAa;IACX,QAAQ,WAAW,CAAC,CA0BhC;AAED;;;;;;GAMG;AACH;IAH+B,UAAU,EAA9B,UAAU;IACR,QAAQ,OAAO,CAAC,CAqB5B;AAED;;;;;;;;GAQG;AACH;IAL+B,UAAU,EAA9B,UAAU;IACa,aAAa,EAApC,aAAa;IACM,OAAO,EAA1B,SAAS;SAcnB"}
|
14
dist/src/circuit/circuit/stop.d.ts
vendored
Normal file
14
dist/src/circuit/circuit/stop.d.ts
vendored
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
export function handleStop({ connection, request, streamHandler }: {
|
||||||
|
connection: Connection;
|
||||||
|
request: ICircuitRelay;
|
||||||
|
streamHandler: StreamHandler;
|
||||||
|
}): Promise<MuxedStream> | void;
|
||||||
|
export function stop({ connection, request }: {
|
||||||
|
connection: Connection;
|
||||||
|
request: ICircuitRelay;
|
||||||
|
}): Promise<MuxedStream | void>;
|
||||||
|
export type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
export type MuxedStream = import('libp2p-interfaces/src/stream-muxer/types').MuxedStream;
|
||||||
|
export type ICircuitRelay = import('../protocol').ICircuitRelay;
|
||||||
|
import StreamHandler = require("./stream-handler");
|
||||||
|
//# sourceMappingURL=stop.d.ts.map
|
1
dist/src/circuit/circuit/stop.d.ts.map
vendored
Normal file
1
dist/src/circuit/circuit/stop.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/stop.js"],"names":[],"mappings":"AA4B4B;IALG,UAAU,EAA9B,UAAU;IACa,OAAO,EAA9B,aAAa;IACU,aAAa,EAApC,aAAa;IACX,QAAQ,WAAW,CAAC,GAAC,IAAI,CAqBrC;AAWqB;IAJS,UAAU,EAA9B,UAAU;IACa,OAAO,EAA9B,aAAa;IACX,QAAQ,WAAW,GAAC,IAAI,CAAC,CAwBrC;;0BAlEY,OAAO,0CAA0C,EAAE,WAAW;4BAC9D,OAAO,aAAa,EAAE,aAAa"}
|
58
dist/src/circuit/circuit/stream-handler.d.ts
vendored
Normal file
58
dist/src/circuit/circuit/stream-handler.d.ts
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
export = StreamHandler;
|
||||||
|
/**
|
||||||
|
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
|
||||||
|
* @typedef {import('../protocol').ICircuitRelay} ICircuitRelay
|
||||||
|
*/
|
||||||
|
declare class StreamHandler {
|
||||||
|
/**
|
||||||
|
* Create a stream handler for connection
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {object} options
|
||||||
|
* @param {MuxedStream} options.stream - A duplex iterable
|
||||||
|
* @param {number} [options.maxLength = 4096] - max bytes length of message
|
||||||
|
*/
|
||||||
|
constructor({ stream, maxLength }: {
|
||||||
|
stream: MuxedStream;
|
||||||
|
maxLength?: number | undefined;
|
||||||
|
});
|
||||||
|
stream: import("libp2p-interfaces/src/stream-muxer/types").MuxedStream;
|
||||||
|
shake: any;
|
||||||
|
decoder: AsyncGenerator<any, void, unknown>;
|
||||||
|
/**
|
||||||
|
* Read and decode message
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
*/
|
||||||
|
read(): Promise<CircuitRelay | undefined>;
|
||||||
|
/**
|
||||||
|
* Encode and write array of buffers
|
||||||
|
*
|
||||||
|
* @param {ICircuitRelay} msg - An unencoded CircuitRelay protobuf message
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
write(msg: ICircuitRelay): void;
|
||||||
|
/**
|
||||||
|
* Return the handshake rest stream and invalidate handler
|
||||||
|
*
|
||||||
|
* @returns {*} A duplex iterable
|
||||||
|
*/
|
||||||
|
rest(): any;
|
||||||
|
/**
|
||||||
|
* @param {ICircuitRelay} msg - An unencoded CircuitRelay protobuf message
|
||||||
|
*/
|
||||||
|
end(msg: ICircuitRelay): void;
|
||||||
|
/**
|
||||||
|
* Close the stream
|
||||||
|
*
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
close(): void;
|
||||||
|
}
|
||||||
|
declare namespace StreamHandler {
|
||||||
|
export { MuxedStream, ICircuitRelay };
|
||||||
|
}
|
||||||
|
import { CircuitRelay } from "../protocol";
|
||||||
|
type ICircuitRelay = import('../protocol').ICircuitRelay;
|
||||||
|
type MuxedStream = import('libp2p-interfaces/src/stream-muxer/types').MuxedStream;
|
||||||
|
//# sourceMappingURL=stream-handler.d.ts.map
|
1
dist/src/circuit/circuit/stream-handler.d.ts.map
vendored
Normal file
1
dist/src/circuit/circuit/stream-handler.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/stream-handler.js"],"names":[],"mappings":";AAYA;;;GAGG;AAEH;IACE;;;;;;;OAOG;IACH;QAHgC,MAAM,EAA3B,WAAW;QACM,SAAS;OAQpC;IALC,uEAAoB;IAEpB,WAAmC;IAEnC,4CAAoF;IAGtF;;;;OAIG;IACH,0CAWC;IAED;;;;;OAKG;IACH,WAHW,aAAa,GACX,IAAI,CAMhB;IAED;;;;OAIG;IACH,YAGC;IAED;;OAEG;IACH,SAFW,aAAa,QAKvB;IAED;;;;OAIG;IACH,SAFa,IAAI,CAKhB;CACF;;;;;qBA7EY,OAAO,aAAa,EAAE,aAAa;mBADnC,OAAO,0CAA0C,EAAE,WAAW"}
|
10
dist/src/circuit/circuit/utils.d.ts
vendored
Normal file
10
dist/src/circuit/circuit/utils.d.ts
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
export type StreamHandler = import('./stream-handler');
|
||||||
|
export type ICircuitRelay = import('../protocol').ICircuitRelay;
|
||||||
|
/**
|
||||||
|
* Validate incomming HOP/STOP message
|
||||||
|
*
|
||||||
|
* @param {ICircuitRelay} msg - A CircuitRelay unencoded protobuf message
|
||||||
|
* @param {StreamHandler} streamHandler
|
||||||
|
*/
|
||||||
|
export function validateAddrs(msg: ICircuitRelay, streamHandler: StreamHandler): void;
|
||||||
|
//# sourceMappingURL=utils.d.ts.map
|
1
dist/src/circuit/circuit/utils.d.ts.map
vendored
Normal file
1
dist/src/circuit/circuit/utils.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/circuit/circuit/utils.js"],"names":[],"mappings":"4BAMa,OAAO,kBAAkB,CAAC;4BAC1B,OAAO,aAAa,EAAE,aAAa;AAgBhD;;;;;GAKG;AACH,mCAHW,aAAa,iBACb,aAAa,QA4BvB"}
|
7
dist/src/circuit/constants.d.ts
vendored
Normal file
7
dist/src/circuit/constants.d.ts
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
export const ADVERTISE_BOOT_DELAY: number;
|
||||||
|
export const ADVERTISE_TTL: number;
|
||||||
|
export const CIRCUIT_PROTO_CODE: number;
|
||||||
|
export const HOP_METADATA_KEY: string;
|
||||||
|
export const HOP_METADATA_VALUE: string;
|
||||||
|
export const RELAY_RENDEZVOUS_NS: string;
|
||||||
|
//# sourceMappingURL=constants.d.ts.map
|
1
dist/src/circuit/constants.d.ts.map
vendored
Normal file
1
dist/src/circuit/constants.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/circuit/constants.js"],"names":[],"mappings":""}
|
85
dist/src/circuit/index.d.ts
vendored
Normal file
85
dist/src/circuit/index.d.ts
vendored
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
export = Relay;
|
||||||
|
/**
|
||||||
|
* @typedef {import('../')} Libp2p
|
||||||
|
*
|
||||||
|
* @typedef {Object} RelayAdvertiseOptions
|
||||||
|
* @property {number} [bootDelay = ADVERTISE_BOOT_DELAY]
|
||||||
|
* @property {boolean} [enabled = true]
|
||||||
|
* @property {number} [ttl = ADVERTISE_TTL]
|
||||||
|
*
|
||||||
|
* @typedef {Object} HopOptions
|
||||||
|
* @property {boolean} [enabled = false]
|
||||||
|
* @property {boolean} [active = false]
|
||||||
|
*
|
||||||
|
* @typedef {Object} AutoRelayOptions
|
||||||
|
* @property {number} [maxListeners = 2] - maximum number of relays to listen.
|
||||||
|
* @property {boolean} [enabled = false]
|
||||||
|
*/
|
||||||
|
declare class Relay {
|
||||||
|
/**
|
||||||
|
* Creates an instance of Relay.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {Libp2p} libp2p
|
||||||
|
*/
|
||||||
|
constructor(libp2p: Libp2p);
|
||||||
|
_libp2p: import("../");
|
||||||
|
_options: {
|
||||||
|
enabled: boolean;
|
||||||
|
advertise: {
|
||||||
|
bootDelay: number;
|
||||||
|
enabled: boolean;
|
||||||
|
ttl: number;
|
||||||
|
} & RelayAdvertiseOptions;
|
||||||
|
hop: {
|
||||||
|
enabled: boolean;
|
||||||
|
active: boolean;
|
||||||
|
} & HopOptions;
|
||||||
|
autoRelay: {
|
||||||
|
enabled: boolean;
|
||||||
|
maxListeners: number;
|
||||||
|
} & AutoRelayOptions;
|
||||||
|
};
|
||||||
|
_autoRelay: false | AutoRelay;
|
||||||
|
/**
|
||||||
|
* Advertise hop relay service in the network.
|
||||||
|
*
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
_advertiseService(): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Start Relay service.
|
||||||
|
*
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
start(): void;
|
||||||
|
_timeout: any;
|
||||||
|
/**
|
||||||
|
* Stop Relay service.
|
||||||
|
*
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
stop(): void;
|
||||||
|
}
|
||||||
|
declare namespace Relay {
|
||||||
|
export { Libp2p, RelayAdvertiseOptions, HopOptions, AutoRelayOptions };
|
||||||
|
}
|
||||||
|
type RelayAdvertiseOptions = {
|
||||||
|
bootDelay?: number | undefined;
|
||||||
|
enabled?: boolean | undefined;
|
||||||
|
ttl?: number | undefined;
|
||||||
|
};
|
||||||
|
type HopOptions = {
|
||||||
|
enabled?: boolean | undefined;
|
||||||
|
active?: boolean | undefined;
|
||||||
|
};
|
||||||
|
type AutoRelayOptions = {
|
||||||
|
/**
|
||||||
|
* - maximum number of relays to listen.
|
||||||
|
*/
|
||||||
|
maxListeners?: number | undefined;
|
||||||
|
enabled?: boolean | undefined;
|
||||||
|
};
|
||||||
|
import AutoRelay = require("./auto-relay");
|
||||||
|
type Libp2p = import('../');
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/circuit/index.d.ts.map
vendored
Normal file
1
dist/src/circuit/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/circuit/index.js"],"names":[],"mappings":";AAmBA;;;;;;;;;;;;;;;GAeG;AAEH;IACE;;;;;OAKG;IACH,oBAFW,MAAM,EAYhB;IATC,uBAAqB;IACrB;;;;;;;;;;;;;;;MAEC;IAGD,8BAA0G;IA8B5G;;;;OAIG;IACH,qBAFa,QAAQ,IAAI,CAAC,CAezB;IA3CD;;;;OAIG;IACH,SAFa,IAAI,CAWhB;IAJG,cAEC;IAIL;;;;OAIG;IACH,QAFa,IAAI,CAIhB;CAqBF;;;;;;;;;;;;;;;;;;;;;cA/EY,OAAO,KAAK,CAAC"}
|
4
dist/src/circuit/listener.d.ts
vendored
Normal file
4
dist/src/circuit/listener.d.ts
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
declare function _exports(libp2p: import('../')): Listener;
|
||||||
|
export = _exports;
|
||||||
|
export type Listener = import('libp2p-interfaces/src/transport/types').Listener;
|
||||||
|
//# sourceMappingURL=listener.d.ts.map
|
1
dist/src/circuit/listener.d.ts.map
vendored
Normal file
1
dist/src/circuit/listener.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../src/circuit/listener.js"],"names":[],"mappings":"AAaiB,kCAHN,OAAO,KAAK,CAAC,GACX,QAAQ,CA+DpB;;uBApEY,OAAO,uCAAuC,EAAE,QAAQ"}
|
2
dist/src/circuit/multicodec.d.ts
vendored
Normal file
2
dist/src/circuit/multicodec.d.ts
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
export const relay: string;
|
||||||
|
//# sourceMappingURL=multicodec.d.ts.map
|
1
dist/src/circuit/multicodec.d.ts.map
vendored
Normal file
1
dist/src/circuit/multicodec.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"multicodec.d.ts","sourceRoot":"","sources":["../../../src/circuit/multicodec.js"],"names":[],"mappings":""}
|
173
dist/src/circuit/protocol/index.d.ts
vendored
Normal file
173
dist/src/circuit/protocol/index.d.ts
vendored
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
import * as $protobuf from "protobufjs";
|
||||||
|
/** Properties of a CircuitRelay. */
|
||||||
|
export interface ICircuitRelay {
|
||||||
|
|
||||||
|
/** CircuitRelay type */
|
||||||
|
type?: (CircuitRelay.Type|null);
|
||||||
|
|
||||||
|
/** CircuitRelay srcPeer */
|
||||||
|
srcPeer?: (CircuitRelay.IPeer|null);
|
||||||
|
|
||||||
|
/** CircuitRelay dstPeer */
|
||||||
|
dstPeer?: (CircuitRelay.IPeer|null);
|
||||||
|
|
||||||
|
/** CircuitRelay code */
|
||||||
|
code?: (CircuitRelay.Status|null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents a CircuitRelay. */
|
||||||
|
export class CircuitRelay implements ICircuitRelay {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new CircuitRelay.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: ICircuitRelay);
|
||||||
|
|
||||||
|
/** CircuitRelay type. */
|
||||||
|
public type: CircuitRelay.Type;
|
||||||
|
|
||||||
|
/** CircuitRelay srcPeer. */
|
||||||
|
public srcPeer?: (CircuitRelay.IPeer|null);
|
||||||
|
|
||||||
|
/** CircuitRelay dstPeer. */
|
||||||
|
public dstPeer?: (CircuitRelay.IPeer|null);
|
||||||
|
|
||||||
|
/** CircuitRelay code. */
|
||||||
|
public code: CircuitRelay.Status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified CircuitRelay message. Does not implicitly {@link CircuitRelay.verify|verify} messages.
|
||||||
|
* @param m CircuitRelay message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: ICircuitRelay, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes a CircuitRelay message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns CircuitRelay
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): CircuitRelay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a CircuitRelay message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns CircuitRelay
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): CircuitRelay;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from a CircuitRelay message. Also converts values to other types if specified.
|
||||||
|
* @param m CircuitRelay
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: CircuitRelay, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this CircuitRelay to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
||||||
|
|
||||||
|
export namespace CircuitRelay {
|
||||||
|
|
||||||
|
/** Status enum. */
|
||||||
|
enum Status {
|
||||||
|
SUCCESS = 100,
|
||||||
|
HOP_SRC_ADDR_TOO_LONG = 220,
|
||||||
|
HOP_DST_ADDR_TOO_LONG = 221,
|
||||||
|
HOP_SRC_MULTIADDR_INVALID = 250,
|
||||||
|
HOP_DST_MULTIADDR_INVALID = 251,
|
||||||
|
HOP_NO_CONN_TO_DST = 260,
|
||||||
|
HOP_CANT_DIAL_DST = 261,
|
||||||
|
HOP_CANT_OPEN_DST_STREAM = 262,
|
||||||
|
HOP_CANT_SPEAK_RELAY = 270,
|
||||||
|
HOP_CANT_RELAY_TO_SELF = 280,
|
||||||
|
STOP_SRC_ADDR_TOO_LONG = 320,
|
||||||
|
STOP_DST_ADDR_TOO_LONG = 321,
|
||||||
|
STOP_SRC_MULTIADDR_INVALID = 350,
|
||||||
|
STOP_DST_MULTIADDR_INVALID = 351,
|
||||||
|
STOP_RELAY_REFUSED = 390,
|
||||||
|
MALFORMED_MESSAGE = 400
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Type enum. */
|
||||||
|
enum Type {
|
||||||
|
HOP = 1,
|
||||||
|
STOP = 2,
|
||||||
|
STATUS = 3,
|
||||||
|
CAN_HOP = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Properties of a Peer. */
|
||||||
|
interface IPeer {
|
||||||
|
|
||||||
|
/** Peer id */
|
||||||
|
id: Uint8Array;
|
||||||
|
|
||||||
|
/** Peer addrs */
|
||||||
|
addrs?: (Uint8Array[]|null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents a Peer. */
|
||||||
|
class Peer implements IPeer {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new Peer.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: CircuitRelay.IPeer);
|
||||||
|
|
||||||
|
/** Peer id. */
|
||||||
|
public id: Uint8Array;
|
||||||
|
|
||||||
|
/** Peer addrs. */
|
||||||
|
public addrs: Uint8Array[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified Peer message. Does not implicitly {@link CircuitRelay.Peer.verify|verify} messages.
|
||||||
|
* @param m Peer message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: CircuitRelay.IPeer, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes a Peer message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns Peer
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): CircuitRelay.Peer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a Peer message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns Peer
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): CircuitRelay.Peer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from a Peer message. Also converts values to other types if specified.
|
||||||
|
* @param m Peer
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: CircuitRelay.Peer, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this Peer to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
||||||
|
}
|
93
dist/src/circuit/transport.d.ts
vendored
Normal file
93
dist/src/circuit/transport.d.ts
vendored
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
export = Circuit;
|
||||||
|
/**
|
||||||
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
||||||
|
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
|
||||||
|
*/
|
||||||
|
declare class Circuit {
|
||||||
|
/**
|
||||||
|
* Checks if the given value is a Transport instance.
|
||||||
|
*
|
||||||
|
* @param {any} other
|
||||||
|
* @returns {other is Transport}
|
||||||
|
*/
|
||||||
|
static isTransport(other: any): other is Transport;
|
||||||
|
/**
|
||||||
|
* Creates an instance of the Circuit Transport.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {object} options
|
||||||
|
* @param {import('../')} options.libp2p
|
||||||
|
* @param {import('../upgrader')} options.upgrader
|
||||||
|
*/
|
||||||
|
constructor({ libp2p, upgrader }: {
|
||||||
|
libp2p: import('../');
|
||||||
|
upgrader: import('../upgrader');
|
||||||
|
});
|
||||||
|
_dialer: import("../dialer");
|
||||||
|
_registrar: import("../registrar");
|
||||||
|
_connectionManager: import("../connection-manager");
|
||||||
|
_upgrader: import("../upgrader");
|
||||||
|
_options: {
|
||||||
|
enabled: boolean;
|
||||||
|
advertise: {
|
||||||
|
bootDelay: number;
|
||||||
|
enabled: boolean;
|
||||||
|
ttl: number;
|
||||||
|
};
|
||||||
|
hop: {
|
||||||
|
enabled: boolean;
|
||||||
|
active: boolean;
|
||||||
|
};
|
||||||
|
autoRelay: {
|
||||||
|
enabled: boolean;
|
||||||
|
maxListeners: number;
|
||||||
|
};
|
||||||
|
} & import("../").RelayOptions;
|
||||||
|
_libp2p: import("../");
|
||||||
|
peerId: PeerId;
|
||||||
|
/**
|
||||||
|
* @param {Object} props
|
||||||
|
* @param {Connection} props.connection
|
||||||
|
* @param {MuxedStream} props.stream
|
||||||
|
*/
|
||||||
|
_onProtocol({ connection, stream }: {
|
||||||
|
connection: Connection;
|
||||||
|
stream: MuxedStream;
|
||||||
|
}): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Dial a peer over a relay
|
||||||
|
*
|
||||||
|
* @param {Multiaddr} ma - the multiaddr of the peer to dial
|
||||||
|
* @param {Object} options - dial options
|
||||||
|
* @param {AbortSignal} [options.signal] - An optional abort signal
|
||||||
|
* @returns {Promise<Connection>} - the connection
|
||||||
|
*/
|
||||||
|
dial(ma: Multiaddr, options: {
|
||||||
|
signal?: AbortSignal | undefined;
|
||||||
|
}): Promise<Connection>;
|
||||||
|
/**
|
||||||
|
* Create a listener
|
||||||
|
*
|
||||||
|
* @param {any} options
|
||||||
|
* @param {Function} handler
|
||||||
|
* @returns {import('libp2p-interfaces/src/transport/types').Listener}
|
||||||
|
*/
|
||||||
|
createListener(options: any, handler: Function): import('libp2p-interfaces/src/transport/types').Listener;
|
||||||
|
handler: Function | undefined;
|
||||||
|
/**
|
||||||
|
* Filter check for all Multiaddrs that this transport can dial on
|
||||||
|
*
|
||||||
|
* @param {Multiaddr[]} multiaddrs
|
||||||
|
* @returns {Multiaddr[]}
|
||||||
|
*/
|
||||||
|
filter(multiaddrs: Multiaddr[]): Multiaddr[];
|
||||||
|
get [Symbol.toStringTag](): string;
|
||||||
|
}
|
||||||
|
declare namespace Circuit {
|
||||||
|
export { Connection, MuxedStream };
|
||||||
|
}
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
type MuxedStream = import('libp2p-interfaces/src/stream-muxer/types').MuxedStream;
|
||||||
|
import { Multiaddr } from "multiaddr";
|
||||||
|
//# sourceMappingURL=transport.d.ts.map
|
1
dist/src/circuit/transport.d.ts.map
vendored
Normal file
1
dist/src/circuit/transport.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/circuit/transport.js"],"names":[],"mappings":";AAwBA;;;GAGG;AAEH;IA4LE;;;;;OAKG;IACH,0BAHW,GAAG,sBAKb;IAnMD;;;;;;;OAOG;IACH;QAHkC,MAAM,EAA7B,OAAO,KAAK,CAAC;QACkB,QAAQ,EAAvC,OAAO,aAAa,CAAC;OAY/B;IATC,6BAA4B;IAC5B,mCAAkC;IAClC,oDAAkD;IAClD,iCAAyB;IACzB;;;;;;;;;;;;;;;mCAAoC;IACpC,uBAAqB;IACrB,eAA2B;IAK7B;;;;OAIG;IACH;QAH6B,UAAU,EAA5B,UAAU;QACS,MAAM,EAAzB,WAAW;sBA6DrB;IAED;;;;;;;OAOG;IACH,SALW,SAAS;QAEa,MAAM;QAC1B,QAAQ,UAAU,CAAC,CAwD/B;IAED;;;;;;OAMG;IACH,wBAJW,GAAG,sBAED,OAAO,uCAAuC,EAAE,QAAQ,CAYpE;IAHC,8BAAsB;IAKxB;;;;;OAKG;IACH,mBAHW,SAAS,EAAE,GACT,SAAS,EAAE,CAQvB;IAED,mCAEC;CAWF;;;;;;mBAxMY,OAAO,0CAA0C,EAAE,WAAW"}
|
3
dist/src/circuit/utils.d.ts
vendored
Normal file
3
dist/src/circuit/utils.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export function namespaceToCid(namespace: string): Promise<CID>;
|
||||||
|
import CID = require("cids");
|
||||||
|
//# sourceMappingURL=utils.d.ts.map
|
1
dist/src/circuit/utils.d.ts.map
vendored
Normal file
1
dist/src/circuit/utils.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/circuit/utils.js"],"names":[],"mappings":"AAagC,0CAHrB,MAAM,GACJ,QAAQ,GAAG,CAAC,CAOxB"}
|
90
dist/src/config.d.ts
vendored
Normal file
90
dist/src/config.d.ts
vendored
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
export function validate(opts: Libp2pOptions): {
|
||||||
|
addresses: {
|
||||||
|
listen: never[];
|
||||||
|
announce: never[];
|
||||||
|
noAnnounce: never[];
|
||||||
|
announceFilter: (multiaddrs: Multiaddr[]) => import("multiaddr").Multiaddr[];
|
||||||
|
};
|
||||||
|
connectionManager: {
|
||||||
|
minConnections: number;
|
||||||
|
};
|
||||||
|
transportManager: {
|
||||||
|
faultTolerance: number;
|
||||||
|
};
|
||||||
|
dialer: {
|
||||||
|
maxParallelDials: number;
|
||||||
|
maxDialsPerPeer: number;
|
||||||
|
dialTimeout: number;
|
||||||
|
resolvers: {
|
||||||
|
dnsaddr: any;
|
||||||
|
};
|
||||||
|
addressSorter: typeof publicAddressesFirst;
|
||||||
|
};
|
||||||
|
host: {
|
||||||
|
agentVersion: string;
|
||||||
|
};
|
||||||
|
metrics: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
peerStore: {
|
||||||
|
persistence: boolean;
|
||||||
|
threshold: number;
|
||||||
|
};
|
||||||
|
peerRouting: {
|
||||||
|
refreshManager: {
|
||||||
|
enabled: boolean;
|
||||||
|
interval: number;
|
||||||
|
bootDelay: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config: {
|
||||||
|
dht: {
|
||||||
|
enabled: boolean;
|
||||||
|
kBucketSize: number;
|
||||||
|
randomWalk: {
|
||||||
|
enabled: boolean;
|
||||||
|
queriesPerPeriod: number;
|
||||||
|
interval: number;
|
||||||
|
timeout: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nat: {
|
||||||
|
enabled: boolean;
|
||||||
|
ttl: number;
|
||||||
|
keepAlive: boolean;
|
||||||
|
gateway: null;
|
||||||
|
externalIp: null;
|
||||||
|
pmp: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
peerDiscovery: {
|
||||||
|
autoDial: boolean;
|
||||||
|
};
|
||||||
|
pubsub: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
relay: {
|
||||||
|
enabled: boolean;
|
||||||
|
advertise: {
|
||||||
|
bootDelay: number;
|
||||||
|
enabled: boolean;
|
||||||
|
ttl: number;
|
||||||
|
};
|
||||||
|
hop: {
|
||||||
|
enabled: boolean;
|
||||||
|
active: boolean;
|
||||||
|
};
|
||||||
|
autoRelay: {
|
||||||
|
enabled: boolean;
|
||||||
|
maxListeners: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
transport: {};
|
||||||
|
};
|
||||||
|
} & Libp2pOptions & constructorOptions;
|
||||||
|
export type Multiaddr = import('multiaddr').Multiaddr;
|
||||||
|
export type Libp2pOptions = import('.').Libp2pOptions;
|
||||||
|
export type constructorOptions = import('.').constructorOptions;
|
||||||
|
import { publicAddressesFirst } from "libp2p-utils/src/address-sort";
|
||||||
|
//# sourceMappingURL=config.d.ts.map
|
1
dist/src/config.d.ts.map
vendored
Normal file
1
dist/src/config.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.js"],"names":[],"mappings":"AA6G0B,+BAHf,aAAa,GACX;;;;;qCAnFmB,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmFd,aAAa,GAAG,kBAAkB,CAS9D;wBAtGY,OAAO,WAAW,EAAE,SAAS;4BAC7B,OAAO,GAAG,EAAE,aAAa;iCACzB,OAAO,GAAG,EAAE,kBAAkB"}
|
204
dist/src/connection-manager/index.d.ts
vendored
Normal file
204
dist/src/connection-manager/index.d.ts
vendored
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
export = ConnectionManager;
|
||||||
|
/**
|
||||||
|
* @typedef {import('../')} Libp2p
|
||||||
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} ConnectionManagerOptions
|
||||||
|
* @property {number} [maxConnections = Infinity] - The maximum number of connections allowed.
|
||||||
|
* @property {number} [minConnections = 0] - The minimum number of connections to avoid pruning.
|
||||||
|
* @property {number} [maxData = Infinity] - The max data (in and out), per average interval to allow.
|
||||||
|
* @property {number} [maxSentData = Infinity] - The max outgoing data, per average interval to allow.
|
||||||
|
* @property {number} [maxReceivedData = Infinity] - The max incoming data, per average interval to allow.
|
||||||
|
* @property {number} [maxEventLoopDelay = Infinity] - The upper limit the event loop can take to run.
|
||||||
|
* @property {number} [pollInterval = 2000] - How often, in milliseconds, metrics and latency should be checked.
|
||||||
|
* @property {number} [movingAverageInterval = 60000] - How often, in milliseconds, to compute averages.
|
||||||
|
* @property {number} [defaultPeerValue = 1] - The value of the peer.
|
||||||
|
* @property {boolean} [autoDial = true] - Should preemptively guarantee connections are above the low watermark.
|
||||||
|
* @property {number} [autoDialInterval = 10000] - How often, in milliseconds, it should preemptively guarantee connections are above the low watermark.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @fires ConnectionManager#peer:connect Emitted when a new peer is connected.
|
||||||
|
* @fires ConnectionManager#peer:disconnect Emitted when a peer is disconnected.
|
||||||
|
*/
|
||||||
|
declare class ConnectionManager extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* Responsible for managing known connections.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {Libp2p} libp2p
|
||||||
|
* @param {ConnectionManagerOptions} options
|
||||||
|
*/
|
||||||
|
constructor(libp2p: Libp2p, options?: ConnectionManagerOptions);
|
||||||
|
_libp2p: import("../");
|
||||||
|
_peerId: string;
|
||||||
|
_options: any;
|
||||||
|
/**
|
||||||
|
* Map of peer identifiers to their peer value for pruning connections.
|
||||||
|
*
|
||||||
|
* @type {Map<string, number>}
|
||||||
|
*/
|
||||||
|
_peerValues: Map<string, number>;
|
||||||
|
/**
|
||||||
|
* Map of connections per peer
|
||||||
|
*
|
||||||
|
* @type {Map<string, Connection[]>}
|
||||||
|
*/
|
||||||
|
connections: Map<string, Connection[]>;
|
||||||
|
_started: boolean;
|
||||||
|
_timer: any;
|
||||||
|
_autoDialTimeout: any;
|
||||||
|
/**
|
||||||
|
* Checks the libp2p metrics to determine if any values have exceeded
|
||||||
|
* the configured maximums.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _checkMetrics;
|
||||||
|
/**
|
||||||
|
* Proactively tries to connect to known peers stored in the PeerStore.
|
||||||
|
* It will keep the number of connections below the upper limit and sort
|
||||||
|
* the peers to connect based on wether we know their keys and protocols.
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _autoDial;
|
||||||
|
/**
|
||||||
|
* Get current number of open connections.
|
||||||
|
*/
|
||||||
|
get size(): number;
|
||||||
|
/**
|
||||||
|
* Starts the Connection Manager. If Metrics are not enabled on libp2p
|
||||||
|
* only event loop and connection limits will be monitored.
|
||||||
|
*/
|
||||||
|
start(): void;
|
||||||
|
_latencyMonitor: LatencyMonitor | undefined;
|
||||||
|
/**
|
||||||
|
* If the event loop is slow, maybe close a connection
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {*} summary - The LatencyMonitor summary
|
||||||
|
*/
|
||||||
|
private _onLatencyMeasure;
|
||||||
|
/**
|
||||||
|
* Stops the Connection Manager
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
*/
|
||||||
|
stop(): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Cleans up the connections
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
*/
|
||||||
|
_close(): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Sets the value of the given peer. Peers with lower values
|
||||||
|
* will be disconnected first.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {number} value - A number between 0 and 1
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
setPeerValue(peerId: PeerId, value: number): void;
|
||||||
|
/**
|
||||||
|
* Tracks the incoming connection and check the connection limit
|
||||||
|
*
|
||||||
|
* @param {Connection} connection
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
onConnect(connection: Connection): void;
|
||||||
|
/**
|
||||||
|
* Removes the connection from tracking
|
||||||
|
*
|
||||||
|
* @param {Connection} connection
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
onDisconnect(connection: Connection): void;
|
||||||
|
/**
|
||||||
|
* Get a connection with a peer.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {Connection|null}
|
||||||
|
*/
|
||||||
|
get(peerId: PeerId): Connection | null;
|
||||||
|
/**
|
||||||
|
* Get all open connections with a peer.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {Connection[]}
|
||||||
|
*/
|
||||||
|
getAll(peerId: PeerId): Connection[];
|
||||||
|
/**
|
||||||
|
* If the `value` of `name` has exceeded its limit, maybe close a connection
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {string} name - The name of the field to check limits for
|
||||||
|
* @param {number} value - The current value of the field
|
||||||
|
*/
|
||||||
|
private _checkMaxLimit;
|
||||||
|
/**
|
||||||
|
* If we have more connections than our maximum, close a connection
|
||||||
|
* to the lowest valued peer.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _maybeDisconnectOne;
|
||||||
|
}
|
||||||
|
declare namespace ConnectionManager {
|
||||||
|
export { Libp2p, Connection, ConnectionManagerOptions };
|
||||||
|
}
|
||||||
|
import { EventEmitter } from "events";
|
||||||
|
type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
import LatencyMonitor = require("./latency-monitor");
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
type Libp2p = import('../');
|
||||||
|
type ConnectionManagerOptions = {
|
||||||
|
/**
|
||||||
|
* - The maximum number of connections allowed.
|
||||||
|
*/
|
||||||
|
maxConnections?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - The minimum number of connections to avoid pruning.
|
||||||
|
*/
|
||||||
|
minConnections?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - The max data (in and out), per average interval to allow.
|
||||||
|
*/
|
||||||
|
maxData?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - The max outgoing data, per average interval to allow.
|
||||||
|
*/
|
||||||
|
maxSentData?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - The max incoming data, per average interval to allow.
|
||||||
|
*/
|
||||||
|
maxReceivedData?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - The upper limit the event loop can take to run.
|
||||||
|
*/
|
||||||
|
maxEventLoopDelay?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - How often, in milliseconds, metrics and latency should be checked.
|
||||||
|
*/
|
||||||
|
pollInterval?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - How often, in milliseconds, to compute averages.
|
||||||
|
*/
|
||||||
|
movingAverageInterval?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - The value of the peer.
|
||||||
|
*/
|
||||||
|
defaultPeerValue?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - Should preemptively guarantee connections are above the low watermark.
|
||||||
|
*/
|
||||||
|
autoDial?: boolean | undefined;
|
||||||
|
/**
|
||||||
|
* - How often, in milliseconds, it should preemptively guarantee connections are above the low watermark.
|
||||||
|
*/
|
||||||
|
autoDialInterval?: number | undefined;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/connection-manager/index.d.ts.map
vendored
Normal file
1
dist/src/connection-manager/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/index.js"],"names":[],"mappings":";AAkCA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH;;;;GAIG;AACH;IACE;;;;;;OAMG;IACH,oBAHW,MAAM,YACN,wBAAwB,EAkClC;IA7BC,uBAAqB;IACrB,gBAA0C;IAE1C,cAAqF;IAOrF;;;;OAIG;IACH,aAFU,IAAI,MAAM,EAAE,MAAM,CAAC,CAED;IAE5B;;;;OAIG;IACH,aAFU,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC,CAEP;IAE5B,kBAAqB;IACrB,YAAkB;IAClB,sBAA4B;IAoF9B;;;;;OAKG;IACH,sBAcC;IA8GD;;;;;;;OAOG;IACH,kBAqCC;IA9PD;;OAEG;IACH,mBAGC;IAED;;;OAGG;IACH,cAiBC;IAXC,4CAGE;IAkKJ;;;;;OAKG;IACH,0BAEC;IAhKD;;;;OAIG;IACH,sBAQC;IAED;;;;OAIG;IACH,wBAWC;IAED;;;;;;;OAOG;IACH,qBAJW,MAAM,SACN,MAAM,GACJ,IAAI,CAOhB;IAwBD;;;;;OAKG;IACH,sBAHW,UAAU,GACR,IAAI,CAqBhB;IAED;;;;;OAKG;IACH,yBAHW,UAAU,GACR,IAAI,CAchB;IAED;;;;;OAKG;IACH,YAHW,MAAM,GACJ,UAAU,GAAC,IAAI,CAQ3B;IAED;;;;;OAKG;IACH,eAHW,MAAM,GACJ,UAAU,EAAE,CAexB;IAYD;;;;;;OAMG;IACH,uBAOC;IAiDD;;;;;OAKG;IACH,4BAiBC;CACF;;;;;;;;cA1VY,OAAO,KAAK,CAAC"}
|
139
dist/src/connection-manager/latency-monitor.d.ts
vendored
Normal file
139
dist/src/connection-manager/latency-monitor.d.ts
vendored
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
export = LatencyMonitor;
|
||||||
|
/**
|
||||||
|
* @typedef {Object} SummaryObject
|
||||||
|
* @property {number} events How many events were called
|
||||||
|
* @property {number} minMS What was the min time for a cb to be called
|
||||||
|
* @property {number} maxMS What was the max time for a cb to be called
|
||||||
|
* @property {number} avgMs What was the average time for a cb to be called
|
||||||
|
* @property {number} lengthMs How long this interval was in ms
|
||||||
|
*
|
||||||
|
* @typedef {Object} LatencyMonitorOptions
|
||||||
|
* @property {number} [latencyCheckIntervalMs=500] - How often to add a latency check event (ms)
|
||||||
|
* @property {number} [dataEmitIntervalMs=5000] - How often to summarize latency check events. null or 0 disables event firing
|
||||||
|
* @property {Function} [asyncTestFn] - What cb-style async function to use
|
||||||
|
* @property {number} [latencyRandomPercentage=5] - What percent (+/-) of latencyCheckIntervalMs should we randomly use? This helps avoid alignment to other events.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* A class to monitor latency of any async function which works in a browser or node. This works by periodically calling
|
||||||
|
* the asyncTestFn and timing how long it takes the callback to be called. It can also periodically emit stats about this.
|
||||||
|
* This can be disabled and stats can be pulled via setting dataEmitIntervalMs = 0.
|
||||||
|
*
|
||||||
|
* @extends {EventEmitter}
|
||||||
|
*
|
||||||
|
* The default implementation is an event loop latency monitor. This works by firing periodic events into the event loop
|
||||||
|
* and timing how long it takes to get back.
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* const monitor = new LatencyMonitor();
|
||||||
|
* monitor.on('data', (summary) => console.log('Event Loop Latency: %O', summary));
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
* const monitor = new LatencyMonitor({latencyCheckIntervalMs: 1000, dataEmitIntervalMs: 60000, asyncTestFn:ping});
|
||||||
|
* monitor.on('data', (summary) => console.log('Ping Pong Latency: %O', summary));
|
||||||
|
*/
|
||||||
|
declare class LatencyMonitor extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* @class
|
||||||
|
* @param {LatencyMonitorOptions} [options]
|
||||||
|
*/
|
||||||
|
constructor({ latencyCheckIntervalMs, dataEmitIntervalMs, asyncTestFn, latencyRandomPercentage }?: LatencyMonitorOptions | undefined);
|
||||||
|
latencyCheckIntervalMs: number;
|
||||||
|
latencyRandomPercentage: number;
|
||||||
|
_latecyCheckMultiply: number;
|
||||||
|
_latecyCheckSubtract: number;
|
||||||
|
dataEmitIntervalMs: number | undefined;
|
||||||
|
asyncTestFn: Function | undefined;
|
||||||
|
_latencyData: {
|
||||||
|
startTime: any;
|
||||||
|
minMs: number;
|
||||||
|
maxMs: number;
|
||||||
|
events: number;
|
||||||
|
totalMs: number;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Start internal timers
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _startTimers;
|
||||||
|
_emitIntervalID: NodeJS.Timeout | undefined;
|
||||||
|
/**
|
||||||
|
* Stop internal timers
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _stopTimers;
|
||||||
|
_checkLatencyID: NodeJS.Timeout | undefined;
|
||||||
|
/**
|
||||||
|
* Emit summary only if there were events. It might not have any events if it was forced via a page hidden/show
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _emitSummary;
|
||||||
|
/**
|
||||||
|
* Calling this function will end the collection period. If a timing event was already fired and somewhere in the queue,
|
||||||
|
* it will not count for this time period
|
||||||
|
*
|
||||||
|
* @returns {SummaryObject}
|
||||||
|
*/
|
||||||
|
getSummary(): SummaryObject;
|
||||||
|
/**
|
||||||
|
* Randomly calls an async fn every roughly latencyCheckIntervalMs (plus some randomness). If no async fn is found,
|
||||||
|
* it will simply report on event loop latency.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _checkLatency;
|
||||||
|
_initLatencyData(): {
|
||||||
|
startTime: any;
|
||||||
|
minMs: number;
|
||||||
|
maxMs: number;
|
||||||
|
events: number;
|
||||||
|
totalMs: number;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
declare namespace LatencyMonitor {
|
||||||
|
export { SummaryObject, LatencyMonitorOptions };
|
||||||
|
}
|
||||||
|
import { EventEmitter } from "events";
|
||||||
|
type SummaryObject = {
|
||||||
|
/**
|
||||||
|
* How many events were called
|
||||||
|
*/
|
||||||
|
events: number;
|
||||||
|
/**
|
||||||
|
* What was the min time for a cb to be called
|
||||||
|
*/
|
||||||
|
minMS: number;
|
||||||
|
/**
|
||||||
|
* What was the max time for a cb to be called
|
||||||
|
*/
|
||||||
|
maxMS: number;
|
||||||
|
/**
|
||||||
|
* What was the average time for a cb to be called
|
||||||
|
*/
|
||||||
|
avgMs: number;
|
||||||
|
/**
|
||||||
|
* How long this interval was in ms
|
||||||
|
*/
|
||||||
|
lengthMs: number;
|
||||||
|
};
|
||||||
|
type LatencyMonitorOptions = {
|
||||||
|
/**
|
||||||
|
* - How often to add a latency check event (ms)
|
||||||
|
*/
|
||||||
|
latencyCheckIntervalMs?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - How often to summarize latency check events. null or 0 disables event firing
|
||||||
|
*/
|
||||||
|
dataEmitIntervalMs?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - What cb-style async function to use
|
||||||
|
*/
|
||||||
|
asyncTestFn?: Function | undefined;
|
||||||
|
/**
|
||||||
|
* - What percent (+/-) of latencyCheckIntervalMs should we randomly use? This helps avoid alignment to other events.
|
||||||
|
*/
|
||||||
|
latencyRandomPercentage?: number | undefined;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=latency-monitor.d.ts.map
|
1
dist/src/connection-manager/latency-monitor.d.ts.map
vendored
Normal file
1
dist/src/connection-manager/latency-monitor.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"latency-monitor.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/latency-monitor.js"],"names":[],"mappings":";AAWA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,sIA+DC;IA1DC,+BAA2D;IAC3D,gCAA4D;IAC5D,6BAAoG;IACpG,6BAAyD;IAEzD,uCAEkC;IASlC,kCAA8B;IAqB9B;;;;;;MAA2C;IAuB7C;;;;OAIG;IACH,qBAYC;IALG,4CAAsF;IAO1F;;;;OAIG;IACH,oBASC;IANG,4CAAgC;IAQpC;;;;OAIG;IACH,qBAKC;IAED;;;;;OAKG;IACH,cAFa,aAAa,CAmBzB;IAED;;;;;OAKG;IACH,sBAgDC;IAED;;;;;;MAQC;CACF;;;;;;;;;YA9Oa,MAAM;;;;WACN,MAAM;;;;WACN,MAAM;;;;WACN,MAAM;;;;cACN,MAAM"}
|
67
dist/src/connection-manager/visibility-change-emitter.d.ts
vendored
Normal file
67
dist/src/connection-manager/visibility-change-emitter.d.ts
vendored
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
export = VisibilityChangeEmitter;
|
||||||
|
/**
|
||||||
|
* Listen to page visibility change events (i.e. when the page is focused / blurred) by an event emitter.
|
||||||
|
*
|
||||||
|
* Warning: This does not work on all browsers, but should work on all modern browsers
|
||||||
|
*
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* const myVisibilityEmitter = new VisibilityChangeEmitter();
|
||||||
|
*
|
||||||
|
* myVisibilityEmitter.on('visibilityChange', (pageInFocus) => {
|
||||||
|
* if ( pageInFocus ){
|
||||||
|
* // Page is in focus
|
||||||
|
* console.log('In focus');
|
||||||
|
* }
|
||||||
|
* else {
|
||||||
|
* // Page is blurred
|
||||||
|
* console.log('Out of focus');
|
||||||
|
* }
|
||||||
|
* });
|
||||||
|
* // To access the visibility state directly, call:
|
||||||
|
* console.log('Am I focused now? ' + myVisibilityEmitter.isVisible());
|
||||||
|
*/
|
||||||
|
declare class VisibilityChangeEmitter extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* Creates a VisibilityChangeEmitter
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
*/
|
||||||
|
constructor();
|
||||||
|
/**
|
||||||
|
* document.hidden and document.visibilityChange are the two variables we need to check for;
|
||||||
|
* Since these variables are named differently in different browsers, this function sets
|
||||||
|
* the appropriate name based on the browser being used. Once executed, tha actual names of
|
||||||
|
* document.hidden and document.visibilityChange are found in this._hidden and this._visibilityChange
|
||||||
|
* respectively
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _initializeVisibilityVarNames;
|
||||||
|
_hidden: string | undefined;
|
||||||
|
_visibilityChange: string | undefined;
|
||||||
|
/**
|
||||||
|
* Adds an event listener on the document that listens to changes in document.visibilityChange
|
||||||
|
* (or whatever name by which the visibilityChange variable is known in the browser)
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _addVisibilityChangeListener;
|
||||||
|
/**
|
||||||
|
* The function returns ```true``` if the page is visible or ```false``` if the page is not visible and
|
||||||
|
* ```undefined``` if the page visibility API is not supported by the browser.
|
||||||
|
*
|
||||||
|
* @returns {boolean | void} whether the page is now visible or not (undefined is unknown)
|
||||||
|
*/
|
||||||
|
isVisible(): boolean | void;
|
||||||
|
/**
|
||||||
|
* The function that is called when document.visibilityChange has changed
|
||||||
|
* It emits an event called visibilityChange and sends the value of document.hidden as a
|
||||||
|
* parameter
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _handleVisibilityChange;
|
||||||
|
}
|
||||||
|
import { EventEmitter } from "events";
|
||||||
|
//# sourceMappingURL=visibility-change-emitter.d.ts.map
|
1
dist/src/connection-manager/visibility-change-emitter.d.ts.map
vendored
Normal file
1
dist/src/connection-manager/visibility-change-emitter.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"visibility-change-emitter.d.ts","sourceRoot":"","sources":["../../../src/connection-manager/visibility-change-emitter.js"],"names":[],"mappings":";AAYA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;IACE;;;;OAIG;IACH,cAQC;IAED;;;;;;;;OAQG;IACH,sCAkBC;IAFC,4BAAqB;IACrB,sCAAyC;IAG3C;;;;;OAKG;IACH,qCAQC;IAED;;;;;OAKG;IACH,aAFa,OAAO,GAAG,IAAI,CAQ1B;IAED;;;;;;OAMG;IACH,gCAKC;CACF"}
|
10
dist/src/constants.d.ts
vendored
Normal file
10
dist/src/constants.d.ts
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
export const DIAL_TIMEOUT: number;
|
||||||
|
export const MAX_PARALLEL_DIALS: number;
|
||||||
|
export const MAX_PER_PEER_DIALS: number;
|
||||||
|
export namespace METRICS {
|
||||||
|
const computeThrottleMaxQueueSize: number;
|
||||||
|
const computeThrottleTimeout: number;
|
||||||
|
const movingAverageIntervals: number[];
|
||||||
|
const maxOldPeersRetention: number;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=constants.d.ts.map
|
1
dist/src/constants.d.ts.map
vendored
Normal file
1
dist/src/constants.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.js"],"names":[],"mappings":""}
|
95
dist/src/content-routing/index.d.ts
vendored
Normal file
95
dist/src/content-routing/index.d.ts
vendored
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
export = ContentRouting;
|
||||||
|
/**
|
||||||
|
* @typedef {import('peer-id')} PeerId
|
||||||
|
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||||
|
* @typedef {import('cids')} CID
|
||||||
|
* @typedef {import('libp2p-interfaces/src/content-routing/types').ContentRouting} ContentRoutingModule
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} GetData
|
||||||
|
* @property {PeerId} from
|
||||||
|
* @property {Uint8Array} val
|
||||||
|
*/
|
||||||
|
declare class ContentRouting {
|
||||||
|
/**
|
||||||
|
* @class
|
||||||
|
* @param {import('..')} libp2p
|
||||||
|
*/
|
||||||
|
constructor(libp2p: import('..'));
|
||||||
|
libp2p: import("..");
|
||||||
|
/** @type {ContentRoutingModule[]} */
|
||||||
|
routers: ContentRoutingModule[];
|
||||||
|
dht: any;
|
||||||
|
/**
|
||||||
|
* Iterates over all content routers in parallel to find providers of the given key.
|
||||||
|
*
|
||||||
|
* @param {CID} key - The CID key of the content to find
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {number} [options.timeout] - How long the query should run
|
||||||
|
* @param {number} [options.maxNumProviders] - maximum number of providers to find
|
||||||
|
* @returns {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>}
|
||||||
|
*/
|
||||||
|
findProviders(key: CID, options?: {
|
||||||
|
timeout?: number | undefined;
|
||||||
|
maxNumProviders?: number | undefined;
|
||||||
|
} | undefined): AsyncIterable<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>;
|
||||||
|
/**
|
||||||
|
* Iterates over all content routers in parallel to notify it is
|
||||||
|
* a provider of the given key.
|
||||||
|
*
|
||||||
|
* @param {CID} key - The CID key of the content to find
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
provide(key: CID): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Store the given key/value pair in the DHT.
|
||||||
|
*
|
||||||
|
* @param {Uint8Array} key
|
||||||
|
* @param {Uint8Array} value
|
||||||
|
* @param {Object} [options] - put options
|
||||||
|
* @param {number} [options.minPeers] - minimum number of peers required to successfully put
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
put(key: Uint8Array, value: Uint8Array, options?: {
|
||||||
|
minPeers?: number | undefined;
|
||||||
|
} | undefined): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Get the value to the given key.
|
||||||
|
* Times out after 1 minute by default.
|
||||||
|
*
|
||||||
|
* @param {Uint8Array} key
|
||||||
|
* @param {Object} [options] - get options
|
||||||
|
* @param {number} [options.timeout] - optional timeout (default: 60000)
|
||||||
|
* @returns {Promise<GetData>}
|
||||||
|
*/
|
||||||
|
get(key: Uint8Array, options?: {
|
||||||
|
timeout?: number | undefined;
|
||||||
|
} | undefined): Promise<GetData>;
|
||||||
|
/**
|
||||||
|
* Get the `n` values to the given key without sorting.
|
||||||
|
*
|
||||||
|
* @param {Uint8Array} key
|
||||||
|
* @param {number} nVals
|
||||||
|
* @param {Object} [options] - get options
|
||||||
|
* @param {number} [options.timeout] - optional timeout (default: 60000)
|
||||||
|
* @returns {Promise<GetData[]>}
|
||||||
|
*/
|
||||||
|
getMany(key: Uint8Array, nVals: number, options?: {
|
||||||
|
timeout?: number | undefined;
|
||||||
|
} | undefined): Promise<GetData[]>;
|
||||||
|
}
|
||||||
|
declare namespace ContentRouting {
|
||||||
|
export { PeerId, Multiaddr, CID, ContentRoutingModule, GetData };
|
||||||
|
}
|
||||||
|
type ContentRoutingModule = import('libp2p-interfaces/src/content-routing/types').ContentRouting;
|
||||||
|
type CID = import('cids');
|
||||||
|
type PeerId = import('peer-id');
|
||||||
|
type Multiaddr = import('multiaddr').Multiaddr;
|
||||||
|
type GetData = {
|
||||||
|
from: PeerId;
|
||||||
|
val: Uint8Array;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/content-routing/index.d.ts.map
vendored
Normal file
1
dist/src/content-routing/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/content-routing/index.js"],"names":[],"mappings":";AAcA;;;;;GAKG;AAEH;;;;GAIG;AAEH;IACE;;;OAGG;IACH,oBAFW,OAAO,IAAI,CAAC,EAYtB;IATC,qBAAoB;IACpB,qCAAqC;IACrC,SADW,oBAAoB,EAAE,CACkB;IACnD,SAAsB;IAQxB;;;;;;;;OAQG;IACH,mBANW,GAAG;;;oBAID,cAAc;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC,CAgBlE;IAED;;;;;;OAMG;IACH,aAHW,GAAG,GACD,QAAQ,IAAI,CAAC,CAQzB;IAED;;;;;;;;OAQG;IACH,SANW,UAAU,SACV,UAAU;;oBAGR,QAAQ,IAAI,CAAC,CAQzB;IAED;;;;;;;;OAQG;IACH,SALW,UAAU;;oBAGR,QAAQ,OAAO,CAAC,CAQ5B;IAED;;;;;;;;OAQG;IACH,aANW,UAAU,SACV,MAAM;;oBAGJ,QAAQ,OAAO,EAAE,CAAC,CAQ9B;CACF;;;;4BApHY,OAAO,6CAA6C,EAAE,cAAc;WADpE,OAAO,MAAM,CAAC;cAFd,OAAO,SAAS,CAAC;iBACjB,OAAO,WAAW,EAAE,SAAS;;UAO5B,MAAM;SACN,UAAU"}
|
59
dist/src/content-routing/utils.d.ts
vendored
Normal file
59
dist/src/content-routing/utils.d.ts
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
export type PeerId = import('peer-id');
|
||||||
|
export type Multiaddr = import('multiaddr').Multiaddr;
|
||||||
|
/**
|
||||||
|
* @typedef {import('peer-id')} PeerId
|
||||||
|
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Store the multiaddrs from every peer in the passed peer store
|
||||||
|
*
|
||||||
|
* @param {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>} source
|
||||||
|
* @param {import('../peer-store')} peerStore
|
||||||
|
*/
|
||||||
|
export function storeAddresses(source: AsyncIterable<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>, peerStore: import('../peer-store')): AsyncIterable<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>;
|
||||||
|
/**
|
||||||
|
* Filter peers by unique peer id
|
||||||
|
*
|
||||||
|
* @param {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>} source
|
||||||
|
*/
|
||||||
|
export function uniquePeers(source: AsyncIterable<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>): AsyncGenerator<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}, void, unknown>;
|
||||||
|
/**
|
||||||
|
* Require at least `min` peers to be yielded from `source`
|
||||||
|
*
|
||||||
|
* @param {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>} source
|
||||||
|
* @param {number} min
|
||||||
|
*/
|
||||||
|
export function requirePeers(source: AsyncIterable<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>, min?: number): AsyncGenerator<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}, void, unknown>;
|
||||||
|
/**
|
||||||
|
* If `max` is passed, only take that number of peers from the source
|
||||||
|
* otherwise take all the peers
|
||||||
|
*
|
||||||
|
* @param {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>} source
|
||||||
|
* @param {number} [max]
|
||||||
|
*/
|
||||||
|
export function maybeLimitSource(source: AsyncIterable<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>, max?: number | undefined): AsyncIterable<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>;
|
||||||
|
//# sourceMappingURL=utils.d.ts.map
|
1
dist/src/content-routing/utils.d.ts.map
vendored
Normal file
1
dist/src/content-routing/utils.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/content-routing/utils.js"],"names":[],"mappings":"qBAQa,OAAO,SAAS,CAAC;wBACjB,OAAO,WAAW,EAAE,SAAS;AAF1C;;;GAGG;AAEH;;;;;GAKG;AACH,uCAHW,cAAc;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,aACtD,OAAO,eAAe,CAAC;QADH,MAAM;gBAAc,SAAS,EAAE;GAU7D;AAED;;;;GAIG;AACH,oCAFW,cAAc;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;QAAlC,MAAM;gBAAc,SAAS,EAAE;kBAgB7D;AAED;;;;;GAKG;AACH,qCAHW,cAAc;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC,QACtD,MAAM;QADc,MAAM;gBAAc,SAAS,EAAE;kBAe7D;AAED;;;;;;GAMG;AACH,yCAHW,cAAc;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;QAAlC,MAAM;gBAAc,SAAS,EAAE;GAS7D"}
|
55
dist/src/dialer/dial-request.d.ts
vendored
Normal file
55
dist/src/dialer/dial-request.d.ts
vendored
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
export = DialRequest;
|
||||||
|
/**
|
||||||
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
||||||
|
* @typedef {import('./')} Dialer
|
||||||
|
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} DialOptions
|
||||||
|
* @property {AbortSignal} signal
|
||||||
|
*
|
||||||
|
* @typedef {Object} DialRequestOptions
|
||||||
|
* @property {Multiaddr[]} addrs
|
||||||
|
* @property {(m: Multiaddr, options: DialOptions) => Promise<Connection>} dialAction
|
||||||
|
* @property {Dialer} dialer
|
||||||
|
*/
|
||||||
|
declare class DialRequest {
|
||||||
|
/**
|
||||||
|
* Manages running the `dialAction` on multiple provided `addrs` in parallel
|
||||||
|
* up to a maximum determined by the number of tokens returned
|
||||||
|
* from `dialer.getTokens`. Once a DialRequest is created, it can be
|
||||||
|
* started using `DialRequest.run(options)`. Once a single dial has succeeded,
|
||||||
|
* all other dials in the request will be cancelled.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {DialRequestOptions} options
|
||||||
|
*/
|
||||||
|
constructor({ addrs, dialAction, dialer }: DialRequestOptions);
|
||||||
|
addrs: import("multiaddr").Multiaddr[];
|
||||||
|
dialer: import("./");
|
||||||
|
dialAction: (m: Multiaddr, options: DialOptions) => Promise<Connection>;
|
||||||
|
/**
|
||||||
|
* @async
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {AbortSignal} [options.signal] - An AbortController signal
|
||||||
|
* @returns {Promise<Connection>}
|
||||||
|
*/
|
||||||
|
run(options?: {
|
||||||
|
signal?: AbortSignal | undefined;
|
||||||
|
} | undefined): Promise<Connection>;
|
||||||
|
}
|
||||||
|
declare namespace DialRequest {
|
||||||
|
export { Connection, Dialer, Multiaddr, DialOptions, DialRequestOptions };
|
||||||
|
}
|
||||||
|
type Multiaddr = import('multiaddr').Multiaddr;
|
||||||
|
type DialOptions = {
|
||||||
|
signal: AbortSignal;
|
||||||
|
};
|
||||||
|
type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
type DialRequestOptions = {
|
||||||
|
addrs: Multiaddr[];
|
||||||
|
dialAction: (m: Multiaddr, options: DialOptions) => Promise<Connection>;
|
||||||
|
dialer: Dialer;
|
||||||
|
};
|
||||||
|
type Dialer = import('./');
|
||||||
|
//# sourceMappingURL=dial-request.d.ts.map
|
1
dist/src/dialer/dial-request.d.ts.map
vendored
Normal file
1
dist/src/dialer/dial-request.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"dial-request.d.ts","sourceRoot":"","sources":["../../../src/dialer/dial-request.js"],"names":[],"mappings":";AASA;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH;IACE;;;;;;;;;OASG;IACH,2CAFW,kBAAkB,EAU5B;IAHC,uCAAkB;IAClB,qBAAoB;IACpB,gBAtBc,SAAS,WAAW,WAAW,KAAK,QAAQ,UAAU,CAAC,CAsBzC;IAG9B;;;;;OAKG;IACH;;oBAFa,QAAQ,UAAU,CAAC,CAuC/B;CACF;;;;iBA9EY,OAAO,WAAW,EAAE,SAAS;;YAK5B,WAAW;;;;WAGX,SAAS,EAAE;oBACP,SAAS,WAAW,WAAW,KAAK,QAAQ,UAAU,CAAC;YAC3D,MAAM;;cAXP,OAAO,IAAI,CAAC"}
|
155
dist/src/dialer/index.d.ts
vendored
Normal file
155
dist/src/dialer/index.d.ts
vendored
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
export = Dialer;
|
||||||
|
/**
|
||||||
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
||||||
|
* @typedef {import('peer-id')} PeerId
|
||||||
|
* @typedef {import('../peer-store')} PeerStore
|
||||||
|
* @typedef {import('../peer-store/address-book').Address} Address
|
||||||
|
* @typedef {import('../transport-manager')} TransportManager
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} DialerProperties
|
||||||
|
* @property {PeerStore} peerStore
|
||||||
|
* @property {TransportManager} transportManager
|
||||||
|
*
|
||||||
|
* @typedef {(addr:Multiaddr) => Promise<string[]>} Resolver
|
||||||
|
*
|
||||||
|
* @typedef {Object} DialerOptions
|
||||||
|
* @property {(addresses: Address[]) => Address[]} [options.addressSorter = publicAddressesFirst] - Sort the known addresses of a peer before trying to dial.
|
||||||
|
* @property {number} [maxParallelDials = MAX_PARALLEL_DIALS] - Number of max concurrent dials.
|
||||||
|
* @property {number} [maxDialsPerPeer = MAX_PER_PEER_DIALS] - Number of max concurrent dials per peer.
|
||||||
|
* @property {number} [dialTimeout = DIAL_TIMEOUT] - How long a dial attempt is allowed to take.
|
||||||
|
* @property {Record<string, Resolver>} [resolvers = {}] - multiaddr resolvers to use when dialing
|
||||||
|
*
|
||||||
|
* @typedef DialTarget
|
||||||
|
* @property {string} id
|
||||||
|
* @property {Multiaddr[]} addrs
|
||||||
|
*
|
||||||
|
* @typedef PendingDial
|
||||||
|
* @property {DialRequest} dialRequest
|
||||||
|
* @property {TimeoutController} controller
|
||||||
|
* @property {Promise<Connection>} promise
|
||||||
|
* @property {function():void} destroy
|
||||||
|
*/
|
||||||
|
declare class Dialer {
|
||||||
|
/**
|
||||||
|
* @class
|
||||||
|
* @param {DialerProperties & DialerOptions} options
|
||||||
|
*/
|
||||||
|
constructor({ transportManager, peerStore, addressSorter, maxParallelDials, dialTimeout, maxDialsPerPeer, resolvers }: DialerProperties & DialerOptions);
|
||||||
|
transportManager: import("../transport-manager");
|
||||||
|
peerStore: import("../peer-store");
|
||||||
|
addressSorter: (addresses: Address[]) => Address[];
|
||||||
|
maxParallelDials: number;
|
||||||
|
timeout: number;
|
||||||
|
maxDialsPerPeer: number;
|
||||||
|
tokens: number[];
|
||||||
|
_pendingDials: Map<any, any>;
|
||||||
|
/**
|
||||||
|
* Clears any pending dials
|
||||||
|
*/
|
||||||
|
destroy(): void;
|
||||||
|
/**
|
||||||
|
* Connects to a given `peer` by dialing all of its known addresses.
|
||||||
|
* The dial to the first address that is successfully able to upgrade a connection
|
||||||
|
* will be used.
|
||||||
|
*
|
||||||
|
* @param {PeerId|Multiaddr|string} peer - The peer to dial
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {AbortSignal} [options.signal] - An AbortController signal
|
||||||
|
* @returns {Promise<Connection>}
|
||||||
|
*/
|
||||||
|
connectToPeer(peer: PeerId | Multiaddr | string, options?: {
|
||||||
|
signal?: AbortSignal | undefined;
|
||||||
|
} | undefined): Promise<Connection>;
|
||||||
|
/**
|
||||||
|
* Creates a DialTarget. The DialTarget is used to create and track
|
||||||
|
* the DialRequest to a given peer.
|
||||||
|
* If a multiaddr is received it should be the first address attempted.
|
||||||
|
* Multiaddrs not supported by the available transports will be filtered out.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {PeerId|Multiaddr|string} peer - A PeerId or Multiaddr
|
||||||
|
* @returns {Promise<DialTarget>}
|
||||||
|
*/
|
||||||
|
private _createDialTarget;
|
||||||
|
/**
|
||||||
|
* Creates a PendingDial that wraps the underlying DialRequest
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {DialTarget} dialTarget
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {AbortSignal} [options.signal] - An AbortController signal
|
||||||
|
* @returns {PendingDial}
|
||||||
|
*/
|
||||||
|
private _createPendingDial;
|
||||||
|
/**
|
||||||
|
* @param {number} num
|
||||||
|
*/
|
||||||
|
getTokens(num: number): number[];
|
||||||
|
/**
|
||||||
|
* @param {number} token
|
||||||
|
*/
|
||||||
|
releaseToken(token: number): void;
|
||||||
|
/**
|
||||||
|
* Resolve multiaddr recursively.
|
||||||
|
*
|
||||||
|
* @param {Multiaddr} ma
|
||||||
|
* @returns {Promise<Multiaddr[]>}
|
||||||
|
*/
|
||||||
|
_resolve(ma: Multiaddr): Promise<Multiaddr[]>;
|
||||||
|
/**
|
||||||
|
* Resolve a given multiaddr. If this fails, an empty array will be returned
|
||||||
|
*
|
||||||
|
* @param {Multiaddr} ma
|
||||||
|
* @returns {Promise<Multiaddr[]>}
|
||||||
|
*/
|
||||||
|
_resolveRecord(ma: Multiaddr): Promise<Multiaddr[]>;
|
||||||
|
}
|
||||||
|
declare namespace Dialer {
|
||||||
|
export { Connection, PeerId, PeerStore, Address, TransportManager, DialerProperties, Resolver, DialerOptions, DialTarget, PendingDial };
|
||||||
|
}
|
||||||
|
type Address = import('../peer-store/address-book').Address;
|
||||||
|
type PeerId = import('peer-id');
|
||||||
|
import { Multiaddr } from "multiaddr";
|
||||||
|
type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
type DialerProperties = {
|
||||||
|
peerStore: PeerStore;
|
||||||
|
transportManager: TransportManager;
|
||||||
|
};
|
||||||
|
type DialerOptions = {
|
||||||
|
/**
|
||||||
|
* - Sort the known addresses of a peer before trying to dial.
|
||||||
|
*/
|
||||||
|
addressSorter?: ((addresses: Address[]) => Address[]) | undefined;
|
||||||
|
/**
|
||||||
|
* - Number of max concurrent dials.
|
||||||
|
*/
|
||||||
|
maxParallelDials?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - Number of max concurrent dials per peer.
|
||||||
|
*/
|
||||||
|
maxDialsPerPeer?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - How long a dial attempt is allowed to take.
|
||||||
|
*/
|
||||||
|
dialTimeout?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - multiaddr resolvers to use when dialing
|
||||||
|
*/
|
||||||
|
resolvers?: Record<string, Resolver> | undefined;
|
||||||
|
};
|
||||||
|
type PeerStore = import('../peer-store');
|
||||||
|
type TransportManager = import('../transport-manager');
|
||||||
|
type Resolver = (addr: Multiaddr) => Promise<string[]>;
|
||||||
|
type DialTarget = {
|
||||||
|
id: string;
|
||||||
|
addrs: Multiaddr[];
|
||||||
|
};
|
||||||
|
type PendingDial = {
|
||||||
|
dialRequest: DialRequest;
|
||||||
|
controller: any;
|
||||||
|
promise: Promise<Connection>;
|
||||||
|
destroy: () => void;
|
||||||
|
};
|
||||||
|
import DialRequest = require("./dial-request");
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/dialer/index.d.ts.map
vendored
Normal file
1
dist/src/dialer/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dialer/index.js"],"names":[],"mappings":";AAuBA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;IACE;;;OAGG;IACH,uHAFW,gBAAgB,GAAG,aAAa,EAuB1C;IAZC,iDAAwC;IACxC,mCAA0B;IAC1B,2BAjCsB,OAAO,EAAE,KAAK,OAAO,EAAE,CAiCX;IAClC,yBAAwC;IACxC,gBAA0B;IAC1B,wBAAsC;IACtC,iBAAuE;IACvE,6BAA8B;IAOhC;;OAEG;IACH,gBASC;IAED;;;;;;;;;OASG;IACH,oBALW,MAAM,GAAC,SAAS,GAAC,MAAM;;oBAGrB,QAAQ,UAAU,CAAC,CAwB/B;IAED;;;;;;;;;OASG;IACH,0BA8BC;IAED;;;;;;;;OAQG;IACH,2BAiCC;IAED;;OAEG;IACH,eAFW,MAAM,YAOhB;IAED;;OAEG;IACH,oBAFW,MAAM,QAOhB;IAED;;;;;OAKG;IACH,aAHW,SAAS,GACP,QAAQ,SAAS,EAAE,CAAC,CAwBhC;IAED;;;;;OAKG;IACH,mBAHW,SAAS,GACP,QAAQ,SAAS,EAAE,CAAC,CAWhC;CACF;;;;eAjQY,OAAO,4BAA4B,EAAE,OAAO;cAF5C,OAAO,SAAS,CAAC;;;;eAQhB,SAAS;sBACT,gBAAgB;;;;;;iCAKJ,OAAO,EAAE,KAAK,OAAO,EAAE;;;;;;;;;;;;;;;;;;iBAbpC,OAAO,eAAe,CAAC;wBAEvB,OAAO,sBAAsB,CAAC;uBAQxB,SAAS,KAAK,QAAQ,MAAM,EAAE,CAAC;;QAUpC,MAAM;WACN,SAAS,EAAE;;;iBAGX,WAAW;;aAEX,QAAQ,UAAU,CAAC;mBACR,IAAI"}
|
37
dist/src/errors.d.ts
vendored
Normal file
37
dist/src/errors.d.ts
vendored
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
export namespace messages {
|
||||||
|
const NOT_STARTED_YET: string;
|
||||||
|
const DHT_DISABLED: string;
|
||||||
|
const CONN_ENCRYPTION_REQUIRED: string;
|
||||||
|
}
|
||||||
|
export namespace codes {
|
||||||
|
const DHT_DISABLED_1: string;
|
||||||
|
export { DHT_DISABLED_1 as DHT_DISABLED };
|
||||||
|
export const PUBSUB_NOT_STARTED: string;
|
||||||
|
export const DHT_NOT_STARTED: string;
|
||||||
|
const CONN_ENCRYPTION_REQUIRED_1: string;
|
||||||
|
export { CONN_ENCRYPTION_REQUIRED_1 as CONN_ENCRYPTION_REQUIRED };
|
||||||
|
export const ERR_INVALID_PROTOCOLS_FOR_STREAM: string;
|
||||||
|
export const ERR_CONNECTION_ENDED: string;
|
||||||
|
export const ERR_CONNECTION_FAILED: string;
|
||||||
|
export const ERR_NODE_NOT_STARTED: string;
|
||||||
|
export const ERR_ALREADY_ABORTED: string;
|
||||||
|
export const ERR_NO_VALID_ADDRESSES: string;
|
||||||
|
export const ERR_RELAYED_DIAL: string;
|
||||||
|
export const ERR_DIALED_SELF: string;
|
||||||
|
export const ERR_DISCOVERED_SELF: string;
|
||||||
|
export const ERR_DUPLICATE_TRANSPORT: string;
|
||||||
|
export const ERR_ENCRYPTION_FAILED: string;
|
||||||
|
export const ERR_HOP_REQUEST_FAILED: string;
|
||||||
|
export const ERR_INVALID_KEY: string;
|
||||||
|
export const ERR_INVALID_MESSAGE: string;
|
||||||
|
export const ERR_INVALID_PARAMETERS: string;
|
||||||
|
export const ERR_INVALID_PEER: string;
|
||||||
|
export const ERR_MUXER_UNAVAILABLE: string;
|
||||||
|
export const ERR_TIMEOUT: string;
|
||||||
|
export const ERR_TRANSPORT_UNAVAILABLE: string;
|
||||||
|
export const ERR_TRANSPORT_DIAL_FAILED: string;
|
||||||
|
export const ERR_UNSUPPORTED_PROTOCOL: string;
|
||||||
|
export const ERR_INVALID_MULTIADDR: string;
|
||||||
|
export const ERR_SIGNATURE_NOT_VALID: string;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=errors.d.ts.map
|
1
dist/src/errors.d.ts.map
vendored
Normal file
1
dist/src/errors.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.js"],"names":[],"mappings":""}
|
15
dist/src/get-peer.d.ts
vendored
Normal file
15
dist/src/get-peer.d.ts
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
export = getPeer;
|
||||||
|
/**
|
||||||
|
* Converts the given `peer` to a `Peer` object.
|
||||||
|
* If a multiaddr is received, the addressBook is updated.
|
||||||
|
*
|
||||||
|
* @param {PeerId|Multiaddr|string} peer
|
||||||
|
* @returns {{ id: PeerId, multiaddrs: Multiaddr[]|undefined }}
|
||||||
|
*/
|
||||||
|
declare function getPeer(peer: PeerId | Multiaddr | string): {
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[] | undefined;
|
||||||
|
};
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
import { Multiaddr } from "multiaddr";
|
||||||
|
//# sourceMappingURL=get-peer.d.ts.map
|
1
dist/src/get-peer.d.ts.map
vendored
Normal file
1
dist/src/get-peer.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"get-peer.d.ts","sourceRoot":"","sources":["../../src/get-peer.js"],"names":[],"mappings":";AAQA;;;;;;GAMG;AACH,+BAHW,MAAM,GAAC,SAAS,GAAC,MAAM,GACrB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS,EAAE,GAAC,SAAS,CAAA;CAAE,CAiC7D"}
|
5
dist/src/identify/consts.d.ts
vendored
Normal file
5
dist/src/identify/consts.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export var PROTOCOL_VERSION: string;
|
||||||
|
export var AGENT_VERSION: string;
|
||||||
|
export var MULTICODEC_IDENTIFY: string;
|
||||||
|
export var MULTICODEC_IDENTIFY_PUSH: string;
|
||||||
|
//# sourceMappingURL=consts.d.ts.map
|
1
dist/src/identify/consts.d.ts.map
vendored
Normal file
1
dist/src/identify/consts.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../src/identify/consts.js"],"names":[],"mappings":""}
|
111
dist/src/identify/index.d.ts
vendored
Normal file
111
dist/src/identify/index.d.ts
vendored
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
export = IdentifyService;
|
||||||
|
/**
|
||||||
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
||||||
|
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} HostProperties
|
||||||
|
* @property {string} agentVersion
|
||||||
|
*/
|
||||||
|
declare class IdentifyService {
|
||||||
|
/**
|
||||||
|
* Takes the `addr` and converts it to a Multiaddr if possible
|
||||||
|
*
|
||||||
|
* @param {Uint8Array | string} addr
|
||||||
|
* @returns {Multiaddr|null}
|
||||||
|
*/
|
||||||
|
static getCleanMultiaddr(addr: Uint8Array | string): Multiaddr | null;
|
||||||
|
/**
|
||||||
|
* @class
|
||||||
|
* @param {Object} options
|
||||||
|
* @param {import('../')} options.libp2p
|
||||||
|
*/
|
||||||
|
constructor({ libp2p }: {
|
||||||
|
libp2p: import('../');
|
||||||
|
});
|
||||||
|
_libp2p: import("../");
|
||||||
|
peerStore: import("../peer-store");
|
||||||
|
addressManager: import("../address-manager");
|
||||||
|
connectionManager: import("../connection-manager");
|
||||||
|
peerId: PeerId;
|
||||||
|
/**
|
||||||
|
* A handler to register with Libp2p to process identify messages.
|
||||||
|
*
|
||||||
|
* @param {Object} options
|
||||||
|
* @param {Connection} options.connection
|
||||||
|
* @param {MuxedStream} options.stream
|
||||||
|
* @param {string} options.protocol
|
||||||
|
* @returns {Promise<void>|undefined}
|
||||||
|
*/
|
||||||
|
handleMessage({ connection, stream, protocol }: {
|
||||||
|
connection: Connection;
|
||||||
|
stream: MuxedStream;
|
||||||
|
protocol: string;
|
||||||
|
}): Promise<void> | undefined;
|
||||||
|
_host: {
|
||||||
|
agentVersion: string;
|
||||||
|
protocolVersion: string;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Send an Identify Push update to the list of connections
|
||||||
|
*
|
||||||
|
* @param {Connection[]} connections
|
||||||
|
* @returns {Promise<void[]>}
|
||||||
|
*/
|
||||||
|
push(connections: Connection[]): Promise<void[]>;
|
||||||
|
/**
|
||||||
|
* Calls `push` for all peers in the `peerStore` that are connected
|
||||||
|
*
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
pushToPeerStore(): void;
|
||||||
|
/**
|
||||||
|
* Requests the `Identify` message from peer associated with the given `connection`.
|
||||||
|
* If the identified peer does not match the `PeerId` associated with the connection,
|
||||||
|
* an error will be thrown.
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
* @param {Connection} connection
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
identify(connection: Connection): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Sends the `Identify` response with the Signed Peer Record
|
||||||
|
* to the requesting peer over the given `connection`
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} options
|
||||||
|
* @param {MuxedStream} options.stream
|
||||||
|
* @param {Connection} options.connection
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
private _handleIdentify;
|
||||||
|
/**
|
||||||
|
* Reads the Identify Push message from the given `connection`
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {object} options
|
||||||
|
* @param {MuxedStream} options.stream
|
||||||
|
* @param {Connection} options.connection
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
private _handlePush;
|
||||||
|
}
|
||||||
|
declare namespace IdentifyService {
|
||||||
|
export { multicodecs, Message as Messsage, Connection, MuxedStream, HostProperties };
|
||||||
|
}
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
type MuxedStream = import('libp2p-interfaces/src/stream-muxer/types').MuxedStream;
|
||||||
|
import { Multiaddr } from "multiaddr";
|
||||||
|
declare namespace multicodecs {
|
||||||
|
export { MULTICODEC_IDENTIFY as IDENTIFY };
|
||||||
|
export { MULTICODEC_IDENTIFY_PUSH as IDENTIFY_PUSH };
|
||||||
|
}
|
||||||
|
import Message = require("./message");
|
||||||
|
type HostProperties = {
|
||||||
|
agentVersion: string;
|
||||||
|
};
|
||||||
|
import { MULTICODEC_IDENTIFY } from "./consts";
|
||||||
|
import { MULTICODEC_IDENTIFY_PUSH } from "./consts";
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/identify/index.d.ts.map
vendored
Normal file
1
dist/src/identify/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/identify/index.js"],"names":[],"mappings":";AA8BA;;;GAGG;AAEH;;;GAGG;AAEH;IA0RE;;;;;OAKG;IACH,+BAHW,UAAU,GAAG,MAAM,GACjB,SAAS,GAAC,IAAI,CAW1B;IAxSD;;;;OAIG;IACH;QAFkC,MAAM,EAA7B,OAAO,KAAK,CAAC;OAqCvB;IAlCC,uBAAqB;IACrB,mCAAiC;IACjC,6CAA2C;IAC3C,mDAAiD;IACjD,eAA2B;IAiK7B;;;;;;;;OAQG;IACH;oBALW,UAAU;gBACV,WAAW;kBACX,MAAM;QACJ,QAAQ,IAAI,CAAC,GAAC,SAAS,CAWnC;IA9KC;sBAnBU,MAAM;;MAsBf;IAwBH;;;;;OAKG;IACH,kBAHW,UAAU,EAAE,GACV,QAAQ,IAAI,EAAE,CAAC,CA4B3B;IAED;;;;OAIG;IACH,mBAFa,IAAI,CAiBhB;IAED;;;;;;;;OAQG;IACH,qBAHW,UAAU,GACR,QAAQ,IAAI,CAAC,CAgEzB;IAsBD;;;;;;;;;OASG;IACH,wBA6BC;IAED;;;;;;;;OAQG;IACH,oBAsCC;CAkBF;;;;;;mBAlTY,OAAO,0CAA0C,EAAE,WAAW;;;;;;;;kBAK7D,MAAM"}
|
95
dist/src/identify/message.d.ts
vendored
Normal file
95
dist/src/identify/message.d.ts
vendored
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
import * as $protobuf from "protobufjs";
|
||||||
|
/** Properties of an Identify. */
|
||||||
|
export interface IIdentify {
|
||||||
|
|
||||||
|
/** Identify protocolVersion */
|
||||||
|
protocolVersion?: (string|null);
|
||||||
|
|
||||||
|
/** Identify agentVersion */
|
||||||
|
agentVersion?: (string|null);
|
||||||
|
|
||||||
|
/** Identify publicKey */
|
||||||
|
publicKey?: (Uint8Array|null);
|
||||||
|
|
||||||
|
/** Identify listenAddrs */
|
||||||
|
listenAddrs?: (Uint8Array[]|null);
|
||||||
|
|
||||||
|
/** Identify observedAddr */
|
||||||
|
observedAddr?: (Uint8Array|null);
|
||||||
|
|
||||||
|
/** Identify protocols */
|
||||||
|
protocols?: (string[]|null);
|
||||||
|
|
||||||
|
/** Identify signedPeerRecord */
|
||||||
|
signedPeerRecord?: (Uint8Array|null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents an Identify. */
|
||||||
|
export class Identify implements IIdentify {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new Identify.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: IIdentify);
|
||||||
|
|
||||||
|
/** Identify protocolVersion. */
|
||||||
|
public protocolVersion: string;
|
||||||
|
|
||||||
|
/** Identify agentVersion. */
|
||||||
|
public agentVersion: string;
|
||||||
|
|
||||||
|
/** Identify publicKey. */
|
||||||
|
public publicKey: Uint8Array;
|
||||||
|
|
||||||
|
/** Identify listenAddrs. */
|
||||||
|
public listenAddrs: Uint8Array[];
|
||||||
|
|
||||||
|
/** Identify observedAddr. */
|
||||||
|
public observedAddr: Uint8Array;
|
||||||
|
|
||||||
|
/** Identify protocols. */
|
||||||
|
public protocols: string[];
|
||||||
|
|
||||||
|
/** Identify signedPeerRecord. */
|
||||||
|
public signedPeerRecord: Uint8Array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified Identify message. Does not implicitly {@link Identify.verify|verify} messages.
|
||||||
|
* @param m Identify message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: IIdentify, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes an Identify message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns Identify
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Identify;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an Identify message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns Identify
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): Identify;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from an Identify message. Also converts values to other types if specified.
|
||||||
|
* @param m Identify
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: Identify, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this Identify to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
533
dist/src/index.d.ts
vendored
Normal file
533
dist/src/index.d.ts
vendored
Normal file
@ -0,0 +1,533 @@
|
|||||||
|
export = Libp2p;
|
||||||
|
/**
|
||||||
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
||||||
|
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
|
||||||
|
* @typedef {import('libp2p-interfaces/src/transport/types').TransportFactory<any, any>} TransportFactory
|
||||||
|
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxerFactory} MuxerFactory
|
||||||
|
* @typedef {import('libp2p-interfaces/src/content-routing/types').ContentRouting} ContentRoutingModule
|
||||||
|
* @typedef {import('libp2p-interfaces/src/peer-discovery/types').PeerDiscoveryFactory} PeerDiscoveryFactory
|
||||||
|
* @typedef {import('libp2p-interfaces/src/peer-routing/types').PeerRouting} PeerRoutingModule
|
||||||
|
* @typedef {import('libp2p-interfaces/src/crypto/types').Crypto} Crypto
|
||||||
|
* @typedef {import('libp2p-interfaces/src/pubsub')} Pubsub
|
||||||
|
* @typedef {import('libp2p-interfaces/src/pubsub').PubsubOptions} PubsubOptions
|
||||||
|
* @typedef {import('interface-datastore').Datastore} Datastore
|
||||||
|
* @typedef {import('./pnet')} Protector
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} HandlerProps
|
||||||
|
* @property {Connection} connection
|
||||||
|
* @property {MuxedStream} stream
|
||||||
|
* @property {string} protocol
|
||||||
|
*
|
||||||
|
* @typedef {Object} RandomWalkOptions
|
||||||
|
* @property {boolean} [enabled = false]
|
||||||
|
* @property {number} [queriesPerPeriod = 1]
|
||||||
|
* @property {number} [interval = 300e3]
|
||||||
|
* @property {number} [timeout = 10e3]
|
||||||
|
*
|
||||||
|
* @typedef {Object} DhtOptions
|
||||||
|
* @property {boolean} [enabled = false]
|
||||||
|
* @property {number} [kBucketSize = 20]
|
||||||
|
* @property {RandomWalkOptions} [randomWalk]
|
||||||
|
* @property {boolean} [clientMode]
|
||||||
|
* @property {import('libp2p-interfaces/src/types').DhtSelectors} [selectors]
|
||||||
|
* @property {import('libp2p-interfaces/src/types').DhtValidators} [validators]
|
||||||
|
*
|
||||||
|
* @typedef {Object} KeychainOptions
|
||||||
|
* @property {Datastore} [datastore]
|
||||||
|
*
|
||||||
|
* @typedef {Object} PeerStoreOptions
|
||||||
|
* @property {boolean} persistence
|
||||||
|
*
|
||||||
|
* @typedef {Object} PubsubLocalOptions
|
||||||
|
* @property {boolean} enabled
|
||||||
|
*
|
||||||
|
* @typedef {Object} MetricsOptions
|
||||||
|
* @property {boolean} enabled
|
||||||
|
*
|
||||||
|
* @typedef {Object} RelayOptions
|
||||||
|
* @property {boolean} [enabled = true]
|
||||||
|
* @property {import('./circuit').RelayAdvertiseOptions} [advertise]
|
||||||
|
* @property {import('./circuit').HopOptions} [hop]
|
||||||
|
* @property {import('./circuit').AutoRelayOptions} [autoRelay]
|
||||||
|
*
|
||||||
|
* @typedef {Object} Libp2pConfig
|
||||||
|
* @property {DhtOptions} [dht] dht module options
|
||||||
|
* @property {import('./nat-manager').NatManagerOptions} [nat]
|
||||||
|
* @property {Record<string, Object|boolean>} [peerDiscovery]
|
||||||
|
* @property {PubsubLocalOptions & PubsubOptions} [pubsub] pubsub module options
|
||||||
|
* @property {RelayOptions} [relay]
|
||||||
|
* @property {Record<string, Object>} [transport] transport options indexed by transport key
|
||||||
|
*
|
||||||
|
* @typedef {Object} Libp2pModules
|
||||||
|
* @property {TransportFactory[]} transport
|
||||||
|
* @property {MuxerFactory[]} streamMuxer
|
||||||
|
* @property {Crypto[]} connEncryption
|
||||||
|
* @property {PeerDiscoveryFactory[]} [peerDiscovery]
|
||||||
|
* @property {PeerRoutingModule[]} [peerRouting]
|
||||||
|
* @property {ContentRoutingModule[]} [contentRouting]
|
||||||
|
* @property {Object} [dht]
|
||||||
|
* @property {{new(...args: any[]): Pubsub}} [pubsub]
|
||||||
|
* @property {Protector} [connProtector]
|
||||||
|
*
|
||||||
|
* @typedef {Object} Libp2pOptions
|
||||||
|
* @property {Libp2pModules} modules libp2p modules to use
|
||||||
|
* @property {import('./address-manager').AddressManagerOptions} [addresses]
|
||||||
|
* @property {import('./connection-manager').ConnectionManagerOptions} [connectionManager]
|
||||||
|
* @property {Datastore} [datastore]
|
||||||
|
* @property {import('./dialer').DialerOptions} [dialer]
|
||||||
|
* @property {import('./identify/index').HostProperties} [host] libp2p host
|
||||||
|
* @property {KeychainOptions & import('./keychain/index').KeychainOptions} [keychain]
|
||||||
|
* @property {MetricsOptions & import('./metrics').MetricsOptions} [metrics]
|
||||||
|
* @property {import('./peer-routing').PeerRoutingOptions} [peerRouting]
|
||||||
|
* @property {PeerStoreOptions & import('./peer-store/persistent').PersistentPeerStoreOptions} [peerStore]
|
||||||
|
* @property {import('./transport-manager').TransportManagerOptions} [transportManager]
|
||||||
|
* @property {Libp2pConfig} [config]
|
||||||
|
*
|
||||||
|
* @typedef {Object} constructorOptions
|
||||||
|
* @property {PeerId} peerId
|
||||||
|
*
|
||||||
|
* @typedef {Object} CreateOptions
|
||||||
|
* @property {PeerId} [peerId]
|
||||||
|
*
|
||||||
|
* @extends {EventEmitter}
|
||||||
|
* @fires Libp2p#error Emitted when an error occurs
|
||||||
|
* @fires Libp2p#peer:discovery Emitted when a peer is discovered
|
||||||
|
*/
|
||||||
|
declare class Libp2p extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* Like `new Libp2p(options)` except it will create a `PeerId`
|
||||||
|
* instance if one is not provided in options.
|
||||||
|
*
|
||||||
|
* @param {Libp2pOptions & CreateOptions} options - Libp2p configuration options
|
||||||
|
* @returns {Promise<Libp2p>}
|
||||||
|
*/
|
||||||
|
static create(options: Libp2pOptions & CreateOptions): Promise<Libp2p>;
|
||||||
|
/**
|
||||||
|
* Libp2p node.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {Libp2pOptions & constructorOptions} _options
|
||||||
|
*/
|
||||||
|
constructor(_options: Libp2pOptions & constructorOptions);
|
||||||
|
_options: {
|
||||||
|
addresses: {
|
||||||
|
listen: never[];
|
||||||
|
announce: never[];
|
||||||
|
noAnnounce: never[];
|
||||||
|
announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[];
|
||||||
|
};
|
||||||
|
connectionManager: {
|
||||||
|
minConnections: number;
|
||||||
|
};
|
||||||
|
transportManager: {
|
||||||
|
faultTolerance: number;
|
||||||
|
};
|
||||||
|
dialer: {
|
||||||
|
maxParallelDials: number;
|
||||||
|
maxDialsPerPeer: number;
|
||||||
|
dialTimeout: number;
|
||||||
|
resolvers: {
|
||||||
|
dnsaddr: any;
|
||||||
|
};
|
||||||
|
addressSorter: typeof import("libp2p-utils/src/address-sort").publicAddressesFirst;
|
||||||
|
};
|
||||||
|
host: {
|
||||||
|
agentVersion: string;
|
||||||
|
};
|
||||||
|
metrics: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
peerStore: {
|
||||||
|
persistence: boolean;
|
||||||
|
threshold: number;
|
||||||
|
};
|
||||||
|
peerRouting: {
|
||||||
|
refreshManager: {
|
||||||
|
enabled: boolean;
|
||||||
|
interval: number;
|
||||||
|
bootDelay: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config: {
|
||||||
|
dht: {
|
||||||
|
enabled: boolean;
|
||||||
|
kBucketSize: number;
|
||||||
|
randomWalk: {
|
||||||
|
enabled: boolean;
|
||||||
|
queriesPerPeriod: number;
|
||||||
|
interval: number;
|
||||||
|
timeout: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nat: {
|
||||||
|
enabled: boolean;
|
||||||
|
ttl: number;
|
||||||
|
keepAlive: boolean;
|
||||||
|
gateway: null;
|
||||||
|
externalIp: null;
|
||||||
|
pmp: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
peerDiscovery: {
|
||||||
|
autoDial: boolean;
|
||||||
|
};
|
||||||
|
pubsub: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
relay: {
|
||||||
|
enabled: boolean;
|
||||||
|
advertise: {
|
||||||
|
bootDelay: number;
|
||||||
|
enabled: boolean;
|
||||||
|
ttl: number;
|
||||||
|
};
|
||||||
|
hop: {
|
||||||
|
enabled: boolean;
|
||||||
|
active: boolean;
|
||||||
|
};
|
||||||
|
autoRelay: {
|
||||||
|
enabled: boolean;
|
||||||
|
maxListeners: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
transport: {};
|
||||||
|
};
|
||||||
|
} & Libp2pOptions & constructorOptions;
|
||||||
|
/** @type {PeerId} */
|
||||||
|
peerId: PeerId;
|
||||||
|
datastore: import("interface-datastore/dist/src/types").Datastore | undefined;
|
||||||
|
peerStore: PeerStore;
|
||||||
|
addresses: {
|
||||||
|
listen: never[];
|
||||||
|
announce: never[];
|
||||||
|
noAnnounce: never[];
|
||||||
|
announceFilter: (multiaddrs: Multiaddr[]) => Multiaddr[];
|
||||||
|
} & AddressManager.AddressManagerOptions;
|
||||||
|
addressManager: AddressManager;
|
||||||
|
_modules: Libp2pModules;
|
||||||
|
_config: {
|
||||||
|
dht: {
|
||||||
|
enabled: boolean;
|
||||||
|
kBucketSize: number;
|
||||||
|
randomWalk: {
|
||||||
|
enabled: boolean;
|
||||||
|
queriesPerPeriod: number;
|
||||||
|
interval: number;
|
||||||
|
timeout: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nat: {
|
||||||
|
enabled: boolean;
|
||||||
|
ttl: number;
|
||||||
|
keepAlive: boolean;
|
||||||
|
gateway: null;
|
||||||
|
externalIp: null;
|
||||||
|
pmp: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
peerDiscovery: {
|
||||||
|
autoDial: boolean;
|
||||||
|
};
|
||||||
|
pubsub: {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
relay: {
|
||||||
|
enabled: boolean;
|
||||||
|
advertise: {
|
||||||
|
bootDelay: number;
|
||||||
|
enabled: boolean;
|
||||||
|
ttl: number;
|
||||||
|
};
|
||||||
|
hop: {
|
||||||
|
enabled: boolean;
|
||||||
|
active: boolean;
|
||||||
|
};
|
||||||
|
autoRelay: {
|
||||||
|
enabled: boolean;
|
||||||
|
maxListeners: number;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
transport: {};
|
||||||
|
} & Libp2pConfig;
|
||||||
|
_transport: any[];
|
||||||
|
_discovery: Map<any, any>;
|
||||||
|
connectionManager: ConnectionManager;
|
||||||
|
metrics: Metrics | undefined;
|
||||||
|
keychain: Keychain | undefined;
|
||||||
|
upgrader: Upgrader;
|
||||||
|
transportManager: TransportManager;
|
||||||
|
natManager: NatManager;
|
||||||
|
registrar: Registrar;
|
||||||
|
/**
|
||||||
|
* Registers the `handler` for each protocol
|
||||||
|
*
|
||||||
|
* @param {string[]|string} protocols
|
||||||
|
* @param {(props: HandlerProps) => void} handler
|
||||||
|
*/
|
||||||
|
handle(protocols: string[] | string, handler: (props: HandlerProps) => void): void;
|
||||||
|
dialer: Dialer;
|
||||||
|
relay: Relay | undefined;
|
||||||
|
identifyService: IdentifyService | undefined;
|
||||||
|
_dht: any;
|
||||||
|
/** @type {Pubsub} */
|
||||||
|
pubsub: import("libp2p-interfaces/src/pubsub");
|
||||||
|
peerRouting: PeerRouting;
|
||||||
|
contentRouting: ContentRouting;
|
||||||
|
/**
|
||||||
|
* Called whenever peer discovery services emit `peer` events.
|
||||||
|
* Known peers may be emitted.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {{ id: PeerId, multiaddrs: Multiaddr[], protocols: string[] }} peer
|
||||||
|
*/
|
||||||
|
private _onDiscoveryPeer;
|
||||||
|
/**
|
||||||
|
* Starts the libp2p node and all its subsystems
|
||||||
|
*
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
start(): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Stop the libp2p node by closing its listeners and open connections
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
stop(): Promise<void>;
|
||||||
|
_isStarted: boolean | undefined;
|
||||||
|
/**
|
||||||
|
* Load keychain keys from the datastore.
|
||||||
|
* Imports the private key as 'self', if needed.
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
loadKeychain(): Promise<void>;
|
||||||
|
isStarted(): boolean | undefined;
|
||||||
|
/**
|
||||||
|
* Gets a Map of the current connections. The keys are the stringified
|
||||||
|
* `PeerId` of the peer. The value is an array of Connections to that peer.
|
||||||
|
*
|
||||||
|
* @returns {Map<string, Connection[]>}
|
||||||
|
*/
|
||||||
|
get connections(): Map<string, import("libp2p-interfaces/src/connection/connection")[]>;
|
||||||
|
/**
|
||||||
|
* Dials to the provided peer. If successful, the known metadata of the
|
||||||
|
* peer will be added to the nodes `peerStore`
|
||||||
|
*
|
||||||
|
* @param {PeerId|Multiaddr|string} peer - The peer to dial
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {AbortSignal} [options.signal]
|
||||||
|
* @returns {Promise<Connection>}
|
||||||
|
*/
|
||||||
|
dial(peer: PeerId | Multiaddr | string, options?: {
|
||||||
|
signal?: AbortSignal | undefined;
|
||||||
|
} | undefined): Promise<Connection>;
|
||||||
|
/**
|
||||||
|
* Dials to the provided peer and tries to handshake with the given protocols in order.
|
||||||
|
* If successful, the known metadata of the peer will be added to the nodes `peerStore`,
|
||||||
|
* and the `MuxedStream` will be returned together with the successful negotiated protocol.
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
* @param {PeerId|Multiaddr|string} peer - The peer to dial
|
||||||
|
* @param {string[]|string} protocols
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {AbortSignal} [options.signal]
|
||||||
|
*/
|
||||||
|
dialProtocol(peer: PeerId | Multiaddr | string, protocols: string[] | string, options?: {
|
||||||
|
signal?: AbortSignal | undefined;
|
||||||
|
} | undefined): Promise<{
|
||||||
|
stream: import("libp2p-interfaces/src/stream-muxer/types").MuxedStream;
|
||||||
|
protocol: string;
|
||||||
|
}>;
|
||||||
|
/**
|
||||||
|
* @async
|
||||||
|
* @param {PeerId|Multiaddr|string} peer - The peer to dial
|
||||||
|
* @param {object} [options]
|
||||||
|
* @returns {Promise<Connection>}
|
||||||
|
*/
|
||||||
|
_dial(peer: PeerId | Multiaddr | string, options?: object | undefined): Promise<Connection>;
|
||||||
|
/**
|
||||||
|
* Get a deduplicated list of peer advertising multiaddrs by concatenating
|
||||||
|
* the listen addresses used by transports with any configured
|
||||||
|
* announce addresses as well as observed addresses reported by peers.
|
||||||
|
*
|
||||||
|
* If Announce addrs are specified, configured listen addresses will be
|
||||||
|
* ignored though observed addresses will still be included.
|
||||||
|
*
|
||||||
|
* @returns {Multiaddr[]}
|
||||||
|
*/
|
||||||
|
get multiaddrs(): Multiaddr[];
|
||||||
|
/**
|
||||||
|
* Disconnects all connections to the given `peer`
|
||||||
|
*
|
||||||
|
* @param {PeerId|Multiaddr|string} peer - the peer to close connections to
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
hangUp(peer: PeerId | Multiaddr | string): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Pings the given peer in order to obtain the operation latency.
|
||||||
|
*
|
||||||
|
* @param {PeerId|Multiaddr|string} peer - The peer to ping
|
||||||
|
* @returns {Promise<number>}
|
||||||
|
*/
|
||||||
|
ping(peer: PeerId | Multiaddr | string): Promise<number>;
|
||||||
|
/**
|
||||||
|
* Removes the handler for each protocol. The protocol
|
||||||
|
* will no longer be supported on streams.
|
||||||
|
*
|
||||||
|
* @param {string[]|string} protocols
|
||||||
|
*/
|
||||||
|
unhandle(protocols: string[] | string): void;
|
||||||
|
_onStarting(): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Called when libp2p has started and before it returns
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _onDidStart;
|
||||||
|
/**
|
||||||
|
* Will dial to the given `peerId` if the current number of
|
||||||
|
* connected peers is less than the configured `ConnectionManager`
|
||||||
|
* minConnections.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
*/
|
||||||
|
private _maybeConnect;
|
||||||
|
/**
|
||||||
|
* Initializes and starts peer discovery services
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private _setupPeerDiscovery;
|
||||||
|
}
|
||||||
|
declare namespace Libp2p {
|
||||||
|
export { Connection, MuxedStream, TransportFactory, MuxerFactory, ContentRoutingModule, PeerDiscoveryFactory, PeerRoutingModule, Crypto, Pubsub, PubsubOptions, Datastore, Protector, HandlerProps, RandomWalkOptions, DhtOptions, KeychainOptions, PeerStoreOptions, PubsubLocalOptions, MetricsOptions, RelayOptions, Libp2pConfig, Libp2pModules, Libp2pOptions, constructorOptions, CreateOptions };
|
||||||
|
}
|
||||||
|
import { EventEmitter } from "events";
|
||||||
|
import { Multiaddr } from "multiaddr";
|
||||||
|
type Libp2pOptions = {
|
||||||
|
/**
|
||||||
|
* libp2p modules to use
|
||||||
|
*/
|
||||||
|
modules: Libp2pModules;
|
||||||
|
addresses?: AddressManager.AddressManagerOptions | undefined;
|
||||||
|
connectionManager?: ConnectionManager.ConnectionManagerOptions | undefined;
|
||||||
|
datastore?: import("interface-datastore/dist/src/types").Datastore | undefined;
|
||||||
|
dialer?: Dialer.DialerOptions | undefined;
|
||||||
|
/**
|
||||||
|
* libp2p host
|
||||||
|
*/
|
||||||
|
host?: IdentifyService.HostProperties | undefined;
|
||||||
|
keychain?: (KeychainOptions & Keychain.KeychainOptions) | undefined;
|
||||||
|
metrics?: (MetricsOptions & Metrics.MetricsOptions) | undefined;
|
||||||
|
peerRouting?: PeerRouting.PeerRoutingOptions | undefined;
|
||||||
|
peerStore?: (PeerStoreOptions & PersistentPeerStore.PersistentPeerStoreOptions) | undefined;
|
||||||
|
transportManager?: TransportManager.TransportManagerOptions | undefined;
|
||||||
|
config?: Libp2pConfig | undefined;
|
||||||
|
};
|
||||||
|
type constructorOptions = {
|
||||||
|
peerId: PeerId;
|
||||||
|
};
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
import PeerStore = require("./peer-store");
|
||||||
|
import AddressManager = require("./address-manager");
|
||||||
|
type Libp2pModules = {
|
||||||
|
transport: import("libp2p-interfaces/src/transport/types").TransportFactory<any, any>[];
|
||||||
|
streamMuxer: MuxerFactory[];
|
||||||
|
connEncryption: Crypto[];
|
||||||
|
peerDiscovery?: import("libp2p-interfaces/src/peer-discovery/types").PeerDiscoveryFactory[] | undefined;
|
||||||
|
peerRouting?: import("libp2p-interfaces/src/peer-routing/types").PeerRouting[] | undefined;
|
||||||
|
contentRouting?: import("libp2p-interfaces/src/content-routing/types").ContentRouting[] | undefined;
|
||||||
|
dht?: Object | undefined;
|
||||||
|
pubsub?: (new (...args: any[]) => Pubsub) | undefined;
|
||||||
|
connProtector?: import("./pnet") | undefined;
|
||||||
|
};
|
||||||
|
type Libp2pConfig = {
|
||||||
|
/**
|
||||||
|
* dht module options
|
||||||
|
*/
|
||||||
|
dht?: DhtOptions | undefined;
|
||||||
|
nat?: NatManager.NatManagerOptions | undefined;
|
||||||
|
peerDiscovery?: Record<string, boolean | Object> | undefined;
|
||||||
|
/**
|
||||||
|
* pubsub module options
|
||||||
|
*/
|
||||||
|
pubsub?: (PubsubLocalOptions & import("libp2p-interfaces/src/pubsub").PubsubOptions) | undefined;
|
||||||
|
relay?: RelayOptions | undefined;
|
||||||
|
/**
|
||||||
|
* transport options indexed by transport key
|
||||||
|
*/
|
||||||
|
transport?: Record<string, Object> | undefined;
|
||||||
|
};
|
||||||
|
import ConnectionManager = require("./connection-manager");
|
||||||
|
import Metrics = require("./metrics");
|
||||||
|
import Keychain = require("./keychain");
|
||||||
|
import Upgrader = require("./upgrader");
|
||||||
|
import TransportManager = require("./transport-manager");
|
||||||
|
import NatManager = require("./nat-manager");
|
||||||
|
import Registrar = require("./registrar");
|
||||||
|
type HandlerProps = {
|
||||||
|
connection: Connection;
|
||||||
|
stream: MuxedStream;
|
||||||
|
protocol: string;
|
||||||
|
};
|
||||||
|
import Dialer = require("./dialer");
|
||||||
|
import Relay = require("./circuit");
|
||||||
|
import IdentifyService = require("./identify");
|
||||||
|
import PeerRouting = require("./peer-routing");
|
||||||
|
import ContentRouting = require("./content-routing");
|
||||||
|
type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
type CreateOptions = {
|
||||||
|
peerId?: PeerId | undefined;
|
||||||
|
};
|
||||||
|
type MuxedStream = import('libp2p-interfaces/src/stream-muxer/types').MuxedStream;
|
||||||
|
type TransportFactory = import('libp2p-interfaces/src/transport/types').TransportFactory<any, any>;
|
||||||
|
type MuxerFactory = import('libp2p-interfaces/src/stream-muxer/types').MuxerFactory;
|
||||||
|
type ContentRoutingModule = import('libp2p-interfaces/src/content-routing/types').ContentRouting;
|
||||||
|
type PeerDiscoveryFactory = import('libp2p-interfaces/src/peer-discovery/types').PeerDiscoveryFactory;
|
||||||
|
type PeerRoutingModule = import('libp2p-interfaces/src/peer-routing/types').PeerRouting;
|
||||||
|
type Crypto = import('libp2p-interfaces/src/crypto/types').Crypto;
|
||||||
|
type Pubsub = import('libp2p-interfaces/src/pubsub');
|
||||||
|
type PubsubOptions = import('libp2p-interfaces/src/pubsub').PubsubOptions;
|
||||||
|
type Datastore = import('interface-datastore').Datastore;
|
||||||
|
type Protector = import('./pnet');
|
||||||
|
type RandomWalkOptions = {
|
||||||
|
enabled?: boolean | undefined;
|
||||||
|
queriesPerPeriod?: number | undefined;
|
||||||
|
interval?: number | undefined;
|
||||||
|
timeout?: number | undefined;
|
||||||
|
};
|
||||||
|
type DhtOptions = {
|
||||||
|
enabled?: boolean | undefined;
|
||||||
|
kBucketSize?: number | undefined;
|
||||||
|
randomWalk?: RandomWalkOptions | undefined;
|
||||||
|
clientMode?: boolean | undefined;
|
||||||
|
selectors?: import("libp2p-interfaces/src/types").DhtSelectors | undefined;
|
||||||
|
validators?: import("libp2p-interfaces/src/types").DhtValidators | undefined;
|
||||||
|
};
|
||||||
|
type KeychainOptions = {
|
||||||
|
datastore?: import("interface-datastore/dist/src/types").Datastore | undefined;
|
||||||
|
};
|
||||||
|
type PeerStoreOptions = {
|
||||||
|
persistence: boolean;
|
||||||
|
};
|
||||||
|
type PubsubLocalOptions = {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
type MetricsOptions = {
|
||||||
|
enabled: boolean;
|
||||||
|
};
|
||||||
|
type RelayOptions = {
|
||||||
|
enabled?: boolean | undefined;
|
||||||
|
advertise?: Relay.RelayAdvertiseOptions | undefined;
|
||||||
|
hop?: Relay.HopOptions | undefined;
|
||||||
|
autoRelay?: Relay.AutoRelayOptions | undefined;
|
||||||
|
};
|
||||||
|
import PersistentPeerStore = require("./peer-store/persistent");
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/index.d.ts.map
vendored
Normal file
1
dist/src/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";AAqCA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH;IACE;;;;;;OAMG;IACH,uBAHW,aAAa,GAAG,aAAa,GAC3B,QAAQ,MAAM,CAAC,CAa3B;IAED;;;;;OAKG;IACH,sBAFW,aAAa,GAAG,kBAAkB,EA+K5C;IAzKC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAAwC;IAExC,qBAAqB;IACrB,QADW,MAAM,CACiB;IAClC,8EAAwC;IAExC,qBAM0C;IAG1C;;;;;6CAAwC;IACxC,+BAA8E;IAS9E,wBAAqC;IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAAmC;IACnC,kBAAoB;IACpB,0BAA2B;IAG3B,qCAGE;IAIA,6BAGE;IASF,+BAGE;IAMJ,mBAKE;IAGF,mCAIE;IAGF,uBAME;IAGF,qBAGE;IAwUJ;;;;;OAKG;IACH,kBAHW,MAAM,EAAE,GAAC,MAAM,mBACP,YAAY,KAAK,IAAI,QAUvC;IAxUC,eAIE;IAWA,yBAA4B;IAW5B,6CAA4D;IAe5D,UAQE;IAOF,qBAAqB;IACrB,+CAA8D;IAKhE,yBAAwC;IACxC,+BAA8C;IAqVhD;;;;;;OAMG;IACH,yBAQC;IAzUD;;;;OAIG;IACH,SAFa,QAAQ,IAAI,CAAC,CAezB;IAED;;;;;OAKG;IACH,QAFa,QAAQ,IAAI,CAAC,CAwCzB;IAlCG,gCAAuB;IAoC3B;;;;;;OAMG;IACH,gBAFa,QAAQ,IAAI,CAAC,CAYzB;IAED,iCAEC;IAED;;;;;OAKG;IACH,wFAEC;IAED;;;;;;;;OAQG;IACH,WALW,MAAM,GAAC,SAAS,GAAC,MAAM;;oBAGrB,QAAQ,UAAU,CAAC,CAI/B;IAED;;;;;;;;;;OAUG;IACH,mBALW,MAAM,GAAC,SAAS,GAAC,MAAM,aACvB,MAAM,EAAE,GAAC,MAAM;;;;;OAWzB;IAED;;;;;OAKG;IACH,YAJW,MAAM,GAAC,SAAS,GAAC,MAAM,iCAErB,QAAQ,UAAU,CAAC,CAkB/B;IAED;;;;;;;;;OASG;IACH,8BAiBC;IAED;;;;;OAKG;IACH,aAHW,MAAM,GAAC,SAAS,GAAC,MAAM,GACrB,QAAQ,IAAI,CAAC,CAgBzB;IAED;;;;;OAKG;IACH,WAHW,MAAM,GAAC,SAAS,GAAC,MAAM,GACrB,QAAQ,MAAM,CAAC,CAW3B;IAkBD;;;;;OAKG;IACH,oBAFW,MAAM,EAAE,GAAC,MAAM,QAUzB;IAED,6BA0BC;IAED;;;;OAIG;IACH,oBAuBC;IAmBD;;;;;;;OAOG;IACH,sBAaC;IAED;;;;;OAKG;IACH,4BAkDC;CACF;;;;;;;;;;aA/oBa,aAAa;;;;;;;;;;;;;;;;;YAcb,MAAM;;;;;;eAzBN,4EAAkB;iBAClB,YAAY,EAAE;oBACd,MAAM,EAAE;;;;;4BAKM,GAAG,EAAE,KAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBApD5B,UAAU;YACV,WAAW;cACX,MAAM;;;;;;;;;;;mBAjBP,OAAO,0CAA0C,EAAE,WAAW;wBAC9D,OAAO,uCAAuC,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC;oBAC1E,OAAO,0CAA0C,EAAE,YAAY;4BAC/D,OAAO,6CAA6C,EAAE,cAAc;4BACpE,OAAO,4CAA4C,EAAE,oBAAoB;yBACzE,OAAO,0CAA0C,EAAE,WAAW;cAC9D,OAAO,oCAAoC,EAAE,MAAM;cACnD,OAAO,8BAA8B,CAAC;qBACtC,OAAO,8BAA8B,EAAE,aAAa;iBACpD,OAAO,qBAAqB,EAAE,SAAS;iBACvC,OAAO,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;iBA2Bf,OAAO;;;aAGP,OAAO;;;aAGP,OAAO"}
|
12
dist/src/insecure/plaintext.d.ts
vendored
Normal file
12
dist/src/insecure/plaintext.d.ts
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
export type Connection = import("libp2p-interfaces/src/connection/connection");
|
||||||
|
export const protocol: "/plaintext/2.0.0";
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
export declare function secureInbound(localId: PeerId, conn: import("libp2p-interfaces/src/connection/connection"), remoteId: PeerId | undefined): Promise<{
|
||||||
|
conn: any;
|
||||||
|
remotePeer: PeerId;
|
||||||
|
}>;
|
||||||
|
export declare function secureOutbound(localId: PeerId, conn: import("libp2p-interfaces/src/connection/connection"), remoteId: PeerId | undefined): Promise<{
|
||||||
|
conn: any;
|
||||||
|
remotePeer: PeerId;
|
||||||
|
}>;
|
||||||
|
//# sourceMappingURL=plaintext.d.ts.map
|
1
dist/src/insecure/plaintext.d.ts.map
vendored
Normal file
1
dist/src/insecure/plaintext.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"plaintext.d.ts","sourceRoot":"","sources":["../../../src/insecure/plaintext.js"],"names":[],"mappings":";AAaA,0CAAmC;;AAsEjB;;;GAEd;AAMe;;;GAEf"}
|
128
dist/src/insecure/proto.d.ts
vendored
Normal file
128
dist/src/insecure/proto.d.ts
vendored
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
import * as $protobuf from "protobufjs";
|
||||||
|
/** Properties of an Exchange. */
|
||||||
|
export interface IExchange {
|
||||||
|
|
||||||
|
/** Exchange id */
|
||||||
|
id?: (Uint8Array|null);
|
||||||
|
|
||||||
|
/** Exchange pubkey */
|
||||||
|
pubkey?: (IPublicKey|null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents an Exchange. */
|
||||||
|
export class Exchange implements IExchange {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new Exchange.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: IExchange);
|
||||||
|
|
||||||
|
/** Exchange id. */
|
||||||
|
public id: Uint8Array;
|
||||||
|
|
||||||
|
/** Exchange pubkey. */
|
||||||
|
public pubkey?: (IPublicKey|null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified Exchange message. Does not implicitly {@link Exchange.verify|verify} messages.
|
||||||
|
* @param m Exchange message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: IExchange, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes an Exchange message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns Exchange
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Exchange;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an Exchange message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns Exchange
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): Exchange;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from an Exchange message. Also converts values to other types if specified.
|
||||||
|
* @param m Exchange
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: Exchange, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this Exchange to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
||||||
|
|
||||||
|
/** KeyType enum. */
|
||||||
|
export enum KeyType {
|
||||||
|
RSA = 0,
|
||||||
|
Ed25519 = 1,
|
||||||
|
Secp256k1 = 2,
|
||||||
|
ECDSA = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents a PublicKey. */
|
||||||
|
export class PublicKey implements IPublicKey {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new PublicKey.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: IPublicKey);
|
||||||
|
|
||||||
|
/** PublicKey Type. */
|
||||||
|
public Type: KeyType;
|
||||||
|
|
||||||
|
/** PublicKey Data. */
|
||||||
|
public Data: Uint8Array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified PublicKey message. Does not implicitly {@link PublicKey.verify|verify} messages.
|
||||||
|
* @param m PublicKey message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: IPublicKey, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes a PublicKey message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns PublicKey
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): PublicKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a PublicKey message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns PublicKey
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): PublicKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from a PublicKey message. Also converts values to other types if specified.
|
||||||
|
* @param m PublicKey
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: PublicKey, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this PublicKey to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
41
dist/src/keychain/cms.d.ts
vendored
Normal file
41
dist/src/keychain/cms.d.ts
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
export = CMS;
|
||||||
|
/**
|
||||||
|
* Cryptographic Message Syntax (aka PKCS #7)
|
||||||
|
*
|
||||||
|
* CMS describes an encapsulation syntax for data protection. It
|
||||||
|
* is used to digitally sign, digest, authenticate, or encrypt
|
||||||
|
* arbitrary message content.
|
||||||
|
*
|
||||||
|
* See RFC 5652 for all the details.
|
||||||
|
*/
|
||||||
|
declare class CMS {
|
||||||
|
/**
|
||||||
|
* Creates a new instance with a keychain
|
||||||
|
*
|
||||||
|
* @param {import('./index')} keychain - the available keys
|
||||||
|
* @param {string} dek
|
||||||
|
*/
|
||||||
|
constructor(keychain: import('./index'), dek: string);
|
||||||
|
keychain: import("./index");
|
||||||
|
/**
|
||||||
|
* Creates some protected data.
|
||||||
|
*
|
||||||
|
* The output Uint8Array contains the PKCS #7 message in DER.
|
||||||
|
*
|
||||||
|
* @param {string} name - The local key name.
|
||||||
|
* @param {Uint8Array} plain - The data to encrypt.
|
||||||
|
* @returns {Promise<Uint8Array>}
|
||||||
|
*/
|
||||||
|
encrypt(name: string, plain: Uint8Array): Promise<Uint8Array>;
|
||||||
|
/**
|
||||||
|
* Reads some protected data.
|
||||||
|
*
|
||||||
|
* The keychain must contain one of the keys used to encrypt the data. If none of the keys
|
||||||
|
* exists, an Error is returned with the property 'missingKeys'. It is array of key ids.
|
||||||
|
*
|
||||||
|
* @param {Uint8Array} cmsData - The CMS encrypted data to decrypt.
|
||||||
|
* @returns {Promise<Uint8Array>}
|
||||||
|
*/
|
||||||
|
decrypt(cmsData: Uint8Array): Promise<Uint8Array>;
|
||||||
|
}
|
||||||
|
//# sourceMappingURL=cms.d.ts.map
|
1
dist/src/keychain/cms.d.ts.map
vendored
Normal file
1
dist/src/keychain/cms.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../../src/keychain/cms.js"],"names":[],"mappings":";AAeA;;;;;;;;GAQG;AACH;IACE;;;;;OAKG;IACH,sBAHW,OAAO,SAAS,CAAC,OACjB,MAAM,EAShB;IAFC,4BAAwB;IAI1B;;;;;;;;OAQG;IACH,cAJW,MAAM,SACN,UAAU,GACR,QAAQ,UAAU,CAAC,CAuB/B;IAED;;;;;;;;OAQG;IACH,iBAHW,UAAU,GACR,QAAQ,UAAU,CAAC,CA8D/B;CACF"}
|
151
dist/src/keychain/index.d.ts
vendored
Normal file
151
dist/src/keychain/index.d.ts
vendored
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
export = Keychain;
|
||||||
|
/**
|
||||||
|
* Manages the lifecycle of a key. Keys are encrypted at rest using PKCS #8.
|
||||||
|
*
|
||||||
|
* A key in the store has two entries
|
||||||
|
* - '/info/*key-name*', contains the KeyInfo for the key
|
||||||
|
* - '/pkcs8/*key-name*', contains the PKCS #8 for the key
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
declare class Keychain {
|
||||||
|
/**
|
||||||
|
* Generates the options for a keychain. A random salt is produced.
|
||||||
|
*
|
||||||
|
* @returns {Object}
|
||||||
|
*/
|
||||||
|
static generateOptions(): Object;
|
||||||
|
/**
|
||||||
|
* Gets an object that can encrypt/decrypt protected data.
|
||||||
|
* The default options for a keychain.
|
||||||
|
*
|
||||||
|
* @returns {Object}
|
||||||
|
*/
|
||||||
|
static get options(): Object;
|
||||||
|
/**
|
||||||
|
* Creates a new instance of a key chain.
|
||||||
|
*
|
||||||
|
* @param {Datastore} store - where the key are.
|
||||||
|
* @param {KeychainOptions} options
|
||||||
|
* @class
|
||||||
|
*/
|
||||||
|
constructor(store: Datastore, options: KeychainOptions);
|
||||||
|
store: import("interface-datastore/dist/src/types").Datastore;
|
||||||
|
opts: any;
|
||||||
|
/**
|
||||||
|
* Gets an object that can encrypt/decrypt protected data
|
||||||
|
* using the Cryptographic Message Syntax (CMS).
|
||||||
|
*
|
||||||
|
* CMS describes an encapsulation syntax for data protection. It
|
||||||
|
* is used to digitally sign, digest, authenticate, or encrypt
|
||||||
|
* arbitrary message content.
|
||||||
|
*
|
||||||
|
* @returns {CMS}
|
||||||
|
*/
|
||||||
|
get cms(): CMS;
|
||||||
|
/**
|
||||||
|
* Create a new key.
|
||||||
|
*
|
||||||
|
* @param {string} name - The local key name; cannot already exist.
|
||||||
|
* @param {string} type - One of the key types; 'rsa'.
|
||||||
|
* @param {number} [size = 2048] - The key size in bits. Used for rsa keys only.
|
||||||
|
* @returns {Promise<KeyInfo>}
|
||||||
|
*/
|
||||||
|
createKey(name: string, type: string, size?: number | undefined): Promise<KeyInfo>;
|
||||||
|
/**
|
||||||
|
* List all the keys.
|
||||||
|
*
|
||||||
|
* @returns {Promise<KeyInfo[]>}
|
||||||
|
*/
|
||||||
|
listKeys(): Promise<KeyInfo[]>;
|
||||||
|
/**
|
||||||
|
* Find a key by it's id.
|
||||||
|
*
|
||||||
|
* @param {string} id - The universally unique key identifier.
|
||||||
|
* @returns {Promise<KeyInfo|undefined>}
|
||||||
|
*/
|
||||||
|
findKeyById(id: string): Promise<KeyInfo | undefined>;
|
||||||
|
/**
|
||||||
|
* Find a key by it's name.
|
||||||
|
*
|
||||||
|
* @param {string} name - The local key name.
|
||||||
|
* @returns {Promise<KeyInfo>}
|
||||||
|
*/
|
||||||
|
findKeyByName(name: string): Promise<KeyInfo>;
|
||||||
|
/**
|
||||||
|
* Remove an existing key.
|
||||||
|
*
|
||||||
|
* @param {string} name - The local key name; must already exist.
|
||||||
|
* @returns {Promise<KeyInfo>}
|
||||||
|
*/
|
||||||
|
removeKey(name: string): Promise<KeyInfo>;
|
||||||
|
/**
|
||||||
|
* Rename a key
|
||||||
|
*
|
||||||
|
* @param {string} oldName - The old local key name; must already exist.
|
||||||
|
* @param {string} newName - The new local key name; must not already exist.
|
||||||
|
* @returns {Promise<KeyInfo>}
|
||||||
|
*/
|
||||||
|
renameKey(oldName: string, newName: string): Promise<KeyInfo>;
|
||||||
|
/**
|
||||||
|
* Export an existing key as a PEM encrypted PKCS #8 string
|
||||||
|
*
|
||||||
|
* @param {string} name - The local key name; must already exist.
|
||||||
|
* @param {string} password - The password
|
||||||
|
* @returns {Promise<string>}
|
||||||
|
*/
|
||||||
|
exportKey(name: string, password: string): Promise<string>;
|
||||||
|
/**
|
||||||
|
* Import a new key from a PEM encoded PKCS #8 string
|
||||||
|
*
|
||||||
|
* @param {string} name - The local key name; must not already exist.
|
||||||
|
* @param {string} pem - The PEM encoded PKCS #8 string
|
||||||
|
* @param {string} password - The password.
|
||||||
|
* @returns {Promise<KeyInfo>}
|
||||||
|
*/
|
||||||
|
importKey(name: string, pem: string, password: string): Promise<KeyInfo>;
|
||||||
|
/**
|
||||||
|
* Import a peer key
|
||||||
|
*
|
||||||
|
* @param {string} name - The local key name; must not already exist.
|
||||||
|
* @param {PeerId} peer - The PEM encoded PKCS #8 string
|
||||||
|
* @returns {Promise<KeyInfo>}
|
||||||
|
*/
|
||||||
|
importPeer(name: string, peer: PeerId): Promise<KeyInfo>;
|
||||||
|
/**
|
||||||
|
* Gets the private key as PEM encoded PKCS #8 string.
|
||||||
|
*
|
||||||
|
* @param {string} name
|
||||||
|
* @returns {Promise<string>}
|
||||||
|
*/
|
||||||
|
_getPrivateKey(name: string): Promise<string>;
|
||||||
|
}
|
||||||
|
declare namespace Keychain {
|
||||||
|
export { PeerId, Datastore, DekOptions, KeychainOptions, KeyInfo };
|
||||||
|
}
|
||||||
|
import CMS = require("./cms");
|
||||||
|
/**
|
||||||
|
* Information about a key.
|
||||||
|
*/
|
||||||
|
type KeyInfo = {
|
||||||
|
/**
|
||||||
|
* - The universally unique key id.
|
||||||
|
*/
|
||||||
|
id: string;
|
||||||
|
/**
|
||||||
|
* - The local key name.
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
};
|
||||||
|
type PeerId = import('peer-id');
|
||||||
|
type Datastore = import('interface-datastore').Datastore;
|
||||||
|
type KeychainOptions = {
|
||||||
|
pass?: string | undefined;
|
||||||
|
dek?: DekOptions | undefined;
|
||||||
|
};
|
||||||
|
type DekOptions = {
|
||||||
|
hash: string;
|
||||||
|
salt: string;
|
||||||
|
iterationCount: number;
|
||||||
|
keyLength: number;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/keychain/index.d.ts.map
vendored
Normal file
1
dist/src/keychain/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keychain/index.js"],"names":[],"mappings":";AA+GA;;;;;;;GAOG;AACH;IAwDE;;;;OAIG;IACH,0BAFa,MAAM,CAOlB;IAED;;;;;OAKG;IACH,6BAEC;IA3ED;;;;;;OAMG;IACH,mBAJW,SAAS,WACT,eAAe,EAmCzB;IA5BC,8DAAkB;IAElB,UAAiD;IA4BnD;;;;;;;;;OASG;IACH,eAEC;IAwBD;;;;;;;OAOG;IACH,gBALW,MAAM,QACN,MAAM,8BAEJ,QAAQ,OAAO,CAAC,CAiD5B;IAED;;;;OAIG;IACH,YAFa,QAAQ,OAAO,EAAE,CAAC,CAc9B;IAED;;;;;OAKG;IACH,gBAHW,MAAM,GACJ,QAAQ,OAAO,GAAC,SAAS,CAAC,CAStC;IAED;;;;;OAKG;IACH,oBAHW,MAAM,GACJ,QAAQ,OAAO,CAAC,CAc5B;IAED;;;;;OAKG;IACH,gBAHW,MAAM,GACJ,QAAQ,OAAO,CAAC,CAc5B;IAED;;;;;;OAMG;IACH,mBAJW,MAAM,WACN,MAAM,GACJ,QAAQ,OAAO,CAAC,CAkC5B;IAED;;;;;;OAMG;IACH,gBAJW,MAAM,YACN,MAAM,GACJ,QAAQ,MAAM,CAAC,CAqB3B;IAED;;;;;;;OAOG;IACH,gBALW,MAAM,OACN,MAAM,YACN,MAAM,GACJ,QAAQ,OAAO,CAAC,CAyC5B;IAED;;;;;;OAMG;IACH,iBAJW,MAAM,QACN,MAAM,GACJ,QAAQ,OAAO,CAAC,CAiC5B;IAED;;;;;OAKG;IACH,qBAHW,MAAM,GACJ,QAAQ,MAAM,CAAC,CAc3B;CACF;;;;;;;;;;;;QArda,MAAM;;;;UACN,MAAM;;cArBP,OAAO,SAAS,CAAC;iBACjB,OAAO,qBAAqB,EAAE,SAAS;;;;;;UAKtC,MAAM;UACN,MAAM;oBACN,MAAM;eACN,MAAM"}
|
24
dist/src/keychain/util.d.ts
vendored
Normal file
24
dist/src/keychain/util.d.ts
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* Gets a self-signed X.509 certificate for the key.
|
||||||
|
*
|
||||||
|
* The output Uint8Array contains the PKCS #7 message in DER.
|
||||||
|
*
|
||||||
|
* TODO: move to libp2p-crypto package
|
||||||
|
*
|
||||||
|
* @param {KeyInfo} key - The id and name of the key
|
||||||
|
* @param {RsaPrivateKey} privateKey - The naked key
|
||||||
|
* @returns {Uint8Array}
|
||||||
|
*/
|
||||||
|
export function certificateForKey(key: any, privateKey: any): Uint8Array;
|
||||||
|
/**
|
||||||
|
* Finds the first item in a collection that is matched in the
|
||||||
|
* `asyncCompare` function.
|
||||||
|
*
|
||||||
|
* `asyncCompare` is an async function that must
|
||||||
|
* resolve to either `true` or `false`.
|
||||||
|
*
|
||||||
|
* @param {Array} array
|
||||||
|
* @param {function(*)} asyncCompare - An async function that returns a boolean
|
||||||
|
*/
|
||||||
|
export function findAsync(array: any[], asyncCompare: (arg0: any) => any): Promise<any>;
|
||||||
|
//# sourceMappingURL=util.d.ts.map
|
1
dist/src/keychain/util.d.ts.map
vendored
Normal file
1
dist/src/keychain/util.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/keychain/util.js"],"names":[],"mappings":"AAOA;;;;;;;;;;GAUG;AACH,8DAFa,UAAU,CAqDtB;AAED;;;;;;;;;GASG;AACH,wFAKC"}
|
147
dist/src/metrics/index.d.ts
vendored
Normal file
147
dist/src/metrics/index.d.ts
vendored
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
export = Metrics;
|
||||||
|
/**
|
||||||
|
* @typedef {import('peer-id')} PeerId
|
||||||
|
* @typedef {import('libp2p-interfaces/src/transport/types').MultiaddrConnection} MultiaddrConnection
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef MetricsProperties
|
||||||
|
* @property {import('../connection-manager')} connectionManager
|
||||||
|
*
|
||||||
|
* @typedef MetricsOptions
|
||||||
|
* @property {number} [computeThrottleMaxQueueSize = defaultOptions.computeThrottleMaxQueueSize]
|
||||||
|
* @property {number} [computeThrottleTimeout = defaultOptions.computeThrottleTimeout]
|
||||||
|
* @property {number[]} [movingAverageIntervals = defaultOptions.movingAverageIntervals]
|
||||||
|
* @property {number} [maxOldPeersRetention = defaultOptions.maxOldPeersRetention]
|
||||||
|
*/
|
||||||
|
declare class Metrics {
|
||||||
|
/**
|
||||||
|
* Merges `other` into `target`. `target` will be modified
|
||||||
|
* and returned.
|
||||||
|
*
|
||||||
|
* @param {Stats} target
|
||||||
|
* @param {Stats} other
|
||||||
|
* @returns {Stats}
|
||||||
|
*/
|
||||||
|
static mergeStats(target: Stats, other: Stats): Stats;
|
||||||
|
/**
|
||||||
|
* @class
|
||||||
|
* @param {MetricsProperties & MetricsOptions} options
|
||||||
|
*/
|
||||||
|
constructor(options: MetricsProperties & MetricsOptions);
|
||||||
|
_options: any;
|
||||||
|
_globalStats: Stats;
|
||||||
|
_peerStats: Map<any, any>;
|
||||||
|
_protocolStats: Map<any, any>;
|
||||||
|
_oldPeers: any;
|
||||||
|
_running: boolean;
|
||||||
|
/**
|
||||||
|
* Takes the metadata for a message and tracks it in the
|
||||||
|
* appropriate categories. If the protocol is present, protocol
|
||||||
|
* stats will also be tracked.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {object} params
|
||||||
|
* @param {PeerId} params.remotePeer - Remote peer
|
||||||
|
* @param {string} [params.protocol] - Protocol string the stream is running
|
||||||
|
* @param {string} params.direction - One of ['in','out']
|
||||||
|
* @param {number} params.dataLength - Size of the message
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
private _onMessage;
|
||||||
|
_connectionManager: import("../connection-manager");
|
||||||
|
/**
|
||||||
|
* Must be called for stats to saved. Any data pushed for tracking
|
||||||
|
* will be ignored.
|
||||||
|
*/
|
||||||
|
start(): void;
|
||||||
|
/**
|
||||||
|
* Stops all averages timers and prevents new data from being tracked.
|
||||||
|
* Once `stop` is called, `start` must be called to resume stats tracking.
|
||||||
|
*/
|
||||||
|
stop(): void;
|
||||||
|
/**
|
||||||
|
* Gets the global `Stats` object
|
||||||
|
*
|
||||||
|
* @returns {Stats}
|
||||||
|
*/
|
||||||
|
get global(): Stats;
|
||||||
|
/**
|
||||||
|
* Returns a list of `PeerId` strings currently being tracked
|
||||||
|
*
|
||||||
|
* @returns {string[]}
|
||||||
|
*/
|
||||||
|
get peers(): string[];
|
||||||
|
/**
|
||||||
|
* Returns the `Stats` object for the given `PeerId` whether it
|
||||||
|
* is a live peer, or in the disconnected peer LRU cache.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {Stats}
|
||||||
|
*/
|
||||||
|
forPeer(peerId: PeerId): Stats;
|
||||||
|
/**
|
||||||
|
* Returns a list of all protocol strings currently being tracked.
|
||||||
|
*
|
||||||
|
* @returns {string[]}
|
||||||
|
*/
|
||||||
|
get protocols(): string[];
|
||||||
|
/**
|
||||||
|
* Returns the `Stats` object for the given `protocol`.
|
||||||
|
*
|
||||||
|
* @param {string} protocol
|
||||||
|
* @returns {Stats}
|
||||||
|
*/
|
||||||
|
forProtocol(protocol: string): Stats;
|
||||||
|
/**
|
||||||
|
* Should be called when all connections to a given peer
|
||||||
|
* have closed. The `Stats` collection for the peer will
|
||||||
|
* be stopped and moved to an LRU for temporary retention.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
*/
|
||||||
|
onPeerDisconnected(peerId: PeerId): void;
|
||||||
|
/**
|
||||||
|
* Replaces the `PeerId` string with the given `peerId`.
|
||||||
|
* If stats are already being tracked for the given `peerId`, the
|
||||||
|
* placeholder stats will be merged with the existing stats.
|
||||||
|
*
|
||||||
|
* @param {PeerId} placeholder - A peerId string
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
updatePlaceholder(placeholder: PeerId, peerId: PeerId): void;
|
||||||
|
/**
|
||||||
|
* Tracks data running through a given Duplex Iterable `stream`. If
|
||||||
|
* the `peerId` is not provided, a placeholder string will be created and
|
||||||
|
* returned. This allows lazy tracking of a peer when the peer is not yet known.
|
||||||
|
* When the `PeerId` is known, `Metrics.updatePlaceholder` should be called
|
||||||
|
* with the placeholder string returned from here, and the known `PeerId`.
|
||||||
|
*
|
||||||
|
* @param {Object} options
|
||||||
|
* @param {MultiaddrConnection} options.stream - A duplex iterable stream
|
||||||
|
* @param {PeerId} [options.remotePeer] - The id of the remote peer that's connected
|
||||||
|
* @param {string} [options.protocol] - The protocol the stream is running
|
||||||
|
* @returns {MultiaddrConnection} The peerId string or placeholder string
|
||||||
|
*/
|
||||||
|
trackStream({ stream, remotePeer, protocol }: {
|
||||||
|
stream: MultiaddrConnection;
|
||||||
|
remotePeer?: import("peer-id") | undefined;
|
||||||
|
protocol?: string | undefined;
|
||||||
|
}): MultiaddrConnection;
|
||||||
|
}
|
||||||
|
declare namespace Metrics {
|
||||||
|
export { PeerId, MultiaddrConnection, MetricsProperties, MetricsOptions };
|
||||||
|
}
|
||||||
|
import Stats = require("./stats");
|
||||||
|
type PeerId = import('peer-id');
|
||||||
|
type MultiaddrConnection = import('libp2p-interfaces/src/transport/types').MultiaddrConnection;
|
||||||
|
type MetricsProperties = {
|
||||||
|
connectionManager: import('../connection-manager');
|
||||||
|
};
|
||||||
|
type MetricsOptions = {
|
||||||
|
computeThrottleMaxQueueSize?: number | undefined;
|
||||||
|
computeThrottleTimeout?: number | undefined;
|
||||||
|
movingAverageIntervals?: number[] | undefined;
|
||||||
|
maxOldPeersRetention?: number | undefined;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/metrics/index.d.ts.map
vendored
Normal file
1
dist/src/metrics/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metrics/index.js"],"names":[],"mappings":";AAoBA;;;GAGG;AAEH;;;;;;;;;GASG;AAEH;IAwNE;;;;;;;OAOG;IACH,0BAJW,KAAK,SACL,KAAK,GACH,KAAK,CAWjB;IAxOD;;;OAGG;IACH,qBAFW,iBAAiB,GAAG,cAAc,EAc5C;IAXC,cAAqD;IACrD,oBAA6D;IAC7D,0BAA2B;IAC3B,8BAA+B;IAC/B,eAA+D;IAC/D,kBAAqB;IAiGvB;;;;;;;;;;;;OAYG;IACH,mBAwBC;IApIC,oDAAmD;IAMrD;;;OAGG;IACH,cAEC;IAED;;;OAGG;IACH,aASC;IAED;;;;OAIG;IACH,oBAEC;IAED;;;;OAIG;IACH,sBAEC;IAED;;;;;;OAMG;IACH,gBAHW,MAAM,GACJ,KAAK,CAKjB;IAED;;;;OAIG;IACH,0BAEC;IAED;;;;;OAKG;IACH,sBAHW,MAAM,GACJ,KAAK,CAIjB;IAED;;;;;;OAMG;IACH,2BAFW,MAAM,QAUhB;IAyCD;;;;;;;;OAQG;IACH,+BAJW,MAAM,UACN,MAAM,GACJ,IAAI,CAoBhB;IAED;;;;;;;;;;;;OAYG;IACH;QALwC,MAAM,EAAnC,mBAAmB;QACF,UAAU;QACV,QAAQ;QACvB,mBAAmB,CA2B/B;CAoBF;;;;;cAzPY,OAAO,SAAS,CAAC;2BACjB,OAAO,uCAAuC,EAAE,mBAAmB;;uBAKlE,OAAO,uBAAuB,CAAC"}
|
3
dist/src/metrics/old-peers.d.ts
vendored
Normal file
3
dist/src/metrics/old-peers.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
declare function _exports(maxSize: number): any;
|
||||||
|
export = _exports;
|
||||||
|
//# sourceMappingURL=old-peers.d.ts.map
|
1
dist/src/metrics/old-peers.d.ts.map
vendored
Normal file
1
dist/src/metrics/old-peers.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"old-peers.d.ts","sourceRoot":"","sources":["../../../src/metrics/old-peers.js"],"names":[],"mappings":"AAUiB,mCAHN,MAAM,GACJ,GAAG,CAOf"}
|
132
dist/src/metrics/stats.d.ts
vendored
Normal file
132
dist/src/metrics/stats.d.ts
vendored
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
export = Stats;
|
||||||
|
declare class Stats extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* A queue based manager for stat processing
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {string[]} initialCounters
|
||||||
|
* @param {any} options
|
||||||
|
*/
|
||||||
|
constructor(initialCounters: string[], options: any);
|
||||||
|
_options: any;
|
||||||
|
_queue: any[];
|
||||||
|
/** @type {{ dataReceived: Big, dataSent: Big }} */
|
||||||
|
_stats: {
|
||||||
|
dataReceived: Big;
|
||||||
|
dataSent: Big;
|
||||||
|
};
|
||||||
|
_frequencyLastTime: number;
|
||||||
|
_frequencyAccumulators: {};
|
||||||
|
/** @type {{ dataReceived: MovingAverage[], dataSent: MovingAverage[] }} */
|
||||||
|
_movingAverages: {
|
||||||
|
dataReceived: (typeof MovingAverage)[];
|
||||||
|
dataSent: (typeof MovingAverage)[];
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* If there are items in the queue, they will will be processed and
|
||||||
|
* the frequency for all items will be updated based on the Timestamp
|
||||||
|
* of the last item in the queue. The `update` event will also be emitted
|
||||||
|
* with the latest stats.
|
||||||
|
*
|
||||||
|
* If there are no items in the queue, no action is taken.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
private _update;
|
||||||
|
/**
|
||||||
|
* Initializes the internal timer if there are items in the queue. This
|
||||||
|
* should only need to be called if `Stats.stop` was previously called, as
|
||||||
|
* `Stats.push` will also start the processing.
|
||||||
|
*
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
start(): void;
|
||||||
|
/**
|
||||||
|
* Stops processing and computing of stats by clearing the internal
|
||||||
|
* timer.
|
||||||
|
*
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
stop(): void;
|
||||||
|
_timeout: any;
|
||||||
|
/**
|
||||||
|
* Returns a clone of the current stats.
|
||||||
|
*/
|
||||||
|
get snapshot(): {
|
||||||
|
dataReceived: Big;
|
||||||
|
dataSent: Big;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Returns a clone of the internal movingAverages
|
||||||
|
*/
|
||||||
|
get movingAverages(): {
|
||||||
|
dataReceived: (typeof MovingAverage)[];
|
||||||
|
dataSent: (typeof MovingAverage)[];
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Returns a plain JSON object of the stats
|
||||||
|
*
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
toJSON(): any;
|
||||||
|
/**
|
||||||
|
* Pushes the given operation data to the queue, along with the
|
||||||
|
* current Timestamp, then resets the update timer.
|
||||||
|
*
|
||||||
|
* @param {string} counter
|
||||||
|
* @param {number} inc
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
push(counter: string, inc: number): void;
|
||||||
|
/**
|
||||||
|
* Resets the timeout for triggering updates.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
private _resetComputeTimeout;
|
||||||
|
/**
|
||||||
|
* Calculates and returns the timeout for the next update based on
|
||||||
|
* the urgency of the update.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @returns {number}
|
||||||
|
*/
|
||||||
|
private _nextTimeout;
|
||||||
|
/**
|
||||||
|
* For each key in the stats, the frequency and moving averages
|
||||||
|
* will be updated via Stats._updateFrequencyFor based on the time
|
||||||
|
* difference between calls to this method.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Timestamp} latestTime
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
private _updateFrequency;
|
||||||
|
/**
|
||||||
|
* Updates the `movingAverages` for the given `key` and also
|
||||||
|
* resets the `frequencyAccumulator` for the `key`.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {string} key
|
||||||
|
* @param {number} timeDiffMS - Time in milliseconds
|
||||||
|
* @param {Timestamp} latestTime - Time in ticks
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
private _updateFrequencyFor;
|
||||||
|
/**
|
||||||
|
* For the given operation, `op`, the stats and `frequencyAccumulator`
|
||||||
|
* will be updated or initialized if they don't already exist.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {{string, number}[]} op
|
||||||
|
* @throws {InvalidNumber}
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
private _applyOp;
|
||||||
|
}
|
||||||
|
import { EventEmitter } from "events";
|
||||||
|
import { BigNumber as Big } from "bignumber.js";
|
||||||
|
import MovingAverage = require("moving-average");
|
||||||
|
//# sourceMappingURL=stats.d.ts.map
|
1
dist/src/metrics/stats.d.ts.map
vendored
Normal file
1
dist/src/metrics/stats.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/metrics/stats.js"],"names":[],"mappings":";AAQA;IACE;;;;;;OAMG;IACH,6BAHW,MAAM,EAAE,WACR,GAAG,EAkCb;IA7BC,cAAuB;IACvB,cAAgB;IAEhB,mDAAmD;IACnD;sBAD2B,GAAG;kBAAY,GAAG;MAI5C;IAED,2BAAoC;IACpC,2BAAgC;IAEhC,2EAA2E;IAC3E;sBAD2B,wBAAe;kBAAY,wBAAe;MAC5C;IAwH3B;;;;;;;;;;OAUG;IACH,gBAaC;IA9HD;;;;;;OAMG;IACH,SAFa,IAAI,CAMhB;IAED;;;;;OAKG;IACH,QAFa,IAAI,CAOhB;IAFG,cAAoB;IAIxB;;OAEG;IACH;sBAzD6B,GAAG;kBAAY,GAAG;MA2D9C;IAED;;OAEG;IACH;sBAvD6B,wBAAe;kBAAY,wBAAe;MAyDtE;IAED;;;;OAIG;IACH,cAkBC;IAED;;;;;;;OAOG;IACH,cAJW,MAAM,OACN,MAAM,GACJ,IAAI,CAKhB;IAED;;;;;OAKG;IACH,6BAEC;IAED;;;;;;OAMG;IACH,qBAKC;IA4BD;;;;;;;;OAQG;IACH,yBAQC;IAED;;;;;;;;;OASG;IACH,4BAsBC;IAED;;;;;;;;OAQG;IACH,iBAqBC;CACF"}
|
121
dist/src/nat-manager.d.ts
vendored
Normal file
121
dist/src/nat-manager.d.ts
vendored
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
export = NatManager;
|
||||||
|
declare class NatManager {
|
||||||
|
/**
|
||||||
|
* @class
|
||||||
|
* @param {NatManagerProperties & NatManagerOptions} options
|
||||||
|
*/
|
||||||
|
constructor({ peerId, addressManager, transportManager, ...options }: NatManagerProperties & NatManagerOptions);
|
||||||
|
_peerId: import("peer-id");
|
||||||
|
_addressManager: import("./address-manager");
|
||||||
|
_transportManager: import("./transport-manager");
|
||||||
|
_enabled: boolean;
|
||||||
|
_externalIp: string | undefined;
|
||||||
|
_options: {
|
||||||
|
description: string;
|
||||||
|
ttl: number;
|
||||||
|
autoUpdate: true;
|
||||||
|
gateway: string | undefined;
|
||||||
|
enablePMP: boolean;
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* Starts the NAT manager
|
||||||
|
*/
|
||||||
|
start(): void;
|
||||||
|
_start(): Promise<void>;
|
||||||
|
_getClient(): {
|
||||||
|
/**
|
||||||
|
* @param {...any} args
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
map: (...args: any[]) => Promise<void>;
|
||||||
|
/**
|
||||||
|
* @param {...any} args
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
destroy: (...args: any[]) => Promise<void>;
|
||||||
|
/**
|
||||||
|
* @param {...any} args
|
||||||
|
* @returns {Promise<string>}
|
||||||
|
*/
|
||||||
|
externalIp: (...args: any[]) => Promise<string>;
|
||||||
|
};
|
||||||
|
_client: {
|
||||||
|
/**
|
||||||
|
* @param {...any} args
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
map: (...args: any[]) => Promise<void>;
|
||||||
|
/**
|
||||||
|
* @param {...any} args
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
destroy: (...args: any[]) => Promise<void>;
|
||||||
|
/**
|
||||||
|
* @param {...any} args
|
||||||
|
* @returns {Promise<string>}
|
||||||
|
*/
|
||||||
|
externalIp: (...args: any[]) => Promise<string>;
|
||||||
|
} | null | undefined;
|
||||||
|
/**
|
||||||
|
* Stops the NAT manager
|
||||||
|
*
|
||||||
|
* @async
|
||||||
|
*/
|
||||||
|
stop(): Promise<void>;
|
||||||
|
}
|
||||||
|
declare namespace NatManager {
|
||||||
|
export { PeerId, TransportManager, AddressManager, NatManagerProperties, NatManagerOptions };
|
||||||
|
}
|
||||||
|
type NatManagerProperties = {
|
||||||
|
/**
|
||||||
|
* - The peer ID of the current node
|
||||||
|
*/
|
||||||
|
peerId: PeerId;
|
||||||
|
/**
|
||||||
|
* - A transport manager
|
||||||
|
*/
|
||||||
|
transportManager: TransportManager;
|
||||||
|
/**
|
||||||
|
* - An address manager
|
||||||
|
*/
|
||||||
|
addressManager: AddressManager;
|
||||||
|
};
|
||||||
|
type NatManagerOptions = {
|
||||||
|
/**
|
||||||
|
* - Whether to enable the NAT manager
|
||||||
|
*/
|
||||||
|
enabled: boolean;
|
||||||
|
/**
|
||||||
|
* - Pass a value to use instead of auto-detection
|
||||||
|
*/
|
||||||
|
externalIp?: string | undefined;
|
||||||
|
/**
|
||||||
|
* - A string value to use for the port mapping description on the gateway
|
||||||
|
*/
|
||||||
|
description?: string | undefined;
|
||||||
|
/**
|
||||||
|
* - How long UPnP port mappings should last for in seconds (minimum 1200)
|
||||||
|
*/
|
||||||
|
ttl?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - Whether to automatically refresh UPnP port mappings when their TTL is reached
|
||||||
|
*/
|
||||||
|
keepAlive?: boolean | undefined;
|
||||||
|
/**
|
||||||
|
* - Pass a value to use instead of auto-detection
|
||||||
|
*/
|
||||||
|
gateway?: string | undefined;
|
||||||
|
/**
|
||||||
|
* - PMP options
|
||||||
|
*/
|
||||||
|
pmp?: {
|
||||||
|
/**
|
||||||
|
* - Whether to enable PMP as well as UPnP
|
||||||
|
*/
|
||||||
|
enabled?: boolean | undefined;
|
||||||
|
} | undefined;
|
||||||
|
};
|
||||||
|
type PeerId = import('peer-id');
|
||||||
|
type TransportManager = import('./transport-manager');
|
||||||
|
type AddressManager = import('./address-manager');
|
||||||
|
//# sourceMappingURL=nat-manager.d.ts.map
|
1
dist/src/nat-manager.d.ts.map
vendored
Normal file
1
dist/src/nat-manager.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"nat-manager.d.ts","sourceRoot":"","sources":["../../src/nat-manager.js"],"names":[],"mappings":";AAkDA;IACE;;;OAGG;IACH,sEAFW,oBAAoB,GAAG,iBAAiB,EAoBlD;IAjBC,2BAAqB;IACrB,6CAAqC;IACrC,iDAAyC;IAEzC,kBAA+B;IAC/B,gCAAqC;IACrC;;;;;;MAMC;IAOH;;OAEG;IACH,cAUC;IAED,wBA+CC;IAED;QAgBI;;;WAGG;uBAFY,GAAG,OACL,QAAQ,IAAI,CAAC;QAI1B;;;WAGG;2BAFY,GAAG,OACL,QAAQ,IAAI,CAAC;QAI1B;;;WAGG;8BAFY,GAAG,OACL,QAAQ,MAAM,CAAC;MAM/B;IArBC;QACE;;;WAGG;uBAFY,GAAG,OACL,QAAQ,IAAI,CAAC;QAI1B;;;WAGG;2BAFY,GAAG,OACL,QAAQ,IAAI,CAAC;QAI1B;;;WAGG;8BAFY,GAAG,OACL,QAAQ,MAAM,CAAC;yBAG7B;IAKH;;;;OAIG;IACH,sBAWC;CACF;;;;;;;;YAnKa,MAAM;;;;sBACN,gBAAgB;;;;oBAChB,cAAc;;;;;;aAGd,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAZR,OAAO,SAAS,CAAC;wBACjB,OAAO,qBAAqB,CAAC;sBAC7B,OAAO,mBAAmB,CAAC"}
|
96
dist/src/peer-routing.d.ts
vendored
Normal file
96
dist/src/peer-routing.d.ts
vendored
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
export = PeerRouting;
|
||||||
|
/**
|
||||||
|
* @typedef {import('peer-id')} PeerId
|
||||||
|
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||||
|
* @typedef {import('libp2p-interfaces/src/peer-routing/types').PeerRouting} PeerRoutingModule
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} RefreshManagerOptions
|
||||||
|
* @property {boolean} [enabled = true] - Whether to enable the Refresh manager
|
||||||
|
* @property {number} [bootDelay = 6e5] - Boot delay to start the Refresh Manager (in ms)
|
||||||
|
* @property {number} [interval = 10e3] - Interval between each Refresh Manager run (in ms)
|
||||||
|
*
|
||||||
|
* @typedef {Object} PeerRoutingOptions
|
||||||
|
* @property {RefreshManagerOptions} [refreshManager]
|
||||||
|
*/
|
||||||
|
declare class PeerRouting {
|
||||||
|
/**
|
||||||
|
* @class
|
||||||
|
* @param {import('./')} libp2p
|
||||||
|
*/
|
||||||
|
constructor(libp2p: import('./'));
|
||||||
|
_peerId: import("peer-id");
|
||||||
|
_peerStore: import("./peer-store");
|
||||||
|
/** @type {PeerRoutingModule[]} */
|
||||||
|
_routers: PeerRoutingModule[];
|
||||||
|
_refreshManagerOptions: {
|
||||||
|
enabled: boolean;
|
||||||
|
interval: number;
|
||||||
|
bootDelay: number;
|
||||||
|
} & RefreshManagerOptions;
|
||||||
|
/**
|
||||||
|
* Recurrent task to find closest peers and add their addresses to the Address Book.
|
||||||
|
*/
|
||||||
|
_findClosestPeersTask(): Promise<void>;
|
||||||
|
/**
|
||||||
|
* Start peer routing service.
|
||||||
|
*/
|
||||||
|
start(): void;
|
||||||
|
_timeoutId: any;
|
||||||
|
/**
|
||||||
|
* Stop peer routing service.
|
||||||
|
*/
|
||||||
|
stop(): void;
|
||||||
|
/**
|
||||||
|
* Iterates over all peer routers in parallel to find the given peer.
|
||||||
|
*
|
||||||
|
* @param {PeerId} id - The id of the peer to find
|
||||||
|
* @param {object} [options]
|
||||||
|
* @param {number} [options.timeout] - How long the query should run
|
||||||
|
* @returns {Promise<{ id: PeerId, multiaddrs: Multiaddr[] }>}
|
||||||
|
*/
|
||||||
|
findPeer(id: PeerId, options?: {
|
||||||
|
timeout?: number | undefined;
|
||||||
|
} | undefined): Promise<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>;
|
||||||
|
/**
|
||||||
|
* Attempt to find the closest peers on the network to the given key.
|
||||||
|
*
|
||||||
|
* @param {Uint8Array} key - A CID like key
|
||||||
|
* @param {Object} [options]
|
||||||
|
* @param {number} [options.timeout=30e3] - How long the query can take.
|
||||||
|
* @returns {AsyncIterable<{ id: PeerId, multiaddrs: Multiaddr[] }>}
|
||||||
|
*/
|
||||||
|
getClosestPeers(key: Uint8Array, options?: {
|
||||||
|
timeout?: number | undefined;
|
||||||
|
} | undefined): AsyncIterable<{
|
||||||
|
id: PeerId;
|
||||||
|
multiaddrs: Multiaddr[];
|
||||||
|
}>;
|
||||||
|
}
|
||||||
|
declare namespace PeerRouting {
|
||||||
|
export { PeerId, Multiaddr, PeerRoutingModule, RefreshManagerOptions, PeerRoutingOptions };
|
||||||
|
}
|
||||||
|
type PeerRoutingModule = import('libp2p-interfaces/src/peer-routing/types').PeerRouting;
|
||||||
|
type RefreshManagerOptions = {
|
||||||
|
/**
|
||||||
|
* - Whether to enable the Refresh manager
|
||||||
|
*/
|
||||||
|
enabled?: boolean | undefined;
|
||||||
|
/**
|
||||||
|
* - Boot delay to start the Refresh Manager (in ms)
|
||||||
|
*/
|
||||||
|
bootDelay?: number | undefined;
|
||||||
|
/**
|
||||||
|
* - Interval between each Refresh Manager run (in ms)
|
||||||
|
*/
|
||||||
|
interval?: number | undefined;
|
||||||
|
};
|
||||||
|
type PeerId = import('peer-id');
|
||||||
|
type Multiaddr = import('multiaddr').Multiaddr;
|
||||||
|
type PeerRoutingOptions = {
|
||||||
|
refreshManager?: RefreshManagerOptions | undefined;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=peer-routing.d.ts.map
|
1
dist/src/peer-routing.d.ts.map
vendored
Normal file
1
dist/src/peer-routing.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"peer-routing.d.ts","sourceRoot":"","sources":["../../src/peer-routing.js"],"names":[],"mappings":";AAwBA;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH;IACE;;;OAGG;IACH,oBAFW,OAAO,IAAI,CAAC,EAgBtB;IAbC,2BAA4B;IAC5B,mCAAkC;IAClC,kCAAkC;IAClC,UADW,iBAAiB,EAAE,CACmB;IAOjD;;;;8BAAwE;IAkB1E;;OAEG;IACH,uCAOC;IAvBD;;OAEG;IACH,cAQC;IAHC,gBAEC;IAeH;;OAEG;IACH,aAEC;IAED;;;;;;;OAOG;IACH,aALW,MAAM;;oBAGJ,QAAQ;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC,CAsB5D;IAED;;;;;;;OAOG;IACH,qBALW,UAAU;;oBAGR,cAAc;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC,CAelE;CACF;;;;yBAtHY,OAAO,0CAA0C,EAAE,WAAW;;;;;;;;;;;;;;;cAF9D,OAAO,SAAS,CAAC;iBACjB,OAAO,WAAW,EAAE,SAAS"}
|
121
dist/src/peer-store/address-book.d.ts
vendored
Normal file
121
dist/src/peer-store/address-book.d.ts
vendored
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
export = AddressBook;
|
||||||
|
/**
|
||||||
|
* @typedef {import('./')} PeerStore
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} Address
|
||||||
|
* @property {Multiaddr} multiaddr peer multiaddr.
|
||||||
|
* @property {boolean} isCertified obtained from a signed peer record.
|
||||||
|
*
|
||||||
|
* @typedef {Object} CertifiedRecord
|
||||||
|
* @property {Uint8Array} raw raw envelope.
|
||||||
|
* @property {number} seqNumber seq counter.
|
||||||
|
*
|
||||||
|
* @typedef {Object} Entry
|
||||||
|
* @property {Address[]} addresses peer Addresses.
|
||||||
|
* @property {CertifiedRecord} record certified peer record.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @extends {Book}
|
||||||
|
*/
|
||||||
|
declare class AddressBook extends Book {
|
||||||
|
/**
|
||||||
|
* The AddressBook is responsible for keeping the known multiaddrs of a peer.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {PeerStore} peerStore
|
||||||
|
*/
|
||||||
|
constructor(peerStore: PeerStore);
|
||||||
|
/**
|
||||||
|
* ConsumePeerRecord adds addresses from a signed peer record contained in a record envelope.
|
||||||
|
* This will return a boolean that indicates if the record was successfully processed and added
|
||||||
|
* into the AddressBook.
|
||||||
|
*
|
||||||
|
* @param {Envelope} envelope
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
consumePeerRecord(envelope: Envelope): boolean;
|
||||||
|
/**
|
||||||
|
* Get the raw Envelope for a peer. Returns
|
||||||
|
* undefined if no Envelope is found.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {Uint8Array|undefined}
|
||||||
|
*/
|
||||||
|
getRawEnvelope(peerId: PeerId): Uint8Array | undefined;
|
||||||
|
/**
|
||||||
|
* Get an Envelope containing a PeerRecord for the given peer.
|
||||||
|
* Returns undefined if no record exists.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {Promise<Envelope|void>|undefined}
|
||||||
|
*/
|
||||||
|
getPeerRecord(peerId: PeerId): Promise<Envelope | void> | undefined;
|
||||||
|
/**
|
||||||
|
* Add known addresses of a provided peer.
|
||||||
|
* If the peer is not known, it is set with the given addresses.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {Multiaddr[]} multiaddrs
|
||||||
|
* @returns {AddressBook}
|
||||||
|
*/
|
||||||
|
add(peerId: PeerId, multiaddrs: Multiaddr[]): AddressBook;
|
||||||
|
/**
|
||||||
|
* Transforms received multiaddrs into Address.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Multiaddr[]} multiaddrs
|
||||||
|
* @param {boolean} [isCertified]
|
||||||
|
* @returns {Address[]}
|
||||||
|
*/
|
||||||
|
private _toAddresses;
|
||||||
|
/**
|
||||||
|
* Get the known multiaddrs for a given peer. All returned multiaddrs
|
||||||
|
* will include the encapsulated `PeerId` of the peer.
|
||||||
|
* Returns `undefined` if there are no known multiaddrs for the given peer.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {(addresses: Address[]) => Address[]} [addressSorter]
|
||||||
|
* @returns {Multiaddr[]|undefined}
|
||||||
|
*/
|
||||||
|
getMultiaddrsForPeer(peerId: PeerId, addressSorter?: ((addresses: Address[]) => Address[]) | undefined): Multiaddr[] | undefined;
|
||||||
|
}
|
||||||
|
declare namespace AddressBook {
|
||||||
|
export { PeerStore, Address, CertifiedRecord, Entry };
|
||||||
|
}
|
||||||
|
import Book = require("./book");
|
||||||
|
import Envelope = require("../record/envelope");
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
import { Multiaddr } from "multiaddr";
|
||||||
|
type Address = {
|
||||||
|
/**
|
||||||
|
* peer multiaddr.
|
||||||
|
*/
|
||||||
|
multiaddr: Multiaddr;
|
||||||
|
/**
|
||||||
|
* obtained from a signed peer record.
|
||||||
|
*/
|
||||||
|
isCertified: boolean;
|
||||||
|
};
|
||||||
|
type PeerStore = import('./');
|
||||||
|
type CertifiedRecord = {
|
||||||
|
/**
|
||||||
|
* raw envelope.
|
||||||
|
*/
|
||||||
|
raw: Uint8Array;
|
||||||
|
/**
|
||||||
|
* seq counter.
|
||||||
|
*/
|
||||||
|
seqNumber: number;
|
||||||
|
};
|
||||||
|
type Entry = {
|
||||||
|
/**
|
||||||
|
* peer Addresses.
|
||||||
|
*/
|
||||||
|
addresses: Address[];
|
||||||
|
/**
|
||||||
|
* certified peer record.
|
||||||
|
*/
|
||||||
|
record: CertifiedRecord;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=address-book.d.ts.map
|
1
dist/src/peer-store/address-book.d.ts.map
vendored
Normal file
1
dist/src/peer-store/address-book.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"address-book.d.ts","sourceRoot":"","sources":["../../../src/peer-store/address-book.js"],"names":[],"mappings":";AAmBA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH;IACE;;;;;OAKG;IACH,uBAFW,SAAS,EA0BnB;IAED;;;;;;;OAOG;IACH,4BAHW,QAAQ,GACN,OAAO,CA8CnB;IAED;;;;;;OAMG;IACH,uBAHW,MAAM,GACJ,UAAU,GAAC,SAAS,CAUhC;IAED;;;;;;OAMG;IACH,sBAHW,MAAM,GACJ,QAAQ,QAAQ,GAAC,IAAI,CAAC,GAAC,SAAS,CAU5C;IAuDD;;;;;;;OAOG;IACH,YAJW,MAAM,cACN,SAAS,EAAE,GACT,WAAW,CA+CvB;IAmBD;;;;;;;OAOG;IACH,qBAyBC;IAED;;;;;;;;OAQG;IACH,6BAJW,MAAM,+BACM,OAAO,EAAE,KAAK,OAAO,EAAE,gBACjC,SAAS,EAAE,GAAC,SAAS,CAsBjC;CACF;;;;;;;;;;;;eAtUa,SAAS;;;;iBACT,OAAO;;iBANR,OAAO,IAAI,CAAC;;;;;SASX,UAAU;;;;eACV,MAAM;;;;;;eAGN,OAAO,EAAE;;;;YACT,eAAe"}
|
81
dist/src/peer-store/book.d.ts
vendored
Normal file
81
dist/src/peer-store/book.d.ts
vendored
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
export = Book;
|
||||||
|
/**
|
||||||
|
* @typedef {import('./')} PeerStore
|
||||||
|
*/
|
||||||
|
declare class Book {
|
||||||
|
/**
|
||||||
|
* The Book is the skeleton for the PeerStore books.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {Object} properties
|
||||||
|
* @param {PeerStore} properties.peerStore - PeerStore instance.
|
||||||
|
* @param {string} properties.eventName - Name of the event to emit by the PeerStore.
|
||||||
|
* @param {string} properties.eventProperty - Name of the property to emit by the PeerStore.
|
||||||
|
* @param {(data: any) => any[]} [properties.eventTransformer] - Transformer function of the provided data for being emitted.
|
||||||
|
*/
|
||||||
|
constructor({ peerStore, eventName, eventProperty, eventTransformer }: {
|
||||||
|
peerStore: PeerStore;
|
||||||
|
eventName: string;
|
||||||
|
eventProperty: string;
|
||||||
|
eventTransformer?: ((data: any) => any[]) | undefined;
|
||||||
|
});
|
||||||
|
_ps: import("./");
|
||||||
|
eventName: string;
|
||||||
|
eventProperty: string;
|
||||||
|
eventTransformer: (data: any) => any[];
|
||||||
|
/**
|
||||||
|
* Map known peers to their data.
|
||||||
|
*
|
||||||
|
* @type {Map<string, any[]|any>}
|
||||||
|
*/
|
||||||
|
data: Map<string, any[] | any>;
|
||||||
|
/**
|
||||||
|
* Set known data of a provided peer.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {any[]|any} data
|
||||||
|
*/
|
||||||
|
set(peerId: PeerId, data: any[] | any): void;
|
||||||
|
/**
|
||||||
|
* Set data into the datastructure, persistence and emit it using the provided transformers.
|
||||||
|
*
|
||||||
|
* @protected
|
||||||
|
* @param {PeerId} peerId - peerId of the data to store
|
||||||
|
* @param {any} data - data to store.
|
||||||
|
* @param {Object} [options] - storing options.
|
||||||
|
* @param {boolean} [options.emit = true] - emit the provided data.
|
||||||
|
* @returns {void}
|
||||||
|
*/
|
||||||
|
protected _setData(peerId: PeerId, data: any, { emit }?: {
|
||||||
|
emit?: boolean | undefined;
|
||||||
|
} | undefined): void;
|
||||||
|
/**
|
||||||
|
* Emit data.
|
||||||
|
*
|
||||||
|
* @protected
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {any} [data]
|
||||||
|
*/
|
||||||
|
protected _emit(peerId: PeerId, data?: any): void;
|
||||||
|
/**
|
||||||
|
* Get the known data of a provided peer.
|
||||||
|
* Returns `undefined` if there is no available data for the given peer.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {any[]|any|undefined}
|
||||||
|
*/
|
||||||
|
get(peerId: PeerId): any[] | any | undefined;
|
||||||
|
/**
|
||||||
|
* Deletes the provided peer from the book.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
delete(peerId: PeerId): boolean;
|
||||||
|
}
|
||||||
|
declare namespace Book {
|
||||||
|
export { PeerStore };
|
||||||
|
}
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
type PeerStore = import('./');
|
||||||
|
//# sourceMappingURL=book.d.ts.map
|
1
dist/src/peer-store/book.d.ts.map
vendored
Normal file
1
dist/src/peer-store/book.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"book.d.ts","sourceRoot":"","sources":["../../../src/peer-store/book.js"],"names":[],"mappings":";AAcA;;GAEG;AAEH;IACE;;;;;;;;;OASG;IACH;QALiC,SAAS,EAA/B,SAAS;QACU,SAAS,EAA5B,MAAM;QACa,aAAa,EAAhC,MAAM;QAC4B,gBAAgB,WAA3C,GAAG,KAAK,GAAG,EAAE;OAc9B;IAXC,kBAAoB;IACpB,kBAA0B;IAC1B,sBAAkC;IAClC,yBANgB,GAAG,KAAK,GAAG,EAAE,CAMW;IAExC;;;;OAIG;IACH,MAFU,IAAI,MAAM,EAAE,GAAG,EAAE,GAAC,GAAG,CAAC,CAEX;IAGvB;;;;;OAKG;IACH,YAHW,MAAM,QACN,GAAG,EAAE,GAAC,GAAG,QAInB;IAED;;;;;;;;;OASG;IACH,2BANW,MAAM,QACN,GAAG;;oBAGD,IAAI,CAUhB;IAED;;;;;;OAMG;IACH,wBAHW,MAAM,SACN,GAAG,QAOb;IAED;;;;;;OAMG;IACH,YAHW,MAAM,GACJ,GAAG,EAAE,GAAC,GAAG,GAAC,SAAS,CAW/B;IAED;;;;;OAKG;IACH,eAHW,MAAM,GACJ,OAAO,CAcnB;CACF;;;;;iBA7GY,OAAO,IAAI,CAAC"}
|
111
dist/src/peer-store/index.d.ts
vendored
Normal file
111
dist/src/peer-store/index.d.ts
vendored
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
export = PeerStore;
|
||||||
|
/**
|
||||||
|
* @typedef {import('./address-book').Address} Address
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @extends {EventEmitter}
|
||||||
|
*
|
||||||
|
* @fires PeerStore#peer Emitted when a new peer is added.
|
||||||
|
* @fires PeerStore#change:protocols Emitted when a known peer supports a different set of protocols.
|
||||||
|
* @fires PeerStore#change:multiaddrs Emitted when a known peer has a different set of multiaddrs.
|
||||||
|
* @fires PeerStore#change:pubkey Emitted emitted when a peer's public key is known.
|
||||||
|
* @fires PeerStore#change:metadata Emitted when the known metadata of a peer change.
|
||||||
|
*/
|
||||||
|
declare class PeerStore extends EventEmitter {
|
||||||
|
/**
|
||||||
|
* Peer object
|
||||||
|
*
|
||||||
|
* @typedef {Object} Peer
|
||||||
|
* @property {PeerId} id peer's peer-id instance.
|
||||||
|
* @property {Address[]} addresses peer's addresses containing its multiaddrs and metadata.
|
||||||
|
* @property {string[]} protocols peer's supported protocols.
|
||||||
|
* @property {Map<string, Uint8Array>|undefined} metadata peer's metadata map.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Responsible for managing known peers, as well as their addresses, protocols and metadata.
|
||||||
|
*
|
||||||
|
* @param {object} options
|
||||||
|
* @param {PeerId} options.peerId
|
||||||
|
* @class
|
||||||
|
*/
|
||||||
|
constructor({ peerId }: {
|
||||||
|
peerId: PeerId;
|
||||||
|
});
|
||||||
|
_peerId: PeerId;
|
||||||
|
/**
|
||||||
|
* AddressBook containing a map of peerIdStr to Address.
|
||||||
|
*/
|
||||||
|
addressBook: AddressBook;
|
||||||
|
/**
|
||||||
|
* KeyBook containing a map of peerIdStr to their PeerId with public keys.
|
||||||
|
*/
|
||||||
|
keyBook: KeyBook;
|
||||||
|
/**
|
||||||
|
* MetadataBook containing a map of peerIdStr to their metadata Map.
|
||||||
|
*/
|
||||||
|
metadataBook: MetadataBook;
|
||||||
|
/**
|
||||||
|
* ProtoBook containing a map of peerIdStr to supported protocols.
|
||||||
|
*/
|
||||||
|
protoBook: ProtoBook;
|
||||||
|
/**
|
||||||
|
* Start the PeerStore.
|
||||||
|
*/
|
||||||
|
start(): void;
|
||||||
|
/**
|
||||||
|
* Stop the PeerStore.
|
||||||
|
*/
|
||||||
|
stop(): void;
|
||||||
|
/**
|
||||||
|
* Get all the stored information of every peer known.
|
||||||
|
*
|
||||||
|
* @returns {Map<string, Peer>}
|
||||||
|
*/
|
||||||
|
get peers(): Map<string, Peer>;
|
||||||
|
/**
|
||||||
|
* Delete the information of the given peer in every book.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {boolean} true if found and removed
|
||||||
|
*/
|
||||||
|
delete(peerId: PeerId): boolean;
|
||||||
|
/**
|
||||||
|
* Get the stored information of a given peer.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @returns {Peer|undefined}
|
||||||
|
*/
|
||||||
|
get(peerId: PeerId): Peer | undefined;
|
||||||
|
}
|
||||||
|
declare namespace PeerStore {
|
||||||
|
export { Peer, Address };
|
||||||
|
}
|
||||||
|
import { EventEmitter } from "events";
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
import AddressBook = require("./address-book");
|
||||||
|
import KeyBook = require("./key-book");
|
||||||
|
import MetadataBook = require("./metadata-book");
|
||||||
|
import ProtoBook = require("./proto-book");
|
||||||
|
/**
|
||||||
|
* Peer object
|
||||||
|
*/
|
||||||
|
type Peer = {
|
||||||
|
/**
|
||||||
|
* peer's peer-id instance.
|
||||||
|
*/
|
||||||
|
id: PeerId;
|
||||||
|
/**
|
||||||
|
* peer's addresses containing its multiaddrs and metadata.
|
||||||
|
*/
|
||||||
|
addresses: Address[];
|
||||||
|
/**
|
||||||
|
* peer's supported protocols.
|
||||||
|
*/
|
||||||
|
protocols: string[];
|
||||||
|
/**
|
||||||
|
* peer's metadata map.
|
||||||
|
*/
|
||||||
|
metadata: Map<string, Uint8Array> | undefined;
|
||||||
|
};
|
||||||
|
type Address = import('./address-book').Address;
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/peer-store/index.d.ts.map
vendored
Normal file
1
dist/src/peer-store/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer-store/index.js"],"names":[],"mappings":";AAgBA;;GAEG;AAEH;;;;;;;;GAQG;AACH;IACE;;;;;;;;OAQG;IAEH;;;;;;OAMG;IACH;QAH2B,MAAM,EAAtB,MAAM;OA2BhB;IArBC,gBAAqB;IAErB;;OAEG;IACH,yBAAwC;IAExC;;OAEG;IACH,iBAAgC;IAEhC;;OAEG;IACH,2BAA0C;IAE1C;;OAEG;IACH,qBAAoC;IAGtC;;OAEG;IACH,cAAW;IAEX;;OAEG;IACH,aAAU;IAEV;;;;OAIG;IACH,+BAiBC;IAED;;;;;OAKG;IACH,eAHW,MAAM,GACJ,OAAO,CASnB;IAED;;;;;OAKG;IACH,YAHW,MAAM,GACJ,IAAI,GAAC,SAAS,CAsB1B;CACF;;;;;;;;;;;;;;;;;QAnHe,MAAM;;;;eACN,OAAO,EAAE;;;;eACT,MAAM,EAAE;;;;cACR,IAAI,MAAM,EAAE,UAAU,CAAC,GAAC,SAAS;;eApBpC,OAAO,gBAAgB,EAAE,OAAO"}
|
24
dist/src/peer-store/key-book.d.ts
vendored
Normal file
24
dist/src/peer-store/key-book.d.ts
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
export = KeyBook;
|
||||||
|
/**
|
||||||
|
* @typedef {import('./')} PeerStore
|
||||||
|
* @typedef {import('libp2p-crypto').PublicKey} PublicKey
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @extends {Book}
|
||||||
|
*/
|
||||||
|
declare class KeyBook extends Book {
|
||||||
|
/**
|
||||||
|
* The KeyBook is responsible for keeping the known public keys of a peer.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {PeerStore} peerStore
|
||||||
|
*/
|
||||||
|
constructor(peerStore: PeerStore);
|
||||||
|
}
|
||||||
|
declare namespace KeyBook {
|
||||||
|
export { PeerStore, PublicKey };
|
||||||
|
}
|
||||||
|
import Book = require("./book");
|
||||||
|
type PeerStore = import('./');
|
||||||
|
type PublicKey = import('libp2p-crypto').PublicKey;
|
||||||
|
//# sourceMappingURL=key-book.d.ts.map
|
1
dist/src/peer-store/key-book.d.ts.map
vendored
Normal file
1
dist/src/peer-store/key-book.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"key-book.d.ts","sourceRoot":"","sources":["../../../src/peer-store/key-book.js"],"names":[],"mappings":";AAgBA;;;GAGG;AAEH;;GAEG;AACH;IACE;;;;;OAKG;IACH,uBAFW,SAAS,EAgBnB;CAgDF;;;;;iBA5EY,OAAO,IAAI,CAAC;iBACZ,OAAO,eAAe,EAAE,SAAS"}
|
53
dist/src/peer-store/metadata-book.d.ts
vendored
Normal file
53
dist/src/peer-store/metadata-book.d.ts
vendored
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
export = MetadataBook;
|
||||||
|
/**
|
||||||
|
* @typedef {import('./')} PeerStore
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @extends {Book}
|
||||||
|
*
|
||||||
|
* @fires MetadataBook#change:metadata
|
||||||
|
*/
|
||||||
|
declare class MetadataBook extends Book {
|
||||||
|
/**
|
||||||
|
* The MetadataBook is responsible for keeping the known supported
|
||||||
|
* protocols of a peer.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {PeerStore} peerStore
|
||||||
|
*/
|
||||||
|
constructor(peerStore: PeerStore);
|
||||||
|
/**
|
||||||
|
* Set data into the datastructure
|
||||||
|
*
|
||||||
|
* @override
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {string} key
|
||||||
|
* @param {Uint8Array} value
|
||||||
|
*/
|
||||||
|
_setValue(peerId: PeerId, key: string, value: Uint8Array, { emit }?: {
|
||||||
|
emit?: boolean | undefined;
|
||||||
|
}): void;
|
||||||
|
/**
|
||||||
|
* Get specific metadata value, if it exists
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {string} key
|
||||||
|
* @returns {Uint8Array | undefined}
|
||||||
|
*/
|
||||||
|
getValue(peerId: PeerId, key: string): Uint8Array | undefined;
|
||||||
|
/**
|
||||||
|
* Deletes the provided peer metadata key from the book.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {string} key
|
||||||
|
* @returns {boolean}
|
||||||
|
*/
|
||||||
|
deleteValue(peerId: PeerId, key: string): boolean;
|
||||||
|
}
|
||||||
|
declare namespace MetadataBook {
|
||||||
|
export { PeerStore };
|
||||||
|
}
|
||||||
|
import Book = require("./book");
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
type PeerStore = import('./');
|
||||||
|
//# sourceMappingURL=metadata-book.d.ts.map
|
1
dist/src/peer-store/metadata-book.d.ts.map
vendored
Normal file
1
dist/src/peer-store/metadata-book.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"metadata-book.d.ts","sourceRoot":"","sources":["../../../src/peer-store/metadata-book.js"],"names":[],"mappings":";AAiBA;;GAEG;AAEH;;;;GAIG;AACH;IACE;;;;;;OAMG;IACH,uBAFW,SAAS,EAmBnB;IA4BD;;;;;;;OAOG;IACH,kBAJW,MAAM,OACN,MAAM,SACN,UAAU;;aAiBpB;IAgBD;;;;;;OAMG;IACH,iBAJW,MAAM,OACN,MAAM,GACJ,UAAU,GAAG,SAAS,CASlC;IAsBD;;;;;;OAMG;IACH,oBAJW,MAAM,OACN,MAAM,GACJ,OAAO,CAgBnB;CACF;;;;;;iBA9JY,OAAO,IAAI,CAAC"}
|
6
dist/src/peer-store/persistent/consts.d.ts
vendored
Normal file
6
dist/src/peer-store/persistent/consts.d.ts
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
export var NAMESPACE_COMMON: string;
|
||||||
|
export var NAMESPACE_ADDRESS: string;
|
||||||
|
export var NAMESPACE_KEYS: string;
|
||||||
|
export var NAMESPACE_METADATA: string;
|
||||||
|
export var NAMESPACE_PROTOCOL: string;
|
||||||
|
//# sourceMappingURL=consts.d.ts.map
|
1
dist/src/peer-store/persistent/consts.d.ts.map
vendored
Normal file
1
dist/src/peer-store/persistent/consts.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../../src/peer-store/persistent/consts.js"],"names":[],"mappings":""}
|
130
dist/src/peer-store/persistent/index.d.ts
vendored
Normal file
130
dist/src/peer-store/persistent/index.d.ts
vendored
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
export = PersistentPeerStore;
|
||||||
|
/**
|
||||||
|
* @typedef {import('interface-datastore').Batch} Batch
|
||||||
|
* @typedef {import('../address-book.js').Address} Address
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef {Object} PersistentPeerStoreProperties
|
||||||
|
* @property {PeerId} peerId
|
||||||
|
* @property {import('interface-datastore').Datastore} datastore
|
||||||
|
*
|
||||||
|
* @typedef {Object} PersistentPeerStoreOptions
|
||||||
|
* @property {number} [threshold = 5] - Number of dirty peers allowed before commit data.
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Responsible for managing the persistence of data in the PeerStore.
|
||||||
|
*/
|
||||||
|
declare class PersistentPeerStore extends PeerStore {
|
||||||
|
/**
|
||||||
|
* @class
|
||||||
|
* @param {PersistentPeerStoreProperties & PersistentPeerStoreOptions} properties
|
||||||
|
*/
|
||||||
|
constructor({ peerId, datastore, threshold }: PersistentPeerStoreProperties & PersistentPeerStoreOptions);
|
||||||
|
/**
|
||||||
|
* Backend datastore used to persist data.
|
||||||
|
*/
|
||||||
|
_datastore: import("interface-datastore/dist/src/types").Datastore;
|
||||||
|
/**
|
||||||
|
* Peers modified after the latest data persisted.
|
||||||
|
*/
|
||||||
|
_dirtyPeers: Set<any>;
|
||||||
|
/**
|
||||||
|
* Peers metadata changed mapping peer identifers to metadata changed.
|
||||||
|
*
|
||||||
|
* @type {Map<string, Set<string>>}
|
||||||
|
*/
|
||||||
|
_dirtyMetadata: Map<string, Set<string>>;
|
||||||
|
threshold: number;
|
||||||
|
/**
|
||||||
|
* Add modified peer to the dirty set
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} params
|
||||||
|
* @param {PeerId} params.peerId
|
||||||
|
*/
|
||||||
|
private _addDirtyPeer;
|
||||||
|
/**
|
||||||
|
* Add modified peer key to the dirty set
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} params
|
||||||
|
* @param {PeerId} params.peerId
|
||||||
|
*/
|
||||||
|
private _addDirtyPeerKey;
|
||||||
|
/**
|
||||||
|
* Add modified metadata peer to the set.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} params
|
||||||
|
* @param {PeerId} params.peerId
|
||||||
|
* @param {string} params.metadata
|
||||||
|
*/
|
||||||
|
private _addDirtyPeerMetadata;
|
||||||
|
/**
|
||||||
|
* Add all the peers current data to a datastore batch and commit it.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
private _commitData;
|
||||||
|
/**
|
||||||
|
* Add address book data of the peer to the batch.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {Batch} batch
|
||||||
|
*/
|
||||||
|
private _batchAddressBook;
|
||||||
|
/**
|
||||||
|
* Add Key book data of the peer to the batch.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {Batch} batch
|
||||||
|
*/
|
||||||
|
private _batchKeyBook;
|
||||||
|
/**
|
||||||
|
* Add metadata book data of the peer to the batch.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {Batch} batch
|
||||||
|
*/
|
||||||
|
private _batchMetadataBook;
|
||||||
|
/**
|
||||||
|
* Add proto book data of the peer to the batch.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {Batch} batch
|
||||||
|
*/
|
||||||
|
private _batchProtoBook;
|
||||||
|
/**
|
||||||
|
* Process datastore entry and add its data to the correct book.
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @param {Object} params
|
||||||
|
* @param {Key} params.key - datastore key
|
||||||
|
* @param {Uint8Array} params.value - datastore value stored
|
||||||
|
* @returns {Promise<void>}
|
||||||
|
*/
|
||||||
|
private _processDatastoreEntry;
|
||||||
|
}
|
||||||
|
declare namespace PersistentPeerStore {
|
||||||
|
export { Batch, Address, PersistentPeerStoreProperties, PersistentPeerStoreOptions };
|
||||||
|
}
|
||||||
|
import PeerStore = require("..");
|
||||||
|
type PersistentPeerStoreProperties = {
|
||||||
|
peerId: PeerId;
|
||||||
|
datastore: import('interface-datastore').Datastore;
|
||||||
|
};
|
||||||
|
type PersistentPeerStoreOptions = {
|
||||||
|
/**
|
||||||
|
* - Number of dirty peers allowed before commit data.
|
||||||
|
*/
|
||||||
|
threshold?: number | undefined;
|
||||||
|
};
|
||||||
|
type Batch = import('interface-datastore').Batch;
|
||||||
|
type Address = import('../address-book.js').Address;
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/peer-store/persistent/index.d.ts.map
vendored
Normal file
1
dist/src/peer-store/persistent/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/peer-store/persistent/index.js"],"names":[],"mappings":";AAuBA;;;GAGG;AAEH;;;;;;;GAOG;AAEH;;GAEG;AACH;IACE;;;OAGG;IACH,8CAFW,6BAA6B,GAAG,0BAA0B,EAwBpE;IAnBC;;OAEG;IACH,mEAA2B;IAE3B;;OAEG;IACH,sBAA4B;IAE5B;;;;OAIG;IACH,gBAFU,IAAI,MAAM,EAAE,IAAI,MAAM,CAAC,CAAC,CAEH;IAE/B,kBAA0B;IAsC5B;;;;;;OAMG;IACH,sBAYC;IAED;;;;;;OAMG;IACH,yBAiBC;IAED;;;;;;;OAOG;IACH,8BAiBC;IAED;;;;;OAKG;IACH,oBA+BC;IAED;;;;;;OAMG;IACH,0BA8BC;IAED;;;;;;OAMG;IACH,sBAiBC;IAED;;;;;;OAMG;IACH,2BAkBC;IAED;;;;;;OAMG;IACH,wBAmBC;IAED;;;;;;;;OAQG;IACH,+BA0DC;CACF;;;;;;YAtXa,MAAM;eACN,OAAO,qBAAqB,EAAE,SAAS;;;;;;;;aAPxC,OAAO,qBAAqB,EAAE,KAAK;eACnC,OAAO,oBAAoB,EAAE,OAAO"}
|
198
dist/src/peer-store/persistent/pb/address-book.d.ts
vendored
Normal file
198
dist/src/peer-store/persistent/pb/address-book.d.ts
vendored
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
import * as $protobuf from "protobufjs";
|
||||||
|
/** Properties of an Addresses. */
|
||||||
|
export interface IAddresses {
|
||||||
|
|
||||||
|
/** Addresses addrs */
|
||||||
|
addrs?: (Addresses.IAddress[]|null);
|
||||||
|
|
||||||
|
/** Addresses certifiedRecord */
|
||||||
|
certifiedRecord?: (Addresses.ICertifiedRecord|null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents an Addresses. */
|
||||||
|
export class Addresses implements IAddresses {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new Addresses.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: IAddresses);
|
||||||
|
|
||||||
|
/** Addresses addrs. */
|
||||||
|
public addrs: Addresses.IAddress[];
|
||||||
|
|
||||||
|
/** Addresses certifiedRecord. */
|
||||||
|
public certifiedRecord?: (Addresses.ICertifiedRecord|null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified Addresses message. Does not implicitly {@link Addresses.verify|verify} messages.
|
||||||
|
* @param m Addresses message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: IAddresses, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes an Addresses message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns Addresses
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an Addresses message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns Addresses
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): Addresses;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from an Addresses message. Also converts values to other types if specified.
|
||||||
|
* @param m Addresses
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: Addresses, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this Addresses to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
||||||
|
|
||||||
|
export namespace Addresses {
|
||||||
|
|
||||||
|
/** Properties of an Address. */
|
||||||
|
interface IAddress {
|
||||||
|
|
||||||
|
/** Address multiaddr */
|
||||||
|
multiaddr?: (Uint8Array|null);
|
||||||
|
|
||||||
|
/** Address isCertified */
|
||||||
|
isCertified?: (boolean|null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents an Address. */
|
||||||
|
class Address implements IAddress {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new Address.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: Addresses.IAddress);
|
||||||
|
|
||||||
|
/** Address multiaddr. */
|
||||||
|
public multiaddr: Uint8Array;
|
||||||
|
|
||||||
|
/** Address isCertified. */
|
||||||
|
public isCertified: boolean;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified Address message. Does not implicitly {@link Addresses.Address.verify|verify} messages.
|
||||||
|
* @param m Address message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: Addresses.IAddress, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes an Address message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns Address
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses.Address;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an Address message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns Address
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): Addresses.Address;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from an Address message. Also converts values to other types if specified.
|
||||||
|
* @param m Address
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: Addresses.Address, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this Address to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Properties of a CertifiedRecord. */
|
||||||
|
interface ICertifiedRecord {
|
||||||
|
|
||||||
|
/** CertifiedRecord seq */
|
||||||
|
seq?: (number|null);
|
||||||
|
|
||||||
|
/** CertifiedRecord raw */
|
||||||
|
raw?: (Uint8Array|null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents a CertifiedRecord. */
|
||||||
|
class CertifiedRecord implements ICertifiedRecord {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new CertifiedRecord.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: Addresses.ICertifiedRecord);
|
||||||
|
|
||||||
|
/** CertifiedRecord seq. */
|
||||||
|
public seq: number;
|
||||||
|
|
||||||
|
/** CertifiedRecord raw. */
|
||||||
|
public raw: Uint8Array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified CertifiedRecord message. Does not implicitly {@link Addresses.CertifiedRecord.verify|verify} messages.
|
||||||
|
* @param m CertifiedRecord message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: Addresses.ICertifiedRecord, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes a CertifiedRecord message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns CertifiedRecord
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses.CertifiedRecord;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a CertifiedRecord message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns CertifiedRecord
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): Addresses.CertifiedRecord;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from a CertifiedRecord message. Also converts values to other types if specified.
|
||||||
|
* @param m CertifiedRecord
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: Addresses.CertifiedRecord, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this CertifiedRecord to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
||||||
|
}
|
59
dist/src/peer-store/persistent/pb/proto-book.d.ts
vendored
Normal file
59
dist/src/peer-store/persistent/pb/proto-book.d.ts
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import * as $protobuf from "protobufjs";
|
||||||
|
/** Properties of a Protocols. */
|
||||||
|
export interface IProtocols {
|
||||||
|
|
||||||
|
/** Protocols protocols */
|
||||||
|
protocols?: (string[]|null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Represents a Protocols. */
|
||||||
|
export class Protocols implements IProtocols {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new Protocols.
|
||||||
|
* @param [p] Properties to set
|
||||||
|
*/
|
||||||
|
constructor(p?: IProtocols);
|
||||||
|
|
||||||
|
/** Protocols protocols. */
|
||||||
|
public protocols: string[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Encodes the specified Protocols message. Does not implicitly {@link Protocols.verify|verify} messages.
|
||||||
|
* @param m Protocols message or plain object to encode
|
||||||
|
* @param [w] Writer to encode to
|
||||||
|
* @returns Writer
|
||||||
|
*/
|
||||||
|
public static encode(m: IProtocols, w?: $protobuf.Writer): $protobuf.Writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decodes a Protocols message from the specified reader or buffer.
|
||||||
|
* @param r Reader or buffer to decode from
|
||||||
|
* @param [l] Message length if known beforehand
|
||||||
|
* @returns Protocols
|
||||||
|
* @throws {Error} If the payload is not a reader or valid buffer
|
||||||
|
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
||||||
|
*/
|
||||||
|
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Protocols;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a Protocols message from a plain object. Also converts values to their respective internal types.
|
||||||
|
* @param d Plain object
|
||||||
|
* @returns Protocols
|
||||||
|
*/
|
||||||
|
public static fromObject(d: { [k: string]: any }): Protocols;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a plain object from a Protocols message. Also converts values to other types if specified.
|
||||||
|
* @param m Protocols
|
||||||
|
* @param [o] Conversion options
|
||||||
|
* @returns Plain object
|
||||||
|
*/
|
||||||
|
public static toObject(m: Protocols, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this Protocols to JSON.
|
||||||
|
* @returns JSON object
|
||||||
|
*/
|
||||||
|
public toJSON(): { [k: string]: any };
|
||||||
|
}
|
44
dist/src/peer-store/proto-book.d.ts
vendored
Normal file
44
dist/src/peer-store/proto-book.d.ts
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
export = ProtoBook;
|
||||||
|
/**
|
||||||
|
* @typedef {import('./')} PeerStore
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* @extends {Book}
|
||||||
|
*
|
||||||
|
* @fires ProtoBook#change:protocols
|
||||||
|
*/
|
||||||
|
declare class ProtoBook extends Book {
|
||||||
|
/**
|
||||||
|
* The ProtoBook is responsible for keeping the known supported
|
||||||
|
* protocols of a peer.
|
||||||
|
*
|
||||||
|
* @class
|
||||||
|
* @param {PeerStore} peerStore
|
||||||
|
*/
|
||||||
|
constructor(peerStore: PeerStore);
|
||||||
|
/**
|
||||||
|
* Adds known protocols of a provided peer.
|
||||||
|
* If the peer was not known before, it will be added.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {string[]} protocols
|
||||||
|
* @returns {ProtoBook}
|
||||||
|
*/
|
||||||
|
add(peerId: PeerId, protocols: string[]): ProtoBook;
|
||||||
|
/**
|
||||||
|
* Removes known protocols of a provided peer.
|
||||||
|
* If the protocols did not exist before, nothing will be done.
|
||||||
|
*
|
||||||
|
* @param {PeerId} peerId
|
||||||
|
* @param {string[]} protocols
|
||||||
|
* @returns {ProtoBook}
|
||||||
|
*/
|
||||||
|
remove(peerId: PeerId, protocols: string[]): ProtoBook;
|
||||||
|
}
|
||||||
|
declare namespace ProtoBook {
|
||||||
|
export { PeerStore };
|
||||||
|
}
|
||||||
|
import Book = require("./book");
|
||||||
|
import PeerId = require("peer-id");
|
||||||
|
type PeerStore = import('./');
|
||||||
|
//# sourceMappingURL=proto-book.d.ts.map
|
1
dist/src/peer-store/proto-book.d.ts.map
vendored
Normal file
1
dist/src/peer-store/proto-book.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"proto-book.d.ts","sourceRoot":"","sources":["../../../src/peer-store/proto-book.js"],"names":[],"mappings":";AAeA;;GAEG;AAEH;;;;GAIG;AACH;IACE;;;;;;OAMG;IACH,uBAFW,SAAS,EAoBnB;IA6CD;;;;;;;OAOG;IACH,YAJW,MAAM,aACN,MAAM,EAAE,GACN,SAAS,CA2BrB;IAED;;;;;;;OAOG;IACH,eAJW,MAAM,aACN,MAAM,EAAE,GACN,SAAS,CA+BrB;CACF;;;;;;iBAxJY,OAAO,IAAI,CAAC"}
|
3
dist/src/ping/constants.d.ts
vendored
Normal file
3
dist/src/ping/constants.d.ts
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export const PROTOCOL: string;
|
||||||
|
export const PING_LENGTH: number;
|
||||||
|
//# sourceMappingURL=constants.d.ts.map
|
1
dist/src/ping/constants.d.ts.map
vendored
Normal file
1
dist/src/ping/constants.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/ping/constants.js"],"names":[],"mappings":""}
|
35
dist/src/ping/index.d.ts
vendored
Normal file
35
dist/src/ping/index.d.ts
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
export = ping;
|
||||||
|
/**
|
||||||
|
* @typedef {import('../')} Libp2p
|
||||||
|
* @typedef {import('multiaddr').Multiaddr} Multiaddr
|
||||||
|
* @typedef {import('peer-id')} PeerId
|
||||||
|
* @typedef {import('libp2p-interfaces/src/stream-muxer/types').MuxedStream} MuxedStream
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Ping a given peer and wait for its response, getting the operation latency.
|
||||||
|
*
|
||||||
|
* @param {Libp2p} node
|
||||||
|
* @param {PeerId|Multiaddr} peer
|
||||||
|
* @returns {Promise<number>}
|
||||||
|
*/
|
||||||
|
declare function ping(node: Libp2p, peer: PeerId | Multiaddr): Promise<number>;
|
||||||
|
declare namespace ping {
|
||||||
|
export { mount, unmount, Libp2p, Multiaddr, PeerId, MuxedStream };
|
||||||
|
}
|
||||||
|
type Libp2p = import('../');
|
||||||
|
type PeerId = import('peer-id');
|
||||||
|
type Multiaddr = import('multiaddr').Multiaddr;
|
||||||
|
/**
|
||||||
|
* Subscribe ping protocol handler.
|
||||||
|
*
|
||||||
|
* @param {Libp2p} node
|
||||||
|
*/
|
||||||
|
declare function mount(node: Libp2p): void;
|
||||||
|
/**
|
||||||
|
* Unsubscribe ping protocol handler.
|
||||||
|
*
|
||||||
|
* @param {Libp2p} node
|
||||||
|
*/
|
||||||
|
declare function unmount(node: Libp2p): void;
|
||||||
|
type MuxedStream = import('libp2p-interfaces/src/stream-muxer/types').MuxedStream;
|
||||||
|
//# sourceMappingURL=index.d.ts.map
|
1
dist/src/ping/index.d.ts.map
vendored
Normal file
1
dist/src/ping/index.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ping/index.js"],"names":[],"mappings":";AAiBA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,4BAJW,MAAM,QACN,MAAM,GAAC,SAAS,GACd,QAAQ,MAAM,CAAC,CA0B3B;;;;cArCY,OAAO,KAAK,CAAC;cAEb,OAAO,SAAS,CAAC;iBADjB,OAAO,WAAW,EAAE,SAAS;AAsC1C;;;;GAIG;AACH,6BAFW,MAAM,QAIhB;AAED;;;;GAIG;AACH,+BAFW,MAAM,QAIhB;mBApDY,OAAO,0CAA0C,EAAE,WAAW"}
|
5
dist/src/ping/util.d.ts
vendored
Normal file
5
dist/src/ping/util.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
/**
|
||||||
|
* @param {number} length
|
||||||
|
*/
|
||||||
|
export function rnd(length: number): Uint8Array;
|
||||||
|
//# sourceMappingURL=util.d.ts.map
|
1
dist/src/ping/util.d.ts.map
vendored
Normal file
1
dist/src/ping/util.d.ts.map
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/ping/util.js"],"names":[],"mappings":"AAKA;;GAEG;AACH,4BAFW,MAAM,cAOhB"}
|
8
dist/src/pnet/crypto.d.ts
vendored
Normal file
8
dist/src/pnet/crypto.d.ts
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
export function createBoxStream(nonce: Uint8Array, psk: Uint8Array): any;
|
||||||
|
export function createUnboxStream(nonce: Uint8Array, psk: Uint8Array): any;
|
||||||
|
export function decodeV1PSK(pskBuffer: Uint8Array): {
|
||||||
|
tag?: string;
|
||||||
|
codecName?: string;
|
||||||
|
psk: Uint8Array;
|
||||||
|
};
|
||||||
|
//# sourceMappingURL=crypto.d.ts.map
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user