@webex/plugin-meetings 3.8.0-next.29 → 3.8.0-next.30

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","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","DISABLE_STATIC_MEETING_LINK_SUCCESS","DISABLE_STATIC_MEETING_LINK_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 DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',\n DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_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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"}
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","MEETING_IS_IN_PROGRESS_ERROR","STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR","FETCH_MEETING_INFO_V1_SUCCESS","FETCH_MEETING_INFO_V1_FAILURE","ENABLE_STATIC_METTING_LINK_SUCCESS","ENABLE_STATIC_METTING_LINK_FAILURE","DISABLE_STATIC_MEETING_LINK_SUCCESS","DISABLE_STATIC_MEETING_LINK_FAILURE","ADHOC_MEETING_SUCCESS","ADHOC_MEETING_FAILURE","FETCH_STATIC_MEETING_LINK_SUCCESS","FETCH_STATIC_MEETING_LINK_FAILURE","MEETING_LINK_DOES_NOT_EXIST_ERROR","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 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 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 DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',\n DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',\n ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',\n ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',\n FETCH_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_fetch_static_meeting_link_success',\n FETCH_STATIC_MEETING_LINK_FAILURE: 'js_sdk_fetch_static_meeting_link_failure',\n MEETING_LINK_DOES_NOT_EXIST_ERROR: 'js_sdk_meeting_link_does_not_exist_error',\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,21 @@ export declare class MeetingInfoV2JoinForbiddenError extends Error {
99
99
  */
100
100
  constructor(wbxAppApiErrorCode?: number, meetingInfo?: object, message?: string);
101
101
  }
102
+ /**
103
+ * Error fetching static link for a conversation when it does not exist
104
+ */
105
+ export declare class MeetingInfoV2StaticLinkDoesNotExistError extends Error {
106
+ sdkMessage: any;
107
+ wbxAppApiCode: any;
108
+ body: any;
109
+ /**
110
+ *
111
+ * @constructor
112
+ * @param {Number} [wbxAppApiErrorCode]
113
+ * @param {String} [message]
114
+ */
115
+ constructor(wbxAppApiErrorCode?: number, message?: string);
116
+ }
102
117
  /**
103
118
  * Error enabling/disabling static meeting link
104
119
  */
