@webex/plugin-meetings 3.0.0-beta.13 → 3.0.0-beta.15
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/UPGRADING.md +9 -9
- package/browsers.js +19 -24
- package/dist/common/browser-detection.js +1 -0
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js.map +1 -1
- package/dist/common/errors/captcha-error.js +5 -5
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +5 -5
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-meeting.js +6 -6
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/media.js +5 -5
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/parameter.js +5 -5
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +5 -5
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +4 -4
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reconnection.js +5 -5
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +5 -5
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +11 -8
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +2 -1
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js +2 -1
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js.map +1 -1
- package/dist/media/internal-media-core-wrapper.js.map +1 -1
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js +1 -1
- package/dist/media/util.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/effectsState.js +1 -1
- package/dist/meeting/effectsState.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +118 -89
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +1 -1
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +25 -0
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js +8 -0
- package/dist/meeting/request.type.js.map +1 -0
- package/dist/meeting/state.js +5 -5
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +2 -2
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +48 -48
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +251 -250
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +2 -2
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +14 -14
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +31 -31
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +43 -43
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +23 -20
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/multistreamMedia.js +2 -1
- package/dist/multistream/multistreamMedia.js.map +1 -1
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +2 -0
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/networkQualityMonitor/index.js +8 -8
- package/dist/networkQualityMonitor/index.js.map +1 -1
- package/dist/personal-meeting-room/index.js +7 -7
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js.map +1 -1
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js +3 -1
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +4 -4
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +5 -5
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/statsAnalyzer/global.js.map +1 -1
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/transcription/index.js +4 -1
- package/dist/transcription/index.js.map +1 -1
- package/internal-README.md +7 -6
- package/package.json +18 -18
- package/src/common/browser-detection.ts +9 -6
- package/src/common/collection.ts +3 -1
- package/src/common/errors/captcha-error.ts +6 -6
- package/src/common/errors/intent-to-join.ts +6 -6
- package/src/common/errors/join-meeting.ts +12 -8
- package/src/common/errors/media.ts +6 -6
- package/src/common/errors/parameter.ts +9 -6
- package/src/common/errors/password-error.ts +6 -6
- package/src/common/errors/permission.ts +5 -5
- package/src/common/errors/reconnection.ts +6 -6
- package/src/common/errors/stats.ts +6 -6
- package/src/common/errors/webex-errors.ts +7 -5
- package/src/common/errors/webex-meetings-error.ts +1 -1
- package/src/common/events/events-scope.ts +5 -1
- package/src/common/events/events.ts +5 -1
- package/src/common/events/trigger-proxy.ts +8 -3
- package/src/common/events/util.ts +1 -2
- package/src/common/logs/logger-proxy.ts +21 -10
- package/src/common/logs/request.ts +11 -8
- package/src/config.ts +11 -11
- package/src/constants.ts +1 -1
- package/src/index.js +1 -1
- package/src/locus-info/controlsUtils.ts +34 -24
- package/src/locus-info/fullState.ts +15 -11
- package/src/locus-info/hostUtils.ts +4 -3
- package/src/locus-info/index.ts +25 -34
- package/src/locus-info/infoUtils.ts +12 -4
- package/src/locus-info/mediaSharesUtils.ts +4 -4
- package/src/locus-info/parser.ts +45 -68
- package/src/locus-info/selfUtils.ts +106 -57
- package/src/media/index.ts +123 -135
- package/src/media/internal-media-core-wrapper.ts +2 -2
- package/src/media/properties.ts +30 -20
- package/src/media/util.ts +1 -1
- package/src/mediaQualityMetrics/config.ts +46 -46
- package/src/meeting/effectsState.ts +35 -35
- package/src/meeting/in-meeting-actions.ts +7 -3
- package/src/meeting/index.ts +1576 -1291
- package/src/meeting/muteState.ts +62 -31
- package/src/meeting/request.ts +174 -113
- package/src/meeting/request.type.ts +11 -0
- package/src/meeting/state.ts +45 -30
- package/src/meeting/util.ts +101 -70
- package/src/meeting-info/collection.ts +2 -1
- package/src/meeting-info/index.ts +32 -30
- package/src/meeting-info/meeting-info-v2.ts +106 -108
- package/src/meeting-info/request.ts +9 -3
- package/src/meeting-info/util.ts +54 -46
- package/src/meeting-info/utilv2.ts +59 -53
- package/src/meetings/collection.ts +1 -1
- package/src/meetings/index.ts +512 -440
- package/src/meetings/request.ts +26 -24
- package/src/meetings/util.ts +29 -29
- package/src/member/index.ts +55 -49
- package/src/member/util.ts +26 -13
- package/src/members/collection.ts +0 -1
- package/src/members/index.ts +182 -126
- package/src/members/request.ts +46 -14
- package/src/members/util.ts +44 -42
- package/src/metrics/config.ts +254 -81
- package/src/metrics/constants.ts +0 -2
- package/src/metrics/index.ts +84 -71
- package/src/multistream/multistreamMedia.ts +1 -0
- package/src/multistream/receiveSlot.ts +1 -0
- package/src/multistream/receiveSlotManager.ts +1 -0
- package/src/multistream/remoteMedia.ts +1 -1
- package/src/multistream/remoteMediaGroup.ts +2 -1
- package/src/multistream/remoteMediaManager.ts +3 -0
- package/src/networkQualityMonitor/index.ts +20 -23
- package/src/personal-meeting-room/index.ts +12 -16
- package/src/personal-meeting-room/request.ts +10 -3
- package/src/personal-meeting-room/util.ts +3 -3
- package/src/reachability/index.ts +61 -59
- package/src/reachability/request.ts +36 -32
- package/src/reactions/reactions.ts +4 -4
- package/src/reactions/reactions.type.ts +4 -3
- package/src/reconnection-manager/index.ts +139 -84
- package/src/roap/index.ts +46 -38
- package/src/roap/request.ts +44 -31
- package/src/roap/turnDiscovery.ts +59 -30
- package/src/statsAnalyzer/global.ts +30 -33
- package/src/statsAnalyzer/index.ts +432 -175
- package/src/statsAnalyzer/mqaUtil.ts +178 -72
- package/src/transcription/index.ts +34 -32
- package/test/integration/spec/journey.js +663 -462
- package/test/integration/spec/space-meeting.js +318 -203
- package/test/integration/spec/transcription.js +6 -7
- package/test/unit/spec/common/browser-detection.js +9 -28
- package/test/unit/spec/fixture/locus.js +92 -90
- package/test/unit/spec/locus-info/controlsUtils.js +5 -5
- package/test/unit/spec/locus-info/embeddedAppsUtils.js +8 -6
- package/test/unit/spec/locus-info/index.js +1 -2
- package/test/unit/spec/locus-info/infoUtils.js +26 -33
- package/test/unit/spec/locus-info/lib/BasicSeqCmp.json +88 -430
- package/test/unit/spec/locus-info/lib/SeqCmp.json +513 -685
- package/test/unit/spec/locus-info/parser.js +3 -9
- package/test/unit/spec/locus-info/selfConstant.js +72 -103
- package/test/unit/spec/locus-info/selfUtils.js +21 -12
- package/test/unit/spec/meeting/effectsState.js +36 -46
- package/test/unit/spec/meeting/in-meeting-actions.ts +2 -3
- package/test/unit/spec/meeting/index.js +1342 -684
- package/test/unit/spec/meeting/muteState.js +42 -33
- package/test/unit/spec/meeting/request.js +75 -45
- package/test/unit/spec/meeting/utils.js +78 -53
- package/test/unit/spec/meeting-info/meetinginfov2.js +100 -73
- package/test/unit/spec/meeting-info/request.js +7 -9
- package/test/unit/spec/meeting-info/util.js +11 -12
- package/test/unit/spec/meeting-info/utilv2.js +110 -74
- package/test/unit/spec/meetings/collection.js +1 -1
- package/test/unit/spec/meetings/index.js +438 -257
- package/test/unit/spec/meetings/utils.js +14 -12
- package/test/unit/spec/member/index.js +0 -1
- package/test/unit/spec/member/util.js +5 -6
- package/test/unit/spec/members/index.js +104 -54
- package/test/unit/spec/members/request.js +29 -20
- package/test/unit/spec/members/utils.js +8 -5
- package/test/unit/spec/metrics/index.js +16 -21
- package/test/unit/spec/networkQualityMonitor/index.js +21 -15
- package/test/unit/spec/personal-meeting-room/personal-meeting-room.js +2 -7
- package/test/unit/spec/reachability/index.ts +9 -11
- package/test/unit/spec/reconnection-manager/index.js +16 -18
- package/test/unit/spec/roap/turnDiscovery.ts +22 -19
- package/test/unit/spec/stats-analyzer/index.js +25 -20
- package/test/utils/cmr.js +44 -42
- package/test/utils/testUtils.js +83 -74
- package/test/utils/webex-config.js +18 -18
- package/test/utils/webex-test-users.js +53 -50
package/internal-README.md
CHANGED
|
@@ -48,7 +48,7 @@ Install tooling dependencies.
|
|
|
48
48
|
npm install
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
_Build issues?_ See [BUILD-ISSUES.md](https://github.com/webex/webex-js-sdk/blob/master/BUILD-ISSUES.md) for help.
|
|
52
52
|
|
|
53
53
|
## Contribute to the `plugin-meetings` branch
|
|
54
54
|
|
|
@@ -93,12 +93,14 @@ yarn run build
|
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
> Individual packages containing samples can usually be run this way:
|
|
96
|
+
>
|
|
96
97
|
> ```
|
|
97
98
|
> yarn run serve:package --env.package @webex/plugin-meetings
|
|
99
|
+
> ```
|
|
98
100
|
|
|
99
101
|
> ```
|
|
100
102
|
> However, `webex` does not get compiled properly for `plugin-meetings` using this method, so do the following instead.
|
|
101
|
-
|
|
103
|
+
> ```
|
|
102
104
|
|
|
103
105
|
```bash
|
|
104
106
|
# Run the "sample app" sample.
|
|
@@ -107,8 +109,8 @@ yarn run samples:meetings
|
|
|
107
109
|
```
|
|
108
110
|
|
|
109
111
|
- Visit https://localhost:8000/
|
|
110
|
-
- Copy/paste **Your Personal Access Token** from [Cisco Webex for Developers](https://developer.webex.com/docs/api/getting-started) and click
|
|
111
|
-
- Use the **Dialer** to
|
|
112
|
+
- Copy/paste **Your Personal Access Token** from [Cisco Webex for Developers](https://developer.webex.com/docs/api/getting-started) and click _connect_.
|
|
113
|
+
- Use the **Dialer** to _create_ a Meeting object, _join_ it, and _addMedia_, like video and audio.
|
|
112
114
|
|
|
113
115
|
> This sample does not join a meeting in one click on purpose. It is meant to demonstrate the different commands available, and their sequence, to developers. Other samples will be created in the future.
|
|
114
116
|
>
|
|
@@ -124,7 +126,6 @@ yarn run samples:meetings
|
|
|
124
126
|
|
|
125
127
|
Use `yarn run distsrc` to point each package's `main` entry at the raw src and let `babel` compile on the fly.
|
|
126
128
|
|
|
127
|
-
|
|
128
129
|
```bash
|
|
129
130
|
# Point all package.json files to the src directory instead of the dist directory.
|
|
130
131
|
yarn run distsrc
|
|
@@ -156,7 +157,7 @@ yarn run srcdist
|
|
|
156
157
|
|
|
157
158
|
The SDK enforces relatively strict commit messages to version its packages and keep language similar.
|
|
158
159
|
|
|
159
|
-
Here is an example committing a new feature. Notice the
|
|
160
|
+
Here is an example committing a new feature. Notice the _package name_ in parentheses.
|
|
160
161
|
|
|
161
162
|
```bash
|
|
162
163
|
git commit -a -m 'feat(plugin-meetings): add ability to join a meeting'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/plugin-meetings",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.15",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
|
|
6
6
|
"contributors": [
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
]
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@webex/plugin-meetings": "3.0.0-beta.
|
|
32
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
33
|
-
"@webex/test-helper-mocha": "3.0.0-beta.
|
|
34
|
-
"@webex/test-helper-mock-webex": "3.0.0-beta.
|
|
35
|
-
"@webex/test-helper-retry": "3.0.0-beta.
|
|
36
|
-
"@webex/test-helper-test-users": "3.0.0-beta.
|
|
31
|
+
"@webex/plugin-meetings": "3.0.0-beta.15",
|
|
32
|
+
"@webex/test-helper-chai": "3.0.0-beta.15",
|
|
33
|
+
"@webex/test-helper-mocha": "3.0.0-beta.15",
|
|
34
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.15",
|
|
35
|
+
"@webex/test-helper-retry": "3.0.0-beta.15",
|
|
36
|
+
"@webex/test-helper-test-users": "3.0.0-beta.15",
|
|
37
37
|
"chai": "^4.3.4",
|
|
38
38
|
"chai-as-promised": "^7.1.1",
|
|
39
39
|
"jsdom-global": "3.0.2",
|
|
@@ -41,18 +41,18 @@
|
|
|
41
41
|
"typed-emitter": "^2.1.0"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@webex/common": "3.0.0-beta.
|
|
44
|
+
"@webex/common": "3.0.0-beta.15",
|
|
45
45
|
"@webex/internal-media-core": "^0.0.17-beta",
|
|
46
|
-
"@webex/internal-plugin-conversation": "3.0.0-beta.
|
|
47
|
-
"@webex/internal-plugin-device": "3.0.0-beta.
|
|
48
|
-
"@webex/internal-plugin-llm": "3.0.0-beta.
|
|
49
|
-
"@webex/internal-plugin-mercury": "3.0.0-beta.
|
|
50
|
-
"@webex/internal-plugin-metrics": "3.0.0-beta.
|
|
51
|
-
"@webex/internal-plugin-support": "3.0.0-beta.
|
|
52
|
-
"@webex/internal-plugin-user": "3.0.0-beta.
|
|
53
|
-
"@webex/plugin-people": "3.0.0-beta.
|
|
54
|
-
"@webex/plugin-rooms": "3.0.0-beta.
|
|
55
|
-
"@webex/webex-core": "3.0.0-beta.
|
|
46
|
+
"@webex/internal-plugin-conversation": "3.0.0-beta.15",
|
|
47
|
+
"@webex/internal-plugin-device": "3.0.0-beta.15",
|
|
48
|
+
"@webex/internal-plugin-llm": "3.0.0-beta.15",
|
|
49
|
+
"@webex/internal-plugin-mercury": "3.0.0-beta.15",
|
|
50
|
+
"@webex/internal-plugin-metrics": "3.0.0-beta.15",
|
|
51
|
+
"@webex/internal-plugin-support": "3.0.0-beta.15",
|
|
52
|
+
"@webex/internal-plugin-user": "3.0.0-beta.15",
|
|
53
|
+
"@webex/plugin-people": "3.0.0-beta.15",
|
|
54
|
+
"@webex/plugin-rooms": "3.0.0-beta.15",
|
|
55
|
+
"@webex/webex-core": "3.0.0-beta.15",
|
|
56
56
|
"bowser": "^2.11.0",
|
|
57
57
|
"btoa": "^1.2.1",
|
|
58
58
|
"dotenv": "^4.0.0",
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
+
|
|
1
3
|
import bowser from 'bowser';
|
|
2
4
|
import {memoize} from 'lodash';
|
|
3
5
|
import window from 'global/window';
|
|
@@ -9,7 +11,7 @@ const mockDetectionObject = {
|
|
|
9
11
|
/* eslint-enable global-require */
|
|
10
12
|
getBrowserName: () => '',
|
|
11
13
|
getBrowserVersion: () => '',
|
|
12
|
-
isBrowser: () => false
|
|
14
|
+
isBrowser: () => false,
|
|
13
15
|
};
|
|
14
16
|
|
|
15
17
|
const createDetectionObject = (results) => {
|
|
@@ -26,11 +28,12 @@ const createDetectionObject = (results) => {
|
|
|
26
28
|
getOSVersion,
|
|
27
29
|
getBrowserName,
|
|
28
30
|
getBrowserVersion,
|
|
29
|
-
isBrowser
|
|
31
|
+
isBrowser,
|
|
30
32
|
};
|
|
31
33
|
};
|
|
32
34
|
|
|
33
|
-
export default memoize((agent?: any) =>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
export default memoize((agent?: any) =>
|
|
36
|
+
agent || window.navigator?.userAgent
|
|
37
|
+
? createDetectionObject(bowser.getParser(agent || window.navigator.userAgent))
|
|
38
|
+
: mockDetectionObject
|
|
39
|
+
);
|
package/src/common/collection.ts
CHANGED
|
@@ -42,7 +42,9 @@ export default class Collection {
|
|
|
42
42
|
* @memberof Collection
|
|
43
43
|
*/
|
|
44
44
|
public get(id: string) {
|
|
45
|
-
return this[this.propertyName] && this[this.propertyName][id]
|
|
45
|
+
return this[this.propertyName] && this[this.propertyName][id]
|
|
46
|
+
? this[this.propertyName][id]
|
|
47
|
+
: null;
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
/**
|
|
@@ -9,17 +9,17 @@ export default class CaptchaError extends Error {
|
|
|
9
9
|
sdkMessage: any;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
*
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
17
|
constructor(message: string = ERROR_DICTIONARY.CAPTCHA.MESSAGE, error: any = null) {
|
|
18
18
|
super(message);
|
|
19
19
|
this.name = ERROR_DICTIONARY.CAPTCHA.NAME;
|
|
20
20
|
this.sdkMessage = ERROR_DICTIONARY.CAPTCHA.MESSAGE;
|
|
21
21
|
this.error = error;
|
|
22
|
-
this.stack = error ? error.stack :
|
|
22
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
23
23
|
this.code = ERROR_DICTIONARY.CAPTCHA.CODE;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -10,17 +10,17 @@ export default class IntentToJoinError extends Error {
|
|
|
10
10
|
sdkMessage: any;
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
*
|
|
14
|
+
* @constructor
|
|
15
|
+
* @param {String} [message]
|
|
16
|
+
* @param {Object} [error]
|
|
17
|
+
*/
|
|
18
18
|
constructor(message: string = ERROR_DICTIONARY.INTENT_TO_JOIN.MESSAGE, error: any = null) {
|
|
19
19
|
super(message);
|
|
20
20
|
this.name = ERROR_DICTIONARY.INTENT_TO_JOIN.NAME;
|
|
21
21
|
this.sdkMessage = ERROR_DICTIONARY.INTENT_TO_JOIN.MESSAGE;
|
|
22
22
|
this.error = error;
|
|
23
|
-
this.stack = error ? error.stack :
|
|
23
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
24
24
|
this.joinIntentRequired = true;
|
|
25
25
|
this.code = ERROR_DICTIONARY.INTENT_TO_JOIN.CODE;
|
|
26
26
|
}
|
|
@@ -10,18 +10,22 @@ export default class JoinMeetingError extends Error {
|
|
|
10
10
|
sdkMessage: any;
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
constructor(
|
|
13
|
+
*
|
|
14
|
+
* @constructor
|
|
15
|
+
* @param {Object} [options]
|
|
16
|
+
* @param {String} [message]
|
|
17
|
+
* @param {Object} [error]
|
|
18
|
+
*/
|
|
19
|
+
constructor(
|
|
20
|
+
options: object = {},
|
|
21
|
+
message: string = ERROR_DICTIONARY.JOIN_MEETING.MESSAGE,
|
|
22
|
+
error: any = null
|
|
23
|
+
) {
|
|
20
24
|
super(message);
|
|
21
25
|
this.name = ERROR_DICTIONARY.JOIN_MEETING.NAME;
|
|
22
26
|
this.sdkMessage = ERROR_DICTIONARY.JOIN_MEETING.MESSAGE;
|
|
23
27
|
this.error = error;
|
|
24
|
-
this.stack = error ? error.stack :
|
|
28
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
25
29
|
this.joinOptions = options;
|
|
26
30
|
this.code = ERROR_DICTIONARY.JOIN_MEETING.CODE;
|
|
27
31
|
}
|
|
@@ -9,17 +9,17 @@ export default class MediaError extends Error {
|
|
|
9
9
|
sdkMessage: any;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
*
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
17
|
constructor(message: string = ERROR_DICTIONARY.MEDIA.MESSAGE, error: any = null) {
|
|
18
18
|
super(message);
|
|
19
19
|
this.name = ERROR_DICTIONARY.RECONNECTION.NAME;
|
|
20
20
|
this.sdkMessage = ERROR_DICTIONARY.MEDIA.MESSAGE;
|
|
21
21
|
this.error = error;
|
|
22
|
-
this.stack = error ? error.stack :
|
|
22
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
23
23
|
this.code = ERROR_DICTIONARY.RECONNECTION.CODE;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -9,12 +9,15 @@ export default class ParameterError extends Error {
|
|
|
9
9
|
code: number;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
constructor(
|
|
12
|
+
*
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
|
+
constructor(
|
|
18
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.PARAMETER.MESSAGE,
|
|
19
|
+
error: any = null
|
|
20
|
+
) {
|
|
18
21
|
super(message);
|
|
19
22
|
|
|
20
23
|
if (Error.captureStackTrace) {
|
|
@@ -9,17 +9,17 @@ export default class PasswordError extends Error {
|
|
|
9
9
|
sdkMessage: any;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
*
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
17
|
constructor(message: string = ERROR_DICTIONARY.PASSWORD.MESSAGE, error: any = null) {
|
|
18
18
|
super(message);
|
|
19
19
|
this.name = ERROR_DICTIONARY.PASSWORD.NAME;
|
|
20
20
|
this.sdkMessage = ERROR_DICTIONARY.PASSWORD.MESSAGE;
|
|
21
21
|
this.error = error;
|
|
22
|
-
this.stack = error ? error.stack :
|
|
22
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
23
23
|
this.code = ERROR_DICTIONARY.PASSWORD.CODE;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -9,16 +9,16 @@ export default class PermissionError extends Error {
|
|
|
9
9
|
sdkMessage: any;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
* @constructor
|
|
13
|
+
* @param {String} [message]
|
|
14
|
+
* @param {Object} [error]
|
|
15
|
+
*/
|
|
16
16
|
constructor(message: string = ERROR_DICTIONARY.PERMISSION.MESSAGE, error: any = null) {
|
|
17
17
|
super(message);
|
|
18
18
|
this.name = ERROR_DICTIONARY.PERMISSION.NAME;
|
|
19
19
|
this.sdkMessage = ERROR_DICTIONARY.PERMISSION.MESSAGE;
|
|
20
20
|
this.error = error;
|
|
21
|
-
this.stack = error ? error.stack :
|
|
21
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
22
22
|
this.code = ERROR_DICTIONARY.PERMISSION.CODE;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -9,17 +9,17 @@ export default class ReconnectionError extends Error {
|
|
|
9
9
|
sdkMessage: any;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
*
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
17
|
constructor(message: string = ERROR_DICTIONARY.RECONNECTION.MESSAGE, error: any = null) {
|
|
18
18
|
super(message);
|
|
19
19
|
this.name = ERROR_DICTIONARY.RECONNECTION.NAME;
|
|
20
20
|
this.sdkMessage = ERROR_DICTIONARY.RECONNECTION.MESSAGE;
|
|
21
21
|
this.error = error;
|
|
22
|
-
this.stack = error ? error.stack :
|
|
22
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
23
23
|
this.code = ERROR_DICTIONARY.RECONNECTION.CODE;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -9,17 +9,17 @@ export default class StatsError extends Error {
|
|
|
9
9
|
sdkMessage: any;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
*
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
17
|
constructor(message: string = ERROR_DICTIONARY.STATS.MESSAGE, error: any = null) {
|
|
18
18
|
super(message);
|
|
19
19
|
this.name = ERROR_DICTIONARY.STATS.NAME;
|
|
20
20
|
this.sdkMessage = ERROR_DICTIONARY.STATS.MESSAGE;
|
|
21
21
|
this.error = error;
|
|
22
|
-
this.stack = error ? error.stack :
|
|
22
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
23
23
|
this.code = ERROR_DICTIONARY.STATS.CODE;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -23,7 +23,9 @@ export function createMeetingsError(code?: number, message?: string) {
|
|
|
23
23
|
code = typeof code === 'number' ? code : 0;
|
|
24
24
|
message = typeof message === 'string' && message ? message : 'Unknown error';
|
|
25
25
|
|
|
26
|
-
return WebExMeetingsErrors[code]
|
|
26
|
+
return WebExMeetingsErrors[code]
|
|
27
|
+
? new WebExMeetingsErrors[code]()
|
|
28
|
+
: new WebexMeetingsError(code, message);
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
/**
|
|
@@ -55,14 +57,16 @@ class UserNotJoinedError extends WebexMeetingsError {
|
|
|
55
57
|
static CODE = 30102;
|
|
56
58
|
|
|
57
59
|
constructor() {
|
|
58
|
-
super(
|
|
60
|
+
super(
|
|
61
|
+
UserNotJoinedError.CODE,
|
|
62
|
+
'User currently not in meeting. Please join a meeting before adding media.'
|
|
63
|
+
);
|
|
59
64
|
}
|
|
60
65
|
}
|
|
61
66
|
|
|
62
67
|
export {UserNotJoinedError};
|
|
63
68
|
WebExMeetingsErrors[UserNotJoinedError.CODE] = UserNotJoinedError;
|
|
64
69
|
|
|
65
|
-
|
|
66
70
|
/**
|
|
67
71
|
* @class NoMediaEstablishedYetError
|
|
68
72
|
* @classdesc Raised whenever the user has not established media yet.
|
|
@@ -81,7 +85,6 @@ class NoMediaEstablishedYetError extends WebexMeetingsError {
|
|
|
81
85
|
export {NoMediaEstablishedYetError};
|
|
82
86
|
WebExMeetingsErrors[NoMediaEstablishedYetError.CODE] = NoMediaEstablishedYetError;
|
|
83
87
|
|
|
84
|
-
|
|
85
88
|
/**
|
|
86
89
|
* @class UserInLobbyError
|
|
87
90
|
* @classdesc Raised whenever the user is in lobby and not joined yet.
|
|
@@ -100,7 +103,6 @@ class UserInLobbyError extends WebexMeetingsError {
|
|
|
100
103
|
export {UserInLobbyError};
|
|
101
104
|
WebExMeetingsErrors[UserInLobbyError.CODE] = UserInLobbyError;
|
|
102
105
|
|
|
103
|
-
|
|
104
106
|
/**
|
|
105
107
|
* @class IceGatheringFailed
|
|
106
108
|
* @classdesc Raised whenever ice gathering fails.
|
|
@@ -19,7 +19,11 @@ export default class EventsScope extends ChildEmitter {
|
|
|
19
19
|
* @returns {Function}
|
|
20
20
|
*/
|
|
21
21
|
emit(scope: any, eventName: any, args: any) {
|
|
22
|
-
LoggerProxy.logger.debug(
|
|
22
|
+
LoggerProxy.logger.debug(
|
|
23
|
+
`${EventsUtil.getScopeLog(scope)}event#${eventName}${
|
|
24
|
+
LoggerConfig.verboseEvents ? ` -- ${EventsUtil.getEventLog(args)}` : ''
|
|
25
|
+
}`
|
|
26
|
+
);
|
|
23
27
|
|
|
24
28
|
return super.emit(eventName, args);
|
|
25
29
|
}
|
|
@@ -12,7 +12,11 @@ import EventsUtil from './util';
|
|
|
12
12
|
*/
|
|
13
13
|
class Events extends EventEmitter {
|
|
14
14
|
emit(scope, eventName, args) {
|
|
15
|
-
LoggerProxy.logger.debug(
|
|
15
|
+
LoggerProxy.logger.debug(
|
|
16
|
+
`${EventsUtil.getScopeLog(scope)}event#${eventName}${
|
|
17
|
+
LoggerConfig.verboseEvents ? ` -- ${EventsUtil.getEventLog(args)}` : ''
|
|
18
|
+
}`
|
|
19
|
+
);
|
|
16
20
|
|
|
17
21
|
return super.emit(eventName, args);
|
|
18
22
|
}
|
|
@@ -4,15 +4,20 @@ import ParameterError from '../errors/parameter';
|
|
|
4
4
|
|
|
5
5
|
import EventsUtil from './util';
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
const TriggerProxy: any = {};
|
|
9
8
|
|
|
10
9
|
TriggerProxy.trigger = (instance, scope, trigger, payload) => {
|
|
11
10
|
if (!instance || !instance.trigger) {
|
|
12
|
-
throw new ParameterError(
|
|
11
|
+
throw new ParameterError(
|
|
12
|
+
'Instance to trigger from must be defined and have a trigger function.'
|
|
13
|
+
);
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
LoggerProxy.logger.debug(
|
|
16
|
+
LoggerProxy.logger.debug(
|
|
17
|
+
`${EventsUtil.getScopeLog(scope)}event#${trigger}${
|
|
18
|
+
LoggerConfig.verboseEvents ? ` -- ${EventsUtil.getEventLog(payload)}` : ''
|
|
19
|
+
}`
|
|
20
|
+
);
|
|
16
21
|
|
|
17
22
|
return instance.trigger(trigger, payload);
|
|
18
23
|
};
|
|
@@ -3,13 +3,25 @@ import LoggerConfig from './logger-config';
|
|
|
3
3
|
|
|
4
4
|
const LoggerProxy: any = {
|
|
5
5
|
logger: {
|
|
6
|
-
info: (args) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
info: (args) => {
|
|
7
|
+
console.error('LoggerProxy->info#NO LOGGER DEFINED');
|
|
8
|
+
},
|
|
9
|
+
log: (args) => {
|
|
10
|
+
console.error('LoggerProxy->log#NO LOGGER DEFINED');
|
|
11
|
+
},
|
|
12
|
+
error: (args) => {
|
|
13
|
+
console.error('LoggerProxy->error#NO LOGGER DEFINED');
|
|
14
|
+
},
|
|
15
|
+
warn: (args) => {
|
|
16
|
+
console.error('LoggerProxy->warn#NO LOGGER DEFINED');
|
|
17
|
+
},
|
|
18
|
+
trace: (args) => {
|
|
19
|
+
console.error('LoggerProxy->trace#NO LOGGER DEFINED');
|
|
20
|
+
},
|
|
21
|
+
debug: (args) => {
|
|
22
|
+
console.error('LoggerProxy->debug#NO LOGGER DEFINED');
|
|
23
|
+
},
|
|
24
|
+
},
|
|
13
25
|
};
|
|
14
26
|
|
|
15
27
|
LoggerProxy.set = (logger) => {
|
|
@@ -20,10 +32,9 @@ LoggerProxy.set = (logger) => {
|
|
|
20
32
|
error: () => {},
|
|
21
33
|
warn: () => {},
|
|
22
34
|
trace: () => {},
|
|
23
|
-
debug: () => {}
|
|
35
|
+
debug: () => {},
|
|
24
36
|
};
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
37
|
+
} else {
|
|
27
38
|
LoggerProxy.logger = logger;
|
|
28
39
|
}
|
|
29
40
|
};
|
|
@@ -14,7 +14,7 @@ export default class LogsRequest {
|
|
|
14
14
|
* @param {Object} options.webex Webex SDK instance
|
|
15
15
|
* @param {ClientMetrics} metrics
|
|
16
16
|
*/
|
|
17
|
-
constructor(options: {
|
|
17
|
+
constructor(options: {webex: object}) {
|
|
18
18
|
this.webex = options.webex;
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -40,18 +40,21 @@ export default class LogsRequest {
|
|
|
40
40
|
} = {}
|
|
41
41
|
) {
|
|
42
42
|
const id = options.feedbackId || uuid.v4();
|
|
43
|
-
const {
|
|
44
|
-
locusId, correlationId, meetingId, callStart
|
|
45
|
-
} = options;
|
|
43
|
+
const {locusId, correlationId, meetingId, callStart} = options;
|
|
46
44
|
|
|
47
|
-
LoggerProxy.logger.info(
|
|
45
|
+
LoggerProxy.logger.info(
|
|
46
|
+
`Logs:request#uploadLogs --> uploading user logs for feedbackId: ${id}`
|
|
47
|
+
);
|
|
48
48
|
|
|
49
49
|
try {
|
|
50
50
|
await this.webex.internal.support.submitLogs({
|
|
51
|
-
feedbackId: id,
|
|
51
|
+
feedbackId: id,
|
|
52
|
+
locusId,
|
|
53
|
+
correlationId,
|
|
54
|
+
meetingId,
|
|
55
|
+
callStart,
|
|
52
56
|
});
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
57
|
+
} catch (error) {
|
|
55
58
|
LoggerProxy.logger.error('Logs:request#uploadLogs --> uploading user logs failed', error);
|
|
56
59
|
|
|
57
60
|
return Promise.reject(error);
|
package/src/config.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
// @ts-ignore
|
|
3
|
-
deviceType
|
|
3
|
+
deviceType,
|
|
4
4
|
} from '@webex/common';
|
|
5
5
|
|
|
6
6
|
export default {
|
|
@@ -16,7 +16,7 @@ export default {
|
|
|
16
16
|
receiveVideo: true,
|
|
17
17
|
pstn: false,
|
|
18
18
|
sendShare: false,
|
|
19
|
-
receiveShare: false
|
|
19
|
+
receiveShare: false,
|
|
20
20
|
},
|
|
21
21
|
reconnection: {
|
|
22
22
|
enabled: false,
|
|
@@ -25,7 +25,7 @@ export default {
|
|
|
25
25
|
// Timeout duration to wait for ICE to reconnect if a disconnect is received.
|
|
26
26
|
iceReconnectionTimeout: 10000,
|
|
27
27
|
// Amount of times attempting to rejoin a meeting during reconnect
|
|
28
|
-
maxRejoinAttempts: 3
|
|
28
|
+
maxRejoinAttempts: 3,
|
|
29
29
|
},
|
|
30
30
|
stats: {
|
|
31
31
|
// Enable the webrtc stats analyzer that emits quality degradation events
|
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
// Once packet loss hits this ratio, the video will downgrade
|
|
42
42
|
videoPacketLossRatioThreshold: 9, // comparison of packets lost / packets received
|
|
43
43
|
rttThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user
|
|
44
|
-
jitterThreshold: 500 // 500 ms noticeable quality lag begins based on bandwidth of user
|
|
44
|
+
jitterThreshold: 500, // 500 ms noticeable quality lag begins based on bandwidth of user
|
|
45
45
|
},
|
|
46
46
|
metrics: {
|
|
47
47
|
// change to your client name else data will be muddled
|
|
@@ -55,30 +55,30 @@ export default {
|
|
|
55
55
|
mqaMetricsInterval: 60000,
|
|
56
56
|
// send to cisco internal MQA data automatically
|
|
57
57
|
// we already send CA
|
|
58
|
-
autoSendMQA: true
|
|
58
|
+
autoSendMQA: true,
|
|
59
59
|
},
|
|
60
60
|
logging: {
|
|
61
61
|
enable: true,
|
|
62
|
-
verboseEvents: true
|
|
62
|
+
verboseEvents: true,
|
|
63
63
|
},
|
|
64
64
|
resolution: {
|
|
65
65
|
maxWidth: 1280,
|
|
66
66
|
maxHeight: 720,
|
|
67
67
|
idealWidth: 1280,
|
|
68
|
-
idealHeight: 720
|
|
68
|
+
idealHeight: 720,
|
|
69
69
|
},
|
|
70
70
|
screenResolution: {
|
|
71
71
|
maxWidth: 1920,
|
|
72
72
|
maxHeight: 1080,
|
|
73
73
|
idealWidth: 1920,
|
|
74
|
-
idealHeight: 1080
|
|
74
|
+
idealHeight: 1080,
|
|
75
75
|
},
|
|
76
76
|
bandwidth: {
|
|
77
77
|
// please note, these are the maximum bandwidth values
|
|
78
78
|
// the server supports, minimums have to be tested
|
|
79
79
|
audio: 64000,
|
|
80
80
|
video: 4000000,
|
|
81
|
-
startBitrate: 2000
|
|
81
|
+
startBitrate: 2000,
|
|
82
82
|
},
|
|
83
83
|
screenFrameRate: 10,
|
|
84
84
|
videoShareFrameRate: 30,
|
|
@@ -94,6 +94,6 @@ export default {
|
|
|
94
94
|
enableUnifiedMeetings: false,
|
|
95
95
|
enableAdhocMeetings: false,
|
|
96
96
|
enableTurnDiscovery: false,
|
|
97
|
-
}
|
|
98
|
-
}
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
99
|
};
|