mockrtc 0.1.0 → 0.3.0

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 (92) hide show
  1. package/.github/workflows/ci.yml +2 -2
  2. package/README.md +2 -2
  3. package/dist/client/mockrtc-admin-request-builder.d.ts +27 -0
  4. package/dist/client/mockrtc-admin-request-builder.js +201 -0
  5. package/dist/client/mockrtc-admin-request-builder.js.map +1 -0
  6. package/dist/client/mockrtc-client.d.ts +12 -4
  7. package/dist/client/mockrtc-client.js +38 -22
  8. package/dist/client/mockrtc-client.js.map +1 -1
  9. package/dist/client/mockrtc-remote-peer.d.ts +3 -2
  10. package/dist/client/mockrtc-remote-peer.js.map +1 -1
  11. package/dist/handling/handler-builder.d.ts +16 -9
  12. package/dist/handling/handler-builder.js +11 -1
  13. package/dist/handling/handler-builder.js.map +1 -1
  14. package/dist/handling/handler-step-definitions.d.ts +43 -25
  15. package/dist/handling/handler-step-definitions.js +61 -19
  16. package/dist/handling/handler-step-definitions.js.map +1 -1
  17. package/dist/handling/handler-steps.d.ts +4 -1
  18. package/dist/handling/handler-steps.js +27 -17
  19. package/dist/handling/handler-steps.js.map +1 -1
  20. package/dist/main-browser.d.ts +3 -0
  21. package/dist/main-browser.js +6 -1
  22. package/dist/main-browser.js.map +1 -1
  23. package/dist/main.d.ts +8 -5
  24. package/dist/main.js +6 -1
  25. package/dist/main.js.map +1 -1
  26. package/dist/matching/matcher-definitions.d.ts +51 -0
  27. package/dist/matching/matcher-definitions.js +94 -0
  28. package/dist/matching/matcher-definitions.js.map +1 -0
  29. package/dist/matching/matchers.d.ts +27 -0
  30. package/dist/matching/matchers.js +87 -0
  31. package/dist/matching/matchers.js.map +1 -0
  32. package/dist/mockrtc-base.d.ts +16 -0
  33. package/dist/mockrtc-base.js +19 -0
  34. package/dist/mockrtc-base.js.map +1 -0
  35. package/dist/mockrtc-peer.d.ts +44 -6
  36. package/dist/mockrtc.d.ts +200 -1
  37. package/dist/mockrtc.js +1 -0
  38. package/dist/mockrtc.js.map +1 -1
  39. package/dist/rule-builder.d.ts +86 -0
  40. package/dist/rule-builder.js +113 -0
  41. package/dist/rule-builder.js.map +1 -0
  42. package/dist/server/mockrtc-admin-plugin.d.ts +2 -2
  43. package/dist/server/mockrtc-admin-plugin.js +165 -3
  44. package/dist/server/mockrtc-admin-plugin.js.map +1 -1
  45. package/dist/server/mockrtc-server-peer.d.ts +8 -2
  46. package/dist/server/mockrtc-server-peer.js +119 -6
  47. package/dist/server/mockrtc-server-peer.js.map +1 -1
  48. package/dist/server/mockrtc-server.d.ts +20 -5
  49. package/dist/server/mockrtc-server.js +87 -14
  50. package/dist/server/mockrtc-server.js.map +1 -1
  51. package/dist/webrtc/datachannel-stream.d.ts +4 -0
  52. package/dist/webrtc/datachannel-stream.js +27 -1
  53. package/dist/webrtc/datachannel-stream.js.map +1 -1
  54. package/dist/webrtc/mediatrack-stream.d.ts +6 -0
  55. package/dist/webrtc/mediatrack-stream.js +28 -2
  56. package/dist/webrtc/mediatrack-stream.js.map +1 -1
  57. package/dist/webrtc/mockrtc-connection.d.ts +1 -1
  58. package/dist/webrtc/mockrtc-connection.js +77 -60
  59. package/dist/webrtc/mockrtc-connection.js.map +1 -1
  60. package/dist/webrtc/rtc-connection.d.ts +28 -5
  61. package/dist/webrtc/rtc-connection.js +62 -23
  62. package/dist/webrtc/rtc-connection.js.map +1 -1
  63. package/dist/webrtc-hooks.js +10 -2
  64. package/dist/webrtc-hooks.js.map +1 -1
  65. package/package.json +12 -6
  66. package/src/client/mockrtc-admin-request-builder.ts +232 -0
  67. package/src/client/mockrtc-client.ts +50 -28
  68. package/src/client/mockrtc-remote-peer.ts +9 -8
  69. package/src/handling/handler-builder.ts +22 -10
  70. package/src/handling/handler-step-definitions.ts +87 -27
  71. package/src/handling/handler-steps.ts +34 -20
  72. package/src/main-browser.ts +5 -0
  73. package/src/main.ts +23 -5
  74. package/src/matching/matcher-definitions.ts +109 -0
  75. package/src/matching/matchers.ts +118 -0
  76. package/src/mockrtc-base.ts +49 -0
  77. package/src/mockrtc-peer.ts +48 -6
  78. package/src/mockrtc.ts +235 -1
  79. package/src/rule-builder.ts +142 -0
  80. package/src/server/mockrtc-admin-plugin.ts +200 -9
  81. package/src/server/mockrtc-server-peer.ts +194 -7
  82. package/src/server/mockrtc-server.ts +136 -19
  83. package/src/webrtc/datachannel-stream.ts +31 -1
  84. package/src/webrtc/mediatrack-stream.ts +31 -4
  85. package/src/webrtc/mockrtc-connection.ts +22 -7
  86. package/src/webrtc/rtc-connection.ts +111 -29
  87. package/src/webrtc-hooks.ts +13 -4
  88. package/test/integration/events.spec.ts +538 -0
  89. package/test/integration/matching.spec.ts +257 -0
  90. package/test/integration/proxy.spec.ts +68 -1
  91. package/test/integration/send-steps.spec.ts +25 -0
  92. package/test/test-setup.ts +19 -0
