@webex/internal-plugin-metrics 2.60.0-next.8 → 2.60.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/batcher.js +3 -3
  2. package/dist/batcher.js.map +1 -1
  3. package/dist/call-diagnostic-events-batcher.js +60 -0
  4. package/dist/call-diagnostic-events-batcher.js.map +1 -0
  5. package/dist/client-metrics-batcher.js +3 -3
  6. package/dist/client-metrics-batcher.js.map +1 -1
  7. package/dist/config.js +9 -6
  8. package/dist/config.js.map +1 -1
  9. package/dist/index.js +2 -21
  10. package/dist/index.js.map +1 -1
  11. package/dist/metrics.js +22 -24
  12. package/dist/metrics.js.map +1 -1
  13. package/package.json +19 -24
  14. package/src/batcher.js +0 -1
  15. package/src/call-diagnostic-events-batcher.js +62 -0
  16. package/src/client-metrics-batcher.js +0 -1
  17. package/src/config.js +0 -1
  18. package/src/index.js +15 -0
  19. package/src/metrics.js +16 -17
  20. package/test/unit/spec/batcher.js +0 -2
  21. package/test/unit/spec/call-diagnostic-events-batcher.js +195 -0
  22. package/test/unit/spec/client-metrics-batcher.js +0 -2
  23. package/test/unit/spec/metrics.js +94 -65
  24. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js +0 -67
  25. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js.map +0 -1
  26. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +0 -454
  27. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +0 -1
  28. package/dist/call-diagnostic/call-diagnostic-metrics.js +0 -821
  29. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +0 -1
  30. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +0 -323
  31. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +0 -1
  32. package/dist/call-diagnostic/config.js +0 -593
  33. package/dist/call-diagnostic/config.js.map +0 -1
  34. package/dist/metrics.types.js +0 -7
  35. package/dist/metrics.types.js.map +0 -1
  36. package/dist/new-metrics.js +0 -336
  37. package/dist/new-metrics.js.map +0 -1
  38. package/dist/types/batcher.d.ts +0 -2
  39. package/dist/types/call-diagnostic/call-diagnostic-metrics-batcher.d.ts +0 -2
  40. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +0 -194
  41. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +0 -418
  42. package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +0 -96
  43. package/dist/types/call-diagnostic/config.d.ts +0 -172
  44. package/dist/types/client-metrics-batcher.d.ts +0 -2
  45. package/dist/types/config.d.ts +0 -36
  46. package/dist/types/index.d.ts +0 -13
  47. package/dist/types/metrics.d.ts +0 -3
  48. package/dist/types/metrics.types.d.ts +0 -104
  49. package/dist/types/new-metrics.d.ts +0 -139
  50. package/dist/types/utils.d.ts +0 -6
  51. package/dist/utils.js +0 -26
  52. package/dist/utils.js.map +0 -1
  53. package/src/call-diagnostic/call-diagnostic-metrics-batcher.ts +0 -75
  54. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +0 -419
  55. package/src/call-diagnostic/call-diagnostic-metrics.ts +0 -875
  56. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +0 -362
  57. package/src/call-diagnostic/config.ts +0 -666
  58. package/src/index.ts +0 -43
  59. package/src/metrics.types.ts +0 -160
  60. package/src/new-metrics.ts +0 -317
  61. package/src/utils.ts +0 -17
  62. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +0 -453
  63. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +0 -506
  64. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +0 -2078
  65. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +0 -565
  66. package/test/unit/spec/new-metrics.ts +0 -266
  67. package/test/unit/spec/utils.ts +0 -22
  68. package/tsconfig.json +0 -6
