@libp2p/interface-compliance-tests 1.1.15 → 1.1.18

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.
Files changed (135) hide show
  1. package/dist/src/connection-encrypter/index.d.ts +2 -2
  2. package/dist/src/connection-encrypter/index.d.ts.map +1 -1
  3. package/dist/src/connection-encrypter/index.js.map +1 -1
  4. package/dist/src/mocks/connection-encrypter.d.ts +3 -0
  5. package/dist/src/mocks/connection-encrypter.d.ts.map +1 -0
  6. package/dist/src/mocks/connection-encrypter.js +93 -0
  7. package/dist/src/mocks/connection-encrypter.js.map +1 -0
  8. package/dist/src/mocks/connection-manager.d.ts +6 -3
  9. package/dist/src/mocks/connection-manager.d.ts.map +1 -1
  10. package/dist/src/mocks/connection-manager.js +9 -0
  11. package/dist/src/mocks/connection-manager.js.map +1 -1
  12. package/dist/src/mocks/connection.d.ts +1 -1
  13. package/dist/src/mocks/connection.d.ts.map +1 -1
  14. package/dist/src/mocks/connection.js +68 -49
  15. package/dist/src/mocks/connection.js.map +1 -1
  16. package/dist/src/mocks/duplex.d.ts +3 -0
  17. package/dist/src/mocks/duplex.d.ts.map +1 -0
  18. package/dist/src/mocks/duplex.js +7 -0
  19. package/dist/src/mocks/duplex.js.map +1 -0
  20. package/dist/src/mocks/index.d.ts +2 -1
  21. package/dist/src/mocks/index.d.ts.map +1 -1
  22. package/dist/src/mocks/index.js +2 -1
  23. package/dist/src/mocks/index.js.map +1 -1
  24. package/dist/src/mocks/multiaddr-connection.d.ts +12 -0
  25. package/dist/src/mocks/multiaddr-connection.d.ts.map +1 -1
  26. package/dist/src/mocks/multiaddr-connection.js +37 -0
  27. package/dist/src/mocks/multiaddr-connection.js.map +1 -1
  28. package/dist/src/mocks/muxer.d.ts +8 -2
  29. package/dist/src/mocks/muxer.d.ts.map +1 -1
  30. package/dist/src/mocks/muxer.js +18 -9
  31. package/dist/src/mocks/muxer.js.map +1 -1
  32. package/dist/src/mocks/registrar.d.ts +6 -6
  33. package/dist/src/mocks/registrar.d.ts.map +1 -1
  34. package/dist/src/mocks/registrar.js +23 -33
  35. package/dist/src/mocks/registrar.js.map +1 -1
  36. package/dist/src/mocks/upgrader.d.ts +10 -2
  37. package/dist/src/mocks/upgrader.d.ts.map +1 -1
  38. package/dist/src/mocks/upgrader.js +28 -23
  39. package/dist/src/mocks/upgrader.js.map +1 -1
  40. package/dist/src/pubsub/api.d.ts +3 -4
  41. package/dist/src/pubsub/api.d.ts.map +1 -1
  42. package/dist/src/pubsub/api.js +8 -3
  43. package/dist/src/pubsub/api.js.map +1 -1
  44. package/dist/src/pubsub/connection-handlers.d.ts +3 -4
  45. package/dist/src/pubsub/connection-handlers.d.ts.map +1 -1
  46. package/dist/src/pubsub/connection-handlers.js +41 -16
  47. package/dist/src/pubsub/connection-handlers.js.map +1 -1
  48. package/dist/src/pubsub/emit-self.d.ts +3 -4
  49. package/dist/src/pubsub/emit-self.d.ts.map +1 -1
  50. package/dist/src/pubsub/emit-self.js +15 -6
  51. package/dist/src/pubsub/emit-self.js.map +1 -1
  52. package/dist/src/pubsub/index.d.ts +7 -11
  53. package/dist/src/pubsub/index.d.ts.map +1 -1
  54. package/dist/src/pubsub/index.js.map +1 -1
  55. package/dist/src/pubsub/messages.d.ts +3 -4
  56. package/dist/src/pubsub/messages.d.ts.map +1 -1
  57. package/dist/src/pubsub/messages.js +13 -6
  58. package/dist/src/pubsub/messages.js.map +1 -1
  59. package/dist/src/pubsub/multiple-nodes.d.ts +3 -4
  60. package/dist/src/pubsub/multiple-nodes.d.ts.map +1 -1
  61. package/dist/src/pubsub/multiple-nodes.js +57 -24
  62. package/dist/src/pubsub/multiple-nodes.js.map +1 -1
  63. package/dist/src/pubsub/two-nodes.d.ts +3 -4
  64. package/dist/src/pubsub/two-nodes.d.ts.map +1 -1
  65. package/dist/src/pubsub/two-nodes.js +16 -7
  66. package/dist/src/pubsub/two-nodes.js.map +1 -1
  67. package/dist/src/pubsub/utils.d.ts +2 -2
  68. package/dist/src/pubsub/utils.js +1 -1
  69. package/dist/src/pubsub/utils.js.map +1 -1
  70. package/dist/src/stream-muxer/base-test.d.ts +2 -2
  71. package/dist/src/stream-muxer/base-test.d.ts.map +1 -1
  72. package/dist/src/stream-muxer/base-test.js +17 -8
  73. package/dist/src/stream-muxer/base-test.js.map +1 -1
  74. package/dist/src/stream-muxer/close-test.d.ts +2 -2
  75. package/dist/src/stream-muxer/close-test.d.ts.map +1 -1
  76. package/dist/src/stream-muxer/close-test.js +9 -4
  77. package/dist/src/stream-muxer/close-test.js.map +1 -1
  78. package/dist/src/stream-muxer/index.d.ts +2 -2
  79. package/dist/src/stream-muxer/index.d.ts.map +1 -1
  80. package/dist/src/stream-muxer/index.js.map +1 -1
  81. package/dist/src/stream-muxer/mega-stress-test.d.ts +2 -2
  82. package/dist/src/stream-muxer/mega-stress-test.d.ts.map +1 -1
  83. package/dist/src/stream-muxer/mega-stress-test.js +5 -1
  84. package/dist/src/stream-muxer/mega-stress-test.js.map +1 -1
  85. package/dist/src/stream-muxer/spawner.d.ts +2 -2
  86. package/dist/src/stream-muxer/spawner.d.ts.map +1 -1
  87. package/dist/src/stream-muxer/spawner.js.map +1 -1
  88. package/dist/src/stream-muxer/stress-test.d.ts +2 -2
  89. package/dist/src/stream-muxer/stress-test.d.ts.map +1 -1
  90. package/dist/src/stream-muxer/stress-test.js +5 -1
  91. package/dist/src/stream-muxer/stress-test.js.map +1 -1
  92. package/dist/src/transport/dial-test.d.ts +2 -2
  93. package/dist/src/transport/dial-test.d.ts.map +1 -1
  94. package/dist/src/transport/dial-test.js +17 -9
  95. package/dist/src/transport/dial-test.js.map +1 -1
  96. package/dist/src/transport/filter-test.d.ts +2 -2
  97. package/dist/src/transport/filter-test.d.ts.map +1 -1
  98. package/dist/src/transport/filter-test.js +1 -2
  99. package/dist/src/transport/filter-test.js.map +1 -1
  100. package/dist/src/transport/index.d.ts +3 -6
  101. package/dist/src/transport/index.d.ts.map +1 -1
  102. package/dist/src/transport/index.js.map +1 -1
  103. package/dist/src/transport/listen-test.d.ts +2 -2
  104. package/dist/src/transport/listen-test.d.ts.map +1 -1
  105. package/dist/src/transport/listen-test.js +34 -17
  106. package/dist/src/transport/listen-test.js.map +1 -1
  107. package/package.json +8 -8
  108. package/src/connection-encrypter/index.ts +3 -3
  109. package/src/mocks/connection-encrypter.ts +110 -0
  110. package/src/mocks/connection-manager.ts +15 -3
  111. package/src/mocks/connection.ts +104 -57
  112. package/src/mocks/duplex.ts +8 -0
  113. package/src/mocks/index.ts +2 -1
  114. package/src/mocks/multiaddr-connection.ts +47 -0
  115. package/src/mocks/muxer.ts +29 -19
  116. package/src/mocks/registrar.ts +30 -40
  117. package/src/mocks/upgrader.ts +32 -22
  118. package/src/pubsub/api.ts +16 -11
  119. package/src/pubsub/connection-handlers.ts +64 -39
  120. package/src/pubsub/emit-self.ts +21 -13
  121. package/src/pubsub/index.ts +7 -11
  122. package/src/pubsub/messages.ts +23 -14
  123. package/src/pubsub/multiple-nodes.ts +75 -42
  124. package/src/pubsub/two-nodes.ts +29 -20
  125. package/src/pubsub/utils.ts +4 -4
  126. package/src/stream-muxer/base-test.ts +19 -10
  127. package/src/stream-muxer/close-test.ts +11 -6
  128. package/src/stream-muxer/index.ts +2 -2
  129. package/src/stream-muxer/mega-stress-test.ts +7 -3
  130. package/src/stream-muxer/spawner.ts +2 -2
  131. package/src/stream-muxer/stress-test.ts +7 -3
  132. package/src/transport/dial-test.ts +21 -13
  133. package/src/transport/filter-test.ts +4 -5
  134. package/src/transport/index.ts +3 -7
  135. package/src/transport/listen-test.ts +39 -22
