mockrtc 0.5.0 → 0.5.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 +99 -8
- package/dist/client/mockrtc-client.d.ts +1 -1
- package/dist/client/mockrtc-remote-peer.d.ts +1 -0
- package/dist/handling/handler-builder.d.ts +1 -0
- package/dist/handling/handler-step-definitions.d.ts +3 -2
- package/dist/handling/handler-step-definitions.js.map +1 -1
- package/dist/handling/handler-step-impls.d.ts +1 -1
- package/dist/matching/matcher-definitions.d.ts +1 -1
- package/dist/mockrtc-peer.d.ts +1 -0
- package/dist/mockrtc.d.ts +4 -3
- package/dist/rule-builder.d.ts +2 -1
- package/dist/server/mockrtc-admin-plugin.js +5 -3
- package/dist/server/mockrtc-admin-plugin.js.map +1 -1
- package/dist/server/mockrtc-server-peer.d.ts +2 -0
- package/dist/server/mockrtc-server-peer.js +9 -10
- package/dist/server/mockrtc-server-peer.js.map +1 -1
- package/dist/webrtc/control-channel.d.ts +1 -1
- package/dist/webrtc/datachannel-stream.d.ts +6 -0
- package/dist/webrtc/datachannel-stream.js +4 -0
- package/dist/webrtc/datachannel-stream.js.map +1 -1
- package/dist/webrtc/mediatrack-stream.d.ts +7 -0
- package/dist/webrtc/mediatrack-stream.js +5 -0
- package/dist/webrtc/mediatrack-stream.js.map +1 -1
- package/dist/webrtc/rtc-connection.d.ts +4 -4
- package/dist/webrtc/rtc-connection.js +51 -36
- package/dist/webrtc/rtc-connection.js.map +1 -1
- package/package.json +9 -13
- package/src/server/mockrtc-admin-plugin.ts +7 -3
- package/src/server/mockrtc-server-peer.ts +9 -11
- package/src/webrtc/datachannel-stream.ts +4 -0
- package/src/webrtc/mediatrack-stream.ts +5 -0
- package/src/webrtc/rtc-connection.ts +9 -5
- package/test/tsconfig.json +2 -1
- package/tsconfig.json +3 -1
- package/dist/control-channel.d.ts +0 -8
- package/dist/control-channel.js +0 -11
- package/dist/control-channel.js.map +0 -1
- package/dist/handling/handler-steps.d.ts +0 -58
- package/dist/handling/handler-steps.js +0 -235
- package/dist/handling/handler-steps.js.map +0 -1
- package/dist/matching/matcher-definition-impls.d.ts +0 -51
- package/dist/matching/matcher-definition-impls.js +0 -94
- package/dist/matching/matcher-definition-impls.js.map +0 -1
- package/dist/matching/matcher-definition.d.ts +0 -51
- package/dist/matching/matcher-definition.js +0 -94
- package/dist/matching/matcher-definition.js.map +0 -1
- package/dist/matching/matchers.d.ts +0 -27
- package/dist/matching/matchers.js +0 -87
- package/dist/matching/matchers.js.map +0 -1
- package/dist/mockrtc-admin-plugin.d.ts +0 -56
- package/dist/mockrtc-admin-plugin.js +0 -151
- package/dist/mockrtc-admin-plugin.js.map +0 -1
- package/dist/mockrtc-admin-server.d.ts +0 -7
- package/dist/mockrtc-admin-server.js +0 -18
- package/dist/mockrtc-admin-server.js.map +0 -1
- package/dist/mockrtc-client.d.ts +0 -12
- package/dist/mockrtc-client.js +0 -64
- package/dist/mockrtc-client.js.map +0 -1
- package/dist/mockrtc-handler-builder.d.ts +0 -15
- package/dist/mockrtc-handler-builder.js +0 -24
- package/dist/mockrtc-handler-builder.js.map +0 -1
- package/dist/mockrtc-remote-peer.d.ts +0 -15
- package/dist/mockrtc-remote-peer.js +0 -234
- package/dist/mockrtc-remote-peer.js.map +0 -1
- package/dist/mockrtc-server-peer.d.ts +0 -29
- package/dist/mockrtc-server-peer.js +0 -145
- package/dist/mockrtc-server-peer.js.map +0 -1
- package/dist/mockrtc-server.d.ts +0 -14
- package/dist/mockrtc-server.js +0 -53
- package/dist/mockrtc-server.js.map +0 -1
- package/dist/package.json +0 -52
- package/dist/src/main.d.ts +0 -1
- package/dist/src/main.js +0 -24
- package/dist/src/main.js.map +0 -1
- package/dist/src/mockrtc-peer.d.ts +0 -0
- package/dist/src/mockrtc-peer.js +0 -2
- package/dist/src/mockrtc-peer.js.map +0 -1
- package/dist/src/mockrtc.d.ts +0 -0
- package/dist/src/mockrtc.js +0 -65
- package/dist/src/mockrtc.js.map +0 -1
- package/dist/webrtc/peer-connection.d.ts +0 -16
- package/dist/webrtc/peer-connection.js +0 -81
- package/dist/webrtc/peer-connection.js.map +0 -1
package/.github/workflows/ci.yml
CHANGED
|
@@ -7,12 +7,18 @@ jobs:
|
|
|
7
7
|
|
|
8
8
|
strategy:
|
|
9
9
|
matrix:
|
|
10
|
-
|
|
10
|
+
include:
|
|
11
|
+
- node-version: 20.x
|
|
12
|
+
- node-version: 22.x
|
|
13
|
+
- node-version: 'v22.20.0'
|
|
14
|
+
deploys-docs: true
|
|
15
|
+
- node-version: 24.x
|
|
16
|
+
- node-version: '*'
|
|
11
17
|
|
|
12
18
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
19
|
+
- uses: actions/checkout@v6
|
|
14
20
|
|
|
15
|
-
- uses: actions/setup-node@
|
|
21
|
+
- uses: actions/setup-node@v6
|
|
16
22
|
with:
|
|
17
23
|
node-version: ${{ matrix.node-version }}
|
|
18
24
|
check-latest: true
|
|
@@ -22,13 +28,98 @@ jobs:
|
|
|
22
28
|
- run: npm install
|
|
23
29
|
- run: npm run build
|
|
24
30
|
- run: npm test
|
|
25
|
-
env:
|
|
26
|
-
NODE_OPTIONS: ${{ matrix.node-version == '22.x' && '--experimental-require-module' || '' }}
|
|
27
31
|
|
|
28
|
-
- name:
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
- name: Upload docs artifact
|
|
33
|
+
uses: actions/upload-artifact@v6
|
|
34
|
+
if: matrix.deploys-docs == true
|
|
35
|
+
with:
|
|
36
|
+
name: typedoc
|
|
37
|
+
path: typedoc
|
|
38
|
+
retention-days: 1
|
|
39
|
+
|
|
40
|
+
deploy-docs:
|
|
41
|
+
name: Deploy docs
|
|
42
|
+
needs: build
|
|
43
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
permissions:
|
|
46
|
+
contents: write
|
|
47
|
+
steps:
|
|
48
|
+
- uses: actions/checkout@v6
|
|
49
|
+
- uses: actions/download-artifact@v7
|
|
50
|
+
with:
|
|
51
|
+
name: typedoc
|
|
52
|
+
path: typedoc
|
|
53
|
+
- name: Check for generated docs
|
|
54
|
+
run: |
|
|
55
|
+
# Fails if directory doesn't exist or is empty
|
|
56
|
+
if [ ! -d "typedoc" ] || [ -z "$(ls -A typedoc)" ]; then
|
|
57
|
+
echo "Error: 'typedoc' directory is missing or empty."
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
60
|
+
- uses: JamesIves/github-pages-deploy-action@v4
|
|
31
61
|
with:
|
|
32
62
|
single-commit: true
|
|
33
63
|
branch: gh-pages
|
|
34
64
|
folder: typedoc
|
|
65
|
+
|
|
66
|
+
publish:
|
|
67
|
+
name: Publish to npm
|
|
68
|
+
needs: build
|
|
69
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
|
+
environment:
|
|
72
|
+
name: npm
|
|
73
|
+
url: https://www.npmjs.com/package/mockrtc
|
|
74
|
+
permissions:
|
|
75
|
+
contents: read
|
|
76
|
+
id-token: write
|
|
77
|
+
|
|
78
|
+
steps:
|
|
79
|
+
- uses: actions/checkout@v6
|
|
80
|
+
|
|
81
|
+
- uses: actions/setup-node@v6
|
|
82
|
+
with:
|
|
83
|
+
node-version: 'v22.20.0'
|
|
84
|
+
registry-url: 'https://registry.npmjs.org'
|
|
85
|
+
cache: 'npm'
|
|
86
|
+
cache-dependency-path: 'package.json'
|
|
87
|
+
|
|
88
|
+
- run: npm install
|
|
89
|
+
- run: npm run build
|
|
90
|
+
|
|
91
|
+
- name: Verify tag matches package.json version
|
|
92
|
+
id: version-check
|
|
93
|
+
run: |
|
|
94
|
+
TAG_VERSION=${GITHUB_REF#refs/tags/v}
|
|
95
|
+
PACKAGE_VERSION=$(node -p "require('./package.json').version")
|
|
96
|
+
if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then
|
|
97
|
+
echo "Error: Tag version (v$TAG_VERSION) does not match package.json version ($PACKAGE_VERSION)"
|
|
98
|
+
exit 1
|
|
99
|
+
fi
|
|
100
|
+
echo "✓ Tag version matches package.json version: $PACKAGE_VERSION"
|
|
101
|
+
|
|
102
|
+
# Check if version matches strict X.Y.Z format (stable release)
|
|
103
|
+
if echo "$PACKAGE_VERSION" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+$'; then
|
|
104
|
+
echo "Stable release version detected: $PACKAGE_VERSION"
|
|
105
|
+
echo "is_prerelease=false" >> $GITHUB_OUTPUT
|
|
106
|
+
else
|
|
107
|
+
echo "Prerelease version detected: $PACKAGE_VERSION"
|
|
108
|
+
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
|
109
|
+
fi
|
|
110
|
+
|
|
111
|
+
# Make sure we have the latest npm for publishing:
|
|
112
|
+
- run: npm install -g npm@latest
|
|
113
|
+
|
|
114
|
+
- name: Publish to npm
|
|
115
|
+
run: |
|
|
116
|
+
if [ "${{ steps.version-check.outputs.is_prerelease }}" == "true" ]; then
|
|
117
|
+
echo "Publishing untagged prerelease"
|
|
118
|
+
npm publish --provenance --tag test
|
|
119
|
+
# We have to publish with a tag (so we use 'test') but we can clean it up:
|
|
120
|
+
npm dist-tag rm mockrtc test --silent
|
|
121
|
+
else
|
|
122
|
+
echo "Publishing stable release with 'latest' tag"
|
|
123
|
+
npm publish --provenance
|
|
124
|
+
fi
|
|
125
|
+
|
|
@@ -4,7 +4,7 @@ import { MockRTCBase } from '../mockrtc-base';
|
|
|
4
4
|
import type { MockRTCPeer } from '../mockrtc-peer';
|
|
5
5
|
import { HandlerStepDefinition } from '../handling/handler-step-definitions';
|
|
6
6
|
import { MatcherDefinition } from '../matching/matcher-definitions';
|
|
7
|
-
export
|
|
7
|
+
export type MockRTCClientOptions = PluggableAdmin.AdminClientOptions & MockRTCOptions;
|
|
8
8
|
export declare class MockRTCClient extends MockRTCBase implements MockRTC {
|
|
9
9
|
private options;
|
|
10
10
|
private adminClient;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import * as PluggableAdmin from 'mockttp/dist/pluggable-admin-api/pluggable-admin.browser';
|
|
3
4
|
import { MockRTCSessionDescription } from '../mockrtc';
|
|
4
5
|
import { MockRTCPeer, MockRTCOfferParams, MockRTCExternalOfferParams, MockRTCExternalAnswerParams, MockRTCAnswerParams, MockRTCSession, OfferOptions, AnswerOptions } from "../mockrtc-peer";
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import * as PluggableAdmin from 'mockttp/dist/pluggable-admin-api/pluggable-admin.browser';
|
|
3
4
|
import { MockRTCSessionDescription } from '../mockrtc';
|
|
4
5
|
import type { RTCConnection } from '../webrtc/rtc-connection';
|
|
5
|
-
export
|
|
6
|
+
export type Serializable = PluggableAdmin.Serialization.Serializable;
|
|
6
7
|
export declare const Serializable: typeof PluggableAdmin.Serialization.Serializable;
|
|
7
|
-
|
|
8
|
+
type ClientServerChannel = PluggableAdmin.Serialization.ClientServerChannel;
|
|
8
9
|
export interface HandlerStepDefinition extends Serializable {
|
|
9
10
|
readonly type: keyof typeof StepDefinitionLookup;
|
|
10
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler-step-definitions.js","sourceRoot":"","sources":["../../src/handling/handler-step-definitions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAEH,2FAA2F;AAM5E,oBAAY,GAAK,cAAc,CAAC,aAAa,cAAC;AAO7D,MAAa,mBAAoB,SAAQ,oBAAY;IAKjD,YACoB,UAAkB;QAElC,KAAK,EAAE,CAAC;QAFQ,eAAU,GAAV,UAAU,CAAQ;QAJ7B,SAAI,GAAG,mBAAmB,CAAC;IAOpC,CAAC;IAED,OAAO;QACH,OAAO,YAAY,IAAI,CAAC,UAAU,IAAI,CAAC;IAC3C,CAAC;;AAbL,kDAeC;AAZmB,2BAAO,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"handler-step-definitions.js","sourceRoot":"","sources":["../../src/handling/handler-step-definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PluggableAdmin } from 'mockttp';
|
|
2
2
|
import type { MockRTCConnection } from '../webrtc/mockrtc-connection';
|
|
3
3
|
import { StepDefinitionLookup, CloseStep, DynamicProxyStep, EchoStep, HandlerStepDefinition, PeerProxyStep, CreateChannelStep, SendStep, WaitForChannelStep, WaitForDurationStep, WaitForMediaStep, WaitForMessageStep, WaitForTrackStep } from './handler-step-definitions';
|
|
4
|
-
|
|
4
|
+
type ClientServerChannel = PluggableAdmin.Serialization.ClientServerChannel;
|
|
5
5
|
export interface HandlerStepImpl extends HandlerStepDefinition {
|
|
6
6
|
handle(connection: MockRTCConnection): Promise<void>;
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as PluggableAdmin from 'mockttp/dist/pluggable-admin-api/pluggable-admin.browser';
|
|
2
|
-
export
|
|
2
|
+
export type Serializable = PluggableAdmin.Serialization.Serializable;
|
|
3
3
|
export declare const Serializable: typeof PluggableAdmin.Serialization.Serializable;
|
|
4
4
|
export interface MatcherDefinition extends Serializable {
|
|
5
5
|
readonly type: keyof typeof MatcherDefinitionLookup;
|
package/dist/mockrtc-peer.d.ts
CHANGED
package/dist/mockrtc.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import type { MockRTCHandlerBuilder } from "./handling/handler-builder";
|
|
3
4
|
import { HandlerStepDefinition } from "./handling/handler-step-definitions";
|
|
4
5
|
import { MatcherDefinition } from "./matching/matcher-definitions";
|
|
@@ -36,7 +37,7 @@ export interface TimingEvents {
|
|
|
36
37
|
disconnectTimestamp?: number;
|
|
37
38
|
externalAttachTimestamp?: number;
|
|
38
39
|
}
|
|
39
|
-
export
|
|
40
|
+
export type MockRTCEventData = {
|
|
40
41
|
"peer-connected": {
|
|
41
42
|
peerId: string;
|
|
42
43
|
sessionId: string;
|
|
@@ -127,8 +128,8 @@ export declare type MockRTCEventData = {
|
|
|
127
128
|
timingEvents: TimingEvents;
|
|
128
129
|
};
|
|
129
130
|
};
|
|
130
|
-
export
|
|
131
|
-
export
|
|
131
|
+
export type MockRTCEvent = keyof MockRTCEventData;
|
|
132
|
+
export type MockRTCRuleDefinition = {
|
|
132
133
|
matchers: MatcherDefinition[];
|
|
133
134
|
steps: HandlerStepDefinition[];
|
|
134
135
|
};
|
package/dist/rule-builder.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
import { MockRTCHandlerBuilder } from "./handling/handler-builder";
|
|
3
4
|
import { HandlerStepDefinition } from "./handling/handler-step-definitions";
|
|
4
5
|
import { MatcherDefinition } from "./matching/matcher-definitions";
|
|
5
|
-
export
|
|
6
|
+
export type RuleHandlerBuilder = MockRTCHandlerBuilder<void>;
|
|
6
7
|
/**
|
|
7
8
|
* Rule builders allow you to combine sets of matchers, progressively
|
|
8
9
|
* building a set of matching conditions, before defining the resulting
|
|
@@ -14,13 +14,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
14
14
|
};
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.MockRTCAdminPlugin = void 0;
|
|
17
|
-
const _ = require("lodash");
|
|
18
17
|
const graphql_tag_1 = require("graphql-tag");
|
|
19
18
|
const mockttp_1 = require("mockttp");
|
|
20
19
|
const graphql_subscriptions_1 = require("graphql-subscriptions");
|
|
21
20
|
const handler_step_impls_1 = require("../handling/handler-step-impls");
|
|
22
21
|
const mockrtc_server_1 = require("./mockrtc-server");
|
|
23
22
|
const matcher_impls_1 = require("../matching/matcher-impls");
|
|
23
|
+
function kebabToCamel(str) {
|
|
24
|
+
return str.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
|
|
25
|
+
}
|
|
24
26
|
const { deserialize } = mockttp_1.PluggableAdmin.Serialization;
|
|
25
27
|
const EVENTS = [
|
|
26
28
|
'peer-connected',
|
|
@@ -219,7 +221,7 @@ class MockRTCAdminPlugin {
|
|
|
219
221
|
const pubsub = new graphql_subscriptions_1.PubSub();
|
|
220
222
|
EVENTS.forEach((eventName) => {
|
|
221
223
|
this.mockRTCServer.on(eventName, (peer) => {
|
|
222
|
-
pubsub.publish(eventName, { [
|
|
224
|
+
pubsub.publish(eventName, { [kebabToCamel(eventName)]: peer });
|
|
223
225
|
});
|
|
224
226
|
});
|
|
225
227
|
return {
|
|
@@ -315,7 +317,7 @@ class MockRTCAdminPlugin {
|
|
|
315
317
|
});
|
|
316
318
|
})
|
|
317
319
|
},
|
|
318
|
-
Subscription: Object.assign({}, (EVENTS.reduce((acc, eventName) => (Object.assign(Object.assign({}, acc), { [
|
|
320
|
+
Subscription: Object.assign({}, (EVENTS.reduce((acc, eventName) => (Object.assign(Object.assign({}, acc), { [kebabToCamel(eventName)]: {
|
|
319
321
|
subscribe: () => pubsub.asyncIterator(eventName)
|
|
320
322
|
} })), {})))
|
|
321
323
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockrtc-admin-plugin.js","sourceRoot":"","sources":["../../src/server/mockrtc-admin-plugin.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"mockrtc-admin-plugin.js","sourceRoot":"","sources":["../../src/server/mockrtc-admin-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
2
4
|
import { EventEmitter } from "events";
|
|
3
5
|
import { MockRTCPeer, MockRTCPeerOptions, MockRTCSession, MockRTCAnswerParams, MockRTCOfferParams, MockRTCExternalAnswerParams, MockRTCExternalOfferParams, OfferOptions, AnswerOptions } from "../mockrtc-peer";
|
|
4
6
|
import { HandlerStepImpl } from '../handling/handler-step-impls';
|
|
@@ -15,7 +15,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.MockRTCServerPeer = void 0;
|
|
17
17
|
const crypto_1 = require("crypto");
|
|
18
|
-
const now = require("performance-now");
|
|
19
18
|
const rtc_connection_1 = require("../webrtc/rtc-connection");
|
|
20
19
|
const mockrtc_connection_1 = require("../webrtc/mockrtc-connection");
|
|
21
20
|
class MockRTCServerPeer {
|
|
@@ -52,7 +51,7 @@ class MockRTCServerPeer {
|
|
|
52
51
|
conn.once('connection-connected', () => {
|
|
53
52
|
const timingEvents = {
|
|
54
53
|
startTime: Date.now(),
|
|
55
|
-
connectTimestamp: now()
|
|
54
|
+
connectTimestamp: performance.now()
|
|
56
55
|
};
|
|
57
56
|
const connectionEventParams = {
|
|
58
57
|
peerId: this.peerId,
|
|
@@ -62,7 +61,7 @@ class MockRTCServerPeer {
|
|
|
62
61
|
const selectedCandidates = conn.getSelectedCandidates();
|
|
63
62
|
this.eventEmitter.emit('peer-connected', Object.assign(Object.assign({}, connectionEventParams), { localSessionDescription: conn.getLocalDescription(), remoteSessionDescription: conn.getRemoteDescription(), metadata: conn.metadata, selectedLocalCandidate: selectedCandidates.local, selectedRemoteCandidate: selectedCandidates.remote }));
|
|
64
63
|
conn.once('external-connection-attached', (externalConn) => {
|
|
65
|
-
timingEvents.externalAttachTimestamp = now();
|
|
64
|
+
timingEvents.externalAttachTimestamp = performance.now();
|
|
66
65
|
const selectedExternalCandidates = externalConn.getSelectedCandidates();
|
|
67
66
|
this.eventEmitter.emit('external-peer-attached', Object.assign(Object.assign({}, connectionEventParams), { externalConnection: {
|
|
68
67
|
sessionId: externalConn.id,
|
|
@@ -75,7 +74,7 @@ class MockRTCServerPeer {
|
|
|
75
74
|
const emitChannelEvents = (channelStream) => {
|
|
76
75
|
const channelEventParams = Object.assign(Object.assign({}, connectionEventParams), { channelId: channelStream.id });
|
|
77
76
|
const announceOpen = () => {
|
|
78
|
-
this.eventEmitter.emit('data-channel-opened', Object.assign(Object.assign({}, channelEventParams), { channelLabel: channelStream.label, channelProtocol: channelStream.protocol, eventTimestamp: now() }));
|
|
77
|
+
this.eventEmitter.emit('data-channel-opened', Object.assign(Object.assign({}, channelEventParams), { channelLabel: channelStream.label, channelProtocol: channelStream.protocol, eventTimestamp: performance.now() }));
|
|
79
78
|
};
|
|
80
79
|
if (channelStream.isOpen)
|
|
81
80
|
announceOpen();
|
|
@@ -88,11 +87,11 @@ class MockRTCServerPeer {
|
|
|
88
87
|
: Buffer.from(data, 'utf8');
|
|
89
88
|
this.eventEmitter.emit(`data-channel-message-${direction}`, Object.assign(Object.assign({}, channelEventParams), { direction,
|
|
90
89
|
content,
|
|
91
|
-
isBinary, eventTimestamp: now() }));
|
|
90
|
+
isBinary, eventTimestamp: performance.now() }));
|
|
92
91
|
};
|
|
93
92
|
channelStream.on('read-data', emitMessage('received'));
|
|
94
93
|
channelStream.on('wrote-data', emitMessage('sent'));
|
|
95
|
-
channelStream.on('close', () => this.eventEmitter.emit('data-channel-closed', Object.assign(Object.assign({}, channelEventParams), { eventTimestamp: now() })));
|
|
94
|
+
channelStream.on('close', () => this.eventEmitter.emit('data-channel-closed', Object.assign(Object.assign({}, channelEventParams), { eventTimestamp: performance.now() })));
|
|
96
95
|
};
|
|
97
96
|
conn.on('channel-created', emitChannelEvents);
|
|
98
97
|
// Due to race conditions somewhere (?) presumably in node-datachannel, channels can
|
|
@@ -102,7 +101,7 @@ class MockRTCServerPeer {
|
|
|
102
101
|
const emitTrackEvents = (mediaTrack) => {
|
|
103
102
|
const trackEventParams = Object.assign(Object.assign({}, connectionEventParams), { trackMid: mediaTrack.mid });
|
|
104
103
|
const announceOpen = () => {
|
|
105
|
-
this.eventEmitter.emit('media-track-opened', Object.assign(Object.assign({}, trackEventParams), { trackType: mediaTrack.type, trackDirection: mediaTrack.direction, eventTimestamp: now() }));
|
|
104
|
+
this.eventEmitter.emit('media-track-opened', Object.assign(Object.assign({}, trackEventParams), { trackType: mediaTrack.type, trackDirection: mediaTrack.direction, eventTimestamp: performance.now() }));
|
|
106
105
|
};
|
|
107
106
|
if (mediaTrack.isOpen)
|
|
108
107
|
announceOpen();
|
|
@@ -114,13 +113,13 @@ class MockRTCServerPeer {
|
|
|
114
113
|
if (previousBytesSent === mediaTrack.totalBytesSent &&
|
|
115
114
|
previousBytesReceived === mediaTrack.totalBytesReceived)
|
|
116
115
|
return; // Skip zero-change events to limit traffic noise
|
|
117
|
-
this.eventEmitter.emit('media-track-stats', Object.assign(Object.assign({}, trackEventParams), { totalBytesSent: mediaTrack.totalBytesSent, totalBytesReceived: mediaTrack.totalBytesReceived, eventTimestamp: now() }));
|
|
116
|
+
this.eventEmitter.emit('media-track-stats', Object.assign(Object.assign({}, trackEventParams), { totalBytesSent: mediaTrack.totalBytesSent, totalBytesReceived: mediaTrack.totalBytesReceived, eventTimestamp: performance.now() }));
|
|
118
117
|
previousBytesSent = mediaTrack.totalBytesSent;
|
|
119
118
|
previousBytesReceived = mediaTrack.totalBytesReceived;
|
|
120
119
|
}, 1000);
|
|
121
120
|
mediaTrack.on('close', () => {
|
|
122
121
|
clearInterval(statsInterval);
|
|
123
|
-
this.eventEmitter.emit('media-track-closed', Object.assign(Object.assign({}, trackEventParams), { eventTimestamp: now() }));
|
|
122
|
+
this.eventEmitter.emit('media-track-closed', Object.assign(Object.assign({}, trackEventParams), { eventTimestamp: performance.now() }));
|
|
124
123
|
});
|
|
125
124
|
};
|
|
126
125
|
conn.on('track-created', emitTrackEvents);
|
|
@@ -129,7 +128,7 @@ class MockRTCServerPeer {
|
|
|
129
128
|
// existing tracks here too:
|
|
130
129
|
conn.mediaTracks.forEach(emitTrackEvents);
|
|
131
130
|
conn.once('connection-closed', () => {
|
|
132
|
-
timingEvents.disconnectTimestamp = now();
|
|
131
|
+
timingEvents.disconnectTimestamp = performance.now();
|
|
133
132
|
this.eventEmitter.emit('peer-disconnected', Object.assign({}, connectionEventParams));
|
|
134
133
|
});
|
|
135
134
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockrtc-server-peer.js","sourceRoot":"","sources":["../../src/server/mockrtc-server-peer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAEH,mCAAoC;
|
|
1
|
+
{"version":3,"file":"mockrtc-server-peer.js","sourceRoot":"","sources":["../../src/server/mockrtc-server-peer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
2
4
|
import * as stream from 'stream';
|
|
3
5
|
import type * as NodeDataChannel from 'node-datachannel';
|
|
4
6
|
/**
|
|
@@ -19,9 +21,13 @@ export declare class DataChannelStream extends stream.Duplex {
|
|
|
19
21
|
private _isOpen;
|
|
20
22
|
get isOpen(): boolean;
|
|
21
23
|
private _readActive;
|
|
24
|
+
/** @internal */
|
|
22
25
|
_read(): void;
|
|
26
|
+
/** @internal */
|
|
23
27
|
_write(chunk: string | Buffer | unknown, encoding: string, callback: (error: Error | null) => void): void;
|
|
28
|
+
/** @internal */
|
|
24
29
|
_final(callback: (error: Error | null) => void): void;
|
|
30
|
+
/** @internal */
|
|
25
31
|
_destroy(maybeErr: Error | null, callback: (error: Error | null) => void): void;
|
|
26
32
|
get id(): number;
|
|
27
33
|
get label(): string;
|
|
@@ -59,10 +59,12 @@ class DataChannelStream extends stream.Duplex {
|
|
|
59
59
|
get isOpen() {
|
|
60
60
|
return this._isOpen;
|
|
61
61
|
}
|
|
62
|
+
/** @internal */
|
|
62
63
|
_read() {
|
|
63
64
|
// Stop dropping messages, if the buffer filling up meant we were doing so before.
|
|
64
65
|
this._readActive = true;
|
|
65
66
|
}
|
|
67
|
+
/** @internal */
|
|
66
68
|
_write(chunk, encoding, callback) {
|
|
67
69
|
let sentOk;
|
|
68
70
|
try {
|
|
@@ -88,11 +90,13 @@ class DataChannelStream extends stream.Duplex {
|
|
|
88
90
|
callback(new Error("Failed to write to DataChannel"));
|
|
89
91
|
}
|
|
90
92
|
}
|
|
93
|
+
/** @internal */
|
|
91
94
|
_final(callback) {
|
|
92
95
|
if (!this.allowHalfOpen)
|
|
93
96
|
this.destroy();
|
|
94
97
|
callback(null);
|
|
95
98
|
}
|
|
99
|
+
/** @internal */
|
|
96
100
|
_destroy(maybeErr, callback) {
|
|
97
101
|
// When the stream is destroyed, we close the DataChannel.
|
|
98
102
|
this.rawChannel.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datachannel-stream.js","sourceRoot":"","sources":["../../src/webrtc/datachannel-stream.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"datachannel-stream.js","sourceRoot":"","sources":["../../src/webrtc/datachannel-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
2
4
|
import * as stream from 'stream';
|
|
3
5
|
import type * as NodeDataChannel from 'node-datachannel';
|
|
4
6
|
/**
|
|
@@ -21,13 +23,18 @@ export declare class MediaTrackStream extends stream.Duplex {
|
|
|
21
23
|
get totalBytesReceived(): number;
|
|
22
24
|
private close;
|
|
23
25
|
private _readActive;
|
|
26
|
+
/** @internal */
|
|
24
27
|
_read(): void;
|
|
28
|
+
/** @internal */
|
|
25
29
|
_write(chunk: Buffer, _encoding: string, callback: (error: Error | null) => void): void;
|
|
30
|
+
/** @internal */
|
|
26
31
|
_writev(chunks: Array<{
|
|
27
32
|
chunk: any;
|
|
28
33
|
encoding: BufferEncoding;
|
|
29
34
|
}>, callback: (error?: Error | null) => void): void;
|
|
35
|
+
/** @internal */
|
|
30
36
|
_final(callback: (error: Error | null) => void): void;
|
|
37
|
+
/** @internal */
|
|
31
38
|
_destroy(maybeErr: Error | null, callback: (error: Error | null) => void): void;
|
|
32
39
|
get direction(): NodeDataChannel.Direction;
|
|
33
40
|
get mid(): string;
|
|
@@ -60,10 +60,12 @@ class MediaTrackStream extends stream.Duplex {
|
|
|
60
60
|
this.push(null);
|
|
61
61
|
this.destroy();
|
|
62
62
|
}
|
|
63
|
+
/** @internal */
|
|
63
64
|
_read() {
|
|
64
65
|
// Stop dropping messages, if the buffer filling up meant we were doing so before.
|
|
65
66
|
this._readActive = true;
|
|
66
67
|
}
|
|
68
|
+
/** @internal */
|
|
67
69
|
_write(chunk, _encoding, callback) {
|
|
68
70
|
let sentOk;
|
|
69
71
|
if (this.rawTrack.isClosed()) {
|
|
@@ -86,6 +88,7 @@ class MediaTrackStream extends stream.Duplex {
|
|
|
86
88
|
callback(new Error("Failed to write to media track"));
|
|
87
89
|
}
|
|
88
90
|
}
|
|
91
|
+
/** @internal */
|
|
89
92
|
_writev(chunks, callback) {
|
|
90
93
|
let sentOk;
|
|
91
94
|
if (this.rawTrack.isClosed()) {
|
|
@@ -109,11 +112,13 @@ class MediaTrackStream extends stream.Duplex {
|
|
|
109
112
|
callback(new Error("Failed to write to media track"));
|
|
110
113
|
}
|
|
111
114
|
}
|
|
115
|
+
/** @internal */
|
|
112
116
|
_final(callback) {
|
|
113
117
|
if (!this.allowHalfOpen)
|
|
114
118
|
this.destroy();
|
|
115
119
|
callback(null);
|
|
116
120
|
}
|
|
121
|
+
/** @internal */
|
|
117
122
|
_destroy(maybeErr, callback) {
|
|
118
123
|
// When the stream is destroyed, we close the DataChannel.
|
|
119
124
|
this.rawTrack.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mediatrack-stream.js","sourceRoot":"","sources":["../../src/webrtc/mediatrack-stream.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mediatrack-stream.js","sourceRoot":"","sources":["../../src/webrtc/mediatrack-stream.ts"],"names":[],"mappings":"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"}
|