@dxos/network-manager 0.1.58-main.88ec9da → 0.1.58-main.8fb8ffa
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/dist/lib/browser/{chunk-GIK7R3TA.mjs → chunk-3KLH55NB.mjs} +143 -80
- package/dist/lib/browser/chunk-3KLH55NB.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +5 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +19 -148
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node/index.cjs +597 -422
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/testing/index.cjs +930 -888
- package/dist/lib/node/testing/index.cjs.map +4 -4
- package/dist/types/src/swarm/connection.d.ts.map +1 -1
- package/dist/types/src/swarm/peer.d.ts +2 -2
- package/dist/types/src/swarm/peer.d.ts.map +1 -1
- package/dist/types/src/swarm/swarm-mapper.d.ts.map +1 -1
- package/dist/types/src/swarm/swarm.d.ts +2 -2
- package/dist/types/src/swarm/swarm.d.ts.map +1 -1
- package/dist/types/src/testing/test-builder.d.ts +1 -1
- package/dist/types/src/testing/test-builder.d.ts.map +1 -1
- package/dist/types/src/tests/basic-test-suite.d.ts.map +1 -1
- package/dist/types/src/topology/star-topology.d.ts.map +1 -1
- package/dist/types/src/transport/index.d.ts +1 -0
- package/dist/types/src/transport/index.d.ts.map +1 -1
- package/dist/types/src/transport/simplepeer-transport-proxy.d.ts.map +1 -1
- package/dist/types/src/transport/simplepeer-transport-service.d.ts.map +1 -1
- package/dist/types/src/transport/simplepeer-transport.d.ts.map +1 -1
- package/dist/types/src/transport/tcp-transport.browser.d.ts +12 -0
- package/dist/types/src/transport/tcp-transport.browser.d.ts.map +1 -0
- package/package.json +18 -17
- package/src/swarm/connection.test.ts +1 -1
- package/src/swarm/connection.ts +4 -3
- package/src/swarm/peer.ts +7 -2
- package/src/swarm/swarm-mapper.ts +4 -7
- package/src/swarm/swarm.test.ts +3 -3
- package/src/swarm/swarm.ts +3 -3
- package/src/testing/test-builder.ts +1 -1
- package/src/tests/basic-test-suite.ts +1 -1
- package/src/tests/memory-transport.test.ts +2 -2
- package/src/tests/tcp-transport.test.ts +2 -2
- package/src/tests/webrtc-transport.test.ts +1 -1
- package/src/topology/star-topology.ts +1 -4
- package/src/transport/index.ts +1 -0
- package/src/transport/simplepeer-transport-proxy.ts +25 -24
- package/src/transport/simplepeer-transport-service.ts +9 -5
- package/src/transport/simplepeer-transport.ts +7 -4
- package/src/transport/tcp-transport.browser.ts +28 -0
- package/dist/lib/browser/chunk-GIK7R3TA.mjs.map +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../src/swarm/connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,EAAuB,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAYvC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAahD,UAAU,mBAAmB;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB;;OAEG;IACH,OAAO,YAAY;IAEnB;;;OAGG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,UAAU,eAAe;IAEzB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,MAAM,WAAW;IAEjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,qBAAa,UAAU;aAsBH,KAAK,EAAE,SAAS;aAChB,KAAK,EAAE,SAAS;aAChB,QAAQ,EAAE,SAAS;aACnB,SAAS,EAAE,SAAS;aACpB,SAAS,EAAE,OAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IA7B9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,UAAU,CAAwB;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,qBAAqB,CAAgB;IAE7C,QAAQ,CAAC,YAAY,yBAAgC;IACrD,QAAQ,CAAC,MAAM,cAAqB;IAE7B,WAAW,SAA8B;IAEhD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAE7B;IAEH,OAAO,CAAC,gBAAgB,CAA6B;gBAGnC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAAE,wBAAwB;IAC1C,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,OAAO,EACjB,gBAAgB,EAAE,eAAe,EACjC,SAAS,EAAE,YAAY,EACvB,iBAAiB,EAAE,gBAAgB,EACnC,UAAU,CAAC,iCAAqB;IAWnD,IAAI,KAAK,oBAER;IAED,IAAI,SAAS,0BAEZ;IAED,IAAI,QAAQ,iBAEX;IAED;;OAEG;IACG,cAAc;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../src/swarm/connection.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,EAAuB,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAYvC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAahD,UAAU,mBAAmB;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB;;OAEG;IACH,OAAO,YAAY;IAEnB;;;OAGG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,UAAU,eAAe;IAEzB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,MAAM,WAAW;IAEjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;;GAGG;AACH,qBAAa,UAAU;aAsBH,KAAK,EAAE,SAAS;aAChB,KAAK,EAAE,SAAS;aAChB,QAAQ,EAAE,SAAS;aACnB,SAAS,EAAE,SAAS;aACpB,SAAS,EAAE,OAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IA7B9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,UAAU,CAAwB;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,OAAO,CAAC,qBAAqB,CAAgB;IAC7C,OAAO,CAAC,qBAAqB,CAAgB;IAE7C,QAAQ,CAAC,YAAY,yBAAgC;IACrD,QAAQ,CAAC,MAAM,cAAqB;IAE7B,WAAW,SAA8B;IAEhD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAE7B;IAEH,OAAO,CAAC,gBAAgB,CAA6B;gBAGnC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAAE,wBAAwB;IAC1C,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,OAAO,EACjB,gBAAgB,EAAE,eAAe,EACjC,SAAS,EAAE,YAAY,EACvB,iBAAiB,EAAE,gBAAgB,EACnC,UAAU,CAAC,iCAAqB;IAWnD,IAAI,KAAK,oBAER;IAED,IAAI,SAAS,0BAEZ;IAED,IAAI,QAAQ,iBAEX;IAED;;OAEG;IACG,cAAc;IA6Ed,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK;IAsCjB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK;IAuCvB,OAAO,CAAC,WAAW;YAKL,kBAAkB;IAgChC;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,aAAa;IA2B/B,QAAQ;IAIR,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -2,11 +2,11 @@ import { Event } from '@dxos/async';
|
|
|
2
2
|
import { PublicKey } from '@dxos/keys';
|
|
3
3
|
import { SystemError } from '@dxos/protocols';
|
|
4
4
|
import { Answer } from '@dxos/protocols/proto/dxos/mesh/swarm';
|
|
5
|
+
import { Connection } from './connection';
|
|
6
|
+
import { ConnectionLimiter } from './connection-limiter';
|
|
5
7
|
import { OfferMessage, SignalMessage, SignalMessenger } from '../signal';
|
|
6
8
|
import { TransportFactory } from '../transport';
|
|
7
9
|
import { WireProtocolProvider } from '../wire-protocol';
|
|
8
|
-
import { Connection } from './connection';
|
|
9
|
-
import { ConnectionLimiter } from './connection-limiter';
|
|
10
10
|
export declare class ConnectionDisplacedError extends SystemError {
|
|
11
11
|
constructor();
|
|
12
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../../src/swarm/peer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAA8B,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAkB,WAAW,EAAgB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../../src/swarm/peer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAA8B,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAkB,WAAW,EAAgB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,qBAAa,wBAAyB,SAAQ,WAAW;;CAIxD;AAED,UAAU,aAAa;IACrB;;OAEG;IACH,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB;;OAEG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;OAEG;IACH,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD;;OAEG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAOD;;;GAGG;AACH,qBAAa,IAAI;aAwBG,EAAE,EAAE,SAAS;aACb,KAAK,EAAE,SAAS;aAChB,WAAW,EAAE,SAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IA9B7B;;OAEG;IACH,OAAO,CAAC,eAAe,CAAK;IACrB,kBAAkB,UAAQ;IACjC,OAAO,CAAC,mBAAmB,CAAC,CAAS;IAErC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IACtC,OAAO,CAAC,cAAc,CAAC,CAAU;IAE1B,UAAU,CAAC,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACI,WAAW,UAAS;IAEpB,UAAU,UAAS;IAE1B,SAAgB,mBAAmB,oBAA2B;gBAI5C,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,SAAS,EACrB,gBAAgB,EAAE,eAAe,EACjC,iBAAiB,EAAE,oBAAoB,EACvC,iBAAiB,EAAE,gBAAgB,EACnC,kBAAkB,EAAE,iBAAiB,EACrC,UAAU,EAAE,aAAa;IAG5C;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAwDrD;;OAEG;IACG,kBAAkB;IA8CxB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAsGnB,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK;IAgB3B,QAAQ,CAAC,OAAO,EAAE,aAAa;IAU/B,OAAO;CAOd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm-mapper.d.ts","sourceRoot":"","sources":["../../../../src/swarm/swarm-mapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAsB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,sBAAsB,GAAG,IAAI,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,SAAS,EAAE,CAAC;CAC1B;AAID,qBAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"swarm-mapper.d.ts","sourceRoot":"","sources":["../../../../src/swarm/swarm-mapper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAsB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,sBAAsB,GAAG,IAAI,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,SAAS,EAAE,CAAC;CAC1B;AAID,qBAAa,WAAW;IAWV,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA0D;IACnG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuD;IAE9E,QAAQ,CAAC,UAAU,oBAA2B;IAE9C,IAAI,KAAK,IAAI,QAAQ,EAAE,CAEtB;gBAE4B,MAAM,EAAE,KAAK;IA+B1C,OAAO,CAAC,OAAO;IAmDf,OAAO;CAIR"}
|
|
@@ -3,13 +3,13 @@ import { PublicKey } from '@dxos/keys';
|
|
|
3
3
|
import { Messenger } from '@dxos/messaging';
|
|
4
4
|
import { SwarmEvent } from '@dxos/protocols/proto/dxos/mesh/signal';
|
|
5
5
|
import { Answer } from '@dxos/protocols/proto/dxos/mesh/swarm';
|
|
6
|
+
import { Connection } from './connection';
|
|
7
|
+
import { ConnectionLimiter } from './connection-limiter';
|
|
6
8
|
import { OfferMessage, SignalMessage } from '../signal';
|
|
7
9
|
import { Topology } from '../topology';
|
|
8
10
|
import { TransportFactory } from '../transport';
|
|
9
11
|
import { Topic } from '../types';
|
|
10
12
|
import { WireProtocolProvider } from '../wire-protocol';
|
|
11
|
-
import { Connection } from './connection';
|
|
12
|
-
import { ConnectionLimiter } from './connection-limiter';
|
|
13
13
|
/**
|
|
14
14
|
* A single peer's view of the swarm.
|
|
15
15
|
* Manages a set of connections implemented by simple-peer instances.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../../src/swarm/swarm.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAmB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D,OAAO,
|
|
1
|
+
{"version":3,"file":"swarm.d.ts","sourceRoot":"","sources":["../../../../src/swarm/swarm.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAmB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAkB,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAmB,QAAQ,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAOxD;;;;GAIG;AACH,qBAAa,KAAK;IA0Cd,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAjDnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,IAAI,CAAiB;IAE7B,OAAO,CAAC,gBAAgB,CAAC,CAA8B;IAOvD;;OAEG;IAEH,QAAQ,CAAC,WAAW,SAA8B;IAoBlD,QAAQ,CAAC,MAAM,cAAqB;gBAMjB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,SAAS,EAC9B,SAAS,EAAE,QAAQ,EACV,iBAAiB,EAAE,oBAAoB,EACvC,UAAU,EAAE,SAAS,EACrB,iBAAiB,EAAE,gBAAgB,EACnC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,kBAAkB,EAAE,iBAAiB,EACrC,gBAAgB,SAAmB;IAkBtD,IAAI,WAAW,iBAId;IAED,IACI,SAAS,cAEZ;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IACI,KAAK,IAAI,KAAK,CAEjB;IAEK,IAAI;IAaJ,OAAO;IAWP,WAAW,CAAC,QAAQ,EAAE,QAAQ;IAiBpC,YAAY,CAAC,UAAU,EAAE,UAAU;IA8B7B,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB/C,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB/C,SAAS;IAOT,QAAQ;IAId,OAAO,CAAC,gBAAgB;YAkDV,YAAY;IAM1B,OAAO,CAAC,mBAAmB;IAuC3B;;OAEG;YACW,mBAAmB;YA0BnB,gBAAgB;CAQ/B"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { PublicKey } from '@dxos/keys';
|
|
2
2
|
import { MemorySignalManager, WebsocketSignalManager } from '@dxos/messaging';
|
|
3
3
|
import { Runtime } from '@dxos/protocols/proto/dxos/config';
|
|
4
|
+
import { TestWireProtocol, type TestTeleportExtensionFactory } from './test-wire-protocol';
|
|
4
5
|
import { NetworkManager } from '../network-manager';
|
|
5
6
|
import { FullyConnectedTopology } from '../topology';
|
|
6
7
|
import { TransportKind } from '../transport';
|
|
7
|
-
import { TestWireProtocol, type TestTeleportExtensionFactory } from './test-wire-protocol';
|
|
8
8
|
export declare const TEST_SIGNAL_HOSTS: Runtime.Services.Signal[];
|
|
9
9
|
export type TestBuilderOptions = {
|
|
10
10
|
signalHosts?: Runtime.Services.Signal[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../../src/testing/test-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EACL,mBAAmB,EAGnB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAI5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"test-builder.d.ts","sourceRoot":"","sources":["../../../../src/testing/test-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EACL,mBAAmB,EAGnB,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAI5D,OAAO,EAAE,gBAAgB,EAAE,KAAK,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAOL,aAAa,EACd,MAAM,cAAc,CAAC;AAKtB,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAEtD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAW;aAGM,OAAO,EAAE,kBAAkB;IAFvD,OAAO,CAAC,cAAc,CAAoC;gBAE9B,OAAO,GAAE,kBAAuB;IAE5D,mBAAmB;IAQnB,UAAU,CAAC,MAAM,GAAE,SAA8B;CAGlD;AAED;;GAEG;AACH,qBAAa,QAAQ;IAiBjB,OAAO,CAAC,QAAQ,CAAC,WAAW;aACZ,MAAM,EAAE,SAAS;aACjB,SAAS,CAAC;IAlB5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkE;IAY1F,OAAO,CAAC,MAAM,CAAC,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAoB;gBAGlB,WAAW,EAAE,WAAW,EACzB,MAAM,EAAE,SAAS,EACjB,SAAS,CAAC,2BAAe;IAc3C,oBAAoB,CAAC,SAAS,EAAE,aAAa;IAgEvC,IAAI;IAMJ,KAAK;IASX,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,mBAAmB;IAS/C,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,gBAAgB,GAAE,4BAAuC,GAAG,mBAAmB;IAWvG,SAAS;IAIT,QAAQ;CAGf;AAGD,qBAAa,mBAAmB;IAI5B,QAAQ,CAAC,IAAI,EAAE,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS;IACzB,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B;IALzD,QAAQ,EAAE,gBAAgB,CAAC;gBAGhB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,SAAS,EAChB,gBAAgB,EAAE,4BAA4B;IASnD,IAAI,CAAC,QAAQ,yBAA+B;IAW5C,KAAK;CAIZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-test-suite.d.ts","sourceRoot":"","sources":["../../../../src/tests/basic-test-suite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"basic-test-suite.d.ts","sourceRoot":"","sources":["../../../../src/tests/basic-test-suite.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKzC;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAiB,WAAW,6BA2LtD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"star-topology.d.ts","sourceRoot":"","sources":["../../../../src/topology/star-topology.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,YAAa,YAAW,QAAQ;
|
|
1
|
+
{"version":3,"file":"star-topology.d.ts","sourceRoot":"","sources":["../../../../src/topology/star-topology.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,YAAa,YAAW,QAAQ;IAG/B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAFzC,OAAO,CAAC,WAAW,CAAC,CAAkB;gBAET,YAAY,EAAE,SAAS;IAEpD,QAAQ;IAIR,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI;IAKvC,MAAM,IAAI,IAAI;IAwBR,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAW1C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transport/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transport/index.ts"],"names":[],"mappings":"AAIA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplepeer-transport-proxy.d.ts","sourceRoot":"","sources":["../../../../src/transport/simplepeer-transport-proxy.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW1C,OAAO,EAAgC,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAE7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF,qBAAa,wBAAyB,YAAW,SAAS;
|
|
1
|
+
{"version":3,"file":"simplepeer-transport-proxy.d.ts","sourceRoot":"","sources":["../../../../src/transport/simplepeer-transport-proxy.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW1C,OAAO,EAAgC,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAE7B,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF,qBAAa,wBAAyB,YAAW,SAAS;IAW5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAVpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiB;IAEtC,QAAQ,CAAC,MAAM,cAAe;IAC9B,QAAQ,CAAC,SAAS,cAAe;IACjC,QAAQ,CAAC,MAAM,cAAqB;IAEpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAuB;gBAEhB,OAAO,EAAE,8BAA8B;YAyCtD,iBAAiB;IAiB/B,OAAO,CAAC,WAAW;YAKL,aAAa;IAI3B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B;;OAEG;IAEH,UAAU;CAKX;AAGD,qBAAa,+BAAgC,YAAW,gBAAgB;IACtE,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,YAAY,CAAuC;IAE3D;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI;IAShE,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS;CAatD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplepeer-transport-service.d.ts","sourceRoot":"","sources":["../../../../src/transport/simplepeer-transport-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EAEX,YAAY,EACb,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"simplepeer-transport-service.d.ts","sourceRoot":"","sources":["../../../../src/transport/simplepeer-transport-service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EAEX,YAAY,EACb,MAAM,wCAAwC,CAAC;AAYhD,qBAAa,0BAA2B,YAAW,aAAa;IAGlD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAF3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6D;gBAE3D,aAAa,CAAC,KAAK;IAEhD,IAAI,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;IA2E/C,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1D,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,YAAY;CAQtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplepeer-transport.d.ts","sourceRoot":"","sources":["../../../../src/transport/simplepeer-transport.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAIjD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IAUvC,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,OAAO,CAAS;IAExB,QAAQ,CAAC,MAAM,cAAe;IAC9B,QAAQ,CAAC,SAAS,cAAe;IACjC,QAAQ,CAAC,MAAM,cAAqB;IAEpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE7B,MAAM,EAAE,yBAAyB;
|
|
1
|
+
{"version":3,"file":"simplepeer-transport.d.ts","sourceRoot":"","sources":["../../../../src/transport/simplepeer-transport.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAS,MAAM,aAAa,CAAC;AAIjD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IAUvC,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAa;IACnC,OAAO,CAAC,OAAO,CAAS;IAExB,QAAQ,CAAC,MAAM,cAAe;IAC9B,QAAQ,CAAC,SAAS,cAAe;IACjC,QAAQ,CAAC,MAAM,cAAqB;IAEpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8B;gBAE7B,MAAM,EAAE,yBAAyB;IAqFxD,OAAO;IASb,MAAM,CAAC,MAAM,EAAE,MAAM;YASP,kBAAkB;CAIjC;AAED,eAAO,MAAM,gCAAgC,kBAAmB,GAAG,KAAG,gBAMpE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Event } from '@dxos/async';
|
|
2
|
+
import { ErrorStream } from '@dxos/debug';
|
|
3
|
+
import { Transport, TransportFactory } from './transport';
|
|
4
|
+
export declare const TcpTransportFactory: TransportFactory;
|
|
5
|
+
export declare class TcpTransport implements Transport {
|
|
6
|
+
readonly closed: Event<void>;
|
|
7
|
+
readonly connected: Event<void>;
|
|
8
|
+
readonly errors: ErrorStream;
|
|
9
|
+
destroy(): Promise<void>;
|
|
10
|
+
signal(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=tcp-transport.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tcp-transport.browser.d.ts","sourceRoot":"","sources":["../../../../src/transport/tcp-transport.browser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI1D,eAAO,MAAM,mBAAmB,EAAE,gBAEjC,CAAC;AAEF,qBAAa,YAAa,YAAW,SAAS;IAC5C,SAAgB,MAAM,cAAqB;IAC3C,SAAgB,SAAS,cAAqB;IAC9C,SAAgB,MAAM,cAAqB;IAErC,OAAO;IAIb,MAAM;CAGP"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/network-manager",
|
|
3
|
-
"version": "0.1.58-main.
|
|
3
|
+
"version": "0.1.58-main.8fb8ffa",
|
|
4
4
|
"description": "Network Manager",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"author": "DXOS.org",
|
|
9
9
|
"main": "dist/lib/node/index.cjs",
|
|
10
10
|
"browser": {
|
|
11
|
+
"./src/transport/tcp-transport.ts": "./src/transport/tcp-transport.browser.ts",
|
|
11
12
|
"./dist/lib/node/index.cjs": "./dist/lib/browser/index.mjs",
|
|
12
13
|
"./dist/lib/node/testing/index.cjs": "./dist/lib/browser/testing/index.mjs",
|
|
13
14
|
"./src/transport/datachannel/index.ts": "./src/transport/datachannel/index.browser.ts"
|
|
@@ -30,21 +31,21 @@
|
|
|
30
31
|
"tiny-invariant": "^1.3.1",
|
|
31
32
|
"ws": "^7.4.4",
|
|
32
33
|
"xor-distance": "^2.0.0",
|
|
33
|
-
"@dxos/async": "0.1.58-main.
|
|
34
|
-
"@dxos/codec-protobuf": "0.1.58-main.
|
|
35
|
-
"@dxos/context": "0.1.58-main.
|
|
36
|
-
"@dxos/credentials": "0.1.58-main.
|
|
37
|
-
"@dxos/crypto": "0.1.58-main.
|
|
38
|
-
"@dxos/debug": "0.1.58-main.
|
|
39
|
-
"@dxos/invariant": "0.1.58-main.
|
|
40
|
-
"@dxos/keys": "0.1.58-main.
|
|
41
|
-
"@dxos/log": "0.1.58-main.
|
|
42
|
-
"@dxos/messaging": "0.1.58-main.
|
|
43
|
-
"@dxos/node-std": "0.1.58-main.
|
|
44
|
-
"@dxos/protocols": "0.1.58-main.
|
|
45
|
-
"@dxos/rpc": "0.1.58-main.
|
|
46
|
-
"@dxos/teleport": "0.1.58-main.
|
|
47
|
-
"@dxos/util": "0.1.58-main.
|
|
34
|
+
"@dxos/async": "0.1.58-main.8fb8ffa",
|
|
35
|
+
"@dxos/codec-protobuf": "0.1.58-main.8fb8ffa",
|
|
36
|
+
"@dxos/context": "0.1.58-main.8fb8ffa",
|
|
37
|
+
"@dxos/credentials": "0.1.58-main.8fb8ffa",
|
|
38
|
+
"@dxos/crypto": "0.1.58-main.8fb8ffa",
|
|
39
|
+
"@dxos/debug": "0.1.58-main.8fb8ffa",
|
|
40
|
+
"@dxos/invariant": "0.1.58-main.8fb8ffa",
|
|
41
|
+
"@dxos/keys": "0.1.58-main.8fb8ffa",
|
|
42
|
+
"@dxos/log": "0.1.58-main.8fb8ffa",
|
|
43
|
+
"@dxos/messaging": "0.1.58-main.8fb8ffa",
|
|
44
|
+
"@dxos/node-std": "0.1.58-main.8fb8ffa",
|
|
45
|
+
"@dxos/protocols": "0.1.58-main.8fb8ffa",
|
|
46
|
+
"@dxos/rpc": "0.1.58-main.8fb8ffa",
|
|
47
|
+
"@dxos/teleport": "0.1.58-main.8fb8ffa",
|
|
48
|
+
"@dxos/util": "0.1.58-main.8fb8ffa"
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
51
|
"@swc-node/register": "1.5.4",
|
|
@@ -54,7 +55,7 @@
|
|
|
54
55
|
"earljs": "~0.1.10",
|
|
55
56
|
"fast-check": "~3.3.0",
|
|
56
57
|
"typescript": "^5.2.2",
|
|
57
|
-
"@dxos/signal": "0.1.58-main.
|
|
58
|
+
"@dxos/signal": "0.1.58-main.8fb8ffa"
|
|
58
59
|
},
|
|
59
60
|
"publishConfig": {
|
|
60
61
|
"access": "public"
|
|
@@ -7,9 +7,9 @@ import { PublicKey } from '@dxos/keys';
|
|
|
7
7
|
import { log } from '@dxos/log';
|
|
8
8
|
import { describe, test } from '@dxos/test';
|
|
9
9
|
|
|
10
|
+
import { Connection } from './connection';
|
|
10
11
|
import { TestWireProtocol } from '../testing/test-wire-protocol';
|
|
11
12
|
import { createSimplePeerTransportFactory } from '../transport';
|
|
12
|
-
import { Connection } from './connection';
|
|
13
13
|
|
|
14
14
|
describe('Connection', () => {
|
|
15
15
|
test('initiator opens after responder', async () => {
|
package/src/swarm/connection.ts
CHANGED
|
@@ -194,13 +194,13 @@ export class Connection {
|
|
|
194
194
|
|
|
195
195
|
// TODO(nf): fix ErrorStream so instanceof works here
|
|
196
196
|
if (err instanceof ConnectionResetError) {
|
|
197
|
-
log('aborting due to transport ConnectionResetError');
|
|
197
|
+
log.warn('aborting due to transport ConnectionResetError');
|
|
198
198
|
this.abort().catch((err) => this.errors.raise(err));
|
|
199
199
|
} else if (err instanceof ConnectivityError) {
|
|
200
|
-
log('aborting due to transport ConnectivityError');
|
|
200
|
+
log.warn('aborting due to transport ConnectivityError');
|
|
201
201
|
this.abort().catch((err) => this.errors.raise(err));
|
|
202
202
|
} else if (err instanceof UnknownProtocolError) {
|
|
203
|
-
log('unsure what to do
|
|
203
|
+
log.warn('unsure what to do with UnknownProtocolError, will keep on truckin', { err });
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
if (this._state !== ConnectionState.CLOSED && this._state !== ConnectionState.CLOSING) {
|
|
@@ -220,6 +220,7 @@ export class Connection {
|
|
|
220
220
|
|
|
221
221
|
@synchronized
|
|
222
222
|
// TODO(nf): make the caller responsible for recording the reason and determining flow control.
|
|
223
|
+
// TODO(nf): make abort cancel an existing close in progress.
|
|
223
224
|
async abort(err?: Error) {
|
|
224
225
|
log('aborting...', { err });
|
|
225
226
|
if (this._state === ConnectionState.CLOSED || this._state === ConnectionState.ABORTED) {
|
package/src/swarm/peer.ts
CHANGED
|
@@ -10,11 +10,11 @@ import { log } from '@dxos/log';
|
|
|
10
10
|
import { CancelledError, SystemError, TimeoutError } from '@dxos/protocols';
|
|
11
11
|
import { Answer } from '@dxos/protocols/proto/dxos/mesh/swarm';
|
|
12
12
|
|
|
13
|
+
import { Connection, ConnectionState } from './connection';
|
|
14
|
+
import { ConnectionLimiter } from './connection-limiter';
|
|
13
15
|
import { OfferMessage, SignalMessage, SignalMessenger } from '../signal';
|
|
14
16
|
import { TransportFactory } from '../transport';
|
|
15
17
|
import { WireProtocolProvider } from '../wire-protocol';
|
|
16
|
-
import { Connection, ConnectionState } from './connection';
|
|
17
|
-
import { ConnectionLimiter } from './connection-limiter';
|
|
18
18
|
|
|
19
19
|
export class ConnectionDisplacedError extends SystemError {
|
|
20
20
|
constructor() {
|
|
@@ -108,6 +108,10 @@ export class Peer {
|
|
|
108
108
|
async onOffer(message: OfferMessage): Promise<Answer> {
|
|
109
109
|
const remoteId = message.author;
|
|
110
110
|
|
|
111
|
+
if (this.connection && ![ConnectionState.CREATED, ConnectionState.INITIAL].includes(this.connection.state)) {
|
|
112
|
+
log.info(`received offer when connection already in ${this.connection.state} state`);
|
|
113
|
+
return { accept: false };
|
|
114
|
+
}
|
|
111
115
|
// Check if we are already trying to connect to that peer.
|
|
112
116
|
if (this.connection || this.initiating) {
|
|
113
117
|
// Peer with the highest Id closes its connection, and accepts remote peer's offer.
|
|
@@ -195,6 +199,7 @@ export class Peer {
|
|
|
195
199
|
} catch (err: any) {
|
|
196
200
|
log('initiation error', { err, topic: this.topic, peerId: this.localPeerId, remoteId: this.id });
|
|
197
201
|
if (err instanceof TimeoutError) {
|
|
202
|
+
log.warn('aborting connection due to signalling failure');
|
|
198
203
|
await connection.abort(err);
|
|
199
204
|
}
|
|
200
205
|
// Calls `onStateChange` with CLOSED state.
|
|
@@ -37,10 +37,7 @@ export class SwarmMapper {
|
|
|
37
37
|
return Array.from(this._peers.values());
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
constructor(
|
|
42
|
-
private readonly _swarm: Swarm
|
|
43
|
-
) {
|
|
40
|
+
constructor(private readonly _swarm: Swarm) {
|
|
44
41
|
this._subscriptions.add(
|
|
45
42
|
_swarm.connectionAdded.on((connection) => {
|
|
46
43
|
this._update();
|
|
@@ -48,9 +45,9 @@ export class SwarmMapper {
|
|
|
48
45
|
connection.remoteId,
|
|
49
46
|
connection.stateChanged.on(() => {
|
|
50
47
|
this._update();
|
|
51
|
-
})
|
|
48
|
+
}),
|
|
52
49
|
);
|
|
53
|
-
})
|
|
50
|
+
}),
|
|
54
51
|
);
|
|
55
52
|
|
|
56
53
|
this._subscriptions.add(
|
|
@@ -58,7 +55,7 @@ export class SwarmMapper {
|
|
|
58
55
|
this._connectionSubscriptions.get(peerId)?.();
|
|
59
56
|
this._connectionSubscriptions.delete(peerId);
|
|
60
57
|
this._update();
|
|
61
|
-
})
|
|
58
|
+
}),
|
|
62
59
|
);
|
|
63
60
|
|
|
64
61
|
// if (_presence) {
|
package/src/swarm/swarm.test.ts
CHANGED
|
@@ -10,12 +10,12 @@ import { MemorySignalManager, MemorySignalManagerContext, Messenger, SignalManag
|
|
|
10
10
|
import { afterTest, describe, test } from '@dxos/test';
|
|
11
11
|
import { ComplexSet } from '@dxos/util';
|
|
12
12
|
|
|
13
|
-
import { TestWireProtocol } from '../testing/test-wire-protocol';
|
|
14
|
-
import { FullyConnectedTopology } from '../topology';
|
|
15
|
-
import { createSimplePeerTransportFactory } from '../transport';
|
|
16
13
|
import { ConnectionState } from './connection';
|
|
17
14
|
import { ConnectionLimiter } from './connection-limiter';
|
|
18
15
|
import { Swarm } from './swarm';
|
|
16
|
+
import { TestWireProtocol } from '../testing/test-wire-protocol';
|
|
17
|
+
import { FullyConnectedTopology } from '../topology';
|
|
18
|
+
import { createSimplePeerTransportFactory } from '../transport';
|
|
19
19
|
|
|
20
20
|
type TestPeer = {
|
|
21
21
|
swarm: Swarm;
|
package/src/swarm/swarm.ts
CHANGED
|
@@ -14,14 +14,14 @@ import { SwarmEvent } from '@dxos/protocols/proto/dxos/mesh/signal';
|
|
|
14
14
|
import { Answer } from '@dxos/protocols/proto/dxos/mesh/swarm';
|
|
15
15
|
import { ComplexMap, isNotNullOrUndefined } from '@dxos/util';
|
|
16
16
|
|
|
17
|
+
import { Connection, ConnectionState } from './connection';
|
|
18
|
+
import { ConnectionLimiter } from './connection-limiter';
|
|
19
|
+
import { Peer } from './peer';
|
|
17
20
|
import { SwarmMessenger, OfferMessage, SignalMessage } from '../signal';
|
|
18
21
|
import { SwarmController, Topology } from '../topology';
|
|
19
22
|
import { TransportFactory } from '../transport';
|
|
20
23
|
import { Topic } from '../types';
|
|
21
24
|
import { WireProtocolProvider } from '../wire-protocol';
|
|
22
|
-
import { Connection, ConnectionState } from './connection';
|
|
23
|
-
import { ConnectionLimiter } from './connection-limiter';
|
|
24
|
-
import { Peer } from './peer';
|
|
25
25
|
|
|
26
26
|
const INITIATION_DELAY = 100;
|
|
27
27
|
|
|
@@ -16,6 +16,7 @@ import { Runtime } from '@dxos/protocols/proto/dxos/config';
|
|
|
16
16
|
import { createLinkedPorts, createProtoRpcPeer, ProtoRpcPeer } from '@dxos/rpc';
|
|
17
17
|
import { ComplexMap } from '@dxos/util';
|
|
18
18
|
|
|
19
|
+
import { TestWireProtocol, type TestTeleportExtensionFactory } from './test-wire-protocol';
|
|
19
20
|
import { NetworkManager } from '../network-manager';
|
|
20
21
|
import { FullyConnectedTopology } from '../topology';
|
|
21
22
|
import {
|
|
@@ -28,7 +29,6 @@ import {
|
|
|
28
29
|
TransportKind,
|
|
29
30
|
} from '../transport';
|
|
30
31
|
import { TcpTransportFactory } from '../transport/tcp-transport';
|
|
31
|
-
import { TestWireProtocol, type TestTeleportExtensionFactory } from './test-wire-protocol';
|
|
32
32
|
|
|
33
33
|
// Signal server will be started by the setup script.
|
|
34
34
|
const port = process.env.SIGNAL_PORT ?? 4000;
|
|
@@ -11,9 +11,9 @@ import { log } from '@dxos/log';
|
|
|
11
11
|
import { afterTest, test } from '@dxos/test';
|
|
12
12
|
import { range } from '@dxos/util';
|
|
13
13
|
|
|
14
|
+
import { exchangeMessages, joinSwarm, leaveSwarm, openAndCloseAfterTest } from './utils';
|
|
14
15
|
import { TestBuilder } from '../testing';
|
|
15
16
|
import { FullyConnectedTopology, StarTopology } from '../topology';
|
|
16
|
-
import { exchangeMessages, joinSwarm, leaveSwarm, openAndCloseAfterTest } from './utils';
|
|
17
17
|
|
|
18
18
|
// TODO(burdon): Use PublicKey throughout (remove conversion to strings, from buffers, etc.)
|
|
19
19
|
|
|
@@ -8,10 +8,10 @@ import { PublicKey } from '@dxos/keys';
|
|
|
8
8
|
import { test } from '@dxos/test';
|
|
9
9
|
import { range } from '@dxos/util';
|
|
10
10
|
|
|
11
|
-
import { TestBuilder } from '../testing';
|
|
12
|
-
import { FullyConnectedTopology } from '../topology';
|
|
13
11
|
import { basicTestSuite } from './basic-test-suite';
|
|
14
12
|
import { exchangeMessages, joinSwarm, leaveSwarm, openAndCloseAfterTest } from './utils';
|
|
13
|
+
import { TestBuilder } from '../testing';
|
|
14
|
+
import { FullyConnectedTopology } from '../topology';
|
|
15
15
|
|
|
16
16
|
describe('Memory transport', () => {
|
|
17
17
|
const testBuilder = new TestBuilder();
|
|
@@ -8,11 +8,11 @@ import { PublicKey } from '@dxos/keys';
|
|
|
8
8
|
import { test } from '@dxos/test';
|
|
9
9
|
import { range } from '@dxos/util';
|
|
10
10
|
|
|
11
|
+
import { basicTestSuite } from './basic-test-suite';
|
|
12
|
+
import { exchangeMessages, joinSwarm, leaveSwarm, openAndCloseAfterTest } from './utils';
|
|
11
13
|
import { TestBuilder } from '../testing';
|
|
12
14
|
import { FullyConnectedTopology } from '../topology';
|
|
13
15
|
import { TransportKind } from '../transport';
|
|
14
|
-
import { basicTestSuite } from './basic-test-suite';
|
|
15
|
-
import { exchangeMessages, joinSwarm, leaveSwarm, openAndCloseAfterTest } from './utils';
|
|
16
16
|
|
|
17
17
|
describe('Tcp transport', () => {
|
|
18
18
|
const testBuilder = new TestBuilder({
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
import { describe } from '@dxos/test';
|
|
6
6
|
|
|
7
|
-
import { TEST_SIGNAL_HOSTS, TestBuilder } from '../testing';
|
|
8
7
|
import { basicTestSuite } from './basic-test-suite';
|
|
8
|
+
import { TEST_SIGNAL_HOSTS, TestBuilder } from '../testing';
|
|
9
9
|
|
|
10
10
|
describe('WebRTC transport', () => {
|
|
11
11
|
const testBuilder = new TestBuilder();
|
|
@@ -11,10 +11,7 @@ import { SwarmController, Topology } from './topology';
|
|
|
11
11
|
export class StarTopology implements Topology {
|
|
12
12
|
private _controller?: SwarmController;
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
constructor(
|
|
16
|
-
private readonly _centralPeer: PublicKey
|
|
17
|
-
) {}
|
|
14
|
+
constructor(private readonly _centralPeer: PublicKey) {}
|
|
18
15
|
|
|
19
16
|
toString() {
|
|
20
17
|
return `StarTopology(${this._centralPeer.truncate()})`;
|
package/src/transport/index.ts
CHANGED
|
@@ -43,13 +43,10 @@ export class SimplePeerTransportProxy implements Transport {
|
|
|
43
43
|
private _closed = false;
|
|
44
44
|
private _serviceStream!: Stream<BridgeEvent>;
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
constructor(
|
|
48
|
-
private readonly _params: SimplePeerTransportProxyParams
|
|
49
|
-
) {
|
|
46
|
+
constructor(private readonly _params: SimplePeerTransportProxyParams) {
|
|
50
47
|
this._serviceStream = this._params.bridgeService.open({
|
|
51
48
|
proxyId: this._proxyId,
|
|
52
|
-
initiator: this._params.initiator
|
|
49
|
+
initiator: this._params.initiator,
|
|
53
50
|
});
|
|
54
51
|
|
|
55
52
|
this._serviceStream.waitUntilReady().then(
|
|
@@ -65,21 +62,25 @@ export class SimplePeerTransportProxy implements Transport {
|
|
|
65
62
|
}
|
|
66
63
|
});
|
|
67
64
|
|
|
68
|
-
this._params.stream.pipe(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
65
|
+
this._params.stream.pipe(
|
|
66
|
+
new Writable({
|
|
67
|
+
write: (chunk, _, callback) => {
|
|
68
|
+
this._params.bridgeService
|
|
69
|
+
.sendData({
|
|
70
|
+
proxyId: this._proxyId,
|
|
71
|
+
payload: chunk,
|
|
72
|
+
})
|
|
73
|
+
.then(
|
|
74
|
+
() => callback(),
|
|
75
|
+
(err: any) => {
|
|
76
|
+
log.catch(err);
|
|
77
|
+
},
|
|
78
|
+
);
|
|
79
|
+
},
|
|
80
|
+
}),
|
|
81
|
+
);
|
|
81
82
|
},
|
|
82
|
-
(error) => log.catch(error)
|
|
83
|
+
(error) => log.catch(error),
|
|
83
84
|
);
|
|
84
85
|
}
|
|
85
86
|
|
|
@@ -185,15 +186,15 @@ export class SimplePeerTransportProxyFactory implements TransportFactory {
|
|
|
185
186
|
const decodeError = (err: Error | string) => {
|
|
186
187
|
const message = typeof err === 'string' ? err : err.message;
|
|
187
188
|
|
|
188
|
-
if (message.includes('
|
|
189
|
+
if (message.includes('CONNECTION_RESET')) {
|
|
189
190
|
return new ConnectionResetError(message);
|
|
190
|
-
} else if (message.includes('
|
|
191
|
+
} else if (message.includes('TIMEOUT')) {
|
|
191
192
|
return new TimeoutError(message);
|
|
192
|
-
} else if (message.includes('
|
|
193
|
+
} else if (message.includes('PROTOCOL_ERROR')) {
|
|
193
194
|
return new ProtocolError(message);
|
|
194
|
-
} else if (message.includes('
|
|
195
|
+
} else if (message.includes('CONNECTIVITY_ERROR')) {
|
|
195
196
|
return new ConnectivityError(message);
|
|
196
|
-
} else if (message.includes('
|
|
197
|
+
} else if (message.includes('UNKNOWN_PROTOCOL_ERROR')) {
|
|
197
198
|
return new UnknownProtocolError(message);
|
|
198
199
|
} else {
|
|
199
200
|
return typeof err === 'string' ? new Error(err) : err;
|
|
@@ -25,15 +25,13 @@ type TransportState = {
|
|
|
25
25
|
transport: SimplePeerTransport;
|
|
26
26
|
stream: Duplex;
|
|
27
27
|
writeCallbacks: (() => void)[];
|
|
28
|
+
state: 'OPEN' | 'CLOSED';
|
|
28
29
|
};
|
|
29
30
|
|
|
30
31
|
export class SimplePeerTransportService implements BridgeService {
|
|
31
32
|
private readonly transports = new ComplexMap<PublicKey, TransportState>(PublicKey.hash);
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
constructor(
|
|
35
|
-
private readonly _webrtcConfig?: any
|
|
36
|
-
) { }
|
|
34
|
+
constructor(private readonly _webrtcConfig?: any) {}
|
|
37
35
|
|
|
38
36
|
open(request: ConnectionRequest): Stream<BridgeEvent> {
|
|
39
37
|
const rpcStream: Stream<BridgeEvent> = new Stream(({ ready, next, close }) => {
|
|
@@ -99,6 +97,7 @@ export class SimplePeerTransportService implements BridgeService {
|
|
|
99
97
|
transport,
|
|
100
98
|
stream: duplex,
|
|
101
99
|
writeCallbacks: [],
|
|
100
|
+
state: 'OPEN',
|
|
102
101
|
};
|
|
103
102
|
|
|
104
103
|
ready();
|
|
@@ -115,6 +114,9 @@ export class SimplePeerTransportService implements BridgeService {
|
|
|
115
114
|
}
|
|
116
115
|
|
|
117
116
|
async sendData({ proxyId, payload }: DataRequest): Promise<void> {
|
|
117
|
+
if (this.transports.get(proxyId)?.state !== 'OPEN') {
|
|
118
|
+
log.debug('transport is closed');
|
|
119
|
+
}
|
|
118
120
|
invariant(this.transports.has(proxyId));
|
|
119
121
|
const state = this.transports.get(proxyId)!;
|
|
120
122
|
const bufferHasSpace = state.stream.push(payload);
|
|
@@ -128,7 +130,9 @@ export class SimplePeerTransportService implements BridgeService {
|
|
|
128
130
|
async close({ proxyId }: CloseRequest) {
|
|
129
131
|
await this.transports.get(proxyId)?.transport.destroy();
|
|
130
132
|
await this.transports.get(proxyId)?.stream.end();
|
|
131
|
-
this.transports.
|
|
133
|
+
if (this.transports.get(proxyId)) {
|
|
134
|
+
this.transports.get(proxyId)!.state = 'CLOSED';
|
|
135
|
+
}
|
|
132
136
|
log('Closed.');
|
|
133
137
|
}
|
|
134
138
|
}
|
|
@@ -72,30 +72,33 @@ export class SimplePeerTransport implements Transport {
|
|
|
72
72
|
} else {
|
|
73
73
|
this.errors.raise(new UnknownProtocolError('unknown RTCError', err));
|
|
74
74
|
}
|
|
75
|
-
|
|
76
|
-
// Safari specific? are all errors of code: "DATA_CHANNEL_ERROR" connection aborts?
|
|
77
|
-
} else if (err.name === 'InvalidStateError') {
|
|
78
|
-
this.errors.raise(new ConnectionResetError('safari WebRTC error', err));
|
|
79
75
|
// catch more generic simple-peer errors: https://github.com/feross/simple-peer/blob/master/README.md#error-codes
|
|
80
76
|
} else if ('code' in err) {
|
|
77
|
+
log.info('simple-peer error', err);
|
|
81
78
|
switch (err.code) {
|
|
82
79
|
case 'ERR_WEBRTC_SUPPORT':
|
|
83
80
|
this.errors.raise(new ProtocolError('WebRTC not supported', err));
|
|
81
|
+
break;
|
|
84
82
|
case 'ERR_ICE_CONNECTION_FAILURE':
|
|
85
83
|
case 'ERR_DATA_CHANNEL':
|
|
86
84
|
case 'ERR_CONNECTION_FAILURE':
|
|
87
85
|
case 'ERR_SIGNALING':
|
|
88
86
|
this.errors.raise(new ConnectivityError('unknown communication failure', err));
|
|
87
|
+
break;
|
|
88
|
+
// errors due to library issues or improper API usage
|
|
89
89
|
case 'ERR_CREATE_OFFER':
|
|
90
90
|
case 'ERR_CREATE_ANSWER':
|
|
91
91
|
case 'ERR_SET_LOCAL_DESCRIPTION':
|
|
92
92
|
case 'ERR_SET_REMOTE_DESCRIPTION':
|
|
93
93
|
case 'ERR_ADD_ICE_CANDIDATE':
|
|
94
94
|
this.errors.raise(new UnknownProtocolError('unknown simple-peer library failure', err));
|
|
95
|
+
break;
|
|
95
96
|
default:
|
|
96
97
|
this.errors.raise(new Error('unknown simple-peer error'));
|
|
98
|
+
break;
|
|
97
99
|
}
|
|
98
100
|
} else {
|
|
101
|
+
log.info('unknown peer connection error', err);
|
|
99
102
|
this.errors.raise(err);
|
|
100
103
|
}
|
|
101
104
|
|