UNPKG

@microsoft/omnichannel-chat-sdk

Version:
542 lines 26.9 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var AriaSDK_1 = require("../external/aria/webjs/AriaSDK"); var settings_1 = require("../config/settings"); var platform_1 = require("../utils/platform"); var Enums_1 = require("../external/aria/common/Enums"); var LogLevel_1 = require("../telemetry/LogLevel"); var ScenarioType_1 = require("../telemetry/ScenarioType"); var settings_2 = require("../config/settings"); var package_json_1 = require("@microsoft/botframework-webchat-adapter-azure-communication-chat/package.json"); var Renderer; (function (Renderer) { Renderer["ReactNative"] = "ReactNative"; })(Renderer || (Renderer = {})); var defaultAriaconfig = { collectorUri: 'https://browser.pipe.aria.microsoft.com/Collector/3.0/', cacheMemorySizeLimitInNumberOfEvents: 10000, disableCookiesUsage: false, canSendStatEvent: function (eventName) { return true; }, // eslint-disable-line @typescript-eslint/no-unused-vars clockSkewRefreshDurationInMins: 0 }; var AriaTelemetry = /** @class */ (function () { function AriaTelemetry() { } AriaTelemetry.initialize = function (key, configuration) { if (configuration === void 0) { configuration = defaultAriaconfig; } /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][logger][initialize][custom]"); AriaTelemetry._key = key; AriaTelemetry._configuration = __assign(__assign(__assign({}, defaultAriaconfig), configuration), { collectorUri: AriaTelemetry._collectorUri }); AriaTelemetry._logger = AriaSDK_1.AWTLogManager.initialize(key, AriaTelemetry._configuration); }; /* istanbul ignore next */ AriaTelemetry.setDebug = function (flag) { AriaTelemetry._debug = flag; }; AriaTelemetry.disable = function () { /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][disable]"); AriaTelemetry._disable = true; }; AriaTelemetry.setCollectorUri = function (collectorUri) { AriaTelemetry._collectorUri = collectorUri; AriaTelemetry._configuration = __assign(__assign(__assign({}, defaultAriaconfig), AriaTelemetry._configuration), { collectorUri: AriaTelemetry._collectorUri }); }; AriaTelemetry.setCDNPackages = function (packages) { AriaTelemetry._CDNPackagesInfo = __assign(__assign({}, AriaTelemetry._CDNPackagesInfo), packages); }; AriaTelemetry.info = function (properties, scenarioType) { var _a; if (scenarioType === void 0) { scenarioType = ScenarioType_1.default.EVENTS; } var event = { name: ScenarioType_1.default.EVENTS, properties: __assign(__assign(__assign(__assign(__assign({}, AriaTelemetry.populateBaseProperties()), AriaTelemetry.fillWebPlatformData()), AriaTelemetry.fillMobilePlatformData()), properties), { LogLevel: LogLevel_1.default.INFO }), priority: Enums_1.AWTEventPriority.High }; if (scenarioType == ScenarioType_1.default.IC3CLIENT) { event = { name: ScenarioType_1.default.IC3CLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateIC3ClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.INFO }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.OCSDK) { event = { name: ScenarioType_1.default.OCSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateOCSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.INFO }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSCLIENT) { event = { name: ScenarioType_1.default.ACSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.INFO }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSADAPTER) { event = { name: ScenarioType_1.default.ACSADAPTER, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSAdapterBaseProperties()), properties), { LogLevel: LogLevel_1.default.INFO }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.CALLINGSDK) { event = { name: ScenarioType_1.default.CALLINGSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateCallingSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.INFO }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.AMSCLIENT) { event = { name: ScenarioType_1.default.AMSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateAMSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.INFO }), priority: Enums_1.AWTEventPriority.High }; } /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][info] ".concat(scenarioType)); /* istanbul ignore next */ this._debug && console.log(event); /* istanbul ignore next */ this._debug && console.log(event.properties.Event); !AriaTelemetry._disable && ((_a = AriaTelemetry.logger) === null || _a === void 0 ? void 0 : _a.logEvent(event)); }; AriaTelemetry.debug = function (properties, scenarioType) { var _a; if (scenarioType === void 0) { scenarioType = ScenarioType_1.default.EVENTS; } var event = { name: ScenarioType_1.default.EVENTS, properties: __assign(__assign(__assign(__assign(__assign({}, AriaTelemetry.populateBaseProperties()), AriaTelemetry.fillWebPlatformData()), AriaTelemetry.fillMobilePlatformData()), properties), { LogLevel: LogLevel_1.default.DEBUG }), priority: Enums_1.AWTEventPriority.High }; if (scenarioType == ScenarioType_1.default.IC3CLIENT) { event = { name: ScenarioType_1.default.IC3CLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateIC3ClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.DEBUG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.OCSDK) { event = { name: ScenarioType_1.default.OCSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateOCSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.DEBUG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSCLIENT) { event = { name: ScenarioType_1.default.ACSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.DEBUG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSADAPTER) { event = { name: ScenarioType_1.default.ACSADAPTER, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSAdapterBaseProperties()), properties), { LogLevel: LogLevel_1.default.DEBUG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.CALLINGSDK) { event = { name: ScenarioType_1.default.CALLINGSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateCallingSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.DEBUG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.AMSCLIENT) { event = { name: ScenarioType_1.default.AMSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateAMSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.DEBUG }), priority: Enums_1.AWTEventPriority.High }; } /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][debug] ".concat(scenarioType)); /* istanbul ignore next */ this._debug && console.log(event); /* istanbul ignore next */ this._debug && console.log(event.properties.Event); !AriaTelemetry._disable && ((_a = AriaTelemetry.logger) === null || _a === void 0 ? void 0 : _a.logEvent(event)); }; AriaTelemetry.warn = function (properties, scenarioType) { var _a; if (scenarioType === void 0) { scenarioType = ScenarioType_1.default.EVENTS; } var event = { name: ScenarioType_1.default.EVENTS, properties: __assign(__assign(__assign(__assign(__assign({}, AriaTelemetry.populateBaseProperties()), AriaTelemetry.fillWebPlatformData()), AriaTelemetry.fillMobilePlatformData()), properties), { LogLevel: LogLevel_1.default.WARN }), priority: Enums_1.AWTEventPriority.High }; if (scenarioType == ScenarioType_1.default.IC3CLIENT) { event = { name: ScenarioType_1.default.IC3CLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateIC3ClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.WARN }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.OCSDK) { event = { name: ScenarioType_1.default.OCSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateOCSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.WARN }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSCLIENT) { event = { name: ScenarioType_1.default.ACSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.WARN }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSADAPTER) { event = { name: ScenarioType_1.default.ACSADAPTER, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSAdapterBaseProperties()), properties), { LogLevel: LogLevel_1.default.WARN }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.CALLINGSDK) { event = { name: ScenarioType_1.default.CALLINGSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateCallingSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.WARN }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.AMSCLIENT) { event = { name: ScenarioType_1.default.AMSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateAMSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.WARN }), priority: Enums_1.AWTEventPriority.High }; } /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][warn] ".concat(scenarioType)); /* istanbul ignore next */ this._debug && console.log(event); /* istanbul ignore next */ this._debug && console.log(event.properties.Event); !AriaTelemetry._disable && ((_a = AriaTelemetry.logger) === null || _a === void 0 ? void 0 : _a.logEvent(event)); }; AriaTelemetry.error = function (properties, scenarioType) { var _a; if (scenarioType === void 0) { scenarioType = ScenarioType_1.default.EVENTS; } var event = { name: ScenarioType_1.default.EVENTS, properties: __assign(__assign(__assign(__assign(__assign({}, AriaTelemetry.populateBaseProperties()), AriaTelemetry.fillWebPlatformData()), AriaTelemetry.fillMobilePlatformData()), properties), { LogLevel: LogLevel_1.default.ERROR }), priority: Enums_1.AWTEventPriority.High }; if (scenarioType == ScenarioType_1.default.IC3CLIENT) { event = { name: ScenarioType_1.default.IC3CLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateIC3ClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.ERROR }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.OCSDK) { event = { name: ScenarioType_1.default.OCSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateOCSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.ERROR }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSCLIENT) { event = { name: ScenarioType_1.default.ACSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.ERROR }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSADAPTER) { event = { name: ScenarioType_1.default.ACSADAPTER, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSAdapterBaseProperties()), properties), { LogLevel: LogLevel_1.default.ERROR }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.CALLINGSDK) { event = { name: ScenarioType_1.default.CALLINGSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateCallingSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.ERROR }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.AMSCLIENT) { event = { name: ScenarioType_1.default.AMSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateAMSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.ERROR }), priority: Enums_1.AWTEventPriority.High }; } /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][error] ".concat(scenarioType)); /* istanbul ignore next */ this._debug && console.log(event); /* istanbul ignore next */ this._debug && console.log(event.properties.Event); !AriaTelemetry._disable && ((_a = AriaTelemetry.logger) === null || _a === void 0 ? void 0 : _a.logEvent(event)); }; AriaTelemetry.log = function (properties, scenarioType) { var _a; if (scenarioType === void 0) { scenarioType = ScenarioType_1.default.EVENTS; } var event = { name: ScenarioType_1.default.EVENTS, properties: __assign(__assign(__assign(__assign(__assign({}, AriaTelemetry.populateBaseProperties()), AriaTelemetry.fillWebPlatformData()), AriaTelemetry.fillMobilePlatformData()), properties), { LogLevel: LogLevel_1.default.LOG }), priority: Enums_1.AWTEventPriority.High }; if (scenarioType == ScenarioType_1.default.IC3CLIENT) { event = { name: ScenarioType_1.default.IC3CLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateIC3ClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.LOG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.OCSDK) { event = { name: ScenarioType_1.default.OCSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateOCSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.LOG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSCLIENT) { event = { name: ScenarioType_1.default.ACSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.LOG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.ACSADAPTER) { event = { name: ScenarioType_1.default.ACSADAPTER, properties: __assign(__assign(__assign({}, AriaTelemetry.populateACSAdapterBaseProperties()), properties), { LogLevel: LogLevel_1.default.LOG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.CALLINGSDK) { event = { name: ScenarioType_1.default.CALLINGSDK, properties: __assign(__assign(__assign({}, AriaTelemetry.populateCallingSDKBaseProperties()), properties), { LogLevel: LogLevel_1.default.LOG }), priority: Enums_1.AWTEventPriority.High }; } if (scenarioType == ScenarioType_1.default.AMSCLIENT) { event = { name: ScenarioType_1.default.AMSCLIENT, properties: __assign(__assign(__assign({}, AriaTelemetry.populateAMSClientBaseProperties()), properties), { LogLevel: LogLevel_1.default.LOG }), priority: Enums_1.AWTEventPriority.High }; } /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][log]"); /* istanbul ignore next */ this._debug && console.log(event); /* istanbul ignore next */ this._debug && console.log(event.properties.Event); !AriaTelemetry._disable && ((_a = AriaTelemetry.logger) === null || _a === void 0 ? void 0 : _a.logEvent(event)); }; Object.defineProperty(AriaTelemetry, "logger", { get: function () { if (!AriaTelemetry._logger) { /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][logger][initialize]"); AriaTelemetry._logger = AriaSDK_1.AWTLogManager.initialize(settings_2.ariaTelemetryKey, AriaTelemetry._configuration); } return AriaTelemetry._logger; }, enumerable: false, configurable: true }); AriaTelemetry.populateBaseProperties = function () { var packagesInfo = { OCSDK: require('@microsoft/ocsdk/package.json').version, // eslint-disable-line @typescript-eslint/no-var-requires IC3Core: require('@microsoft/omnichannel-ic3core/package.json').version, // eslint-disable-line @typescript-eslint/no-var-requires ACSChat: require('@azure/communication-chat/package.json').version, // eslint-disable-line @typescript-eslint/no-var-requires ACSCommon: require('@azure/communication-common/package.json').version, // eslint-disable-line @typescript-eslint/no-var-requires AMSClient: require('@microsoft/omnichannel-amsclient/package.json').version, // eslint-disable-line @typescript-eslint/no-var-requires }; return { ChatSDKRuntimeId: '', OrgId: '', OrgUrl: '', WidgetId: '', RequestId: '', ChatId: '', CallId: '', Domain: '', ExceptionDetails: '', ElapsedTimeInMilliseconds: '', ChatSDKVersion: require('../../package.json').version, // eslint-disable-line @typescript-eslint/no-var-requires NPMPackagesInfo: JSON.stringify(packagesInfo), CDNPackagesInfo: JSON.stringify(AriaTelemetry._CDNPackagesInfo), PlatformDetails: '' }; }; AriaTelemetry.fillMobilePlatformData = function () { var platformData = {}; // eslint-disable-line @typescript-eslint/no-explicit-any var platformDetails = {}; // eslint-disable-line @typescript-eslint/no-explicit-any if (!(0, platform_1.isReactNative)()) { return platformData; } try { var ReactNative = require('react-native'); // eslint-disable-line @typescript-eslint/no-var-requires var Platform = ReactNative.Platform; platformDetails.Renderer = Renderer.ReactNative; platformData.DeviceInfo_OsVersion = Platform.Version; platformDetails.DeviceInfo_OsVersion = Platform.Version; if (Platform.OS.toLowerCase() === 'android') { platformData.DeviceInfo_OsName = 'Android'; platformDetails.DeviceInfo_OsName = 'Android'; } else if (Platform.OS.toLowerCase() === 'ios') { platformData.DeviceInfo_OsName = 'iOS'; platformDetails.DeviceInfo_OsName = 'iOS'; } else { platformData.DeviceInfo_OsName = "".concat(Platform.OS); platformDetails.DeviceInfo_OsName = "".concat(Platform.OS); } /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][fillMobilePlatformData][".concat(platformData.DeviceInfo_OsName, "]")); } catch (_a) { /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][fillMobilePlatformData][Web]"); } platformData.PlatformDetails = JSON.stringify(platformDetails); // Fallback if unable to overwrite Aria's default properties return platformData; }; AriaTelemetry.fillWebPlatformData = function () { var platformData = {}; // eslint-disable-line @typescript-eslint/no-explicit-any if (!(0, platform_1.isBrowser)()) { return platformData; } try { platformData.Domain = window.location.origin || ''; /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][fillWebPlatformData]"); } catch (_a) { /* istanbul ignore next */ this._debug && console.log("[AriaTelemetry][fillWebPlatformData][Error]"); } return platformData; }; AriaTelemetry.populateIC3ClientBaseProperties = function () { return { ChatSDKRuntimeId: '', OrgId: '', OrgUrl: '', WidgetId: '', RequestId: '', ChatId: '', Event: '', Description: '', SubscriptionId: '', EndpointId: '', EndpointUrl: '', ErrorCode: '', ExceptionDetails: '', ElapsedTimeInMilliseconds: '', IC3ClientVersion: settings_1.ic3ClientVersion }; }; AriaTelemetry.populateOCSDKBaseProperties = function () { return { ChatSDKRuntimeId: '', OrgId: '', OrgUrl: '', WidgetId: '', RequestId: '', ChatId: '', TransactionId: '', Event: '', ExceptionDetails: '', ElapsedTimeInMilliseconds: '', HttpRequestResponseTime: '', RequestHeaders: '', RequestPayload: '', RequestPath: '', RequestMethod: '', ResponseStatusCode: '', OCSDKVersion: require('@microsoft/ocsdk/package.json').version // eslint-disable-line @typescript-eslint/no-var-requires }; }; AriaTelemetry.populateACSClientBaseProperties = function () { return { ChatSDKRuntimeId: '', OrgId: '', OrgUrl: '', WidgetId: '', RequestId: '', ChatId: '', Event: '', ExceptionDetails: '', ElapsedTimeInMilliseconds: '', ACSChatVersion: require('@azure/communication-chat/package.json').version // eslint-disable-line @typescript-eslint/no-var-requires }; }; AriaTelemetry.populateACSAdapterBaseProperties = function () { return { ChatSDKRuntimeId: '', OrgId: '', OrgUrl: '', WidgetId: '', RequestId: '', ChatId: '', Event: '', ExceptionDetails: '', ElapsedTimeInMilliseconds: '', ACSAdapterVersion: package_json_1.version }; }; AriaTelemetry.populateCallingSDKBaseProperties = function () { return { ChatSDKRuntimeId: '', OrgId: '', OrgUrl: '', WidgetId: '', RequestId: '', ChatId: '', CallId: '', Event: '', Description: '', ExceptionDetails: '', ElapsedTimeInMilliseconds: '' }; }; AriaTelemetry.populateAMSClientBaseProperties = function () { return { ChatSDKRuntimeId: '', OrgId: '', OrgUrl: '', WidgetId: '', RequestId: '', ChatId: '', Event: '', ExceptionDetails: '', ElapsedTimeInMilliseconds: '', AMSClientVersion: require('@microsoft/omnichannel-amsclient/package.json').version // eslint-disable-line @typescript-eslint/no-var-requires }; }; AriaTelemetry._debug = false; AriaTelemetry._disable = false; AriaTelemetry._key = settings_2.ariaTelemetryKey; AriaTelemetry._collectorUri = defaultAriaconfig.collectorUri; AriaTelemetry._configuration = {}; return AriaTelemetry; }()); exports.default = AriaTelemetry; //# sourceMappingURL=AriaTelemetry.js.map