@techsee/techsee-nway-media-service-client 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +1 -0
  2. package/lib/assets/img/avatar.png +0 -0
  3. package/lib/assets/img/camera-button.png +0 -0
  4. package/lib/assets/img/exclamation-mark.png +0 -0
  5. package/lib/assets/img/media-rejected/chrome1.png +0 -0
  6. package/lib/assets/img/media-rejected/chrome2.png +0 -0
  7. package/lib/assets/img/media-rejected/chrome3.png +0 -0
  8. package/lib/assets/img/media-rejected/chrome4.png +0 -0
  9. package/lib/assets/img/media-rejected/close_button.png +0 -0
  10. package/lib/assets/img/media-rejected/ios1.png +0 -0
  11. package/lib/assets/img/media-rejected/ios2.png +0 -0
  12. package/lib/components/Avatar/Avatar.scss +45 -0
  13. package/lib/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.scss +31 -0
  14. package/lib/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.scss +6 -0
  15. package/lib/components/LoaderSpinner/LoaderSpinner.scss +69 -0
  16. package/lib/components/MagicMarker/MagicMarker.scss +18 -0
  17. package/lib/components/MediaRejectedModal/MediaRejectedModal.scss +75 -0
  18. package/lib/components/Multiparty.scss +8 -0
  19. package/lib/components/Video/Video.scss +10 -0
  20. package/lib/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.scss +49 -0
  21. package/lib/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.scss +128 -0
  22. package/lib/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.scss +34 -0
  23. package/lib/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.scss +15 -0
  24. package/lib/components/VideoPlaceholders/Tooltip.scss +65 -0
  25. package/lib/src/components/Avatar/Avatar.d.ts +8 -0
  26. package/lib/src/components/Avatar/Avatar.d.ts.map +1 -0
  27. package/lib/src/components/Avatar/Avatar.js +26 -0
  28. package/lib/src/components/Avatar/Avatar.js.map +1 -0
  29. package/lib/src/components/ButtonPanels/EndMeetingButtonPanel/EndMeetingButtonPanel.d.ts +7 -0
  30. package/lib/src/components/ButtonPanels/EndMeetingButtonPanel/EndMeetingButtonPanel.d.ts.map +1 -0
  31. package/lib/src/components/ButtonPanels/EndMeetingButtonPanel/EndMeetingButtonPanel.js +11 -0
  32. package/lib/src/components/ButtonPanels/EndMeetingButtonPanel/EndMeetingButtonPanel.js.map +1 -0
  33. package/lib/src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.d.ts +21 -0
  34. package/lib/src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.d.ts.map +1 -0
  35. package/lib/src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.js +36 -0
  36. package/lib/src/components/ButtonPanels/MediaButtonsPanel/MediaButtonsPanel.js.map +1 -0
  37. package/lib/src/components/ButtonPanels/MultipartyButton/MultipartyButton.d.ts +18 -0
  38. package/lib/src/components/ButtonPanels/MultipartyButton/MultipartyButton.d.ts.map +1 -0
  39. package/lib/src/components/ButtonPanels/MultipartyButton/MultipartyButton.js +35 -0
  40. package/lib/src/components/ButtonPanels/MultipartyButton/MultipartyButton.js.map +1 -0
  41. package/lib/src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.d.ts +10 -0
  42. package/lib/src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.d.ts.map +1 -0
  43. package/lib/src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.js +22 -0
  44. package/lib/src/components/ButtonPanels/PinButtonPanel/PinButtonPanel.js.map +1 -0
  45. package/lib/src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.d.ts +9 -0
  46. package/lib/src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.d.ts.map +1 -0
  47. package/lib/src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.js +15 -0
  48. package/lib/src/components/ButtonPanels/SnapshotButtonPanel/SnapshotButtonPanel.js.map +1 -0
  49. package/lib/src/components/ButtonPanels/index.d.ts +6 -0
  50. package/lib/src/components/ButtonPanels/index.d.ts.map +1 -0
  51. package/lib/src/components/ButtonPanels/index.js +14 -0
  52. package/lib/src/components/ButtonPanels/index.js.map +1 -0
  53. package/lib/src/components/LoaderSpinner/LoaderSpinner.d.ts +8 -0
  54. package/lib/src/components/LoaderSpinner/LoaderSpinner.d.ts.map +1 -0
  55. package/lib/src/components/LoaderSpinner/LoaderSpinner.js +22 -0
  56. package/lib/src/components/LoaderSpinner/LoaderSpinner.js.map +1 -0
  57. package/lib/src/components/MagicMarker/MagicMarkerComponent.d.ts +36 -0
  58. package/lib/src/components/MagicMarker/MagicMarkerComponent.d.ts.map +1 -0
  59. package/lib/src/components/MagicMarker/MagicMarkerComponent.js +112 -0
  60. package/lib/src/components/MagicMarker/MagicMarkerComponent.js.map +1 -0
  61. package/lib/src/components/MagicMarker/index.d.ts +2 -0
  62. package/lib/src/components/MagicMarker/index.d.ts.map +1 -0
  63. package/lib/src/components/MagicMarker/index.js +6 -0
  64. package/lib/src/components/MagicMarker/index.js.map +1 -0
  65. package/lib/src/components/MediaRejectedModal/MediaRejectedModal.d.ts +24 -0
  66. package/lib/src/components/MediaRejectedModal/MediaRejectedModal.d.ts.map +1 -0
  67. package/lib/src/components/MediaRejectedModal/MediaRejectedModal.js +45 -0
  68. package/lib/src/components/MediaRejectedModal/MediaRejectedModal.js.map +1 -0
  69. package/lib/src/components/Multiparty.d.ts +23 -0
  70. package/lib/src/components/Multiparty.d.ts.map +1 -0
  71. package/lib/src/components/Multiparty.js +163 -0
  72. package/lib/src/components/Multiparty.js.map +1 -0
  73. package/lib/src/components/Multiparty.types.d.ts +11 -0
  74. package/lib/src/components/Multiparty.types.d.ts.map +1 -0
  75. package/lib/src/components/Multiparty.types.js +9 -0
  76. package/lib/src/components/Multiparty.types.js.map +1 -0
  77. package/lib/src/components/Video/Video.d.ts +22 -0
  78. package/lib/src/components/Video/Video.d.ts.map +1 -0
  79. package/lib/src/components/Video/Video.js +23 -0
  80. package/lib/src/components/Video/Video.js.map +1 -0
  81. package/lib/src/components/Video/VideoPlaceholder.d.ts +23 -0
  82. package/lib/src/components/Video/VideoPlaceholder.d.ts.map +1 -0
  83. package/lib/src/components/Video/VideoPlaceholder.js +30 -0
  84. package/lib/src/components/Video/VideoPlaceholder.js.map +1 -0
  85. package/lib/src/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.d.ts +23 -0
  86. package/lib/src/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.d.ts.map +1 -0
  87. package/lib/src/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.js +35 -0
  88. package/lib/src/components/VideoLayouts/AgentPinnedLayout/AgentPinnedLayout.js.map +1 -0
  89. package/lib/src/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.d.ts +34 -0
  90. package/lib/src/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.d.ts.map +1 -0
  91. package/lib/src/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.js +65 -0
  92. package/lib/src/components/VideoLayouts/BigMainVideoLayout/BigAreaLayout.js.map +1 -0
  93. package/lib/src/components/VideoLayouts/VideoLayoutManager.d.ts +29 -0
  94. package/lib/src/components/VideoLayouts/VideoLayoutManager.d.ts.map +1 -0
  95. package/lib/src/components/VideoLayouts/VideoLayoutManager.js +23 -0
  96. package/lib/src/components/VideoLayouts/VideoLayoutManager.js.map +1 -0
  97. package/lib/src/components/VideoLayouts/index.d.ts +2 -0
  98. package/lib/src/components/VideoLayouts/index.d.ts.map +1 -0
  99. package/lib/src/components/VideoLayouts/index.js +6 -0
  100. package/lib/src/components/VideoLayouts/index.js.map +1 -0
  101. package/lib/src/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.d.ts +12 -0
  102. package/lib/src/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.d.ts.map +1 -0
  103. package/lib/src/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.js +36 -0
  104. package/lib/src/components/VideoPlaceholders/BigAreaMediaPermissionDeniedPlaceholder.js.map +1 -0
  105. package/lib/src/components/VideoPlaceholders/CameraOffButton.d.ts +4 -0
  106. package/lib/src/components/VideoPlaceholders/CameraOffButton.d.ts.map +1 -0
  107. package/lib/src/components/VideoPlaceholders/CameraOffButton.js +9 -0
  108. package/lib/src/components/VideoPlaceholders/CameraOffButton.js.map +1 -0
  109. package/lib/src/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.d.ts +12 -0
  110. package/lib/src/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.d.ts.map +1 -0
  111. package/lib/src/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.js +40 -0
  112. package/lib/src/components/VideoPlaceholders/SmallAreaMediaPermissionDeniedPlaceholder.js.map +1 -0
  113. package/lib/src/index.d.ts +7 -0
  114. package/lib/src/index.d.ts.map +1 -0
  115. package/lib/src/index.js +30 -0
  116. package/lib/src/index.js.map +1 -0
  117. package/lib/src/services/ConnectionManager.d.ts +27 -0
  118. package/lib/src/services/ConnectionManager.d.ts.map +1 -0
  119. package/lib/src/services/ConnectionManager.js +123 -0
  120. package/lib/src/services/ConnectionManager.js.map +1 -0
  121. package/lib/src/services/MediaStateService.d.ts +25 -0
  122. package/lib/src/services/MediaStateService.d.ts.map +1 -0
  123. package/lib/src/services/MediaStateService.js +84 -0
  124. package/lib/src/services/MediaStateService.js.map +1 -0
  125. package/lib/src/services/MultipartyController.d.ts +29 -0
  126. package/lib/src/services/MultipartyController.d.ts.map +1 -0
  127. package/lib/src/services/MultipartyController.js +300 -0
  128. package/lib/src/services/MultipartyController.js.map +1 -0
  129. package/lib/src/services/MultipartyEventTypes.d.ts +92 -0
  130. package/lib/src/services/MultipartyEventTypes.d.ts.map +1 -0
  131. package/lib/src/services/MultipartyEventTypes.js +19 -0
  132. package/lib/src/services/MultipartyEventTypes.js.map +1 -0
  133. package/lib/src/services/trafficLogManager.d.ts +21 -0
  134. package/lib/src/services/trafficLogManager.d.ts.map +1 -0
  135. package/lib/src/services/trafficLogManager.js +130 -0
  136. package/lib/src/services/trafficLogManager.js.map +1 -0
  137. package/lib/src/services/types.d.ts +39 -0
  138. package/lib/src/services/types.d.ts.map +1 -0
  139. package/lib/src/services/types.js +47 -0
  140. package/lib/src/services/types.js.map +1 -0
  141. package/lib/src/utils/ClientConstants.d.ts +3 -0
  142. package/lib/src/utils/ClientConstants.d.ts.map +1 -0
  143. package/lib/src/utils/ClientConstants.js +6 -0
  144. package/lib/src/utils/ClientConstants.js.map +1 -0
  145. package/lib/src/utils/MergingStore.d.ts +9 -0
  146. package/lib/src/utils/MergingStore.d.ts.map +1 -0
  147. package/lib/src/utils/MergingStore.js +85 -0
  148. package/lib/src/utils/MergingStore.js.map +1 -0
  149. package/lib/src/utils/detectOsType.d.ts +8 -0
  150. package/lib/src/utils/detectOsType.d.ts.map +1 -0
  151. package/lib/src/utils/detectOsType.js +23 -0
  152. package/lib/src/utils/detectOsType.js.map +1 -0
  153. package/lib/src/utils/index.d.ts +5 -0
  154. package/lib/src/utils/index.d.ts.map +1 -0
  155. package/lib/src/utils/index.js +14 -0
  156. package/lib/src/utils/index.js.map +1 -0
  157. package/lib/src/utils/useEvent.d.ts +8 -0
  158. package/lib/src/utils/useEvent.d.ts.map +1 -0
  159. package/lib/src/utils/useEvent.js +24 -0
  160. package/lib/src/utils/useEvent.js.map +1 -0
  161. package/lib/test/services/ConnectionManager.unit.d.ts +2 -0
  162. package/lib/test/services/ConnectionManager.unit.d.ts.map +1 -0
  163. package/lib/test/services/ConnectionManager.unit.js +207 -0
  164. package/lib/test/services/ConnectionManager.unit.js.map +1 -0
  165. package/package.json +108 -0
