@webex/plugin-meetings 3.8.0-next.26 → 3.8.0-next.28

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.
@@ -1 +1 @@
1
- {"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","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_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","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","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","VERIFY_REGISTRATION_ID_SUCCESS","VERIFY_REGISTRATION_ID_ERROR","JOIN_FORBIDDEN_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 MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\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 ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\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_SUCCESS: 'js_sdk_meeting_share_success',\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 MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\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 TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',\n VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":";;;;;;;AAAA;;AAEA,IAAMA,kBAAkB,GAAAC,OAAA,CAAAC,OAAA,GAAG;EACzBC,4BAA4B,EAAE,qCAAqC;EACnEC,6BAA6B,EAAE,sCAAsC;EACrEC,0BAA0B,EAAE,4BAA4B;EACxDC,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,eAAe,EAAE,wBAAwB;EACzCC,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,8BAA8B;EACrDC,qBAAqB,EAAE,+BAA+B;EACtDC,sCAAsC,EAAE,gDAAgD;EACxFC,qCAAqC,EAAE,+CAA+C;EACtFC,qCAAqC,EAAE,8CAA8C;EACrFC,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,uCAAuC;EACvEC,sBAAsB,EAAE,+BAA+B;EACvDC,4BAA4B,EAAE,qCAAqC;EACnEC,0BAA0B,EAAE,mCAAmC;EAC/DC,0BAA0B,EAAE,mCAAmC;EAC/DC,sBAAsB,EAAE,+BAA+B;EACvDC,kBAAkB,EAAE,2BAA2B;EAC/CC,mBAAmB,EAAE,4BAA4B;EACjDC,kBAAkB,EAAE,2BAA2B;EAC/CC,8BAA8B,EAAE,sCAAsC;EACtEC,4BAA4B,EAAE,oCAAoC;EAClEC,oBAAoB,EAAE;AACxB,CAAC"}
1
+ {"version":3,"names":["BEHAVIORAL_METRICS","exports","default","MEETINGS_REGISTRATION_FAILED","MEETINGS_REGISTRATION_SUCCESS","MEETINGS_REGISTRATION_STEP","MERCURY_CONNECTION_FAILURE","MERCURY_CONNECTION_RESTORED","JOIN_SUCCESS","JOIN_FAILURE","ADD_MEDIA_SUCCESS","ADD_MEDIA_FAILURE","ADD_MEDIA_RETRY","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_SUCCESS","MEETING_SHARE_FAILURE","MEETING_START_WHITEBOARD_SHARE_FAILURE","MEETING_STOP_WHITEBOARD_SHARE_FAILURE","MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE","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","ENABLE_STATIC_METTING_LINK_SUCCESS","ENABLE_STATIC_METTING_LINK_FAILURE","MEETING_IS_IN_PROGRESS_ERROR","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","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","TURN_DISCOVERY_LATENCY","ROAP_OFFER_TO_ANSWER_LATENCY","ROAP_HTTP_RESPONSE_MISSING","TURN_DISCOVERY_REQUIRES_OK","REACHABILITY_COMPLETED","JOIN_WEBINAR_ERROR","GUEST_ENTERED_LOBBY","GUEST_EXITED_LOBBY","VERIFY_REGISTRATION_ID_SUCCESS","VERIFY_REGISTRATION_ID_ERROR","JOIN_FORBIDDEN_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 MEETINGS_REGISTRATION_STEP: 'meetings_registration_step',\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 ADD_MEDIA_RETRY: 'js_sdk_add_media_retry',\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_SUCCESS: 'js_sdk_meeting_share_success',\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 MEETING_SHARE_VIDEO_MUTE_STATE_CHANGE: 'js_sdk_meeting_share_video_mute_state_change',\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 ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',\n ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',\n MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',\n STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',\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 TURN_DISCOVERY_LATENCY: 'js_sdk_turn_discovery_latency',\n ROAP_OFFER_TO_ANSWER_LATENCY: 'js_sdk_roap_offer_to_answer_latency',\n ROAP_HTTP_RESPONSE_MISSING: 'js_sdk_roap_http_response_missing',\n TURN_DISCOVERY_REQUIRES_OK: 'js_sdk_turn_discovery_requires_ok',\n REACHABILITY_COMPLETED: 'js_sdk_reachability_completed',\n JOIN_WEBINAR_ERROR: 'js_sdk_join_webinar_error',\n GUEST_ENTERED_LOBBY: 'js_sdk_guest_entered_lobby',\n GUEST_EXITED_LOBBY: 'js_sdk_guest_exited_lobby',\n VERIFY_REGISTRATION_ID_SUCCESS: 'js_sdk_verify_registrationId_success',\n VERIFY_REGISTRATION_ID_ERROR: 'js_sdk_verify_registrationId_error',\n JOIN_FORBIDDEN_ERROR: 'js_sdk_join_forbidden_error',\n};\n\nexport {BEHAVIORAL_METRICS as default};\n"],"mappings":"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"}
@@ -99,6 +99,37 @@ export declare class MeetingInfoV2JoinForbiddenError extends Error {
99
99
  */
100
100
  constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
101
101
  }
