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.
- 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 +11 -1
- package/dist/handling/handler-steps.js +33 -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 +21 -21
- 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 +2 -2
- 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 +42 -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 +37 -20
- 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 +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-
|
|
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;
|
|
@@ -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-
|
|
146
|
-
connection.on('track-
|
|
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
|
-
'
|
|
213
|
-
'
|
|
214
|
-
'
|
|
215
|
-
'
|
|
216
|
-
'
|
|
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":";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 {
|