mockrtc 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/.github/workflows/ci.yml +2 -2
  2. package/dist/client/mockrtc-admin-request-builder.d.ts +7 -1
  3. package/dist/client/mockrtc-admin-request-builder.js +30 -0
  4. package/dist/client/mockrtc-admin-request-builder.js.map +1 -1
  5. package/dist/client/mockrtc-client.d.ts +8 -4
  6. package/dist/client/mockrtc-client.js +21 -9
  7. package/dist/client/mockrtc-client.js.map +1 -1
  8. package/dist/handling/handler-builder.d.ts +16 -9
  9. package/dist/handling/handler-builder.js +11 -1
  10. package/dist/handling/handler-builder.js.map +1 -1
  11. package/dist/handling/handler-step-definitions.d.ts +40 -23
  12. package/dist/handling/handler-step-definitions.js +61 -19
  13. package/dist/handling/handler-step-definitions.js.map +1 -1
  14. package/dist/handling/handler-steps.d.ts +11 -1
  15. package/dist/handling/handler-steps.js +33 -16
  16. package/dist/handling/handler-steps.js.map +1 -1
  17. package/dist/main-browser.d.ts +1 -0
  18. package/dist/main-browser.js +2 -1
  19. package/dist/main-browser.js.map +1 -1
  20. package/dist/main.d.ts +5 -3
  21. package/dist/main.js +2 -1
  22. package/dist/main.js.map +1 -1
  23. package/dist/matching/matcher-definitions.d.ts +51 -0
  24. package/dist/matching/matcher-definitions.js +94 -0
  25. package/dist/matching/matcher-definitions.js.map +1 -0
  26. package/dist/matching/matchers.d.ts +27 -0
  27. package/dist/matching/matchers.js +87 -0
  28. package/dist/matching/matchers.js.map +1 -0
  29. package/dist/mockrtc-base.d.ts +16 -0
  30. package/dist/mockrtc-base.js +19 -0
  31. package/dist/mockrtc-base.js.map +1 -0
  32. package/dist/mockrtc-peer.d.ts +9 -2
  33. package/dist/mockrtc.d.ts +62 -0
  34. package/dist/mockrtc.js.map +1 -1
  35. package/dist/rule-builder.d.ts +86 -0
  36. package/dist/rule-builder.js +113 -0
  37. package/dist/rule-builder.js.map +1 -0
  38. package/dist/server/mockrtc-admin-plugin.js +18 -1
  39. package/dist/server/mockrtc-admin-plugin.js.map +1 -1
  40. package/dist/server/mockrtc-server-peer.d.ts +1 -1
  41. package/dist/server/mockrtc-server-peer.js +19 -7
  42. package/dist/server/mockrtc-server-peer.js.map +1 -1
  43. package/dist/server/mockrtc-server.d.ts +12 -5
  44. package/dist/server/mockrtc-server.js +53 -18
  45. package/dist/server/mockrtc-server.js.map +1 -1
  46. package/dist/webrtc/datachannel-stream.d.ts +2 -0
  47. package/dist/webrtc/datachannel-stream.js +15 -1
  48. package/dist/webrtc/datachannel-stream.js.map +1 -1
  49. package/dist/webrtc/mediatrack-stream.d.ts +2 -0
  50. package/dist/webrtc/mediatrack-stream.js +15 -1
  51. package/dist/webrtc/mediatrack-stream.js.map +1 -1
  52. package/dist/webrtc/mockrtc-connection.js +1 -1
  53. package/dist/webrtc/mockrtc-connection.js.map +1 -1
  54. package/dist/webrtc/rtc-connection.d.ts +6 -2
  55. package/dist/webrtc/rtc-connection.js +21 -21
  56. package/dist/webrtc/rtc-connection.js.map +1 -1
  57. package/dist/webrtc-hooks.js +8 -2
  58. package/dist/webrtc-hooks.js.map +1 -1
  59. package/package.json +2 -2
  60. package/src/client/mockrtc-admin-request-builder.ts +49 -1
  61. package/src/client/mockrtc-client.ts +28 -10
  62. package/src/handling/handler-builder.ts +22 -10
  63. package/src/handling/handler-step-definitions.ts +81 -23
  64. package/src/handling/handler-steps.ts +42 -15
  65. package/src/main-browser.ts +1 -0
  66. package/src/main.ts +5 -1
  67. package/src/matching/matcher-definitions.ts +109 -0
  68. package/src/matching/matchers.ts +118 -0
  69. package/src/mockrtc-base.ts +49 -0
  70. package/src/mockrtc-peer.ts +9 -2
  71. package/src/mockrtc.ts +72 -0
  72. package/src/rule-builder.ts +142 -0
  73. package/src/server/mockrtc-admin-plugin.ts +41 -3
  74. package/src/server/mockrtc-server-peer.ts +28 -18
  75. package/src/server/mockrtc-server.ts +71 -15
  76. package/src/webrtc/datachannel-stream.ts +15 -1
  77. package/src/webrtc/mediatrack-stream.ts +15 -1
  78. package/src/webrtc/mockrtc-connection.ts +1 -1
  79. package/src/webrtc/rtc-connection.ts +37 -20
  80. package/src/webrtc-hooks.ts +8 -2
  81. package/test/integration/events.spec.ts +3 -1
  82. package/test/integration/matching.spec.ts +189 -0
  83. package/test/integration/proxy.spec.ts +4 -2
  84. package/test/integration/send-steps.spec.ts +51 -0