@@ -1,194 +0,0 @@
1
- import { WebexPlugin } from '@webex/webex-core';
2
- import { MetricEventNames } from '../metrics.types';
3
- /**
4
- * @description Helper class to store latencies timestamp and to calculate various latencies for CA.
5
- * @exports
6
- * @class CallDiagnosticLatencies
7
- */
8
- export default class CallDiagnosticLatencies extends WebexPlugin {
9
- latencyTimestamps: Map<MetricEventNames, number>;
10
- precomputedLatencies: Map<string, number>;
11
- private meetingId?;
12
- /**
13
- * @constructor
14
- */
15
- constructor(...args: any[]);
16
- /**
17
- * Clear timestamps
18
- */
19
- clearTimestamps(): void;
20
- /**
21
- * Associate current latencies with a meeting id
22
- * @param meetingId
23
- */
24
- private setMeetingId;
25
- /**
26
- * Returns the meeting object associated with current latencies
27
- * @returns meeting object
28
- */
29
- private getMeeting;
30
- /**
31
- * Store timestamp value
32
- * @param key - key
33
- * @param value -value
34
- * @throws
35
- * @returns
36
- */
37
- saveTimestamp({ key, value, options, }: {
38
- key: MetricEventNames;
39
- value?: number;
40
- options?: {
41
- meetingId?: string;
42
- };
43
- }): void;
44
- /**
45
- * Store precomputed latency value
46
- * @param key - key
47
- * @param value -value
48
- * @throws
49
- * @returns
50
- */
51
- saveLatency(key: string, value: number): void;
52
- /**
53
- * Store only the first timestamp value for the given key
54
- * @param key - key
55
- * @param value -value
56
- * @throws
57
- * @returns
58
- */
59
- saveFirstTimestampOnly(key: MetricEventNames, value?: number): void;
60
- /**
61
- * Helper to calculate end - start
62
- * @param a start
63
- * @param b end
64
- * @returns latency
65
- */
66
- getDiffBetweenTimestamps(a: MetricEventNames, b: MetricEventNames): number;
67
- /**
68
- * Meeting Info Request
69
- * @note Meeting Info request happen not just in the join phase. CA requires
70
- * metrics around meeting info request that are only part of join phase.
71
- * This internal.* event is used to track the real timestamps
72
- * (when the actual request/response happen). This is because the actual CA event is
73
- * sent inside the join method on the meeting object based on some logic, but that's not exactly when
74
- * those events are actually fired. The logic only confirms that they have happened, and we send them over.
75
- * @returns - latency
76
- */
77
- getMeetingInfoReqResp(): number;
78
- /**
79
- * Interstitial Time
80
- * @returns - latency
81
- */
82
- getShowInterstitialTime(): number;
83
- /**
84
- * Call Init Join Request
85
- * @returns - latency
86
- */
87
- getCallInitJoinReq(): number;
88
- /**
89
- * Locus Join Request
90
- * @returns - latency
91
- */
92
- getJoinReqResp(): number;
93
- /**
94
- * Locus Join Response Sent Received
95
- * @returns - latency
96
- */
97
- getJoinRespSentReceived(): any;
98
- /**
99
- * Time taken to do turn discovery
100
- * @returns - latency
101
- */
102
- getTurnDiscoveryTime(): number;
103
- /**
104
- * Local SDP Generated Remote SDP REceived
105
- * @returns - latency
106
- */
107
- getLocalSDPGenRemoteSDPRecv(): number;
108
- /**
109
- * ICE Setup Time
110
- * @returns - latency
111
- */
112
- getICESetupTime(): number;
113
- /**
114
- * Audio ICE time
115
- * @returns - latency
116
- */
117
- getAudioICESetupTime(): number;
118
- /**
119
- * Video ICE Time
120
- * @returns - latency
121
- */
122
- getVideoICESetupTime(): number;
123
- /**
124
- * Share ICE Time
125
- * @returns - latency
126
- */
127
- getShareICESetupTime(): number;
128
- /**
129
- * Stay Lobby Time
130
- * @returns - latency
131
- */
132
- getStayLobbyTime(): number;
133
- /**
134
- * Page JMT
135
- * @returns - latency
136
- */
137
- getPageJMT(): number;
138
- /**
139
- * Click To Interstitial
140
- * @returns - latency
141
- */
142
- getClickToInterstitial(): number;
143
- /**
144
- * Interstitial To Join Ok
145
- * @returns - latency
146
- */
147
- getInterstitialToJoinOK(): number;
148
- /**
149
- * Call Init To MediaEngineReady
150
- * @returns - latency
151
- */
152
- getCallInitMediaEngineReady(): number;
153
- /**
154
- * Interstitial To Media Ok
155
- * @returns - latency
156
- */
157
- getInterstitialToMediaOKJMT(): number;
158
- /**
159
- * Total JMT
160
- * @returns - latency
161
- */
162
- getTotalJMT(): number;
163
- /**
164
- * Join Conf JMT
165
- * @returns - latency
166
- */
167
- getJoinConfJMT(): number;
168
- /**
169
- * Total Media JMT
170
- * @returns - latency
171
- */
172
- getTotalMediaJMT(): number;
173
- /**
174
- * Client JMT
175
- * @returns - latency
176
- */
177
- getClientJMT(): number;
178
- /**
179
- * Audio setup delay receive
180
- */
181
- getAudioJoinRespRxStart(): number;
182
- /**
183
- * Video setup delay receive
184
- */
185
- getVideoJoinRespRxStart(): number;
186
- /**
187
- * Audio setup delay transmit
188
- */
189
- getAudioJoinRespTxStart(): number;
190
- /**
191
- * Video setup delay transmit
192
- */
193
- getVideoJoinRespTxStart(): number;
194
- }
@@ -1,418 +0,0 @@
1
- import { StatelessWebexPlugin } from '@webex/webex-core';
2
- import { Event, ClientType, SubClientType, NetworkType, EnvironmentType, NewEnvironmentType, ClientEvent, SubmitClientEventOptions, MediaQualityEvent, SubmitMQEOptions, SubmitMQEPayload, ClientLaunchMethodType, ClientEventError, ClientEventPayload, ClientSubServiceType } from '../metrics.types';
3
- type GetOriginOptions = {
4
- clientType: ClientType;
5
- subClientType: SubClientType;
6
- networkType?: NetworkType;
7
- clientLaunchMethod?: ClientLaunchMethodType;
8
- environment?: EnvironmentType;
9
- newEnvironment?: NewEnvironmentType;
10
- };
11
- type GetIdentifiersOptions = {
12
- meeting?: any;
13
- mediaConnections?: any[];
14
- correlationId?: string;
15
- preLoginId?: string;
16
- globalMeetingId?: string;
17
- webexConferenceIdStr?: string;
18
- };
19
- /**
20
- * @description Util class to handle Call Analyzer Metrics
21
- * @export
22
- * @class CallDiagnosticMetrics
23
- */
24
- export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
25
- private callDiagnosticEventsBatcher;
26
- private logger;
27
- private hasLoggedBrowserSerial;
28
- validator: (options: {
29
- type: 'mqe' | 'ce';
30
- event: Event;
31
- }) => Promise<{
32
- event: Event;
33
- valid: boolean;
34
- }>;
35
- /**
36
- * Constructor
37
- * @param args
38
- */
39
- constructor(...args: any[]);
40
- /**
41
- * Returns the login type of the current user
42
- * @returns one of 'login-ci','unverified-guest', null
43
- */
44
- getCurLoginType(): "unverified-guest" | "login-ci";
45
- /**
46
- * Returns if the meeting has converged architecture enabled
47
- * @param options.meetingId
48
- */
49
- getIsConvergedArchitectureEnabled({ meetingId }: {
50
- meetingId?: string;
51
- }): boolean;
52
- /**
53
- * Returns meeting's subServiceType
54
- * @param meeting
55
- * @returns
56
- */
57
- getSubServiceType(meeting?: any): ClientSubServiceType;
58
- /**
59
- * Get origin object for Call Diagnostic Event payload.
60
- * @param options
61
- * @param meetingId
62
- * @returns
63
- */
64
- getOrigin(options: GetOriginOptions, meetingId?: string): {
65
- name: "endpoint" | "antares" | "beech" | "breakout" | "cb" | "cloudproxy" | "edonus" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "superhomer" | "l2sip" | "linus" | "locus" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mygdon" | "orpheus" | "page" | "poros" | "rhesos" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr";
66
- userAgent: string;
67
- buildType?: "debug" | "test" | "prod" | "tap" | "analyzer-test";
68
- upgradeChannel?: string;
69
- instanceId?: string;
70
- networkType: "wifi" | "ethernet" | "cellular" | "unknown";
71
- localIP?: string;
72
- usingProxy?: boolean;
73
- mediaEngineSoftwareVersion?: string;
74
- environment?: string;
75
- newEnvironment?: string;
76
- clientInfo?: {
77
- os?: "windows" | "mac" | "ios" | "android" | "chrome" | "linux" | "other" | "android-x64" | "android-arm64" | "uwp-arm64";
78
- osVersion?: string;
79
- localIP?: string;
80
- gatewayIP?: string;
81
- macAddress?: string;
82
- localNetworkPrefix?: string;
83
- publicNetworkPrefix?: string;
84
- browserLaunchMethod?: "url-handler" | "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "thinclient" | "switch-to-web" | "switch-to-native";
85
- clientLaunchMethod?: "url-handler" | "universal-link" | "voice-command" | "notification" | "manual" | "teams-cross-launch" | "mc-cross-launch";
86
- browser?: string;
87
- browserVersion?: string;
88
- clientType?: "MEETING_CENTER" | "EVENT_CENTER" | "TRAINING_CENTER" | "TEAMS_CLIENT" | "TEAMS_DEVICE" | "TEAMS_SHARE" | "SIP" | "RECORDING" | "CLOUD_AWARE_SIP" | "TEAMS_WXC_CLIENT" | "WXC_CLIENT" | "WXC_DEVICE" | "WEBEX_JS_SDK" | "VOICEA_CLIENT" | "CISCO_SIP_GW" | "WEBEX_SDK" | "CPAAS_THIRD_PARTY_SDK" | "WXC_THIRD_PARTY" | "WXCC";
89
- subClientType?: "TEAMS_DEVICE" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MOBILE_APP" | "MOBILE_NETWORK" | "VDI_APP" | "WEB_APP";
90
- clientVersion?: string;
91
- clientVersionStatus?: "CURRENT" | "LEGACY" | "UNSUPPORTED";
92
- localClientVersion?: string;
93
- modelNumber?: string;
94
- joinFirstUpdateLater?: "ep-enabled" | "sp-enabled" | "not-enabled";
95
- standbyUsed?: boolean;
96
- prefetchDocShowUsed?: boolean;
97
- fastJoinUsed?: boolean;
98
- clientDownloadSize?: number;
99
- clientDownloadFileCount?: number;
100
- nodeId?: number;
101
- machineInfo?: string;
102
- parentAppName?: string;
103
- parentAppInPermitList?: boolean;
104
- meetingSiteType?: "train" | "webex-11" | "orion";
105
- CDNEnabled?: boolean;
106
- clientMajorVersion?: string;
107
- majorVersion?: number;
108
- minorVersion?: number;
109
- revision?: number;
110
- isValidClientVersion?: boolean;
111
- cpuInfo?: {
112
- description: string;
113
- clockSpeedGigaHertz: number;
114
- numberOfCores: number;
115
- architecture: "unknown" | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64";
116
- staticPerformance?: string;
117
- additionalProperties?: false;
118
- };
119
- shareType?: "cb-normal-share" | "ce-airplay-share" | "ce-direct-share" | "ce-gui-loopback-share" | "ce-input-source-share" | "ce-input-source-share-hdmi" | "ce-input-source-share-usbc" | "ce-jpg-share" | "ce-miracast-share" | "mcs-normal-share" | "mcs-normal-audio-share" | "mcs-hfps-share" | "mcs-hfps-audio-share";
120
- videoDisplayMode?: "grid-view" | "active-speaker-view";
121
- videoLayoutType?: "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare";
122
- videoRenderType?: "wme" | "client_d3d" | "client_gdi";
123
- vdiInfo?: {};
124
- is64BitsClient?: boolean;
125
- webexAppVersion?: string;
126
- launch32BitsReason?: "forcewin32" | "disablewin64" | "platform_win32" | "platform_arm" | "platform_unknown" | "version_below_41.11";
127
- inMeetingUpdate?: boolean;
128
- mtaVersion?: string;
129
- isWarholOpening?: boolean;
130
- additionalProperties?: false;
131
- };
132
- emmVendorId?: string;
133
- isHybridMedia?: boolean;
134
- originData?: {};
135
- additionalProperties?: false;
136
- };
137
- /**
138
- * Gather identifier details for call diagnostic payload.
139
- * @throws Error if initialization fails.
140
- * @param options
141
- */
142
- getIdentifiers(options: GetIdentifiersOptions): {
143
- attendeeId?: string;
144
- breakoutGroupId?: string;
145
- breakoutMoveId?: string;
146
- breakoutSessionId?: string;
147
- confluenceId?: string;
148
- cpaasIdentifiers?: {
149
- imiTenantId: string;
150
- devClientId: string;
151
- imiServiceId: string;
152
- imiAppId: string;
153
- sessionId: string;
154
- sessionInstanceId: string;
155
- additionalProperties?: false;
156
- };
157
- csdmDeviceUrl?: string;
158
- destinationBreakoutSessionId?: string;
159
- destinationLocusSessionId?: string;
160
- destinationLocusUrl?: string;
161
- destinationVenueId?: string;
162
- deviceId?: string;
163
- globalMeetingId?: string;
164
- ivrCallId?: string;
165
- ivrDialogId?: string;
166
- ivrId?: string;
167
- callId?: string;
168
- locusId?: string;
169
- locusSessionId?: string;
170
- locusStartTime?: string;
171
- locusUrl?: string;
172
- machineId?: string;
173
- mediaAgentAlias?: string;
174
- mediaAgentGroupId?: string;
175
- meetClusterName?: string;
176
- meetingInstanceId?: string;
177
- meetingLookupUrl?: string;
178
- meetingOrgId?: string;
179
- msteamsTenantGuid?: string;
180
- msteamsConferenceId?: string;
181
- oauth2ClientId?: string;
182
- orgId?: string;
183
- provisionalCorrelationId?: string;
184
- roomId?: string;
185
- sipCallId?: string;
186
- sipSessionId?: {
187
- local?: string;
188
- remote?: string;
189
- additionalProperties?: false;
190
- };
191
- sipUri?: string;
192
- subConfId?: string;
193
- tenantId?: string;
194
- trackingId?: string;
195
- userId?: string;
196
- venueId?: string;
197
- venueUrl?: string;
198
- whiteboardUrl?: string;
199
- webexConferenceId?: number;
200
- webexClusterName?: string;
201
- webexConferenceIdStr?: string;
202
- webexDataCenter?: string;
203
- webexGuestId?: number;
204
- webexMeetingId?: number;
205
- webexNodeId?: number;
206
- webexSiteId?: number;
207
- webexSiteName?: string;
208
- webexSiteUuid?: string;
209
- webexUserId?: number;
210
- webexWebDomain?: string;
211
- correlationId: string;
212
- additionalProperties?: false;
213
- } | {
214
- attendeeId?: string;
215
- breakoutGroupId?: string;
216
- breakoutMoveId?: string;
217
- breakoutSessionId?: string;
218
- confluenceId?: string;
219
- cpaasIdentifiers?: {
220
- imiTenantId: string;
221
- devClientId: string;
222
- imiServiceId: string;
223
- imiAppId: string;
224
- sessionId: string;
225
- sessionInstanceId: string;
226
- additionalProperties?: false;
227
- };
228
- csdmDeviceUrl?: string;
229
- destinationBreakoutSessionId?: string;
230
- destinationLocusSessionId?: string;
231
- destinationLocusUrl?: string;
232
- destinationVenueId?: string;
233
- deviceId?: string;
234
- globalMeetingId?: string;
235
- ivrCallId?: string;
236
- ivrDialogId?: string;
237
- ivrId?: string;
238
- callId?: string;
239
- locusId?: string;
240
- locusSessionId?: string;
241
- locusStartTime?: string;
242
- locusUrl?: string;
243
- machineId?: string;
244
- mediaAgentAlias?: string;
245
- mediaAgentGroupId?: string;
246
- meetClusterName?: string;
247
- meetingInstanceId?: string;
248
- meetingLookupUrl?: string;
249
- meetingOrgId?: string;
250
- msteamsTenantGuid?: string;
251
- msteamsConferenceId?: string;
252
- oauth2ClientId?: string;
253
- orgId?: string;
254
- provisionalCorrelationId?: string;
255
- roomId?: string;
256
- sipCallId?: string;
257
- sipSessionId?: {
258
- local?: string;
259
- remote?: string;
260
- additionalProperties?: false;
261
- };
262
- sipUri?: string;
263
- subConfId?: string;
264
- tenantId?: string;
265
- trackingId?: string;
266
- userId?: string;
267
- venueId?: string;
268
- venueUrl?: string;
269
- whiteboardUrl?: string;
270
- webexConferenceId?: number;
271
- webexClusterName?: string;
272
- webexConferenceIdStr?: string;
273
- webexDataCenter?: string;
274
- webexGuestId?: number;
275
- webexMeetingId?: number;
276
- webexNodeId?: number;
277
- webexSiteId?: number;
278
- webexSiteName?: string;
279
- webexSiteUuid?: string;
280
- webexUserId?: number;
281
- webexWebDomain?: string;
282
- correlationId: string;
283
- additionalProperties?: false;
284
- };
285
- /**
286
- * Create diagnostic event, which can hold client event, feature event or MQE event data.
287
- * This just initiates the shared properties that are required for all the 3 event categories.
288
- * @param eventData
289
- * @param options
290
- * @returns
291
- */
292
- prepareDiagnosticEvent(eventData: Event['event'], options: any): Event;
293
- /**
294
- * TODO: NOT IMPLEMENTED
295
- * Submit Feature Event
296
- * @returns
297
- */
298
- submitFeatureEvent(): void;
299
- /**
300
- * Submit Media Quality Event
301
- * @param args - submit params
302
- * @param arg.name - event key
303
- * @param arg.payload - additional payload to be merge with the default payload
304
- * @param arg.options - options
305
- */
306
- submitMQE({ name, payload, options, }: {
307
- name: MediaQualityEvent['name'];
308
- payload: SubmitMQEPayload;
309
- options: SubmitMQEOptions;
310
- }): void;
311
- /**
312
- * Return Client Event payload by client error code
313
- * @param arg - get error arg
314
- * @param arg.clientErrorCode
315
- * @param arg.serviceErrorCode
316
- * @param arg.payloadOverrides
317
- * @returns
318
- */
319
- getErrorPayloadForClientErrorCode({ clientErrorCode, serviceErrorCode, serviceErrorName, rawErrorMessage, payloadOverrides, }: {
320
- clientErrorCode: number;
321
- serviceErrorCode: any;
322
- serviceErrorName?: any;
323
- rawErrorMessage?: string;
324
- payloadOverrides?: any;
325
- }): ClientEventError;
326
- /**
327
- * Generate error payload for Client Event
328
- * @param rawError
329
- */
330
- generateClientEventErrorPayload(rawError: any): {
331
- fatal: boolean;
332
- category: "other" | "signaling" | "media" | "network" | "expected";
333
- errorDescription?: string;
334
- errorCode?: number;
335
- errorCodeStr?: string;
336
- httpCode?: number;
337
- errorCodeExt1?: number;
338
- errorData?: {};
339
- rawErrorMessage?: string;
340
- shownToUser: boolean;
341
- serviceErrorCode?: number;
342
- name: "other" | "locus.response" | "media-engine" | "ice.failed" | "locus.leave" | "client.leave" | "media-device" | "media-sca" | "wxc";
343
- additionalProperties?: false;
344
- };
345
- /**
346
- * Create client event object for in meeting events
347
- * @param arg - create args
348
- * @param arg.event - event key
349
- * @param arg.options - options
350
- * @returns object
351
- */
352
- private createClientEventObjectInMeeting;
353
- /**
354
- * Create client event object for pre meeting events
355
- * @param arg - create args
356
- * @param arg.event - event key
357
- * @param arg.options - payload
358
- * @returns object
359
- */
360
- private createClientEventObjectPreMeeting;
361
- /**
362
- * Prepare Client Event CA event.
363
- * @param arg - submit params
364
- * @param arg.event - event key
365
- * @param arg.payload - additional payload to be merged with default payload
366
- * @param arg.options - payload
367
- * @returns {any} options to be with fetch
368
- * @throws
369
- */
370
- private prepareClientEvent;
371
- /**
372
- * Submit Client Event CA event.
373
- * @param arg - submit params
374
- * @param arg.event - event key
375
- * @param arg.payload - additional payload to be merged with default payload
376
- * @param arg.options - payload
377
- * @throws
378
- */
379
- submitClientEvent({ name, payload, options, }: {
380
- name: ClientEvent['name'];
381
- payload?: ClientEventPayload;
382
- options?: SubmitClientEventOptions;
383
- }): Promise<any>;
384
- /**
385
- * Prepare the event and send the request to metrics-a service.
386
- * @param event
387
- * @returns promise
388
- */
389
- submitToCallDiagnostics(event: Event): Promise<any>;
390
- /**
391
- * Pre login events are not batched. We make the request directly.
392
- * @param event
393
- * @param preLoginId
394
- * @returns
395
- */
396
- submitToCallDiagnosticsPreLogin: (event: Event, preLoginId?: string) => Promise<any>;
397
- /**
398
- * Builds a request options object to later be passed to fetch().
399
- * @param arg - submit params
400
- * @param arg.event - event key
401
- * @param arg.payload - additional payload to be merged with default payload
402
- * @param arg.options - client event options
403
- * @returns {Promise<any>}
404
- * @throws
405
- */
406
- buildClientEventFetchRequestOptions({ name, payload, options, }: {
407
- name: ClientEvent['name'];
408
- payload?: ClientEventPayload;
409
- options?: SubmitClientEventOptions;
410
- }): Promise<any>;
411
- /**
412
- * Returns true if the specified serviceErrorCode maps to an expected error.
413
- * @param {number} serviceErrorCode the service error code
414
- * @returns {boolean}
415
- */
416
- isServiceErrorExpected(serviceErrorCode: number): boolean;
417
- }
418
- export {};
@@ -1,96 +0,0 @@
1
- import { Event } from '../metrics.types';
2
- export declare const anonymizeIPAddress: (localIp: any) => string;
3
- /**
4
- * Returns a formated string of the user agent.
5
- *
6
- * @returns {string} formatted user agent information
7
- */
8
- export declare const userAgentToString: ({ clientName, webexVersion }: {
9
- clientName: any;
10
- webexVersion: any;
11
- }) => string;
12
- /**
13
- * Iterates object recursively and removes any
14
- * property that returns isEmpty for it's associated value
15
- * isEmpty = implementation from Lodash.
16
- *
17
- * It modifies the object in place (mutable)
18
- *
19
- * @param obj - input
20
- * @returns
21
- */
22
- export declare const clearEmptyKeysRecursively: (obj: any) => void;
23
- /**
24
- * Locus error codes start with 2. The next three digits are the
25
- * HTTP status code related to the error code (like 400, 403, 502, etc.)
26
- * The remaining three digits are just an increasing integer.
27
- * If it is 7 digits and starts with a 2, it is locus.
28
- *
29
- * @param errorCode
30
- * @returns {boolean}
31
- */
32
- export declare const isLocusServiceErrorCode: (errorCode: string | number) => boolean;
33
- /**
34
- * MeetingInfo errors sometimes has body.data.meetingInfo object
35
- * MeetingInfo errors come with a wbxappapi url
36
- *
37
- * @param {Object} rawError
38
- * @returns {boolean}
39
- */
40
- export declare const isMeetingInfoServiceError: (rawError: any) => boolean;
41
- /**
42
- * Returns true if the raw error is a network related error
43
- *
44
- * @param {Object} rawError
45
- * @returns {boolean}
46
- */
47
- export declare const isNetworkError: (rawError: any) => boolean;
48
- /**
49
- * Returns true if the error is an unauthorized error
50
- *
51
- * @param {Object} rawError
52
- * @returns {boolean}
53
- */
54
- export declare const isUnauthorizedError: (rawError: any) => boolean;
55
- /**
56
- * MDN Media Devices getUserMedia() method returns a name if it errs
57
- * Documentation can be found here: https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
58
- *
59
- * @param errorCode
60
- * @returns
61
- */
62
- export declare const isBrowserMediaErrorName: (errorName: any) => boolean;
63
- /**
64
- * @param webClientDomain
65
- * @returns
66
- */
67
- export declare const getBuildType: (webClientDomain: any, markAsTestEvent?: boolean) => Event['origin']['buildType'];
68
- /**
69
- * Prepare metric item for submission.
70
- * @param {Object} webex sdk instance
71
- * @param {Object} item
72
- * @returns {Object} prepared item
73
- */
74
- export declare const prepareDiagnosticMetricItem: (webex: any, item: any) => any;
75
- /**
76
- * Sets the originTime value(s) before the request/fetch.
77
- * This function is only useful if you are about to submit a metrics
78
- * request using pre-built fetch options;
79
- *
80
- * @param {any} options
81
- * @returns {any} the updated options object
82
- */
83
- export declare const setMetricTimings: (options: any) => any;
84
- export declare const extractVersionMetadata: (version: string) => {
85
- majorVersion: number;
86
- minorVersion: number;
87
- };
88
- /**
89
- * Generates client error codes for specific ice failures
90
- * that happen when trying to add media in a meeting.
91
- */
92
- export declare const generateClientErrorCodeForIceFailure: ({ signalingState, iceConnectionState, turnServerUsed, }: {
93
- signalingState: RTCPeerConnection['signalingState'];
94
- iceConnectionState: RTCPeerConnection['iceConnectionState'];
95
- turnServerUsed: boolean;
96
- }) => number;