@@ -7,7 +7,7 @@ jobs:
7
7
 
8
8
  strategy:
9
9
  matrix:
10
- node-version: [14.x, v14.18.3, 16.x, '*']
10
+ node-version: [14.x, 16.x, v16.16.0, '*']
11
11
 
12
12
  steps:
13
13
  - uses: actions/checkout@v2
@@ -21,7 +21,7 @@ jobs:
21
21
  - run: npm test
22
22
 
23
23
  - name: Deploy docs
24
- if: github.ref == 'refs/heads/main' && matrix.node-version == 'v14.18.3'
24
+ if: github.ref == 'refs/heads/main' && matrix.node-version == 'v16.16.0'
25
25
  uses: JamesIves/github-pages-deploy-action@v4.2.2
26
26
  with:
27
27
  single-commit: true
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # MockRTC [![Build Status](https://github.com/httptoolkit/mockrtc/workflows/CI/badge.svg)](https://github.com/httptoolkit/mockrtc/actions) [![Available on NPM](https://img.shields.io/npm/v/mockrtc.svg)](https://npmjs.com/package/mockrtc)
1
+ # MockRTC [![Build Status](https://github.com/httptoolkit/mockrtc/workflows/CI/badge.svg)](https://github.com/httptoolkit/mockrtc/actions) [![Available on NPM](https://img.shields.io/npm/v/mockrtc.svg?)](https://npmjs.com/package/mockrtc)
2
2
 
