@webex/internal-plugin-metrics 3.12.0-next.9 → 3.12.0-task-refactor.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 (42) hide show
  1. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +34 -48
  2. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
  3. package/dist/call-diagnostic/call-diagnostic-metrics.js +0 -5
  4. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
  5. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +4 -39
  6. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
  7. package/dist/call-diagnostic/config.js +1 -3
  8. package/dist/call-diagnostic/config.js.map +1 -1
  9. package/dist/generic-metrics.js +6 -8
  10. package/dist/generic-metrics.js.map +1 -1
  11. package/dist/index.js +0 -7
  12. package/dist/index.js.map +1 -1
  13. package/dist/metrics.js +1 -1
  14. package/dist/metrics.types.js.map +1 -1
  15. package/dist/new-metrics.js +20 -56
  16. package/dist/new-metrics.js.map +1 -1
  17. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +0 -9
  18. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +20 -34
  19. package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +2 -23
  20. package/dist/types/call-diagnostic/config.d.ts +19 -2
  21. package/dist/types/config.d.ts +15 -15
  22. package/dist/types/index.d.ts +1 -2
  23. package/dist/types/metrics.types.d.ts +2 -2
  24. package/dist/types/new-metrics.d.ts +0 -12
  25. package/package.json +11 -11
  26. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +44 -97
  27. package/src/call-diagnostic/call-diagnostic-metrics.ts +0 -6
  28. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +2 -44
  29. package/src/call-diagnostic/config.ts +0 -2
  30. package/src/generic-metrics.ts +6 -6
  31. package/src/index.ts +0 -2
  32. package/src/metrics.types.ts +2 -2
  33. package/src/new-metrics.ts +0 -42
  34. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +11 -38
  35. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +303 -251
  36. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +0 -44
  37. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +3 -65
  38. package/dist/prelogin-metrics.js +0 -106
  39. package/dist/prelogin-metrics.js.map +0 -1
  40. package/dist/types/prelogin-metrics.d.ts +0 -47
  41. package/src/prelogin-metrics.ts +0 -94
  42. package/test/unit/spec/prelogin-metrics.ts +0 -132
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["metrics.types.ts"],"sourcesContent":["import type {\n ClientEvent as RawClientEvent,\n Event as RawEvent,\n MediaQualityEvent as RawMediaQualityEvent,\n FeatureEvent as RawFeatureEvent,\n} from '@webex/event-dictionary-ts';\n\nexport type Event = Omit<RawEvent, 'event'> & {\n event: RawClientEvent | RawMediaQualityEvent | RawFeatureEvent;\n};\n\nexport type ClientEventError = NonNullable<RawClientEvent['errors']>[0];\n\nexport type EnvironmentType = NonNullable<RawEvent['origin']['environment']>;\n\nexport type NewEnvironmentType = NonNullable<RawEvent['origin']['newEnvironment']>;\n\nexport type ClientLaunchMethodType = NonNullable<\n RawEvent['origin']['clientInfo']\n>['clientLaunchMethod'];\n\nexport type ClientUserNameInput = NonNullable<RawClientEvent['userNameInput']>;\n\nexport type ClientEmailInput = NonNullable<RawClientEvent['emailInput']>;\n\nexport type BrowserLaunchMethodType = NonNullable<\n RawEvent['origin']['clientInfo']\n>['browserLaunchMethod'];\n\nexport type MetricEventProduct = 'webex' | 'wxcc_desktop' | 'wxcc_crm' | 'wxcc_sdk';\n\nexport type MetricEventAgent = 'user' | 'browser' | 'system' | 'sdk' | 'redux' | 'service' | 'api';\n\nexport type MetricEventVerb =\n | 'abort'\n | 'accept'\n | 'activate'\n | 'apply'\n | 'answer'\n | 'authorize'\n | 'build'\n | 'cancel'\n | 'change'\n | 'click'\n | 'close'\n | 'complete'\n | 'connect'\n | 'create'\n | 'deactivate'\n | 'decrypt'\n | 'delete'\n | 'deliver'\n | 'destroy'\n | 'disable'\n | 'disconnect'\n | 'dismiss'\n | 'display'\n | 'download'\n | 'edit'\n | 'enable'\n | 'encrypt'\n | 'end'\n | 'expire'\n | 'fail'\n | 'fetch'\n | 'fire'\n | 'generate'\n | 'get'\n | 'hide'\n | 'hover'\n | 'ignore'\n | 'initialize'\n | 'initiate'\n | 'invalidate'\n | 'join'\n | 'list'\n | 'load'\n | 'login'\n | 'logout'\n | 'notify'\n | 'offer'\n | 'open'\n | 'press'\n | 'receive'\n | 'refer'\n | 'refresh'\n | 'register'\n | 'release'\n | 'reload'\n | 'reject'\n | 'request'\n | 'reset'\n | 'resize'\n | 'respond'\n | 'retry'\n | 'revoke'\n | 'save'\n | 'search'\n | 'select'\n | 'send'\n | 'set'\n | 'sign'\n | 'start'\n | 'submit'\n | 'switch'\n | 'sync'\n | 'toggle'\n | 'transfer'\n | 'unregister'\n | 'update'\n | 'upload'\n | 'use'\n | 'validate'\n | 'view'\n | 'visit'\n | 'wait'\n | 'warn'\n | 'exit';\n\nexport type MetricEventJoinFlowVersion = 'Other' | 'NewFTE';\nexport type MetricEventMeetingJoinPhase = 'pre-join' | 'join' | 'in-meeting';\n\nexport type SubmitClientEventOptions = {\n meetingId?: string;\n mediaConnections?: any[];\n rawError?: any;\n correlationId?: string;\n sessionCorrelationId?: string;\n preLoginId?: string;\n environment?: EnvironmentType;\n newEnvironmentType?: NewEnvironmentType;\n clientLaunchMethod?: ClientLaunchMethodType;\n browserLaunchMethod?: BrowserLaunchMethodType;\n webexConferenceIdStr?: string;\n globalMeetingId?: string;\n joinFlowVersion?: MetricEventJoinFlowVersion;\n meetingJoinPhase?: MetricEventMeetingJoinPhase;\n triggeredTime?: string;\n emailInput?: ClientEmailInput;\n userNameInput?: ClientUserNameInput;\n vendorId?: string;\n};\n\nexport type SubmitMQEOptions = {\n meetingId: string;\n mediaConnections?: any[];\n networkType?: Event['origin']['networkType'];\n webexConferenceIdStr?: string;\n globalMeetingId?: string;\n};\n\nexport type InternalEvent = {\n name:\n | 'internal.client.meetinginfo.request'\n | 'internal.client.meetinginfo.response'\n | 'internal.register.device.request'\n | 'internal.register.device.response'\n | 'internal.reset.join.latencies'\n | 'internal.client.meeting.click.joinbutton'\n | 'internal.host.meeting.participant.admitted'\n | 'internal.client.meeting.interstitial-window.showed'\n | 'internal.client.interstitial-window.click.joinbutton'\n | 'internal.client.add-media.turn-discovery.start'\n | 'internal.client.add-media.turn-discovery.end'\n | 'internal.client.share.initiated'\n | 'internal.client.share.stopped';\n\n payload?: never;\n options?: never;\n};\n\nexport interface ClientEvent {\n name: RawClientEvent['name'];\n payload?: RawClientEvent;\n options?: SubmitClientEventOptions;\n}\n\nexport interface DeviceContext {\n app: {version: string};\n device: {id: string};\n locale: string;\n os: {\n name: string;\n version: string;\n };\n}\n\nexport type MetricType = 'behavioral' | 'operational' | 'business';\n\nexport type Table = 'wbxapp_callend_metrics' | 'business_metrics' | 'business_ucf' | 'default';\n\ntype InternalEventPayload = string | number | boolean;\nexport type EventPayload = Record<string, InternalEventPayload>;\nexport type BehavioralEventPayload = EventPayload; // for compatibilty, can be remove after wxcc-desktop did change their imports.\n\nexport interface BusinessEventPayload {\n metricName: string;\n timestamp: number;\n context: DeviceContext;\n browserDetails: object;\n value: EventPayload;\n}\n\nexport interface BusinessEvent {\n type: string[];\n eventPayload: BusinessEventPayload;\n}\n\nexport interface TaggedEvent {\n context: DeviceContext;\n metricName: string;\n tags: EventPayload;\n timestamp: number;\n type: [MetricType];\n}\n\nexport type BehavioralEvent = TaggedEvent;\nexport type OperationalEvent = TaggedEvent;\n\nexport interface FeatureEvent {\n name: RawFeatureEvent['name'];\n payload?: RawFeatureEvent;\n options?: SubmitClientEventOptions;\n}\n\nexport interface MediaQualityEvent {\n name: RawMediaQualityEvent['name'];\n payload?: RawMediaQualityEvent;\n options: SubmitMQEOptions;\n}\n\nexport type RecursivePartial<T> = {\n [P in keyof T]?: T[P] extends (infer U)[]\n ? RecursivePartial<U>[]\n : T[P] extends object\n ? RecursivePartial<T[P]>\n : T[P];\n};\n\nexport type MetricEventNames =\n | InternalEvent['name']\n | ClientEvent['name']\n | BehavioralEvent['metricName']\n | OperationalEvent['metricName']\n | BusinessEvent['eventPayload']['metricName']\n | FeatureEvent['name']\n | MediaQualityEvent['name'];\n\nexport type ClientInfo = NonNullable<RawEvent['origin']['clientInfo']>;\nexport type ClientType = NonNullable<RawEvent['origin']['clientInfo']>['clientType'];\nexport type SubClientType = NonNullable<RawEvent['origin']['clientInfo']>['subClientType'];\nexport type NetworkType = NonNullable<RawEvent['origin']>['networkType'];\n\nexport type ClientSubServiceType = ClientEvent['payload']['webexSubServiceType'];\nexport type ClientEventPayload = RecursivePartial<ClientEvent['payload']>;\nexport type ClientEventLeaveReason = ClientEvent['payload']['leaveReason'];\nexport type ClientEventPayloadError = ClientEvent['payload']['errors'];\n\nexport type ClientFeatureEventPayload = RecursivePartial<FeatureEvent['payload']>;\n\nexport type MediaQualityEventAudioSetupDelayPayload = NonNullable<\n MediaQualityEvent['payload']\n>['audioSetupDelay'];\nexport type MediaQualityEventVideoSetupDelayPayload = NonNullable<\n MediaQualityEvent['payload']\n>['videoSetupDelay'];\n\nexport type SubmitMQEPayload = RecursivePartial<MediaQualityEvent['payload']> & {\n intervals: NonNullable<MediaQualityEvent['payload']>['intervals'];\n};\n\nexport type SubmitInternalEvent = (args: {\n name: InternalEvent['name'];\n payload?: RecursivePartial<InternalEvent['payload']>;\n options?: any;\n}) => void;\n\nexport type SubmitBehavioralEvent = (args: {\n product: MetricEventProduct;\n agent: MetricEventAgent;\n target: string;\n verb: MetricEventVerb;\n payload?: EventPayload;\n}) => void;\n\nexport type SubmitClientEvent = (args: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n}) => Promise<any>;\n\nexport type SubmitOperationalEvent = (args: {\n name: OperationalEvent['metricName'];\n payload: EventPayload;\n}) => void;\n\nexport type SubmitBusinessEvent = (args: {\n name: OperationalEvent['metricName'];\n payload: EventPayload;\n metadata?: EventPayload;\n table?: Table;\n}) => void;\n\nexport type SubmitMQE = (args: {\n name: MediaQualityEvent['name'];\n payload: SubmitMQEPayload;\n options: any;\n}) => void;\n\nexport type BuildClientEventFetchRequestOptions = (args: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n}) => Promise<any>;\n\nexport type PreComputedLatencies =\n | 'internal.client.pageJMT'\n | 'internal.download.time'\n | 'internal.get.cluster.time'\n | 'internal.click.to.interstitial'\n | 'internal.click.to.interstitial.with.user.delay'\n | 'internal.refresh.captcha.time'\n | 'internal.exchange.ci.token.time'\n | 'internal.get.u2c.time'\n | 'internal.call.init.join.req'\n | 'internal.other.app.api.time'\n | 'internal.api.fetch.intelligence.models';\n\nexport interface IdType {\n meetingId?: string;\n callId?: string;\n}\n\nexport interface IMetricsAttributes {\n type: string;\n version: string;\n userId: string;\n correlationId: string;\n connectionId: string;\n data: any[];\n meetingId?: string;\n callId?: string;\n}\n\nexport interface DelayedClientEvent {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n}\n\nexport type SubmitFeatureEvent = (args: {\n name: FeatureEvent['name'];\n payload?: RecursivePartial<FeatureEvent['payload']>;\n options?: SubmitClientEventOptions;\n}) => Promise<any>;\n\nexport interface DelayedClientFeatureEvent {\n name: FeatureEvent['name'];\n payload?: RecursivePartial<FeatureEvent['payload']>;\n options?: SubmitClientEventOptions;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["metrics.types.ts"],"sourcesContent":["import {\n ClientEvent as RawClientEvent,\n Event as RawEvent,\n MediaQualityEvent as RawMediaQualityEvent,\n FeatureEvent as RawFeatureEvent,\n} from '@webex/event-dictionary-ts';\n\nexport type Event = Omit<RawEvent, 'event'> & {\n event: RawClientEvent | RawMediaQualityEvent | RawFeatureEvent;\n};\n\nexport type ClientEventError = NonNullable<RawClientEvent['errors']>[0];\n\nexport type EnvironmentType = NonNullable<RawEvent['origin']['environment']>;\n\nexport type NewEnvironmentType = NonNullable<RawEvent['origin']['newEnvironment']>;\n\nexport type ClientLaunchMethodType = NonNullable<\n RawEvent['origin']['clientInfo']\n>['clientLaunchMethod'];\n\nexport type ClientUserNameInput = NonNullable<RawClientEvent['userNameInput']>;\n\nexport type ClientEmailInput = NonNullable<RawClientEvent['emailInput']>;\n\nexport type BrowserLaunchMethodType = NonNullable<\n RawEvent['origin']['clientInfo']\n>['browserLaunchMethod'];\n\nexport type MetricEventProduct = 'webex' | 'wxcc_desktop' | 'wxcc_crm' | 'wxcc_sdk';\n\nexport type MetricEventAgent = 'user' | 'browser' | 'system' | 'sdk' | 'redux' | 'service' | 'api';\n\nexport type MetricEventVerb =\n | 'abort'\n | 'accept'\n | 'activate'\n | 'apply'\n | 'answer'\n | 'authorize'\n | 'build'\n | 'cancel'\n | 'change'\n | 'click'\n | 'close'\n | 'complete'\n | 'connect'\n | 'create'\n | 'deactivate'\n | 'decrypt'\n | 'delete'\n | 'deliver'\n | 'destroy'\n | 'disable'\n | 'disconnect'\n | 'dismiss'\n | 'display'\n | 'download'\n | 'edit'\n | 'enable'\n | 'encrypt'\n | 'end'\n | 'expire'\n | 'fail'\n | 'fetch'\n | 'fire'\n | 'generate'\n | 'get'\n | 'hide'\n | 'hover'\n | 'ignore'\n | 'initialize'\n | 'initiate'\n | 'invalidate'\n | 'join'\n | 'list'\n | 'load'\n | 'login'\n | 'logout'\n | 'notify'\n | 'offer'\n | 'open'\n | 'press'\n | 'receive'\n | 'refer'\n | 'refresh'\n | 'register'\n | 'release'\n | 'reload'\n | 'reject'\n | 'request'\n | 'reset'\n | 'resize'\n | 'respond'\n | 'retry'\n | 'revoke'\n | 'save'\n | 'search'\n | 'select'\n | 'send'\n | 'set'\n | 'sign'\n | 'start'\n | 'submit'\n | 'switch'\n | 'sync'\n | 'toggle'\n | 'transfer'\n | 'unregister'\n | 'update'\n | 'upload'\n | 'use'\n | 'validate'\n | 'view'\n | 'visit'\n | 'wait'\n | 'warn'\n | 'exit';\n\nexport type MetricEventJoinFlowVersion = 'Other' | 'NewFTE';\nexport type MetricEventMeetingJoinPhase = 'pre-join' | 'join' | 'in-meeting';\n\nexport type SubmitClientEventOptions = {\n meetingId?: string;\n mediaConnections?: any[];\n rawError?: any;\n correlationId?: string;\n sessionCorrelationId?: string;\n preLoginId?: string;\n environment?: EnvironmentType;\n newEnvironmentType?: NewEnvironmentType;\n clientLaunchMethod?: ClientLaunchMethodType;\n browserLaunchMethod?: BrowserLaunchMethodType;\n webexConferenceIdStr?: string;\n globalMeetingId?: string;\n joinFlowVersion?: MetricEventJoinFlowVersion;\n meetingJoinPhase?: MetricEventMeetingJoinPhase;\n triggeredTime?: string;\n emailInput?: ClientEmailInput;\n userNameInput?: ClientUserNameInput;\n vendorId?: string;\n};\n\nexport type SubmitMQEOptions = {\n meetingId: string;\n mediaConnections?: any[];\n networkType?: Event['origin']['networkType'];\n webexConferenceIdStr?: string;\n globalMeetingId?: string;\n};\n\nexport type InternalEvent = {\n name:\n | 'internal.client.meetinginfo.request'\n | 'internal.client.meetinginfo.response'\n | 'internal.register.device.request'\n | 'internal.register.device.response'\n | 'internal.reset.join.latencies'\n | 'internal.client.meeting.click.joinbutton'\n | 'internal.host.meeting.participant.admitted'\n | 'internal.client.meeting.interstitial-window.showed'\n | 'internal.client.interstitial-window.click.joinbutton'\n | 'internal.client.add-media.turn-discovery.start'\n | 'internal.client.add-media.turn-discovery.end'\n | 'internal.client.share.initiated'\n | 'internal.client.share.stopped';\n\n payload?: never;\n options?: never;\n};\n\nexport interface ClientEvent {\n name: RawClientEvent['name'];\n payload?: RawClientEvent;\n options?: SubmitClientEventOptions;\n}\n\nexport interface DeviceContext {\n app: {version: string};\n device: {id: string};\n locale: string;\n os: {\n name: string;\n version: string;\n };\n}\n\nexport type MetricType = 'behavioral' | 'operational' | 'business';\n\nexport type Table = 'wbxapp_callend_metrics' | 'business_metrics' | 'business_ucf' | 'default';\n\ntype InternalEventPayload = string | number | boolean;\nexport type EventPayload = Record<string, InternalEventPayload>;\nexport type BehavioralEventPayload = EventPayload; // for compatibilty, can be remove after wxcc-desktop did change their imports.\n\nexport interface BusinessEventPayload {\n metricName: string;\n timestamp: number;\n context: DeviceContext;\n browserDetails: EventPayload;\n value: EventPayload;\n}\n\nexport interface BusinessEvent {\n type: string[];\n eventPayload: BusinessEventPayload;\n}\n\nexport interface TaggedEvent {\n context: DeviceContext;\n metricName: string;\n tags: EventPayload;\n timestamp: number;\n type: [MetricType];\n}\n\nexport type BehavioralEvent = TaggedEvent;\nexport type OperationalEvent = TaggedEvent;\n\nexport interface FeatureEvent {\n name: RawFeatureEvent['name'];\n payload?: RawFeatureEvent;\n options?: SubmitClientEventOptions;\n}\n\nexport interface MediaQualityEvent {\n name: RawMediaQualityEvent['name'];\n payload?: RawMediaQualityEvent;\n options: SubmitMQEOptions;\n}\n\nexport type RecursivePartial<T> = {\n [P in keyof T]?: T[P] extends (infer U)[]\n ? RecursivePartial<U>[]\n : T[P] extends object\n ? RecursivePartial<T[P]>\n : T[P];\n};\n\nexport type MetricEventNames =\n | InternalEvent['name']\n | ClientEvent['name']\n | BehavioralEvent['metricName']\n | OperationalEvent['metricName']\n | BusinessEvent['eventPayload']['metricName']\n | FeatureEvent['name']\n | MediaQualityEvent['name'];\n\nexport type ClientInfo = NonNullable<RawEvent['origin']['clientInfo']>;\nexport type ClientType = NonNullable<RawEvent['origin']['clientInfo']>['clientType'];\nexport type SubClientType = NonNullable<RawEvent['origin']['clientInfo']>['subClientType'];\nexport type NetworkType = NonNullable<RawEvent['origin']>['networkType'];\n\nexport type ClientSubServiceType = ClientEvent['payload']['webexSubServiceType'];\nexport type ClientEventPayload = RecursivePartial<ClientEvent['payload']>;\nexport type ClientEventLeaveReason = ClientEvent['payload']['leaveReason'];\nexport type ClientEventPayloadError = ClientEvent['payload']['errors'];\n\nexport type ClientFeatureEventPayload = RecursivePartial<FeatureEvent['payload']>;\n\nexport type MediaQualityEventAudioSetupDelayPayload = NonNullable<\n MediaQualityEvent['payload']\n>['audioSetupDelay'];\nexport type MediaQualityEventVideoSetupDelayPayload = NonNullable<\n MediaQualityEvent['payload']\n>['videoSetupDelay'];\n\nexport type SubmitMQEPayload = RecursivePartial<MediaQualityEvent['payload']> & {\n intervals: NonNullable<MediaQualityEvent['payload']>['intervals'];\n};\n\nexport type SubmitInternalEvent = (args: {\n name: InternalEvent['name'];\n payload?: RecursivePartial<InternalEvent['payload']>;\n options?: any;\n}) => void;\n\nexport type SubmitBehavioralEvent = (args: {\n product: MetricEventProduct;\n agent: MetricEventAgent;\n target: string;\n verb: MetricEventVerb;\n payload?: EventPayload;\n}) => void;\n\nexport type SubmitClientEvent = (args: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n}) => Promise<any>;\n\nexport type SubmitOperationalEvent = (args: {\n name: OperationalEvent['metricName'];\n payload: EventPayload;\n}) => void;\n\nexport type SubmitBusinessEvent = (args: {\n name: OperationalEvent['metricName'];\n payload: EventPayload;\n metadata?: EventPayload;\n table?: Table;\n}) => void;\n\nexport type SubmitMQE = (args: {\n name: MediaQualityEvent['name'];\n payload: SubmitMQEPayload;\n options: any;\n}) => void;\n\nexport type BuildClientEventFetchRequestOptions = (args: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n}) => Promise<any>;\n\nexport type PreComputedLatencies =\n | 'internal.client.pageJMT'\n | 'internal.download.time'\n | 'internal.get.cluster.time'\n | 'internal.click.to.interstitial'\n | 'internal.click.to.interstitial.with.user.delay'\n | 'internal.refresh.captcha.time'\n | 'internal.exchange.ci.token.time'\n | 'internal.get.u2c.time'\n | 'internal.call.init.join.req'\n | 'internal.other.app.api.time'\n | 'internal.api.fetch.intelligence.models';\n\nexport interface IdType {\n meetingId?: string;\n callId?: string;\n}\n\nexport interface IMetricsAttributes {\n type: string;\n version: string;\n userId: string;\n correlationId: string;\n connectionId: string;\n data: any[];\n meetingId?: string;\n callId?: string;\n}\n\nexport interface DelayedClientEvent {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n}\n\nexport type SubmitFeatureEvent = (args: {\n name: FeatureEvent['name'];\n payload?: RecursivePartial<FeatureEvent['payload']>;\n options?: SubmitClientEventOptions;\n}) => Promise<any>;\n\nexport interface DelayedClientFeatureEvent {\n name: FeatureEvent['name'];\n payload?: RecursivePartial<FeatureEvent['payload']>;\n options?: SubmitClientEventOptions;\n}\n"],"mappings":"","ignoreList":[]}
@@ -21,8 +21,6 @@ var _callDiagnosticMetrics = _interopRequireDefault(require("./call-diagnostic/c
21
21
  var _behavioralMetrics = _interopRequireDefault(require("./behavioral-metrics"));
22
22
  var _operationalMetrics = _interopRequireDefault(require("./operational-metrics"));
23
23
  var _businessMetrics = _interopRequireDefault(require("./business-metrics"));
24
- var _preloginMetrics = _interopRequireDefault(require("./prelogin-metrics"));
25
- var _preloginMetricsBatcher = _interopRequireDefault(require("./prelogin-metrics-batcher"));
26
24
  var _callDiagnosticMetricsLatencies = _interopRequireDefault(require("./call-diagnostic/call-diagnostic-metrics-latencies"));
27
25
  var _callDiagnosticMetrics2 = require("./call-diagnostic/call-diagnostic-metrics.util");
28
26
  var _utils = require("./utils");
@@ -62,7 +60,6 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
62
60
  (0, _defineProperty2.default)(_this, "behavioralMetrics", void 0);
63
61
  (0, _defineProperty2.default)(_this, "operationalMetrics", void 0);
64
62
  (0, _defineProperty2.default)(_this, "businessMetrics", void 0);
65
- (0, _defineProperty2.default)(_this, "preLoginMetrics", void 0);
66
63
  (0, _defineProperty2.default)(_this, "isReady", false);
67
64
  /**
68
65
  * Whether or not to delay the submission of client events.
@@ -98,15 +95,6 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
98
95
  _this2.callDiagnosticMetrics = new _callDiagnosticMetrics.default({}, {
99
96
  parent: _this2.webex
100
97
  });
101
- _this2.preLoginMetrics = new _preloginMetrics.default(
102
- // @ts-ignore
103
- new _preloginMetricsBatcher.default({}, {
104
- parent: _this2.webex
105
- }), {},
106
- // @ts-ignore
107
- {
108
- parent: _this2.webex
109
- });
110
98
  _this2.isReady = true;
111
99
  _this2.setDelaySubmitClientEvents({
112
100
  shouldDelay: _this2.delaySubmitClientEvents,
@@ -282,40 +270,16 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
282
270
  });
283
271
  }
284
272
 
285
- /**
286
- * Call Analyzer: Pre-Login Event
287
- * @param args
288
- */
289
- }, {
290
- key: "submitPreLoginEvent",
291
- value: function submitPreLoginEvent(_ref5) {
292
- var name = _ref5.name,
293
- preLoginId = _ref5.preLoginId,
294
- payload = _ref5.payload,
295
- metadata = _ref5.metadata;
296
- if (!this.isReady) {
297
- // @ts-ignore
298
- this.webex.logger.log("NewMetrics: @submitPreLoginEvent. Attempted to submit before webex.ready: ".concat(name));
299
- return _promise.default.resolve();
300
- }
301
- return this.preLoginMetrics.submitPreLoginEvent({
302
- name: name,
303
- preLoginId: preLoginId,
304
- payload: payload,
305
- metadata: metadata
306
- });
307
- }
308
-
309
273
  /**
310
274
  * Call Analyzer: Media Quality Event
311
275
  * @param args
312
276
  */
313
277
  }, {
314
278
  key: "submitMQE",
315
- value: function submitMQE(_ref6) {
316
- var name = _ref6.name,
317
- payload = _ref6.payload,
318
- options = _ref6.options;
279
+ value: function submitMQE(_ref5) {
280
+ var name = _ref5.name,
281
+ payload = _ref5.payload,
282
+ options = _ref5.options;
319
283
  this.callDiagnosticLatencies.saveTimestamp({
320
284
  key: name
321
285
  });
@@ -332,10 +296,10 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
332
296
  */
333
297
  }, {
334
298
  key: "submitFeatureEvent",
335
- value: function submitFeatureEvent(_ref7) {
336
- var name = _ref7.name,
337
- payload = _ref7.payload,
338
- options = _ref7.options;
299
+ value: function submitFeatureEvent(_ref6) {
300
+ var name = _ref6.name,
301
+ payload = _ref6.payload,
302
+ options = _ref6.options;
339
303
  if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {
340
304
  // @ts-ignore
341
305
  this.webex.logger.log("NewMetrics: @submitFeatureEvent. Attempted to submit before webex.ready. Event name: ".concat(name));
@@ -362,10 +326,10 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
362
326
  */
363
327
  }, {
364
328
  key: "submitClientEvent",
365
- value: function submitClientEvent(_ref8) {
366
- var name = _ref8.name,
367
- payload = _ref8.payload,
368
- options = _ref8.options;
329
+ value: function submitClientEvent(_ref7) {
330
+ var name = _ref7.name,
331
+ payload = _ref7.payload,
332
+ options = _ref7.options;
369
333
  if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {
370
334
  // @ts-ignore
371
335
  this.webex.logger.log("NewMetrics: @submitClientEvent. Attempted to submit before webex.ready. Event name: ".concat(name));
@@ -442,12 +406,12 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
442
406
  }, {
443
407
  key: "buildClientEventFetchRequestOptions",
444
408
  value: (function () {
445
- var _buildClientEventFetchRequestOptions = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(_ref9) {
409
+ var _buildClientEventFetchRequestOptions = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(_ref8) {
446
410
  var name, payload, options;
447
411
  return _regenerator.default.wrap(function (_context) {
448
412
  while (1) switch (_context.prev = _context.next) {
449
413
  case 0:
450
- name = _ref9.name, payload = _ref9.payload, options = _ref9.options;
414
+ name = _ref8.name, payload = _ref8.payload, options = _ref8.options;
451
415
  return _context.abrupt("return", this.callDiagnosticMetrics.buildClientEventFetchRequestOptions({
452
416
  name: name,
453
417
  payload: payload,
@@ -498,9 +462,9 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
498
462
  */
499
463
  }, {
500
464
  key: "setDelaySubmitClientEvents",
501
- value: function setDelaySubmitClientEvents(_ref0) {
502
- var shouldDelay = _ref0.shouldDelay,
503
- overrides = _ref0.overrides;
465
+ value: function setDelaySubmitClientEvents(_ref9) {
466
+ var shouldDelay = _ref9.shouldDelay,
467
+ overrides = _ref9.overrides;
504
468
  this.delaySubmitClientEvents = shouldDelay;
505
469
  this.delayedClientEventsOverrides = overrides || {};
506
470
  if (this.isReady && !shouldDelay) {
@@ -519,9 +483,9 @@ var Metrics = /*#__PURE__*/function (_WebexPlugin) {
519
483
  */
520
484
  }, {
521
485
  key: "setDelaySubmitClientFeatureEvents",
522
- value: function setDelaySubmitClientFeatureEvents(_ref1) {
523
- var shouldDelay = _ref1.shouldDelay,
524
- overrides = _ref1.overrides;
486
+ value: function setDelaySubmitClientFeatureEvents(_ref0) {
487
+ var shouldDelay = _ref0.shouldDelay,
488
+ overrides = _ref0.overrides;
525
489
  this.delaySubmitClientFeatureEvents = shouldDelay;
526
490
  this.delayedClientFeatureEventsOverrides = overrides || {};
527
491
  if (this.isReady && !shouldDelay) {
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_callDiagnosticMetrics","_interopRequireDefault","_behavioralMetrics","_operationalMetrics","_businessMetrics","_preloginMetrics","_preloginMetricsBatcher","_callDiagnosticMetricsLatencies","_callDiagnosticMetrics2","_utils","_Metrics","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","Metrics","_WebexPlugin","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","concat","_defineProperty2","callDiagnosticLatencies","CallDiagnosticLatencies","parent","webex","onReady","_inherits2","_createClass2","key","value","_this2","once","callDiagnosticMetrics","CallDiagnosticMetrics","preLoginMetrics","PreLoginMetrics","PreLoginMetricsBatcher","isReady","setDelaySubmitClientEvents","shouldDelay","delaySubmitClientEvents","overrides","delayedClientEventsOverrides","submitInternalEvent","_ref","name","payload","options","clearTimestamps","saveTimestamp","lazyBuildBehavioralMetrics","behavioralMetrics","BehavioralMetrics","lazyBuildOperationalMetrics","operationalMetrics","OperationalMetrics","lazyBuildBusinessMetrics","businessMetrics","BusinessMetrics","isReadyToSubmitBehavioralEvents","_this$behavioralMetri","_this$behavioralMetri2","isReadyToSubmitEvents","isReadyToSubmitOperationalEvents","_this$operationalMetr","_this$operationalMetr2","isReadyToSubmitBusinessEvents","_this$businessMetrics","_this$businessMetrics2","submitBehavioralEvent","_ref2","product","agent","target","verb","logger","log","_promise","resolve","submitOperationalEvent","_ref3","submitBusinessEvent","_ref4","table","metadata","submitPreLoginEvent","_ref5","preLoginId","submitMQE","_ref6","submitFeatureEvent","_ref7","meetingId","delaySubmitEvent","delaySubmitClientFeatureEvents","submitClientEvent","_ref8","clientMetricsAliasUser","_this3","request","method","api","resource","headers","body","qs","alias","then","res","catch","err","error","generateCommonErrorMetadata","reject","_buildClientEventFetchRequestOptions","_asyncToGenerator2","_regenerator","mark","_callee","_ref9","wrap","_context","prev","next","abrupt","buildClientEventFetchRequestOptions","stop","_x","setMetricTimingsAndFetch","setTimingsAndFetch","setMetricTimings","isServiceErrorExpected","serviceErrorCode","_ref0","submitDelayedClientEvents","setDelaySubmitClientFeatureEvents","_ref1","delayedClientFeatureEventsOverrides","submitDelayedClientFeatureEvents","WebexPlugin","_default","exports"],"sources":["new-metrics.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable valid-jsdoc */\n\n// @ts-ignore\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport CallDiagnosticMetrics from './call-diagnostic/call-diagnostic-metrics';\nimport BehavioralMetrics from './behavioral-metrics';\nimport OperationalMetrics from './operational-metrics';\nimport BusinessMetrics from './business-metrics';\nimport PreLoginMetrics from './prelogin-metrics';\nimport PreLoginMetricsBatcher from './prelogin-metrics-batcher';\nimport {\n RecursivePartial,\n MetricEventProduct,\n MetricEventAgent,\n MetricEventVerb,\n ClientEvent,\n FeatureEvent,\n EventPayload,\n OperationalEvent,\n MediaQualityEvent,\n InternalEvent,\n SubmitClientEventOptions,\n Table,\n DelayedClientEvent,\n DelayedClientFeatureEvent,\n} from './metrics.types';\nimport CallDiagnosticLatencies from './call-diagnostic/call-diagnostic-metrics-latencies';\nimport {setMetricTimings} from './call-diagnostic/call-diagnostic-metrics.util';\nimport {generateCommonErrorMetadata} from './utils';\n\n/**\n * Metrics plugin to centralize all types of metrics.\n * https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?pageId=231011379\n * @class\n */\nclass Metrics extends WebexPlugin {\n // eslint-disable-next-line no-use-before-define\n static instance: Metrics;\n\n // Call Diagnostic latencies\n callDiagnosticLatencies: CallDiagnosticLatencies;\n // Helper classes to handle the different types of metrics\n callDiagnosticMetrics: CallDiagnosticMetrics;\n behavioralMetrics: BehavioralMetrics;\n operationalMetrics: OperationalMetrics;\n businessMetrics: BusinessMetrics;\n preLoginMetrics: PreLoginMetrics;\n isReady = false;\n\n /**\n * Whether or not to delay the submission of client events.\n */\n delaySubmitClientEvents = false;\n\n /**\n * Whether or not to delay the submission of feature events.\n */\n delaySubmitClientFeatureEvents = false;\n\n /**\n * Overrides for delayed client events. E.g. if you want to override the correlationId for all delayed client events, you can set this to { correlationId: 'newCorrelationId' }\n */\n delayedClientEventsOverrides: Partial<DelayedClientEvent['options']> = {};\n\n delayedClientFeatureEventsOverrides: Partial<DelayedClientFeatureEvent['options']> = {};\n\n /**\n * Constructor\n * @param args\n * @constructor\n * @private\n * @returns\n */\n constructor(...args) {\n super(...args);\n\n // @ts-ignore\n this.callDiagnosticLatencies = new CallDiagnosticLatencies({}, {parent: this.webex});\n this.onReady();\n }\n\n /**\n * On Ready\n */\n private onReady() {\n // @ts-ignore\n this.webex.once('ready', () => {\n // @ts-ignore\n this.callDiagnosticMetrics = new CallDiagnosticMetrics({}, {parent: this.webex});\n this.preLoginMetrics = new PreLoginMetrics(\n // @ts-ignore\n new PreLoginMetricsBatcher({}, {parent: this.webex}),\n {},\n // @ts-ignore\n {parent: this.webex}\n );\n this.isReady = true;\n this.setDelaySubmitClientEvents({\n shouldDelay: this.delaySubmitClientEvents,\n overrides: this.delayedClientEventsOverrides,\n });\n });\n }\n\n /**\n * Used for internal purposes only\n * @param args\n */\n submitInternalEvent({\n name,\n payload,\n options,\n }: {\n name: InternalEvent['name'];\n payload?: RecursivePartial<InternalEvent['payload']>;\n options?: any;\n }) {\n if (name === 'internal.reset.join.latencies') {\n this.callDiagnosticLatencies.clearTimestamps();\n } else {\n this.callDiagnosticLatencies.saveTimestamp({key: name});\n }\n }\n\n /**\n * if webex metrics is ready, build behavioral metric backend if not already done.\n */\n private lazyBuildBehavioralMetrics() {\n if (this.isReady && !this.behavioralMetrics) {\n // @ts-ignore\n this.behavioralMetrics = new BehavioralMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * if webex metrics is ready, build operational metric backend if not already done.\n */\n private lazyBuildOperationalMetrics() {\n if (this.isReady && !this.operationalMetrics) {\n // @ts-ignore\n this.operationalMetrics = new OperationalMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * if webex metrics is ready, build business metric backend if not already done.\n */\n private lazyBuildBusinessMetrics() {\n if (this.isReady && !this.businessMetrics) {\n // @ts-ignore\n this.businessMetrics = new BusinessMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * @returns true once we have the deviceId we need to submit behavioral events to Amplitude\n */\n isReadyToSubmitBehavioralEvents() {\n this.lazyBuildBehavioralMetrics();\n\n return this.behavioralMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * @returns true once we have the deviceId we need to submit operational events\n */\n isReadyToSubmitOperationalEvents() {\n this.lazyBuildOperationalMetrics();\n\n return this.operationalMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * @returns true once we have the deviceId we need to submit business events\n */\n isReadyToSubmitBusinessEvents() {\n this.lazyBuildBusinessMetrics();\n\n return this.businessMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * Behavioral event\n * @param args\n */\n submitBehavioralEvent({\n product,\n agent,\n target,\n verb,\n payload,\n }: {\n product: MetricEventProduct;\n agent: MetricEventAgent;\n target: string;\n verb: MetricEventVerb;\n payload?: EventPayload;\n }) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitBehavioralEvent. Attempted to submit before webex.ready: ${product}.${agent}.${target}.${verb}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildBehavioralMetrics();\n\n return this.behavioralMetrics.submitBehavioralEvent({product, agent, target, verb, payload});\n }\n\n /**\n * Operational event\n * @param args\n */\n submitOperationalEvent({name, payload}: {name: string; payload?: EventPayload}) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitOperationalEvent. Attempted to submit before webex.ready: ${name}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildOperationalMetrics();\n\n return this.operationalMetrics.submitOperationalEvent({name, payload});\n }\n\n /**\n * Business event\n * @param args\n */\n submitBusinessEvent({\n name,\n payload,\n table,\n metadata,\n }: {\n name: string;\n payload: EventPayload;\n table?: Table;\n metadata?: EventPayload;\n }) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitBusinessEvent. Attempted to submit before webex.ready: ${name}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildBusinessMetrics();\n\n return this.businessMetrics.submitBusinessEvent({name, payload, table, metadata});\n }\n\n /**\n * Call Analyzer: Pre-Login Event\n * @param args\n */\n submitPreLoginEvent({\n name,\n preLoginId,\n payload,\n metadata,\n }: {\n name: string;\n preLoginId: string;\n payload: EventPayload;\n metadata?: EventPayload;\n }): Promise<void> {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitPreLoginEvent. Attempted to submit before webex.ready: ${name}`\n );\n\n return Promise.resolve();\n }\n\n return this.preLoginMetrics.submitPreLoginEvent({\n name,\n preLoginId,\n payload,\n metadata,\n });\n }\n\n /**\n * Call Analyzer: Media Quality Event\n * @param args\n */\n submitMQE({\n name,\n payload,\n options,\n }: {\n name: MediaQualityEvent['name'];\n payload: RecursivePartial<MediaQualityEvent['payload']> & {\n intervals: MediaQualityEvent['payload']['intervals'];\n };\n options: any;\n }) {\n this.callDiagnosticLatencies.saveTimestamp({key: name});\n this.callDiagnosticMetrics.submitMQE({name, payload, options});\n }\n\n /**\n * Call Analyzer: Feature Usage Event\n * @param args\n */\n submitFeatureEvent({\n name,\n payload,\n options,\n }: {\n name: FeatureEvent['name'];\n payload?: RecursivePartial<FeatureEvent['payload']>;\n options: any;\n }) {\n if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitFeatureEvent. Attempted to submit before webex.ready. Event name: ${name}`\n );\n\n return Promise.resolve();\n }\n this.callDiagnosticLatencies.saveTimestamp({\n key: name,\n options: {meetingId: options?.meetingId},\n });\n\n return this.callDiagnosticMetrics.submitFeatureEvent({\n name,\n payload,\n options,\n delaySubmitEvent: this.delaySubmitClientFeatureEvents,\n });\n }\n\n /**\n * Call Analyzer: Client Event\n * @public\n * @param args\n */\n public submitClientEvent({\n name,\n payload,\n options,\n }: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n }): Promise<any> {\n if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitClientEvent. Attempted to submit before webex.ready. Event name: ${name}`\n );\n\n return Promise.resolve();\n }\n this.callDiagnosticLatencies.saveTimestamp({\n key: name,\n options: {meetingId: options?.meetingId},\n });\n\n return this.callDiagnosticMetrics.submitClientEvent({\n name,\n payload,\n options,\n delaySubmitEvent: this.delaySubmitClientEvents,\n });\n }\n\n /**\n * Issue request to alias a user's pre-login ID with their CI UUID\n * @param {string} preLoginId\n * @returns {Object} HttpResponse object\n */\n public clientMetricsAliasUser(preLoginId: string) {\n // @ts-ignore\n return this.webex\n .request({\n method: 'POST',\n api: 'metrics',\n resource: 'clientmetrics',\n headers: {\n 'x-prelogin-userid': preLoginId,\n },\n body: {},\n qs: {\n alias: true,\n },\n })\n .then((res) => {\n // @ts-ignore\n this.webex.logger.log(`NewMetrics: @clientMetricsAliasUser. Request successful.`);\n\n return res;\n })\n .catch((err) => {\n // @ts-ignore\n this.logger.error(\n `NewMetrics: @clientMetricsAliasUser. Request failed:`,\n `err: ${generateCommonErrorMetadata(err)}`\n );\n\n return Promise.reject(err);\n });\n }\n\n /**\n * Returns a promise that will resolve to fetch options for submitting a metric.\n *\n * This is to support quickly submitting metrics when the browser/tab is closing.\n * Calling submitClientEvent will not work because there some async steps that will\n * not complete before the browser is closed. Instead, we pre-gather all the\n * information/options needed for the request(s), and then simply and quickly\n * fire the fetch(es) when beforeUnload is triggered.\n *\n * We must use fetch instead of request because fetch has a keepalive option that\n * allows the request it to outlive the page.\n *\n * Note: the timings values will be wrong, but setMetricTimingsAndFetch() will\n * properly adjust them before submitting.\n *\n * @public\n * @param {Object} arg\n * @param {String} arg.name - event name\n * @param {Object} arg.payload - event payload\n * @param {Object} arg.options - other options\n * @returns {Promise} promise that resolves to options to be used with fetch\n */\n public async buildClientEventFetchRequestOptions({\n name,\n payload,\n options,\n }: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n }): Promise<any> {\n return this.callDiagnosticMetrics.buildClientEventFetchRequestOptions({\n name,\n payload,\n options,\n });\n }\n\n /**\n * Submits a metric from pre-built request options via the fetch API. Updates\n * the \"$timings\" and \"originTime\" values to Date.now() since the existing times\n * were set when the options were built (not submitted).\n\n * @param {any} options - the pre-built request options for submitting a metric\n * @returns {Promise} promise that resolves to the response object\n */\n public setMetricTimingsAndFetch(options: any): Promise<any> {\n // @ts-ignore\n return this.webex.setTimingsAndFetch(setMetricTimings(options));\n }\n\n /**\n * Returns true if the specified serviceErrorCode maps to an expected error.\n * @param {number} serviceErrorCode the service error code\n * @returns {boolean}\n */\n public isServiceErrorExpected(serviceErrorCode: number): boolean {\n return this.callDiagnosticMetrics.isServiceErrorExpected(serviceErrorCode);\n }\n\n /**\n * Sets the value of delaySubmitClientEvents. If set to true, client events will be delayed until submitDelayedClientEvents is called. If\n * set to false, delayed client events will be submitted.\n *\n * @param {object} options - {shouldDelay: A boolean value indicating whether to delay the submission of client events, overrides: An object containing overrides for the client events}\n */\n public setDelaySubmitClientEvents({\n shouldDelay,\n overrides,\n }: {\n shouldDelay: boolean;\n overrides?: Partial<DelayedClientEvent['options']>;\n }) {\n this.delaySubmitClientEvents = shouldDelay;\n this.delayedClientEventsOverrides = overrides || {};\n\n if (this.isReady && !shouldDelay) {\n return this.callDiagnosticMetrics.submitDelayedClientEvents(overrides);\n }\n\n return Promise.resolve();\n }\n\n /**\n * Sets the value of setDelaySubmitClientFeatureEvents.\n * If set to true, feature events will be delayed until submitDelayedClientFeatureEvents is called.\n * If set to false, delayed feature events will be submitted.\n *\n * @param {object} options - {shouldDelay: A boolean value indicating whether to delay the submission of feature events,\n * overrides: An object containing overrides for the feature events}\n */\n public setDelaySubmitClientFeatureEvents({\n shouldDelay,\n overrides,\n }: {\n shouldDelay: boolean;\n overrides?: Partial<DelayedClientFeatureEvent['options']>;\n }) {\n this.delaySubmitClientFeatureEvents = shouldDelay;\n this.delayedClientFeatureEventsOverrides = overrides || {};\n\n if (this.isReady && !shouldDelay) {\n return this.callDiagnosticMetrics.submitDelayedClientFeatureEvents(overrides);\n }\n\n return Promise.resolve();\n }\n}\n\nexport default Metrics;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_webexCore","require","_callDiagnosticMetrics","_interopRequireDefault","_behavioralMetrics","_operationalMetrics","_businessMetrics","_callDiagnosticMetricsLatencies","_callDiagnosticMetrics2","_utils","_Metrics","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","Metrics","_WebexPlugin","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","concat","_defineProperty2","callDiagnosticLatencies","CallDiagnosticLatencies","parent","webex","onReady","_inherits2","_createClass2","key","value","_this2","once","callDiagnosticMetrics","CallDiagnosticMetrics","isReady","setDelaySubmitClientEvents","shouldDelay","delaySubmitClientEvents","overrides","delayedClientEventsOverrides","submitInternalEvent","_ref","name","payload","options","clearTimestamps","saveTimestamp","lazyBuildBehavioralMetrics","behavioralMetrics","BehavioralMetrics","lazyBuildOperationalMetrics","operationalMetrics","OperationalMetrics","lazyBuildBusinessMetrics","businessMetrics","BusinessMetrics","isReadyToSubmitBehavioralEvents","_this$behavioralMetri","_this$behavioralMetri2","isReadyToSubmitEvents","isReadyToSubmitOperationalEvents","_this$operationalMetr","_this$operationalMetr2","isReadyToSubmitBusinessEvents","_this$businessMetrics","_this$businessMetrics2","submitBehavioralEvent","_ref2","product","agent","target","verb","logger","log","_promise","resolve","submitOperationalEvent","_ref3","submitBusinessEvent","_ref4","table","metadata","submitMQE","_ref5","submitFeatureEvent","_ref6","meetingId","delaySubmitEvent","delaySubmitClientFeatureEvents","submitClientEvent","_ref7","clientMetricsAliasUser","preLoginId","_this3","request","method","api","resource","headers","body","qs","alias","then","res","catch","err","error","generateCommonErrorMetadata","reject","_buildClientEventFetchRequestOptions","_asyncToGenerator2","_regenerator","mark","_callee","_ref8","wrap","_context","prev","next","abrupt","buildClientEventFetchRequestOptions","stop","_x","setMetricTimingsAndFetch","setTimingsAndFetch","setMetricTimings","isServiceErrorExpected","serviceErrorCode","_ref9","submitDelayedClientEvents","setDelaySubmitClientFeatureEvents","_ref0","delayedClientFeatureEventsOverrides","submitDelayedClientFeatureEvents","WebexPlugin","_default","exports"],"sources":["new-metrics.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable valid-jsdoc */\n\n// @ts-ignore\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport CallDiagnosticMetrics from './call-diagnostic/call-diagnostic-metrics';\nimport BehavioralMetrics from './behavioral-metrics';\nimport OperationalMetrics from './operational-metrics';\nimport BusinessMetrics from './business-metrics';\nimport {\n RecursivePartial,\n MetricEventProduct,\n MetricEventAgent,\n MetricEventVerb,\n ClientEvent,\n FeatureEvent,\n EventPayload,\n OperationalEvent,\n MediaQualityEvent,\n InternalEvent,\n SubmitClientEventOptions,\n Table,\n DelayedClientEvent,\n DelayedClientFeatureEvent,\n} from './metrics.types';\nimport CallDiagnosticLatencies from './call-diagnostic/call-diagnostic-metrics-latencies';\nimport {setMetricTimings} from './call-diagnostic/call-diagnostic-metrics.util';\nimport {generateCommonErrorMetadata} from './utils';\n\n/**\n * Metrics plugin to centralize all types of metrics.\n * https://confluence-eng-gpk2.cisco.com/conf/pages/viewpage.action?pageId=231011379\n * @class\n */\nclass Metrics extends WebexPlugin {\n // eslint-disable-next-line no-use-before-define\n static instance: Metrics;\n\n // Call Diagnostic latencies\n callDiagnosticLatencies: CallDiagnosticLatencies;\n // Helper classes to handle the different types of metrics\n callDiagnosticMetrics: CallDiagnosticMetrics;\n behavioralMetrics: BehavioralMetrics;\n operationalMetrics: OperationalMetrics;\n businessMetrics: BusinessMetrics;\n isReady = false;\n\n /**\n * Whether or not to delay the submission of client events.\n */\n delaySubmitClientEvents = false;\n\n /**\n * Whether or not to delay the submission of feature events.\n */\n delaySubmitClientFeatureEvents = false;\n\n /**\n * Overrides for delayed client events. E.g. if you want to override the correlationId for all delayed client events, you can set this to { correlationId: 'newCorrelationId' }\n */\n delayedClientEventsOverrides: Partial<DelayedClientEvent['options']> = {};\n\n delayedClientFeatureEventsOverrides: Partial<DelayedClientFeatureEvent['options']> = {};\n\n /**\n * Constructor\n * @param args\n * @constructor\n * @private\n * @returns\n */\n constructor(...args) {\n super(...args);\n\n // @ts-ignore\n this.callDiagnosticLatencies = new CallDiagnosticLatencies({}, {parent: this.webex});\n this.onReady();\n }\n\n /**\n * On Ready\n */\n private onReady() {\n // @ts-ignore\n this.webex.once('ready', () => {\n // @ts-ignore\n this.callDiagnosticMetrics = new CallDiagnosticMetrics({}, {parent: this.webex});\n this.isReady = true;\n this.setDelaySubmitClientEvents({\n shouldDelay: this.delaySubmitClientEvents,\n overrides: this.delayedClientEventsOverrides,\n });\n });\n }\n\n /**\n * Used for internal purposes only\n * @param args\n */\n submitInternalEvent({\n name,\n payload,\n options,\n }: {\n name: InternalEvent['name'];\n payload?: RecursivePartial<InternalEvent['payload']>;\n options?: any;\n }) {\n if (name === 'internal.reset.join.latencies') {\n this.callDiagnosticLatencies.clearTimestamps();\n } else {\n this.callDiagnosticLatencies.saveTimestamp({key: name});\n }\n }\n\n /**\n * if webex metrics is ready, build behavioral metric backend if not already done.\n */\n private lazyBuildBehavioralMetrics() {\n if (this.isReady && !this.behavioralMetrics) {\n // @ts-ignore\n this.behavioralMetrics = new BehavioralMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * if webex metrics is ready, build operational metric backend if not already done.\n */\n private lazyBuildOperationalMetrics() {\n if (this.isReady && !this.operationalMetrics) {\n // @ts-ignore\n this.operationalMetrics = new OperationalMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * if webex metrics is ready, build business metric backend if not already done.\n */\n private lazyBuildBusinessMetrics() {\n if (this.isReady && !this.businessMetrics) {\n // @ts-ignore\n this.businessMetrics = new BusinessMetrics({}, {parent: this.webex});\n }\n }\n\n /**\n * @returns true once we have the deviceId we need to submit behavioral events to Amplitude\n */\n isReadyToSubmitBehavioralEvents() {\n this.lazyBuildBehavioralMetrics();\n\n return this.behavioralMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * @returns true once we have the deviceId we need to submit operational events\n */\n isReadyToSubmitOperationalEvents() {\n this.lazyBuildOperationalMetrics();\n\n return this.operationalMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * @returns true once we have the deviceId we need to submit business events\n */\n isReadyToSubmitBusinessEvents() {\n this.lazyBuildBusinessMetrics();\n\n return this.businessMetrics?.isReadyToSubmitEvents() ?? false;\n }\n\n /**\n * Behavioral event\n * @param args\n */\n submitBehavioralEvent({\n product,\n agent,\n target,\n verb,\n payload,\n }: {\n product: MetricEventProduct;\n agent: MetricEventAgent;\n target: string;\n verb: MetricEventVerb;\n payload?: EventPayload;\n }) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitBehavioralEvent. Attempted to submit before webex.ready: ${product}.${agent}.${target}.${verb}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildBehavioralMetrics();\n\n return this.behavioralMetrics.submitBehavioralEvent({product, agent, target, verb, payload});\n }\n\n /**\n * Operational event\n * @param args\n */\n submitOperationalEvent({name, payload}: {name: string; payload?: EventPayload}) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitOperationalEvent. Attempted to submit before webex.ready: ${name}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildOperationalMetrics();\n\n return this.operationalMetrics.submitOperationalEvent({name, payload});\n }\n\n /**\n * Business event\n * @param args\n */\n submitBusinessEvent({\n name,\n payload,\n table,\n metadata,\n }: {\n name: string;\n payload: EventPayload;\n table?: Table;\n metadata?: EventPayload;\n }) {\n if (!this.isReady) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitBusinessEvent. Attempted to submit before webex.ready: ${name}`\n );\n\n return Promise.resolve();\n }\n\n this.lazyBuildBusinessMetrics();\n\n return this.businessMetrics.submitBusinessEvent({name, payload, table, metadata});\n }\n\n /**\n * Call Analyzer: Media Quality Event\n * @param args\n */\n submitMQE({\n name,\n payload,\n options,\n }: {\n name: MediaQualityEvent['name'];\n payload: RecursivePartial<MediaQualityEvent['payload']> & {\n intervals: MediaQualityEvent['payload']['intervals'];\n };\n options: any;\n }) {\n this.callDiagnosticLatencies.saveTimestamp({key: name});\n this.callDiagnosticMetrics.submitMQE({name, payload, options});\n }\n\n /**\n * Call Analyzer: Feature Usage Event\n * @param args\n */\n submitFeatureEvent({\n name,\n payload,\n options,\n }: {\n name: FeatureEvent['name'];\n payload?: RecursivePartial<FeatureEvent['payload']>;\n options: any;\n }) {\n if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitFeatureEvent. Attempted to submit before webex.ready. Event name: ${name}`\n );\n\n return Promise.resolve();\n }\n this.callDiagnosticLatencies.saveTimestamp({\n key: name,\n options: {meetingId: options?.meetingId},\n });\n\n return this.callDiagnosticMetrics.submitFeatureEvent({\n name,\n payload,\n options,\n delaySubmitEvent: this.delaySubmitClientFeatureEvents,\n });\n }\n\n /**\n * Call Analyzer: Client Event\n * @public\n * @param args\n */\n public submitClientEvent({\n name,\n payload,\n options,\n }: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n }): Promise<any> {\n if (!this.callDiagnosticLatencies || !this.callDiagnosticMetrics) {\n // @ts-ignore\n this.webex.logger.log(\n `NewMetrics: @submitClientEvent. Attempted to submit before webex.ready. Event name: ${name}`\n );\n\n return Promise.resolve();\n }\n this.callDiagnosticLatencies.saveTimestamp({\n key: name,\n options: {meetingId: options?.meetingId},\n });\n\n return this.callDiagnosticMetrics.submitClientEvent({\n name,\n payload,\n options,\n delaySubmitEvent: this.delaySubmitClientEvents,\n });\n }\n\n /**\n * Issue request to alias a user's pre-login ID with their CI UUID\n * @param {string} preLoginId\n * @returns {Object} HttpResponse object\n */\n public clientMetricsAliasUser(preLoginId: string) {\n // @ts-ignore\n return this.webex\n .request({\n method: 'POST',\n api: 'metrics',\n resource: 'clientmetrics',\n headers: {\n 'x-prelogin-userid': preLoginId,\n },\n body: {},\n qs: {\n alias: true,\n },\n })\n .then((res) => {\n // @ts-ignore\n this.webex.logger.log(`NewMetrics: @clientMetricsAliasUser. Request successful.`);\n\n return res;\n })\n .catch((err) => {\n // @ts-ignore\n this.logger.error(\n `NewMetrics: @clientMetricsAliasUser. Request failed:`,\n `err: ${generateCommonErrorMetadata(err)}`\n );\n\n return Promise.reject(err);\n });\n }\n\n /**\n * Returns a promise that will resolve to fetch options for submitting a metric.\n *\n * This is to support quickly submitting metrics when the browser/tab is closing.\n * Calling submitClientEvent will not work because there some async steps that will\n * not complete before the browser is closed. Instead, we pre-gather all the\n * information/options needed for the request(s), and then simply and quickly\n * fire the fetch(es) when beforeUnload is triggered.\n *\n * We must use fetch instead of request because fetch has a keepalive option that\n * allows the request it to outlive the page.\n *\n * Note: the timings values will be wrong, but setMetricTimingsAndFetch() will\n * properly adjust them before submitting.\n *\n * @public\n * @param {Object} arg\n * @param {String} arg.name - event name\n * @param {Object} arg.payload - event payload\n * @param {Object} arg.options - other options\n * @returns {Promise} promise that resolves to options to be used with fetch\n */\n public async buildClientEventFetchRequestOptions({\n name,\n payload,\n options,\n }: {\n name: ClientEvent['name'];\n payload?: RecursivePartial<ClientEvent['payload']>;\n options?: SubmitClientEventOptions;\n }): Promise<any> {\n return this.callDiagnosticMetrics.buildClientEventFetchRequestOptions({\n name,\n payload,\n options,\n });\n }\n\n /**\n * Submits a metric from pre-built request options via the fetch API. Updates\n * the \"$timings\" and \"originTime\" values to Date.now() since the existing times\n * were set when the options were built (not submitted).\n\n * @param {any} options - the pre-built request options for submitting a metric\n * @returns {Promise} promise that resolves to the response object\n */\n public setMetricTimingsAndFetch(options: any): Promise<any> {\n // @ts-ignore\n return this.webex.setTimingsAndFetch(setMetricTimings(options));\n }\n\n /**\n * Returns true if the specified serviceErrorCode maps to an expected error.\n * @param {number} serviceErrorCode the service error code\n * @returns {boolean}\n */\n public isServiceErrorExpected(serviceErrorCode: number): boolean {\n return this.callDiagnosticMetrics.isServiceErrorExpected(serviceErrorCode);\n }\n\n /**\n * Sets the value of delaySubmitClientEvents. If set to true, client events will be delayed until submitDelayedClientEvents is called. If\n * set to false, delayed client events will be submitted.\n *\n * @param {object} options - {shouldDelay: A boolean value indicating whether to delay the submission of client events, overrides: An object containing overrides for the client events}\n */\n public setDelaySubmitClientEvents({\n shouldDelay,\n overrides,\n }: {\n shouldDelay: boolean;\n overrides?: Partial<DelayedClientEvent['options']>;\n }) {\n this.delaySubmitClientEvents = shouldDelay;\n this.delayedClientEventsOverrides = overrides || {};\n\n if (this.isReady && !shouldDelay) {\n return this.callDiagnosticMetrics.submitDelayedClientEvents(overrides);\n }\n\n return Promise.resolve();\n }\n\n /**\n * Sets the value of setDelaySubmitClientFeatureEvents.\n * If set to true, feature events will be delayed until submitDelayedClientFeatureEvents is called.\n * If set to false, delayed feature events will be submitted.\n *\n * @param {object} options - {shouldDelay: A boolean value indicating whether to delay the submission of feature events,\n * overrides: An object containing overrides for the feature events}\n */\n public setDelaySubmitClientFeatureEvents({\n shouldDelay,\n overrides,\n }: {\n shouldDelay: boolean;\n overrides?: Partial<DelayedClientFeatureEvent['options']>;\n }) {\n this.delaySubmitClientFeatureEvents = shouldDelay;\n this.delayedClientFeatureEventsOverrides = overrides || {};\n\n if (this.isReady && !shouldDelay) {\n return this.callDiagnosticMetrics.submitDelayedClientFeatureEvents(overrides);\n }\n\n return Promise.resolve();\n }\n}\n\nexport default Metrics;\n"],"mappings":"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","ignoreList":[]}
@@ -149,15 +149,6 @@ export default class CallDiagnosticLatencies extends WebexPlugin {
149
149
  * @returns - latency
150
150
  */
151
151
  getStayLobbyTime(): number;
152
- /**
153
- * Stay lobby time capped by a certain timestamp.
154
- * This is to handle the case where the target end timestamp could happen before the lobby is exited,
155
- * for example media-engine.ready or client.ice.end
156
- * This is supposed to be called AFTER the end timestamp happens
157
- * @param endTimestampKey name of the target end event
158
- * @returns - latency
159
- */
160
- getStayLobbyTimeCappedBy(endTimestampKey: MetricEventNames): number;
161
152
  /**
162
153
  * Page JMT
163
154
  * @returns - latency
@@ -80,7 +80,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
80
80
  * @returns
81
81
  */
82
82
  getOrigin(options: GetOriginOptions, meetingId?: string): {
83
- name: "endpoint" | "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mrs" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "sbs" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer";
83
+ name: "addin" | "antares" | "appapi" | "beech" | "breakout" | "calendar" | "cb" | "cca" | "ccc" | "cloudproxy" | "crc" | "edonus" | "endpoint" | "givr" | "hecate" | "hedge" | "hesiod" | "homer" | "idbroker" | "superhomer" | "l2sip" | "linus" | "locus" | "mbs" | "mcc" | "mcs" | "mercury" | "mes" | "mjs" | "mmp" | "mrs" | "mygdon" | "ngpage" | "ngservice" | "oauth" | "orpheus" | "page" | "poros" | "publicapi" | "rhesos" | "sbs" | "terminus" | "tpgw" | "ucc" | "wdm" | "webexivr" | "meetingcontainer";
84
84
  userAgent: string;
85
85
  buildType?: "debug" | "test" | "prod" | "tap" | "analyzer-test";
86
86
  upgradeChannel?: string;
@@ -92,23 +92,21 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
92
92
  environment?: string;
93
93
  newEnvironment?: string;
94
94
  clientInfo?: {
95
- os?: "windows" | "mac" | "ios" | "android" | "chrome" | "linux" | "other" | "android-x64" | "android-arm64" | "uwp-arm64";
95
+ os?: "android" | "android-x64" | "android-arm64" | "chrome" | "ios" | "linux" | "mac" | "other" | "uwp-arm64" | "windows";
96
96
  osVersion?: string;
97
97
  localIP?: string;
98
98
  gatewayIP?: string;
99
99
  macAddress?: string;
100
100
  localNetworkPrefix?: string;
101
101
  publicNetworkPrefix?: string;
102
- browserLaunchMethod?: "url-handler" | "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "thinclient" | "switch-to-web" | "switch-to-native";
103
- cwsStatus?: "starting-converged-mtg" | "webexapp-launched" | "webex-launcher-launched";
104
- cwsVersion?: string;
102
+ browserLaunchMethod?: "activex" | "npapi" | "extension" | "cwsapi" | "java" | "tfs" | "webacd" | "url-handler" | "thinclient" | "switch-to-web" | "switch-to-native";
105
103
  clientLaunchMethod?: "url-handler" | "universal-link" | "voice-command" | "notification" | "manual" | "teams-cross-launch" | "mc-cross-launch" | "cws" | "installer" | "installer-launcher" | "launcher" | "cws-launcher";
106
- urlProtocolLaunchMethod?: "manual" | "auto" | "extension-fallback";
104
+ urlProtocolLaunchMethod?: "auto" | "manual" | "extension-fallback";
107
105
  browser?: string;
108
106
  browserVersion?: string;
109
107
  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" | "TEAMS_PHONE" | "WEBEX_RELAY";
110
- subClientType?: "TEAMS_DEVICE" | "SIP" | "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP_PSTN";
111
- schedulingClientType?: "TEAMS_CLIENT" | "GOOGLE_ADDON" | "PT" | "PUBLIC_API" | "UNIFIED_PAGE" | "WEBEX_PAGE" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN";
108
+ subClientType?: "AUTOMOTIVE_APP" | "BROWSER_EXTENSION" | "DESKTOP_APP" | "DESKTOP_APP_VDI" | "DEVICE_CURRENT" | "DEVICE_LEGACY_2020" | "HOLOGRAM_HEADSET_APP" | "HVDI_APP" | "MIXED" | "MOBILE_APP" | "MOBILE_NETWORK" | "PAGE" | "TEAMS_DEVICE" | "VDI_APP" | "WEB_APP" | "PHONE_NOVUM" | "PHONE_ESPRESSO" | "PHONE_BUMBLEBEE" | "SIP" | "SIP_PSTN";
109
+ schedulingClientType?: "GOOGLE_ADDON" | "GOOGLE_NOTIFICATION_CALENDAR" | "MSFT_NOTIFICATION_ADDIN" | "MSFT_NOTIFICATION_CALENDAR" | "OUTLOOK_ADDIN" | "PT" | "PUBLIC_API" | "TEAMS_CLIENT" | "UNIFIED_PAGE" | "WEBEX_PAGE";
112
110
  clientVersion?: string;
113
111
  clientVersionStatus?: "CURRENT" | "LEGACY" | "UNSUPPORTED";
114
112
  localClientVersion?: string;
@@ -134,14 +132,14 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
134
132
  cpuInfo?: {
135
133
  description: string;
136
134
  numberOfCores: number;
137
- architecture: "unknown" | "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "armv9" | "armv8" | "armv7" | "armv6" | "x86_64" | "x86_32";
135
+ architecture: "intel32" | "intel64" | "amd32" | "amd64" | "arm32" | "arm64" | "unknown";
138
136
  staticPerformance?: string;
139
137
  clockSpeedGigaHertz?: number;
140
- additionalProperties?: never;
138
+ additionalProperties?: false;
141
139
  };
142
140
  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";
143
141
  videoDisplayMode?: "grid-view" | "active-speaker-view";
144
- videoLayoutType?: "auto" | "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare" | "largeGallery" | "autoWithShare";
142
+ videoLayoutType?: "stack" | "stackWithShare" | "sideBySide" | "sideBySideWithShare" | "grid" | "floatingActive" | "floatingThumbnail" | "floatingGrid" | "overlay" | "focus" | "prominent" | "focusWithShare" | "prominentWithShare" | "equal" | "equalWithShare";
145
143
  videoRenderType?: "wme" | "client_d3d" | "client_gdi";
146
144
  vdiInfo?: {};
147
145
  is64BitsClient?: boolean;
@@ -153,16 +151,13 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
153
151
  vendorId?: string;
154
152
  staticPerformanceLevel?: string;
155
153
  staticPerformanceScore?: number;
156
- preInstalledTime?: string;
157
- preInstalledType?: "installer" | "launcher" | "app";
158
- preInstalledVersion?: string;
159
- additionalProperties?: never;
154
+ additionalProperties?: false;
160
155
  };
161
156
  emmVendorId?: string;
162
157
  isHybridMedia?: boolean;
163
158
  originData?: {};
164
159
  serviceVersion?: string;
165
- additionalProperties?: never;
160
+ additionalProperties?: false;
166
161
  };
167
162
  /**
168
163
  * Gather identifier details for call diagnostic payload.
@@ -176,7 +171,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
176
171
  breakoutGroupId?: string;
177
172
  breakoutMoveId?: string;
178
173
  breakoutSessionId?: string;
179
- browserId?: string;
180
174
  ciExchangeTokenUrl?: string;
181
175
  confluenceId?: string;
182
176
  cpaasIdentifiers?: {
@@ -186,7 +180,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
186
180
  imiAppId: string;
187
181
  sessionId: string;
188
182
  sessionInstanceId: string;
189
- additionalProperties?: never;
183
+ additionalProperties?: false;
190
184
  };
191
185
  csdmDeviceUrl?: string;
192
186
  destinationBreakoutSessionId?: string;
@@ -202,7 +196,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
202
196
  ivrId?: string;
203
197
  callId?: string;
204
198
  pairCallId?: string;
205
- llmWebsocketUrl?: string;
206
199
  locusId?: string;
207
200
  locusJoinUrl?: string;
208
201
  locusSessionId?: string;
@@ -216,7 +209,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
216
209
  meetingLookupUrl?: string;
217
210
  meetingOrgId?: string;
218
211
  metricServiceUrl?: string;
219
- mercuryWebsocketUrl?: string;
220
212
  msteamsTenantGuid?: string;
221
213
  msteamsConferenceId?: string;
222
214
  msteamsMeetingId?: string;
@@ -230,7 +222,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
230
222
  sipSessionId?: {
231
223
  local?: string;
232
224
  remote?: string;
233
- additionalProperties?: never;
225
+ additionalProperties?: false;
234
226
  };
235
227
  sipUri?: string;
236
228
  subConfId?: string;
@@ -258,7 +250,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
258
250
  idForEndpointAB?: string;
259
251
  customerOrgId?: string;
260
252
  correlationId: string;
261
- additionalProperties?: never;
253
+ additionalProperties?: false;
262
254
  } | {
263
255
  aggregatedBreakoutMoveId?: string;
264
256
  attendeeId?: string;
@@ -266,7 +258,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
266
258
  breakoutGroupId?: string;
267
259
  breakoutMoveId?: string;
268
260
  breakoutSessionId?: string;
269
- browserId?: string;
270
261
  ciExchangeTokenUrl?: string;
271
262
  confluenceId?: string;
272
263
  cpaasIdentifiers?: {
@@ -276,7 +267,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
276
267
  imiAppId: string;
277
268
  sessionId: string;
278
269
  sessionInstanceId: string;
279
- additionalProperties?: never;
270
+ additionalProperties?: false;
280
271
  };
281
272
  csdmDeviceUrl?: string;
282
273
  destinationBreakoutSessionId?: string;
@@ -292,7 +283,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
292
283
  ivrId?: string;
293
284
  callId?: string;
294
285
  pairCallId?: string;
295
- llmWebsocketUrl?: string;
296
286
  locusId?: string;
297
287
  locusJoinUrl?: string;
298
288
  locusSessionId?: string;
@@ -306,7 +296,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
306
296
  meetingLookupUrl?: string;
307
297
  meetingOrgId?: string;
308
298
  metricServiceUrl?: string;
309
- mercuryWebsocketUrl?: string;
310
299
  msteamsTenantGuid?: string;
311
300
  msteamsConferenceId?: string;
312
301
  msteamsMeetingId?: string;
@@ -320,7 +309,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
320
309
  sipSessionId?: {
321
310
  local?: string;
322
311
  remote?: string;
323
- additionalProperties?: never;
312
+ additionalProperties?: false;
324
313
  };
325
314
  sipUri?: string;
326
315
  subConfId?: string;
@@ -348,7 +337,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
348
337
  idForEndpointAB?: string;
349
338
  customerOrgId?: string;
350
339
  correlationId: string;
351
- additionalProperties?: never;
340
+ additionalProperties?: false;
352
341
  } | {
353
342
  aggregatedBreakoutMoveId?: string;
354
343
  attendeeId?: string;
@@ -356,7 +345,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
356
345
  breakoutGroupId?: string;
357
346
  breakoutMoveId?: string;
358
347
  breakoutSessionId?: string;
359
- browserId?: string;
360
348
  ciExchangeTokenUrl?: string;
361
349
  confluenceId?: string;
362
350
  cpaasIdentifiers?: {
@@ -366,7 +354,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
366
354
  imiAppId: string;
367
355
  sessionId: string;
368
356
  sessionInstanceId: string;
369
- additionalProperties?: never;
357
+ additionalProperties?: false;
370
358
  };
371
359
  csdmDeviceUrl?: string;
372
360
  destinationBreakoutSessionId?: string;
@@ -382,7 +370,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
382
370
  ivrId?: string;
383
371
  callId?: string;
384
372
  pairCallId?: string;
385
- llmWebsocketUrl?: string;
386
373
  locusId?: string;
387
374
  locusJoinUrl?: string;
388
375
  locusSessionId?: string;
@@ -396,7 +383,6 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
396
383
  meetingLookupUrl?: string;
397
384
  meetingOrgId?: string;
398
385
  metricServiceUrl?: string;
399
- mercuryWebsocketUrl?: string;
400
386
  msteamsTenantGuid?: string;
401
387
  msteamsConferenceId?: string;
402
388
  msteamsMeetingId?: string;
@@ -410,7 +396,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
410
396
  sipSessionId?: {
411
397
  local?: string;
412
398
  remote?: string;
413
- additionalProperties?: never;
399
+ additionalProperties?: false;
414
400
  };
415
401
  sipUri?: string;
416
402
  subConfId?: string;
@@ -438,7 +424,7 @@ export default class CallDiagnosticMetrics extends StatelessWebexPlugin {
438
424
  idForEndpointAB?: string;
439
425
  customerOrgId?: string;
440
426
  correlationId: string;
441
- additionalProperties?: never;
427
+ additionalProperties?: false;
442
428
  };
443
429
  /**
444
430
  * Create diagnostic event, which can hold client event, feature event or MQE event data.