mockrtc 0.2.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.
- package/.github/workflows/ci.yml +2 -2
- package/dist/client/mockrtc-admin-request-builder.d.ts +7 -1
- package/dist/client/mockrtc-admin-request-builder.js +30 -0
- package/dist/client/mockrtc-admin-request-builder.js.map +1 -1
- package/dist/client/mockrtc-client.d.ts +8 -4
- package/dist/client/mockrtc-client.js +21 -9
- package/dist/client/mockrtc-client.js.map +1 -1
- package/dist/handling/handler-builder.d.ts +16 -9
- package/dist/handling/handler-builder.js +11 -1
- package/dist/handling/handler-builder.js.map +1 -1
- package/dist/handling/handler-step-definitions.d.ts +40 -23
- package/dist/handling/handler-step-definitions.js +61 -19
- package/dist/handling/handler-step-definitions.js.map +1 -1
- package/dist/handling/handler-steps.d.ts +4 -1
- package/dist/handling/handler-steps.js +26 -16
- package/dist/handling/handler-steps.js.map +1 -1
- package/dist/main-browser.d.ts +1 -0
- package/dist/main-browser.js +2 -1
- package/dist/main-browser.js.map +1 -1
- package/dist/main.d.ts +5 -3
- package/dist/main.js +2 -1
- package/dist/main.js.map +1 -1
- package/dist/matching/matcher-definitions.d.ts +51 -0
- package/dist/matching/matcher-definitions.js +94 -0
- package/dist/matching/matcher-definitions.js.map +1 -0
- package/dist/matching/matchers.d.ts +27 -0
- package/dist/matching/matchers.js +87 -0
- package/dist/matching/matchers.js.map +1 -0
- package/dist/mockrtc-base.d.ts +16 -0
- package/dist/mockrtc-base.js +19 -0
- package/dist/mockrtc-base.js.map +1 -0
- package/dist/mockrtc-peer.d.ts +9 -2
- package/dist/mockrtc.d.ts +62 -0
- package/dist/mockrtc.js.map +1 -1
- package/dist/rule-builder.d.ts +86 -0
- package/dist/rule-builder.js +113 -0
- package/dist/rule-builder.js.map +1 -0
- package/dist/server/mockrtc-admin-plugin.js +18 -1
- package/dist/server/mockrtc-admin-plugin.js.map +1 -1
- package/dist/server/mockrtc-server-peer.d.ts +1 -1
- package/dist/server/mockrtc-server-peer.js +19 -7
- package/dist/server/mockrtc-server-peer.js.map +1 -1
- package/dist/server/mockrtc-server.d.ts +12 -5
- package/dist/server/mockrtc-server.js +53 -18
- package/dist/server/mockrtc-server.js.map +1 -1
- package/dist/webrtc/datachannel-stream.d.ts +2 -0
- package/dist/webrtc/datachannel-stream.js +15 -1
- package/dist/webrtc/datachannel-stream.js.map +1 -1
- package/dist/webrtc/mediatrack-stream.d.ts +2 -0
- package/dist/webrtc/mediatrack-stream.js +15 -1
- package/dist/webrtc/mediatrack-stream.js.map +1 -1
- package/dist/webrtc/mockrtc-connection.js +1 -1
- package/dist/webrtc/mockrtc-connection.js.map +1 -1
- package/dist/webrtc/rtc-connection.d.ts +6 -2
- package/dist/webrtc/rtc-connection.js +20 -20
- package/dist/webrtc/rtc-connection.js.map +1 -1
- package/dist/webrtc-hooks.js +8 -2
- package/dist/webrtc-hooks.js.map +1 -1
- package/package.json +1 -1
- package/src/client/mockrtc-admin-request-builder.ts +49 -1
- package/src/client/mockrtc-client.ts +28 -10
- package/src/handling/handler-builder.ts +22 -10
- package/src/handling/handler-step-definitions.ts +81 -23
- package/src/handling/handler-steps.ts +28 -15
- package/src/main-browser.ts +1 -0
- package/src/main.ts +5 -1
- package/src/matching/matcher-definitions.ts +109 -0
- package/src/matching/matchers.ts +118 -0
- package/src/mockrtc-base.ts +49 -0
- package/src/mockrtc-peer.ts +9 -2
- package/src/mockrtc.ts +72 -0
- package/src/rule-builder.ts +142 -0
- package/src/server/mockrtc-admin-plugin.ts +41 -3
- package/src/server/mockrtc-server-peer.ts +28 -18
- package/src/server/mockrtc-server.ts +71 -15
- package/src/webrtc/datachannel-stream.ts +15 -1
- package/src/webrtc/mediatrack-stream.ts +15 -1
- package/src/webrtc/mockrtc-connection.ts +1 -1
- package/src/webrtc/rtc-connection.ts +36 -19
- package/src/webrtc-hooks.ts +8 -2
- package/test/integration/events.spec.ts +3 -1
- package/test/integration/matching.spec.ts +189 -0
- package/test/integration/proxy.spec.ts +4 -2
- package/test/integration/send-steps.spec.ts +25 -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-
|
|
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-
|
|
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-
|
|
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-
|
|
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;
|
|
@@ -142,8 +151,8 @@ class EchoStep extends handler_step_definitions_1.EchoStepDefinition {
|
|
|
142
151
|
const echoContent = (stream) => {
|
|
143
152
|
stream.pipe(stream);
|
|
144
153
|
};
|
|
145
|
-
connection.on('channel-
|
|
146
|
-
connection.on('track-
|
|
154
|
+
connection.on('channel-created', echoContent);
|
|
155
|
+
connection.on('track-created', echoContent);
|
|
147
156
|
connection.channels.forEach(echoContent);
|
|
148
157
|
connection.mediaTracks.forEach(echoContent);
|
|
149
158
|
// This step keeps running indefinitely, until the connection closes
|
|
@@ -205,14 +214,15 @@ class DynamicProxyStep extends handler_step_definitions_1.DynamicProxyStepDefini
|
|
|
205
214
|
exports.DynamicProxyStep = DynamicProxyStep;
|
|
206
215
|
exports.StepLookup = {
|
|
207
216
|
'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
|
-
'
|
|
213
|
-
'
|
|
214
|
-
'
|
|
215
|
-
'
|
|
216
|
-
'
|
|
217
|
+
'wait-for-rtc-data-channel': WaitForChannelStep,
|
|
218
|
+
'wait-for-rtc-track': WaitForTrackStep,
|
|
219
|
+
'wait-for-rtc-media': WaitForMediaStep,
|
|
220
|
+
'wait-for-rtc-message': WaitForMessageStep,
|
|
221
|
+
'create-rtc-data-channel': CreateChannelStep,
|
|
222
|
+
'send-rtc-data-message': SendStep,
|
|
223
|
+
'close-rtc-connection': CloseStep,
|
|
224
|
+
'echo-rtc': EchoStep,
|
|
225
|
+
'rtc-peer-proxy': PeerProxyStep,
|
|
226
|
+
'rtc-dynamic-proxy': DynamicProxyStep
|
|
217
227
|
};
|
|
218
228
|
//# sourceMappingURL=handler-steps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-steps.js","sourceRoot":"","sources":["../../src/handling/handler-steps.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAQH,6DAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"handler-steps.js","sourceRoot":"","sources":["../../src/handling/handler-steps.ts"],"names":[],"mappings":"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"}
|
package/dist/main-browser.d.ts
CHANGED
|
@@ -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';
|
package/dist/main-browser.js
CHANGED
|
@@ -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");
|
package/dist/main-browser.js.map
CHANGED
|
@@ -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;;;
|
|
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"}
|
package/dist/mockrtc-peer.d.ts
CHANGED
|
@@ -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
|
|
162
|
-
*
|
|
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 {
|
package/dist/mockrtc.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { MockRTCHandlerBuilder } from "./handling/handler-builder";
|
|
3
|
+
import { HandlerStepDefinition } from "./handling/handler-step-definitions";
|
|
4
|
+
import { MatcherDefinition } from "./matching/matcher-definitions";
|
|
3
5
|
import type { ConnectionMetadata, MockRTCPeer } from "./mockrtc-peer";
|
|
6
|
+
import { MockRTCRuleBuilder } from "./rule-builder";
|
|
4
7
|
export interface MockRTCPeerBuilder extends MockRTCHandlerBuilder<MockRTCPeer> {
|
|
5
8
|
}
|
|
6
9
|
export interface MockRTCOptions {
|
|
@@ -125,6 +128,10 @@ export declare type MockRTCEventData = {
|
|
|
125
128
|
};
|
|
126
129
|
};
|
|
127
130
|
export declare type MockRTCEvent = keyof MockRTCEventData;
|
|
131
|
+
export declare type MockRTCRuleDefinition = {
|
|
132
|
+
matchers: MatcherDefinition[];
|
|
133
|
+
steps: HandlerStepDefinition[];
|
|
134
|
+
};
|
|
128
135
|
export interface MockRTC {
|
|
129
136
|
/**
|
|
130
137
|
* Start creating a mock WebRTC peer. This method returns a builder, who
|
|
@@ -140,6 +147,22 @@ export interface MockRTC {
|
|
|
140
147
|
* rules using the `forX()` methods, and connect by using `getMatchingPeer()`.
|
|
141
148
|
*/
|
|
142
149
|
buildPeer(): MockRTCPeerBuilder;
|
|
150
|
+
/**
|
|
151
|
+
* Starting defining a mock WebRTC rule. This methods returns a rule builder,
|
|
152
|
+
* which can be configured to define which incoming connections should be
|
|
153
|
+
* matched, with methods like `.fromPageHostname(hostname)`.
|
|
154
|
+
*
|
|
155
|
+
* Once the matching is configured, start calling handler methods like
|
|
156
|
+
* `.send()` to define a series of steps to run for matching connections,
|
|
157
|
+
* and then call a `.thenX()` method to complete the definition and
|
|
158
|
+
* define the rule.
|
|
159
|
+
*
|
|
160
|
+
* The rule definition is not complete until the returned promise resolves.
|
|
161
|
+
* Once it has resolved successfully, any future connections to the peer
|
|
162
|
+
* returned by `getMatchingPeer()` will be matched against these rules,
|
|
163
|
+
* and will run the steps for the first matching rule found.
|
|
164
|
+
*/
|
|
165
|
+
forConnections(): MockRTCRuleBuilder;
|
|
143
166
|
/**
|
|
144
167
|
* Get the rule-matching peer.
|
|
145
168
|
*
|
|
@@ -158,5 +181,44 @@ export interface MockRTC {
|
|
|
158
181
|
getMatchingPeer(): MockRTCPeer;
|
|
159
182
|
start(): Promise<void>;
|
|
160
183
|
stop(): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Subscribe to events to monitor WebRTC interactions across all peers managed by
|
|
186
|
+
* this MockRTC session. The events available include:
|
|
187
|
+
*
|
|
188
|
+
* - `peer-connected`
|
|
189
|
+
* - `peer-disconnected`
|
|
190
|
+
* - `external-peer-attached`
|
|
191
|
+
* - `data-channel-opened`
|
|
192
|
+
* - `data-channel-message-sent`
|
|
193
|
+
* - `data-channel-message-received`
|
|
194
|
+
* - `data-channel-closed`
|
|
195
|
+
* - `media-track-opened`
|
|
196
|
+
* - `media-track-stats`
|
|
197
|
+
* - `media-track-closed`
|
|
198
|
+
*/
|
|
161
199
|
on<E extends MockRTCEvent>(event: E, callback: (param: MockRTCEventData[E]) => void): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Create a peer from a set of step definitions.
|
|
202
|
+
*
|
|
203
|
+
* This API is only useful if you're building peers from data programmatically,
|
|
204
|
+
* rather than using `buildPeer()` and `MockRTCPeerBuilder`, which are generally
|
|
205
|
+
* preferable otherwise.
|
|
206
|
+
*/
|
|
207
|
+
buildPeerFromDefinition(handlerStepDefinitions: HandlerStepDefinition[]): Promise<MockRTCPeer>;
|
|
208
|
+
/**
|
|
209
|
+
* Create a connection-matching rule from a set of matchers and step definitions.
|
|
210
|
+
*
|
|
211
|
+
* This API is only useful if you're building rule from data programmatically,
|
|
212
|
+
* rather than using `forX()` and `MockRTCHandlerBuilder`, which are generally
|
|
213
|
+
* preferable otherwise.
|
|
214
|
+
*/
|
|
215
|
+
addRuleFromDefinition(matcherDefinitions: MatcherDefinition[], handlerStepDefinitions: HandlerStepDefinition[]): Promise<void>;
|
|
216
|
+
/**
|
|
217
|
+
* Create a connection-matching rule from a set of matchers and step definitions.
|
|
218
|
+
*
|
|
219
|
+
* This API is only useful if you're building rule from data programmatically,
|
|
220
|
+
* rather than using `forX()` and `MockRTCHandlerBuilder`, which are generally
|
|
221
|
+
* preferable otherwise.
|
|
222
|
+
*/
|
|
223
|
+
setRulesFromDefinitions(rules: Array<MockRTCRuleDefinition>): Promise<void>;
|
|
162
224
|
}
|
package/dist/mockrtc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockrtc.js","sourceRoot":"","sources":["../src/mockrtc.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"mockrtc.js","sourceRoot":"","sources":["../src/mockrtc.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAqCF,CAAC"}
|