@@ -186,10 +201,18 @@ export default class MeetingInfoV2 {
186
201
  * @memberof MeetingInfo
187
202
  */
188
203
  createAdhocSpaceMeeting(conversationUrl: string, installedOrgID?: string): Promise<any>;
204
+ /**
205
+ * Fetches details for static meeting link
206
+ * @param {String} conversationUrl conversationUrl that's required to find static meeting link if it exists
207
+ * @returns {Promise} returns a Promise
208
+ * @public
209
+ * @memberof MeetingInfo
210
+ */
211
+ fetchStaticMeetingLink(conversationUrl: string): Promise<any>;
189
212
  /**
190
213
  * Enables static meeting link
191
214
  * @param {String} conversationUrl conversationUrl that's required to enable static meeting link
192
- * @returns {Promise} returns a meeting info object
215
+ * @returns {Promise} returns a Promise
193
216
  * @public
194
217
  * @memberof MeetingInfo
195
218
  */
@@ -197,7 +220,7 @@ export default class MeetingInfoV2 {
197
220
  /**
198
221
  * Disables static meeting link for given conversation url
199
222
  * @param {String} conversationUrl conversationUrl that's required to disable static meeting link if it exists
200
- * @returns {Promise} returns a meeting info object
223
+ * @returns {Promise} returns a Promise
201
224
  * @public
202
225
  * @memberof MeetingInfo
203
226
  */
@@ -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 Meeting, { CallStateForMetrics } from '../meeting';
9
+ import { CallStateForMetrics } from '../meeting';
10
10
  import Reachability from '../reachability';
11
11
  import { INoiseReductionEffect, IVirtualBackgroundEffect, MeetingRegistrationStatus } from './meetings.types';
12
12
  /**
@@ -348,6 +348,15 @@ export default class Meetings extends WebexPlugin {
348
348
  * @memberof Meetings
349
349
  */
350
350
  private destroy;
351
+ /**
352
+ * Fetch static meeting link for given conversation url.
353
+ *
354
+ * @param {string} conversationUrl - url for conversation
355
+ * @returns {Promise}
356
+ * @public
357
+ * @memberof Meetings
358
+ */
359
+ fetchStaticMeetingLink(conversationUrl: string): Promise<any>;
351
360
  /**
352
361
  * Create a meeting or return an existing meeting.
353
362
  *
@@ -373,21 +382,21 @@ export default class Meetings extends WebexPlugin {
373
382
  *
374
383
  *
375
384
  * @param {string} conversationUrl - url for conversation
376
- * @returns {Promise<Meeting>} A new Meeting.
385
+ * @returns {Promise}
377
386
  * @public
378
387
  * @memberof Meetings
379
388
  */
380
- enableStaticMeetingLink(conversationUrl: string): Promise<Meeting>;
389
+ enableStaticMeetingLink(conversationUrl: string): Promise<any>;
381
390
  /**
382
391
  * Disable static meeting links for given conversation url.
383
392
  *
384
393
  *
385
394
  * @param {string} conversationUrl - url for conversation
386
- * @returns {Promise<Meeting>} A new Meeting.
395
+ * @returns {Promise}
387
396
  * @public
388
397
  * @memberof Meetings
389
398
  */
390
- disableStaticMeetingLink(conversationUrl: string): Promise<Meeting>;
399
+ disableStaticMeetingLink(conversationUrl: string): Promise<any>;
391
400
  /**
392
401
  * Create meeting
393
402
  *
@@ -45,16 +45,19 @@ 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
48
  MEETING_IS_IN_PROGRESS_ERROR: string;
51
49
  STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: string;
52
50
  FETCH_MEETING_INFO_V1_SUCCESS: string;
53
51
  FETCH_MEETING_INFO_V1_FAILURE: string;
52
+ ENABLE_STATIC_METTING_LINK_SUCCESS: string;
53
+ ENABLE_STATIC_METTING_LINK_FAILURE: string;
54
54
  DISABLE_STATIC_MEETING_LINK_SUCCESS: string;
55
55
  DISABLE_STATIC_MEETING_LINK_FAILURE: string;
56
56
  ADHOC_MEETING_SUCCESS: string;
57
57
  ADHOC_MEETING_FAILURE: string;
58
+ FETCH_STATIC_MEETING_LINK_SUCCESS: string;
59
+ FETCH_STATIC_MEETING_LINK_FAILURE: string;
60
+ MEETING_LINK_DOES_NOT_EXIST_ERROR: string;
58
61
  VERIFY_PASSWORD_SUCCESS: string;
59
62
  VERIFY_PASSWORD_ERROR: string;
60
63
  VERIFY_CAPTCHA_ERROR: string;
@@ -458,7 +458,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
458
458
  }, _callee7);
459
459
  }))();
460
460
  },
461
- version: "3.8.0-next.29"
461
+ version: "3.8.0-next.30"
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.29",
46
+ "@webex/plugin-meetings": "3.8.0-next.30",
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.29",
74
+ "@webex/internal-plugin-voicea": "3.8.0-next.30",
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.29"
95
+ "version": "3.8.0-next.30"
96
96
  }
@@ -18,6 +18,7 @@ const ADHOC_MEETING_DEFAULT_ERROR =
18
18
  'Failed starting the adhoc meeting, Please contact support team ';
19
19
  const MEETING_IS_IN_PROGRESS_MESSAGE = 'Meeting is in progress';
20
20
  const STATIC_MEETING_LINK_ALREADY_EXISTS_MESSAGE = 'Static meeting link already exists';
21
+ const FETCH_STATIC_MEETING_LINK = 'Meeting link does not exists for conversation';
21
22
  const CAPTCHA_ERROR_REQUIRES_PASSWORD_CODES = [423005, 423006];
22
23
  const CAPTCHA_ERROR_REQUIRES_REGISTRATION_ID_CODES = [423007];
23
24
 
@@ -195,6 +196,28 @@ export class MeetingInfoV2JoinForbiddenError extends Error {
195
196
  }
196
197
  }
197
198
 
199
+ /**
200
+ * Error fetching static link for a conversation when it does not exist
201
+ */
202
+ export class MeetingInfoV2StaticLinkDoesNotExistError extends Error {
203
+ sdkMessage: any;
204
+ wbxAppApiCode: any;
205
+ body: any;
206
+ /**
207
+ *
208
+ * @constructor
209
+ * @param {Number} [wbxAppApiErrorCode]
210
+ * @param {String} [message]
211
+ */
212
+ constructor(wbxAppApiErrorCode?: number, message: string = FETCH_STATIC_MEETING_LINK) {
213
+ super(`${message}, code=${wbxAppApiErrorCode}`);
214
+ this.name = 'MeetingInfoV2StaticLinkDoesNotExistError';
215
+ this.sdkMessage = message;
216
+ this.stack = new Error().stack;
217
+ this.wbxAppApiCode = wbxAppApiErrorCode;
218
+ }
219
+ }
220
+
198
221
  /**
199
222
  * Error enabling/disabling static meeting link
200
223
  */
@@ -434,10 +457,59 @@ export default class MeetingInfoV2 {
434
457
  });
435
458
  }