102
+ /**
103
+ * Error enabling/disabling static meeting link
104
+ */
105
+ export declare class MeetingInfoV2MeetingIsInProgressError extends Error {
106
+ sdkMessage: any;
107
+ wbxAppApiCode: any;
108
+ body: any;
109
+ /**
110
+ *
111
+ * @constructor
112
+ * @param {Number} [wbxAppApiErrorCode]
113
+ * @param {String} [message]
114
+ * @param {Boolean} [enable]
115
+ */
116
+ constructor(wbxAppApiErrorCode?: number, message?: string, enable?: boolean);
117
+ }
118
+ /**
119
+ * Error enabling/disabling static meeting link
120
+ */
121
+ export declare class MeetingInfoV2StaticMeetingLinkAlreadyExists extends Error {
122
+ sdkMessage: any;
123
+ wbxAppApiCode: any;
124
+ body: any;
125
+ /**
126
+ *
127
+ * @constructor
128
+ * @param {Number} [wbxAppApiErrorCode]
129
+ * @param {String} [message]
130
+ */
131
+ constructor(wbxAppApiErrorCode?: number, message?: string);
132
+ }
102
133
  /**
103
134
  * @class MeetingInfo
104
135
  */
@@ -136,6 +167,16 @@ export default class MeetingInfoV2 {
136
167
  * @returns {void}
137
168
  */
138
169
  handleForbiddenError: (err: any) => void;
170
+ /**
171
+ * helper function to either create an adhoc space meeting or enable static meeting link
172
+ * @param {String} conversationUrl conversationUrl to start adhoc meeting on
173
+ * @param {String} installedOrgID org ID of user's machine
174
+ * @param {Boolean} enableStaticMeetingLink whether or not to enable static meeting link
175
+ * @returns {Promise} returns a meeting info object
176
+ * @public
177
+ * @memberof MeetingInfo
178
+ */
179
+ createAdhocSpaceMeetingOrEnableStaticMeetingLink(conversationUrl: string, installedOrgID?: string, enableStaticMeetingLink?: boolean): Promise<any>;
139
180
  /**
140
181
  * Creates adhoc space meetings for a space by fetching the conversation infomation
141
182
  * @param {String} conversationUrl conversationUrl to start adhoc meeting on
@@ -145,6 +186,14 @@ export default class MeetingInfoV2 {
145
186
  * @memberof MeetingInfo
146
187
  */
147
188
  createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string): Promise<any>;
189
+ /**
190
+ * Enables static meeting link
191
+ * @param {String} conversationUrl conversationUrl that's required to enable static meeting link
192
+ * @returns {Promise} returns a meeting info object
193
+ * @public
194
+ * @memberof MeetingInfo
195
+ */
196
+ enableStaticMeetingLink(conversationUrl: string): Promise<any>;
148
197
  /**
149
198
  * Fetches meeting info from the server
150
199
  * @param {String} destination one of many different types of destinations to look up info for
@@ -6,7 +6,7 @@ import { DeviceRegistrationOptions } from '@webex/internal-plugin-device';
6
6
  import * as mediaHelpersModule from '@webex/media-helpers';
7
7
  import 'webrtc-adapter';
8
8
  import { DESTINATION_TYPE } from '../constants';
9
- import { CallStateForMetrics } from '../meeting';
9
+ import Meeting, { CallStateForMetrics } from '../meeting';
10
10
  import Reachability from '../reachability';
11
11
  import { INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus } from './meetings.types';
12
12
  /**
@@ -368,6 +368,16 @@ export default class Meetings extends WebexPlugin {
368
368
  * @memberof Meetings
369
369
  */
