@webex/internal-plugin-metrics 3.11.0 → 3.12.0-llmrefactor.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/automated-user.js +19 -0
- package/dist/automated-user.js.map +1 -0
- package/dist/batcher.js +3 -0
- package/dist/batcher.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +639 -65
- package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics.js +168 -76
- package/dist/call-diagnostic/call-diagnostic-metrics.js.map +1 -1
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js +18 -4
- package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +1 -1
- package/dist/call-diagnostic/config.js +17 -3
- package/dist/call-diagnostic/config.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/generic-metrics.js +8 -6
- package/dist/generic-metrics.js.map +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/metrics.js +1 -1
- package/dist/metrics.types.js +4 -0
- package/dist/metrics.types.js.map +1 -1
- package/dist/new-metrics.js +105 -26
- package/dist/new-metrics.js.map +1 -1
- package/dist/prelogin-metrics.js +106 -0
- package/dist/prelogin-metrics.js.map +1 -0
- package/dist/privacy-and-security-permission-enricher/constants.js +18 -0
- package/dist/privacy-and-security-permission-enricher/constants.js.map +1 -0
- package/dist/privacy-and-security-permission-enricher/index.js +143 -0
- package/dist/privacy-and-security-permission-enricher/index.js.map +1 -0
- package/dist/privacy-and-security-permission-enricher/types.js +7 -0
- package/dist/privacy-and-security-permission-enricher/types.js.map +1 -0
- package/dist/privacy-and-security-permission-enricher/utils.js +71 -0
- package/dist/privacy-and-security-permission-enricher/utils.js.map +1 -0
- package/dist/types/automated-user.d.ts +2 -0
- package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +208 -5
- package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +79 -15
- package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +5 -0
- package/dist/types/call-diagnostic/config.d.ts +5 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/index.d.ts +6 -3
- package/dist/types/metrics.types.d.ts +9 -4
- package/dist/types/new-metrics.d.ts +29 -1
- package/dist/types/prelogin-metrics.d.ts +47 -0
- package/dist/types/privacy-and-security-permission-enricher/constants.d.ts +6 -0
- package/dist/types/privacy-and-security-permission-enricher/index.d.ts +40 -0
- package/dist/types/privacy-and-security-permission-enricher/types.d.ts +14 -0
- package/dist/types/privacy-and-security-permission-enricher/utils.d.ts +5 -0
- package/package.json +12 -11
- package/src/automated-user.ts +16 -0
- package/src/batcher.js +4 -0
- package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +800 -75
- package/src/call-diagnostic/call-diagnostic-metrics.ts +102 -15
- package/src/call-diagnostic/call-diagnostic-metrics.util.ts +22 -2
- package/src/call-diagnostic/config.ts +15 -0
- package/src/config.js +1 -0
- package/src/generic-metrics.ts +6 -6
- package/src/index.ts +9 -0
- package/src/metrics.types.ts +27 -5
- package/src/new-metrics.ts +95 -6
- package/src/prelogin-metrics.ts +94 -0
- package/src/privacy-and-security-permission-enricher/constants.ts +33 -0
- package/src/privacy-and-security-permission-enricher/index.ts +142 -0
- package/src/privacy-and-security-permission-enricher/types.ts +21 -0
- package/src/privacy-and-security-permission-enricher/utils.ts +82 -0
- package/test/unit/spec/automated-user.ts +43 -0
- package/test/unit/spec/batcher.js +43 -0
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +47 -11
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +1550 -416
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +887 -159
- package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +61 -3
- package/test/unit/spec/new-metrics.ts +183 -50
- package/test/unit/spec/prelogin-metrics-batcher.ts +71 -36
- package/test/unit/spec/prelogin-metrics.ts +132 -0
- package/test/unit/spec/privacy-and-security-permission-enricher.ts +318 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ClientEvent as RawClientEvent, Event as RawEvent, MediaQualityEvent as RawMediaQualityEvent, FeatureEvent as RawFeatureEvent } from '@webex/event-dictionary-ts';
|
|
1
|
+
import type { ClientEvent as RawClientEvent, Event as RawEvent, MediaQualityEvent as RawMediaQualityEvent, FeatureEvent as RawFeatureEvent } from '@webex/event-dictionary-ts';
|
|
2
2
|
export type Event = Omit<RawEvent, 'event'> & {
|
|
3
3
|
event: RawClientEvent | RawMediaQualityEvent | RawFeatureEvent;
|
|
4
4
|
};
|
|
@@ -8,6 +8,9 @@ export type NewEnvironmentType = NonNullable<RawEvent['origin']['newEnvironment'
|
|
|
8
8
|
export type ClientLaunchMethodType = NonNullable<RawEvent['origin']['clientInfo']>['clientLaunchMethod'];
|
|
9
9
|
export type ClientUserNameInput = NonNullable<RawClientEvent['userNameInput']>;
|
|
10
10
|
export type ClientEmailInput = NonNullable<RawClientEvent['emailInput']>;
|
|
11
|
+
export type PrivacyAndSecurityPermission = NonNullable<RawClientEvent['privacyAndSecurityPermission']>;
|
|
12
|
+
export type PrivacyAndSecurityPermissionResource = keyof PrivacyAndSecurityPermission;
|
|
13
|
+
export type PrivacyAndSecurityPermissionState = PrivacyAndSecurityPermission[PrivacyAndSecurityPermissionResource];
|
|
11
14
|
export type BrowserLaunchMethodType = NonNullable<RawEvent['origin']['clientInfo']>['browserLaunchMethod'];
|
|
12
15
|
export type MetricEventProduct = 'webex' | 'wxcc_desktop' | 'wxcc_crm' | 'wxcc_sdk';
|
|
13
16
|
export type MetricEventAgent = 'user' | 'browser' | 'system' | 'sdk' | 'redux' | 'service' | 'api';
|
|
@@ -41,8 +44,10 @@ export type SubmitMQEOptions = {
|
|
|
41
44
|
webexConferenceIdStr?: string;
|
|
42
45
|
globalMeetingId?: string;
|
|
43
46
|
};
|
|
47
|
+
export declare const LOCUS_SYNC_LATENCY_EVENT_NAMES: readonly ["internal.client.locus.sync.start", "internal.client.locus.hashtree.request", "internal.client.locus.hashtree.response", "internal.client.locus.sync.request", "internal.client.locus.sync.response", "internal.client.locus.sync.message.received"];
|
|
48
|
+
export type LocusSyncLatencyEventName = (typeof LOCUS_SYNC_LATENCY_EVENT_NAMES)[number];
|
|
44
49
|
export type InternalEvent = {
|
|
45
|
-
name: 'internal.client.meetinginfo.request' | 'internal.client.meetinginfo.response' | 'internal.register.device.request' | 'internal.register.device.response' | 'internal.reset.join.latencies' | 'internal.
|
|
50
|
+
name: 'internal.client.meetinginfo.request' | 'internal.client.meetinginfo.response' | 'internal.register.device.request' | 'internal.register.device.response' | 'internal.reset.join.latencies' | 'internal.host.meeting.participant.admitted' | 'internal.client.meeting.interstitial-window.showed' | 'internal.client.interstitial-window.click.joinbutton' | 'internal.client.add-media.turn-discovery.start' | 'internal.client.add-media.turn-discovery.end' | 'internal.client.share.initiated' | 'internal.client.share.stopped' | LocusSyncLatencyEventName;
|
|
46
51
|
payload?: never;
|
|
47
52
|
options?: never;
|
|
48
53
|
};
|
|
@@ -73,7 +78,7 @@ export interface BusinessEventPayload {
|
|
|
73
78
|
metricName: string;
|
|
74
79
|
timestamp: number;
|
|
75
80
|
context: DeviceContext;
|
|
76
|
-
browserDetails:
|
|
81
|
+
browserDetails: object;
|
|
77
82
|
value: EventPayload;
|
|
78
83
|
}
|
|
79
84
|
export interface BusinessEvent {
|
|
@@ -154,7 +159,7 @@ export type BuildClientEventFetchRequestOptions = (args: {
|
|
|
154
159
|
payload?: RecursivePartial<ClientEvent['payload']>;
|
|
155
160
|
options?: SubmitClientEventOptions;
|
|
156
161
|
}) => Promise<any>;
|
|
157
|
-
export type PreComputedLatencies = 'internal.client.pageJMT' | 'internal.download.time' | 'internal.get.cluster.time' | 'internal.click.to.interstitial' | 'internal.click.to.interstitial.with.user.delay' | 'internal.refresh.captcha.time' | 'internal.exchange.ci.token.time' | 'internal.get.u2c.time' | 'internal.call.init.join.req' | 'internal.other.app.api.time' | 'internal.api.fetch.intelligence.models';
|
|
162
|
+
export type PreComputedLatencies = 'internal.client.pageJMT' | 'internal.download.time' | 'internal.get.cluster.time' | 'internal.click.to.interstitial' | 'internal.click.to.interstitial.with.user.delay' | 'internal.click.to.interstitial.for.client.jmt' | 'internal.refresh.captcha.time' | 'internal.exchange.ci.token.time' | 'internal.get.u2c.time' | 'internal.call.init.join.req' | 'internal.other.app.api.time' | 'internal.api.fetch.intelligence.models' | 'internal.client.locus.sync.random.backoff';
|
|
158
163
|
export interface IdType {
|
|
159
164
|
meetingId?: string;
|
|
160
165
|
callId?: string;
|
|
@@ -3,7 +3,8 @@ import CallDiagnosticMetrics from './call-diagnostic/call-diagnostic-metrics';
|
|
|
3
3
|
import BehavioralMetrics from './behavioral-metrics';
|
|
4
4
|
import OperationalMetrics from './operational-metrics';
|
|
5
5
|
import BusinessMetrics from './business-metrics';
|
|
6
|
-
import
|
|
6
|
+
import PreLoginMetrics from './prelogin-metrics';
|
|
7
|
+
import { RecursivePartial, MetricEventProduct, MetricEventAgent, MetricEventVerb, ClientEvent, FeatureEvent, EventPayload, MediaQualityEvent, InternalEvent, SubmitClientEventOptions, Table, DelayedClientEvent, DelayedClientFeatureEvent, PrivacyAndSecurityPermission } from './metrics.types';
|
|
7
8
|
import CallDiagnosticLatencies from './call-diagnostic/call-diagnostic-metrics-latencies';
|
|
8
9
|
/**
|
|
9
10
|
* Metrics plugin to centralize all types of metrics.
|
|
@@ -17,6 +18,7 @@ declare class Metrics extends WebexPlugin {
|
|
|
17
18
|
behavioralMetrics: BehavioralMetrics;
|
|
18
19
|
operationalMetrics: OperationalMetrics;
|
|
19
20
|
businessMetrics: BusinessMetrics;
|
|
21
|
+
preLoginMetrics: PreLoginMetrics;
|
|
20
22
|
isReady: boolean;
|
|
21
23
|
/**
|
|
22
24
|
* Whether or not to delay the submission of client events.
|
|
@@ -31,6 +33,7 @@ declare class Metrics extends WebexPlugin {
|
|
|
31
33
|
*/
|
|
32
34
|
delayedClientEventsOverrides: Partial<DelayedClientEvent['options']>;
|
|
33
35
|
delayedClientFeatureEventsOverrides: Partial<DelayedClientFeatureEvent['options']>;
|
|
36
|
+
private privacyAndSecurityPermissionEnricher;
|
|
34
37
|
/**
|
|
35
38
|
* Constructor
|
|
36
39
|
* @param args
|
|
@@ -76,6 +79,10 @@ declare class Metrics extends WebexPlugin {
|
|
|
76
79
|
* @returns true once we have the deviceId we need to submit business events
|
|
77
80
|
*/
|
|
78
81
|
isReadyToSubmitBusinessEvents(): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* @returns whether the current user agent belongs to an automated user
|
|
84
|
+
*/
|
|
85
|
+
isAutomatedUser(): boolean;
|
|
79
86
|
/**
|
|
80
87
|
* Behavioral event
|
|
81
88
|
* @param args
|
|
@@ -105,6 +112,16 @@ declare class Metrics extends WebexPlugin {
|
|
|
105
112
|
table?: Table;
|
|
106
113
|
metadata?: EventPayload;
|
|
107
114
|
}): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Call Analyzer: Pre-Login Event
|
|
117
|
+
* @param args
|
|
118
|
+
*/
|
|
119
|
+
submitPreLoginEvent({ name, preLoginId, payload, metadata, }: {
|
|
120
|
+
name: string;
|
|
121
|
+
preLoginId: string;
|
|
122
|
+
payload: EventPayload;
|
|
123
|
+
metadata?: EventPayload;
|
|
124
|
+
}): Promise<void>;
|
|
108
125
|
/**
|
|
109
126
|
* Call Analyzer: Media Quality Event
|
|
110
127
|
* @param args
|
|
@@ -135,6 +152,17 @@ declare class Metrics extends WebexPlugin {
|
|
|
135
152
|
payload?: RecursivePartial<ClientEvent['payload']>;
|
|
136
153
|
options?: SubmitClientEventOptions;
|
|
137
154
|
}): Promise<any>;
|
|
155
|
+
/**
|
|
156
|
+
* Stores the latest browser permission state supplied by the client.
|
|
157
|
+
* @param permission latest normalized permission snapshot
|
|
158
|
+
*/
|
|
159
|
+
setPrivacyAndSecurityPermission(permission: PrivacyAndSecurityPermission): void;
|
|
160
|
+
/**
|
|
161
|
+
* Resolves event options to the call identity used by Call Diagnostic where possible.
|
|
162
|
+
* @param options client event options
|
|
163
|
+
* @returns the permission history scope
|
|
164
|
+
*/
|
|
165
|
+
private getPermissionScope;
|
|
138
166
|
/**
|
|
139
167
|
* Issue request to alias a user's pre-login ID with their CI UUID
|
|
140
168
|
* @param {string} preLoginId
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import GenericMetrics from './generic-metrics';
|
|
2
|
+
import { EventPayload } from './metrics.types';
|
|
3
|
+
import PreLoginMetricsBatcher from './prelogin-metrics-batcher';
|
|
4
|
+
/**
|
|
5
|
+
* @description Util class to handle PreLogin Metrics
|
|
6
|
+
* @export
|
|
7
|
+
* @class PreLoginMetrics
|
|
8
|
+
*/
|
|
9
|
+
export default class PreLoginMetrics extends GenericMetrics {
|
|
10
|
+
private preLoginMetricsBatcher;
|
|
11
|
+
/**
|
|
12
|
+
* Constructor
|
|
13
|
+
* @param {PreLoginMetricsBatcher} preLoginMetricsBatcher - Pre-login metrics batcher
|
|
14
|
+
* @param {any} attrs - Attributes
|
|
15
|
+
* @param {any} options - Options
|
|
16
|
+
* @constructor
|
|
17
|
+
*/
|
|
18
|
+
constructor(preLoginMetricsBatcher: typeof PreLoginMetricsBatcher, attrs?: any, options?: {
|
|
19
|
+
parent?: any;
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Submit a business metric to our metrics endpoint.
|
|
23
|
+
* Routes to the correct table with the correct schema payload by table.
|
|
24
|
+
* @see https://confluence-eng-gpk2.cisco.com/conf/display/WAP/Business+metrics++-%3E+ROMA
|
|
25
|
+
* @param {Object} options - The options object
|
|
26
|
+
* @param {string} options.name - Name of the metric
|
|
27
|
+
* @param {string} options.preLoginId - ID to identify pre-login user
|
|
28
|
+
* @param {EventPayload} options.payload - User payload of the metric
|
|
29
|
+
* @param {EventPayload} [options.metadata] - Optional metadata to include outside of eventPayload.value
|
|
30
|
+
* @returns {Promise<void>} Promise that resolves when the metric is submitted
|
|
31
|
+
*/
|
|
32
|
+
submitPreLoginEvent({ name, preLoginId, payload, metadata, }: {
|
|
33
|
+
name: string;
|
|
34
|
+
preLoginId: string;
|
|
35
|
+
payload: EventPayload;
|
|
36
|
+
metadata?: EventPayload;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Builds a formatted event object for metrics submission.
|
|
40
|
+
* @param {string} metricName - Metric name
|
|
41
|
+
* @param {string} preLoginId - Pre-login user identifier
|
|
42
|
+
* @param {EventPayload} payload - Metric payload data
|
|
43
|
+
* @param {EventPayload} metadata - Additional metadata to include in the event
|
|
44
|
+
* @returns {object} Formatted metrics event object with type, eventPayload, and timestamp
|
|
45
|
+
*/
|
|
46
|
+
private buildEvent;
|
|
47
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PermissionEnrichmentPolicy } from './types';
|
|
2
|
+
export declare const CAMERA_AND_MICROPHONE_PERMISSION_EVENTS: Set<"client.abort.join" | "client.alert.displayed" | "client.alert.removed" | "client.application.validate" | "client.audio.noise.removal" | "client.breakout-session.join.request" | "client.breakout-session.join.response" | "client.breakout-session.leave" | "client.breakout-session.move.request" | "client.breakout-session.move.response" | "client.call.aborted" | "client.call.declined" | "client.call.fallback" | "client.call.diagnostics" | "client.call.displayed" | "client.call.info" | "client.call.initiated" | "client.call.leave" | "client.call.move-media" | "client.call.remote-ended" | "client.call.remote-started" | "client.call.skip-locus-join" | "client.ci.exchange-token.request" | "client.ci.exchange-token.response" | "client.conversation.request" | "client.conversation.response" | "client.click.pre-join" | "client.crash" | "client.daemon.join.begin" | "client.daemon.job.done" | "client.daemon.launch-meeting-process" | "client.daemon.pending-on-existing-upgrade-job" | "client.daemon.query-site-info" | "client.daemon.upgrade-and-join" | "client.daemon.wakeup-meeting-client" | "client.duplicate.join" | "client.device.resource-room.joined" | "client.dialog-window.dismissed" | "client.dialog-window.selected" | "client.dialog-window.showed" | "client.e2ee.join.response" | "client.embedded-authorize-page.loaded" | "client.embedded-object-info" | "client.entering-background" | "client.entering-foreground" | "client.exit.app" | "client.gesture.recognition" | "client.hologram.initiated" | "client.hologram.stopped" | "client.hologram.remote.initiated" | "client.hologram.remote.stopped" | "client.hung" | "client.ice.end" | "client.ice.start" | "client.idbroker.authorize.request" | "client.idbroker.authorize.response" | "client.idbroker.client-credential.request" | "client.idbroker.client-credential.response" | "client.idbroker.cloud-reduced-scope.request" | "client.idbroker.direct-authorize.request" | "client.idbroker.direct-authorize.response" | "client.idbroker.cloud-reduced-scope.response" | "client.idbroker.exchange-token.request" | "client.idbroker.exchange-token.response" | "client.idbroker.kms-reduced-scope.request" | "client.idbroker.kms-reduced-scope.response" | "client.idbroker.scim.request" | "client.idbroker.scim.response" | "client.idbroker.user-invoke.request" | "client.idbroker.user-invoke.response" | "client.installer.start" | "client.installer.end" | "client.installer.download-app" | "client.installer.decompress-app" | "client.installer.fallback" | "client.installer.install-app" | "client.installer.launch-app" | "client.installer.switch.to.webapp" | "client.launcher.start" | "client.launcher.selfupgrade.start" | "client.launcher.selfupgrade.end" | "client.launcher.downloadapp.start" | "client.launcher.downloadapp.end" | "client.launcher.launchapp" | "client.launcher.end" | "client.launcher.restart.begin" | "client.launcher.restart.end" | "client.license.activations.request" | "client.license.activations.response" | "client.llm.connect.response" | "client.interstitial-window.launched" | "client.interstitial-window.start-launch" | "client.ivr.join.request" | "client.ivr.join.response" | "client.ivr.leave.request" | "client.ivr.leave.response" | "client.ivr.notify.request" | "client.ivr.notify.response" | "client.lobby.entered" | "client.lobby.exited" | "client.locus.decline.request" | "client.locus.join.request" | "client.locus.join.response" | "client.locus.leave.request" | "client.locus.leave.response" | "client.locus.media.request" | "client.locus.media.response" | "client.locus.sync.complete" | "client.media-engine.crash" | "client.media-engine.launched" | "client.media-engine.lost" | "client.media-engine.local-sdp-generated" | "client.media-engine.ready" | "client.media-engine.remote-sdp-received" | "client.media-engine.start-launch" | "client.media-device.ready" | "client.media-device.stop" | "client.media-device.error" | "client.media-status" | "client.media.capabilities" | "client.media.ready" | "client.media.reachability" | "client.media.reconnecting" | "client.media.recovered" | "client.media.render.start" | "client.media.render.stop" | "client.media.rx.start" | "client.media.rx.stop" | "client.media.share.csi.changed" | "client.media.tx.start" | "client.media.tx.stop" | "client.meetinginfo.request" | "client.meetinginfo.response" | "client.meetingmanagersdk.ipc.run" | "client.meeting.app-loaded" | "client.meeting.breakout-session.action" | "client.meeting.breakout-session.summary" | "client.meeting.browser-plugin.started" | "client.meeting.click.joinbutton" | "client.meeting.closed" | "client.meeting.disclaimer-window.accepted" | "client.meeting.disclaimer-window.closed" | "client.meeting.disclaimer-window.showed" | "client.meeting.docshow.request" | "client.meeting.docshow.response" | "client.meeting.e2e.u2c.response" | "client.meeting.e2e.wca.response" | "client.meeting.e2e.key.response" | "client.meeting.e2ee.u2c.response" | "client.meeting.e2ee.wca.response" | "client.meeting.e2ee.key.response" | "client.meeting.gpc.download" | "client.meeting.gpcparameter.request" | "client.meeting.gpcparameter.response" | "client.meeting.interstitial-window.closed" | "client.meeting.interstitial-window.showed" | "client.meeting.join.request" | "client.meeting.key-information" | "client.meeting.launched" | "client.meeting.login-window.clicked" | "client.meeting.login-window.closed" | "client.meeting.login-window.showed" | "client.meeting.login.response" | "client.meeting.people-insights.check.response" | "client.meeting.people-insights.query.response" | "client.meeting.ping.request" | "client.meeting.ping.response" | "client.meeting.plugin-extension.started" | "client.meeting.resume" | "client.meeting.report-log" | "client.meeting.session.connected" | "client.meeting.start-webexapp" | "client.meeting.start-launch" | "client.meeting.summary" | "client.meeting.user-action" | "client.meeting.validated" | "client.meeting.VDI.detect.plugin.response" | "client.meeting.VDI.connect.plugin.response" | "client.mercury.connection.lost" | "client.mercury.connection.restored" | "client.mercury.connection.start" | "client.mercury.connection.connected" | "client.multistream.sca.rx" | "client.multistream.sca.tx" | "client.multistream.scr.rx" | "client.multistream.scr.tx" | "client.muted" | "client.network.changed" | "client.notification.received" | "client.onboarding-window.start" | "client.onboarding-window.end" | "client.permission.closed" | "client.permission.prompted" | "client.pin.collected" | "client.pin.prompt" | "client.post.meeting.hook" | "client.pstnaudio.attempt.correlation" | "client.pstnaudio.attempt.finish" | "client.pstnaudio.attempt.skip" | "client.pstnaudio.attempt.start" | "client.roap-message.received" | "client.roap-message.sent" | "client.scheduling.initiate" | "client.scheduling.notification" | "client.share.floor-accept.notification" | "client.share.floor-grant.cancel-request" | "client.share.floor-grant.notification" | "client.share.floor-grant.request" | "client.share.floor-granted.local" | "client.share.initiated" | "client.share.layout.displayed" | "client.share.paused" | "client.share.selected-app" | "client.share.stopped" | "client.sign-in.start" | "client.sign-in.end" | "client.started-after-shutdown" | "client.started-from-crash" | "client.stuntrace.failed" | "client.switch.app" | "client.terminate.app" | "client.unmuted" | "client.webexapp.start-launch" | "client.webexapp.launched" | "client.login.start" | "client.login.end" | "client.startup.start" | "client.startup.end" | "client.switch.environment" | "client.u2c.limited-catalog.request" | "client.u2c.limited-catalog.response" | "client.u2c.signin-catalog.request" | "client.u2c.signin-catalog.response" | "client.upgrade-window.accepted" | "client.upgrade-window.closed" | "client.upgrade-window.showed" | "client.waiting.user-action" | "client.warhol.downloaded" | "client.wdm.device-registration.request" | "client.wdm.device-registration.response" | "client.webapp-download.start" | "client.webapp-download.in-progress" | "client.webapp-download.end" | "client.whiteboard.loaded" | "client.call.survey.trigger" | "meeting.initiated" | "meeting.converged.initiated" | "meeting.joined" | "page.click.pre-join" | "page.client.abort.join" | "page.client.interstitial-window.launched" | "page.meeting.browser-reset" | "page.meeting.close-browser" | "page.meeting.extension.started" | "page.meeting.extension.app.starting" | "page.meeting.extension.app.started" | "page.meeting.join-fallback.dismiss" | "page.meeting.join-fallback" | "page.meeting.launch-thinclient" | "page.meeting.launched-duplicate.context" | "page.meeting.loading" | "page.meeting.mobile.call" | "page.meeting.mobile.download" | "page.meeting.mobile.join-link" | "page.meeting.plugin.launch-meeting" | "page.meeting.run-plugin" | "page.meeting.switch.to.webapp" | "page.meeting.testing-plugin" | "page.meeting.testing-plugin.finished" | "page.meeting.tfs.start-download" | "page.meeting.urlprotocol.detect" | "page.meeting.waiting.user-action" | "page.meeting.webexapp.launched" | "page.meeting.webinstaller.started" | "page.meeting.webinstaller.ended" | "client.feature.ptplugin.distribution">;
|
|
3
|
+
export declare const MEDIA_TX_PERMISSION_EVENTS: Set<"client.abort.join" | "client.alert.displayed" | "client.alert.removed" | "client.application.validate" | "client.audio.noise.removal" | "client.breakout-session.join.request" | "client.breakout-session.join.response" | "client.breakout-session.leave" | "client.breakout-session.move.request" | "client.breakout-session.move.response" | "client.call.aborted" | "client.call.declined" | "client.call.fallback" | "client.call.diagnostics" | "client.call.displayed" | "client.call.info" | "client.call.initiated" | "client.call.leave" | "client.call.move-media" | "client.call.remote-ended" | "client.call.remote-started" | "client.call.skip-locus-join" | "client.ci.exchange-token.request" | "client.ci.exchange-token.response" | "client.conversation.request" | "client.conversation.response" | "client.click.pre-join" | "client.crash" | "client.daemon.join.begin" | "client.daemon.job.done" | "client.daemon.launch-meeting-process" | "client.daemon.pending-on-existing-upgrade-job" | "client.daemon.query-site-info" | "client.daemon.upgrade-and-join" | "client.daemon.wakeup-meeting-client" | "client.duplicate.join" | "client.device.resource-room.joined" | "client.dialog-window.dismissed" | "client.dialog-window.selected" | "client.dialog-window.showed" | "client.e2ee.join.response" | "client.embedded-authorize-page.loaded" | "client.embedded-object-info" | "client.entering-background" | "client.entering-foreground" | "client.exit.app" | "client.gesture.recognition" | "client.hologram.initiated" | "client.hologram.stopped" | "client.hologram.remote.initiated" | "client.hologram.remote.stopped" | "client.hung" | "client.ice.end" | "client.ice.start" | "client.idbroker.authorize.request" | "client.idbroker.authorize.response" | "client.idbroker.client-credential.request" | "client.idbroker.client-credential.response" | "client.idbroker.cloud-reduced-scope.request" | "client.idbroker.direct-authorize.request" | "client.idbroker.direct-authorize.response" | "client.idbroker.cloud-reduced-scope.response" | "client.idbroker.exchange-token.request" | "client.idbroker.exchange-token.response" | "client.idbroker.kms-reduced-scope.request" | "client.idbroker.kms-reduced-scope.response" | "client.idbroker.scim.request" | "client.idbroker.scim.response" | "client.idbroker.user-invoke.request" | "client.idbroker.user-invoke.response" | "client.installer.start" | "client.installer.end" | "client.installer.download-app" | "client.installer.decompress-app" | "client.installer.fallback" | "client.installer.install-app" | "client.installer.launch-app" | "client.installer.switch.to.webapp" | "client.launcher.start" | "client.launcher.selfupgrade.start" | "client.launcher.selfupgrade.end" | "client.launcher.downloadapp.start" | "client.launcher.downloadapp.end" | "client.launcher.launchapp" | "client.launcher.end" | "client.launcher.restart.begin" | "client.launcher.restart.end" | "client.license.activations.request" | "client.license.activations.response" | "client.llm.connect.response" | "client.interstitial-window.launched" | "client.interstitial-window.start-launch" | "client.ivr.join.request" | "client.ivr.join.response" | "client.ivr.leave.request" | "client.ivr.leave.response" | "client.ivr.notify.request" | "client.ivr.notify.response" | "client.lobby.entered" | "client.lobby.exited" | "client.locus.decline.request" | "client.locus.join.request" | "client.locus.join.response" | "client.locus.leave.request" | "client.locus.leave.response" | "client.locus.media.request" | "client.locus.media.response" | "client.locus.sync.complete" | "client.media-engine.crash" | "client.media-engine.launched" | "client.media-engine.lost" | "client.media-engine.local-sdp-generated" | "client.media-engine.ready" | "client.media-engine.remote-sdp-received" | "client.media-engine.start-launch" | "client.media-device.ready" | "client.media-device.stop" | "client.media-device.error" | "client.media-status" | "client.media.capabilities" | "client.media.ready" | "client.media.reachability" | "client.media.reconnecting" | "client.media.recovered" | "client.media.render.start" | "client.media.render.stop" | "client.media.rx.start" | "client.media.rx.stop" | "client.media.share.csi.changed" | "client.media.tx.start" | "client.media.tx.stop" | "client.meetinginfo.request" | "client.meetinginfo.response" | "client.meetingmanagersdk.ipc.run" | "client.meeting.app-loaded" | "client.meeting.breakout-session.action" | "client.meeting.breakout-session.summary" | "client.meeting.browser-plugin.started" | "client.meeting.click.joinbutton" | "client.meeting.closed" | "client.meeting.disclaimer-window.accepted" | "client.meeting.disclaimer-window.closed" | "client.meeting.disclaimer-window.showed" | "client.meeting.docshow.request" | "client.meeting.docshow.response" | "client.meeting.e2e.u2c.response" | "client.meeting.e2e.wca.response" | "client.meeting.e2e.key.response" | "client.meeting.e2ee.u2c.response" | "client.meeting.e2ee.wca.response" | "client.meeting.e2ee.key.response" | "client.meeting.gpc.download" | "client.meeting.gpcparameter.request" | "client.meeting.gpcparameter.response" | "client.meeting.interstitial-window.closed" | "client.meeting.interstitial-window.showed" | "client.meeting.join.request" | "client.meeting.key-information" | "client.meeting.launched" | "client.meeting.login-window.clicked" | "client.meeting.login-window.closed" | "client.meeting.login-window.showed" | "client.meeting.login.response" | "client.meeting.people-insights.check.response" | "client.meeting.people-insights.query.response" | "client.meeting.ping.request" | "client.meeting.ping.response" | "client.meeting.plugin-extension.started" | "client.meeting.resume" | "client.meeting.report-log" | "client.meeting.session.connected" | "client.meeting.start-webexapp" | "client.meeting.start-launch" | "client.meeting.summary" | "client.meeting.user-action" | "client.meeting.validated" | "client.meeting.VDI.detect.plugin.response" | "client.meeting.VDI.connect.plugin.response" | "client.mercury.connection.lost" | "client.mercury.connection.restored" | "client.mercury.connection.start" | "client.mercury.connection.connected" | "client.multistream.sca.rx" | "client.multistream.sca.tx" | "client.multistream.scr.rx" | "client.multistream.scr.tx" | "client.muted" | "client.network.changed" | "client.notification.received" | "client.onboarding-window.start" | "client.onboarding-window.end" | "client.permission.closed" | "client.permission.prompted" | "client.pin.collected" | "client.pin.prompt" | "client.post.meeting.hook" | "client.pstnaudio.attempt.correlation" | "client.pstnaudio.attempt.finish" | "client.pstnaudio.attempt.skip" | "client.pstnaudio.attempt.start" | "client.roap-message.received" | "client.roap-message.sent" | "client.scheduling.initiate" | "client.scheduling.notification" | "client.share.floor-accept.notification" | "client.share.floor-grant.cancel-request" | "client.share.floor-grant.notification" | "client.share.floor-grant.request" | "client.share.floor-granted.local" | "client.share.initiated" | "client.share.layout.displayed" | "client.share.paused" | "client.share.selected-app" | "client.share.stopped" | "client.sign-in.start" | "client.sign-in.end" | "client.started-after-shutdown" | "client.started-from-crash" | "client.stuntrace.failed" | "client.switch.app" | "client.terminate.app" | "client.unmuted" | "client.webexapp.start-launch" | "client.webexapp.launched" | "client.login.start" | "client.login.end" | "client.startup.start" | "client.startup.end" | "client.switch.environment" | "client.u2c.limited-catalog.request" | "client.u2c.limited-catalog.response" | "client.u2c.signin-catalog.request" | "client.u2c.signin-catalog.response" | "client.upgrade-window.accepted" | "client.upgrade-window.closed" | "client.upgrade-window.showed" | "client.waiting.user-action" | "client.warhol.downloaded" | "client.wdm.device-registration.request" | "client.wdm.device-registration.response" | "client.webapp-download.start" | "client.webapp-download.in-progress" | "client.webapp-download.end" | "client.whiteboard.loaded" | "client.call.survey.trigger" | "meeting.initiated" | "meeting.converged.initiated" | "meeting.joined" | "page.click.pre-join" | "page.client.abort.join" | "page.client.interstitial-window.launched" | "page.meeting.browser-reset" | "page.meeting.close-browser" | "page.meeting.extension.started" | "page.meeting.extension.app.starting" | "page.meeting.extension.app.started" | "page.meeting.join-fallback.dismiss" | "page.meeting.join-fallback" | "page.meeting.launch-thinclient" | "page.meeting.launched-duplicate.context" | "page.meeting.loading" | "page.meeting.mobile.call" | "page.meeting.mobile.download" | "page.meeting.mobile.join-link" | "page.meeting.plugin.launch-meeting" | "page.meeting.run-plugin" | "page.meeting.switch.to.webapp" | "page.meeting.testing-plugin" | "page.meeting.testing-plugin.finished" | "page.meeting.tfs.start-download" | "page.meeting.urlprotocol.detect" | "page.meeting.waiting.user-action" | "page.meeting.webexapp.launched" | "page.meeting.webinstaller.started" | "page.meeting.webinstaller.ended" | "client.feature.ptplugin.distribution">;
|
|
4
|
+
export declare const CONTENT_SHARE_PERMISSION_EVENTS: Set<"client.abort.join" | "client.alert.displayed" | "client.alert.removed" | "client.application.validate" | "client.audio.noise.removal" | "client.breakout-session.join.request" | "client.breakout-session.join.response" | "client.breakout-session.leave" | "client.breakout-session.move.request" | "client.breakout-session.move.response" | "client.call.aborted" | "client.call.declined" | "client.call.fallback" | "client.call.diagnostics" | "client.call.displayed" | "client.call.info" | "client.call.initiated" | "client.call.leave" | "client.call.move-media" | "client.call.remote-ended" | "client.call.remote-started" | "client.call.skip-locus-join" | "client.ci.exchange-token.request" | "client.ci.exchange-token.response" | "client.conversation.request" | "client.conversation.response" | "client.click.pre-join" | "client.crash" | "client.daemon.join.begin" | "client.daemon.job.done" | "client.daemon.launch-meeting-process" | "client.daemon.pending-on-existing-upgrade-job" | "client.daemon.query-site-info" | "client.daemon.upgrade-and-join" | "client.daemon.wakeup-meeting-client" | "client.duplicate.join" | "client.device.resource-room.joined" | "client.dialog-window.dismissed" | "client.dialog-window.selected" | "client.dialog-window.showed" | "client.e2ee.join.response" | "client.embedded-authorize-page.loaded" | "client.embedded-object-info" | "client.entering-background" | "client.entering-foreground" | "client.exit.app" | "client.gesture.recognition" | "client.hologram.initiated" | "client.hologram.stopped" | "client.hologram.remote.initiated" | "client.hologram.remote.stopped" | "client.hung" | "client.ice.end" | "client.ice.start" | "client.idbroker.authorize.request" | "client.idbroker.authorize.response" | "client.idbroker.client-credential.request" | "client.idbroker.client-credential.response" | "client.idbroker.cloud-reduced-scope.request" | "client.idbroker.direct-authorize.request" | "client.idbroker.direct-authorize.response" | "client.idbroker.cloud-reduced-scope.response" | "client.idbroker.exchange-token.request" | "client.idbroker.exchange-token.response" | "client.idbroker.kms-reduced-scope.request" | "client.idbroker.kms-reduced-scope.response" | "client.idbroker.scim.request" | "client.idbroker.scim.response" | "client.idbroker.user-invoke.request" | "client.idbroker.user-invoke.response" | "client.installer.start" | "client.installer.end" | "client.installer.download-app" | "client.installer.decompress-app" | "client.installer.fallback" | "client.installer.install-app" | "client.installer.launch-app" | "client.installer.switch.to.webapp" | "client.launcher.start" | "client.launcher.selfupgrade.start" | "client.launcher.selfupgrade.end" | "client.launcher.downloadapp.start" | "client.launcher.downloadapp.end" | "client.launcher.launchapp" | "client.launcher.end" | "client.launcher.restart.begin" | "client.launcher.restart.end" | "client.license.activations.request" | "client.license.activations.response" | "client.llm.connect.response" | "client.interstitial-window.launched" | "client.interstitial-window.start-launch" | "client.ivr.join.request" | "client.ivr.join.response" | "client.ivr.leave.request" | "client.ivr.leave.response" | "client.ivr.notify.request" | "client.ivr.notify.response" | "client.lobby.entered" | "client.lobby.exited" | "client.locus.decline.request" | "client.locus.join.request" | "client.locus.join.response" | "client.locus.leave.request" | "client.locus.leave.response" | "client.locus.media.request" | "client.locus.media.response" | "client.locus.sync.complete" | "client.media-engine.crash" | "client.media-engine.launched" | "client.media-engine.lost" | "client.media-engine.local-sdp-generated" | "client.media-engine.ready" | "client.media-engine.remote-sdp-received" | "client.media-engine.start-launch" | "client.media-device.ready" | "client.media-device.stop" | "client.media-device.error" | "client.media-status" | "client.media.capabilities" | "client.media.ready" | "client.media.reachability" | "client.media.reconnecting" | "client.media.recovered" | "client.media.render.start" | "client.media.render.stop" | "client.media.rx.start" | "client.media.rx.stop" | "client.media.share.csi.changed" | "client.media.tx.start" | "client.media.tx.stop" | "client.meetinginfo.request" | "client.meetinginfo.response" | "client.meetingmanagersdk.ipc.run" | "client.meeting.app-loaded" | "client.meeting.breakout-session.action" | "client.meeting.breakout-session.summary" | "client.meeting.browser-plugin.started" | "client.meeting.click.joinbutton" | "client.meeting.closed" | "client.meeting.disclaimer-window.accepted" | "client.meeting.disclaimer-window.closed" | "client.meeting.disclaimer-window.showed" | "client.meeting.docshow.request" | "client.meeting.docshow.response" | "client.meeting.e2e.u2c.response" | "client.meeting.e2e.wca.response" | "client.meeting.e2e.key.response" | "client.meeting.e2ee.u2c.response" | "client.meeting.e2ee.wca.response" | "client.meeting.e2ee.key.response" | "client.meeting.gpc.download" | "client.meeting.gpcparameter.request" | "client.meeting.gpcparameter.response" | "client.meeting.interstitial-window.closed" | "client.meeting.interstitial-window.showed" | "client.meeting.join.request" | "client.meeting.key-information" | "client.meeting.launched" | "client.meeting.login-window.clicked" | "client.meeting.login-window.closed" | "client.meeting.login-window.showed" | "client.meeting.login.response" | "client.meeting.people-insights.check.response" | "client.meeting.people-insights.query.response" | "client.meeting.ping.request" | "client.meeting.ping.response" | "client.meeting.plugin-extension.started" | "client.meeting.resume" | "client.meeting.report-log" | "client.meeting.session.connected" | "client.meeting.start-webexapp" | "client.meeting.start-launch" | "client.meeting.summary" | "client.meeting.user-action" | "client.meeting.validated" | "client.meeting.VDI.detect.plugin.response" | "client.meeting.VDI.connect.plugin.response" | "client.mercury.connection.lost" | "client.mercury.connection.restored" | "client.mercury.connection.start" | "client.mercury.connection.connected" | "client.multistream.sca.rx" | "client.multistream.sca.tx" | "client.multistream.scr.rx" | "client.multistream.scr.tx" | "client.muted" | "client.network.changed" | "client.notification.received" | "client.onboarding-window.start" | "client.onboarding-window.end" | "client.permission.closed" | "client.permission.prompted" | "client.pin.collected" | "client.pin.prompt" | "client.post.meeting.hook" | "client.pstnaudio.attempt.correlation" | "client.pstnaudio.attempt.finish" | "client.pstnaudio.attempt.skip" | "client.pstnaudio.attempt.start" | "client.roap-message.received" | "client.roap-message.sent" | "client.scheduling.initiate" | "client.scheduling.notification" | "client.share.floor-accept.notification" | "client.share.floor-grant.cancel-request" | "client.share.floor-grant.notification" | "client.share.floor-grant.request" | "client.share.floor-granted.local" | "client.share.initiated" | "client.share.layout.displayed" | "client.share.paused" | "client.share.selected-app" | "client.share.stopped" | "client.sign-in.start" | "client.sign-in.end" | "client.started-after-shutdown" | "client.started-from-crash" | "client.stuntrace.failed" | "client.switch.app" | "client.terminate.app" | "client.unmuted" | "client.webexapp.start-launch" | "client.webexapp.launched" | "client.login.start" | "client.login.end" | "client.startup.start" | "client.startup.end" | "client.switch.environment" | "client.u2c.limited-catalog.request" | "client.u2c.limited-catalog.response" | "client.u2c.signin-catalog.request" | "client.u2c.signin-catalog.response" | "client.upgrade-window.accepted" | "client.upgrade-window.closed" | "client.upgrade-window.showed" | "client.waiting.user-action" | "client.warhol.downloaded" | "client.wdm.device-registration.request" | "client.wdm.device-registration.response" | "client.webapp-download.start" | "client.webapp-download.in-progress" | "client.webapp-download.end" | "client.whiteboard.loaded" | "client.call.survey.trigger" | "meeting.initiated" | "meeting.converged.initiated" | "meeting.joined" | "page.click.pre-join" | "page.client.abort.join" | "page.client.interstitial-window.launched" | "page.meeting.browser-reset" | "page.meeting.close-browser" | "page.meeting.extension.started" | "page.meeting.extension.app.starting" | "page.meeting.extension.app.started" | "page.meeting.join-fallback.dismiss" | "page.meeting.join-fallback" | "page.meeting.launch-thinclient" | "page.meeting.launched-duplicate.context" | "page.meeting.loading" | "page.meeting.mobile.call" | "page.meeting.mobile.download" | "page.meeting.mobile.join-link" | "page.meeting.plugin.launch-meeting" | "page.meeting.run-plugin" | "page.meeting.switch.to.webapp" | "page.meeting.testing-plugin" | "page.meeting.testing-plugin.finished" | "page.meeting.tfs.start-download" | "page.meeting.urlprotocol.detect" | "page.meeting.waiting.user-action" | "page.meeting.webexapp.launched" | "page.meeting.webinstaller.started" | "page.meeting.webinstaller.ended" | "client.feature.ptplugin.distribution">;
|
|
5
|
+
export declare const FINAL_PERMISSION_EVENTS: Set<"client.abort.join" | "client.alert.displayed" | "client.alert.removed" | "client.application.validate" | "client.audio.noise.removal" | "client.breakout-session.join.request" | "client.breakout-session.join.response" | "client.breakout-session.leave" | "client.breakout-session.move.request" | "client.breakout-session.move.response" | "client.call.aborted" | "client.call.declined" | "client.call.fallback" | "client.call.diagnostics" | "client.call.displayed" | "client.call.info" | "client.call.initiated" | "client.call.leave" | "client.call.move-media" | "client.call.remote-ended" | "client.call.remote-started" | "client.call.skip-locus-join" | "client.ci.exchange-token.request" | "client.ci.exchange-token.response" | "client.conversation.request" | "client.conversation.response" | "client.click.pre-join" | "client.crash" | "client.daemon.join.begin" | "client.daemon.job.done" | "client.daemon.launch-meeting-process" | "client.daemon.pending-on-existing-upgrade-job" | "client.daemon.query-site-info" | "client.daemon.upgrade-and-join" | "client.daemon.wakeup-meeting-client" | "client.duplicate.join" | "client.device.resource-room.joined" | "client.dialog-window.dismissed" | "client.dialog-window.selected" | "client.dialog-window.showed" | "client.e2ee.join.response" | "client.embedded-authorize-page.loaded" | "client.embedded-object-info" | "client.entering-background" | "client.entering-foreground" | "client.exit.app" | "client.gesture.recognition" | "client.hologram.initiated" | "client.hologram.stopped" | "client.hologram.remote.initiated" | "client.hologram.remote.stopped" | "client.hung" | "client.ice.end" | "client.ice.start" | "client.idbroker.authorize.request" | "client.idbroker.authorize.response" | "client.idbroker.client-credential.request" | "client.idbroker.client-credential.response" | "client.idbroker.cloud-reduced-scope.request" | "client.idbroker.direct-authorize.request" | "client.idbroker.direct-authorize.response" | "client.idbroker.cloud-reduced-scope.response" | "client.idbroker.exchange-token.request" | "client.idbroker.exchange-token.response" | "client.idbroker.kms-reduced-scope.request" | "client.idbroker.kms-reduced-scope.response" | "client.idbroker.scim.request" | "client.idbroker.scim.response" | "client.idbroker.user-invoke.request" | "client.idbroker.user-invoke.response" | "client.installer.start" | "client.installer.end" | "client.installer.download-app" | "client.installer.decompress-app" | "client.installer.fallback" | "client.installer.install-app" | "client.installer.launch-app" | "client.installer.switch.to.webapp" | "client.launcher.start" | "client.launcher.selfupgrade.start" | "client.launcher.selfupgrade.end" | "client.launcher.downloadapp.start" | "client.launcher.downloadapp.end" | "client.launcher.launchapp" | "client.launcher.end" | "client.launcher.restart.begin" | "client.launcher.restart.end" | "client.license.activations.request" | "client.license.activations.response" | "client.llm.connect.response" | "client.interstitial-window.launched" | "client.interstitial-window.start-launch" | "client.ivr.join.request" | "client.ivr.join.response" | "client.ivr.leave.request" | "client.ivr.leave.response" | "client.ivr.notify.request" | "client.ivr.notify.response" | "client.lobby.entered" | "client.lobby.exited" | "client.locus.decline.request" | "client.locus.join.request" | "client.locus.join.response" | "client.locus.leave.request" | "client.locus.leave.response" | "client.locus.media.request" | "client.locus.media.response" | "client.locus.sync.complete" | "client.media-engine.crash" | "client.media-engine.launched" | "client.media-engine.lost" | "client.media-engine.local-sdp-generated" | "client.media-engine.ready" | "client.media-engine.remote-sdp-received" | "client.media-engine.start-launch" | "client.media-device.ready" | "client.media-device.stop" | "client.media-device.error" | "client.media-status" | "client.media.capabilities" | "client.media.ready" | "client.media.reachability" | "client.media.reconnecting" | "client.media.recovered" | "client.media.render.start" | "client.media.render.stop" | "client.media.rx.start" | "client.media.rx.stop" | "client.media.share.csi.changed" | "client.media.tx.start" | "client.media.tx.stop" | "client.meetinginfo.request" | "client.meetinginfo.response" | "client.meetingmanagersdk.ipc.run" | "client.meeting.app-loaded" | "client.meeting.breakout-session.action" | "client.meeting.breakout-session.summary" | "client.meeting.browser-plugin.started" | "client.meeting.click.joinbutton" | "client.meeting.closed" | "client.meeting.disclaimer-window.accepted" | "client.meeting.disclaimer-window.closed" | "client.meeting.disclaimer-window.showed" | "client.meeting.docshow.request" | "client.meeting.docshow.response" | "client.meeting.e2e.u2c.response" | "client.meeting.e2e.wca.response" | "client.meeting.e2e.key.response" | "client.meeting.e2ee.u2c.response" | "client.meeting.e2ee.wca.response" | "client.meeting.e2ee.key.response" | "client.meeting.gpc.download" | "client.meeting.gpcparameter.request" | "client.meeting.gpcparameter.response" | "client.meeting.interstitial-window.closed" | "client.meeting.interstitial-window.showed" | "client.meeting.join.request" | "client.meeting.key-information" | "client.meeting.launched" | "client.meeting.login-window.clicked" | "client.meeting.login-window.closed" | "client.meeting.login-window.showed" | "client.meeting.login.response" | "client.meeting.people-insights.check.response" | "client.meeting.people-insights.query.response" | "client.meeting.ping.request" | "client.meeting.ping.response" | "client.meeting.plugin-extension.started" | "client.meeting.resume" | "client.meeting.report-log" | "client.meeting.session.connected" | "client.meeting.start-webexapp" | "client.meeting.start-launch" | "client.meeting.summary" | "client.meeting.user-action" | "client.meeting.validated" | "client.meeting.VDI.detect.plugin.response" | "client.meeting.VDI.connect.plugin.response" | "client.mercury.connection.lost" | "client.mercury.connection.restored" | "client.mercury.connection.start" | "client.mercury.connection.connected" | "client.multistream.sca.rx" | "client.multistream.sca.tx" | "client.multistream.scr.rx" | "client.multistream.scr.tx" | "client.muted" | "client.network.changed" | "client.notification.received" | "client.onboarding-window.start" | "client.onboarding-window.end" | "client.permission.closed" | "client.permission.prompted" | "client.pin.collected" | "client.pin.prompt" | "client.post.meeting.hook" | "client.pstnaudio.attempt.correlation" | "client.pstnaudio.attempt.finish" | "client.pstnaudio.attempt.skip" | "client.pstnaudio.attempt.start" | "client.roap-message.received" | "client.roap-message.sent" | "client.scheduling.initiate" | "client.scheduling.notification" | "client.share.floor-accept.notification" | "client.share.floor-grant.cancel-request" | "client.share.floor-grant.notification" | "client.share.floor-grant.request" | "client.share.floor-granted.local" | "client.share.initiated" | "client.share.layout.displayed" | "client.share.paused" | "client.share.selected-app" | "client.share.stopped" | "client.sign-in.start" | "client.sign-in.end" | "client.started-after-shutdown" | "client.started-from-crash" | "client.stuntrace.failed" | "client.switch.app" | "client.terminate.app" | "client.unmuted" | "client.webexapp.start-launch" | "client.webexapp.launched" | "client.login.start" | "client.login.end" | "client.startup.start" | "client.startup.end" | "client.switch.environment" | "client.u2c.limited-catalog.request" | "client.u2c.limited-catalog.response" | "client.u2c.signin-catalog.request" | "client.u2c.signin-catalog.response" | "client.upgrade-window.accepted" | "client.upgrade-window.closed" | "client.upgrade-window.showed" | "client.waiting.user-action" | "client.warhol.downloaded" | "client.wdm.device-registration.request" | "client.wdm.device-registration.response" | "client.webapp-download.start" | "client.webapp-download.in-progress" | "client.webapp-download.end" | "client.whiteboard.loaded" | "client.call.survey.trigger" | "meeting.initiated" | "meeting.converged.initiated" | "meeting.joined" | "page.click.pre-join" | "page.client.abort.join" | "page.client.interstitial-window.launched" | "page.meeting.browser-reset" | "page.meeting.close-browser" | "page.meeting.extension.started" | "page.meeting.extension.app.starting" | "page.meeting.extension.app.started" | "page.meeting.join-fallback.dismiss" | "page.meeting.join-fallback" | "page.meeting.launch-thinclient" | "page.meeting.launched-duplicate.context" | "page.meeting.loading" | "page.meeting.mobile.call" | "page.meeting.mobile.download" | "page.meeting.mobile.join-link" | "page.meeting.plugin.launch-meeting" | "page.meeting.run-plugin" | "page.meeting.switch.to.webapp" | "page.meeting.testing-plugin" | "page.meeting.testing-plugin.finished" | "page.meeting.tfs.start-download" | "page.meeting.urlprotocol.detect" | "page.meeting.waiting.user-action" | "page.meeting.webexapp.launched" | "page.meeting.webinstaller.started" | "page.meeting.webinstaller.ended" | "client.feature.ptplugin.distribution">;
|
|
6
|
+
export declare const NO_PERMISSION_ENRICHMENT: PermissionEnrichmentPolicy;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ClientEventPayload, PrivacyAndSecurityPermission } from '../metrics.types';
|
|
2
|
+
import type { PermissionEnrichmentContext } from './types';
|
|
3
|
+
export declare const PERMISSION_ENRICHMENT_RULES: ({
|
|
4
|
+
events: Set<"client.abort.join" | "client.alert.displayed" | "client.alert.removed" | "client.application.validate" | "client.audio.noise.removal" | "client.breakout-session.join.request" | "client.breakout-session.join.response" | "client.breakout-session.leave" | "client.breakout-session.move.request" | "client.breakout-session.move.response" | "client.call.aborted" | "client.call.declined" | "client.call.fallback" | "client.call.diagnostics" | "client.call.displayed" | "client.call.info" | "client.call.initiated" | "client.call.leave" | "client.call.move-media" | "client.call.remote-ended" | "client.call.remote-started" | "client.call.skip-locus-join" | "client.ci.exchange-token.request" | "client.ci.exchange-token.response" | "client.conversation.request" | "client.conversation.response" | "client.click.pre-join" | "client.crash" | "client.daemon.join.begin" | "client.daemon.job.done" | "client.daemon.launch-meeting-process" | "client.daemon.pending-on-existing-upgrade-job" | "client.daemon.query-site-info" | "client.daemon.upgrade-and-join" | "client.daemon.wakeup-meeting-client" | "client.duplicate.join" | "client.device.resource-room.joined" | "client.dialog-window.dismissed" | "client.dialog-window.selected" | "client.dialog-window.showed" | "client.e2ee.join.response" | "client.embedded-authorize-page.loaded" | "client.embedded-object-info" | "client.entering-background" | "client.entering-foreground" | "client.exit.app" | "client.gesture.recognition" | "client.hologram.initiated" | "client.hologram.stopped" | "client.hologram.remote.initiated" | "client.hologram.remote.stopped" | "client.hung" | "client.ice.end" | "client.ice.start" | "client.idbroker.authorize.request" | "client.idbroker.authorize.response" | "client.idbroker.client-credential.request" | "client.idbroker.client-credential.response" | "client.idbroker.cloud-reduced-scope.request" | "client.idbroker.direct-authorize.request" | "client.idbroker.direct-authorize.response" | "client.idbroker.cloud-reduced-scope.response" | "client.idbroker.exchange-token.request" | "client.idbroker.exchange-token.response" | "client.idbroker.kms-reduced-scope.request" | "client.idbroker.kms-reduced-scope.response" | "client.idbroker.scim.request" | "client.idbroker.scim.response" | "client.idbroker.user-invoke.request" | "client.idbroker.user-invoke.response" | "client.installer.start" | "client.installer.end" | "client.installer.download-app" | "client.installer.decompress-app" | "client.installer.fallback" | "client.installer.install-app" | "client.installer.launch-app" | "client.installer.switch.to.webapp" | "client.launcher.start" | "client.launcher.selfupgrade.start" | "client.launcher.selfupgrade.end" | "client.launcher.downloadapp.start" | "client.launcher.downloadapp.end" | "client.launcher.launchapp" | "client.launcher.end" | "client.launcher.restart.begin" | "client.launcher.restart.end" | "client.license.activations.request" | "client.license.activations.response" | "client.llm.connect.response" | "client.interstitial-window.launched" | "client.interstitial-window.start-launch" | "client.ivr.join.request" | "client.ivr.join.response" | "client.ivr.leave.request" | "client.ivr.leave.response" | "client.ivr.notify.request" | "client.ivr.notify.response" | "client.lobby.entered" | "client.lobby.exited" | "client.locus.decline.request" | "client.locus.join.request" | "client.locus.join.response" | "client.locus.leave.request" | "client.locus.leave.response" | "client.locus.media.request" | "client.locus.media.response" | "client.locus.sync.complete" | "client.media-engine.crash" | "client.media-engine.launched" | "client.media-engine.lost" | "client.media-engine.local-sdp-generated" | "client.media-engine.ready" | "client.media-engine.remote-sdp-received" | "client.media-engine.start-launch" | "client.media-device.ready" | "client.media-device.stop" | "client.media-device.error" | "client.media-status" | "client.media.capabilities" | "client.media.ready" | "client.media.reachability" | "client.media.reconnecting" | "client.media.recovered" | "client.media.render.start" | "client.media.render.stop" | "client.media.rx.start" | "client.media.rx.stop" | "client.media.share.csi.changed" | "client.media.tx.start" | "client.media.tx.stop" | "client.meetinginfo.request" | "client.meetinginfo.response" | "client.meetingmanagersdk.ipc.run" | "client.meeting.app-loaded" | "client.meeting.breakout-session.action" | "client.meeting.breakout-session.summary" | "client.meeting.browser-plugin.started" | "client.meeting.click.joinbutton" | "client.meeting.closed" | "client.meeting.disclaimer-window.accepted" | "client.meeting.disclaimer-window.closed" | "client.meeting.disclaimer-window.showed" | "client.meeting.docshow.request" | "client.meeting.docshow.response" | "client.meeting.e2e.u2c.response" | "client.meeting.e2e.wca.response" | "client.meeting.e2e.key.response" | "client.meeting.e2ee.u2c.response" | "client.meeting.e2ee.wca.response" | "client.meeting.e2ee.key.response" | "client.meeting.gpc.download" | "client.meeting.gpcparameter.request" | "client.meeting.gpcparameter.response" | "client.meeting.interstitial-window.closed" | "client.meeting.interstitial-window.showed" | "client.meeting.join.request" | "client.meeting.key-information" | "client.meeting.launched" | "client.meeting.login-window.clicked" | "client.meeting.login-window.closed" | "client.meeting.login-window.showed" | "client.meeting.login.response" | "client.meeting.people-insights.check.response" | "client.meeting.people-insights.query.response" | "client.meeting.ping.request" | "client.meeting.ping.response" | "client.meeting.plugin-extension.started" | "client.meeting.resume" | "client.meeting.report-log" | "client.meeting.session.connected" | "client.meeting.start-webexapp" | "client.meeting.start-launch" | "client.meeting.summary" | "client.meeting.user-action" | "client.meeting.validated" | "client.meeting.VDI.detect.plugin.response" | "client.meeting.VDI.connect.plugin.response" | "client.mercury.connection.lost" | "client.mercury.connection.restored" | "client.mercury.connection.start" | "client.mercury.connection.connected" | "client.multistream.sca.rx" | "client.multistream.sca.tx" | "client.multistream.scr.rx" | "client.multistream.scr.tx" | "client.muted" | "client.network.changed" | "client.notification.received" | "client.onboarding-window.start" | "client.onboarding-window.end" | "client.permission.closed" | "client.permission.prompted" | "client.pin.collected" | "client.pin.prompt" | "client.post.meeting.hook" | "client.pstnaudio.attempt.correlation" | "client.pstnaudio.attempt.finish" | "client.pstnaudio.attempt.skip" | "client.pstnaudio.attempt.start" | "client.roap-message.received" | "client.roap-message.sent" | "client.scheduling.initiate" | "client.scheduling.notification" | "client.share.floor-accept.notification" | "client.share.floor-grant.cancel-request" | "client.share.floor-grant.notification" | "client.share.floor-grant.request" | "client.share.floor-granted.local" | "client.share.initiated" | "client.share.layout.displayed" | "client.share.paused" | "client.share.selected-app" | "client.share.stopped" | "client.sign-in.start" | "client.sign-in.end" | "client.started-after-shutdown" | "client.started-from-crash" | "client.stuntrace.failed" | "client.switch.app" | "client.terminate.app" | "client.unmuted" | "client.webexapp.start-launch" | "client.webexapp.launched" | "client.login.start" | "client.login.end" | "client.startup.start" | "client.startup.end" | "client.switch.environment" | "client.u2c.limited-catalog.request" | "client.u2c.limited-catalog.response" | "client.u2c.signin-catalog.request" | "client.u2c.signin-catalog.response" | "client.upgrade-window.accepted" | "client.upgrade-window.closed" | "client.upgrade-window.showed" | "client.waiting.user-action" | "client.warhol.downloaded" | "client.wdm.device-registration.request" | "client.wdm.device-registration.response" | "client.webapp-download.start" | "client.webapp-download.in-progress" | "client.webapp-download.end" | "client.whiteboard.loaded" | "client.call.survey.trigger" | "meeting.initiated" | "meeting.converged.initiated" | "meeting.joined" | "page.click.pre-join" | "page.client.abort.join" | "page.client.interstitial-window.launched" | "page.meeting.browser-reset" | "page.meeting.close-browser" | "page.meeting.extension.started" | "page.meeting.extension.app.starting" | "page.meeting.extension.app.started" | "page.meeting.join-fallback.dismiss" | "page.meeting.join-fallback" | "page.meeting.launch-thinclient" | "page.meeting.launched-duplicate.context" | "page.meeting.loading" | "page.meeting.mobile.call" | "page.meeting.mobile.download" | "page.meeting.mobile.join-link" | "page.meeting.plugin.launch-meeting" | "page.meeting.run-plugin" | "page.meeting.switch.to.webapp" | "page.meeting.testing-plugin" | "page.meeting.testing-plugin.finished" | "page.meeting.tfs.start-download" | "page.meeting.urlprotocol.detect" | "page.meeting.waiting.user-action" | "page.meeting.webexapp.launched" | "page.meeting.webinstaller.started" | "page.meeting.webinstaller.ended" | "client.feature.ptplugin.distribution">;
|
|
5
|
+
resolve: (payload: import("../metrics.types").RecursivePartial<import("@webex/event-dictionary-ts").ClientEvent>) => {
|
|
6
|
+
resources: ("additionalProperties" | "camera" | "microphone" | "contentShare")[];
|
|
7
|
+
terminal: false;
|
|
8
|
+
};
|
|
9
|
+
} | {
|
|
10
|
+
events: Set<"client.abort.join" | "client.alert.displayed" | "client.alert.removed" | "client.application.validate" | "client.audio.noise.removal" | "client.breakout-session.join.request" | "client.breakout-session.join.response" | "client.breakout-session.leave" | "client.breakout-session.move.request" | "client.breakout-session.move.response" | "client.call.aborted" | "client.call.declined" | "client.call.fallback" | "client.call.diagnostics" | "client.call.displayed" | "client.call.info" | "client.call.initiated" | "client.call.leave" | "client.call.move-media" | "client.call.remote-ended" | "client.call.remote-started" | "client.call.skip-locus-join" | "client.ci.exchange-token.request" | "client.ci.exchange-token.response" | "client.conversation.request" | "client.conversation.response" | "client.click.pre-join" | "client.crash" | "client.daemon.join.begin" | "client.daemon.job.done" | "client.daemon.launch-meeting-process" | "client.daemon.pending-on-existing-upgrade-job" | "client.daemon.query-site-info" | "client.daemon.upgrade-and-join" | "client.daemon.wakeup-meeting-client" | "client.duplicate.join" | "client.device.resource-room.joined" | "client.dialog-window.dismissed" | "client.dialog-window.selected" | "client.dialog-window.showed" | "client.e2ee.join.response" | "client.embedded-authorize-page.loaded" | "client.embedded-object-info" | "client.entering-background" | "client.entering-foreground" | "client.exit.app" | "client.gesture.recognition" | "client.hologram.initiated" | "client.hologram.stopped" | "client.hologram.remote.initiated" | "client.hologram.remote.stopped" | "client.hung" | "client.ice.end" | "client.ice.start" | "client.idbroker.authorize.request" | "client.idbroker.authorize.response" | "client.idbroker.client-credential.request" | "client.idbroker.client-credential.response" | "client.idbroker.cloud-reduced-scope.request" | "client.idbroker.direct-authorize.request" | "client.idbroker.direct-authorize.response" | "client.idbroker.cloud-reduced-scope.response" | "client.idbroker.exchange-token.request" | "client.idbroker.exchange-token.response" | "client.idbroker.kms-reduced-scope.request" | "client.idbroker.kms-reduced-scope.response" | "client.idbroker.scim.request" | "client.idbroker.scim.response" | "client.idbroker.user-invoke.request" | "client.idbroker.user-invoke.response" | "client.installer.start" | "client.installer.end" | "client.installer.download-app" | "client.installer.decompress-app" | "client.installer.fallback" | "client.installer.install-app" | "client.installer.launch-app" | "client.installer.switch.to.webapp" | "client.launcher.start" | "client.launcher.selfupgrade.start" | "client.launcher.selfupgrade.end" | "client.launcher.downloadapp.start" | "client.launcher.downloadapp.end" | "client.launcher.launchapp" | "client.launcher.end" | "client.launcher.restart.begin" | "client.launcher.restart.end" | "client.license.activations.request" | "client.license.activations.response" | "client.llm.connect.response" | "client.interstitial-window.launched" | "client.interstitial-window.start-launch" | "client.ivr.join.request" | "client.ivr.join.response" | "client.ivr.leave.request" | "client.ivr.leave.response" | "client.ivr.notify.request" | "client.ivr.notify.response" | "client.lobby.entered" | "client.lobby.exited" | "client.locus.decline.request" | "client.locus.join.request" | "client.locus.join.response" | "client.locus.leave.request" | "client.locus.leave.response" | "client.locus.media.request" | "client.locus.media.response" | "client.locus.sync.complete" | "client.media-engine.crash" | "client.media-engine.launched" | "client.media-engine.lost" | "client.media-engine.local-sdp-generated" | "client.media-engine.ready" | "client.media-engine.remote-sdp-received" | "client.media-engine.start-launch" | "client.media-device.ready" | "client.media-device.stop" | "client.media-device.error" | "client.media-status" | "client.media.capabilities" | "client.media.ready" | "client.media.reachability" | "client.media.reconnecting" | "client.media.recovered" | "client.media.render.start" | "client.media.render.stop" | "client.media.rx.start" | "client.media.rx.stop" | "client.media.share.csi.changed" | "client.media.tx.start" | "client.media.tx.stop" | "client.meetinginfo.request" | "client.meetinginfo.response" | "client.meetingmanagersdk.ipc.run" | "client.meeting.app-loaded" | "client.meeting.breakout-session.action" | "client.meeting.breakout-session.summary" | "client.meeting.browser-plugin.started" | "client.meeting.click.joinbutton" | "client.meeting.closed" | "client.meeting.disclaimer-window.accepted" | "client.meeting.disclaimer-window.closed" | "client.meeting.disclaimer-window.showed" | "client.meeting.docshow.request" | "client.meeting.docshow.response" | "client.meeting.e2e.u2c.response" | "client.meeting.e2e.wca.response" | "client.meeting.e2e.key.response" | "client.meeting.e2ee.u2c.response" | "client.meeting.e2ee.wca.response" | "client.meeting.e2ee.key.response" | "client.meeting.gpc.download" | "client.meeting.gpcparameter.request" | "client.meeting.gpcparameter.response" | "client.meeting.interstitial-window.closed" | "client.meeting.interstitial-window.showed" | "client.meeting.join.request" | "client.meeting.key-information" | "client.meeting.launched" | "client.meeting.login-window.clicked" | "client.meeting.login-window.closed" | "client.meeting.login-window.showed" | "client.meeting.login.response" | "client.meeting.people-insights.check.response" | "client.meeting.people-insights.query.response" | "client.meeting.ping.request" | "client.meeting.ping.response" | "client.meeting.plugin-extension.started" | "client.meeting.resume" | "client.meeting.report-log" | "client.meeting.session.connected" | "client.meeting.start-webexapp" | "client.meeting.start-launch" | "client.meeting.summary" | "client.meeting.user-action" | "client.meeting.validated" | "client.meeting.VDI.detect.plugin.response" | "client.meeting.VDI.connect.plugin.response" | "client.mercury.connection.lost" | "client.mercury.connection.restored" | "client.mercury.connection.start" | "client.mercury.connection.connected" | "client.multistream.sca.rx" | "client.multistream.sca.tx" | "client.multistream.scr.rx" | "client.multistream.scr.tx" | "client.muted" | "client.network.changed" | "client.notification.received" | "client.onboarding-window.start" | "client.onboarding-window.end" | "client.permission.closed" | "client.permission.prompted" | "client.pin.collected" | "client.pin.prompt" | "client.post.meeting.hook" | "client.pstnaudio.attempt.correlation" | "client.pstnaudio.attempt.finish" | "client.pstnaudio.attempt.skip" | "client.pstnaudio.attempt.start" | "client.roap-message.received" | "client.roap-message.sent" | "client.scheduling.initiate" | "client.scheduling.notification" | "client.share.floor-accept.notification" | "client.share.floor-grant.cancel-request" | "client.share.floor-grant.notification" | "client.share.floor-grant.request" | "client.share.floor-granted.local" | "client.share.initiated" | "client.share.layout.displayed" | "client.share.paused" | "client.share.selected-app" | "client.share.stopped" | "client.sign-in.start" | "client.sign-in.end" | "client.started-after-shutdown" | "client.started-from-crash" | "client.stuntrace.failed" | "client.switch.app" | "client.terminate.app" | "client.unmuted" | "client.webexapp.start-launch" | "client.webexapp.launched" | "client.login.start" | "client.login.end" | "client.startup.start" | "client.startup.end" | "client.switch.environment" | "client.u2c.limited-catalog.request" | "client.u2c.limited-catalog.response" | "client.u2c.signin-catalog.request" | "client.u2c.signin-catalog.response" | "client.upgrade-window.accepted" | "client.upgrade-window.closed" | "client.upgrade-window.showed" | "client.waiting.user-action" | "client.warhol.downloaded" | "client.wdm.device-registration.request" | "client.wdm.device-registration.response" | "client.webapp-download.start" | "client.webapp-download.in-progress" | "client.webapp-download.end" | "client.whiteboard.loaded" | "client.call.survey.trigger" | "meeting.initiated" | "meeting.converged.initiated" | "meeting.joined" | "page.click.pre-join" | "page.client.abort.join" | "page.client.interstitial-window.launched" | "page.meeting.browser-reset" | "page.meeting.close-browser" | "page.meeting.extension.started" | "page.meeting.extension.app.starting" | "page.meeting.extension.app.started" | "page.meeting.join-fallback.dismiss" | "page.meeting.join-fallback" | "page.meeting.launch-thinclient" | "page.meeting.launched-duplicate.context" | "page.meeting.loading" | "page.meeting.mobile.call" | "page.meeting.mobile.download" | "page.meeting.mobile.join-link" | "page.meeting.plugin.launch-meeting" | "page.meeting.run-plugin" | "page.meeting.switch.to.webapp" | "page.meeting.testing-plugin" | "page.meeting.testing-plugin.finished" | "page.meeting.tfs.start-download" | "page.meeting.urlprotocol.detect" | "page.meeting.waiting.user-action" | "page.meeting.webexapp.launched" | "page.meeting.webinstaller.started" | "page.meeting.webinstaller.ended" | "client.feature.ptplugin.distribution">;
|
|
11
|
+
resolve: () => {
|
|
12
|
+
resources: ("camera" | "microphone" | "contentShare")[];
|
|
13
|
+
terminal: true;
|
|
14
|
+
};
|
|
15
|
+
})[];
|
|
16
|
+
/**
|
|
17
|
+
* Enriches eligible client events with relevant browser permission changes.
|
|
18
|
+
*/
|
|
19
|
+
export default class PrivacyAndSecurityPermissionEnricher {
|
|
20
|
+
private permission?;
|
|
21
|
+
private lastReported;
|
|
22
|
+
private readonly onEnrichmentError;
|
|
23
|
+
/**
|
|
24
|
+
* Creates a permission enricher.
|
|
25
|
+
* @param {Function} onEnrichmentError permission enrichment error handler
|
|
26
|
+
*/
|
|
27
|
+
constructor(onEnrichmentError: (error: unknown) => void);
|
|
28
|
+
/**
|
|
29
|
+
* Stores the latest normalized browser permission state.
|
|
30
|
+
* @param {PrivacyAndSecurityPermission} permission permission snapshot
|
|
31
|
+
* @returns {void}
|
|
32
|
+
*/
|
|
33
|
+
setPermission(permission: PrivacyAndSecurityPermission): void;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the original payload or a copy enriched with relevant permission changes.
|
|
36
|
+
* @param {PermissionEnrichmentContext} context event context and permission history scope
|
|
37
|
+
* @returns {ClientEventPayload | undefined}
|
|
38
|
+
*/
|
|
39
|
+
enrich({ name, payload, scope, }: PermissionEnrichmentContext): ClientEventPayload | undefined;
|
|
40
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ClientEvent, ClientEventPayload, PrivacyAndSecurityPermissionResource } from '../metrics.types';
|
|
2
|
+
export type PermissionEnrichmentPolicy = {
|
|
3
|
+
resources: readonly PrivacyAndSecurityPermissionResource[];
|
|
4
|
+
terminal: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type PermissionEnrichmentRule = {
|
|
7
|
+
events: ReadonlySet<ClientEvent['name']>;
|
|
8
|
+
resolve: (payload?: ClientEventPayload) => PermissionEnrichmentPolicy;
|
|
9
|
+
};
|
|
10
|
+
export type PermissionEnrichmentContext = {
|
|
11
|
+
name: ClientEvent['name'];
|
|
12
|
+
payload?: ClientEventPayload;
|
|
13
|
+
scope: string;
|
|
14
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ClientEventPayload, PrivacyAndSecurityPermission, PrivacyAndSecurityPermissionResource } from '../metrics.types';
|
|
2
|
+
export declare const resolveMediaResources: (payload?: ClientEventPayload) => PrivacyAndSecurityPermissionResource[];
|
|
3
|
+
export declare const resolveContentShareResources: (payload?: ClientEventPayload) => PrivacyAndSecurityPermissionResource[];
|
|
4
|
+
export declare const projectPrivacyAndSecurityPermission: (permission: PrivacyAndSecurityPermission, resources: readonly PrivacyAndSecurityPermissionResource[]) => PrivacyAndSecurityPermission | undefined;
|
|
5
|
+
export declare const getChangedPermission: (current: PrivacyAndSecurityPermission, previous: PrivacyAndSecurityPermission) => PrivacyAndSecurityPermission | undefined;
|
package/package.json
CHANGED
|
@@ -26,22 +26,23 @@
|
|
|
26
26
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
27
27
|
"@webex/jest-config-legacy": "0.0.0",
|
|
28
28
|
"@webex/legacy-tools": "0.0.0",
|
|
29
|
-
"@webex/test-helper-chai": "3.
|
|
30
|
-
"@webex/test-helper-mocha": "3.
|
|
31
|
-
"@webex/test-helper-mock-webex": "3.
|
|
32
|
-
"@webex/test-helper-test-users": "3.
|
|
29
|
+
"@webex/test-helper-chai": "3.12.0-llmrefactor.2",
|
|
30
|
+
"@webex/test-helper-mocha": "3.12.0-llmrefactor.2",
|
|
31
|
+
"@webex/test-helper-mock-webex": "3.12.0-llmrefactor.1",
|
|
32
|
+
"@webex/test-helper-test-users": "3.12.0-llmrefactor.1",
|
|
33
33
|
"eslint": "^8.24.0",
|
|
34
34
|
"prettier": "^2.7.1",
|
|
35
35
|
"sinon": "^9.2.4"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@webex/common": "3.
|
|
39
|
-
"@webex/common-timers": "3.
|
|
40
|
-
"@webex/event-dictionary-ts": "^1.0.
|
|
41
|
-
"@webex/test-helper-chai": "3.
|
|
42
|
-
"@webex/test-helper-mock-webex": "3.
|
|
43
|
-
"@webex/webex-core": "3.
|
|
38
|
+
"@webex/common": "3.12.0-llmrefactor.2",
|
|
39
|
+
"@webex/common-timers": "3.12.0-llmrefactor.2",
|
|
40
|
+
"@webex/event-dictionary-ts": "^1.0.2220",
|
|
41
|
+
"@webex/test-helper-chai": "3.12.0-llmrefactor.2",
|
|
42
|
+
"@webex/test-helper-mock-webex": "3.12.0-llmrefactor.1",
|
|
43
|
+
"@webex/webex-core": "3.12.0-llmrefactor.2",
|
|
44
44
|
"ip-anonymize": "^0.1.0",
|
|
45
|
+
"isbot": "5.2.1",
|
|
45
46
|
"lodash": "^4.17.21",
|
|
46
47
|
"uuid": "^3.3.2"
|
|
47
48
|
},
|
|
@@ -53,5 +54,5 @@
|
|
|
53
54
|
"test:style": "eslint ./src/**/*.*",
|
|
54
55
|
"test:unit": "webex-legacy-tools test --unit --runner mocha"
|
|
55
56
|
},
|
|
56
|
-
"version": "3.
|
|
57
|
+
"version": "3.12.0-llmrefactor.2"
|
|
57
58
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {isBot} from 'isbot';
|
|
2
|
+
|
|
3
|
+
export const isAutomatedUserAgent = (userAgent?: string | null): boolean => isBot(userAgent);
|
|
4
|
+
|
|
5
|
+
let automatedUser: boolean | undefined;
|
|
6
|
+
|
|
7
|
+
export const isAutomatedUser = (): boolean => {
|
|
8
|
+
if (automatedUser === undefined) {
|
|
9
|
+
automatedUser =
|
|
10
|
+
typeof window !== 'undefined' &&
|
|
11
|
+
typeof navigator !== 'undefined' &&
|
|
12
|
+
(Boolean(navigator.webdriver) || isAutomatedUserAgent(navigator.userAgent));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return automatedUser;
|
|
16
|
+
};
|
package/src/batcher.js
CHANGED
|
@@ -75,6 +75,10 @@ const MetricsBatcher = Batcher.extend({
|
|
|
75
75
|
*/
|
|
76
76
|
handleHttpError(reason) {
|
|
77
77
|
if (reason instanceof WebexHttpError.NetworkOrCORSError) {
|
|
78
|
+
if (!this.config.batcherRetryOnNetworkError) {
|
|
79
|
+
return Reflect.apply(Batcher.prototype.handleHttpError, this, [reason]);
|
|
80
|
+
}
|
|
81
|
+
|
|
78
82
|
this.logger.warn(
|
|
79
83
|
'metrics-batcher: received network error submitting metrics, reenqueuing payload'
|
|
80
84
|
);
|