@@ -7,7 +7,7 @@ jobs:
7
7
 
8
8
  strategy:
9
9
  matrix:
10
- node-version: [14.x, v14.18.3, 16.x, '*']
10
+ node-version: [14.x, 16.x, v16.18.0, 18.x, '*']
11
11
 
12
12
  steps:
13
13
  - uses: actions/checkout@v2
@@ -21,7 +21,7 @@ jobs:
21
21
  - run: npm test
22
22
 
23
23
  - name: Deploy docs
24
- if: github.ref == 'refs/heads/main' && matrix.node-version == 'v14.18.3'
24
+ if: github.ref == 'refs/heads/main' && matrix.node-version == 'v16.16.0'
25
25
  uses: JamesIves/github-pages-deploy-action@v4.2.2
26
26
  with:
27
27
  single-commit: true
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import * as stream from 'stream';
3
3
  import { AdminQuery } from 'mockttp/dist/client/admin-query';
4
- import { HandlerStepDefinition } from '../handling/handler-step-definitions';
5
4
  import { MockRTCEvent, MockRTCEventData } from '../mockrtc';
5
+ import { HandlerStepDefinition } from '../handling/handler-step-definitions';
6
+ import { MatcherDefinition } from '../matching/matcher-definitions';
6
7
  /**
7
8
  * This is part of Mockttp's experimental 'pluggable admin' API. This may change
8
9
  * unpredictably, even in minor releases.
@@ -17,5 +18,10 @@ export declare class MockRTCAdminRequestBuilder {
17
18
  }, {
18
19
  peerId: string;
19
20
  }>;
21
+ buildAddRuleQuery(matchers: Array<MatcherDefinition>, handlerSteps: Array<HandlerStepDefinition>, adminStream: stream.Duplex): AdminQuery<void>;
22
+ buildSetRulesQuery(rules: Array<{
23
+ matchers: MatcherDefinition[];
24
+ steps: HandlerStepDefinition[];
25
+ }>, adminStream: stream.Duplex): AdminQuery<void>;
20
26
  buildSubscriptionRequest<E extends MockRTCEvent>(event: E): AdminQuery<MockRTCEventData[E]> | undefined;
21
27
  }
@@ -35,6 +35,36 @@ class MockRTCAdminRequestBuilder {
35
35
  transformResponse: ({ createPeer }) => createPeer
36
36
  };
37
37
  }
38
+ buildAddRuleQuery(matchers, handlerSteps, adminStream) {
39
+ return {
40
+ query: (0, graphql_tag_1.default) `
41
+ mutation AddRTCRule($ruleData: RTCRuleData!) {
42
+ addRTCRule(data: $ruleData)
43
+ }
44
+ `,
45
+ variables: {
46
+ ruleData: {
47
+ matchers: matchers.map(matcher => BrowserPluggableAdmin.Serialization.serialize(matcher, adminStream)),
48
+ steps: handlerSteps.map(step => BrowserPluggableAdmin.Serialization.serialize(step, adminStream))
49
+ }
50
+ }
51
+ };
52
+ }
53
+ buildSetRulesQuery(rules, adminStream) {
54
+ return {
55
+ query: (0, graphql_tag_1.default) `
56
+ mutation SetRTCRules($ruleData: [RTCRuleData!]!) {
57
+ setRTCRules(data: $ruleData)
58
+ }
59
+ `,
60
+ variables: {
61
+ ruleData: rules.map(({ matchers, steps }) => ({
62
+ matchers: matchers.map(matcher => BrowserPluggableAdmin.Serialization.serialize(matcher, adminStream)),
63
+ steps: steps.map(step => BrowserPluggableAdmin.Serialization.serialize(step, adminStream))
64
+ }))
65
+ }
66
+ };
67
+ }
38
68
  buildSubscriptionRequest(event) {
39
69
  const query = {
40
70
  'peer-connected': (0, graphql_tag_1.default) `subscription OnPeerConnected {
@@ -1 +1 @@
1
- {"version":3,"file":"mockrtc-admin-request-builder.js","sourceRoot":"","sources":["../../src/client/mockrtc-admin-request-builder.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6CAA8B;AAG9B,6FAA6F;AAC7F,gGAAgG;AAChG,+FAA+F;AAC/F,sFAAsF;AACtF,kGAAkG;AAMlG;;;;;GAKG;AACH,MAAa,0BAA0B;IAEnC,oBAAoB,CAChB,YAA0C,EAC1C,WAA0B;QAK1B,OAAO;YACH,KAAK,EAAE,IAAA,qBAAG,EAAA;;;;;;aAMT;YACD,SAAS,EAAE;gBACP,QAAQ,EAAE;oBACN,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC3B,qBAAqB,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CACnE;iBACJ;aACJ;YACD,iBAAiB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU;SACpD,CAAC;IACN,CAAC;IAED,wBAAwB,CAAyB,KAAQ;QACrD,MAAM,KAAK,GAAG;YACV,gBAAgB,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;;;;;cAanB;YACF,mBAAmB,EAAE,IAAA,qBAAG,EAAA;;;;;;cAMtB;YACF,wBAAwB,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;;;;;cAa3B;YACF,qBAAqB,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;;;cAWxB;YACF,2BAA2B,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;;;;cAY9B;YACF,+BAA+B,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;;;;cAYlC;YACF,qBAAqB,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;cASxB;YACF,oBAAoB,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;;;cAWvB;YACF,mBAAmB,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;;;cAWtB;YACF,oBAAoB,EAAE,IAAA,qBAAG,EAAA;;;;;;;;;cASvB;SACL,CAAC,KAAK,CAAC,CAAC;QAET,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,kDAAkD;QAEtE,OAAO;YACH,KAAK;YACL,iBAAiB,EAAE,CAAC,MAAW,EAAE,EAAE;gBAC/B,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC3E,OAAO,MAAM,CAAC;YAClB,CAAC;SACJ,CAAC;IACN,CAAC;CACJ;AA/JD,gEA+JC"}
1
+ {"version":3,"file":"mockrtc-admin-request-builder.js","sourceRoot":"","sources":["../../src/client/mockrtc-admin-request-builder.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,19 @@
1
1
  import type { PluggableAdmin } from 'mockttp';
2
- import { MockRTC, MockRTCEvent, MockRTCOptions, MockRTCPeerBuilder } from "../mockrtc";
2
+ import { MockRTC, MockRTCEvent, MockRTCOptions, MockRTCRuleDefinition } from "../mockrtc";
3
+ import { MockRTCBase } from '../mockrtc-base';
3
4
  import type { MockRTCPeer } from '../mockrtc-peer';
5
+ import { HandlerStepDefinition } from '../handling/handler-step-definitions';
6
+ import { MatcherDefinition } from '../matching/matcher-definitions';
4
7
  export declare type MockRTCClientOptions = PluggableAdmin.AdminClientOptions & MockRTCOptions;
5
- export declare class MockRTCClient implements MockRTC {
8
+ export declare class MockRTCClient extends MockRTCBase implements MockRTC {
6
9
  private options;
7
10
  private adminClient;
8
11
  private requestBuilder;
9
12
  constructor(options?: MockRTCClientOptions);
10
13
  getMatchingPeer(): MockRTCPeer;
11
- buildPeer(): MockRTCPeerBuilder;
12
- private buildPeerFromData;
14
+ buildPeerFromDefinition(handlerSteps: HandlerStepDefinition[]): Promise<MockRTCPeer>;
15
+ addRuleFromDefinition(matchers: MatcherDefinition[], handlerSteps: HandlerStepDefinition[]): Promise<void>;
16
+ setRulesFromDefinitions(rules: Array<MockRTCRuleDefinition>): Promise<void>;
13
17
  start(): Promise<void>;
14
18
  stop(): Promise<void>;
15
19
  on(event: MockRTCEvent, callback: any): Promise<void>;
@@ -19,26 +19,38 @@ exports.MockRTCClient = void 0;
19
19
  // We don't want to use the main-exported version to avoid bundling all of Mockttp in browsers.
20
20
  // For now we have to use the direct import. We can update once TS 4.7 is widely used.
21
21
  const BrowserPluggableAdmin = require("mockttp/dist/pluggable-admin-api/pluggable-admin.browser");
22
+ const mockrtc_base_1 = require("../mockrtc-base");
22
23
  const mockrtc_remote_peer_1 = require("./mockrtc-remote-peer");
23
- const handler_builder_1 = require("../handling/handler-builder");
24
24
  const mockrtc_admin_request_builder_1 = require("./mockrtc-admin-request-builder");
25
- class MockRTCClient {
25
+ class MockRTCClient extends mockrtc_base_1.MockRTCBase {
26
26
  constructor(options = {}) {
27
+ super();
27
28
  this.options = options;
28
- this.buildPeerFromData = (handlerSteps) => __awaiter(this, void 0, void 0, function* () {
29
+ this.adminClient = new BrowserPluggableAdmin.AdminClient(options);
30
+ this.requestBuilder = new mockrtc_admin_request_builder_1.MockRTCAdminRequestBuilder();
31
+ }
32
+ getMatchingPeer() {
33
+ return new mockrtc_remote_peer_1.MockRTCRemotePeer('matching-peer', this.adminClient);
34
+ }
35
+ buildPeerFromDefinition(handlerSteps) {
36
+ return __awaiter(this, void 0, void 0, function* () {
29
37
  const { adminStream } = this.adminClient;
30
38
  const peerData = yield this.adminClient.sendQuery(this.requestBuilder.buildCreatePeerQuery(handlerSteps, adminStream));
31
39
  const { peerId } = peerData;
32
40
  return new mockrtc_remote_peer_1.MockRTCRemotePeer(peerId, this.adminClient);
33
41
  });
34
- this.adminClient = new BrowserPluggableAdmin.AdminClient(options);
35
- this.requestBuilder = new mockrtc_admin_request_builder_1.MockRTCAdminRequestBuilder();
36
42
  }
37
- getMatchingPeer() {
38
- return new mockrtc_remote_peer_1.MockRTCRemotePeer('matching-peer', this.adminClient);
43
+ addRuleFromDefinition(matchers, handlerSteps) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ const { adminStream } = this.adminClient;
46
+ yield this.adminClient.sendQuery(this.requestBuilder.buildAddRuleQuery(matchers, handlerSteps, adminStream));
47
+ });
39
48
  }
40
- buildPeer() {
41
- return new handler_builder_1.MockRTCHandlerBuilder(this.buildPeerFromData);
49
+ setRulesFromDefinitions(rules) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const { adminStream } = this.adminClient;
52
+ yield this.adminClient.sendQuery(this.requestBuilder.buildSetRulesQuery(rules, adminStream));
53
+ });
42
54
  }
43
55
  start() {
44
56
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"mockrtc-client.js","sourceRoot":"","sources":["../../src/client/mockrtc-client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAGH,6FAA6F;AAC7F,gGAAgG;AAChG,+FAA+F;AAC/F,sFAAsF;AACtF,kGAAkG;AAOlG,+DAA0D;AAC1D,iEAAoE;AAEpE,mFAA6E;AAM7E,MAAa,aAAa;IAKtB,YACY,UAAgC,EAAE;QAAlC,YAAO,GAAP,OAAO,CAA2B;QActC,sBAAiB,GAAG,CAAO,YAAqC,EAAwB,EAAE;YAC9F,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC7C,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CACtE,CAAC;YAEF,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YAE5B,OAAO,IAAI,uCAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC,CAAA,CAAA;QAtBG,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,GAAG,IAAI,0DAA0B,EAAE,CAAC;IAC3D,CAAC;IAED,eAAe;QACX,OAAO,IAAI,uCAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC;IAED,SAAS;QACL,OAAO,IAAI,uCAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC7D,CAAC;IAcK,KAAK;;YACP,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,OAAO;aACvB,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,IAAI;;YACN,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;KAAA;IAEK,EAAE,CAAC,KAAmB,EAAE,QAAa;;YACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAEhF,IAAI,CAAC,mBAAmB,EAAE;gBACtB,4FAA4F;gBAC5F,2FAA2F;gBAC3F,yFAAyF;gBACzF,6EAA6E;gBAC7E,OAAO,CAAC,IAAI,CAAC,mEAAmE,KAAK,EAAE,CAAC,CAAC;gBACzF,OAAO;aACV;YAED,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;KAAA;CACJ;AAxDD,sCAwDC"}
1
+ {"version":3,"file":"mockrtc-client.js","sourceRoot":"","sources":["../../src/client/mockrtc-client.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;AAGH,6FAA6F;AAC7F,gGAAgG;AAChG,+FAA+F;AAC/F,sFAAsF;AACtF,kGAAkG;AAIlG,kDAA8C;AAG9C,+DAA0D;AAE1D,mFAA6E;AAQ7E,MAAa,aAAc,SAAQ,0BAAW;IAK1C,YACY,UAAgC,EAAE;QAE1C,KAAK,EAAE,CAAC;QAFA,YAAO,GAAP,OAAO,CAA2B;QAI1C,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,GAAG,IAAI,0DAA0B,EAAE,CAAC;IAC3D,CAAC;IAED,eAAe;QACX,OAAO,IAAI,uCAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpE,CAAC;IAEK,uBAAuB,CAAC,YAAqC;;YAC/D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC7C,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,YAAY,EAAE,WAAW,CAAC,CACtE,CAAC;YAEF,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;YAE5B,OAAO,IAAI,uCAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC;KAAA;IAEK,qBAAqB,CACvB,QAA6B,EAC7B,YAAqC;;YAErC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAEzC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC5B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAC7E,CAAC;QACN,CAAC;KAAA;IAEK,uBAAuB,CAAC,KAAmC;;YAC7D,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;YAEzC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAC5B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAC7D,CAAC;QACN,CAAC;KAAA;IAEK,KAAK;;YACP,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,OAAO;aACvB,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,IAAI;;YACN,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;KAAA;IAEK,EAAE,CAAC,KAAmB,EAAE,QAAa;;YACvC,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YAEhF,IAAI,CAAC,mBAAmB,EAAE;gBACtB,4FAA4F;gBAC5F,2FAA2F;gBAC3F,yFAAyF;gBACzF,6EAA6E;gBAC7E,OAAO,CAAC,IAAI,CAAC,mEAAmE,KAAK,EAAE,CAAC,CAAC;gBACzF,OAAO;aACV;YAED,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;KAAA;CACJ;AAzED,sCAyEC"}
@@ -14,19 +14,19 @@ export declare class MockRTCHandlerBuilder<R> {
14
14
  *
15
15
  * @category Steps
16
16
  */