370
370
  create(destination: string, type?: DESTINATION_TYPE, useRandomDelayForInfo?: boolean, infoExtraParams?: {}, correlationId?: string, failOnMissingMeetingInfo?: boolean, callStateForMetrics?: CallStateForMetrics, meetingInfo?: any, meetingLookupUrl?: any, sessionCorrelationId?: string): any;
371
+ /**
372
+ * Enable static meeting links for given conversation url.
373
+ *
374
+ *
375
+ * @param {string} conversationUrl - url for conversation
376
+ * @returns {Promise<Meeting>} A new Meeting.
377
+ * @public
378
+ * @memberof Meetings
379
+ */
380
+ enableStaticMeetingLink(conversationUrl: string): Promise<Meeting>;
371
381
  /**
372
382
  * Create meeting
373
383
  *
@@ -45,6 +45,10 @@ declare const BEHAVIORAL_METRICS: {
45
45
  UPLOAD_LOGS_FAILURE: string;
46
46
  UPLOAD_LOGS_SUCCESS: string;
47
47
  RECEIVE_TRANSCRIPTION_FAILURE: string;
48
+ ENABLE_STATIC_METTING_LINK_SUCCESS: string;
49
+ ENABLE_STATIC_METTING_LINK_FAILURE: string;
50
+ MEETING_IS_IN_PROGRESS_ERROR: string;
51
+ STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: string;
48
52
  FETCH_MEETING_INFO_V1_SUCCESS: string;
49
53
  FETCH_MEETING_INFO_V1_FAILURE: string;
50
54
  ADHOC_MEETING_SUCCESS: string;
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.0-next.26"
461
+ version: "3.8.0-next.28"
462
462
  });
463
463
  var _default = exports.default = Webinar;
464
464
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -43,7 +43,7 @@
43
43
  "@webex/eslint-config-legacy": "0.0.0",
44
44
  "@webex/jest-config-legacy": "0.0.0",
45
45
  "@webex/legacy-tools": "0.0.0",
46
- "@webex/plugin-meetings": "3.8.0-next.26",
46
+ "@webex/plugin-meetings": "3.8.0-next.28",
47
47
  "@webex/plugin-rooms": "3.8.0-next.13",
48
48
  "@webex/test-helper-chai": "3.8.0-next.11",
49
49
  "@webex/test-helper-mocha": "3.8.0-next.11",
@@ -71,7 +71,7 @@
71
71
  "@webex/internal-plugin-metrics": "3.8.0-next.11",
72
72
  "@webex/internal-plugin-support": "3.8.0-next.13",
73
73
  "@webex/internal-plugin-user": "3.8.0-next.11",
74
- "@webex/internal-plugin-voicea": "3.8.0-next.26",
74
+ "@webex/internal-plugin-voicea": "3.8.0-next.28",
75
75
  "@webex/media-helpers": "3.8.0-next.12",
76
76
  "@webex/plugin-people": "3.8.0-next.13",
77
77
  "@webex/plugin-rooms": "3.8.0-next.13",
@@ -92,5 +92,5 @@
92
92
  "//": [
93
93
  "TODO: upgrade jwt-decode when moving to node 18"
94
94
  ],
95
- "version": "3.8.0-next.26"
95
+ "version": "3.8.0-next.28"
96
96
  }
@@ -6205,10 +6205,7 @@ export default class Meeting extends StatelessWebexPlugin {
6205
6205
  },
6206
6206
  options: {meetingId: this.id, rawError: error},
6207
6207
  });
6208
- } else if (
6209
- error instanceof Errors.SdpOfferHandlingError ||
6210
- error instanceof Errors.SdpAnswerHandlingError
6211
- ) {
6208
+ } else if (error instanceof Errors.SdpOfferHandlingError) {
6212
6209
  sendBehavioralMetric(BEHAVIORAL_METRICS.PEERCONNECTION_FAILURE, error, this.correlationId);
6213
6210
 
6214
6211
  // @ts-ignore
@@ -6219,6 +6216,24 @@ export default class Meeting extends StatelessWebexPlugin {
6219
6216
  },
6220
6217
  options: {meetingId: this.id, rawError: error},
6221
6218
  });
6219
+ } else if (error instanceof Errors.SdpAnswerHandlingError) {
6220
+ sendBehavioralMetric(BEHAVIORAL_METRICS.PEERCONNECTION_FAILURE, error, this.correlationId);
6221
+
6222
+ // @ts-ignore
6223
+ this.webex.internal.newMetrics.submitClientEvent({
6224
+ name: 'client.media-engine.remote-sdp-received',
6225
+ payload: {
6226
+ canProceed: false,
6227
+ },
6228
+ options: {meetingId: this.id, rawError: error},
6229
+ });
6230
+
6231
+ if (this.deferSDPAnswer) {
6232
+ clearTimeout(this.sdpResponseTimer);
6233
+ this.sdpResponseTimer = undefined;
6234
+
6235
+ this.deferSDPAnswer.reject();
6236
+ }
6222
6237
  } else if (error instanceof Errors.SdpError) {
6223
6238
  // this covers also the case of Errors.IceGatheringError which extends Errors.SdpError
6224
6239
  sendBehavioralMetric(BEHAVIORAL_METRICS.INVALID_ICE_CANDIDATE, error, this.correlationId);
@@ -16,6 +16,8 @@ const CAPTCHA_ERROR_DEFAULT_MESSAGE =
16
16
  'Captcha required. Call fetchMeetingInfo() with captchaInfo argument';
17
17
  const ADHOC_MEETING_DEFAULT_ERROR =
18
18
  'Failed starting the adhoc meeting, Please contact support team ';
19
+ const MEETING_IS_IN_PROGRESS_MESSAGE = 'Meeting is in progress';
20
+ const STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE = 'Static meeting link already exists';
19
21
  const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
20
22
  const CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES = [423007];
21
23
 
@@ -193,6 +195,55 @@ export class MeetingInfoV2JoinForbiddenError extends Error {
193
195
  }
194
196
  }
195
197
 
198
+ /**
199
+ * Error enabling/disabling static meeting link
200
+ */
201
+ export class MeetingInfoV2MeetingIsInProgressError extends Error {
202
+ sdkMessage: any;
203
+ wbxAppApiCode: any;
204
+ body: any;
205
+ /**
206
+ *
207
+ * @constructor
208
+ * @param {Number} [wbxAppApiErrorCode]
209
+ * @param {String} [message]
210
+ * @param {Boolean} [enable]
211
+ */
212
+ constructor(
213
+ wbxAppApiErrorCode?: number,
214
+ message = MEETING_IS_IN_PROGRESS_MESSAGE,
215
+ enable = false
216
+ ) {
217
+ super(`${message}, code=${wbxAppApiErrorCode}, enable=${enable}`);
218
+ this.name = 'MeetingInfoV2MeetingIsInProgressError';
219
+ this.sdkMessage = message;
220
+ this.stack = new Error().stack;
221
+ this.wbxAppApiCode = wbxAppApiErrorCode;
222
+ }
223
+ }
224
+
225
+ /**
226
+ * Error enabling/disabling static meeting link
227
+ */
228
+ export class MeetingInfoV2StaticMeetingLinkAlreadyExists extends Error {
229
+ sdkMessage: any;
230
+ wbxAppApiCode: any;
231
+ body: any;
232
+ /**
233
+ *
234
+ * @constructor
235
+ * @param {Number} [wbxAppApiErrorCode]
236
+ * @param {String} [message]
237
+ */
238
+ constructor(wbxAppApiErrorCode?: number, message = STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE) {
239
+ super(`${message}, code=${wbxAppApiErrorCode}`);
240
+ this.name = 'MeetingInfoV2StaticMeetingLinkAlreadyExists';
241
+ this.sdkMessage = message;
242
+ this.stack = new Error().stack;
243
+ this.wbxAppApiCode = wbxAppApiErrorCode;
244
+ }
245
+ }
246
+
196
247
  /**
197
248
  * @class MeetingInfo
198
249
  */