436
459
 
460
+ /**
461
+ * Fetches details for static meeting link
462
+ * @param {String} conversationUrl conversationUrl that's required to find static meeting link if it exists
463
+ * @returns {Promise} returns a Promise
464
+ * @public
465
+ * @memberof MeetingInfo
466
+ */
467
+ async fetchStaticMeetingLink(conversationUrl: string) {
468
+ if (!this.webex.meetings.preferredWebexSite) {
469
+ throw Error('No preferred webex site found');
470
+ }
471
+
472
+ const body = {
473
+ spaceUrl: conversationUrl,
474
+ };
475
+
476
+ const uri = this.webex.meetings.preferredWebexSite
477
+ ? `https://${this.webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/query`
478
+ : '';
479
+
480
+ return this.webex
481
+ .request({
482
+ method: HTTP_VERBS.POST,
483
+ uri,
484
+ body,
485
+ })
486
+ .then((requestResult) => {
487
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_SUCCESS);
488
+
489
+ return requestResult;
490
+ })
491
+ .catch((err) => {
492
+ if (err?.statusCode === 403) {
493
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.MEETING_LINK_DOES_NOT_EXIST_ERROR, {
494
+ reason: err.message,
495
+ stack: err.stack,
496
+ });
497
+
498
+ throw new MeetingInfoV2StaticLinkDoesNotExistError(err.body?.code, err.body?.message);
499
+ }
500
+ Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_FAILURE, {
501
+ reason: err.message,
502
+ stack: err.stack,
503
+ });
504
+
505
+ throw err;
506
+ });
507
+ }
508
+
437
509
  /**
438
510
  * Enables static meeting link
439
511
  * @param {String} conversationUrl conversationUrl that's required to enable static meeting link
440
- * @returns {Promise} returns a meeting info object
512
+ * @returns {Promise} returns a Promise
441
513
  * @public
442
514
  * @memberof MeetingInfo
443
515
  */
@@ -486,7 +558,7 @@ export default class MeetingInfoV2 {
486
558
  /**
487
559
  * Disables static meeting link for given conversation url
488
560
  * @param {String} conversationUrl conversationUrl that's required to disable static meeting link if it exists
489
- * @returns {Promise} returns a meeting info object
561
+ * @returns {Promise} returns a Promise
490
562
  * @public
491
563
  * @memberof MeetingInfo
492
564
  */
@@ -1217,6 +1217,29 @@ export default class Meetings extends WebexPlugin {
1217
1217
  );
1218
1218
  }
1219
1219
 
1220
+ /**
1221
+ * Fetch static meeting link for given conversation url.
1222
+ *
1223
+ * @param {string} conversationUrl - url for conversation
1224
+ * @returns {Promise}
1225
+ * @public
1226
+ * @memberof Meetings
1227
+ */
1228
+ public fetchStaticMeetingLink(conversationUrl: string): Promise<any> {
1229
+ return (
1230
+ this.meetingInfo
1231
+ .fetchStaticMeetingLink(conversationUrl)
1232
+ // Catch a failure to fetch static meeting link.
1233
+ .catch((error) => {
1234
+ LoggerProxy.logger.error(
1235
+ `Meetings:index#fetchStaticMeetingLink --> ERROR, unable to fetch persistent meeting link: ${error.message}`
1236
+ );
1237
+
1238
+ return Promise.reject(error);
1239
+ })
1240
+ );
1241
+ }
1242
+
1220
1243
  /**
1221
1244
  * Create a meeting or return an existing meeting.
1222
1245
  *
@@ -1374,11 +1397,11 @@ export default class Meetings extends WebexPlugin {
1374
1397
  *
1375
1398
  *
1376
1399
  * @param {string} conversationUrl - url for conversation
1377
- * @returns {Promise<Meeting>} A new Meeting.
1400
+ * @returns {Promise}
1378
1401
  * @public
1379
1402
  * @memberof Meetings
1380
1403
  */