@@ -1,5 +1,5 @@
1
1
  import type { TestSetup } from '../index.js';
2
- import type { Encrypter } from '@libp2p/interfaces/connection-encrypter';
3
- declare const _default: (common: TestSetup<Encrypter>) => void;
2
+ import type { ConnectionEncrypter } from '@libp2p/interfaces/connection-encrypter';
3
+ declare const _default: (common: TestSetup<ConnectionEncrypter>) => void;
4
4
  export default _default;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-encrypter/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;iCAIhD,UAAU,SAAS,CAAC;AAA5C,wBA0FC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection-encrypter/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;iCAI1D,UAAU,mBAAmB,CAAC;AAAtD,wBA0FC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connection-encrypter/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connection-encrypter/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ConnectionEncrypter } from '@libp2p/interfaces/connection-encrypter';
2
+ export declare function mockConnectionEncrypter(): ConnectionEncrypter;
3
+ //# sourceMappingURL=connection-encrypter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-encrypter.d.ts","sourceRoot":"","sources":["../../../src/mocks/connection-encrypter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAYlF,wBAAgB,uBAAuB,wBA2FtC"}
@@ -0,0 +1,93 @@
1
+ import { peerIdFromBytes } from '@libp2p/peer-id';
2
+ import { handshake } from 'it-handshake';
3
+ import { duplexPair } from 'it-pair/duplex';
4
+ import { pipe } from 'it-pipe';
5
+ import { UnexpectedPeerError } from '@libp2p/interfaces/connection-encrypter/errors';
6
+ import { Multiaddr } from '@multiformats/multiaddr';
7
+ // A basic transform that does nothing to the data
8
+ const transform = () => {
9
+ return (source) => (async function* () {
10
+ for await (const chunk of source) {
11
+ yield chunk;
12
+ }
13
+ })();
14
+ };
15
+ export function mockConnectionEncrypter() {
16
+ const encrypter = {
17
+ protocol: 'insecure',
18
+ secureInbound: async (localPeer, duplex, expectedPeer) => {
19
+ // 1. Perform a basic handshake.
20
+ const shake = handshake(duplex);
21
+ shake.write(localPeer.toBytes());
22
+ const remoteId = await shake.read();
23
+ if (remoteId == null) {
24
+ throw new Error('Could not read remote ID');
25
+ }
26
+ const remotePeer = peerIdFromBytes(remoteId.slice());
27
+ shake.rest();
28
+ if (expectedPeer != null && !expectedPeer.equals(remotePeer)) {
29
+ throw new UnexpectedPeerError();
30
+ }
31
+ // 2. Create your encryption box/unbox wrapper
32
+ const wrapper = duplexPair();
33
+ const encrypt = transform(); // Use transform iterables to modify data
34
+ const decrypt = transform();
35
+ void pipe(wrapper[0], // We write to wrapper
36
+ encrypt, // The data is encrypted
37
+ shake.stream, // It goes to the remote peer
38
+ decrypt, // Decrypt the incoming data
39
+ wrapper[0] // Pipe to the wrapper
40
+ );
41
+ return {
42
+ conn: {
43
+ ...wrapper[1],
44
+ close: async () => { },
45
+ localAddr: new Multiaddr('/ip4/127.0.0.1/tcp/4001'),
46
+ remoteAddr: new Multiaddr('/ip4/127.0.0.1/tcp/4002'),
47
+ timeline: {
48
+ open: Date.now()
49
+ },
50
+ conn: true
51
+ },
52
+ remotePeer,
53
+ remoteEarlyData: new Uint8Array(0)
54
+ };
55
+ },
56
+ secureOutbound: async (localPeer, duplex, remotePeer) => {
57
+ // 1. Perform a basic handshake.
58
+ const shake = handshake(duplex);
59
+ shake.write(localPeer.toBytes());
60
+ const remoteId = await shake.read();
61
+ if (remoteId == null) {
62
+ throw new Error('Could not read remote ID');
63
+ }
64
+ shake.rest();
65
+ // 2. Create your encryption box/unbox wrapper
66
+ const wrapper = duplexPair();
67
+ const encrypt = transform();
68
+ const decrypt = transform();
69
+ void pipe(wrapper[0], // We write to wrapper
70
+ encrypt, // The data is encrypted
71
+ shake.stream, // It goes to the remote peer
72
+ decrypt, // Decrypt the incoming data
73
+ wrapper[0] // Pipe to the wrapper
74
+ );
75
+ return {
76
+ conn: {
77
+ ...wrapper[1],
78
+ close: async () => { },
79
+ localAddr: new Multiaddr('/ip4/127.0.0.1/tcp/4001'),
80
+ remoteAddr: new Multiaddr('/ip4/127.0.0.1/tcp/4002'),
81
+ timeline: {
82
+ open: Date.now()
83
+ },
84
+ conn: true
85
+ },
86
+ remotePeer: peerIdFromBytes(remoteId.slice()),
87
+ remoteEarlyData: new Uint8Array(0)
88
+ };
89
+ }
90
+ };
91
+ return encrypter;
92
+ }
93
+ //# sourceMappingURL=connection-encrypter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-encrypter.js","sourceRoot":"","sources":["../../../src/mocks/connection-encrypter.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import { EventEmitter } from '@libp2p/interfaces';
2
- import type { Connection } from '@libp2p/interfaces/src/connection';
3
- import type { PeerId } from '@libp2p/interfaces/src/peer-id';
4
- import type { ConnectionManager, ConnectionManagerEvents } from '@libp2p/interfaces/src/registrar';
2
+ import type { Connection } from '@libp2p/interfaces/connection';
3
+ import type { PeerId } from '@libp2p/interfaces/peer-id';
4
+ import type { ConnectionManager, ConnectionManagerEvents } from '@libp2p/interfaces/registrar';
5
5
  declare class MockConnectionManager extends EventEmitter<ConnectionManagerEvents> implements ConnectionManager {
6
+ getConnectionMap(): Map<string, Connection[]>;
7
+ getConnectionList(): Connection[];
8
+ getConnections(): Connection[];
6
9
  getConnection(peerId: PeerId): Connection | undefined;
7
10
  listenerCount(type: string): number;
8
11
  addEventListener<U extends keyof ConnectionManagerEvents>(type: U, callback: ((evt: ConnectionManagerEvents[U]) => void) | {
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../src/mocks/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAElG,cAAM,qBAAsB,SAAQ,YAAY,CAAC,uBAAuB,CAAE,YAAW,iBAAiB;IACpG,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAItD,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAIpC,gBAAgB,CAAC,CAAC,SAAS,MAAM,uBAAuB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAIhP,mBAAmB,CAAC,CAAC,SAAS,MAAM,uBAAuB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI;IAI9P,aAAa,CAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAGtC;AAED,wBAAgB,qBAAqB,0BAEpC"}
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../src/mocks/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAE9F,cAAM,qBAAsB,SAAQ,YAAY,CAAC,uBAAuB,CAAE,YAAW,iBAAiB;IACpG,gBAAgB,IAAK,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAI9C,iBAAiB,IAAK,UAAU,EAAE;IAIlC,cAAc,IAAK,UAAU,EAAE;IAI/B,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAItD,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAIpC,gBAAgB,CAAC,CAAC,SAAS,MAAM,uBAAuB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI;IAIhP,mBAAmB,CAAC,CAAC,SAAS,MAAM,uBAAuB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG;QAAE,WAAW,EAAE,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI;IAI9P,aAAa,CAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAGtC;AAED,wBAAgB,qBAAqB,0BAEpC"}
@@ -1,5 +1,14 @@
1
1
  import { EventEmitter } from '@libp2p/interfaces';
2
2
  class MockConnectionManager extends EventEmitter {
3
+ getConnectionMap() {
4
+ throw new Error('Method not implemented.');
5
+ }
6
+ getConnectionList() {
7
+ throw new Error('Method not implemented.');
8
+ }
9
+ getConnections() {
10
+ throw new Error('Method not implemented.');
11
+ }
3
12
  getConnection(peerId) {
4
13
  throw new Error('Method not implemented.');
5
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../../src/mocks/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKjD,MAAM,qBAAsB,SAAQ,YAAqC;IACvE,aAAa,CAAE,MAAc;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,aAAa,CAAE,IAAY;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,gBAAgB,CAA0C,IAAO,EAAE,QAAyH,EAAE,OAA2C;QACvO,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,mBAAmB,CAA0C,IAAO,EAAE,QAAuI,EAAE,OAAwC;QACrP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,aAAa,CAAE,KAAY;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,qBAAqB,EAAE,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../../src/mocks/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAKjD,MAAM,qBAAsB,SAAQ,YAAqC;IACvE,gBAAgB;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,iBAAiB;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,cAAc;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,aAAa,CAAE,MAAc;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,aAAa,CAAE,IAAY;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,gBAAgB,CAA0C,IAAO,EAAE,QAAyH,EAAE,OAA2C;QACvO,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,mBAAmB,CAA0C,IAAO,EAAE,QAAuI,EAAE,OAAwC;QACrP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,aAAa,CAAE,KAAY;QACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,qBAAqB,EAAE,CAAA;AACpC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { MultiaddrConnection } from '@libp2p/interfaces/transport';
2
2
  import type { Connection, Stream } from '@libp2p/interfaces/connection';
3
3
  import type { Duplex } from 'it-stream-types';
4
- import type { PeerId } from '@libp2p/interfaces/src/peer-id';
4
+ import type { PeerId } from '@libp2p/interfaces/peer-id';
5
5
  import type { Registrar } from '@libp2p/interfaces/registrar';
6
6
  export interface MockConnectionOptions {
7
7
  direction?: 'inbound' | 'outbound';
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/mocks/connection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAA4B,MAAM,+BAA+B,CAAA;AACjG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAQ7D,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IAClC,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,wBAAgB,cAAc,CAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,GAAE,qBAA0B,GAAG,UAAU,CAiGzG;AAED,wBAAgB,UAAU,CAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAW9D;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,cAAc,CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAE,UAAU,EAAE,UAAU,CAAE,CAe5E"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/mocks/connection.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAA4C,MAAM,+BAA+B,CAAA;AACjH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAW7D,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;IAClC,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AA4FD,wBAAgB,cAAc,CAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,GAAE,qBAA0B,GAAG,UAAU,CAmDzG;AAED,wBAAgB,UAAU,CAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAW9D;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;CACrB;AAED,wBAAgB,cAAc,CAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAE,UAAU,EAAE,UAAU,CAAE,CAe5E"}
@@ -6,8 +6,67 @@ import { mockMultiaddrConnection } from './multiaddr-connection.js';
6
6
  import { mockRegistrar } from './registrar.js';
7
7
  import { Dialer, Listener } from '@libp2p/multistream-select';
8
8
  import { logger } from '@libp2p/logger';
9
- import { CustomEvent } from '@libp2p/interfaces';
9
+ import * as STATUS from '@libp2p/interfaces/connection/status';
10
+ import { Components } from '@libp2p/interfaces/components';
10
11
  const log = logger('libp2p:mock-connection');
12
+ class MockConnection {
13
+ constructor(init) {
14
+ const { remoteAddr, remotePeer, direction, maConn, muxer } = init;
15
+ this.id = `mock-connection-${Math.random()}`;
16
+ this.remoteAddr = remoteAddr;
17
+ this.remotePeer = remotePeer;
18
+ this.direction = direction;
19
+ this.stat = {
20
+ status: STATUS.OPEN,
21
+ direction,
22
+ timeline: maConn.timeline,
23
+ multiplexer: 'test-multiplexer',
24
+ encryption: 'yes-yes-very-secure'
25
+ };
26
+ this.registry = new Map();
27
+ this.streams = [];
28
+ this.tags = [];
29
+ this.muxer = muxer;
30
+ this.maConn = maConn;
31
+ }
32
+ async newStream(protocols) {
33
+ if (!Array.isArray(protocols)) {
34
+ protocols = [protocols];
35
+ }
36
+ if (protocols.length === 0) {
37
+ throw new Error('protocols must have a length');
38
+ }
39
+ const id = `${Math.random()}`;
40
+ const stream = this.muxer.newStream(id);
41
+ const mss = new Dialer(stream);
42
+ const result = await mss.select(protocols);
43
+ const streamData = {
44
+ protocol: result.protocol,
45
+ stream: {
46
+ ...stream,
47
+ ...result.stream
48
+ }
49
+ };
50
+ this.addStream(stream, { protocol: result.protocol, metadata: {} });
51
+ return streamData;
52
+ }
53
+ addStream(stream, metadata) {
54
+ this.registry.set(stream.id, {
55
+ protocol: metadata.protocol ?? '',
56
+ metadata: metadata.metadata ?? {}
57
+ });
58
+ this.streams.push(stream);
59
+ }
60
+ removeStream(id) {
61
+ this.registry.delete(id);
62
+ this.streams = this.streams.filter(stream => stream.id !== id);
63
+ }
64
+ async close() {
65
+ this.stat.status = STATUS.CLOSING;
66
+ await this.maConn.close();
67
+ this.stat.status = STATUS.CLOSED;
68
+ }
69
+ }
11
70
  export function mockConnection(maConn, opts = {}) {
12
71
  const remoteAddr = maConn.remoteAddr;
13
72
  const remotePeerIdStr = remoteAddr.getPeerId() ?? '12D3KooWCrhmFM1BCPGBkNzbPfDk4cjYmtAYSpZwUBC69Qg2kZyq';
@@ -15,11 +74,10 @@ export function mockConnection(maConn, opts = {}) {
15
74
  throw new Error('Remote multiaddr must contain a peer id');
16
75
  }
17
76
  const remotePeer = peerIdFromString(remotePeerIdStr);
18
- const registry = new Map();
19
- const streams = [];
20
77
  const direction = opts.direction ?? 'inbound';
21
78
  const registrar = opts.registrar ?? mockRegistrar();
22
- const muxer = mockMuxer({
79
+ const muxerFactory = mockMuxer();
80
+ const muxer = muxerFactory.createStreamMuxer(new Components(), {
23
81
  onIncomingStream: (muxedStream) => {
24
82
  const mss = new Listener(muxedStream);
25
83
  try {
@@ -29,9 +87,7 @@ export function mockConnection(maConn, opts = {}) {
29
87
  muxedStream = { ...muxedStream, ...stream };
30
88
  connection.addStream(muxedStream, { protocol, metadata: {} });
31
89
  const handler = registrar.getHandler(protocol);
32
- handler(new CustomEvent('incomingStream', {
33
- detail: { connection, stream: muxedStream, protocol }
34
- }));
90
+ handler({ connection, stream: muxedStream, protocol });
35
91
  }).catch(err => {
36
92
  log.error(err);
37
93
  });
@@ -45,50 +101,13 @@ export function mockConnection(maConn, opts = {}) {
45
101
  }
46
102
  });
47
103
  void pipe(maConn, muxer, maConn);
48
- const connection = {
49
- id: 'mock-connection',
104
+ const connection = new MockConnection({
50
105
  remoteAddr,
51
106
  remotePeer,
52
- stat: {
53
- status: 'OPEN',
54
- direction,
55
- timeline: maConn.timeline,
56
- multiplexer: 'test-multiplexer',
57
- encryption: 'yes-yes-very-secure'
58
- },
59
- registry,
60
- tags: [],
61
- streams,
62
- newStream: async (protocols) => {
63
- if (!Array.isArray(protocols)) {
64
- protocols = [protocols];
65
- }
66
- if (protocols.length === 0) {
67
- throw new Error('protocols must have a length');
68
- }
69
- const id = `${Math.random()}`;
70
- const stream = muxer.newStream(id);
71
- const mss = new Dialer(stream);
72
- const result = await mss.select(protocols);
73
- const streamData = {
74
- protocol: result.protocol,
75
- stream: {
76
- ...stream,
77
- ...result.stream
78
- }
79
- };
80
- registry.set(id, streamData);
81
- return streamData;
82
- },
83
- addStream: (stream, metadata) => {
84
- },
85
- removeStream: (id) => {
86
- registry.delete(id);
87
- },
88
- close: async () => {
89
- await maConn.close();
90
- }
91
- };
107
+ direction,
108
+ maConn,
109
+ muxer
110
+ });
92
111
  return connection;
93
112
  }
94
113
  export function mockStream(stream) {
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/mocks/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/mocks/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Duplex } from 'it-stream-types';
2
+ export declare function mockDuplex(): Duplex<Uint8Array>;
3
+ //# sourceMappingURL=duplex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplex.d.ts","sourceRoot":"","sources":["../../../src/mocks/duplex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,wBAAgB,UAAU,IAAK,MAAM,CAAC,UAAU,CAAC,CAKhD"}
@@ -0,0 +1,7 @@
1
+ export function mockDuplex() {
2
+ return {
3
+ source: [],
4
+ sink: async () => { }
5
+ };
6
+ }
7
+ //# sourceMappingURL=duplex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplex.js","sourceRoot":"","sources":["../../../src/mocks/duplex.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KACrB,CAAA;AACH,CAAC"}
@@ -1,9 +1,10 @@
1
1
  export { mockConnectionGater } from './connection-gater.js';
2
2
  export { mockConnectionManager } from './connection-manager.js';
3
3
  export { mockConnection, mockStream, connectionPair } from './connection.js';
4
- export { mockMultiaddrConnection } from './multiaddr-connection.js';
4
+ export { mockMultiaddrConnection, mockMultiaddrConnPair } from './multiaddr-connection.js';
5
5
  export { mockMuxer } from './muxer.js';
6
6
  export { mockRegistrar } from './registrar.js';
7
7
  export { mockUpgrader } from './upgrader.js';
8
+ export { mockDuplex } from './duplex.js';
8
9
  export type { MockUpgraderInit } from './upgrader.js';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mocks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mocks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
@@ -1,8 +1,9 @@
1
1
  export { mockConnectionGater } from './connection-gater.js';
2
2
  export { mockConnectionManager } from './connection-manager.js';
3
3
  export { mockConnection, mockStream, connectionPair } from './connection.js';
4
- export { mockMultiaddrConnection } from './multiaddr-connection.js';
4
+ export { mockMultiaddrConnection, mockMultiaddrConnPair } from './multiaddr-connection.js';
5
5
  export { mockMuxer } from './muxer.js';
6
6
  export { mockRegistrar } from './registrar.js';
7
7
  export { mockUpgrader } from './upgrader.js';
8
+ export { mockDuplex } from './duplex.js';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mocks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mocks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA"}
@@ -1,5 +1,17 @@
1
+ import { Multiaddr } from '@multiformats/multiaddr';
1
2
  import type { MultiaddrConnection } from '@libp2p/interfaces/transport';
2
3
  import type { Duplex } from 'it-stream-types';
3
4
  import type { PeerId } from '@libp2p/interfaces/peer-id';
4
5
  export declare function mockMultiaddrConnection(source: Duplex<Uint8Array> & Partial<MultiaddrConnection>, peerId: PeerId): MultiaddrConnection;
6
+ export interface MockMultiaddrConnPairOptions {
7
+ addrs: Multiaddr[];
8
+ remotePeer: PeerId;
9
+ }
10
+ /**
11
+ * Returns both sides of a mocked MultiaddrConnection
12
+ */
13
+ export declare function mockMultiaddrConnPair(opts: MockMultiaddrConnPairOptions): {
14
+ inbound: MultiaddrConnection;
15
+ outbound: MultiaddrConnection;
16
+ };
5
17
  //# sourceMappingURL=multiaddr-connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiaddr-connection.d.ts","sourceRoot":"","sources":["../../../src/mocks/multiaddr-connection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,wBAAgB,uBAAuB,CAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAavI"}
1
+ {"version":3,"file":"multiaddr-connection.d.ts","sourceRoot":"","sources":["../../../src/mocks/multiaddr-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAGnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,wBAAgB,uBAAuB,CAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAavI;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAE,IAAI,EAAE,4BAA4B,GAAG;IAAE,OAAO,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAA;CAAE,CAmC1I"}
@@ -1,4 +1,6 @@
1
1
  import { Multiaddr } from '@multiformats/multiaddr';
2
+ import { duplexPair } from 'it-pair/duplex';
3
+ import { abortableSource } from 'abortable-iterator';
2
4
  export function mockMultiaddrConnection(source, peerId) {
3
5
  const maConn = {
4
6
  async close() {
@@ -11,4 +13,39 @@ export function mockMultiaddrConnection(source, peerId) {
11
13
  };
12
14
  return maConn;
13
15
  }
16
+ /**
17
+ * Returns both sides of a mocked MultiaddrConnection
18
+ */
19
+ export function mockMultiaddrConnPair(opts) {
20
+ const { addrs, remotePeer } = opts;
21
+ const controller = new AbortController();
22
+ const [localAddr, remoteAddr] = addrs;
23
+ const [inboundStream, outboundStream] = duplexPair();
24
+ const outbound = {
25
+ ...outboundStream,
26
+ remoteAddr: remoteAddr.encapsulate(`/p2p/${remotePeer.toString()}`),
27
+ timeline: {
28
+ open: Date.now()
29
+ },
30
+ close: async () => {
31
+ outbound.timeline.close = Date.now();
32
+ controller.abort();
33
+ }
34
+ };
35
+ const inbound = {
36
+ ...inboundStream,
37
+ remoteAddr: localAddr,
38
+ timeline: {
39
+ open: Date.now()
40
+ },
41
+ close: async () => {
42
+ inbound.timeline.close = Date.now();
43
+ controller.abort();
44
+ }
45
+ };
46
+ // Make the sources abortable so we can close them easily
47
+ inbound.source = abortableSource(inbound.source, controller.signal);
48
+ outbound.source = abortableSource(outbound.source, controller.signal);
49
+ return { inbound, outbound };
50
+ }
14
51
  //# sourceMappingURL=multiaddr-connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multiaddr-connection.js","sourceRoot":"","sources":["../../../src/mocks/multiaddr-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKnD,MAAM,UAAU,uBAAuB,CAAE,MAAyD,EAAE,MAAc;IAChH,MAAM,MAAM,GAAwB;QAClC,KAAK,CAAC,KAAK;QAEX,CAAC;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;SACjB;QACD,UAAU,EAAE,IAAI,SAAS,CAAC,+BAA+B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7E,GAAG,MAAM;KACV,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"multiaddr-connection.js","sourceRoot":"","sources":["../../../src/mocks/multiaddr-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAKpD,MAAM,UAAU,uBAAuB,CAAE,MAAyD,EAAE,MAAc;IAChH,MAAM,MAAM,GAAwB;QAClC,KAAK,CAAC,KAAK;QAEX,CAAC;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;SACjB;QACD,UAAU,EAAE,IAAI,SAAS,CAAC,+BAA+B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7E,GAAG,MAAM;KACV,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAE,IAAkC;IACvE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAClC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;IACxC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,KAAK,CAAA;IACrC,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,UAAU,EAAc,CAAA;IAEhE,MAAM,QAAQ,GAAwB;QACpC,GAAG,cAAc;QACjB,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,QAAQ,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnE,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;SACjB;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACpC,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;KACF,CAAA;IAED,MAAM,OAAO,GAAwB;QACnC,GAAG,aAAa;QAChB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;SACjB;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACnC,UAAU,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;KACF,CAAA;IAED,yDAAyD;IACzD,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACnE,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAErE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AAC9B,CAAC"}
@@ -1,3 +1,9 @@
1
- import type { Muxer, MuxerInit } from '@libp2p/interfaces/stream-muxer';
2
- export declare function mockMuxer(init?: MuxerInit): Muxer;
1
+ import type { StreamMuxer, StreamMuxerFactory, StreamMuxerInit } from '@libp2p/interfaces/stream-muxer';
2
+ import type { Components } from '@libp2p/interfaces/components';
3
+ declare class MockMuxerFactory implements StreamMuxerFactory {
4
+ protocol: string;
5
+ createStreamMuxer(c: Components, init?: StreamMuxerInit): StreamMuxer;
6
+ }
7
+ export declare function mockMuxer(): MockMuxerFactory;
8
+ export {};
3
9
  //# sourceMappingURL=muxer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../../src/mocks/muxer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAsVvE,wBAAgB,SAAS,CAAE,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,CAiBlD"}
1
+ {"version":3,"file":"muxer.d.ts","sourceRoot":"","sources":["../../../src/mocks/muxer.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAIvG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAoV/D,cAAM,gBAAiB,YAAW,kBAAkB;IAC3C,QAAQ,EAAE,MAAM,CAAsB;IAE7C,iBAAiB,CAAE,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW;CAkBvE;AAED,wBAAgB,SAAS,IAAK,gBAAgB,CAE7C"}
@@ -144,6 +144,7 @@ class MuxedStream {
144
144
  }
145
145
  class MockMuxer {
146
146
  constructor(init) {
147
+ this.protocol = '/mock-muxer/1.0.0';
147
148
  this.name = `muxer:${muxers++}`;
148
149
  this.log = logger(`libp2p:mock-muxer:${this.name}`);
149
150
  this.registryInitiatorStreams = new Map();
@@ -242,15 +243,23 @@ class MockMuxer {
242
243
  return muxedStream;
243
244
  }
244
245
  }
245
- export function mockMuxer(init) {
246
- const mockMuxer = new MockMuxer(init);
247
- void Promise.resolve().then(async () => {
248
- void pipe(mockMuxer.streamInput, ndjson.stringify, (source) => map(source, str => uint8ArrayFromString(str)), async (source) => {
249
- for await (const buf of source) {
250
- mockMuxer.input.push(buf);
251
- }
246
+ class MockMuxerFactory {
247
+ constructor() {
248
+ this.protocol = '/mock-muxer/1.0.0';
249
+ }
250
+ createStreamMuxer(c, init) {
251
+ const mockMuxer = new MockMuxer(init);
252
+ void Promise.resolve().then(async () => {
253
+ void pipe(mockMuxer.streamInput, ndjson.stringify, (source) => map(source, str => uint8ArrayFromString(str)), async (source) => {
254
+ for await (const buf of source) {
255
+ mockMuxer.input.push(buf);
256
+ }
257
+ });
252
258
  });
253
- });
254
- return mockMuxer;
259
+ return mockMuxer;
260
+ }
261
+ }
262
+ export function mockMuxer() {
263
+ return new MockMuxerFactory();
255
264
  }
256
265
  //# sourceMappingURL=muxer.js.map