mockrtc 0.2.0 → 0.3.1

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 (84) hide show
  1. package/.github/workflows/ci.yml +2 -2
  2. package/dist/client/mockrtc-admin-request-builder.d.ts +7 -1
  3. package/dist/client/mockrtc-admin-request-builder.js +30 -0
  4. package/dist/client/mockrtc-admin-request-builder.js.map +1 -1
  5. package/dist/client/mockrtc-client.d.ts +8 -4
  6. package/dist/client/mockrtc-client.js +21 -9
  7. package/dist/client/mockrtc-client.js.map +1 -1
  8. package/dist/handling/handler-builder.d.ts +16 -9
  9. package/dist/handling/handler-builder.js +11 -1
  10. package/dist/handling/handler-builder.js.map +1 -1
  11. package/dist/handling/handler-step-definitions.d.ts +40 -23
  12. package/dist/handling/handler-step-definitions.js +61 -19
  13. package/dist/handling/handler-step-definitions.js.map +1 -1
  14. package/dist/handling/handler-steps.d.ts +11 -1
  15. package/dist/handling/handler-steps.js +33 -16
  16. package/dist/handling/handler-steps.js.map +1 -1
  17. package/dist/main-browser.d.ts +1 -0
  18. package/dist/main-browser.js +2 -1
  19. package/dist/main-browser.js.map +1 -1
  20. package/dist/main.d.ts +5 -3
  21. package/dist/main.js +2 -1
  22. package/dist/main.js.map +1 -1
  23. package/dist/matching/matcher-definitions.d.ts +51 -0
  24. package/dist/matching/matcher-definitions.js +94 -0
  25. package/dist/matching/matcher-definitions.js.map +1 -0
  26. package/dist/matching/matchers.d.ts +27 -0
  27. package/dist/matching/matchers.js +87 -0
  28. package/dist/matching/matchers.js.map +1 -0
  29. package/dist/mockrtc-base.d.ts +16 -0
  30. package/dist/mockrtc-base.js +19 -0
  31. package/dist/mockrtc-base.js.map +1 -0
  32. package/dist/mockrtc-peer.d.ts +9 -2
  33. package/dist/mockrtc.d.ts +62 -0
  34. package/dist/mockrtc.js.map +1 -1
  35. package/dist/rule-builder.d.ts +86 -0
  36. package/dist/rule-builder.js +113 -0
  37. package/dist/rule-builder.js.map +1 -0
  38. package/dist/server/mockrtc-admin-plugin.js +18 -1
  39. package/dist/server/mockrtc-admin-plugin.js.map +1 -1
  40. package/dist/server/mockrtc-server-peer.d.ts +1 -1
  41. package/dist/server/mockrtc-server-peer.js +19 -7
  42. package/dist/server/mockrtc-server-peer.js.map +1 -1
  43. package/dist/server/mockrtc-server.d.ts +12 -5
  44. package/dist/server/mockrtc-server.js +53 -18
  45. package/dist/server/mockrtc-server.js.map +1 -1
  46. package/dist/webrtc/datachannel-stream.d.ts +2 -0
  47. package/dist/webrtc/datachannel-stream.js +15 -1
  48. package/dist/webrtc/datachannel-stream.js.map +1 -1
  49. package/dist/webrtc/mediatrack-stream.d.ts +2 -0
  50. package/dist/webrtc/mediatrack-stream.js +15 -1
  51. package/dist/webrtc/mediatrack-stream.js.map +1 -1
  52. package/dist/webrtc/mockrtc-connection.js +1 -1
  53. package/dist/webrtc/mockrtc-connection.js.map +1 -1
  54. package/dist/webrtc/rtc-connection.d.ts +6 -2
  55. package/dist/webrtc/rtc-connection.js +21 -21
  56. package/dist/webrtc/rtc-connection.js.map +1 -1
  57. package/dist/webrtc-hooks.js +8 -2
  58. package/dist/webrtc-hooks.js.map +1 -1
  59. package/package.json +2 -2
  60. package/src/client/mockrtc-admin-request-builder.ts +49 -1
  61. package/src/client/mockrtc-client.ts +28 -10
  62. package/src/handling/handler-builder.ts +22 -10
  63. package/src/handling/handler-step-definitions.ts +81 -23
  64. package/src/handling/handler-steps.ts +42 -15
  65. package/src/main-browser.ts +1 -0
  66. package/src/main.ts +5 -1
  67. package/src/matching/matcher-definitions.ts +109 -0
  68. package/src/matching/matchers.ts +118 -0
  69. package/src/mockrtc-base.ts +49 -0
  70. package/src/mockrtc-peer.ts +9 -2
  71. package/src/mockrtc.ts +72 -0
  72. package/src/rule-builder.ts +142 -0
  73. package/src/server/mockrtc-admin-plugin.ts +41 -3
  74. package/src/server/mockrtc-server-peer.ts +28 -18
  75. package/src/server/mockrtc-server.ts +71 -15
  76. package/src/webrtc/datachannel-stream.ts +15 -1
  77. package/src/webrtc/mediatrack-stream.ts +15 -1
  78. package/src/webrtc/mockrtc-connection.ts +1 -1
  79. package/src/webrtc/rtc-connection.ts +37 -20
  80. package/src/webrtc-hooks.ts +8 -2
  81. package/test/integration/events.spec.ts +3 -1
  82. package/test/integration/matching.spec.ts +189 -0
  83. package/test/integration/proxy.spec.ts +4 -2
  84. package/test/integration/send-steps.spec.ts +51 -0
