UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

1 lines 11.1 kB
{"version":3,"sources":["../../../packages/core/diagnostics/sme-web-telemetry-models.ts"],"names":[],"mappings":"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","file":"sme-web-telemetry-models.d.ts","sourcesContent":["// 1DS documentation found at\r\n// https://1dsdocs.azurewebsites.net/getting-started/javascript-getting_started.html\r\n\r\n/**\r\n * This file contains override value interfaces from 1DS - we redefine these locally because we cannot take the npm package due to\r\n * it being from a private feed. Instead, we load the CDN and use our redefined interfaces to help everything mesh together.\r\n * Disable tslint interface prefix rule b/c these are 1DS libraries, avoid renaming to keep consistent.\r\n */\r\n\r\nimport { RpcNotification } from '../rpc/notification/rpc-notification-model';\r\n\r\n/************************************\r\n * WAC models\r\n ************************************/\r\n\r\n/**\r\n * Exposed class to hold sme performance data.\r\n */\r\nexport interface SmePerformanceData {\r\n label?: string;\r\n sme?: any;\r\n resources?: any;\r\n navigation?: any;\r\n totalLoadTime: number;\r\n}\r\n\r\n/**\r\n * Holds lighthouse metrics to send via telemetry. See more details at https://web.dev/vitals/\r\n */\r\n export interface LighthousePerformanceMetrics {\r\n CumulativeLayoutShift?: number;\r\n LargestContentfulPaint?: number;\r\n FirstContentfulPaint?: number;\r\n FirstInputDelay?: number;\r\n TimeToFirstByte?: number;\r\n TotalBlockingTime?: number;\r\n TimeToInteractive?: number;\r\n}\r\n\r\n/**\r\n * Class w/ all SME performance data to be sent via telemetry. Internal to SmeWebTelemetry.\r\n * Numbers are converted to strings because we use toFixed to truncate numbers to avoid triggering MSCOM scrubbed\r\n * stream personal data removal (eg with phone numbers)\r\n */\r\nexport interface CompleteSmePerformanceData {\r\n extension: string;\r\n entryPointName: string;\r\n url: string;\r\n moduleOpened: boolean;\r\n label?: string;\r\n sme?: any;\r\n resources?: any;\r\n navigation?: any;\r\n totalLoadTime: string;\r\n}\r\n\r\n/**\r\n * Class to hold any kind of telemetry event parameters needed to fire an event.\r\n */\r\nexport interface TelemetryEventBody {\r\n overrideValues?: IOverrideValues;\r\n element?: Element;\r\n performance?: SmePerformanceData;\r\n lighthouse?: LighthousePerformanceMetrics;\r\n notification?: RpcNotification;\r\n custom?: any;\r\n customProperties?: { [name: string]: any };\r\n}\r\n\r\n/**\r\n * Telemetry events supported.\r\n */\r\nexport enum TelemetryEvents {\r\n Action,\r\n PageView,\r\n ContentUpdate,\r\n Performance,\r\n Lighthouse,\r\n ModuleOpenPerformance,\r\n Notification\r\n}\r\n\r\n/**\r\n * Telemetry action types supported - corresponds to awa jsll action type dictionary.\r\n */\r\n export enum TelemetryActionTypes {\r\n Automatic = 'A',\r\n Click = 'CL'\r\n}\r\n\r\n/**\r\n * Telemetry event types supported - labels type field in data dictionary within events.\r\n */\r\n export enum TelemetryEventTypes {\r\n Informational = 'info',\r\n Error = 'error',\r\n Performance = 'performance',\r\n Lighthouse = 'lighthouse',\r\n Notification = 'notification',\r\n Powershell = 'powershell',\r\n StatusUpdate = 'statusUpdate'\r\n}\r\n\r\n/**\r\n * Labels for WAC metadata tags\r\n */\r\nexport enum SmeMetaLabels {\r\n Language = 'wac-lang',\r\n IsProduction = 'wac-prod',\r\n ExtensionVersion = 'wac-extension-version',\r\n SessionId = 'wac-session-id',\r\n InstallationType = 'wac-installation-type',\r\n Build = 'wac-build',\r\n Market = 'market',\r\n Environment = 'env',\r\n GatewayMode = 'wac-gateway-mode',\r\n GatewayOperationalMode = 'wac-gateway-operational-mode'\r\n}\r\n\r\n/**\r\n * Standard telemetry tracking event states\r\n */\r\nexport enum TelemetryEventStates {\r\n Started = 'started',\r\n Completed = 'completed',\r\n Error = 'error',\r\n Exited = 'exited'\r\n}\r\n\r\n/**\r\n * Include powershell details that may be helpful in telemetry, including response and psSessionId.\r\n * Data is kept as an optional any-helpful field kind of thing.\r\n */\r\nexport interface PowershellDetails {\r\n /**\r\n * Response object - this should be the response within the error if result is an AjaxError\r\n */\r\n response?: any;\r\n\r\n /**\r\n * Powershell session ID - used to map to PS command in telemetry\r\n */\r\n id?: string;\r\n\r\n /**\r\n * Any other miscellaneous data that would like to be sent.\r\n */\r\n otherData?: any;\r\n}\r\n\r\n/************************************\r\n * Override values interfaces\r\n ************************************/\r\n export interface IOverrideValues {\r\n /**\r\n * One of the awa.behavior values.\r\n */\r\n behavior?: number;\r\n /**\r\n * Page name\r\n */\r\n pageName?: string;\r\n /**\r\n * Page type\r\n */\r\n pageType?: string;\r\n /**\r\n * KVP to be added to the page tags collected\r\n */\r\n pageTags?: any;\r\n /**\r\n * Indicates if the event was fired automatically\r\n */\r\n isAuto?: boolean;\r\n}\r\n\r\n/**\r\n * Overrides for Page View event\r\n */\r\n export interface IPageViewOverrideValues extends IOverrideValues {\r\n /**\r\n * Uri of the referrer page\r\n */\r\n referrerUri?: string;\r\n}\r\n\r\n/**\r\n * Overrides for Page Action event\r\n */\r\nexport interface IPageActionOverrideValues extends IOverrideValues {\r\n /**\r\n * Uri of the referrer page\r\n */\r\n refUri?: string;\r\n /**\r\n * One of the awa.actionType values\r\n */\r\n actionType?: string;\r\n /**\r\n * Target uri for PageAction events\r\n */\r\n targetUri?: string;\r\n /**\r\n * Click coordinates relative to the top left of the fully rendered content area in the browser\r\n */\r\n clickCoordinateX?: number;\r\n /**\r\n * Click coordinates relative to the top left of the fully rendered content area in the browser\r\n */\r\n clickCoordinateY?: number;\r\n /**\r\n * KVP of the content\r\n */\r\n content?: any;\r\n /**\r\n * KVPs to be added to the content tags collected on a Page Action event; extends the items in the Content blob in Page Action events\r\n */\r\n contentTags?: any;\r\n}\r\n\r\n/**\r\n * Overrides for Content Update event\r\n */\r\nexport interface IContentUpdateOverrideValues extends IOverrideValues {\r\n /**\r\n * KVP of the content\r\n */\r\n content?: any;\r\n /**\r\n * Indicates if the Contentupdate event is the first ContentUpdate event\r\n */\r\n isDomComplete?: boolean;\r\n /**\r\n * One of the awa.actionType values\r\n */\r\n actionType?: string;\r\n}\r\n\r\n/**\r\n * Overrides for Page Unload event\r\n */\r\nexport interface IPageUnloadOverrideValues extends IOverrideValues {\r\n /**\r\n * Scroll depth override\r\n */\r\n scrollDepth?: string;\r\n /**\r\n * Vertical scroll position/offset when event was fired in pixels.\r\n */\r\n vScrollOffset?: number;\r\n}\r\n\r\n/**\r\n * Overrides for Page View Performance event\r\n */\r\nexport interface IPageViewPerformanceOverrideValues extends IOverrideValues {\r\n /**\r\n * Viewport height\r\n */\r\n vpHeight?: number;\r\n /**\r\n * Viewport width\r\n */\r\n vpWidth?: number;\r\n /**\r\n * Represents UX Framework name and version used.\r\n */\r\n framework?: string;\r\n /**\r\n * These are timings pulled from the browser/container.\r\n * They are standards which are captured by the browser, like the navigationStart/End, LoadEventStart/End\r\n */\r\n systemTiming?: string;\r\n /**\r\n * These are user set timings\r\n */\r\n customTiming?: string;\r\n}\r\n"]}