17
- sleep(duration: number): this;
17
+ sleep(duration: number): MockRTCHandlerBuilder<R>;
18
18
  /**
19
19
  * Wait until the remote client has created at least one DataChannel.
20
20
  *
21
21
  * @category Steps
22
22
  */
23
- waitForChannel(channelLabel?: string): this;
23
+ waitForChannel(channelLabel?: string): MockRTCHandlerBuilder<R>;
24
24
  /**
25
25
  * Wait until the remote client has created at least one media track
26
26
  *
27
27
  * @category Steps
28
28
  */
29
- waitForTrack(): this;
29
+ waitForTrack(): MockRTCHandlerBuilder<R>;
30
30
  /**
31
31
  * Wait until the remote client next sends a message to us on any DataChannel.
32
32
  *
@@ -35,7 +35,7 @@ export declare class MockRTCHandlerBuilder<R> {
35
35
  *
36
36
  * @category Steps
37
37
  */
38
- waitForNextMessage(): this;
38
+ waitForNextMessage(): MockRTCHandlerBuilder<R>;
39
39
  /**
40
40
  * Wait until the remote client next sends media data on a media track.
41
41
  *
@@ -43,16 +43,23 @@ export declare class MockRTCHandlerBuilder<R> {
43
43
  *
44
44
  * @category Steps
45
45
  */