@@ -293,17 +344,20 @@ export default class MeetingInfoV2 {
293
344
  };
294
345
 
295
346
  /**
296
- * Creates adhoc space meetings for a space by fetching the conversation infomation
347
+ * helper function to either create an adhoc space meeting or enable static meeting link
297
348
  * @param {String} conversationUrl conversationUrl to start adhoc meeting on
298
349
  * @param {String} installedOrgID org ID of user's machine
350
+ * @param {Boolean} enableStaticMeetingLink whether or not to enable static meeting link
299
351
  * @returns {Promise} returns a meeting info object
300
352
  * @public
301
353
  * @memberof MeetingInfo
302
354
  */
303
- async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {
304
- if (!this.webex.meetings.preferredWebexSite) {
305
- throw Error('No preferred webex site found');
306
- }
355
+ async createAdhocSpaceMeetingOrEnableStaticMeetingLink(
356
+ conversationUrl: string,
357
+ installedOrgID?: string,
358
+ // setting this to true enables static meeting link
359
+ enableStaticMeetingLink = false
360
+ ) {
307
361
  const getInvitees = (particpants = []) => {
308
362
  const invitees = [];
309
363
 
@@ -329,6 +383,7 @@ export default class MeetingInfoV2 {
329
383
  kroUrl: conversation.kmsResourceObjectUrl,
330
384
  invitees: getInvitees(conversation.participants?.items),
331
385
  installedOrgID,
386
+ schedule: enableStaticMeetingLink,
332
387
  };
333
388
 
334
389
  if (installedOrgID) {
@@ -344,7 +399,23 @@ export default class MeetingInfoV2 {
344
399
  uri,
345
400
  body,
346
401
  });
347
- })
402
+ });
403
+ }
404
+
405
+ /**
406
+ * Creates adhoc space meetings for a space by fetching the conversation infomation
407
+ * @param {String} conversationUrl conversationUrl to start adhoc meeting on
408
+ * @param {String} installedOrgID org ID of user's machine
409
+ * @returns {Promise} returns a meeting info object
410
+ * @public
411
+ * @memberof MeetingInfo
412
+ */
413
+ async createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string) {
414
+ if (!this.webex.meetings.preferredWebexSite) {
415
+ throw Error('No preferred webex site found');
416
+ }
417
+
418
+ return this.createAdhocSpaceMeetingOrEnableStaticMeetingLink(conversationUrl, installedOrgID)
348
419
  .then((requestResult) => {
349
420
  Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ADHOC_MEETING_SUCCESS);
350
421
 
@@ -363,6 +434,55 @@ export default class MeetingInfoV2 {
363
434
  });
364
435
  }