3
3
  > _Part of [HTTP Toolkit](https://httptoolkit.tech): powerful tools for building, testing & debugging HTTP(S), WebSockets and WebRTC_
4
4
 
@@ -287,4 +287,4 @@ You might also be interested in scrolling through MockRTC's [test suite](https:/
287
287
 
288
288
  _This‌ ‌project‌ ‌has‌ ‌received‌ ‌funding‌ ‌from‌ ‌the‌ ‌European‌ ‌Union’s‌ ‌Horizon‌ ‌2020‌‌ research‌ ‌and‌ ‌innovation‌ ‌programme‌ ‌within‌ ‌the‌ ‌framework‌ ‌of‌ ‌the‌ ‌NGI-POINTER‌‌ Project‌ ‌funded‌ ‌under‌ ‌grant‌ ‌agreement‌ ‌No‌ 871528._
289
289
 
290
- ![The NGI logo and EU flag](./ngi-eu-footer.png)
290
+ ![The NGI logo and EU flag](./ngi-eu-footer.png)
@@ -0,0 +1,27 @@
1
+ /// <reference types="node" />
2
+ import * as stream from 'stream';
3
+ import { AdminQuery } from 'mockttp/dist/client/admin-query';
4
+ import { MockRTCEvent, MockRTCEventData } from '../mockrtc';
5
+ import { HandlerStepDefinition } from '../handling/handler-step-definitions';
6
+ import { MatcherDefinition } from '../matching/matcher-definitions';
7
+ /**
8
+ * This is part of Mockttp's experimental 'pluggable admin' API. This may change
9
+ * unpredictably, even in minor releases.
10
+ *
11
+ * @internal
12
+ */
13
+ export declare class MockRTCAdminRequestBuilder {
14
+ buildCreatePeerQuery(handlerSteps: Array<HandlerStepDefinition>, adminStream: stream.Duplex): AdminQuery<{
15
+ createPeer: {
16
+ peerId: string;
17
+ };
18
+ }, {
19
+ peerId: string;
20
+ }>;
21
+ buildAddRuleQuery(matchers: Array<MatcherDefinition>, handlerSteps: Array<HandlerStepDefinition>, adminStream: stream.Duplex): AdminQuery<void>;
22
+ buildSetRulesQuery(rules: Array<{
23
+ matchers: MatcherDefinition[];
24
+ steps: HandlerStepDefinition[];
25
+ }>, adminStream: stream.Duplex): AdminQuery<void>;
26
+ buildSubscriptionRequest<E extends MockRTCEvent>(event: E): AdminQuery<MockRTCEventData[E]> | undefined;
27
+ }
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ /*
3
+ * SPDX-FileCopyrightText: 2022 Tim Perry <tim@httptoolkit.tech>
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.MockRTCAdminRequestBuilder = void 0;
8
+ const graphql_tag_1 = require("graphql-tag");
9
+ // Long-term, it'd be great to use the 'official' export path of mockttp/pluggable-admin, but
10
+ // if we do so, then TypeScript <4.7 doesn't understand it here or downstream, so we get errors.
11
+ // We don't want to use the main-exported version to avoid bundling all of Mockttp in browsers.
12
+ // For now we have to use the direct import. We can update once TS 4.7 is widely used.
13
+ const BrowserPluggableAdmin = require("mockttp/dist/pluggable-admin-api/pluggable-admin.browser");
14
+ /**
15
+ * This is part of Mockttp's experimental 'pluggable admin' API. This may change
16
+ * unpredictably, even in minor releases.
17
+ *
18
+ * @internal
19
+ */
20
+ class MockRTCAdminRequestBuilder {
21
+ buildCreatePeerQuery(handlerSteps, adminStream) {
22
+ return {
23
+ query: (0, graphql_tag_1.default) `
24
+ mutation CreatePeer($peerData: RTCHandlerData!) {
25
+ createPeer(data: $peerData) {
26
+ peerId
27
+ }
28
+ }
29
+ `,
30
+ variables: {
31
+ peerData: {
32
+ steps: handlerSteps.map(step => BrowserPluggableAdmin.Serialization.serialize(step, adminStream))
33
+ }
34
+ },
35
+ transformResponse: ({ createPeer }) => createPeer
36
+ };
37
+ }
38
+ buildAddRuleQuery(matchers, handlerSteps, adminStream) {
39
+ return {
40
+ query: (0, graphql_tag_1.default) `
41
+ mutation AddRTCRule($ruleData: RTCRuleData!) {
42
+ addRTCRule(data: $ruleData)
43
+ }
44
+ `,
45
+ variables: {
46
+ ruleData: {
47
+ matchers: matchers.map(matcher => BrowserPluggableAdmin.Serialization.serialize(matcher, adminStream)),
48
+ steps: handlerSteps.map(step => BrowserPluggableAdmin.Serialization.serialize(step, adminStream))
49
+ }
50
+ }
51
+ };
52
+ }
53
+ buildSetRulesQuery(rules, adminStream) {
54
+ return {
55
+ query: (0, graphql_tag_1.default) `
56
+ mutation SetRTCRules($ruleData: [RTCRuleData!]!) {
57
+ setRTCRules(data: $ruleData)
58
+ }
59
+ `,
60
+ variables: {
61
+ ruleData: rules.map(({ matchers, steps }) => ({
62
+ matchers: matchers.map(matcher => BrowserPluggableAdmin.Serialization.serialize(matcher, adminStream)),
63
+ steps: steps.map(step => BrowserPluggableAdmin.Serialization.serialize(step, adminStream))
64
+ }))
65
+ }
66
+ };
67
+ }
68
+ buildSubscriptionRequest(event) {
69
+ const query = {
70
+ 'peer-connected': (0, graphql_tag_1.default) `subscription OnPeerConnected {
71
+ peerConnected {
72
+ peerId
73
+ sessionId
74
+
75
+ metadata
76
+ timingEvents
77
+
78
+ localSessionDescription { type, sdp }
79
+ remoteSessionDescription { type, sdp }
80
+ selectedLocalCandidate { address, port, protocol, type }
81
+ selectedRemoteCandidate { address, port, protocol, type }
82
+ }
83
+ }`,
84
+ 'peer-disconnected': (0, graphql_tag_1.default) `subscription OnPeerDisconnected {
85
+ peerDisconnected {
86
+ peerId
87
+ sessionId
88
+ timingEvents
89
+ }
90
+ }`,
91
+ 'external-peer-attached': (0, graphql_tag_1.default) `subscription OnExternalPeerAttached {
92
+ externalPeerAttached {
93
+ peerId
94
+ sessionId
95
+ timingEvents
96
+ externalConnection {
97
+ sessionId
98
+ localSessionDescription { type, sdp }
99
+ remoteSessionDescription { type, sdp }
100
+ selectedLocalCandidate { address, port, protocol, type }
101
+ selectedRemoteCandidate { address, port, protocol, type }
102
+ }
103
+ }
104
+ }`,
105
+ 'data-channel-opened': (0, graphql_tag_1.default) `subscription OnDataChannelOpen {
106
+ dataChannelOpened {
107
+ peerId
108
+ sessionId
109
+ channelId
110
+ channelLabel
111
+ channelProtocol
112
+
113
+ eventTimestamp
114
+ timingEvents
115
+ }
116
+ }`,
117
+ 'data-channel-message-sent': (0, graphql_tag_1.default) `subscription OnDataChannelMessageSent {
118
+ dataChannelMessageSent {
119
+ peerId
120
+ sessionId
121
+ channelId
122
+ direction
123
+ content
124
+ isBinary
125
+
126
+ eventTimestamp
127
+ timingEvents
128
+ }
129
+ }`,
130
+ 'data-channel-message-received': (0, graphql_tag_1.default) `subscription OnDataChannelMessageReceived {
131
+ dataChannelMessageReceived {
132
+ peerId
133
+ sessionId
134
+ channelId
135
+ direction
136
+ content
137
+ isBinary
138
+
139
+ eventTimestamp
140
+ timingEvents
141
+ }
142
+ }`,
143
+ 'data-channel-closed': (0, graphql_tag_1.default) `subscription OnDataChannelClose {
144
+ dataChannelClosed {
145
+ peerId
146
+ sessionId
147
+ channelId
148
+
149
+ eventTimestamp
150
+ timingEvents
151
+ }
152
+ }`,
153
+ 'media-track-opened': (0, graphql_tag_1.default) `subscription OnDataChannelClose {
154
+ mediaTrackOpened {
155
+ peerId
156
+ sessionId
157
+ trackMid
158
+ trackType
159
+ trackDirection
160
+
161
+ eventTimestamp
162
+ timingEvents
163
+ }
164
+ }`,
165
+ 'media-track-stats': (0, graphql_tag_1.default) `subscription OnDataChannelClose {
166
+ mediaTrackStats {
167
+ peerId
168
+ sessionId
169
+ trackMid
170
+ totalBytesSent
171
+ totalBytesReceived
172
+
173
+ eventTimestamp
174
+ timingEvents
175
+ }
176
+ }`,
177
+ 'media-track-closed': (0, graphql_tag_1.default) `subscription OnDataChannelClose {
178
+ mediaTrackClosed {
179
+ peerId
180
+ sessionId
181
+ trackMid
182
+
183
+ eventTimestamp
184
+ timingEvents
185
+ }
186
+ }`
187
+ }[event];
188
+ if (!query)
189
+ return; // Unrecognized event, we can't subscribe to this.
190
+ return {
191
+ query,
192
+ transformResponse: (result) => {
193
+ if (result.content)
194
+ result.content = Buffer.from(result.content, 'base64');
195
+ return result;
196
+ }
197
+ };
198
+ }
199
+ }
200
+ exports.MockRTCAdminRequestBuilder = MockRTCAdminRequestBuilder;
201
+ //# sourceMappingURL=mockrtc-admin-request-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockrtc-admin-request-builder.js","sourceRoot":"","sources":["../../src/client/mockrtc-admin-request-builder.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,20 @@
1
1
  import type { PluggableAdmin } from 'mockttp';
2
- import { MockRTC, MockRTCOptions, MockRTCPeerBuilder } from "../mockrtc";
2
+ import { MockRTC, MockRTCEvent, MockRTCOptions, MockRTCRuleDefinition } from "../mockrtc";
3
+ import { MockRTCBase } from '../mockrtc-base';
4
+ import type { MockRTCPeer } from '../mockrtc-peer';
5
+ import { HandlerStepDefinition } from '../handling/handler-step-definitions';
6
+ import { MatcherDefinition } from '../matching/matcher-definitions';
3
7
  export declare type MockRTCClientOptions = PluggableAdmin.AdminClientOptions & MockRTCOptions;
4
- export declare class MockRTCClient implements MockRTC {
8
+ export declare class MockRTCClient extends MockRTCBase implements MockRTC {
5
9
  private options;
6
10
  private adminClient;
11
+ private requestBuilder;
7
12
  constructor(options?: MockRTCClientOptions);
8
- buildPeer(): MockRTCPeerBuilder;
9
- private buildPeerFromData;
13
+ getMatchingPeer(): MockRTCPeer;
14
+ buildPeerFromDefinition(handlerSteps: HandlerStepDefinition[]): Promise<MockRTCPeer>;
15
+ addRuleFromDefinition(matchers: MatcherDefinition[], handlerSteps: HandlerStepDefinition[]): Promise<void>;
16
+ setRulesFromDefinitions(rules: Array<MockRTCRuleDefinition>): Promise<void>;
10
17
  start(): Promise<void>;
11
18
  stop(): Promise<void>;
19
+ on(event: MockRTCEvent, callback: any): Promise<void>;
12
20
  }
@@ -14,41 +14,43 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.MockRTCClient = void 0;
17
- const graphql_tag_1 = require("graphql-tag");
18
17
  // Long-term, it'd be great to use the 'official' export path of mockttp/pluggable-admin, but
19
18
  // if we do so, then TypeScript <4.7 doesn't understand it here or downstream, so we get errors.
20
19
  // We don't want to use the main-exported version to avoid bundling all of Mockttp in browsers.
21
20
  // For now we have to use the direct import. We can update once TS 4.7 is widely used.
22
21
  const BrowserPluggableAdmin = require("mockttp/dist/pluggable-admin-api/pluggable-admin.browser");
22
+ const mockrtc_base_1 = require("../mockrtc-base");
23
23
  const mockrtc_remote_peer_1 = require("./mockrtc-remote-peer");
24
- const handler_builder_1 = require("../handling/handler-builder");
25
- class MockRTCClient {
24
+ const mockrtc_admin_request_builder_1 = require("./mockrtc-admin-request-builder");
25
+ class MockRTCClient extends mockrtc_base_1.MockRTCBase {
26
26
  constructor(options = {}) {
27
+ super();
27
28
  this.options = options;
28
- this.buildPeerFromData = (handlerSteps) => __awaiter(this, void 0, void 0, function* () {
29
+ this.adminClient = new BrowserPluggableAdmin.AdminClient(options);
30
+ this.requestBuilder = new mockrtc_admin_request_builder_1.MockRTCAdminRequestBuilder();
31
+ }
32
+ getMatchingPeer() {
33
+ return new mockrtc_remote_peer_1.MockRTCRemotePeer('matching-peer', this.adminClient);
34
+ }
35
+ buildPeerFromDefinition(handlerSteps) {
36
+ return __awaiter(this, void 0, void 0, function* () {
29
37
  const { adminStream } = this.adminClient;
30
- const peerData = yield this.adminClient.sendQuery({
31
- query: (0, graphql_tag_1.default) `
32
- mutation CreatePeer($peerData: RTCHandlerData!) {
33
- createPeer(data: $peerData) {
34
- peerId
35
- }
36
- }
37
- `,
38
- variables: {
39
- peerData: {
40
- steps: handlerSteps.map(step => BrowserPluggableAdmin.Serialization.serialize(step, adminStream))
41
- }
42
- },
43
- transformResponse: ({ createPeer }) => createPeer
44
- });
38
+ const peerData = yield this.adminClient.sendQuery(this.requestBuilder.buildCreatePeerQuery(handlerSteps, adminStream));
45
39
  const { peerId } = peerData;
46
40
  return new mockrtc_remote_peer_1.MockRTCRemotePeer(peerId, this.adminClient);
47
41
  });
48
- this.adminClient = new BrowserPluggableAdmin.AdminClient(options);
49
42
  }
50
- buildPeer() {
51
- return new handler_builder_1.MockRTCHandlerBuilder(this.buildPeerFromData);
43
+ addRuleFromDefinition(matchers, handlerSteps) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const { adminStream } = this.adminClient;
46
+ yield this.adminClient.sendQuery(this.requestBuilder.buildAddRuleQuery(matchers, handlerSteps, adminStream));
47
+ });
48
+ }
49
+ setRulesFromDefinitions(rules) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const { adminStream } = this.adminClient;
52
+ yield this.adminClient.sendQuery(this.requestBuilder.buildSetRulesQuery(rules, adminStream));
53
+ });
52
54
  }
53
55
  start() {
54
56
  return __awaiter(this, void 0, void 0, function* () {
@@ -62,6 +64,20 @@ class MockRTCClient {
62
64
  yield this.adminClient.stop();
63
65
  });
64
66
  }
67
+ on(event, callback) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const subscriptionRequest = this.requestBuilder.buildSubscriptionRequest(event);
70
+ if (!subscriptionRequest) {
71
+ // We just return an immediately promise if we don't recognize the event, which will quietly
72
+ // succeed but never call the corresponding callback (the same as the server and most event
73
+ // sources in the same kind of situation). This is what happens when the *client* doesn't
74
+ // recognize the event. Subscribe() below handles the unknown-to-server case.
75
+ console.warn(`Ignoring subscription for event unrecognized by MockRTC client: ${event}`);
76
+ return;
77
+ }
78
+ return this.adminClient.subscribe(subscriptionRequest, callback);
79
+ });
80
+ }
65
81
  }
