libp2p 2.10.0 → 3.0.0-049bfa0fa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -37
- package/dist/index.min.js +14 -17
- package/dist/index.min.js.map +4 -4
- package/dist/src/address-manager/dns-mappings.d.ts +1 -2
- package/dist/src/address-manager/dns-mappings.d.ts.map +1 -1
- package/dist/src/address-manager/dns-mappings.js +39 -43
- package/dist/src/address-manager/dns-mappings.js.map +1 -1
- package/dist/src/address-manager/index.d.ts.map +1 -1
- package/dist/src/address-manager/index.js +31 -14
- package/dist/src/address-manager/index.js.map +1 -1
- package/dist/src/address-manager/ip-mappings.d.ts +1 -0
- package/dist/src/address-manager/ip-mappings.d.ts.map +1 -1
- package/dist/src/address-manager/ip-mappings.js +51 -40
- package/dist/src/address-manager/ip-mappings.js.map +1 -1
- package/dist/src/address-manager/observed-addresses.d.ts.map +1 -1
- package/dist/src/address-manager/observed-addresses.js +1 -3
- package/dist/src/address-manager/observed-addresses.js.map +1 -1
- package/dist/src/address-manager/transport-addresses.d.ts.map +1 -1
- package/dist/src/address-manager/transport-addresses.js +6 -8
- package/dist/src/address-manager/transport-addresses.js.map +1 -1
- package/dist/src/config/connection-gater.browser.d.ts.map +1 -1
- package/dist/src/config/connection-gater.browser.js +8 -22
- package/dist/src/config/connection-gater.browser.js.map +1 -1
- package/dist/src/config/connection-gater.d.ts.map +1 -1
- package/dist/src/config/connection-gater.js +1 -12
- package/dist/src/config/connection-gater.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +3 -22
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-manager/address-sorter.d.ts.map +1 -1
- package/dist/src/connection-manager/address-sorter.js +1 -2
- package/dist/src/connection-manager/address-sorter.js.map +1 -1
- package/dist/src/connection-manager/connection-pruner.d.ts.map +1 -1
- package/dist/src/connection-manager/connection-pruner.js +7 -3
- package/dist/src/connection-manager/connection-pruner.js.map +1 -1
- package/dist/src/connection-manager/constants.defaults.d.ts +4 -0
- package/dist/src/connection-manager/constants.defaults.d.ts.map +1 -1
- package/dist/src/connection-manager/constants.defaults.js +4 -0
- package/dist/src/connection-manager/constants.defaults.js.map +1 -1
- package/dist/src/connection-manager/dial-queue.d.ts +2 -2
- package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
- package/dist/src/connection-manager/dial-queue.js +11 -23
- package/dist/src/connection-manager/dial-queue.js.map +1 -1
- package/dist/src/connection-manager/index.d.ts +10 -18
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/connection-manager/index.js +44 -26
- package/dist/src/connection-manager/index.js.map +1 -1
- package/dist/src/connection-manager/reconnect-queue.js +1 -1
- package/dist/src/connection-manager/reconnect-queue.js.map +1 -1
- package/dist/src/connection-manager/utils.d.ts +31 -3
- package/dist/src/connection-manager/utils.d.ts.map +1 -1
- package/dist/src/connection-manager/utils.js +99 -18
- package/dist/src/connection-manager/utils.js.map +1 -1
- package/dist/src/connection-monitor.d.ts +1 -1
- package/dist/src/connection-monitor.d.ts.map +1 -1
- package/dist/src/connection-monitor.js +2 -3
- package/dist/src/connection-monitor.js.map +1 -1
- package/dist/src/connection.d.ts +14 -9
- package/dist/src/connection.d.ts.map +1 -1
- package/dist/src/connection.js +118 -139
- package/dist/src/connection.js.map +1 -1
- package/dist/src/get-peer.js +3 -3
- package/dist/src/get-peer.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.js +2 -2
- package/dist/src/libp2p.d.ts +3 -1
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +13 -7
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/peer-routing.js +1 -1
- package/dist/src/peer-routing.js.map +1 -1
- package/dist/src/random-walk.d.ts.map +1 -1
- package/dist/src/random-walk.js +13 -3
- package/dist/src/random-walk.js.map +1 -1
- package/dist/src/registrar.d.ts +8 -4
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +66 -46
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/transport-manager.js +15 -2
- package/dist/src/transport-manager.js.map +1 -1
- package/dist/src/upgrader.d.ts +26 -16
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +88 -122
- package/dist/src/upgrader.js.map +1 -1
- package/dist/src/utils.d.ts +3 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +25 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +27 -30
- package/src/address-manager/dns-mappings.ts +50 -50
- package/src/address-manager/index.ts +37 -17
- package/src/address-manager/ip-mappings.ts +64 -44
- package/src/address-manager/observed-addresses.ts +1 -3
- package/src/address-manager/transport-addresses.ts +7 -9
- package/src/config/connection-gater.browser.ts +8 -24
- package/src/config/connection-gater.ts +1 -12
- package/src/config.ts +3 -25
- package/src/connection-manager/address-sorter.ts +1 -2
- package/src/connection-manager/connection-pruner.ts +8 -3
- package/src/connection-manager/constants.defaults.ts +5 -0
- package/src/connection-manager/dial-queue.ts +12 -27
- package/src/connection-manager/index.ts +60 -45
- package/src/connection-manager/reconnect-queue.ts +1 -1
- package/src/connection-manager/utils.ts +129 -21
- package/src/connection-monitor.ts +3 -4
- package/src/connection.ts +142 -179
- package/src/get-peer.ts +3 -3
- package/src/index.ts +2 -2
- package/src/libp2p.ts +16 -9
- package/src/peer-routing.ts +1 -1
- package/src/random-walk.ts +13 -3
- package/src/registrar.ts +87 -61
- package/src/transport-manager.ts +18 -2
- package/src/upgrader.ts +132 -149
- package/src/utils.ts +31 -0
- package/src/version.ts +1 -1
- package/dist/typedoc-urls.json +0 -24
package/dist/src/upgrader.d.ts
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import type { Libp2pEvents, AbortOptions, ComponentLogger, MultiaddrConnection, Connection, ConnectionProtector, ConnectionEncrypter,
|
|
1
|
+
import type { Libp2pEvents, AbortOptions, ComponentLogger, MultiaddrConnection, Connection, ConnectionProtector, ConnectionEncrypter, ConnectionGater, Metrics, PeerId, PeerStore, StreamMuxerFactory, Upgrader as UpgraderInterface, UpgraderOptions, ConnectionLimits, ClearableSignal, MessageStream, SecuredConnection, StreamMuxer, UpgraderWithoutEncryptionOptions, SecureConnectionOptions } from '@libp2p/interface';
|
|
2
2
|
import type { ConnectionManager, Registrar } from '@libp2p/interface-internal';
|
|
3
3
|
import type { TypedEventTarget } from 'main-event';
|
|
4
4
|
interface CreateConnectionOptions {
|
|
5
5
|
id: string;
|
|
6
6
|
cryptoProtocol: string;
|
|
7
7
|
direction: 'inbound' | 'outbound';
|
|
8
|
+
/**
|
|
9
|
+
* The raw underlying connection
|
|
10
|
+
*/
|
|
8
11
|
maConn: MultiaddrConnection;
|
|
9
|
-
|
|
12
|
+
/**
|
|
13
|
+
* The encrypted, multiplexed connection
|
|
14
|
+
*/
|
|
15
|
+
stream: MessageStream;
|
|
10
16
|
remotePeer: PeerId;
|
|
11
|
-
|
|
17
|
+
muxer?: StreamMuxer;
|
|
12
18
|
limits?: ConnectionLimits;
|
|
13
|
-
|
|
14
|
-
export interface CryptoResult extends SecuredConnection<MultiaddrConnection> {
|
|
15
|
-
protocol: string;
|
|
19
|
+
closeTimeout?: number;
|
|
16
20
|
}
|
|
17
21
|
export interface UpgraderInit {
|
|
18
22
|
connectionEncrypters: ConnectionEncrypter[];
|
|
@@ -37,6 +41,12 @@ export interface UpgraderInit {
|
|
|
37
41
|
* @default 2000
|
|
38
42
|
*/
|
|
39
43
|
outboundStreamProtocolNegotiationTimeout?: number;
|
|
44
|
+
/**
|
|
45
|
+
* How long to wait before closing a connection
|
|
46
|
+
*
|
|
47
|
+
* @default 1_000
|
|
48
|
+
*/
|
|
49
|
+
connectionCloseTimeout?: number;
|
|
40
50
|
}
|
|
41
51
|
export interface UpgraderComponents {
|
|
42
52
|
peerId: PeerId;
|
|
@@ -49,6 +59,9 @@ export interface UpgraderComponents {
|
|
|
49
59
|
events: TypedEventTarget<Libp2pEvents>;
|
|
50
60
|
logger: ComponentLogger;
|
|
51
61
|
}
|
|
62
|
+
interface EncryptedConnection extends SecuredConnection {
|
|
63
|
+
protocol: string;
|
|
64
|
+
}
|
|
52
65
|
type ConnectionDeniedType = keyof Pick<ConnectionGater, 'denyOutboundConnection' | 'denyInboundEncryptedConnection' | 'denyOutboundEncryptedConnection' | 'denyInboundUpgradedConnection' | 'denyOutboundUpgradedConnection'>;
|
|
53
66
|
export declare class Upgrader implements UpgraderInterface {
|
|
54
67
|
private readonly components;
|
|
@@ -59,6 +72,7 @@ export declare class Upgrader implements UpgraderInterface {
|
|
|
59
72
|
private readonly outboundStreamProtocolNegotiationTimeout;
|
|
60
73
|
private readonly events;
|
|
61
74
|
private readonly metrics;
|
|
75
|
+
private readonly connectionCloseTimeout?;
|
|
62
76
|
constructor(components: UpgraderComponents, init: UpgraderInit);
|
|
63
77
|
readonly [Symbol.toStringTag] = "@libp2p/upgrader";
|
|
64
78
|
shouldBlockConnection(connectionType: 'denyInboundConnection', maConn: MultiaddrConnection): Promise<void>;
|
|
@@ -68,10 +82,12 @@ export declare class Upgrader implements UpgraderInterface {
|
|
|
68
82
|
* Upgrades an inbound connection
|
|
69
83
|
*/
|
|
70
84
|
upgradeInbound(maConn: MultiaddrConnection, opts: UpgraderOptions): Promise<void>;
|
|
85
|
+
upgradeInbound(maConn: MultiaddrConnection, opts: UpgraderWithoutEncryptionOptions): Promise<void>;
|
|
71
86
|
/**
|
|
72
87
|
* Upgrades an outbound connection
|
|
73
88
|
*/
|
|
74
89
|
upgradeOutbound(maConn: MultiaddrConnection, opts: UpgraderOptions): Promise<Connection>;
|
|
90
|
+
upgradeOutbound(maConn: MultiaddrConnection, opts: UpgraderWithoutEncryptionOptions): Promise<Connection>;
|
|
75
91
|
private _performUpgrade;
|
|
76
92
|
/**
|
|
77
93
|
* A convenience method for generating a new `Connection`
|
|
@@ -80,28 +96,22 @@ export declare class Upgrader implements UpgraderInterface {
|
|
|
80
96
|
/**
|
|
81
97
|
* Attempts to encrypt the incoming `connection` with the provided `cryptos`
|
|
82
98
|
*/
|
|
83
|
-
_encryptInbound(connection:
|
|
99
|
+
_encryptInbound(connection: MessageStream, options?: SecureConnectionOptions): Promise<EncryptedConnection>;
|
|
84
100
|
/**
|
|
85
101
|
* Attempts to encrypt the given `connection` with the provided connection encrypters.
|
|
86
102
|
* The first `ConnectionEncrypter` module to succeed will be used
|
|
87
103
|
*/
|
|
88
|
-
_encryptOutbound(connection:
|
|
104
|
+
_encryptOutbound(connection: MessageStream, options?: SecureConnectionOptions): Promise<EncryptedConnection>;
|
|
89
105
|
/**
|
|
90
106
|
* Selects one of the given muxers via multistream-select. That
|
|
91
107
|
* muxer will be used for all future streams on the connection.
|
|
92
108
|
*/
|
|
93
|
-
_multiplexOutbound(
|
|
94
|
-
stream: MultiaddrConnection;
|
|
95
|
-
muxerFactory?: StreamMuxerFactory;
|
|
96
|
-
}>;
|
|
109
|
+
_multiplexOutbound(maConn: MessageStream, muxers: Map<string, StreamMuxerFactory>, options: AbortOptions): Promise<StreamMuxerFactory>;
|
|
97
110
|
/**
|
|
98
111
|
* Registers support for one of the given muxers via multistream-select. The
|
|
99
112
|
* selected muxer will be used for all future streams on the connection.
|
|
100
113
|
*/
|
|
101
|
-
_multiplexInbound(
|
|
102
|
-
stream: MultiaddrConnection;
|
|
103
|
-
muxerFactory?: StreamMuxerFactory;
|
|
104
|
-
}>;
|
|
114
|
+
_multiplexInbound(maConn: MessageStream, muxers: Map<string, StreamMuxerFactory>, options: AbortOptions): Promise<StreamMuxerFactory>;
|
|
105
115
|
getConnectionEncrypters(): Map<string, ConnectionEncrypter<unknown>>;
|
|
106
116
|
getStreamMuxers(): Map<string, StreamMuxerFactory>;
|
|
107
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,IAAI,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAgB,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC3a,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,UAAU,uBAAuB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,SAAS,GAAG,UAAU,CAAA;IAEjC;;OAEG;IACH,MAAM,EAAE,mBAAmB,CAAA;IAE3B;;OAEG;IACH,MAAM,EAAE,aAAa,CAAA;IAErB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,oBAAoB,EAAE,mBAAmB,EAAE,CAAA;IAC3C,YAAY,EAAE,kBAAkB,EAAE,CAAA;IAElC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;OAKG;IACH,uCAAuC,CAAC,EAAE,MAAM,CAAA;IAEhD;;;;;OAKG;IACH,wCAAwC,CAAC,EAAE,MAAM,CAAA;IAEjD;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,eAAe,EAAE,eAAe,CAAA;IAChC,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,oBAAoB,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,wBAAwB,GAAG,gCAAgC,GAAG,iCAAiC,GAAG,+BAA+B,GAAG,gCAAgC,CAAC,CAAA;AAE7N,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAkC;IACvE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;IAC9C,OAAO,CAAC,QAAQ,CAAC,uCAAuC,CAAQ;IAChE,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAQ;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAKvB;IAED,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAQ;gBAEnC,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY;IAiC/D,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAqB;IAE5C,qBAAqB,CAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3G,qBAAqB,CAAE,cAAc,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAelI,wBAAwB,CAAE,MAAM,EAAE,WAAW,GAAG,eAAe;IAU/D;;OAEG;IACG,cAAc,CAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAClF,cAAc,CAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CzG;;OAEG;IACG,eAAe,CAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IACzF,eAAe,CAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,UAAU,CAAC;YAmClG,eAAe;IAmH7B;;OAEG;IACH,iBAAiB,CAAE,IAAI,EAAE,uBAAuB,GAAG,UAAU;IAqB7D;;OAEG;IACG,eAAe,CAAE,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAsBlH;;;OAGG;IACG,gBAAgB,CAAE,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwBnH;;;OAGG;IACG,kBAAkB,CAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqB7I;;;OAGG;IACG,iBAAiB,CAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoB5I,uBAAuB,IAAK,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAIrE,eAAe,IAAK,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;CAGpD"}
|
package/dist/src/upgrader.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { InvalidMultiaddrError, InvalidPeerIdError } from '@libp2p/interface';
|
|
2
2
|
import * as mss from '@libp2p/multistream-select';
|
|
3
3
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
4
|
-
import { trackedMap } from '@libp2p/utils
|
|
4
|
+
import { trackedMap } from '@libp2p/utils';
|
|
5
|
+
import { CODE_P2P } from '@multiformats/multiaddr';
|
|
5
6
|
import { anySignal } from 'any-signal';
|
|
6
7
|
import { setMaxListeners } from 'main-event';
|
|
7
8
|
import { CustomProgressEvent } from 'progress-events';
|
|
8
9
|
import { raceSignal } from 'race-signal';
|
|
9
|
-
import { PROTOCOL_NEGOTIATION_TIMEOUT, INBOUND_UPGRADE_TIMEOUT } from './connection-manager/constants.js';
|
|
10
|
+
import { PROTOCOL_NEGOTIATION_TIMEOUT, INBOUND_UPGRADE_TIMEOUT, CONNECTION_CLOSE_TIMEOUT } from './connection-manager/constants.js';
|
|
10
11
|
import { createConnection } from './connection.js';
|
|
11
12
|
import { ConnectionDeniedError, ConnectionInterceptedError, EncryptionFailedError, MuxerUnavailableError } from './errors.js';
|
|
12
13
|
export class Upgrader {
|
|
@@ -18,6 +19,7 @@ export class Upgrader {
|
|
|
18
19
|
outboundStreamProtocolNegotiationTimeout;
|
|
19
20
|
events;
|
|
20
21
|
metrics;
|
|
22
|
+
connectionCloseTimeout;
|
|
21
23
|
constructor(components, init) {
|
|
22
24
|
this.components = components;
|
|
23
25
|
this.connectionEncrypters = trackedMap({
|
|
@@ -37,6 +39,7 @@ export class Upgrader {
|
|
|
37
39
|
this.inboundUpgradeTimeout = init.inboundUpgradeTimeout ?? INBOUND_UPGRADE_TIMEOUT;
|
|
38
40
|
this.inboundStreamProtocolNegotiationTimeout = init.inboundStreamProtocolNegotiationTimeout ?? PROTOCOL_NEGOTIATION_TIMEOUT;
|
|
39
41
|
this.outboundStreamProtocolNegotiationTimeout = init.outboundStreamProtocolNegotiationTimeout ?? PROTOCOL_NEGOTIATION_TIMEOUT;
|
|
42
|
+
this.connectionCloseTimeout = init.connectionCloseTimeout ?? CONNECTION_CLOSE_TIMEOUT;
|
|
40
43
|
this.events = components.events;
|
|
41
44
|
this.metrics = {
|
|
42
45
|
dials: components.metrics?.registerCounterGroup('libp2p_connection_manager_dials_total'),
|
|
@@ -64,9 +67,6 @@ export class Upgrader {
|
|
|
64
67
|
setMaxListeners(Infinity, output);
|
|
65
68
|
return output;
|
|
66
69
|
}
|
|
67
|
-
/**
|
|
68
|
-
* Upgrades an inbound connection
|
|
69
|
-
*/
|
|
70
70
|
async upgradeInbound(maConn, opts) {
|
|
71
71
|
let accepted = false;
|
|
72
72
|
// always apply upgrade timeout for incoming upgrades
|
|
@@ -75,7 +75,7 @@ export class Upgrader {
|
|
|
75
75
|
this.metrics.dials?.increment({
|
|
76
76
|
inbound: true
|
|
77
77
|
});
|
|
78
|
-
accepted =
|
|
78
|
+
accepted = this.components.connectionManager.acceptIncomingConnection(maConn);
|
|
79
79
|
if (!accepted) {
|
|
80
80
|
throw new ConnectionDeniedError('Connection denied');
|
|
81
81
|
}
|
|
@@ -101,15 +101,12 @@ export class Upgrader {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Upgrades an outbound connection
|
|
106
|
-
*/
|
|
107
104
|
async upgradeOutbound(maConn, opts) {
|
|
108
105
|
try {
|
|
109
106
|
this.metrics.dials?.increment({
|
|
110
107
|
outbound: true
|
|
111
108
|
});
|
|
112
|
-
const idStr = maConn.remoteAddr.
|
|
109
|
+
const idStr = maConn.remoteAddr.getComponents().findLast(c => c.code === CODE_P2P)?.value;
|
|
113
110
|
let remotePeerId;
|
|
114
111
|
if (idStr != null) {
|
|
115
112
|
remotePeerId = peerIdFromString(idStr);
|
|
@@ -133,51 +130,53 @@ export class Upgrader {
|
|
|
133
130
|
}
|
|
134
131
|
}
|
|
135
132
|
async _performUpgrade(maConn, direction, opts) {
|
|
136
|
-
let
|
|
133
|
+
let stream = maConn;
|
|
137
134
|
let remotePeer;
|
|
138
|
-
let upgradedConn;
|
|
139
135
|
let muxerFactory;
|
|
136
|
+
let muxer;
|
|
140
137
|
let cryptoProtocol;
|
|
141
138
|
const id = `${(parseInt(String(Math.random() * 1e9))).toString(36)}${Date.now()}`;
|
|
142
139
|
maConn.log = maConn.log.newScope(`${direction}:${id}`);
|
|
143
140
|
this.components.metrics?.trackMultiaddrConnection(maConn);
|
|
144
141
|
maConn.log.trace('starting the %s connection upgrade', direction);
|
|
145
142
|
// Protect
|
|
146
|
-
let protectedConn = maConn;
|
|
147
143
|
if (opts?.skipProtection !== true) {
|
|
148
144
|
const protector = this.components.connectionProtector;
|
|
149
145
|
if (protector != null) {
|
|
150
146
|
maConn.log('protecting the %s connection', direction);
|
|
151
|
-
|
|
147
|
+
stream = await protector.protect(stream, opts);
|
|
152
148
|
}
|
|
153
149
|
}
|
|
154
150
|
try {
|
|
155
151
|
// Encrypt the connection
|
|
156
|
-
|
|
157
|
-
|
|
152
|
+
if (isEncryptionSkipped(opts)) {
|
|
153
|
+
if (opts.remotePeer == null) {
|
|
154
|
+
throw new InvalidMultiaddrError(`${direction} connection that skipped encryption must have a peer id`);
|
|
155
|
+
}
|
|
156
|
+
cryptoProtocol = 'native';
|
|
157
|
+
remotePeer = opts.remotePeer;
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
const peerIdString = maConn.remoteAddr.getComponents().findLast(c => c.code === CODE_P2P)?.value;
|
|
161
|
+
let remotePeerFromMultiaddr;
|
|
162
|
+
if (peerIdString != null) {
|
|
163
|
+
remotePeerFromMultiaddr = peerIdFromString(peerIdString);
|
|
164
|
+
}
|
|
158
165
|
opts?.onProgress?.(new CustomProgressEvent(`upgrader:encrypt-${direction}-connection`));
|
|
159
166
|
({
|
|
160
|
-
|
|
167
|
+
connection: stream,
|
|
161
168
|
remotePeer,
|
|
162
169
|
protocol: cryptoProtocol,
|
|
163
170
|
streamMuxer: muxerFactory
|
|
164
171
|
} = await (direction === 'inbound'
|
|
165
|
-
? this._encryptInbound(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
else {
|
|
174
|
-
const idStr = maConn.remoteAddr.getPeerId();
|
|
175
|
-
if (idStr == null) {
|
|
176
|
-
throw new InvalidMultiaddrError(`${direction} connection that skipped encryption must have a peer id`);
|
|
177
|
-
}
|
|
178
|
-
const remotePeerId = peerIdFromString(idStr);
|
|
179
|
-
cryptoProtocol = 'native';
|
|
180
|
-
remotePeer = remotePeerId;
|
|
172
|
+
? this._encryptInbound(stream, {
|
|
173
|
+
...opts,
|
|
174
|
+
remotePeer: remotePeerFromMultiaddr
|
|
175
|
+
})
|
|
176
|
+
: this._encryptOutbound(stream, {
|
|
177
|
+
...opts,
|
|
178
|
+
remotePeer: remotePeerFromMultiaddr
|
|
179
|
+
})));
|
|
181
180
|
}
|
|
182
181
|
// this can happen if we dial a multiaddr without a peer id, we only find
|
|
183
182
|
// out the identity of the remote after the connection is encrypted
|
|
@@ -186,89 +185,61 @@ export class Upgrader {
|
|
|
186
185
|
maConn.abort(err);
|
|
187
186
|
throw err;
|
|
188
187
|
}
|
|
189
|
-
|
|
188
|
+
// stream.pause()
|
|
189
|
+
await this.shouldBlockConnection(direction === 'inbound' ? 'denyInboundEncryptedConnection' : 'denyOutboundEncryptedConnection', remotePeer, maConn);
|
|
190
|
+
// stream.resume()
|
|
190
191
|
if (opts?.muxerFactory != null) {
|
|
191
192
|
muxerFactory = opts.muxerFactory;
|
|
192
193
|
}
|
|
193
194
|
else if (muxerFactory == null && this.streamMuxers.size > 0) {
|
|
194
195
|
opts?.onProgress?.(new CustomProgressEvent(`upgrader:multiplex-${direction}-connection`));
|
|
195
196
|
// Multiplex the connection
|
|
196
|
-
|
|
197
|
-
? this._multiplexInbound(
|
|
198
|
-
|
|
199
|
-
...encryptedConn
|
|
200
|
-
}, this.streamMuxers, opts)
|
|
201
|
-
: this._multiplexOutbound({
|
|
202
|
-
...protectedConn,
|
|
203
|
-
...encryptedConn
|
|
204
|
-
}, this.streamMuxers, opts));
|
|
205
|
-
muxerFactory = multiplexed.muxerFactory;
|
|
206
|
-
upgradedConn = multiplexed.stream;
|
|
197
|
+
muxerFactory = await (direction === 'inbound'
|
|
198
|
+
? this._multiplexInbound(stream, this.streamMuxers, opts)
|
|
199
|
+
: this._multiplexOutbound(stream, this.streamMuxers, opts));
|
|
207
200
|
}
|
|
208
201
|
}
|
|
209
202
|
catch (err) {
|
|
210
|
-
maConn.log.error('failed to upgrade
|
|
203
|
+
maConn.log.error('failed to upgrade %s connection %s %a - %e', direction, direction === 'inbound' ? 'from' : 'to', maConn.remoteAddr, err);
|
|
211
204
|
throw err;
|
|
212
205
|
}
|
|
206
|
+
// create the connection muxer if one is configured
|
|
207
|
+
if (muxerFactory != null) {
|
|
208
|
+
maConn.log('create muxer %s', muxerFactory.protocol);
|
|
209
|
+
muxer = muxerFactory.createStreamMuxer(stream);
|
|
210
|
+
}
|
|
211
|
+
// stream.pause()
|
|
213
212
|
await this.shouldBlockConnection(direction === 'inbound' ? 'denyInboundUpgradedConnection' : 'denyOutboundUpgradedConnection', remotePeer, maConn);
|
|
214
213
|
const conn = this._createConnection({
|
|
215
214
|
id,
|
|
216
215
|
cryptoProtocol,
|
|
217
216
|
direction,
|
|
218
217
|
maConn,
|
|
219
|
-
|
|
220
|
-
|
|
218
|
+
stream,
|
|
219
|
+
muxer,
|
|
221
220
|
remotePeer,
|
|
222
|
-
limits: opts?.limits
|
|
221
|
+
limits: opts?.limits,
|
|
222
|
+
closeTimeout: this.connectionCloseTimeout
|
|
223
223
|
});
|
|
224
|
-
conn.log('successfully upgraded
|
|
224
|
+
conn.log('successfully upgraded connection');
|
|
225
|
+
// stream.resume()
|
|
225
226
|
return conn;
|
|
226
227
|
}
|
|
227
228
|
/**
|
|
228
229
|
* A convenience method for generating a new `Connection`
|
|
229
230
|
*/
|
|
230
231
|
_createConnection(opts) {
|
|
231
|
-
const { id, cryptoProtocol, direction, maConn, upgradedConn, remotePeer, muxerFactory, limits } = opts;
|
|
232
|
-
let connection; // eslint-disable-line prefer-const
|
|
233
|
-
const _timeline = maConn.timeline;
|
|
234
|
-
maConn.timeline = new Proxy(_timeline, {
|
|
235
|
-
set: (...args) => {
|
|
236
|
-
if (args[1] === 'close' && args[2] != null && _timeline.close == null) {
|
|
237
|
-
// Wait for close to finish before notifying of the closure
|
|
238
|
-
(async () => {
|
|
239
|
-
try {
|
|
240
|
-
if (connection.status === 'open') {
|
|
241
|
-
await connection.close();
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
catch (err) {
|
|
245
|
-
connection.log.error('error closing connection after timeline close %e', err);
|
|
246
|
-
}
|
|
247
|
-
finally {
|
|
248
|
-
this.events.safeDispatchEvent('connection:close', {
|
|
249
|
-
detail: connection
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
})().catch(err => {
|
|
253
|
-
connection.log.error('error thrown while dispatching connection:close event %e', err);
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
return Reflect.set(...args);
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
maConn.timeline.upgraded = Date.now();
|
|
260
232
|
// Create the connection
|
|
261
|
-
connection = createConnection(this.components, {
|
|
262
|
-
|
|
263
|
-
maConn: upgradedConn,
|
|
264
|
-
remotePeer,
|
|
265
|
-
direction,
|
|
266
|
-
muxerFactory,
|
|
267
|
-
encryption: cryptoProtocol,
|
|
268
|
-
limits,
|
|
233
|
+
const connection = createConnection(this.components, {
|
|
234
|
+
...opts,
|
|
269
235
|
outboundStreamProtocolNegotiationTimeout: this.outboundStreamProtocolNegotiationTimeout,
|
|
270
236
|
inboundStreamProtocolNegotiationTimeout: this.inboundStreamProtocolNegotiationTimeout
|
|
271
237
|
});
|
|
238
|
+
connection.addEventListener('close', () => {
|
|
239
|
+
this.events.safeDispatchEvent('connection:close', {
|
|
240
|
+
detail: connection
|
|
241
|
+
});
|
|
242
|
+
});
|
|
272
243
|
this.events.safeDispatchEvent('connection:open', {
|
|
273
244
|
detail: connection
|
|
274
245
|
});
|
|
@@ -280,22 +251,18 @@ export class Upgrader {
|
|
|
280
251
|
async _encryptInbound(connection, options) {
|
|
281
252
|
const protocols = Array.from(this.connectionEncrypters.keys());
|
|
282
253
|
try {
|
|
283
|
-
const
|
|
284
|
-
...options,
|
|
285
|
-
log: connection.log
|
|
286
|
-
});
|
|
254
|
+
const protocol = await mss.handle(connection, protocols, options);
|
|
287
255
|
const encrypter = this.connectionEncrypters.get(protocol);
|
|
288
256
|
if (encrypter == null) {
|
|
289
257
|
throw new EncryptionFailedError(`no crypto module found for ${protocol}`);
|
|
290
258
|
}
|
|
291
|
-
connection.log('encrypting inbound connection
|
|
259
|
+
connection.log('encrypting inbound connection using %s', protocol);
|
|
292
260
|
return {
|
|
293
|
-
...await encrypter.secureInbound(
|
|
261
|
+
...await encrypter.secureInbound(connection, options),
|
|
294
262
|
protocol
|
|
295
263
|
};
|
|
296
264
|
}
|
|
297
265
|
catch (err) {
|
|
298
|
-
connection.log.error('encrypting inbound connection from %a failed', connection.remoteAddr, err);
|
|
299
266
|
throw new EncryptionFailedError(err.message);
|
|
300
267
|
}
|
|
301
268
|
}
|
|
@@ -307,23 +274,18 @@ export class Upgrader {
|
|
|
307
274
|
const protocols = Array.from(this.connectionEncrypters.keys());
|
|
308
275
|
try {
|
|
309
276
|
connection.log.trace('selecting encrypter from %s', protocols);
|
|
310
|
-
const
|
|
311
|
-
...options,
|
|
312
|
-
log: connection.log,
|
|
313
|
-
yieldBytes: true
|
|
314
|
-
});
|
|
277
|
+
const protocol = await mss.select(connection, protocols, options);
|
|
315
278
|
const encrypter = this.connectionEncrypters.get(protocol);
|
|
316
279
|
if (encrypter == null) {
|
|
317
280
|
throw new EncryptionFailedError(`no crypto module found for ${protocol}`);
|
|
318
281
|
}
|
|
319
|
-
connection.log('encrypting outbound connection
|
|
282
|
+
connection.log('encrypting outbound connection using %s', protocol);
|
|
320
283
|
return {
|
|
321
|
-
...await encrypter.secureOutbound(
|
|
284
|
+
...await encrypter.secureOutbound(connection, options),
|
|
322
285
|
protocol
|
|
323
286
|
};
|
|
324
287
|
}
|
|
325
288
|
catch (err) {
|
|
326
|
-
connection.log.error('encrypting outbound connection to %a failed', connection.remoteAddr, err);
|
|
327
289
|
throw new EncryptionFailedError(err.message);
|
|
328
290
|
}
|
|
329
291
|
}
|
|
@@ -331,22 +293,21 @@ export class Upgrader {
|
|
|
331
293
|
* Selects one of the given muxers via multistream-select. That
|
|
332
294
|
* muxer will be used for all future streams on the connection.
|
|
333
295
|
*/
|
|
334
|
-
async _multiplexOutbound(
|
|
296
|
+
async _multiplexOutbound(maConn, muxers, options) {
|
|
335
297
|
const protocols = Array.from(muxers.keys());
|
|
336
|
-
|
|
298
|
+
maConn.log('outbound selecting muxer %s', protocols);
|
|
337
299
|
try {
|
|
338
|
-
|
|
339
|
-
const
|
|
340
|
-
...options,
|
|
341
|
-
log: connection.log,
|
|
342
|
-
yieldBytes: true
|
|
343
|
-
});
|
|
344
|
-
connection.log('selected %s as muxer protocol', protocol);
|
|
300
|
+
maConn.log.trace('selecting stream muxer from %s', protocols);
|
|
301
|
+
const protocol = await mss.select(maConn, protocols, options);
|
|
345
302
|
const muxerFactory = muxers.get(protocol);
|
|
346
|
-
|
|
303
|
+
if (muxerFactory == null) {
|
|
304
|
+
throw new MuxerUnavailableError(`No muxer configured for protocol "${protocol}"`);
|
|
305
|
+
}
|
|
306
|
+
maConn.log('selected %s as muxer protocol', protocol);
|
|
307
|
+
return muxerFactory;
|
|
347
308
|
}
|
|
348
309
|
catch (err) {
|
|
349
|
-
|
|
310
|
+
maConn.log.error('error multiplexing outbound connection', err);
|
|
350
311
|
throw new MuxerUnavailableError(String(err));
|
|
351
312
|
}
|
|
352
313
|
}
|
|
@@ -354,20 +315,22 @@ export class Upgrader {
|
|
|
354
315
|
* Registers support for one of the given muxers via multistream-select. The
|
|
355
316
|
* selected muxer will be used for all future streams on the connection.
|
|
356
317
|
*/
|
|
357
|
-
async _multiplexInbound(
|
|
318
|
+
async _multiplexInbound(maConn, muxers, options) {
|
|
358
319
|
const protocols = Array.from(muxers.keys());
|
|
359
|
-
|
|
320
|
+
maConn.log('inbound handling muxers %s', protocols);
|
|
360
321
|
try {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
log: connection.log
|
|
364
|
-
});
|
|
322
|
+
maConn.log.trace('selecting stream muxer from %s', protocols);
|
|
323
|
+
const protocol = await mss.handle(maConn, protocols, options);
|
|
365
324
|
const muxerFactory = muxers.get(protocol);
|
|
366
|
-
|
|
325
|
+
if (muxerFactory == null) {
|
|
326
|
+
throw new MuxerUnavailableError(`No muxer configured for protocol "${protocol}"`);
|
|
327
|
+
}
|
|
328
|
+
maConn.log('selected %s as muxer protocol', protocol);
|
|
329
|
+
return muxerFactory;
|
|
367
330
|
}
|
|
368
331
|
catch (err) {
|
|
369
|
-
|
|
370
|
-
throw
|
|
332
|
+
maConn.log.error('error multiplexing inbound connection', err);
|
|
333
|
+
throw err;
|
|
371
334
|
}
|
|
372
335
|
}
|
|
373
336
|
getConnectionEncrypters() {
|
|
@@ -377,4 +340,7 @@ export class Upgrader {
|
|
|
377
340
|
return this.streamMuxers;
|
|
378
341
|
}
|
|
379
342
|
}
|
|
343
|
+
function isEncryptionSkipped(opts) {
|
|
344
|
+
return opts.skipEncryption === true;
|
|
345
|
+
}
|
|
380
346
|
//# sourceMappingURL=upgrader.js.map
|
package/dist/src/upgrader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/upgrader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,wBAAgB,QAAQ,CAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CA4BhF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function redirect(channelA, channelB) {
|
|
2
|
+
channelA.addEventListener('message', (evt) => {
|
|
3
|
+
const sendMore = channelB.send(evt.data);
|
|
4
|
+
if (sendMore === false) {
|
|
5
|
+
channelA.pause();
|
|
6
|
+
channelA.addEventListener('drain', () => {
|
|
7
|
+
channelA.resume();
|
|
8
|
+
}, {
|
|
9
|
+
once: true
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
channelB.addEventListener('message', (evt) => {
|
|
14
|
+
const sendMore = channelA.send(evt.data);
|
|
15
|
+
if (sendMore === false) {
|
|
16
|
+
channelB.pause();
|
|
17
|
+
channelB.addEventListener('drain', () => {
|
|
18
|
+
channelB.resume();
|
|
19
|
+
}, {
|
|
20
|
+
once: true
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAE,QAAuB,EAAE,QAAuB;IACxE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAExC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,EAAE,CAAA;YAEhB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtC,QAAQ,CAAC,MAAM,EAAE,CAAA;YACnB,CAAC,EAAE;gBACD,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAExC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,EAAE,CAAA;YAEhB,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtC,QAAQ,CAAC,MAAM,EAAE,CAAA;YACnB,CAAC,EAAE;gBACD,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,oBAAoB,CAAA;AACxC,eAAO,MAAM,IAAI,cAAc,CAAA"}
|
package/dist/src/version.js
CHANGED
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAA;AACxC,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAA"}
|