@webex/plugin-meetings 3.0.0-beta.255 → 3.0.0-beta.256
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/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +164 -192
- package/dist/meeting/index.js.map +1 -1
- package/dist/metrics/constants.js +2 -0
- package/dist/metrics/constants.js.map +1 -1
- package/dist/types/metrics/constants.d.ts +2 -0
- package/package.json +19 -19
- package/src/meeting/index.ts +52 -28
- package/src/metrics/constants.ts +2 -0
- package/test/unit/spec/meeting/index.js +130 -30
|
@@ -25,6 +25,8 @@ var BEHAVIORAL_METRICS = {
|
|
|
25
25
|
GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',
|
|
26
26
|
GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',
|
|
27
27
|
JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',
|
|
28
|
+
LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',
|
|
29
|
+
RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',
|
|
28
30
|
DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',
|
|
29
31
|
MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',
|
|
30
32
|
MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BEHAVIORAL_METRICS","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,kBAAkB,GAAG;EACzBC,4BAA4B,EAAE,qCAAqC;EACnEC,6BAA6B,EAAE,sCAAsC;EACrEC,0BAA0B,EAAE,mCAAmC;EAC/DC,2BAA2B,EAAE,oCAAoC;EACjEC,YAAY,EAAE,qBAAqB;EACnCC,YAAY,EAAE,sBAAsB;EACpCC,iBAAiB,EAAE,0BAA0B;EAC7CC,iBAAiB,EAAE,2BAA2B;EAC9CC,2BAA2B,EAAE,8BAA8B;EAC3DC,kBAAkB,EAAE,2BAA2B;EAC/CC,kBAAkB,EAAE,4BAA4B;EAChDC,qBAAqB,EAAE,8BAA8B;EACrDC,uBAAuB,EAAE,oCAAoC;EAC7DC,yBAAyB,EAAE,sCAAsC;EACjEC,sBAAsB,EAAE,gCAAgC;EACxDC,yBAAyB,EAAE,mCAAmC;EAC9DC,uBAAuB,EAAE,iCAAiC;
|
|
1
|
+
{"version":3,"names":["BEHAVIORAL_METRICS","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ROAP_MERCURY_EVENT_RECEIVED","CONNECTION_SUCCESS","CONNECTION_FAILURE","MEETING_LEAVE_FAILURE","MEETING_END_ALL_FAILURE","MEETING_END_ALL_INITIATED","GET_USER_MEDIA_FAILURE","GET_DISPLAY_MEDIA_FAILURE","JOIN_WITH_MEDIA_FAILURE","LLM_CONNECTION_AFTER_JOIN_FAILURE","RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE","DISCONNECT_DUE_TO_INACTIVITY","MEETING_MEDIA_INACTIVE","MEETING_RECONNECT_FAILURE","MEETING_MAX_REJOIN_FAILURE","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MUTE_AUDIO_FAILURE","MUTE_VIDEO_FAILURE","SET_MEETING_QUALITY_FAILURE","STOP_FLOOR_REQUEST_FAILURE","ADD_DIAL_IN_FAILURE","ADD_DIAL_OUT_FAILURE","UPDATE_MEDIA_FAILURE","UNMUTE_AUDIO_FAILURE","UNMUTE_VIDEO_FAILURE","ROAP_ANSWER_FAILURE","ROAP_GLARE_CONDITION","PEERCONNECTION_FAILURE","INVALID_ICE_CANDIDATE","UPLOAD_LOGS_FAILURE","UPLOAD_LOGS_SUCCESS","RECEIVE_TRANSCRIPTION_FAILURE","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","VERIFY_PASSWORD_SUCCESS","VERIFY_PASSWORD_ERROR","VERIFY_CAPTCHA_ERROR","MOVE_TO_SUCCESS","MOVE_TO_FAILURE","MOVE_FROM_SUCCESS","MOVE_FROM_FAILURE","TURN_DISCOVERY_FAILURE","MEETING_INFO_POLICY_ERROR","LOCUS_DELTA_SYNC_FAILED","LOCUS_DELTA_OUT_OF_ORDER","PERMISSION_TOKEN_REFRESH","PERMISSION_TOKEN_REFRESH_ERROR"],"sources":["constants.ts"],"sourcesContent":["// Metrics constants ----------------------------------------------------------\n\nconst BEHAVIORAL_METRICS = {\n MEETINGS_REGISTRATION_FAILED: 'js_sdk_meetings_registration_failed',\n MEETINGS_REGISTRATION_SUCCESS: 'js_sdk_meetings_registration_success',\n MERCURY_CONNECTION_FAILURE: 'js_sdk_mercury_connection_failure',\n MERCURY_CONNECTION_RESTORED: 'js_sdk_mercury_connection_restored',\n JOIN_SUCCESS: 'js_sdk_join_success',\n JOIN_FAILURE: 'js_sdk_join_failures',\n ADD_MEDIA_SUCCESS: 'js_sdk_add_media_success',\n ADD_MEDIA_FAILURE: 'js_sdk_add_media_failures',\n ROAP_MERCURY_EVENT_RECEIVED: 'js_sdk_roap_mercury_received',\n CONNECTION_SUCCESS: 'js_sdk_connection_success',\n CONNECTION_FAILURE: 'js_sdk_connection_failures',\n MEETING_LEAVE_FAILURE: 'js_sdk_meeting_leave_failure',\n MEETING_END_ALL_FAILURE: 'js_sdk_meeting_end_for_all_failure',\n MEETING_END_ALL_INITIATED: 'js_sdk_meeting_end_for_all_initiated',\n GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',\n GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',\n JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',\n LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',\n RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',\n\n DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',\n MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',\n MEETING_RECONNECT_FAILURE: 'js_sdk_meeting_reconnect_failures',\n MEETING_MAX_REJOIN_FAILURE: 'js_sdk_meeting_max_rejoin_failure',\n MEETING_SHARE_FAILURE: 'js_sdk_meeting_share_failures',\n MEETING_START_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_start_whiteboard_share_failures',\n MEETING_STOP_WHITEBOARD_SHARE_FAILURE: 'js_sdk_meeting_stop_whiteboard_share_failures',\n MUTE_AUDIO_FAILURE: 'js_sdk_mute_audio_failures',\n MUTE_VIDEO_FAILURE: 'js_sdk_mute_video_failures',\n SET_MEETING_QUALITY_FAILURE: 'js_sdk_set_meeting_quality_failures',\n STOP_FLOOR_REQUEST_FAILURE: 'js_sdk_stop_floor_request_failures',\n ADD_DIAL_IN_FAILURE: 'js_sdk_add_dial_in_failure',\n ADD_DIAL_OUT_FAILURE: 'js_sdk_add_dial_out_failure',\n UPDATE_MEDIA_FAILURE: 'js_sdk_update_media_failures',\n UNMUTE_AUDIO_FAILURE: 'js_sdk_unmute_audio_failures',\n UNMUTE_VIDEO_FAILURE: 'js_sdk_unmute_video_failures',\n ROAP_ANSWER_FAILURE: 'js_sdk_roap_answer_failures',\n ROAP_GLARE_CONDITION: 'js_sdk_roap_glar_condition',\n PEERCONNECTION_FAILURE: 'js_sdk_peerConnection_failures',\n INVALID_ICE_CANDIDATE: 'js_sdk_invalid_ice_candidate',\n UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',\n UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',\n RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',\n FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',\n FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',\n VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',\n VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',\n MOVE_TO_SUCCESS: 'js_sdk_move_to_success',\n MOVE_TO_FAILURE: 'js_sdk_move_to_failure',\n MOVE_FROM_SUCCESS: 'js_sdk_move_from_success',\n MOVE_FROM_FAILURE: 'js_sdk_move_from_failure',\n TURN_DISCOVERY_FAILURE: 'js_sdk_turn_discovery_failure',\n MEETING_INFO_POLICY_ERROR: 'js_sdk_meeting_info_policy_error',\n LOCUS_DELTA_SYNC_FAILED: 'js_sdk_locus_delta_sync_failed',\n LOCUS_DELTA_OUT_OF_ORDER: 'js_sdk_locus_delta_ooo',\n PERMISSION_TOKEN_REFRESH: 'js_sdk_permission_token_refresh',\n PERMISSION_TOKEN_REFRESH_ERROR: 'js_sdk_permission_token_refresh_error',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,kBAAkB,GAAG;EACzBC,4BAA4B,EAAE,qCAAqC;EACnEC,6BAA6B,EAAE,sCAAsC;EACrEC,0BAA0B,EAAE,mCAAmC;EAC/DC,2BAA2B,EAAE,oCAAoC;EACjEC,YAAY,EAAE,qBAAqB;EACnCC,YAAY,EAAE,sBAAsB;EACpCC,iBAAiB,EAAE,0BAA0B;EAC7CC,iBAAiB,EAAE,2BAA2B;EAC9CC,2BAA2B,EAAE,8BAA8B;EAC3DC,kBAAkB,EAAE,2BAA2B;EAC/CC,kBAAkB,EAAE,4BAA4B;EAChDC,qBAAqB,EAAE,8BAA8B;EACrDC,uBAAuB,EAAE,oCAAoC;EAC7DC,yBAAyB,EAAE,sCAAsC;EACjEC,sBAAsB,EAAE,gCAAgC;EACxDC,yBAAyB,EAAE,mCAAmC;EAC9DC,uBAAuB,EAAE,iCAAiC;EAC1DC,iCAAiC,EAAE,0CAA0C;EAC7EC,wCAAwC,EAAE,iDAAiD;EAE3FC,4BAA4B,EAAE,qCAAqC;EACnEC,sBAAsB,EAAE,+BAA+B;EACvDC,yBAAyB,EAAE,mCAAmC;EAC9DC,0BAA0B,EAAE,mCAAmC;EAC/DC,qBAAqB,EAAE,+BAA+B;EACtDC,sCAAsC,EAAE,gDAAgD;EACxFC,qCAAqC,EAAE,+CAA+C;EACtFC,kBAAkB,EAAE,4BAA4B;EAChDC,kBAAkB,EAAE,4BAA4B;EAChDC,2BAA2B,EAAE,qCAAqC;EAClEC,0BAA0B,EAAE,oCAAoC;EAChEC,mBAAmB,EAAE,4BAA4B;EACjDC,oBAAoB,EAAE,6BAA6B;EACnDC,oBAAoB,EAAE,8BAA8B;EACpDC,oBAAoB,EAAE,8BAA8B;EACpDC,oBAAoB,EAAE,8BAA8B;EACpDC,mBAAmB,EAAE,6BAA6B;EAClDC,oBAAoB,EAAE,4BAA4B;EAClDC,sBAAsB,EAAE,gCAAgC;EACxDC,qBAAqB,EAAE,8BAA8B;EACrDC,mBAAmB,EAAE,4BAA4B;EACjDC,mBAAmB,EAAE,4BAA4B;EACjDC,6BAA6B,EAAE,sCAAsC;EACrEC,6BAA6B,EAAE,sCAAsC;EACrEC,6BAA6B,EAAE,sCAAsC;EACrEC,qBAAqB,EAAE,8BAA8B;EACrDC,qBAAqB,EAAE,8BAA8B;EACrDC,uBAAuB,EAAE,gCAAgC;EACzDC,qBAAqB,EAAE,8BAA8B;EACrDC,oBAAoB,EAAE,6BAA6B;EACnDC,eAAe,EAAE,wBAAwB;EACzCC,eAAe,EAAE,wBAAwB;EACzCC,iBAAiB,EAAE,0BAA0B;EAC7CC,iBAAiB,EAAE,0BAA0B;EAC7CC,sBAAsB,EAAE,+BAA+B;EACvDC,yBAAyB,EAAE,kCAAkC;EAC7DC,uBAAuB,EAAE,gCAAgC;EACzDC,wBAAwB,EAAE,wBAAwB;EAClDC,wBAAwB,EAAE,iCAAiC;EAC3DC,8BAA8B,EAAE;AAClC,CAAC;AAAC"}
|
|
@@ -16,6 +16,8 @@ declare const BEHAVIORAL_METRICS: {
|
|
|
16
16
|
GET_USER_MEDIA_FAILURE: string;
|
|
17
17
|
GET_DISPLAY_MEDIA_FAILURE: string;
|
|
18
18
|
JOIN_WITH_MEDIA_FAILURE: string;
|
|
19
|
+
LLM_CONNECTION_AFTER_JOIN_FAILURE: string;
|
|
20
|
+
RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: string;
|
|
19
21
|
DISCONNECT_DUE_TO_INACTIVITY: string;
|
|
20
22
|
MEETING_MEDIA_INACTIVE: string;
|
|
21
23
|
MEETING_RECONNECT_FAILURE: string;
|
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.256",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
|
|
6
6
|
"contributors": [
|
|
@@ -32,12 +32,12 @@
|
|
|
32
32
|
"build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@webex/plugin-meetings": "3.0.0-beta.
|
|
36
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
37
|
-
"@webex/test-helper-mocha": "3.0.0-beta.
|
|
38
|
-
"@webex/test-helper-mock-webex": "3.0.0-beta.
|
|
39
|
-
"@webex/test-helper-retry": "3.0.0-beta.
|
|
40
|
-
"@webex/test-helper-test-users": "3.0.0-beta.
|
|
35
|
+
"@webex/plugin-meetings": "3.0.0-beta.256",
|
|
36
|
+
"@webex/test-helper-chai": "3.0.0-beta.256",
|
|
37
|
+
"@webex/test-helper-mocha": "3.0.0-beta.256",
|
|
38
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.256",
|
|
39
|
+
"@webex/test-helper-retry": "3.0.0-beta.256",
|
|
40
|
+
"@webex/test-helper-test-users": "3.0.0-beta.256",
|
|
41
41
|
"chai": "^4.3.4",
|
|
42
42
|
"chai-as-promised": "^7.1.1",
|
|
43
43
|
"jsdom-global": "3.0.2",
|
|
@@ -46,19 +46,19 @@
|
|
|
46
46
|
"typescript": "^4.7.4"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@webex/common": "3.0.0-beta.
|
|
49
|
+
"@webex/common": "3.0.0-beta.256",
|
|
50
50
|
"@webex/internal-media-core": "2.0.3",
|
|
51
|
-
"@webex/internal-plugin-conversation": "3.0.0-beta.
|
|
52
|
-
"@webex/internal-plugin-device": "3.0.0-beta.
|
|
53
|
-
"@webex/internal-plugin-llm": "3.0.0-beta.
|
|
54
|
-
"@webex/internal-plugin-mercury": "3.0.0-beta.
|
|
55
|
-
"@webex/internal-plugin-metrics": "3.0.0-beta.
|
|
56
|
-
"@webex/internal-plugin-support": "3.0.0-beta.
|
|
57
|
-
"@webex/internal-plugin-user": "3.0.0-beta.
|
|
58
|
-
"@webex/media-helpers": "3.0.0-beta.
|
|
59
|
-
"@webex/plugin-people": "3.0.0-beta.
|
|
60
|
-
"@webex/plugin-rooms": "3.0.0-beta.
|
|
61
|
-
"@webex/webex-core": "3.0.0-beta.
|
|
51
|
+
"@webex/internal-plugin-conversation": "3.0.0-beta.256",
|
|
52
|
+
"@webex/internal-plugin-device": "3.0.0-beta.256",
|
|
53
|
+
"@webex/internal-plugin-llm": "3.0.0-beta.256",
|
|
54
|
+
"@webex/internal-plugin-mercury": "3.0.0-beta.256",
|
|
55
|
+
"@webex/internal-plugin-metrics": "3.0.0-beta.256",
|
|
56
|
+
"@webex/internal-plugin-support": "3.0.0-beta.256",
|
|
57
|
+
"@webex/internal-plugin-user": "3.0.0-beta.256",
|
|
58
|
+
"@webex/media-helpers": "3.0.0-beta.256",
|
|
59
|
+
"@webex/plugin-people": "3.0.0-beta.256",
|
|
60
|
+
"@webex/plugin-rooms": "3.0.0-beta.256",
|
|
61
|
+
"@webex/webex-core": "3.0.0-beta.256",
|
|
62
62
|
"ampersand-collection": "^2.0.2",
|
|
63
63
|
"bowser": "^2.11.0",
|
|
64
64
|
"btoa": "^1.2.1",
|
package/src/meeting/index.ts
CHANGED
|
@@ -4553,39 +4553,13 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
4553
4553
|
this.meetingFiniteStateMachine.join();
|
|
4554
4554
|
LoggerProxy.logger.log('Meeting:index#join --> Success');
|
|
4555
4555
|
|
|
4556
|
-
return join;
|
|
4557
|
-
})
|
|
4558
|
-
.then((join) => {
|
|
4559
|
-
joinSuccess(join);
|
|
4560
|
-
this.deferJoin = undefined;
|
|
4561
4556
|
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.JOIN_SUCCESS, {
|
|
4562
4557
|
correlation_id: this.correlationId,
|
|
4563
4558
|
});
|
|
4564
4559
|
|
|
4565
|
-
|
|
4566
|
-
})
|
|
4567
|
-
.then(async (join) => {
|
|
4568
|
-
// @ts-ignore - config coming from registerPlugin
|
|
4569
|
-
if (this.config.enableAutomaticLLM) {
|
|
4570
|
-
await this.updateLLMConnection();
|
|
4571
|
-
}
|
|
4560
|
+
joinSuccess(join);
|
|
4572
4561
|
|
|
4573
|
-
|
|
4574
|
-
})
|
|
4575
|
-
.then(async (join) => {
|
|
4576
|
-
if (isBrowser) {
|
|
4577
|
-
// @ts-ignore - config coming from registerPlugin
|
|
4578
|
-
if (this.config.receiveTranscription || options.receiveTranscription) {
|
|
4579
|
-
if (this.isTranscriptionSupported()) {
|
|
4580
|
-
await this.receiveTranscription();
|
|
4581
|
-
LoggerProxy.logger.info('Meeting:index#join --> enabled to recieve transcription!');
|
|
4582
|
-
}
|
|
4583
|
-
}
|
|
4584
|
-
} else {
|
|
4585
|
-
LoggerProxy.logger.error(
|
|
4586
|
-
'Meeting:index#join --> Receving transcription is not supported on this platform'
|
|
4587
|
-
);
|
|
4588
|
-
}
|
|
4562
|
+
this.deferJoin = undefined;
|
|
4589
4563
|
|
|
4590
4564
|
return join;
|
|
4591
4565
|
})
|
|
@@ -4621,9 +4595,59 @@ export default class Meeting extends StatelessWebexPlugin {
|
|
|
4621
4595
|
);
|
|
4622
4596
|
|
|
4623
4597
|
joinFailed(error);
|
|
4598
|
+
|
|
4624
4599
|
this.deferJoin = undefined;
|
|
4625
4600
|
|
|
4626
4601
|
return Promise.reject(error);
|
|
4602
|
+
})
|
|
4603
|
+
.then((join) => {
|
|
4604
|
+
// @ts-ignore - config coming from registerPlugin
|
|
4605
|
+
if (this.config.enableAutomaticLLM) {
|
|
4606
|
+
this.updateLLMConnection().catch((error) => {
|
|
4607
|
+
LoggerProxy.logger.error('Meeting:index#join --> Update LLM Connection Failed', error);
|
|
4608
|
+
|
|
4609
|
+
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
|
4610
|
+
correlation_id: this.correlationId,
|
|
4611
|
+
reason: error?.message,
|
|
4612
|
+
stack: error.stack,
|
|
4613
|
+
});
|
|
4614
|
+
});
|
|
4615
|
+
}
|
|
4616
|
+
|
|
4617
|
+
return join;
|
|
4618
|
+
})
|
|
4619
|
+
.then((join) => {
|
|
4620
|
+
if (isBrowser) {
|
|
4621
|
+
// @ts-ignore - config coming from registerPlugin
|
|
4622
|
+
if (this.config.receiveTranscription || options.receiveTranscription) {
|
|
4623
|
+
if (this.isTranscriptionSupported()) {
|
|
4624
|
+
LoggerProxy.logger.info(
|
|
4625
|
+
'Meeting:index#join --> Attempting to enabled to recieve transcription!'
|
|
4626
|
+
);
|
|
4627
|
+
this.receiveTranscription().catch((error) => {
|
|
4628
|
+
LoggerProxy.logger.error(
|
|
4629
|
+
'Meeting:index#join --> Receive Transcription Failed',
|
|
4630
|
+
error
|
|
4631
|
+
);
|
|
4632
|
+
|
|
4633
|
+
Metrics.sendBehavioralMetric(
|
|
4634
|
+
BEHAVIORAL_METRICS.RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE,
|
|
4635
|
+
{
|
|
4636
|
+
correlation_id: this.correlationId,
|
|
4637
|
+
reason: error?.message,
|
|
4638
|
+
stack: error.stack,
|
|
4639
|
+
}
|
|
4640
|
+
);
|
|
4641
|
+
});
|
|
4642
|
+
}
|
|
4643
|
+
}
|
|
4644
|
+
} else {
|
|
4645
|
+
LoggerProxy.logger.error(
|
|
4646
|
+
'Meeting:index#join --> Receving transcription is not supported on this platform'
|
|
4647
|
+
);
|
|
4648
|
+
}
|
|
4649
|
+
|
|
4650
|
+
return join;
|
|
4627
4651
|
});
|
|
4628
4652
|
}
|
|
4629
4653
|
|
package/src/metrics/constants.ts
CHANGED
|
@@ -18,6 +18,8 @@ const BEHAVIORAL_METRICS = {
|
|
|
18
18
|
GET_USER_MEDIA_FAILURE: 'js_sdk_get_user_media_failures',
|
|
19
19
|
GET_DISPLAY_MEDIA_FAILURE: 'js_sdk_get_display_media_failures',
|
|
20
20
|
JOIN_WITH_MEDIA_FAILURE: 'js_sdk_join_with_media_failures',
|
|
21
|
+
LLM_CONNECTION_AFTER_JOIN_FAILURE: 'js_sdk_llm_connection_after_join_failure',
|
|
22
|
+
RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE: 'js_sdk_receive_transcription_after_join_failure',
|
|
21
23
|
|
|
22
24
|
DISCONNECT_DUE_TO_INACTIVITY: 'js_sdk_disconnect_due_to_inactivity',
|
|
23
25
|
MEETING_MEDIA_INACTIVE: 'js_sdk_meeting_media_inactive',
|
|
@@ -13,6 +13,7 @@ import {Credentials, Token, WebexPlugin} from '@webex/webex-core';
|
|
|
13
13
|
import Support from '@webex/internal-plugin-support';
|
|
14
14
|
import MockWebex from '@webex/test-helper-mock-webex';
|
|
15
15
|
import StaticConfig from '@webex/plugin-meetings/src/common/config';
|
|
16
|
+
import { Defer } from '@webex/common';
|
|
16
17
|
import {
|
|
17
18
|
FLOOR_ACTION,
|
|
18
19
|
SHARE_STATUS,
|
|
@@ -96,6 +97,7 @@ import {
|
|
|
96
97
|
} from '../../../../src/meeting-info/meeting-info-v2';
|
|
97
98
|
import {ANNOTATION_POLICY} from '../../../../src/annotation/constants';
|
|
98
99
|
|
|
100
|
+
|
|
99
101
|
// Non-stubbed function
|
|
100
102
|
const {getDisplayMedia} = Media;
|
|
101
103
|
|
|
@@ -818,27 +820,6 @@ describe('plugin-meetings', () => {
|
|
|
818
820
|
assert.equal(result, joinMeetingResult);
|
|
819
821
|
});
|
|
820
822
|
|
|
821
|
-
it('should call updateLLMConnection upon joining if config value is set', async () => {
|
|
822
|
-
meeting.config.enableAutomaticLLM = true;
|
|
823
|
-
await meeting.join();
|
|
824
|
-
|
|
825
|
-
assert.calledOnce(meeting.updateLLMConnection);
|
|
826
|
-
});
|
|
827
|
-
|
|
828
|
-
it('should not call updateLLMConnection upon joining if config value is not set', async () => {
|
|
829
|
-
await meeting.join();
|
|
830
|
-
|
|
831
|
-
assert.notCalled(meeting.updateLLMConnection);
|
|
832
|
-
});
|
|
833
|
-
|
|
834
|
-
it('should invoke `receiveTranscription()` if receiveTranscription is set to true', async () => {
|
|
835
|
-
meeting.isTranscriptionSupported = sinon.stub().returns(true);
|
|
836
|
-
meeting.receiveTranscription = sinon.stub().returns(Promise.resolve());
|
|
837
|
-
|
|
838
|
-
await meeting.join({receiveTranscription: true});
|
|
839
|
-
assert.calledOnce(meeting.receiveTranscription);
|
|
840
|
-
});
|
|
841
|
-
|
|
842
823
|
it('should not create new correlation ID on join immediately after create', async () => {
|
|
843
824
|
await meeting.join();
|
|
844
825
|
sinon.assert.notCalled(setCorrelationIdSpy);
|
|
@@ -937,6 +918,125 @@ describe('plugin-meetings', () => {
|
|
|
937
918
|
});
|
|
938
919
|
});
|
|
939
920
|
});
|
|
921
|
+
describe('lmm and transcription decoupling', () => {
|
|
922
|
+
beforeEach(() => {
|
|
923
|
+
sandbox.stub(MeetingUtil, 'joinMeeting').returns(Promise.resolve(joinMeetingResult));
|
|
924
|
+
});
|
|
925
|
+
|
|
926
|
+
describe('llm', () => {
|
|
927
|
+
it('makes sure that join does not wait for update llm connection promise', async () => {
|
|
928
|
+
const defer = new Defer();
|
|
929
|
+
|
|
930
|
+
meeting.config.enableAutomaticLLM = true;
|
|
931
|
+
meeting.updateLLMConnection = sinon.stub().returns(defer.promise);
|
|
932
|
+
|
|
933
|
+
const result = await meeting.join();
|
|
934
|
+
|
|
935
|
+
assert.equal(result, joinMeetingResult);
|
|
936
|
+
|
|
937
|
+
defer.resolve();
|
|
938
|
+
});
|
|
939
|
+
|
|
940
|
+
it('should call updateLLMConnection as part of joining if config value is set', async () => {
|
|
941
|
+
meeting.config.enableAutomaticLLM = true;
|
|
942
|
+
meeting.updateLLMConnection = sinon.stub().resolves();
|
|
943
|
+
|
|
944
|
+
await meeting.join();
|
|
945
|
+
|
|
946
|
+
assert.calledOnce(meeting.updateLLMConnection);
|
|
947
|
+
});
|
|
948
|
+
|
|
949
|
+
it('should not call updateLLMConnection as part of joining if config value is not set', async () => {
|
|
950
|
+
meeting.updateLLMConnection = sinon.stub().resolves();
|
|
951
|
+
await meeting.join();
|
|
952
|
+
|
|
953
|
+
assert.notCalled(meeting.updateLLMConnection);
|
|
954
|
+
});
|
|
955
|
+
|
|
956
|
+
it('handles catching error of llm connection later, and join still resolves', async () => {
|
|
957
|
+
const defer = new Defer();
|
|
958
|
+
|
|
959
|
+
meeting.config.enableAutomaticLLM = true;
|
|
960
|
+
meeting.updateLLMConnection = sinon.stub().returns(defer.promise);
|
|
961
|
+
|
|
962
|
+
const result = await meeting.join();
|
|
963
|
+
|
|
964
|
+
assert.equal(result, joinMeetingResult);
|
|
965
|
+
|
|
966
|
+
defer.reject(new Error("bad day", {cause: 'bad weather'}));
|
|
967
|
+
|
|
968
|
+
try {
|
|
969
|
+
await defer.promise;
|
|
970
|
+
} catch (err) {
|
|
971
|
+
|
|
972
|
+
assert.deepEqual(Metrics.sendBehavioralMetric.getCalls()[0].args, [
|
|
973
|
+
BEHAVIORAL_METRICS.JOIN_SUCCESS, {correlation_id: meeting.correlationId}
|
|
974
|
+
])
|
|
975
|
+
|
|
976
|
+
assert.deepEqual(Metrics.sendBehavioralMetric.getCalls()[1].args, [
|
|
977
|
+
BEHAVIORAL_METRICS.LLM_CONNECTION_AFTER_JOIN_FAILURE, {
|
|
978
|
+
correlation_id: meeting.correlationId,
|
|
979
|
+
reason: err.message,
|
|
980
|
+
stack: err.stack,
|
|
981
|
+
}
|
|
982
|
+
]);
|
|
983
|
+
}
|
|
984
|
+
});
|
|
985
|
+
});
|
|
986
|
+
|
|
987
|
+
describe('receive transcription', () => {
|
|
988
|
+
it('should invoke `receiveTranscription()` if receiveTranscription is set to true', async () => {
|
|
989
|
+
meeting.isTranscriptionSupported = sinon.stub().returns(true);
|
|
990
|
+
meeting.receiveTranscription = sinon.stub().returns(Promise.resolve());
|
|
991
|
+
|
|
992
|
+
await meeting.join({receiveTranscription: true});
|
|
993
|
+
assert.calledOnce(meeting.receiveTranscription);
|
|
994
|
+
});
|
|
995
|
+
|
|
996
|
+
it('make sure that join does not wait for setting up receive transcriptions', async () => {
|
|
997
|
+
const defer = new Defer();
|
|
998
|
+
|
|
999
|
+
meeting.isTranscriptionSupported = sinon.stub().returns(true);
|
|
1000
|
+
meeting.receiveTranscription = sinon.stub().returns(defer.promise);
|
|
1001
|
+
|
|
1002
|
+
const result = await meeting.join({receiveTranscription: true});
|
|
1003
|
+
|
|
1004
|
+
assert.equal(result, joinMeetingResult);
|
|
1005
|
+
|
|
1006
|
+
defer.resolve();
|
|
1007
|
+
});
|
|
1008
|
+
|
|
1009
|
+
it('handles catching error of receiveTranscription(), and join still resolves', async () => {
|
|
1010
|
+
const defer = new Defer();
|
|
1011
|
+
|
|
1012
|
+
meeting.isTranscriptionSupported = sinon.stub().returns(true);
|
|
1013
|
+
meeting.receiveTranscription = sinon.stub().returns(defer.promise);
|
|
1014
|
+
|
|
1015
|
+
const result = await meeting.join({receiveTranscription: true});
|
|
1016
|
+
|
|
1017
|
+
assert.equal(result, joinMeetingResult);
|
|
1018
|
+
|
|
1019
|
+
defer.reject(new Error("bad day", {cause: 'bad weather'}));
|
|
1020
|
+
|
|
1021
|
+
try {
|
|
1022
|
+
await defer.promise;
|
|
1023
|
+
} catch (err) {
|
|
1024
|
+
console.log(Metrics.sendBehavioralMetric.getCalls())
|
|
1025
|
+
assert.deepEqual(Metrics.sendBehavioralMetric.getCalls()[0].args, [
|
|
1026
|
+
BEHAVIORAL_METRICS.JOIN_SUCCESS, {correlation_id: meeting.correlationId}
|
|
1027
|
+
])
|
|
1028
|
+
|
|
1029
|
+
assert.deepEqual(Metrics.sendBehavioralMetric.getCalls()[1].args, [
|
|
1030
|
+
BEHAVIORAL_METRICS.RECEIVE_TRANSCRIPTION_AFTER_JOIN_FAILURE, {
|
|
1031
|
+
correlation_id: meeting.correlationId,
|
|
1032
|
+
reason: err.message,
|
|
1033
|
+
stack: err.stack,
|
|
1034
|
+
}
|
|
1035
|
+
]);
|
|
1036
|
+
}
|
|
1037
|
+
})
|
|
1038
|
+
})
|
|
1039
|
+
})
|
|
940
1040
|
});
|
|
941
1041
|
|
|
942
1042
|
describe('#addMedia', () => {
|
|
@@ -5719,9 +5819,9 @@ describe('plugin-meetings', () => {
|
|
|
5719
5819
|
assert.notOk(meeting.permissionTokenPayload);
|
|
5720
5820
|
|
|
5721
5821
|
const permissionTokenPayloadData = {permission: {userPolicies: {a: true}}, exp: '1234'};
|
|
5722
|
-
|
|
5822
|
+
|
|
5723
5823
|
const jwtDecodeStub = sinon.stub(jwt, 'decode').returns(permissionTokenPayloadData);
|
|
5724
|
-
|
|
5824
|
+
|
|
5725
5825
|
meeting.setPermissionTokenPayload();
|
|
5726
5826
|
|
|
5727
5827
|
assert.calledOnce(jwtDecodeStub);
|
|
@@ -5818,7 +5918,7 @@ describe('plugin-meetings', () => {
|
|
|
5818
5918
|
assert.equal(meeting.owner, expectedInfoToParse.owner);
|
|
5819
5919
|
assert.equal(meeting.permissionToken, expectedInfoToParse.permissionToken);
|
|
5820
5920
|
assert.deepEqual(meeting.selfUserPolicies, expectedInfoToParse.selfUserPolicies);
|
|
5821
|
-
|
|
5921
|
+
|
|
5822
5922
|
if(expectedInfoToParse.permissionTokenPayload) {
|
|
5823
5923
|
assert.deepEqual(meeting.permissionTokenPayload, expectedInfoToParse.permissionTokenPayload);
|
|
5824
5924
|
}
|
|
@@ -5837,9 +5937,9 @@ describe('plugin-meetings', () => {
|
|
|
5837
5937
|
}
|
|
5838
5938
|
};
|
|
5839
5939
|
|
|
5840
|
-
// generated permissionToken with secret `secret` and
|
|
5940
|
+
// generated permissionToken with secret `secret` and
|
|
5841
5941
|
// value `JSON.stringify(expectedPermissionTokenPayload)`
|
|
5842
|
-
const permissionToken =
|
|
5942
|
+
const permissionToken =
|
|
5843
5943
|
'eyJhbGciOiJIUzI1NiJ9.eyJleHAiOiIxMjM0NTYiLCJwZXJtaXNzaW9uIjp7InVzZXJQb2xpY2llcyI6eyJhIjp0cnVlfX19.wkTk0Hp8sUlq2wi2nP4-Ym4Xb7aEUHzyXA1kzk6f0V0';
|
|
5844
5944
|
|
|
5845
5945
|
const FAKE_MEETING_INFO = {
|
|
@@ -8189,20 +8289,20 @@ describe('plugin-meetings', () => {
|
|
|
8189
8289
|
});
|
|
8190
8290
|
|
|
8191
8291
|
afterEach(() => {
|
|
8192
|
-
clock.restore();
|
|
8292
|
+
clock.restore();
|
|
8193
8293
|
})
|
|
8194
8294
|
|
|
8195
|
-
it('should return undefined if exp is undefined', () => {
|
|
8295
|
+
it('should return undefined if exp is undefined', () => {
|
|
8196
8296
|
assert.equal(meeting.getPermissionTokenTimeLeftInSec(), undefined)
|
|
8197
8297
|
});
|
|
8198
8298
|
|
|
8199
|
-
it('should return the expected positive exp', () => {
|
|
8299
|
+
it('should return the expected positive exp', () => {
|
|
8200
8300
|
// set permission token as now + 1 sec
|
|
8201
8301
|
meeting.permissionTokenPayload = {exp: (now + 1000).toString()};
|
|
8202
8302
|
assert.equal(meeting.getPermissionTokenTimeLeftInSec(), 1);
|
|
8203
8303
|
});
|
|
8204
8304
|
|
|
8205
|
-
it('should return the expected negative exp', () => {
|
|
8305
|
+
it('should return the expected negative exp', () => {
|
|
8206
8306
|
// set permission token as now - 1 sec
|
|
8207
8307
|
meeting.permissionTokenPayload = {exp: (now - 1000).toString()};
|
|
8208
8308
|
assert.equal(meeting.getPermissionTokenTimeLeftInSec(), -1);
|