46
- waitForNextMedia(): this;
46
+ waitForNextMedia(): MockRTCHandlerBuilder<R>;
47
47
  /**
48
48
  * Wait until the remote client sends a message to us on a specific DataChannel.
49
49
  *
50
50
  * This looks for new messages, ignoring any messages already consumed by
51
51
  * previous steps.
52
52
  *
53
- * @category Steps
53
+ * @category Steps
54
+ */
55
+ waitForNextMessageOnChannel(channelLabel: string): MockRTCHandlerBuilder<R>;
56
+ /**
57
+ * Creates a new data channel with the given name, waiting until it opens
58
+ * before continuing.
59
+ *
60
+ * @category Steps
54
61
  */
55
- waitForNextMessageOnChannel(channelLabel: string): this;
62
+ createDataChannel(channelLabel: string): MockRTCHandlerBuilder<R>;
56
63
  /**
57
64
  * Send a message or buffer on the connection's data channels.
58
65
  *
@@ -66,8 +73,8 @@ export declare class MockRTCHandlerBuilder<R> {
66
73
  *
67
74
  * @category Steps
68
75
  */
69
- send(message: string | Buffer): this;
70
- send(channel: string | undefined, message: string | Buffer): this;
76
+ send(message: string | Buffer): MockRTCHandlerBuilder<R>;
77
+ send(channel: string | undefined, message: string | Buffer): MockRTCHandlerBuilder<R>;
71
78
  /**
72
79
  * Immediately close the connection.
73
80
  *
@@ -72,12 +72,22 @@ class MockRTCHandlerBuilder {
72
72
  * This looks for new messages, ignoring any messages already consumed by
73
73
  * previous steps.
74
74
  *
75
- * @category Steps
75
+ * @category Steps
76
76
  */