1381
- public enableStaticMeetingLink(conversationUrl: string): Promise<Meeting> {
1404
+ public enableStaticMeetingLink(conversationUrl: string): Promise<any> {
1382
1405
  return (
1383
1406
  this.meetingInfo
1384
1407
  .enableStaticMeetingLink(conversationUrl)
@@ -1398,11 +1421,11 @@ export default class Meetings extends WebexPlugin {
1398
1421
  *
1399
1422
  *
1400
1423
  * @param {string} conversationUrl - url for conversation
1401
- * @returns {Promise<Meeting>} A new Meeting.
1424
+ * @returns {Promise}
1402
1425
  * @public
1403
1426
  * @memberof Meetings
1404
1427
  */
1405
- public disableStaticMeetingLink(conversationUrl: string): Promise<Meeting> {
1428
+ public disableStaticMeetingLink(conversationUrl: string): Promise<any> {
1406
1429
  return (
1407
1430
  this.meetingInfo
1408
1431
  .disableStaticMeetingLink(conversationUrl)
@@ -48,16 +48,19 @@ 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
51
  MEETING_IS_IN_PROGRESS_ERROR: 'js_sdk_meeting_is_in_progress_error',
54
52
  STATIC_MEETING_LINK_ALREADY_EXISTS_ERROR: 'js_sdk_static_meeting_link_already_exists_error',
55
53
  FETCH_MEETING_INFO_V1_SUCCESS: 'js_sdk_fetch_meeting_info_v1_success',
56
54
  FETCH_MEETING_INFO_V1_FAILURE: 'js_sdk_fetch_meeting_info_v1_failure',
55
+ ENABLE_STATIC_METTING_LINK_SUCCESS: 'js_sdk_enable_static_meeting_link_success',
56
+ ENABLE_STATIC_METTING_LINK_FAILURE: 'js_sdk_enable_static_meeting_link_failure',
57
57
  DISABLE_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_disable_static_meeting_link_success',
58
58
  DISABLE_STATIC_MEETING_LINK_FAILURE: 'js_sdk_disable_static_meeting_link_failure',
59
59
  ADHOC_MEETING_SUCCESS: 'js_sdk_adhoc_meeting_success',
60
60
  ADHOC_MEETING_FAILURE: 'js_sdk_adhoc_meeting_failure',
61
+ FETCH_STATIC_MEETING_LINK_SUCCESS: 'js_sdk_fetch_static_meeting_link_success',
62
+ FETCH_STATIC_MEETING_LINK_FAILURE: 'js_sdk_fetch_static_meeting_link_failure',
63
+ MEETING_LINK_DOES_NOT_EXIST_ERROR: 'js_sdk_meeting_link_does_not_exist_error',
61
64
  VERIFY_PASSWORD_SUCCESS: 'js_sdk_verify_password_success',
62
65
  VERIFY_PASSWORD_ERROR: 'js_sdk_verify_password_error',
63
66
  VERIFY_CAPTCHA_ERROR: 'js_sdk_verify_captcha_error',
@@ -19,6 +19,7 @@ import MeetingInfo, {
19
19
  MeetingInfoV2JoinForbiddenError,
20
20
  MeetingInfoV2MeetingIsInProgressError,
21
21
  MeetingInfoV2StaticMeetingLinkAlreadyExists,
22
+ MeetingInfoV2StaticLinkDoesNotExistError,
22
23
  } from '@webex/plugin-meetings/src/meeting-info/meeting-info-v2';
23
24
  import MeetingInfoUtil from '@webex/plugin-meetings/src/meeting-info/utilv2';
24
25
  import Metrics from '@webex/plugin-meetings/src/metrics';
@@ -92,6 +93,87 @@ describe('plugin-meetings', () => {
92
93
  meetingInfo = new MeetingInfo(webex);
93
94
  });
94
95
 
96
+ describe('#fetchStaticMeetingLink', () => {
97
+ it('should fetch static meeting link for given conversation url', async () => {
98
+ const conversationUrl = 'conv.fakeconversationurl.com';
99
+ const body = {spaceUrl: conversationUrl};
100
+ const requestResponse = {statusCode: 200, body};
101
+ webex.request.resolves(requestResponse);
102
+ const result = await meetingInfo.fetchStaticMeetingLink(conversationUrl);
103
+
104
+ assert.calledWith(webex.request, {
105
+ method: 'POST',
106
+ uri: `https://${webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/query`,
107
+ body,
108
+ });
109
+
110
+ assert(Metrics.sendBehavioralMetric.calledOnce);
111
+ assert.calledWith(
112
+ Metrics.sendBehavioralMetric,
113
+ BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_SUCCESS
114
+ );
115
+
116
+ assert.deepEqual(result, requestResponse);
117
+ });
118
+
119
+ it('should not fetch static meeting link for given conversation url if no preferred webex site', async () => {
120
+ webex.meetings.preferredWebexSite = undefined;
121
+
122
+ const conversationUrl = 'conv.fakeconversationurl.com';
123
+ try {
124
+ await meetingInfo.fetchStaticMeetingLink(conversationUrl);
125
+
126
+ assert.calledWith(webex.request, {
127
+ method: 'POST',
128
+ uri: `https://${webex.meetings.preferredWebexSite}/wbxappapi/v2/meetings/spaceInstant/query`,
129
+ body,
130
+ });
131
+ } catch (err) {
132
+ assert.deepEqual(err.message, 'No preferred webex site found');
133
+ assert.notCalled(webex.request);
134
+ }
135
+ });
136
+
137
+ it('handles error for MeetingInfoV2StaticLinkDoesNotExistError', async () => {
138
+ const conversationUrl = 'conv.fakeconversationurl.com';
139
+ webex.request = sinon
140
+ .stub()
141
+ .rejects({stack: 'a stack', message: 'a message', statusCode: 403, body: {code: 400000}});
142
+ try {
143
+ await meetingInfo.fetchStaticMeetingLink(conversationUrl);
144
+ } catch (err) {
145
+ assert.equal(err.wbxAppApiCode, 400000);
146
+ assert.instanceOf(err, MeetingInfoV2StaticLinkDoesNotExistError);
147
+ assert.deepEqual(
148
+ err.message,
149
+ 'Meeting link does not exists for conversation, code=400000'
150
+ );
151
+ assert.calledWith(
152
+ Metrics.sendBehavioralMetric,
153
+ BEHAVIORAL_METRICS.MEETING_LINK_DOES_NOT_EXIST_ERROR,
154
+ {reason: 'a message', stack: 'a stack'}
155
+ );
156
+ }
157
+ });
158
+
159
+ it('handles generic error when fetching static link', async () => {
160
+ const conversationUrl = 'conv.fakeconversationurl.com';
161
+ webex.request = sinon
162
+ .stub()
163
+ .rejects({stack: 'a stack', message: 'a message', statusCode: 500, body: {code: 400000}});
164
+ try {
165
+ await meetingInfo.fetchStaticMeetingLink(conversationUrl);
166
+ } catch (err) {
167
+ assert(Metrics.sendBehavioralMetric.calledOnce);
168
+ assert.calledWith(
169
+ Metrics.sendBehavioralMetric,
170
+ BEHAVIORAL_METRICS.FETCH_STATIC_MEETING_LINK_FAILURE,
171
+ {reason: 'a message', stack: 'a stack'}
172
+ );
173
+ }
174
+ });
175
+ });
176
+
95
177
  describe('#enableStaticMeetingLink', () => {
96
178
  const setup = () => {
97
179
  const invitee = [];
@@ -932,6 +932,27 @@ describe('plugin-meetings', () => {
932
932
  });
933
933
  });
934
934
  });
935
+ describe('#fetchStaticMeetingLink', () => {
936
+ const conversationUrl = 'conv.fakeconversationurl.com';
937
+
938
+ afterEach(() => {
939
+ sinon.restore();
940
+ });
941
+
942
+ it('should have #fetchStaticMeetingLink', () => {
943
+ assert.exists(webex.meetings.fetchStaticMeetingLink);
944
+ });
945
+
946
+ it('should call MeetingInfo#fetchStaticMeetingLink() with proper params', () => {
947
+ webex.meetings.meetingInfo.fetchStaticMeetingLink = sinon
948
+ .stub()
949
+ .resolves(conversationUrl);
950
+
951
+ return webex.meetings.fetchStaticMeetingLink(conversationUrl).then(() => {
952
+ assert.calledWith(webex.meetings.meetingInfo.fetchStaticMeetingLink, conversationUrl);
953
+ });
954
+ });
955
+ });
935
956
  describe('#enableStaticMeetingLink', () => {
936
957
  const conversationUrl = 'conv.fakeconversationurl.com';
937
958