@@ -13,7 +13,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
13
13
  });
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.StepLookup = exports.DynamicProxyStep = exports.PeerProxyStep = exports.EchoStep = exports.CloseStep = exports.SendStep = exports.WaitForMediaStep = exports.WaitForTrackStep = exports.WaitForMessageStep = exports.WaitForChannelStep = exports.WaitForDurationStep = void 0;
16
+ exports.StepLookup = exports.DynamicProxyStep = exports.PeerProxyStep = exports.EchoStep = exports.CloseStep = exports.SendStep = exports.CreateChannelStep = exports.WaitForMediaStep = exports.WaitForTrackStep = exports.WaitForMessageStep = exports.WaitForChannelStep = exports.WaitForDurationStep = void 0;
17
17
  const rtc_connection_1 = require("../webrtc/rtc-connection");
18
18
  const handler_step_definitions_1 = require("./handler-step-definitions");
19
19
  class WaitForDurationStep extends handler_step_definitions_1.WaitForDurationStepDefinition {
@@ -52,7 +52,7 @@ class WaitForMessageStep extends handler_step_definitions_1.WaitForMessageStepDe
52
52
  return __awaiter(this, void 0, void 0, function* () {
53
53
  return new Promise((resolve) => {
54
54
  const messageReceived = () => {
55
- connection.removeListener('channel-open', listenForMessage);
55
+ connection.removeListener('channel-created', listenForMessage);
56
56
  connection.channels.forEach((channel) => {
57
57
  channel.removeListener('data', messageReceived);
58
58
  channel.pause();
@@ -64,7 +64,7 @@ class WaitForMessageStep extends handler_step_definitions_1.WaitForMessageStepDe
64
64
  channel.once('data', messageReceived);
65
65
  }
66
66
  };
67
- connection.on('channel-open', listenForMessage);
67
+ connection.on('channel-created', listenForMessage);
68
68
  connection.channels.forEach(listenForMessage);
69
69
  });
70
70
  });
@@ -89,7 +89,7 @@ class WaitForMediaStep extends handler_step_definitions_1.WaitForMediaStepDefini
89
89
  return __awaiter(this, void 0, void 0, function* () {
90
90
  return new Promise((resolve) => {
91
91
  const messageReceived = () => {
92
- connection.removeListener('track-open', listenForData);
92
+ connection.removeListener('track-created', listenForData);
93
93
  connection.mediaTracks.forEach((track) => {
94
94
  track.removeListener('data', messageReceived);
95
95
  track.pause();
@@ -99,13 +99,22 @@ class WaitForMediaStep extends handler_step_definitions_1.WaitForMediaStepDefini
99
99
  const listenForData = (track) => {
100
100
  track.once('data', messageReceived);
101
101
  };
102
- connection.on('track-open', listenForData);
102
+ connection.on('track-created', listenForData);
103
103
  connection.mediaTracks.forEach(listenForData);
104
104
  });
105
105
  });
106
106
  }
107
107
  }
108
108
  exports.WaitForMediaStep = WaitForMediaStep;
109
+ class CreateChannelStep extends handler_step_definitions_1.CreateChannelStepDefinition {
110
+ handle(conn) {
111
+ return __awaiter(this, void 0, void 0, function* () {
112
+ const channel = conn.createDataChannel(this.channelLabel);
113
+ return new Promise((resolve) => channel.once('channel-open', resolve));
114
+ });
115
+ }
116
+ }
117
+ exports.CreateChannelStep = CreateChannelStep;
109
118
  class SendStep extends handler_step_definitions_1.SendStepDefinition {
110
119
  matchesChannel(channel) {
111
120
  return this.channelLabel === undefined || this.channelLabel === channel.label;
@@ -126,6 +135,13 @@ class SendStep extends handler_step_definitions_1.SendStepDefinition {
126
135
  }));
127
136
  });
128
137
  }
138
+ static deserialize(data) {
139
+ return new SendStep(data.channelLabel, typeof data.message === 'string'
140
+ ? data.message
141
+ // Buffers are serialized very roughly, so here we
142
+ // turn them back into real Buffer instances:
143
+ : Buffer.from(data.message.data));
144
+ }
129
145
  }
130
146
  exports.SendStep = SendStep;