@@ -0,0 +1,300 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
44
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
+ }
63
+ };
64
+ Object.defineProperty(exports, "__esModule", { value: true });
65
+ exports.createMultipartyController = exports.MultipartyEventsInternal = void 0;
66
+ var TypedEventEmitter_1 = require("@techsee/techsee-common/lib/helpers/TypedEventEmitter");
67
+ var Tracer_1 = require("@techsee/techsee-common/lib/core/Tracer");
68
+ var MediaConstants_1 = require("@techsee/techsee-nway-media-service/lib/MediaConstants");
69
+ var MultiParty_1 = require("@techsee/techsee-nway-media-service/lib/MultiParty");
70
+ var utils_1 = require("../utils");
71
+ var ConnectionManager_1 = require("./ConnectionManager");
72
+ var MediaStateService_1 = require("./MediaStateService");
73
+ var trafficLogManager_1 = require("./trafficLogManager");
74
+ var types_1 = require("./types");
75
+ var MultipartyEventTypes_1 = require("./MultipartyEventTypes");
76
+ var trace = (0, Tracer_1.getTracer)('MediaTracer', 'Multiparty');
77
+ var MultipartyEventsInternal;
78
+ (function (MultipartyEventsInternal) {
79
+ MultipartyEventsInternal["setPinnedUser"] = "setPinnedUser";
80
+ })(MultipartyEventsInternal = exports.MultipartyEventsInternal || (exports.MultipartyEventsInternal = {}));
81
+ var MultipartyController = /** @class */ (function (_super) {
82
+ __extends(MultipartyController, _super);
83
+ function MultipartyController(credentials, sessionSettings, ownUserRole, mediaStateService) {
84
+ if (mediaStateService === void 0) { mediaStateService = (0, MediaStateService_1.createMediaStateService)(); }
85
+ var _this = _super.call(this) || this;
86
+ _this.credentials = credentials;
87
+ _this.sessionSettings = sessionSettings;
88
+ _this.mediaStateService = mediaStateService;
89
+ _this.pinnedUserType = types_1.PinnedUserType.NONE;
90
+ _this.connected = false;
91
+ _this.canTakeSnapshot = false;
92
+ _this.isMainVideoPinnedAndStreaming = false;
93
+ _this.isMainVideoMirrored = false;
94
+ _this.cameraSource = undefined;
95
+ _this.setPinnedUser = function (userType) {
96
+ if (userType !== _this.pinnedUserType) {
97
+ var settings = _this.getSessionSettings();
98
+ _this.pinnedUserType = userType;
99
+ _this.multiPartyService.reinitializeStreams(settings);
100
+ _this.emit(MultipartyEventsInternal.setPinnedUser, userType);
101
+ }
102
+ };
103
+ _this.connect = function () {
104
+ _this.multiPartyService.connect(_this.getSessionSettings(), _this.credentials);
105
+ _this.connected = true;
106
+ };
107
+ _this.disconnect = function () {
108
+ _this.multiPartyService.disconnect();
109
+ _this.trafficLogManager.stop();
110
+ _this.connected = false;
111
+ };
112
+ _this.toggleAudio = function (isMuted) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
113
+ return [2 /*return*/, this.multiPartyService.publishAudio(isMuted)];
114
+ }); }); };
115
+ _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
116
+ return [2 /*return*/, this.multiPartyService.switchCamera()];
117
+ }); }); };
118
+ _this.toggleVideo = function (shouldToggleVideoOff) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
119
+ return [2 /*return*/, this.multiPartyService.publishVideo(shouldToggleVideoOff)];
120
+ }); }); };
121
+ _this.takeSnapshot = function () {
122
+ var _a;
123
+ var connectionId = (_a = _this.connectionManager.find('userRole', (0, types_1.toSessionClientRole)(_this.pinnedUserType) || MediaConstants_1.SessionClientRole.USER)) === null || _a === void 0 ? void 0 : _a.connectionId;
124
+ if (connectionId && _this.canTakeSnapshot) {
125
+ return _this.multiPartyService.takeSnapshot(connectionId);
126
+ }
127
+ return null;
128
+ };
129
+ _this.getParticipantDomId = function (connectionId) { var _a; return ((_a = _this.connections.find('connectionId', connectionId)) === null || _a === void 0 ? void 0 : _a.videoStreamId) || ''; };
130
+ _this.emitTrafficLogsEvent = function (trafficLogs) {
131
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.updateTrafficLogs, trafficLogs);
132
+ };
133
+ _this.getSessionSettings = function () {
134
+ var _a = _this.mediaStateService.getSessionState(_this.sessionSettings), selectedCamera = _a.selectedCamera, audioState = _a.audioState, cameraEnabled = _a.cameraEnabled;
135
+ return __assign(__assign({}, _this.sessionSettings), { selectedCamera: selectedCamera, startWithAudioMuted: audioState !== types_1.AudioState.ENABLED, cameraEnabled: cameraEnabled });
136
+ };
137
+ _this.initEventHandlers = function () {
138
+ _this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.connectFailed, function (event) {
139
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.connectFailed, event);
140
+ });
141
+ _this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.connectionCreated, function (event) {
142
+ _this.connectionManager.connectionCreated(event);
143
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.connectionCreated, event);
144
+ });
145
+ _this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.connectionDestroyed, function (event) {
146
+ _this.connectionManager.connectionDestroyed(event);
147
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.connectionDestroyed, event);
148
+ });
149
+ _this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.streamCreated, function (event) {
150
+ if (event.isOwnConnection) {
151
+ _this.isMainVideoMirrored = event.mirror;
152
+ }
153
+ _this.connectionManager.streamCreated(event);
154
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.streamCreated, event);
155
+ });
156
+ _this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.streamDestroyed, function (event) {
157
+ _this.connectionManager.streamDestroyed(event);
158
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.streamDestroyed, event);
159
+ });
160
+ _this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.streamPropertyChanged, function (event) {
161
+ if (event.isOwnConnection && event.hasAudio !== undefined) {
162
+ _this.mediaStateService.updateAudioMuted(!event.hasAudio);
163
+ }
164
+ if (event.isOwnConnection && event.hasVideo !== undefined) {
165
+ _this.mediaStateService.updateCameraEnabledState(event.hasVideo);
166
+ }
167
+ _this.connectionManager.streamPropertyChanged(event);
168
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.streamPropertyChanged, event);
169
+ });
170
+ _this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.mediaDeviceAccessDenied, function (event) {
171
+ _this.connectionManager.setOwnMediaPermissionsRejected(true);
172
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.mediaDeviceAccessDenied, event);
173
+ });
174
+ _this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.cameraSourceChanged, function (_a) {
175
+ var cameraSource = _a.cameraSource, mirror = _a.mirror;
176
+ if (_this.cameraSource !== cameraSource) {
177
+ _this.cameraSource = cameraSource;
178
+ _this.mediaStateService.updateSelectedCamera(cameraSource);
179
+ }
180
+ if (_this.isMainVideoMirrored !== mirror) {
181
+ _this.isMainVideoMirrored = mirror;
182
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.mainVideoMirrorStateChanged, {
183
+ mirror: mirror
184
+ });
185
+ }
186
+ });
187
+ };
188
+ _this.updateCanTakeSnapshot = function (updatedConnections) {
189
+ var mainVideoUserRole = _this.pinnedUserType === types_1.PinnedUserType.AGENT ? MediaConstants_1.SessionClientRole.AGENT : MediaConstants_1.SessionClientRole.USER;
190
+ var connection = updatedConnections.find(function (_a) {
191
+ var userRole = _a.userRole;
192
+ return userRole === mainVideoUserRole;
193
+ });
194
+ if (!connection) {
195
+ return;
196
+ }
197
+ var snapshotAllowed = connection.connectionState === types_1.ConnectionState.ConnectedPublishingVideo;
198
+ if (_this.canTakeSnapshot !== snapshotAllowed) {
199
+ _this.canTakeSnapshot = snapshotAllowed;
200
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.snapshotAllowedChanged, {
201
+ snapshotAllowed: snapshotAllowed
202
+ });
203
+ }
204
+ };
205
+ _this.updatePinnedVideoIsStreaming = function (updatedConnections) {
206
+ var mainVideoUserRoleWhenPinned = (0, types_1.toSessionClientRole)(_this.pinnedUserType);
207
+ var connection = updatedConnections.find(function (_a) {
208
+ var userRole = _a.userRole;
209
+ return userRole === mainVideoUserRoleWhenPinned;
210
+ });
211
+ if (!connection) {
212
+ return;
213
+ }
214
+ var hasVideo = connection.connectionState === types_1.ConnectionState.ConnectedPublishingVideo;
215
+ var mainVideoPinned = _this.pinnedUser !== types_1.PinnedUserType.NONE;
216
+ var isPinnedAndStreaming = mainVideoPinned && hasVideo;
217
+ if (_this.isMainVideoPinnedAndStreaming !== isPinnedAndStreaming) {
218
+ _this.isMainVideoPinnedAndStreaming = isPinnedAndStreaming;
219
+ _this.emit(MultipartyEventTypes_1.MultipartyEvents.mainVideoPinnedAndStreamingStateChanged, { isPinnedAndStreaming: isPinnedAndStreaming });
220
+ }
221
+ };
222
+ _this.connectionManager = new ConnectionManager_1.ConnectionManager(ownUserRole);
223
+ _this.connectionManager.on(ConnectionManager_1.ConnectionManagerEvents.ConnectionsUpdatedEvent, _this.updateCanTakeSnapshot);
224
+ _this.connectionManager.on(ConnectionManager_1.ConnectionManagerEvents.ConnectionsUpdatedEvent, _this.updatePinnedVideoIsStreaming);
225
+ _this.multiPartyService = (0, MultiParty_1.createMultiPartyService)(_this.getSessionSettings(), _this.getParticipantDomId);
226
+ _this.connectionManager.initWith({
227
+ userRole: ownUserRole,
228
+ isOwnConnection: true,
229
+ isMediaPermissionsRejected: false,
230
+ connectionState: types_1.ConnectionState.WaitingForConnection,
231
+ videoStreamId: utils_1.ownVideoDomId
232
+ });
233
+ _this.trafficLogManager = new trafficLogManager_1.TrafficLogManager(_this.multiPartyService, _this.emitTrafficLogsEvent);
234
+ _this.initEventHandlers();
235
+ return _this;
236
+ }
237
+ Object.defineProperty(MultipartyController.prototype, "connections", {
238
+ get: function () {
239
+ return this.connectionManager;
240
+ },
241
+ enumerable: false,
242
+ configurable: true
243
+ });
244
+ Object.defineProperty(MultipartyController.prototype, "userRole", {
245
+ get: function () {
246
+ return this.connectionManager.userRole;
247
+ },
248
+ enumerable: false,
249
+ configurable: true
250
+ });
251
+ Object.defineProperty(MultipartyController.prototype, "ownConnectionId", {
252
+ get: function () {
253
+ return this.multiPartyService.ownConnectionId;
254
+ },
255
+ enumerable: false,
256
+ configurable: true
257
+ });
258
+ Object.defineProperty(MultipartyController.prototype, "isAudioDisabled", {
259
+ get: function () {
260
+ return this.sessionSettings.audioState === types_1.AudioState.DISABLED;
261
+ },
262
+ enumerable: false,
263
+ configurable: true
264
+ });
265
+ Object.defineProperty(MultipartyController.prototype, "isConnected", {
266
+ get: function () {
267
+ return this.connected;
268
+ },
269
+ enumerable: false,
270
+ configurable: true
271
+ });
272
+ Object.defineProperty(MultipartyController.prototype, "pinnedUser", {
273
+ get: function () {
274
+ return this.pinnedUserType;
275
+ },
276
+ enumerable: false,
277
+ configurable: true
278
+ });
279
+ return MultipartyController;
280
+ }(TypedEventEmitter_1.TypedEventEmitter));
281
+ function createMultipartyController(credentials, sessionSettings, ownUserRole, mediaStateService) {
282
+ if (mediaStateService === void 0) { mediaStateService = (0, MediaStateService_1.createMediaStateService)(); }
283
+ return __awaiter(this, void 0, void 0, function () {
284
+ var mediaCapabilitiesSupport;
285
+ return __generator(this, function (_a) {
286
+ switch (_a.label) {
287
+ case 0: return [4 /*yield*/, (0, MultiParty_1.checkWebRtc)()];
288
+ case 1:
289
+ mediaCapabilitiesSupport = _a.sent();
290
+ trace.info('Media Capabilities support', mediaCapabilitiesSupport);
291
+ if (mediaCapabilitiesSupport) {
292
+ return [2 /*return*/, new MultipartyController(credentials, sessionSettings, ownUserRole, mediaStateService)];
293
+ }
294
+ throw new Error('No WebRtc support');
295
+ }
296
+ });
297
+ });
298
+ }
299
+ exports.createMultipartyController = createMultipartyController;
300
+ //# sourceMappingURL=MultipartyController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipartyController.js","sourceRoot":"","sources":["../../../src/services/MultipartyController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { SessionClientRole } from '@techsee/techsee-nway-media-service/lib/MediaConstants';
2
+ import { ITrafficLogs } from './trafficLogManager';
3
+ import { PinnedUserType } from './types';
4
+ export declare enum MultipartyEvents {
5
+ mediaCapabilitiesSupport = "mediaCapabilitiesSupport",
6
+ connectFailed = "connectFailed",
7
+ streamDestroyed = "streamDestroyed",
8
+ connectionCreated = "connectionCreated",
9
+ connectionDestroyed = "connectionDestroyed",
10
+ streamCreated = "streamCreated",
11
+ streamPropertyChanged = "streamPropertyChanged",
12
+ mediaDeviceAccessDenied = "mediaDeviceAccessDenied",
13
+ updateTrafficLogs = "updateTrafficLogs",
14
+ snapshotAllowedChanged = "snapshotAllowedChanged",
15
+ mainVideoMirrorStateChanged = "mainVideoMirrorStateChanged",
16
+ mainVideoPinnedAndStreamingStateChanged = "mainVideoPinnedAndStreamingStateChanged"
17
+ }
18
+ export type MultipartyConnectFailedEvent = {
19
+ meta: {
20
+ err: string;
21
+ };
22
+ };
23
+ export type MultipartyConnectionCreatedEvent = {
24
+ isOwnConnection: boolean;
25
+ connectionId: string;
26
+ participantId: string;
27
+ clientRole: SessionClientRole;
28
+ };
29
+ export type MultipartyConnectionDestroyedEvent = {
30
+ isOwnConnection: boolean;
31
+ connectionId: string;
32
+ participantId: string;
33
+ clientRole: SessionClientRole;
34
+ };
35
+ export type MultipartyStreamCreatedEvent = {
36
+ isOwnConnection: boolean;
37
+ connectionId: string;
38
+ participantId: string;
39
+ clientRole: SessionClientRole;
40
+ hasVideo: boolean;
41
+ hasAudio: boolean;
42
+ mirror: boolean;
43
+ videoDimensions: {
44
+ width: number;
45
+ height: number;
46
+ };
47
+ };
48
+ export type MultipartyStreamDestroyedEvent = {
49
+ isOwnConnection: boolean;
50
+ connectionId: string;
51
+ participantId: string;
52
+ clientRole: SessionClientRole;
53
+ };
54
+ export type MultipartyStreamPropertyChangedEvent = {
55
+ isOwnConnection: boolean;
56
+ connectionId: string;
57
+ participantId: string;
58
+ clientRole: SessionClientRole;
59
+ hasVideo: boolean;
60
+ hasAudio: boolean;
61
+ videoDimensions: {
62
+ width: number;
63
+ height: number;
64
+ };
65
+ };
66
+ export type MultipartySnapshotAllowedChangedEvent = {
67
+ snapshotAllowed: boolean;
68
+ };
69
+ export type MultipartyMainVideoMirrorStateChangedEvent = {
70
+ mirror: boolean;
71
+ };
72
+ export type MultipartyMainVideoPinnedAndStreamingStateChangedEvent = {
73
+ isPinnedAndStreaming: boolean;
74
+ };
75
+ export type MultipartyMediaAccessDeniedEvent = {
76
+ isOwnConnection: boolean;
77
+ };
78
+ export interface MultipartyEventTypesMap {
79
+ connectFailed: MultipartyConnectFailedEvent;
80
+ connectionCreated: MultipartyConnectionCreatedEvent;
81
+ connectionDestroyed: MultipartyConnectionDestroyedEvent;
82
+ streamCreated: MultipartyStreamCreatedEvent;
83
+ streamDestroyed: MultipartyStreamDestroyedEvent;
84
+ streamPropertyChanged: MultipartyStreamPropertyChangedEvent;
85
+ mediaDeviceAccessDenied: MultipartyMediaAccessDeniedEvent;
86
+ updateTrafficLogs: ITrafficLogs;
87
+ snapshotAllowedChanged: MultipartySnapshotAllowedChangedEvent;
88
+ mainVideoMirrorStateChanged: MultipartyMainVideoMirrorStateChangedEvent;
89
+ mainVideoPinnedAndStreamingStateChanged: MultipartyMainVideoPinnedAndStreamingStateChangedEvent;
90
+ setPinnedUser: PinnedUserType;
91
+ }
92
+ //# sourceMappingURL=MultipartyEventTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipartyEventTypes.d.ts","sourceRoot":"","sources":["../../../src/services/MultipartyEventTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultipartyEvents = void 0;
4
+ var MultipartyEvents;
5
+ (function (MultipartyEvents) {
6
+ MultipartyEvents["mediaCapabilitiesSupport"] = "mediaCapabilitiesSupport";
7
+ MultipartyEvents["connectFailed"] = "connectFailed";
8
+ MultipartyEvents["streamDestroyed"] = "streamDestroyed";
9
+ MultipartyEvents["connectionCreated"] = "connectionCreated";
10
+ MultipartyEvents["connectionDestroyed"] = "connectionDestroyed";
11
+ MultipartyEvents["streamCreated"] = "streamCreated";
12
+ MultipartyEvents["streamPropertyChanged"] = "streamPropertyChanged";
13
+ MultipartyEvents["mediaDeviceAccessDenied"] = "mediaDeviceAccessDenied";
14
+ MultipartyEvents["updateTrafficLogs"] = "updateTrafficLogs";
15
+ MultipartyEvents["snapshotAllowedChanged"] = "snapshotAllowedChanged";
16
+ MultipartyEvents["mainVideoMirrorStateChanged"] = "mainVideoMirrorStateChanged";
17
+ MultipartyEvents["mainVideoPinnedAndStreamingStateChanged"] = "mainVideoPinnedAndStreamingStateChanged";
18
+ })(MultipartyEvents = exports.MultipartyEvents || (exports.MultipartyEvents = {}));
19
+ //# sourceMappingURL=MultipartyEventTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultipartyEventTypes.js","sourceRoot":"","sources":["../../../src/services/MultipartyEventTypes.ts"],"names":[],"mappings":";;;AAIA,IAAY,gBAaX;AAbD,WAAY,gBAAgB;IACxB,yEAAqD,CAAA;IACrD,mDAA+B,CAAA;IAC/B,uDAAmC,CAAA;IACnC,2DAAuC,CAAA;IACvC,+DAA2C,CAAA;IAC3C,mDAA+B,CAAA;IAC/B,mEAA+C,CAAA;IAC/C,uEAAmD,CAAA;IACnD,2DAAuC,CAAA;IACvC,qEAAiD,CAAA;IACjD,+EAA2D,CAAA;IAC3D,uGAAmF,CAAA;AACvF,CAAC,EAbW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAa3B"}
@@ -0,0 +1,21 @@
1
+ import { Moment } from 'moment';
2
+ import { MultiPartyService } from '@techsee/techsee-nway-media-service/lib/MultiParty';
3
+ export interface ITrafficLogs {
4
+ videoTrafficDelta: number;
5
+ videoDurationDelta: Moment | number;
6
+ }
7
+ export declare class TrafficLogManager {
8
+ private readonly multiPartyService;
9
+ private readonly emitTrafficLogsEvent;
10
+ private updatedInProgressPromise;
11
+ private trafficLogger?;
12
+ private videoDurationLastCheck;
13
+ private previousTraffic;
14
+ constructor(multiPartyService: MultiPartyService, emitTrafficLogsEvent: (trafficLogs: ITrafficLogs) => void);
15
+ private start;
16
+ stop: () => Promise<void>;
17
+ private updateTrafficLogs;
18
+ private updateTrafficLogsInternal;
19
+ private calculateDeltas;
20
+ }
21
+ //# sourceMappingURL=trafficLogManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trafficLogManager.d.ts","sourceRoot":"","sources":["../../../src/services/trafficLogManager.ts"],"names":[],"mappings":"AAAA,OAAe,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AACtC,OAAO,EACH,iBAAiB,EAKpB,MAAM,oDAAoD,CAAC;AAI5D,MAAM,WAAW,YAAY;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC;AAQD,qBAAa,iBAAiB;IAQtB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IARzC,OAAO,CAAC,wBAAwB,CAAoC;IAEpE,OAAO,CAAC,aAAa,CAAC,CAAiC;IACvD,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,eAAe,CAAK;gBAGP,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI;IAM9E,OAAO,CAAC,KAAK,CAOX;IAEK,IAAI,QAAa,QAAQ,IAAI,CAAC,CAQnC;IAGF,OAAO,CAAC,iBAAiB,CAKvB;IAEF,OAAO,CAAC,yBAAyB,CAa/B;IAEF,OAAO,CAAC,eAAe,CASrB;CACL"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.TrafficLogManager = void 0;
43
+ var moment_1 = __importDefault(require("moment"));
44
+ var MultiParty_1 = require("@techsee/techsee-nway-media-service/lib/MultiParty");
45
+ var VIDEO_TRAFFIC_LOG_INTERVAL = 5;
46
+ function getStats(subscriber) {
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ return __generator(this, function (_a) {
49
+ return [2 /*return*/, new Promise(function (resolve) {
50
+ subscriber.getStats(function (error, stats) { return resolve(stats); });
51
+ })];
52
+ });
53
+ });
54
+ }
55
+ var TrafficLogManager = /** @class */ (function () {
56
+ function TrafficLogManager(multiPartyService, emitTrafficLogsEvent) {
57
+ var _this = this;
58
+ this.multiPartyService = multiPartyService;
59
+ this.emitTrafficLogsEvent = emitTrafficLogsEvent;
60
+ this.updatedInProgressPromise = Promise.resolve();
61
+ this.videoDurationLastCheck = moment_1.default.utc();
62
+ this.previousTraffic = 0;
63
+ this.start = function () {
64
+ if (!_this.trafficLogger && _this.multiPartyService.subscribers.length > 0) {
65
+ _this.trafficLogger = setInterval(function () { return _this.updateTrafficLogs(); }, VIDEO_TRAFFIC_LOG_INTERVAL * 1000);
66
+ _this.previousTraffic = 0;
67
+ _this.videoDurationLastCheck = moment_1.default.utc();
68
+ }
69
+ };
70
+ this.stop = function () { return __awaiter(_this, void 0, void 0, function () {
71
+ return __generator(this, function (_a) {
72
+ if (this.trafficLogger && this.multiPartyService.subscribers.length === 0) {
73
+ clearInterval(this.trafficLogger);
74
+ this.trafficLogger = undefined;
75
+ // Last update will not work because the subscriber is gone already
76
+ // this.updateTrafficLogs();
77
+ }
78
+ return [2 /*return*/];
79
+ });
80
+ }); };
81
+ //TODO right now this mechanism can only handle 2 participants if we want more we need to refactor this mechanism
82
+ this.updateTrafficLogs = function () { return __awaiter(_this, void 0, void 0, function () {
83
+ return __generator(this, function (_a) {
84
+ switch (_a.label) {
85
+ case 0:
86
+ if (!this.trafficLogger) return [3 /*break*/, 2];
87
+ return [4 /*yield*/, this.updatedInProgressPromise];
88
+ case 1:
89
+ _a.sent();
90
+ this.updatedInProgressPromise = this.updateTrafficLogsInternal();
91
+ _a.label = 2;
92
+ case 2: return [2 /*return*/];
93
+ }
94
+ });
95
+ }); };
96
+ this.updateTrafficLogsInternal = function () { return __awaiter(_this, void 0, void 0, function () {
97
+ var stats, timestamp, bytesReceived;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ if (this.multiPartyService.subscribers.length === 0) {
102
+ return [2 /*return*/];
103
+ }
104
+ return [4 /*yield*/, getStats(this.multiPartyService.subscribers[0].subscriber)];
105
+ case 1:
106
+ stats = _a.sent();
107
+ if (stats) {
108
+ timestamp = stats.timestamp;
109
+ bytesReceived = stats.video.bytesReceived;
110
+ this.emitTrafficLogsEvent(this.calculateDeltas(bytesReceived, timestamp));
111
+ }
112
+ return [2 /*return*/];
113
+ }
114
+ });
115
+ }); };
116
+ this.calculateDeltas = function (bytesReceived, timestamp) {
117
+ var now = moment_1.default.utc(timestamp);
118
+ var videoTrafficDelta = bytesReceived - _this.previousTraffic;
119
+ var videoDurationDelta = now.diff(_this.videoDurationLastCheck, 'seconds', true);
120
+ _this.videoDurationLastCheck = now;
121
+ _this.previousTraffic = bytesReceived;
122
+ return { videoTrafficDelta: videoTrafficDelta, videoDurationDelta: videoTrafficDelta ? videoDurationDelta : 0 };
123
+ };
124
+ this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.streamDestroyed, this.stop);
125
+ this.multiPartyService.on(MultiParty_1.MultiPartyServiceEventTypes.streamCreated, this.start);
126
+ }
127
+ return TrafficLogManager;
128
+ }());
129
+ exports.TrafficLogManager = TrafficLogManager;
130
+ //# sourceMappingURL=trafficLogManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trafficLogManager.js","sourceRoot":"","sources":["../../../src/services/trafficLogManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { MediaServiceType, MultiPartyCameraTypes, SessionClientRole } from '@techsee/techsee-nway-media-service/lib/MediaConstants';
2
+ import { BrandingSettings } from '@techsee/techsee-nway-media-service/lib/MultiParty';
3
+ export declare enum PinnedUserType {
4
+ AGENT = "agent",
5
+ USER = "user",
6
+ NONE = "none"
7
+ }
8
+ export type OnPinnedUserChangedCb = (pinnedUser: PinnedUserType) => void;
9
+ export declare enum ConnectionState {
10
+ WaitingForConnection = "WaitingForConnection",
11
+ Connecting = "Connecting",
12
+ ConnectedPublishingVideo = "ConnectedPublishingVideo",
13
+ ConnectedNoVideo = "ConnectedNoVideo",
14
+ Disconnected = "Disconnected"
15
+ }
16
+ export type ConnectionDetails = {
17
+ userRole: SessionClientRole;
18
+ isOwnConnection: boolean;
19
+ isMediaPermissionsRejected: boolean;
20
+ connectionState: ConnectionState;
21
+ connectionId?: string;
22
+ videoStreamId: string;
23
+ };
24
+ export declare enum AudioState {
25
+ DISABLED = "disabled",
26
+ MUTED = "muted",
27
+ ENABLED = "enabled"
28
+ }
29
+ export interface MultipartySessionSettings {
30
+ audioState: AudioState;
31
+ selectedCamera: MultiPartyCameraTypes;
32
+ cameraEnabled: boolean;
33
+ mediaServiceType: MediaServiceType;
34
+ branding?: BrandingSettings;
35
+ keepSessionState?: boolean;
36
+ }
37
+ export declare const toSessionClientRole: (userType?: PinnedUserType) => SessionClientRole | undefined;
38
+ export declare const toPinnedUserType: (userRole?: SessionClientRole) => PinnedUserType;
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oDAAoD,CAAC;AAEpF,oBAAY,cAAc;IACtB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;CAChB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;AAEzE,oBAAY,eAAe;IACvB,oBAAoB,yBAAyB;IAC7C,UAAU,eAAe;IACzB,wBAAwB,6BAA6B;IACrD,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;CAChC;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,0BAA0B,EAAE,OAAO,CAAC;IACpC,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,oBAAY,UAAU;IAClB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,OAAO,YAAY;CACtB;AAED,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,qBAAqB,CAAC;IACtC,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,mBAAmB,cAAe,cAAc,KAAG,iBAAiB,GAAG,SASnF,CAAC;AAEF,eAAO,MAAM,gBAAgB,cAAe,iBAAiB,KAAG,cAS/D,CAAC"}