66
82
  exports.MockRTCClient = MockRTCClient;
67
83
  //# sourceMappingURL=mockrtc-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockrtc-client.js","sourceRoot":"","sources":["../../src/client/mockrtc-client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAEH,6CAA8B;AAE9B,6FAA6F;AAC7F,gGAAgG;AAChG,+FAA+F;AAC/F,sFAAsF;AACtF,kGAAkG;AAOlG,+DAA0D;AAC1D,iEAAoE;AAOpE,MAAa,aAAa;IAItB,YACY,UAAgC,EAAE;QAAlC,YAAO,GAAP,OAAO,CAA2B;QAStC,sBAAiB,GAAG,CAAO,YAAqC,EAAwB,EAAE;YAC9F,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/C;gBACE,KAAK,EAAE,IAAA,qBAAG,EAAA;;;;;;aAMT;gBACD,SAAS,EAAE;oBACP,QAAQ,EAAE;wBACN,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC3B,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CACnE;qBACJ;iBACJ;gBACD,iBAAiB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU;aACpD,CAAC,CAAC;YAEH,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YAE5B,OAAO,IAAI,uCAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC,CAAA,CAAA;QAlCG,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,SAAS;QACL,OAAO,IAAI,uCAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7D,CAAC;IA+BK,KAAK;;YACP,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,OAAO;aACvB,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,IAAI;;YACN,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;KAAA;CACJ;AApDD,sCAoDC"}