365
436
 
437
+ /**
438
+ * Enables static meeting link
439
+ * @param {String} conversationUrl conversationUrl that's required to enable static meeting link
440
+ * @returns {Promise} returns a meeting info object
441
+ * @public
442
+ * @memberof MeetingInfo
443
+ */
444
+ async enableStaticMeetingLink(conversationUrl: string) {
445
+ if (!this.webex.meetings.preferredWebexSite) {
446
+ throw Error('No preferred webex site found');
447
+ }
448
+
449
+ return this.createAdhocSpaceMeetingOrEnableStaticMeetingLink(conversationUrl, undefined, true)
450
+ .then((requestResult) => {
451
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_STATIC_METTING_LINK_SUCCESS);
452
+
453
+ return requestResult;
454
+ })
455
+ .catch((err) => {
456
+ if (err?.statusCode === 403) {
457
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_IS_IN_PROGRESS_ERROR, {
458
+ reason: err.message,
459
+ stack: err.stack,
460
+ });
461
+
462
+ throw new MeetingInfoV2MeetingIsInProgressError(err.body?.code, err.body?.message, true);
463
+ }
464
+
465
+ if (err?.statusCode === 409) {
466
+ Metrics.sendBehavioralMetric(
467
+ BEHAVIORAL_METRICS.STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR,
468
+ {
469
+ reason: err.message,
470
+ stack: err.stack,
471
+ }
472
+ );
473
+
474
+ throw new MeetingInfoV2StaticMeetingLinkAlreadyExists(err.body?.code, err.body?.message);
475
+ }
476
+
477
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.ENABLE_STATIC_METTING_LINK_FAILURE, {
478
+ reason: err.message,
479
+ stack: err.stack,
480
+ });
481
+
482
+ throw err;
483
+ });
484
+ }
485
+
366
486
  /**
367
487
  * Fetches meeting info from the server
368
488
  * @param {String} destination one of many different types of destinations to look up info for
@@ -1369,6 +1369,30 @@ export default class Meetings extends WebexPlugin {
1369
1369
  );
1370
1370
  }
1371
1371
 
1372
+ /**
1373
+ * Enable static meeting links for given conversation url.
1374
+ *
1375
+ *
1376
+ * @param {string} conversationUrl - url for conversation
1377
+ * @returns {Promise<Meeting>} A new Meeting.
1378
+ * @public
1379
+ * @memberof Meetings
1380
+ */
1381
+ public enableStaticMeetingLink(conversationUrl: string): Promise<Meeting> {
1382
+ return (
1383
+ this.meetingInfo
1384
+ .enableStaticMeetingLink(conversationUrl)
1385
+ // Catch a failure to enable static meeting link.
1386
+ .catch((error) => {
1387
+ LoggerProxy.logger.error(
1388
+ `Meetings:index#enableStaticMeetingLink --> ERROR, unable to enable static meeting link: ${error.message}`
1389
+ );
1390
+
1391
+ return Promise.reject(error);
1392
+ })
1393
+ );
1394
+ }
1395
+
1372
1396
  /**
1373
1397
  * Create meeting
1374
1398
  *
@@ -48,6 +48,10 @@ const BEHAVIORAL_METRICS = {
48
48
  UPLOAD_LOGS_FAILURE: 'js_sdk_upload_logs_failure',
49
49
  UPLOAD_LOGS_SUCCESS: 'js_sdk_upload_logs_success',
50
50
  RECEIVE_TRANSCRIPTION_FAILURE: 'js_sdk_receive_transcription_failure',
51
+ ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',
52
+ ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',
53
+ MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',
54
+ STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',
51
55
  FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',
52
56
  FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',
53
57
  ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',
@@ -8614,13 +8614,19 @@ describe('plugin-meetings', () => {
8614
8614
  const fakeErrorMessage = 'test error';
8615
8615
  const fakeRootCauseName = 'root cause name';
8616
8616
  const fakeErrorName = 'test error name';
8617
+ let clock;
8617
8618
 
8618
8619
  beforeEach(() => {
8620
+ clock = sinon.useFakeTimers();
8619
8621
  meeting.setupMediaConnectionListeners();
8620
8622
  webex.internal.newMetrics.submitClientEvent.resetHistory();
8621
8623
  Metrics.sendBehavioralMetric.resetHistory();
8622
8624
  });
8623
8625
 
8626
+ afterEach(() => {
8627
+ clock.restore();
8628
+ });
8629
+
8624
8630
  const checkMetricSent = (event, error) => {
8625
8631
  assert.calledOnce(webex.internal.newMetrics.submitClientEvent);
8626
8632
  assert.calledWithMatch(webex.internal.newMetrics.submitClientEvent, {
@@ -8689,6 +8695,13 @@ describe('plugin-meetings', () => {
8689
8695
  });
8690
8696
 
8691
8697
  it('should send metrics for SdpAnswerHandlingError error', () => {
8698
+ meeting.sdpResponseTimer = '1234';
8699
+ meeting.deferSDPAnswer = {
8700
+ reject: sinon.stub(),
8701
+ };
8702
+
8703
+ const clearTimeoutSpy = sinon.spy(clock, 'clearTimeout');
8704
+
8692
8705
  const fakeError = new Errors.SdpAnswerHandlingError(fakeErrorMessage, {
8693
8706
  name: fakeErrorName,
8694
8707
  cause: {name: fakeRootCauseName},
@@ -8703,6 +8716,8 @@ describe('plugin-meetings', () => {
8703
8716
  fakeErrorMessage,
8704
8717
  fakeRootCauseName
8705
8718
  );
8719
+ assert.calledOnce(meeting.deferSDPAnswer.reject);
8720
+ assert.calledOnce(clearTimeoutSpy);
8706
8721
  });
8707
8722
 
8708
8723
  it('should send metrics for SdpError error', () => {