131
147
  class CloseStep extends handler_step_definitions_1.CloseStepDefinition {
@@ -142,8 +158,8 @@ class EchoStep extends handler_step_definitions_1.EchoStepDefinition {
142
158
  const echoContent = (stream) => {
143
159
  stream.pipe(stream);
144
160
  };
145
- connection.on('channel-open', echoContent);
146
- connection.on('track-open', echoContent);
161
+ connection.on('channel-created', echoContent);
162
+ connection.on('track-created', echoContent);
147
163
  connection.channels.forEach(echoContent);
148
164
  connection.mediaTracks.forEach(echoContent);
149
165
  // This step keeps running indefinitely, until the connection closes
@@ -205,14 +221,15 @@ class DynamicProxyStep extends handler_step_definitions_1.DynamicProxyStepDefini
205
221
  exports.DynamicProxyStep = DynamicProxyStep;
206
222
  exports.StepLookup = {
207
223
  'wait-for-duration': WaitForDurationStep,
208
- 'wait-for-channel': WaitForChannelStep,
209
- 'wait-for-track': WaitForTrackStep,
210
- 'wait-for-media': WaitForMediaStep,
211
- 'wait-for-message': WaitForMessageStep,
212
- 'send-message': SendStep,
213
- 'close-connection': CloseStep,
214
- 'echo-channels': EchoStep,
215
- 'peer-proxy': PeerProxyStep,
216
- 'dynamic-proxy': DynamicProxyStep
224
+ 'wait-for-rtc-data-channel': WaitForChannelStep,
225
+ 'wait-for-rtc-track': WaitForTrackStep,
226
+ 'wait-for-rtc-media': WaitForMediaStep,
227
+ 'wait-for-rtc-message': WaitForMessageStep,
228
+ 'create-rtc-data-channel': CreateChannelStep,
229
+ 'send-rtc-data-message': SendStep,
230
+ 'close-rtc-connection': CloseStep,
231
+ 'echo-rtc': EchoStep,
232
+ 'rtc-peer-proxy': PeerProxyStep,
233
+ 'rtc-dynamic-proxy': DynamicProxyStep
217
234
  };
218
235
  //# sourceMappingURL=handler-steps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler-steps.js","sourceRoot":"","sources":["../../src/handling/handler-steps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-steps.js","sourceRoot":"","sources":["../../src/handling/handler-steps.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { MockRTC, MockRTCOptions } from "./mockrtc";
2
2
  import { MockRTCClientOptions } from "./client/mockrtc-client";
3
3
  export * as HandlerStepDefinitions from "./handling/handler-step-definitions";
4
+ export * as MatcherDefinitions from "./matching/matcher-definitions";
4
5
  export { MockRTCAdminRequestBuilder } from "./client/mockrtc-admin-request-builder";
5
6
  export type { MockRTC, MockRTCOptions };
6
7
  export type { MockRTCPeer, MockRTCSession, MockRTCOfferParams, MockRTCAnswerParams, MockRTCExternalOfferParams, MockRTCExternalAnswerParams, OfferOptions, AnswerOptions } from './mockrtc-peer';
@@ -4,10 +4,11 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.getAdminServer = exports.getRemote = exports.getLocal = exports.hookAllWebRTC = exports.hookWebRTCConnection = exports.MOCKRTC_CONTROL_CHANNEL = exports.MockRTCAdminRequestBuilder = exports.HandlerStepDefinitions = void 0;
7
+ exports.getAdminServer = exports.getRemote = exports.getLocal = exports.hookAllWebRTC = exports.hookWebRTCConnection = exports.MOCKRTC_CONTROL_CHANNEL = exports.MockRTCAdminRequestBuilder = exports.MatcherDefinitions = exports.HandlerStepDefinitions = void 0;
8
8
  const mockrtc_client_1 = require("./client/mockrtc-client");
9
9
  // Export the required structures to remotely build and send rules to the admin API:
10
10
  exports.HandlerStepDefinitions = require("./handling/handler-step-definitions");
11
+ exports.MatcherDefinitions = require("./matching/matcher-definitions");
11
12
  var mockrtc_admin_request_builder_1 = require("./client/mockrtc-admin-request-builder");
12
13
  Object.defineProperty(exports, "MockRTCAdminRequestBuilder", { enumerable: true, get: function () { return mockrtc_admin_request_builder_1.MockRTCAdminRequestBuilder; } });
13
14
  var control_channel_1 = require("./webrtc/control-channel");
@@ -1 +1 @@
1
- {"version":3,"file":"main-browser.js","sourceRoot":"","sources":["../src/main-browser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAMH,4DAA8E;AAE9E,oFAAoF;AACpF,gFAA8E;AAC9E,wFAAoF;AAA3E,2IAAA,0BAA0B,OAAA;AAkBnC,4DAAmE;AAA1D,0HAAA,uBAAuB,OAAA;AAChC,+CAGwB;AAFpB,oHAAA,oBAAoB,OAAA;AACpB,6GAAA,aAAa,OAAA;AAGjB,SAAgB,QAAQ;IACpB,OAAO,IAAI,8BAAa,EAAE,CAAC;AAC/B,CAAC;AAFD,4BAEC;AAED,SAAgB,SAAS,CAAC,UAAgC,EAAE;IACxD,OAAO,IAAI,8BAAa,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAFD,8BAEC;AAED,SAAgB,cAAc;IAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AACjE,CAAC;AAFD,wCAEC"}
1
+ {"version":3,"file":"main-browser.js","sourceRoot":"","sources":["../src/main-browser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAMH,4DAA8E;AAE9E,oFAAoF;AACpF,gFAA8E;AAC9E,uEAAqE;AACrE,wFAAoF;AAA3E,2IAAA,0BAA0B,OAAA;AAkBnC,4DAAmE;AAA1D,0HAAA,uBAAuB,OAAA;AAChC,+CAGwB;AAFpB,oHAAA,oBAAoB,OAAA;AACpB,6GAAA,aAAa,OAAA;AAGjB,SAAgB,QAAQ;IACpB,OAAO,IAAI,8BAAa,EAAE,CAAC;AAC/B,CAAC;AAFD,4BAEC;AAED,SAAgB,SAAS,CAAC,UAAgC,EAAE;IACxD,OAAO,IAAI,8BAAa,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAFD,8BAEC;AAED,SAAgB,cAAc;IAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;AACjE,CAAC;AAFD,wCAEC"}
package/dist/main.d.ts CHANGED
@@ -1,19 +1,21 @@
1
- import { MockRTC, MockRTCOptions, MockRTCPeerBuilder, MockRTCEvent, MockRTCEventData, MockRTCSessionDescription, SelectedRTCCandidate, TimingEvents } from "./mockrtc";
1
+ import { MockRTC, MockRTCOptions, MockRTCPeerBuilder, MockRTCEvent, MockRTCEventData, MockRTCRuleDefinition, MockRTCSessionDescription, SelectedRTCCandidate, TimingEvents } from "./mockrtc";
2
2
  import { MockRTCAdminServer } from "./server/mockrtc-admin-server";
3
3
  export { MockRTCAdminPlugin } from "./server/mockrtc-admin-plugin";
4
4
  import { MockRTCClientOptions } from "./client/mockrtc-client";
5
5
  export * as HandlerStepDefinitions from "./handling/handler-step-definitions";
6
+ export * as MatcherDefinitions from "./matching/matcher-definitions";
6
7
  export { MockRTCAdminRequestBuilder } from "./client/mockrtc-admin-request-builder";
7
8
  export type { HandlerStep } from "./handling/handler-steps";
8
9
  export type { MockRTCHandlerBuilder } from "./handling/handler-builder";
10
+ export type { MockRTCRuleBuilder, RuleHandlerBuilder } from "./rule-builder";
9
11
  export type { MockRTCServerPeer } from "./server/mockrtc-server-peer";
10
12
  export type { SessionData } from "./server/mockrtc-admin-plugin";
11
- export type { RTCConnection } from "./webrtc/rtc-connection";
13
+ export type { RTCConnection, ParsedSDP } from "./webrtc/rtc-connection";
12
14
  export type { MockRTCConnection } from "./webrtc/mockrtc-connection";
13
15
  export type { DataChannelStream } from "./webrtc/datachannel-stream";
14
16
  export type { MediaTrackStream } from "./webrtc/mediatrack-stream";
15
17
  export type { PluggableAdmin } from 'mockttp';
16
- export type { MockRTC, MockRTCOptions, MockRTCClientOptions, MockRTCPeerBuilder, MockRTCAdminServer, MockRTCEvent, MockRTCEventData, MockRTCSessionDescription, SelectedRTCCandidate, TimingEvents };
18
+ export type { MockRTC, MockRTCOptions, MockRTCClientOptions, MockRTCPeerBuilder, MockRTCAdminServer, MockRTCEvent, MockRTCEventData, MockRTCRuleDefinition, MockRTCSessionDescription, SelectedRTCCandidate, TimingEvents };
17
19
  export type { MockRTCPeer, MockRTCPeerOptions, MockRTCSession, MockRTCOfferParams, MockRTCAnswerParams, MockRTCExternalOfferParams, MockRTCExternalAnswerParams, OfferOptions, AnswerOptions, ConnectionMetadata } from './mockrtc-peer';
18
20
  export { MOCKRTC_CONTROL_CHANNEL, type MockRTCControlMessage } from './webrtc/control-channel';
19
21
  export { hookWebRTCConnection, hookAllWebRTC } from "./webrtc-hooks";
package/dist/main.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.getAdminServer = exports.getRemote = exports.getLocal = exports.hookAllWebRTC = exports.hookWebRTCConnection = exports.MOCKRTC_CONTROL_CHANNEL = exports.MockRTCAdminRequestBuilder = exports.HandlerStepDefinitions = exports.MockRTCAdminPlugin = void 0;
7
+ exports.getAdminServer = exports.getRemote = exports.getLocal = exports.hookAllWebRTC = exports.hookWebRTCConnection = exports.MOCKRTC_CONTROL_CHANNEL = exports.MockRTCAdminRequestBuilder = exports.MatcherDefinitions = exports.HandlerStepDefinitions = exports.MockRTCAdminPlugin = void 0;
8
8
  const mockrtc_server_1 = require("./server/mockrtc-server");
9
9
  const mockrtc_admin_server_1 = require("./server/mockrtc-admin-server");
10
10
  var mockrtc_admin_plugin_1 = require("./server/mockrtc-admin-plugin");
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "MockRTCAdminPlugin", { enumerable: true, get: fu
12
12
  const mockrtc_client_1 = require("./client/mockrtc-client");
13
13
  // Export the required structures to remotely build and send rules to the admin API:
14
14
  exports.HandlerStepDefinitions = require("./handling/handler-step-definitions");
15
+ exports.MatcherDefinitions = require("./matching/matcher-definitions");
15
16
  var mockrtc_admin_request_builder_1 = require("./client/mockrtc-admin-request-builder");
16
17
  Object.defineProperty(exports, "MockRTCAdminRequestBuilder", { enumerable: true, get: function () { return mockrtc_admin_request_builder_1.MockRTCAdminRequestBuilder; } });
17
18
  var control_channel_1 = require("./webrtc/control-channel");
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAaH,4DAAwD;AACxD,wEAAmE;AACnE,sEAAmE;AAA1D,0HAAA,kBAAkB,OAAA;AAE3B,4DAA8E;AAE9E,oFAAoF;AACpF,gFAA8E;AAC9E,wFAAoF;AAA3E,2IAAA,0BAA0B,OAAA;AA0CnC,4DAGkC;AAF9B,0HAAA,uBAAuB,OAAA;AAG3B,+CAGwB;AAFpB,oHAAA,oBAAoB,OAAA;AACpB,6GAAA,aAAa,OAAA;AAGjB;;;;;;;;;;;;;GAaG;AACH,SAAgB,QAAQ;IACpB,OAAO,IAAI,8BAAa,EAAE,CAAC;AAC/B,CAAC;AAFD,4BAEC;AAED;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,UAAgC,EAAE;IACxD,OAAO,IAAI,8BAAa,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAFD,8BAEC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,cAAc;IAC1B,OAAO,IAAI,yCAAkB,EAAE,CAAC;AACpC,CAAC;AAFD,wCAEC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAcH,4DAAwD;AACxD,wEAAmE;AACnE,sEAAmE;AAA1D,0HAAA,kBAAkB,OAAA;AAE3B,4DAA8E;AAE9E,oFAAoF;AACpF,gFAA8E;AAC9E,uEAAqE;AACrE,wFAAoF;AAA3E,2IAAA,0BAA0B,OAAA;AA4CnC,4DAGkC;AAF9B,0HAAA,uBAAuB,OAAA;AAG3B,+CAGwB;AAFpB,oHAAA,oBAAoB,OAAA;AACpB,6GAAA,aAAa,OAAA;AAGjB;;;;;;;;;;;;;GAaG;AACH,SAAgB,QAAQ;IACpB,OAAO,IAAI,8BAAa,EAAE,CAAC;AAC/B,CAAC;AAFD,4BAEC;AAED;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,UAAgC,EAAE;IACxD,OAAO,IAAI,8BAAa,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAFD,8BAEC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,cAAc;IAC1B,OAAO,IAAI,yCAAkB,EAAE,CAAC;AACpC,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,51 @@
1
+ import * as PluggableAdmin from 'mockttp/dist/pluggable-admin-api/pluggable-admin.browser';
2
+ export declare type Serializable = PluggableAdmin.Serialization.Serializable;
3
+ export declare const Serializable: typeof PluggableAdmin.Serialization.Serializable;
4
+ export interface MatcherDefinition extends Serializable {
5
+ readonly type: keyof typeof MatcherDefinitionLookup;
6
+ }
7
+ export declare class HasDataChannelMatcherDefinition extends Serializable implements MatcherDefinition {
8
+ readonly type = "has-rtc-data-channel";
9
+ explain(): string;
10
+ }
11
+ export declare class HasVideoTrackMatcherDefinition extends Serializable implements MatcherDefinition {
12
+ readonly type = "has-rtc-video-track";
13
+ explain(): string;
14
+ }
15
+ export declare class HasAudioTrackMatcherDefinition extends Serializable implements MatcherDefinition {
16
+ readonly type = "has-rtc-audio-track";
17
+ explain(): string;
18
+ }
19
+ export declare class HasMediaTrackMatcherDefinition extends Serializable implements MatcherDefinition {
20
+ readonly type = "has-rtc-media-track";
21
+ explain(): string;
22
+ }
23
+ export declare class HostnameMatcherDefinition extends Serializable implements MatcherDefinition {
24
+ readonly hostname: string;
25
+ readonly type = "rtc-page-hostname";
26
+ constructor(hostname: string);
27
+ explain(): string;
28
+ }
29
+ export declare class UrlRegexMatcherDefinition extends Serializable implements MatcherDefinition {
30
+ readonly type = "rtc-page-regex";
31
+ readonly regexSource: string;
32
+ readonly regexFlags: string;
33
+ constructor(regex: RegExp);
34
+ explain(): string;
35
+ }
36
+ export declare class UserAgentRegexMatcherDefinition extends Serializable implements MatcherDefinition {
37
+ readonly type = "rtc-user-agent-regex";
38
+ readonly regexSource: string;
39
+ readonly regexFlags: string;
40
+ constructor(regex: RegExp);
41
+ explain(): string;
42
+ }
43
+ export declare const MatcherDefinitionLookup: {
44
+ 'has-rtc-data-channel': typeof HasDataChannelMatcherDefinition;
45
+ 'has-rtc-video-track': typeof HasVideoTrackMatcherDefinition;
46
+ 'has-rtc-audio-track': typeof HasAudioTrackMatcherDefinition;
47
+ 'has-rtc-media-track': typeof HasMediaTrackMatcherDefinition;
48
+ 'rtc-page-hostname': typeof HostnameMatcherDefinition;
49
+ 'rtc-page-regex': typeof UrlRegexMatcherDefinition;
50
+ 'rtc-user-agent-regex': typeof UserAgentRegexMatcherDefinition;
51
+ };
@@ -0,0 +1,94 @@
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.MatcherDefinitionLookup = exports.UserAgentRegexMatcherDefinition = exports.UrlRegexMatcherDefinition = exports.HostnameMatcherDefinition = exports.HasMediaTrackMatcherDefinition = exports.HasAudioTrackMatcherDefinition = exports.HasVideoTrackMatcherDefinition = exports.HasDataChannelMatcherDefinition = exports.Serializable = void 0;
8
+ const PluggableAdmin = require("mockttp/dist/pluggable-admin-api/pluggable-admin.browser");
9
+ exports.Serializable = PluggableAdmin.Serialization.Serializable;
10
+ class HasDataChannelMatcherDefinition extends exports.Serializable {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.type = 'has-rtc-data-channel';
14
+ }
15
+ explain() {
16
+ return `with a data channel`;
17
+ }
18
+ }
19
+ exports.HasDataChannelMatcherDefinition = HasDataChannelMatcherDefinition;
20
+ class HasVideoTrackMatcherDefinition extends exports.Serializable {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.type = 'has-rtc-video-track';
24
+ }
25
+ explain() {
26
+ return `with a video track`;
27
+ }
28
+ }
29
+ exports.HasVideoTrackMatcherDefinition = HasVideoTrackMatcherDefinition;
30
+ class HasAudioTrackMatcherDefinition extends exports.Serializable {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.type = 'has-rtc-audio-track';
34
+ }
35
+ explain() {
36
+ return `with an audio track`;
37
+ }
38
+ }
39
+ exports.HasAudioTrackMatcherDefinition = HasAudioTrackMatcherDefinition;
40
+ class HasMediaTrackMatcherDefinition extends exports.Serializable {
41
+ constructor() {
42
+ super(...arguments);
43
+ this.type = 'has-rtc-media-track';
44
+ }
45
+ explain() {
46
+ return `with any media track`;
47
+ }
48
+ }
49
+ exports.HasMediaTrackMatcherDefinition = HasMediaTrackMatcherDefinition;
50
+ class HostnameMatcherDefinition extends exports.Serializable {
51
+ constructor(hostname) {
52
+ super();
53
+ this.hostname = hostname;
54
+ this.type = 'rtc-page-hostname';
55
+ }
56
+ explain() {
57
+ return `from a page on ${this.hostname}`;
58
+ }
59
+ }
60
+ exports.HostnameMatcherDefinition = HostnameMatcherDefinition;
61
+ class UrlRegexMatcherDefinition extends exports.Serializable {
62
+ constructor(regex) {
63
+ super();
64
+ this.type = 'rtc-page-regex';
65
+ this.regexSource = regex.source;
66
+ this.regexFlags = regex.flags;
67
+ }
68
+ explain() {
69
+ return `from a page with URL matching /${this.regexSource}/${this.regexFlags}`;
70
+ }
71
+ }
72
+ exports.UrlRegexMatcherDefinition = UrlRegexMatcherDefinition;
73
+ class UserAgentRegexMatcherDefinition extends exports.Serializable {
74
+ constructor(regex) {
75
+ super();
76
+ this.type = 'rtc-user-agent-regex';
77
+ this.regexSource = regex.source;
78
+ this.regexFlags = regex.flags;
79
+ }
80
+ explain() {
81
+ return `from a user agent matching /${this.regexSource}/${this.regexFlags}`;
82
+ }
83
+ }
84
+ exports.UserAgentRegexMatcherDefinition = UserAgentRegexMatcherDefinition;
85
+ exports.MatcherDefinitionLookup = {
86
+ 'has-rtc-data-channel': HasDataChannelMatcherDefinition,
87
+ 'has-rtc-video-track': HasVideoTrackMatcherDefinition,
88
+ 'has-rtc-audio-track': HasAudioTrackMatcherDefinition,
89
+ 'has-rtc-media-track': HasMediaTrackMatcherDefinition,
90
+ 'rtc-page-hostname': HostnameMatcherDefinition,
91
+ 'rtc-page-regex': UrlRegexMatcherDefinition,
92
+ 'rtc-user-agent-regex': UserAgentRegexMatcherDefinition
93
+ };
94
+ //# sourceMappingURL=matcher-definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher-definitions.js","sourceRoot":"","sources":["../../src/matching/matcher-definitions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2FAA2F;AAG5E,oBAAY,GAAK,cAAc,CAAC,aAAa,cAAC;AAM7D,MAAa,+BAAgC,SAAQ,oBAAY;IAAjE;;QACa,SAAI,GAAG,sBAAsB,CAAC;IAK3C,CAAC;IAHG,OAAO;QACH,OAAO,qBAAqB,CAAC;IACjC,CAAC;CACJ;AAND,0EAMC;AAED,MAAa,8BAA+B,SAAQ,oBAAY;IAAhE;;QACa,SAAI,GAAG,qBAAqB,CAAC;IAK1C,CAAC;IAHG,OAAO;QACH,OAAO,oBAAoB,CAAC;IAChC,CAAC;CACJ;AAND,wEAMC;AAED,MAAa,8BAA+B,SAAQ,oBAAY;IAAhE;;QACa,SAAI,GAAG,qBAAqB,CAAC;IAK1C,CAAC;IAHG,OAAO;QACH,OAAO,qBAAqB,CAAC;IACjC,CAAC;CACJ;AAND,wEAMC;AAED,MAAa,8BAA+B,SAAQ,oBAAY;IAAhE;;QACa,SAAI,GAAG,qBAAqB,CAAC;IAK1C,CAAC;IAHG,OAAO;QACH,OAAO,sBAAsB,CAAC;IAClC,CAAC;CACJ;AAND,wEAMC;AAED,MAAa,yBAA0B,SAAQ,oBAAY;IAIvD,YACoB,QAAgB;QAEhC,KAAK,EAAE,CAAC;QAFQ,aAAQ,GAAR,QAAQ,CAAQ;QAH3B,SAAI,GAAG,mBAAmB,CAAC;IAMpC,CAAC;IAED,OAAO;QACH,OAAO,kBAAkB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;CAEJ;AAdD,8DAcC;AAED,MAAa,yBAA0B,SAAQ,oBAAY;IAOvD,YAAY,KAAa;QACrB,KAAK,EAAE,CAAC;QANH,SAAI,GAAG,gBAAgB,CAAC;QAO7B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,OAAO;QACH,OAAO,kCAAkC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IACnF,CAAC;CAEJ;AAjBD,8DAiBC;AAED,MAAa,+BAAiC,SAAQ,oBAAY;IAO9D,YAAY,KAAa;QACrB,KAAK,EAAE,CAAC;QANH,SAAI,GAAG,sBAAsB,CAAC;QAOnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,OAAO;QACH,OAAO,+BAA+B,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAChF,CAAC;CAEJ;AAjBD,0EAiBC;AAEY,QAAA,uBAAuB,GAAG;IACnC,sBAAsB,EAAE,+BAA+B;IACvD,qBAAqB,EAAE,8BAA8B;IACrD,qBAAqB,EAAE,8BAA8B;IACrD,qBAAqB,EAAE,8BAA8B;IACrD,mBAAmB,EAAE,yBAAyB;IAC9C,gBAAgB,EAAE,yBAAyB;IAC3C,sBAAsB,EAAE,+BAA+B;CAC1D,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { RTCConnection } from "../webrtc/rtc-connection";
2
+ import { MatcherDefinition, MatcherDefinitionLookup, HasAudioTrackMatcherDefinition, HasDataChannelMatcherDefinition, HasMediaTrackMatcherDefinition, HasVideoTrackMatcherDefinition, HostnameMatcherDefinition, UrlRegexMatcherDefinition, UserAgentRegexMatcherDefinition } from "./matcher-definitions";
3
+ export interface Matcher extends MatcherDefinition {
4
+ matches(connection: RTCConnection): boolean;
5
+ }
6
+ export declare class HasDataChannelMatcher extends HasDataChannelMatcherDefinition {
7
+ matches(connection: RTCConnection): boolean;
8
+ }
9
+ export declare class HasVideoTrackMatcher extends HasVideoTrackMatcherDefinition {
10
+ matches(connection: RTCConnection): boolean;
11
+ }
12
+ export declare class HasAudioTrackMatcher extends HasAudioTrackMatcherDefinition {
13
+ matches(connection: RTCConnection): boolean;
14
+ }
15
+ export declare class HasMediaTrackMatcher extends HasMediaTrackMatcherDefinition {
16
+ matches(connection: RTCConnection): boolean;
17
+ }
18
+ export declare class HostnameMatcher extends HostnameMatcherDefinition {
19
+ matches(connection: RTCConnection): boolean;
20
+ }
21
+ export declare class UrlRegexMatcher extends UrlRegexMatcherDefinition {
22
+ matches(connection: RTCConnection): boolean;
23
+ }
24
+ export declare class UserAgentRegexMatcher extends UserAgentRegexMatcherDefinition {
25
+ matches(connection: RTCConnection): boolean;
26
+ }
27
+ export declare const MatcherLookup: typeof MatcherDefinitionLookup;
@@ -0,0 +1,87 @@
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.MatcherLookup = exports.UserAgentRegexMatcher = exports.UrlRegexMatcher = exports.HostnameMatcher = exports.HasMediaTrackMatcher = exports.HasAudioTrackMatcher = exports.HasVideoTrackMatcher = exports.HasDataChannelMatcher = void 0;
8
+ const matcher_definitions_1 = require("./matcher-definitions");
9
+ class HasDataChannelMatcher extends matcher_definitions_1.HasDataChannelMatcherDefinition {
10
+ matches(connection) {
11
+ return [
12
+ ...connection.getLocalDescription().parsedSdp.media,
13
+ ...connection.getRemoteDescription().parsedSdp.media
14
+ ].some(media => media.type === 'application');
15
+ }
16
+ }
17
+ exports.HasDataChannelMatcher = HasDataChannelMatcher;
18
+ class HasVideoTrackMatcher extends matcher_definitions_1.HasVideoTrackMatcherDefinition {
19
+ matches(connection) {
20
+ return [
21
+ ...connection.getLocalDescription().parsedSdp.media,
22
+ ...connection.getRemoteDescription().parsedSdp.media
23
+ ].some(media => media.type === 'video');
24
+ }
25
+ }
26
+ exports.HasVideoTrackMatcher = HasVideoTrackMatcher;
27
+ class HasAudioTrackMatcher extends matcher_definitions_1.HasAudioTrackMatcherDefinition {
28
+ matches(connection) {
29
+ return [
30
+ ...connection.getLocalDescription().parsedSdp.media,
31
+ ...connection.getRemoteDescription().parsedSdp.media
32
+ ].some(media => media.type === 'audio');
33
+ }
34
+ }
35
+ exports.HasAudioTrackMatcher = HasAudioTrackMatcher;
36
+ class HasMediaTrackMatcher extends matcher_definitions_1.HasMediaTrackMatcherDefinition {
37
+ matches(connection) {
38
+ return [
39
+ ...connection.getLocalDescription().parsedSdp.media,
40
+ ...connection.getRemoteDescription().parsedSdp.media
41
+ ].some(media => media.type === 'video' || media.type === 'audio');
42
+ }
43
+ }
44
+ exports.HasMediaTrackMatcher = HasMediaTrackMatcher;
45
+ const getConnectionSourceURL = (connection) => {
46
+ const { sourceURL } = connection.metadata;
47
+ if (!sourceURL)
48
+ return;
49
+ try {
50
+ return new URL(sourceURL);
51
+ }
52
+ catch (e) {
53
+ console.warn('Unparseable RTC source URL:', e);
54
+ return;
55
+ }
56
+ };
57
+ class HostnameMatcher extends matcher_definitions_1.HostnameMatcherDefinition {
58
+ matches(connection) {
59
+ const url = getConnectionSourceURL(connection);
60
+ return (url === null || url === void 0 ? void 0 : url.hostname) === this.hostname;
61
+ }
62
+ }
63
+ exports.HostnameMatcher = HostnameMatcher;
64
+ class UrlRegexMatcher extends matcher_definitions_1.UrlRegexMatcherDefinition {
65
+ matches(connection) {
66
+ const url = getConnectionSourceURL(connection);
67
+ return !!(url === null || url === void 0 ? void 0 : url.toString().match(new RegExp(this.regexSource, this.regexFlags)));
68
+ }
69
+ }
70
+ exports.UrlRegexMatcher = UrlRegexMatcher;
71
+ class UserAgentRegexMatcher extends matcher_definitions_1.UserAgentRegexMatcherDefinition {
72
+ matches(connection) {
73
+ const userAgent = connection.metadata.userAgent;
74
+ return !!(userAgent === null || userAgent === void 0 ? void 0 : userAgent.match(new RegExp(this.regexSource, this.regexFlags)));
75
+ }
76
+ }
77
+ exports.UserAgentRegexMatcher = UserAgentRegexMatcher;
78
+ exports.MatcherLookup = {
79
+ 'has-rtc-data-channel': HasDataChannelMatcher,
80
+ 'has-rtc-video-track': HasVideoTrackMatcher,
81
+ 'has-rtc-audio-track': HasAudioTrackMatcher,
82
+ 'has-rtc-media-track': HasMediaTrackMatcher,
83
+ 'rtc-page-hostname': HostnameMatcher,
84
+ 'rtc-page-regex': UrlRegexMatcher,
85
+ 'rtc-user-agent-regex': UserAgentRegexMatcher
86
+ };
87
+ //# sourceMappingURL=matchers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/matching/matchers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { MockRTC, MockRTCEventData, MockRTCPeerBuilder, MockRTCRuleDefinition } from "./mockrtc";
2
+ import { MockRTCPeer } from "./mockrtc-peer";
3
+ import { HandlerStepDefinition } from "./handling/handler-step-definitions";
4
+ import { MatcherDefinition } from "./matching/matcher-definitions";
5
+ import { MockRTCRuleBuilder } from "./rule-builder";
6
+ export declare abstract class MockRTCBase implements MockRTC {
7
+ abstract getMatchingPeer(): MockRTCPeer;
8
+ abstract start(): Promise<void>;
9
+ abstract stop(): Promise<void>;
10
+ abstract on<E extends keyof MockRTCEventData>(event: E, callback: (param: MockRTCEventData[E]) => void): Promise<void>;
11
+ buildPeer(): MockRTCPeerBuilder;
12
+ abstract buildPeerFromDefinition(handlerStepDefinitions: HandlerStepDefinition[]): Promise<MockRTCPeer>;
13
+ forConnections(): MockRTCRuleBuilder;
14
+ abstract addRuleFromDefinition(matcherDefinitions: MatcherDefinition[], handlerStepDefinitions: HandlerStepDefinition[]): Promise<void>;
15
+ abstract setRulesFromDefinitions(ruleDefinitions: Array<MockRTCRuleDefinition>): Promise<void>;
16
+ }
@@ -0,0 +1,19 @@
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.MockRTCBase = void 0;
8
+ const handler_builder_1 = require("./handling/handler-builder");
9
+ const rule_builder_1 = require("./rule-builder");
10
+ class MockRTCBase {
11
+ buildPeer() {
12
+ return new handler_builder_1.MockRTCHandlerBuilder(this.buildPeerFromDefinition.bind(this));
13
+ }
14
+ forConnections() {
15
+ return new rule_builder_1.MockRTCRuleBuilder(this.addRuleFromDefinition.bind(this));
16
+ }
17
+ }
18
+ exports.MockRTCBase = MockRTCBase;
19
+ //# sourceMappingURL=mockrtc-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockrtc-base.js","sourceRoot":"","sources":["../src/mockrtc-base.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AASH,gEAAmE;AAGnE,iDAAoD;AAEpD,MAAsB,WAAW;IAU7B,SAAS;QACL,OAAO,IAAI,uCAAqB,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC;IAMD,cAAc;QACV,OAAO,IAAI,iCAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;CAWJ;AA/BD,kCA+BC"}
@@ -158,11 +158,18 @@ export interface AnswerOptions {
158
158
  * Extra metadata to associate with the connection. This will be exposed on
159
159
  * events like peer-connected, and can be used to add context to connections.
160
160
  *
161
- * The only defined value is 'userAgent' which must be a client user agent
162
- * string (in a browser, the navigator.userAgent value) if defined.
161
+ * The defined fields may only be used as defined here, but all values are
162
+ * optional, and any other metadata may be attached in any format here.
163
+ *
164
+ * The only defined values are:
165
+ * - `userAgent` - a client user-agent string (in a browser, the value of
166
+ * `navigator.userAgent`)
167
+ * - `sourceURL` - the URL of the referring page, when the request is sent by
168
+ * a browser
163
169
  */
164
170
  export interface ConnectionMetadata {
165
171
  userAgent?: string;
172
+ sourceURL?: string;
166
173
  [k: string]: any;
167
174
  }
168
175
  export interface MockRTCExternalOfferParams {