1
+ {"version":3,"file":"mockrtc-client.js","sourceRoot":"","sources":["../../src/client/mockrtc-client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAGH,6FAA6F;AAC7F,gGAAgG;AAChG,+FAA+F;AAC/F,sFAAsF;AACtF,kGAAkG;AAIlG,kDAA8C;AAG9C,+DAA0D;AAE1D,mFAA6E;AAQ7E,MAAa,aAAc,SAAQ,0BAAW;IAK1C,YACY,UAAgC,EAAE;QAE1C,KAAK,EAAE,CAAC;QAFA,YAAO,GAAP,OAAO,CAA2B;QAI1C,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,GAAG,IAAI,0DAA0B,EAAE,CAAC;IAC3D,CAAC;IAED,eAAe;QACX,OAAO,IAAI,uCAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC;IAEK,uBAAuB,CAAC,YAAqC;;YAC/D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC7C,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CACtE,CAAC;YAEF,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YAE5B,OAAO,IAAI,uCAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC;KAAA;IAEK,qBAAqB,CACvB,QAA6B,EAC7B,YAAqC;;YAErC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAEzC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC5B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAC7E,CAAC;QACN,CAAC;KAAA;IAEK,uBAAuB,CAAC,KAAmC;;YAC7D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAEzC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC5B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAC7D,CAAC;QACN,CAAC;KAAA;IAEK,KAAK;;YACP,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,OAAO;aACvB,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,IAAI;;YACN,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;KAAA;IAEK,EAAE,CAAC,KAAmB,EAAE,QAAa;;YACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAEhF,IAAI,CAAC,mBAAmB,EAAE;gBACtB,4FAA4F;gBAC5F,2FAA2F;gBAC3F,yFAAyF;gBACzF,6EAA6E;gBAC7E,OAAO,CAAC,IAAI,CAAC,mEAAmE,KAAK,EAAE,CAAC,CAAC;gBACzF,OAAO;aACV;YAED,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;KAAA;CACJ;AAzED,sCAyEC"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import * as PluggableAdmin from 'mockttp/dist/pluggable-admin-api/pluggable-admin.browser';
3
+ import { MockRTCSessionDescription } from '../mockrtc';
3
4
  import { MockRTCPeer, MockRTCOfferParams, MockRTCExternalOfferParams, MockRTCExternalAnswerParams, MockRTCAnswerParams, MockRTCSession, OfferOptions, AnswerOptions } from "../mockrtc-peer";
4
5
  export declare class MockRTCRemotePeer implements MockRTCPeer {
5
6
  readonly peerId: string;
@@ -7,8 +8,8 @@ export declare class MockRTCRemotePeer implements MockRTCPeer {
7
8
  constructor(peerId: string, adminClient: PluggableAdmin.AdminClient<{}>);
8
9
  createOffer(options?: OfferOptions): Promise<MockRTCOfferParams>;
9
10
  createExternalOffer(options?: OfferOptions): Promise<MockRTCExternalOfferParams>;
10
- answerOffer(offer: RTCSessionDescriptionInit, options?: AnswerOptions): Promise<MockRTCAnswerParams>;
11
- answerExternalOffer(offer: RTCSessionDescriptionInit, options?: AnswerOptions): Promise<MockRTCExternalAnswerParams>;
11
+ answerOffer(offer: MockRTCSessionDescription, options?: AnswerOptions): Promise<MockRTCAnswerParams>;
12
+ answerExternalOffer(offer: MockRTCSessionDescription, options?: AnswerOptions): Promise<MockRTCExternalAnswerParams>;
12
13
  getSession(sessionId: string): MockRTCSession;
13
14
  getAllMessages(): Promise<(string | Buffer)[]>;
14
15
  getMessagesOnChannel(channelName: string): Promise<Array<string | Buffer>>;
@@ -1 +1 @@
1
- {"version":3,"file":"mockrtc-remote-peer.js","sourceRoot":"","sources":["../../src/client/mockrtc-remote-peer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAEH,6CAAkC;AAelC,MAAa,iBAAiB;IAE1B,YACa,MAAc,EACf,WAA2C;QAD1C,WAAM,GAAN,MAAM,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAgC;IACpD,CAAC;IAEJ,WAAW,CAAC,OAAsB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/B;YACE,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;;;;;;;aAUT;YACD,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;YAC3C,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAChD,OAAO;oBACH,KAAK,EAAE,WAAW,CAAC,WAAW;oBAC9B,OAAO;oBACP,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;iBACjD,CAAC;YACN,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB,CAAC,OAAsB;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/B;YACE,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;;;;;;;aAUT;YACD,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;YAC3C,iBAAiB,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE;gBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACxD,OAAO;oBACH,EAAE,EAAE,mBAAmB,CAAC,EAAE;oBAC1B,KAAK,EAAE,mBAAmB,CAAC,WAAW;oBACtC,OAAO;oBACP,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;iBACjD,CAAC;YACN,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAEK,WAAW,CACb,KAAgC,EAChC,OAAuB;;YAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/B;gBACE,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;aAcT;gBACD,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;gBAClD,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;oBACrC,MAAM,EAAE,WAAW,CAAC,WAAW;oBAC/B,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;iBAC3C,CAAC;aACL,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,mBAAmB,CACrB,KAAgC,EAChC,OAAuB;;YAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/B;gBACE,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;aAcT;gBACD,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;gBAClD,iBAAiB,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,EAAE;oBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;oBACxD,OAAO;wBACH,EAAE,EAAE,mBAAmB,CAAC,EAAE;wBAC1B,MAAM,EAAE,mBAAmB,CAAC,WAAW;wBACvC,OAAO;qBACV,CAAA;gBACL,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;KAAA;IAED,UAAU,CAAC,SAAiB;QACxB,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/B;YACE,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;aAIT;YACD,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YAClC,iBAAiB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;gBACvC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;wBAC7B,OAAO,OAAO,CAAC;qBAClB;yBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAClC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;qBAC/C;yBAAM;wBACH,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;qBAC3E;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB,CAAC,WAAmB;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/B;YACE,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;aAIT;YACD,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;YAC/C,iBAAiB,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;gBACvC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;wBAC7B,OAAO,OAAO,CAAC;qBAClB;yBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAClC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;qBAC/C;yBAAM;wBACH,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;qBAC3E;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CAEJ;AAxLD,8CAwLC;AAED,MAAM,gBAAgB;IAClB,YACY,WAA2C,EAC3C,MAAc,EACN,SAAiB;QAFzB,gBAAW,GAAX,WAAW,CAAgC;QAC3C,WAAM,GAAN,MAAM,CAAQ;QACN,cAAS,GAAT,SAAS,CAAQ;IAClC,CAAC;IAEJ,WAAW,CAAC,OAAsB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/B;YACE,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;;;;;;aAST;YACD,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;YACtE,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW;SAClE,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CAAC,MAAiC;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAO;YACpC,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;;;;;aAQT;YACD,SAAS,EAAE;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,MAAM;aACjB;SACJ,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CACP,KAAgC,EAChC,OAAuB;QAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAG/B;YACE,KAAK,EAAE,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;aAcT;YACD,SAAS,EAAE;gBACP,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK;gBACL,OAAO;aACV;YACD,iBAAiB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW;SAClE,CAAC,CAAC;IACP,CAAC;CAEJ"}
1
+ {"version":3,"file":"mockrtc-remote-peer.js","sourceRoot":"","sources":["../../src/client/mockrtc-remote-peer.ts"],"names":[],"mappings":"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"}
@@ -14,19 +14,19 @@ export declare class MockRTCHandlerBuilder<R> {
14
14
  *
15
15
  * @category Steps
16
16
  */
17
- sleep(duration: number): this;
17
+ sleep(duration: number): MockRTCHandlerBuilder<R>;
18
18
  /**
19
19
  * Wait until the remote client has created at least one DataChannel.
20
20
  *
21
21
  * @category Steps
22
22
  */
23
- waitForChannel(channelLabel?: string): this;
23
+ waitForChannel(channelLabel?: string): MockRTCHandlerBuilder<R>;
24
24
  /**
25
25
  * Wait until the remote client has created at least one media track
26
26
  *
27
27
  * @category Steps
28
28
  */
29
- waitForTrack(): this;
29
+ waitForTrack(): MockRTCHandlerBuilder<R>;
30
30
  /**
31
31
  * Wait until the remote client next sends a message to us on any DataChannel.
32
32
  *
@@ -35,7 +35,7 @@ export declare class MockRTCHandlerBuilder<R> {
35
35
  *
36
36
  * @category Steps
37
37
  */
38
- waitForNextMessage(): this;
38
+ waitForNextMessage(): MockRTCHandlerBuilder<R>;
39
39
  /**
40
40
  * Wait until the remote client next sends media data on a media track.
41
41
  *
@@ -43,16 +43,23 @@ export declare class MockRTCHandlerBuilder<R> {
43
43
  *
44
44
  * @category Steps
45
45
  */
46
- waitForNextMedia(): this;
46
+ waitForNextMedia(): MockRTCHandlerBuilder<R>;
47
47
  /**
48
48
  * Wait until the remote client sends a message to us on a specific DataChannel.
49
49
  *
50
50
  * This looks for new messages, ignoring any messages already consumed by
51
51
  * previous steps.
52
52
  *
53
- * @category Steps
53
+ * @category Steps
54
+ */
55
+ waitForNextMessageOnChannel(channelLabel: string): MockRTCHandlerBuilder<R>;
56
+ /**
57
+ * Creates a new data channel with the given name, waiting until it opens
58
+ * before continuing.
59
+ *
60
+ * @category Steps
54
61
  */
55
- waitForNextMessageOnChannel(channelLabel: string): this;
62
+ createDataChannel(channelLabel: string): MockRTCHandlerBuilder<R>;
56
63
  /**
57
64
  * Send a message or buffer on the connection's data channels.
58
65
  *
@@ -66,8 +73,8 @@ export declare class MockRTCHandlerBuilder<R> {
66
73
  *
67
74
  * @category Steps
68
75
  */
69
- send(message: string | Buffer): this;
70
- send(channel: string | undefined, message: string | Buffer): this;
76
+ send(message: string | Buffer): MockRTCHandlerBuilder<R>;
77
+ send(channel: string | undefined, message: string | Buffer): MockRTCHandlerBuilder<R>;
71
78
  /**
72
79
  * Immediately close the connection.
73
80
  *
@@ -72,12 +72,22 @@ class MockRTCHandlerBuilder {
72
72
  * This looks for new messages, ignoring any messages already consumed by
73
73
  * previous steps.
74
74
  *
75
- * @category Steps
75
+ * @category Steps
76
76
  */
77
77
  waitForNextMessageOnChannel(channelLabel) {
78
78
  this.handlerSteps.push(new handler_step_definitions_1.WaitForMessageStepDefinition(channelLabel));
79
79
  return this;
80
80
  }
81
+ /**
82
+ * Creates a new data channel with the given name, waiting until it opens
83
+ * before continuing.
84
+ *
85
+ * @category Steps
86
+ */
87
+ createDataChannel(channelLabel) {
88
+ this.handlerSteps.push(new handler_step_definitions_1.CreateChannelStepDefinition(channelLabel));
89
+ return this;
90
+ }
81
91
  send(...args) {
82
92
  if (args[1] !== undefined) {
83
93
  const [channel, message] = args;
@@ -1 +1 @@
1
- {"version":3,"file":"handler-builder.js","sourceRoot":"","sources":["../../src/handling/handler-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-builder.js","sourceRoot":"","sources":["../../src/handling/handler-builder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import * as PluggableAdmin from 'mockttp/dist/pluggable-admin-api/pluggable-admin.browser';
3
+ import { MockRTCSessionDescription } from '../mockrtc';
3
4
  export declare type Serializable = PluggableAdmin.Serialization.Serializable;
4
5
  export declare const Serializable: typeof PluggableAdmin.Serialization.Serializable;
5
6
  declare type ClientServerChannel = PluggableAdmin.Serialization.ClientServerChannel;
@@ -7,57 +8,74 @@ export interface HandlerStepDefinition extends Serializable {
7
8
  readonly type: keyof typeof StepDefinitionLookup;
8
9
  }
9
10
  export declare class WaitForDurationStepDefinition extends Serializable implements HandlerStepDefinition {
10
- protected durationMs: number;
11
+ readonly durationMs: number;
11
12
  readonly type = "wait-for-duration";
12
13
  constructor(durationMs: number);
14
+ explain(): string;
13
15
  }
14
16
  export declare class WaitForChannelStepDefinition extends Serializable implements HandlerStepDefinition {
15
- protected channelLabel?: string | undefined;
16
- readonly type = "wait-for-channel";
17
+ readonly channelLabel?: string | undefined;
18
+ readonly type = "wait-for-rtc-data-channel";
17
19
  constructor(channelLabel?: string | undefined);
20
+ explain(): string;
18
21
  }
19
22
  export declare class WaitForMessageStepDefinition extends Serializable implements HandlerStepDefinition {
20
- protected channelLabel?: string | undefined;
21
- readonly type = "wait-for-message";
23
+ readonly channelLabel?: string | undefined;
24
+ readonly type = "wait-for-rtc-message";
22
25
  constructor(channelLabel?: string | undefined);
26
+ explain(): string;
23
27
  }
24
28
  export declare class WaitForTrackStepDefinition extends Serializable implements HandlerStepDefinition {
25
- readonly type = "wait-for-track";
29
+ readonly type = "wait-for-rtc-track";
30
+ explain(): string;
26
31
  }
27
32
  export declare class WaitForMediaStepDefinition extends Serializable implements HandlerStepDefinition {
28
- readonly type = "wait-for-media";
33
+ readonly type = "wait-for-rtc-media";
34
+ explain(): string;
35
+ }
36
+ export declare class CreateChannelStepDefinition extends Serializable implements HandlerStepDefinition {
37
+ readonly channelLabel: string;
38
+ readonly type = "create-rtc-data-channel";
39
+ constructor(channelLabel: string);
40
+ explain(): string;
29
41
  }
30
42
  export declare class SendStepDefinition extends Serializable implements HandlerStepDefinition {
31
- protected channelLabel: string | undefined;
32
- protected message: string | Buffer;
33
- readonly type = "send-message";
43
+ readonly channelLabel: string | undefined;
44
+ readonly message: string | Buffer;
45
+ readonly type = "send-rtc-data-message";
34
46
  constructor(channelLabel: string | undefined, message: string | Buffer);
47
+ explain(): string;
35
48
  }
36
49
  export declare class CloseStepDefinition extends Serializable implements HandlerStepDefinition {
37
- readonly type = "close-connection";
50
+ readonly type = "close-rtc-connection";
51
+ explain(): string;
38
52
  }
39
53
  export declare class EchoStepDefinition extends Serializable implements HandlerStepDefinition {
40
- readonly type = "echo-channels";
54
+ readonly type = "echo-rtc";
55
+ explain(): string;
41
56
  }
42
57
  export declare class PeerProxyStepDefinition extends Serializable implements HandlerStepDefinition {
43
- readonly type = "peer-proxy";
44
- protected getAnswer: (offer: RTCSessionDescriptionInit) => Promise<RTCSessionDescriptionInit>;
45
- constructor(connectionTarget: RTCPeerConnection | ((offer: RTCSessionDescriptionInit) => Promise<RTCSessionDescriptionInit>));
58
+ readonly type = "rtc-peer-proxy";
59
+ protected getAnswer: (offer: MockRTCSessionDescription) => Promise<RTCSessionDescriptionInit>;
60
+ constructor(connectionTarget: RTCPeerConnection | ((offer: MockRTCSessionDescription) => Promise<RTCSessionDescriptionInit>));
61
+ explain(): string;
46
62
  serialize(channel: ClientServerChannel): {};
47
63
  }
48
64
  export declare class DynamicProxyStepDefinition extends Serializable implements HandlerStepDefinition {
49
- readonly type = "dynamic-proxy";
65
+ readonly type = "rtc-dynamic-proxy";
66
+ explain(): string;
50
67
  }
51
68
  export declare const StepDefinitionLookup: {
52
69
  'wait-for-duration': typeof WaitForDurationStepDefinition;
53
- 'wait-for-channel': typeof WaitForChannelStepDefinition;
54
- 'wait-for-track': typeof WaitForTrackStepDefinition;
55
- 'wait-for-media': typeof WaitForMediaStepDefinition;
56
- 'wait-for-message': typeof WaitForMessageStepDefinition;
57
- 'send-message': typeof SendStepDefinition;
58
- 'close-connection': typeof CloseStepDefinition;
59
- 'echo-channels': typeof EchoStepDefinition;
60
- 'peer-proxy': typeof PeerProxyStepDefinition;
61
- 'dynamic-proxy': typeof DynamicProxyStepDefinition;
70
+ 'wait-for-rtc-data-channel': typeof WaitForChannelStepDefinition;
71
+ 'wait-for-rtc-track': typeof WaitForTrackStepDefinition;
72
+ 'wait-for-rtc-media': typeof WaitForMediaStepDefinition;
73
+ 'wait-for-rtc-message': typeof WaitForMessageStepDefinition;
74
+ 'create-rtc-data-channel': typeof CreateChannelStepDefinition;
75
+ 'send-rtc-data-message': typeof SendStepDefinition;
76
+ 'close-rtc-connection': typeof CloseStepDefinition;
77
+ 'echo-rtc': typeof EchoStepDefinition;
78
+ 'rtc-peer-proxy': typeof PeerProxyStepDefinition;
79
+ 'rtc-dynamic-proxy': typeof DynamicProxyStepDefinition;
62
80
  };
63
81
  export {};