77
77
  waitForNextMessageOnChannel(channelLabel) {
78
78
  this.handlerSteps.push(new handler_step_definitions_1.WaitForMessageStepDefinition(channelLabel));
79
79
  return this;
80
80
  }
81
+ /**
82
+ * Creates a new data channel with the given name, waiting until it opens
83
+ * before continuing.
84
+ *
85
+ * @category Steps
86
+ */
87
+ createDataChannel(channelLabel) {
88
+ this.handlerSteps.push(new handler_step_definitions_1.CreateChannelStepDefinition(channelLabel));
89
+ return this;
90
+ }
81
91
  send(...args) {
82
92
  if (args[1] !== undefined) {
83
93
  const [channel, message] = args;
@@ -1 +1 @@
1
- {"version":3,"file":"handler-builder.js","sourceRoot":"","sources":["../../src/handling/handler-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-builder.js","sourceRoot":"","sources":["../../src/handling/handler-builder.ts"],"names":[],"mappings":"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"}
@@ -8,57 +8,74 @@ export interface HandlerStepDefinition extends Serializable {
8
8
  readonly type: keyof typeof StepDefinitionLookup;
9
9
  }
10
10
  export declare class WaitForDurationStepDefinition extends Serializable implements HandlerStepDefinition {
11
- protected durationMs: number;
11
+ readonly durationMs: number;
12
12
  readonly type = "wait-for-duration";
13
13
  constructor(durationMs: number);
14
+ explain(): string;
14
15
  }
15
16
  export declare class WaitForChannelStepDefinition extends Serializable implements HandlerStepDefinition {
16
- protected channelLabel?: string | undefined;
17
- readonly type = "wait-for-channel";
17
+ readonly channelLabel?: string | undefined;
18
+ readonly type = "wait-for-rtc-data-channel";
18
19
  constructor(channelLabel?: string | undefined);
20
+ explain(): string;
19
21
  }
20
22
  export declare class WaitForMessageStepDefinition extends Serializable implements HandlerStepDefinition {
21
- protected channelLabel?: string | undefined;
22
- readonly type = "wait-for-message";
23
+ readonly channelLabel?: string | undefined;
24
+ readonly type = "wait-for-rtc-message";
23
25
  constructor(channelLabel?: string | undefined);
26
+ explain(): string;
24
27
  }
25
28
  export declare class WaitForTrackStepDefinition extends Serializable implements HandlerStepDefinition {
26
- readonly type = "wait-for-track";
29
+ readonly type = "wait-for-rtc-track";
30
+ explain(): string;
27
31
  }
28
32
  export declare class WaitForMediaStepDefinition extends Serializable implements HandlerStepDefinition {
29
- readonly type = "wait-for-media";
33
+ readonly type = "wait-for-rtc-media";
34
+ explain(): string;
35
+ }
36
+ export declare class CreateChannelStepDefinition extends Serializable implements HandlerStepDefinition {
37
+ readonly channelLabel: string;
38
+ readonly type = "create-rtc-data-channel";
39
+ constructor(channelLabel: string);
40
+ explain(): string;
30
41
  }
31
42
  export declare class SendStepDefinition extends Serializable implements HandlerStepDefinition {
32
- protected channelLabel: string | undefined;
33
- protected message: string | Buffer;
34
- readonly type = "send-message";
43
+ readonly channelLabel: string | undefined;
44
+ readonly message: string | Buffer;
45
+ readonly type = "send-rtc-data-message";
35
46
  constructor(channelLabel: string | undefined, message: string | Buffer);
47
+ explain(): string;
36
48
  }
37
49
  export declare class CloseStepDefinition extends Serializable implements HandlerStepDefinition {
38
- readonly type = "close-connection";
50
+ readonly type = "close-rtc-connection";
51
+ explain(): string;
39
52
  }
40
53
  export declare class EchoStepDefinition extends Serializable implements HandlerStepDefinition {
41
- readonly type = "echo-channels";
54
+ readonly type = "echo-rtc";
55
+ explain(): string;
42
56
  }
43
57
  export declare class PeerProxyStepDefinition extends Serializable implements HandlerStepDefinition {
44
- readonly type = "peer-proxy";
58
+ readonly type = "rtc-peer-proxy";
45
59
  protected getAnswer: (offer: MockRTCSessionDescription) => Promise<RTCSessionDescriptionInit>;
46
60
  constructor(connectionTarget: RTCPeerConnection | ((offer: MockRTCSessionDescription) => Promise<RTCSessionDescriptionInit>));
61
+ explain(): string;
47
62
  serialize(channel: ClientServerChannel): {};
48
63
  }
49
64
  export declare class DynamicProxyStepDefinition extends Serializable implements HandlerStepDefinition {
50
- readonly type = "dynamic-proxy";
65
+ readonly type = "rtc-dynamic-proxy";
66
+ explain(): string;
51
67
  }
52
68
  export declare const StepDefinitionLookup: {
53
69
  'wait-for-duration': typeof WaitForDurationStepDefinition;
54
- 'wait-for-channel': typeof WaitForChannelStepDefinition;
55
- 'wait-for-track': typeof WaitForTrackStepDefinition;
56
- 'wait-for-media': typeof WaitForMediaStepDefinition;
57
- 'wait-for-message': typeof WaitForMessageStepDefinition;
58
- 'send-message': typeof SendStepDefinition;
59
- 'close-connection': typeof CloseStepDefinition;
60
- 'echo-channels': typeof EchoStepDefinition;
61
- 'peer-proxy': typeof PeerProxyStepDefinition;
62
- 'dynamic-proxy': typeof DynamicProxyStepDefinition;
70
+ 'wait-for-rtc-data-channel': typeof WaitForChannelStepDefinition;
71
+ 'wait-for-rtc-track': typeof WaitForTrackStepDefinition;
72
+ 'wait-for-rtc-media': typeof WaitForMediaStepDefinition;
73
+ 'wait-for-rtc-message': typeof WaitForMessageStepDefinition;
74
+ 'create-rtc-data-channel': typeof CreateChannelStepDefinition;
75
+ 'send-rtc-data-message': typeof SendStepDefinition;
76
+ 'close-rtc-connection': typeof CloseStepDefinition;
77
+ 'echo-rtc': typeof EchoStepDefinition;
78
+ 'rtc-peer-proxy': typeof PeerProxyStepDefinition;
79
+ 'rtc-dynamic-proxy': typeof DynamicProxyStepDefinition;
63
80
  };
64
81
  export {};
@@ -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.StepDefinitionLookup = exports.DynamicProxyStepDefinition = exports.PeerProxyStepDefinition = exports.EchoStepDefinition = exports.CloseStepDefinition = exports.SendStepDefinition = exports.WaitForMediaStepDefinition = exports.WaitForTrackStepDefinition = exports.WaitForMessageStepDefinition = exports.WaitForChannelStepDefinition = exports.WaitForDurationStepDefinition = exports.Serializable = void 0;
16
+ exports.StepDefinitionLookup = exports.DynamicProxyStepDefinition = exports.PeerProxyStepDefinition = exports.EchoStepDefinition = exports.CloseStepDefinition = exports.SendStepDefinition = exports.CreateChannelStepDefinition = exports.WaitForMediaStepDefinition = exports.WaitForTrackStepDefinition = exports.WaitForMessageStepDefinition = exports.WaitForChannelStepDefinition = exports.WaitForDurationStepDefinition = exports.Serializable = void 0;
17
17
  const PluggableAdmin = require("mockttp/dist/pluggable-admin-api/pluggable-admin.browser");
18
18
  exports.Serializable = PluggableAdmin.Serialization.Serializable;
19
19
  class WaitForDurationStepDefinition extends exports.Serializable {
@@ -22,13 +22,19 @@ class WaitForDurationStepDefinition extends exports.Serializable {
22
22
  this.durationMs = durationMs;
23
23
  this.type = 'wait-for-duration';
24
24
  }
25
+ explain() {
26
+ return `wait for ${this.durationMs}ms`;
27
+ }
25
28
  }
26
29
  exports.WaitForDurationStepDefinition = WaitForDurationStepDefinition;
27
30
  class WaitForChannelStepDefinition extends exports.Serializable {
28
31
  constructor(channelLabel) {
29
32
  super();
30
33
  this.channelLabel = channelLabel;
31
- this.type = 'wait-for-channel';
34
+ this.type = 'wait-for-rtc-data-channel';
35
+ }
36
+ explain() {
37
+ return `wait for an RTC channel${this.channelLabel ? ` labelled '${this.channelLabel}'` : ''}`;
32
38
  }
33
39
  }
34
40
  exports.WaitForChannelStepDefinition = WaitForChannelStepDefinition;
@@ -36,51 +42,80 @@ class WaitForMessageStepDefinition extends exports.Serializable {
36
42
  constructor(channelLabel) {
37
43
  super();
38
44
  this.channelLabel = channelLabel;
39
- this.type = 'wait-for-message';
45
+ this.type = 'wait-for-rtc-message';
46
+ }
47
+ explain() {
48
+ return `wait for an RTC message${this.channelLabel ? ` on channel '${this.channelLabel}'` : ''}`;
40
49
  }
41
50
  }
42
51
  exports.WaitForMessageStepDefinition = WaitForMessageStepDefinition;
43
52
  class WaitForTrackStepDefinition extends exports.Serializable {
44
53
  constructor() {
45
54
  super(...arguments);
46
- this.type = 'wait-for-track';
55
+ this.type = 'wait-for-rtc-track';
56
+ }
57
+ explain() {
58
+ return `wait for an RTC track`;
47
59
  }
48
60
  }
49
61
  exports.WaitForTrackStepDefinition = WaitForTrackStepDefinition;
50
62
  class WaitForMediaStepDefinition extends exports.Serializable {
51
63
  constructor() {
52
64
  super(...arguments);
53
- this.type = 'wait-for-media';
65
+ this.type = 'wait-for-rtc-media';
66
+ }
67
+ explain() {
68
+ return `wait for RTC media data`;
54
69
  }
55
70
  }
56
71
  exports.WaitForMediaStepDefinition = WaitForMediaStepDefinition;
72
+ class CreateChannelStepDefinition extends exports.Serializable {
73
+ constructor(channelLabel) {
74
+ super();
75
+ this.channelLabel = channelLabel;
76
+ this.type = 'create-rtc-data-channel';
77
+ }
78
+ explain() {
79
+ return `create an RTC data channel labelled '${this.channelLabel}'`;
80
+ }
81
+ }
82
+ exports.CreateChannelStepDefinition = CreateChannelStepDefinition;
57
83
  class SendStepDefinition extends exports.Serializable {
58
84
  constructor(channelLabel, message) {
59
85
  super();
60
86
  this.channelLabel = channelLabel;
61
87
  this.message = message;
62
- this.type = 'send-message';
88
+ this.type = 'send-rtc-data-message';
89
+ }
90
+ explain() {
91
+ return `send an RTC data message${this.channelLabel ? ` on channel '${this.channelLabel}'` : ''}`;
63
92
  }
64
93
  }
65
94
  exports.SendStepDefinition = SendStepDefinition;
66
95
  class CloseStepDefinition extends exports.Serializable {
67
96
  constructor() {
68
97
  super(...arguments);
69
- this.type = 'close-connection';
98
+ this.type = 'close-rtc-connection';
99
+ }
100
+ explain() {
101
+ return `close the RTC connection`;
70
102
  }
71
103
  }
72
104
  exports.CloseStepDefinition = CloseStepDefinition;
73
105
  class EchoStepDefinition extends exports.Serializable {
74
106
  constructor() {
75
107
  super(...arguments);
76
- this.type = 'echo-channels';
108
+ this.type = 'echo-rtc';
109
+ }
110
+ explain() {
111
+ return `echo all RTC media & data`;
77
112
  }
78
113
  }
79
114
  exports.EchoStepDefinition = EchoStepDefinition;
80
115
  class PeerProxyStepDefinition extends exports.Serializable {
81
116
  constructor(connectionTarget) {
82
117
  super();
83
- this.type = 'peer-proxy';
118
+ this.type = 'rtc-peer-proxy';
84
119
  if (connectionTarget instanceof Function) {
85
120
  this.getAnswer = connectionTarget;
86
121
  }
@@ -93,6 +128,9 @@ class PeerProxyStepDefinition extends exports.Serializable {
93
128
  });
94
129
  }
95
130
  }
131
+ explain() {
132
+ return `proxy the RTC connection to the configured peer`;
133
+ }
96
134
  serialize(channel) {
97
135
  channel.onRequest((msg) => __awaiter(this, void 0, void 0, function* () {
98
136
  return { answer: yield this.getAnswer(msg.offer) };
@@ -104,20 +142,24 @@ exports.PeerProxyStepDefinition = PeerProxyStepDefinition;
104
142
  class DynamicProxyStepDefinition extends exports.Serializable {
105
143
  constructor() {
106
144
  super(...arguments);
107
- this.type = 'dynamic-proxy';
145
+ this.type = 'rtc-dynamic-proxy';
146
+ }
147
+ explain() {
148
+ return `proxy the RTC connection to a remote peer`;
108
149
  }
109
150
  }
110
151
  exports.DynamicProxyStepDefinition = DynamicProxyStepDefinition;
111
152
  exports.StepDefinitionLookup = {
112
153
  'wait-for-duration': WaitForDurationStepDefinition,
113
- 'wait-for-channel': WaitForChannelStepDefinition,
114
- 'wait-for-track': WaitForTrackStepDefinition,
115
- 'wait-for-media': WaitForMediaStepDefinition,
116
- 'wait-for-message': WaitForMessageStepDefinition,
117
- 'send-message': SendStepDefinition,
118
- 'close-connection': CloseStepDefinition,
119
- 'echo-channels': EchoStepDefinition,
120
- 'peer-proxy': PeerProxyStepDefinition,
121
- 'dynamic-proxy': DynamicProxyStepDefinition
154
+ 'wait-for-rtc-data-channel': WaitForChannelStepDefinition,
155
+ 'wait-for-rtc-track': WaitForTrackStepDefinition,
156
+ 'wait-for-rtc-media': WaitForMediaStepDefinition,
157
+ 'wait-for-rtc-message': WaitForMessageStepDefinition,
158
+ 'create-rtc-data-channel': CreateChannelStepDefinition,
159
+ 'send-rtc-data-message': SendStepDefinition,
160
+ 'close-rtc-connection': CloseStepDefinition,
161
+ 'echo-rtc': EchoStepDefinition,
162
+ 'rtc-peer-proxy': PeerProxyStepDefinition,
163
+ 'rtc-dynamic-proxy': DynamicProxyStepDefinition
122
164
  };
123
165
  //# sourceMappingURL=handler-step-definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler-step-definitions.js","sourceRoot":"","sources":["../../src/handling/handler-step-definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler-step-definitions.js","sourceRoot":"","sources":["../../src/handling/handler-step-definitions.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { PluggableAdmin } from 'mockttp';
2
2
  import type { MockRTCConnection } from '../webrtc/mockrtc-connection';
3
- import { StepDefinitionLookup, CloseStepDefinition, DynamicProxyStepDefinition, EchoStepDefinition, HandlerStepDefinition, PeerProxyStepDefinition, SendStepDefinition, WaitForChannelStepDefinition, WaitForDurationStepDefinition, WaitForMediaStepDefinition, WaitForMessageStepDefinition, WaitForTrackStepDefinition } from './handler-step-definitions';
3
+ import { StepDefinitionLookup, CloseStepDefinition, DynamicProxyStepDefinition, EchoStepDefinition, HandlerStepDefinition, PeerProxyStepDefinition, CreateChannelStepDefinition, SendStepDefinition, WaitForChannelStepDefinition, WaitForDurationStepDefinition, WaitForMediaStepDefinition, WaitForMessageStepDefinition, WaitForTrackStepDefinition } from './handler-step-definitions';
4
4
  declare type ClientServerChannel = PluggableAdmin.Serialization.ClientServerChannel;
5
5
  export interface HandlerStep extends HandlerStepDefinition {
6
6
  handle(connection: MockRTCConnection): Promise<void>;
@@ -22,9 +22,19 @@ export declare class WaitForTrackStep extends WaitForTrackStepDefinition {
22
22
  export declare class WaitForMediaStep extends WaitForMediaStepDefinition {
23
23
  handle(connection: MockRTCConnection): Promise<void>;
24
24
  }
25
+ export declare class CreateChannelStep extends CreateChannelStepDefinition {
26
+ handle(conn: MockRTCConnection): Promise<void>;
27
+ }
25
28
  export declare class SendStep extends SendStepDefinition {
26
29
  private matchesChannel;
27
30
  handle({ channels }: MockRTCConnection): Promise<void>;
31
+ static deserialize(data: {
32
+ channelLabel: string | undefined;
33
+ message: string | {
34
+ type: 'Buffer';
35
+ data: number[];
36
+ };
37
+ }): SendStep;
28
38
  }
29
39
  export declare class CloseStep extends CloseStepDefinition {
30
40
  handle(connection: MockRTCConnection): Promise<void>;