@webex/internal-plugin-metrics 2.43.1 → 2.44.0

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/index.js CHANGED
@@ -26,7 +26,6 @@ _Object$defineProperty(exports, "getOSNameInternal", {
26
26
  return _metrics.getOSNameInternal;
27
27
  }
28
28
  });
29
- require("@webex/internal-plugin-device");
30
29
  var _webexCore = require("@webex/webex-core");
31
30
  var _metrics = _interopRequireWildcard(require("./metrics"));
32
31
  var _config = _interopRequireDefault(require("./config"));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["require","_webexCore","_metrics","_interopRequireWildcard","_config","_interopRequireDefault","_getRequireWildcardCache","nodeInterop","_WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor","key","Object","prototype","hasOwnProperty","call","desc","set","registerInternalPlugin","Metrics","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-device';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Metrics from './metrics';\nimport config from './config';\n\nregisterInternalPlugin('metrics', Metrics, {\n config,\n});\n\nexport {default, getOSNameInternal} from './metrics';\nexport {config};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIAA,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAC,sBAAA,CAAAL,OAAA;AAA8B,SAAAM,yBAAAC,WAAA,eAAAC,QAAA,kCAAAC,iBAAA,OAAAD,QAAA,QAAAE,gBAAA,OAAAF,QAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,4BAAAG,OAAA,EAAAH,GAAA,UAAAI,KAAA,GAAAT,wBAAA,CAAAC,WAAA,OAAAQ,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAL,GAAA,YAAAI,KAAA,CAAAE,GAAA,CAAAN,GAAA,SAAAO,MAAA,WAAAC,qBAAA,GAAAC,sBAAA,IAAAC,gCAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAC,MAAA,CAAAC,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,GAAA,EAAAW,GAAA,SAAAK,IAAA,GAAAR,qBAAA,GAAAE,gCAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAK,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,sBAAA,CAAAF,MAAA,EAAAI,GAAA,EAAAK,IAAA,YAAAT,MAAA,CAAAI,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAJ,MAAA,CAAAJ,OAAA,GAAAH,GAAA,MAAAI,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAjB,GAAA,EAAAO,MAAA,YAAAA,MAAA;AAT9B;AACA;AACA;;AASA,IAAAW,iCAAsB,EAAC,SAAS,EAAEC,gBAAO,EAAE;EACzCC,MAAM,EAANA;AACF,CAAC,CAAC"}
1
+ {"version":3,"names":["_webexCore","require","_metrics","_interopRequireWildcard","_config","_interopRequireDefault","_getRequireWildcardCache","nodeInterop","_WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor","key","Object","prototype","hasOwnProperty","call","desc","set","registerInternalPlugin","Metrics","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Metrics from './metrics';\nimport config from './config';\n\nregisterInternalPlugin('metrics', Metrics, {\n config,\n});\n\nexport {default, getOSNameInternal} from './metrics';\nexport {config};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAA8B,SAAAK,yBAAAC,WAAA,eAAAC,QAAA,kCAAAC,iBAAA,OAAAD,QAAA,QAAAE,gBAAA,OAAAF,QAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,4BAAAG,OAAA,EAAAH,GAAA,UAAAI,KAAA,GAAAT,wBAAA,CAAAC,WAAA,OAAAQ,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAL,GAAA,YAAAI,KAAA,CAAAE,GAAA,CAAAN,GAAA,SAAAO,MAAA,WAAAC,qBAAA,GAAAC,sBAAA,IAAAC,gCAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAC,MAAA,CAAAC,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,GAAA,EAAAW,GAAA,SAAAK,IAAA,GAAAR,qBAAA,GAAAE,gCAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAK,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,sBAAA,CAAAF,MAAA,EAAAI,GAAA,EAAAK,IAAA,YAAAT,MAAA,CAAAI,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAJ,MAAA,CAAAJ,OAAA,GAAAH,GAAA,MAAAI,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAjB,GAAA,EAAAO,MAAA,YAAAA,MAAA;AAP9B;AACA;AACA;;AAOA,IAAAW,iCAAsB,EAAC,SAAS,EAAEC,gBAAO,EAAE;EACzCC,MAAM,EAANA;AACF,CAAC,CAAC"}
package/dist/metrics.js CHANGED
@@ -80,8 +80,7 @@ var Metrics = _webexCore.WebexPlugin.extend({
80
80
  // eslint-disable-next-line no-undef
81
81
  domain: typeof window !== 'undefined' ? window.location.hostname || 'non-browser' : 'non-browser',
82
82
  // Check what else we could measure
83
- client_id: this.webex.credentials.config.client_id,
84
- user_id: this.webex.internal.device.userId
83
+ client_id: this.webex.credentials.config.client_id
85
84
  });
86
85
  try {
87
86
  payload.tags.org_id = this.webex.credentials.getOrgId();
@@ -166,7 +165,7 @@ var Metrics = _webexCore.WebexPlugin.extend({
166
165
  };
167
166
  return this.callDiagnosticEventsBatcher.request(event);
168
167
  },
169
- version: "2.43.1"
168
+ version: "2.44.0"
170
169
  });
171
170
  var _default = Metrics;
172
171
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_common","_config","_batcher","_interopRequireDefault","_clientMetricsBatcher","_callDiagnosticEventsBatcher","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_BrowserDetection","BrowserDetection","getOSName","getOSVersion","getBrowserName","getBrowserVersion","getOSNameInternal","_OSMap$getOSName","OSMap","OS_NAME","OTHERS","getSparkUserAgent","webex","_webex$config","_ref","config","appName","appVersion","appPlatform","sparkUserAgent","CLIENT_NAME","concat","Metrics","WebexPlugin","extend","children","batcher","Batcher","clientMetricsBatcher","ClientMetricsBatcher","callDiagnosticEventsBatcher","CallDiagnosticEventsBatcher","namespace","submit","value","request","submitClientMetrics","eventName","props","undefined","preLoginId","Error","payload","metricName","tags","browser","os","domain","window","location","hostname","client_id","credentials","user_id","internal","device","userId","org_id","getOrgId","_unused","logger","info","fields","browser_version","os_version","sdk_version","version","platform","spark_user_agent","type","metrics","context","app","locale","name","eventPayload","timestamp","Date","valueOf","_payload","postPreLoginMetric","aliasUser","method","api","resource","headers","body","qs","alias","_this","getClientToken","then","token","authorization","toString","submitCallDiagnosticEvents","event","_default","exports"],"sources":["metrics.js"],"sourcesContent":["/* eslint-disable default-param-last */\n\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\nimport {BrowserDetection} from '@webex/common';\nimport {OS_NAME, OSMap, CLIENT_NAME} from './config';\n\nimport Batcher from './batcher';\nimport ClientMetricsBatcher from './client-metrics-batcher';\nimport CallDiagnosticEventsBatcher from './call-diagnostic-events-batcher';\n\nconst {getOSName, getOSVersion, getBrowserName, getBrowserVersion} = BrowserDetection();\n\nexport function getOSNameInternal() {\n return OSMap[getOSName()] ?? OS_NAME.OTHERS;\n}\n\nfunction getSparkUserAgent(webex) {\n const {appName, appVersion, appPlatform} = webex?.config ?? {};\n\n let sparkUserAgent = CLIENT_NAME;\n\n if (appName) {\n sparkUserAgent += ` ${appName}/${appVersion ?? '0.0'}`;\n }\n\n if (appPlatform) {\n sparkUserAgent += ` ${appPlatform}`;\n }\n\n return sparkUserAgent;\n}\n\nconst Metrics = WebexPlugin.extend({\n children: {\n batcher: Batcher,\n clientMetricsBatcher: ClientMetricsBatcher,\n callDiagnosticEventsBatcher: CallDiagnosticEventsBatcher,\n },\n\n namespace: 'Metrics',\n\n submit(key, value) {\n return this.batcher.request({key, ...value});\n },\n\n /**\n * This corresponds to #sendSemiStructured() in the deprecated metrics handler\n * @param {string} eventName\n * @param {Object} props\n * @param {string} preLoginId\n * @returns {Object} HttpResponse object\n */\n submitClientMetrics(eventName, props = {}, preLoginId) {\n if (!eventName) {\n throw Error('Missing behavioral metric name. Please provide one');\n }\n const payload = {metricName: eventName};\n\n payload.tags = {\n ...props.tags,\n browser: getBrowserName(),\n os: getOSNameInternal(),\n\n // Node does not like this so we need to check if it exists or not\n // eslint-disable-next-line no-undef\n domain:\n typeof window !== 'undefined' ? window.location.hostname || 'non-browser' : 'non-browser', // Check what else we could measure\n client_id: this.webex.credentials.config.client_id,\n user_id: this.webex.internal.device.userId,\n };\n\n try {\n payload.tags.org_id = this.webex.credentials.getOrgId();\n } catch {\n this.logger.info('metrics: unable to get orgId');\n }\n\n payload.fields = {\n ...props.fields,\n browser_version: getBrowserVersion(),\n os_version: getOSVersion(),\n sdk_version: this.webex.version,\n platform: 'Web',\n spark_user_agent: getSparkUserAgent(this.webex),\n };\n\n payload.type = props.type || this.webex.config.metrics.type;\n\n payload.context = {\n ...props.context,\n app: {\n version: this.webex.version,\n },\n locale: 'en-US',\n os: {\n name: getOSNameInternal(),\n version: getOSVersion(),\n },\n };\n\n if (props.eventPayload) {\n payload.eventPayload = props.eventPayload;\n }\n\n // Mocking the time in tests when running in node\n // is impossible so unable to use Date.now()\n payload.timestamp = new Date().valueOf();\n\n if (preLoginId) {\n const _payload = {\n metrics: [payload],\n };\n\n // Do not batch these because pre-login events occur during onboarding, so we will be partially blind\n // to users' progress through the reg flow if we wait to persist pre-login metrics for people who drop off because\n // their metrics will not post from a queue flush in time\n return this.postPreLoginMetric(_payload, preLoginId);\n }\n\n return this.clientMetricsBatcher.request(payload);\n },\n\n /**\n * Issue request to alias a user's pre-login ID with their CI UUID\n * @param {string} preLoginId\n * @returns {Object} HttpResponse object\n */\n aliasUser(preLoginId) {\n return this.request({\n method: 'POST',\n api: 'metrics',\n resource: 'clientmetrics',\n headers: {\n 'x-prelogin-userid': preLoginId,\n },\n body: {},\n qs: {\n alias: true,\n },\n });\n },\n\n postPreLoginMetric(payload, preLoginId) {\n return this.webex.credentials.getClientToken().then((token) =>\n this.request({\n method: 'POST',\n api: 'metrics',\n resource: 'clientmetrics-prelogin',\n headers: {\n authorization: token.toString(),\n 'x-prelogin-userid': preLoginId,\n },\n body: payload,\n })\n );\n },\n\n submitCallDiagnosticEvents(payload) {\n const event = {\n type: 'diagnostic-event',\n eventPayload: payload,\n };\n\n return this.callDiagnosticEventsBatcher.request(event);\n },\n});\n\nexport default Metrics;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_webexCore","require","_common","_config","_batcher","_interopRequireDefault","_clientMetricsBatcher","_callDiagnosticEventsBatcher","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_BrowserDetection","BrowserDetection","getOSName","getOSVersion","getBrowserName","getBrowserVersion","getOSNameInternal","_OSMap$getOSName","OSMap","OS_NAME","OTHERS","getSparkUserAgent","webex","_webex$config","_ref","config","appName","appVersion","appPlatform","sparkUserAgent","CLIENT_NAME","concat","Metrics","WebexPlugin","extend","children","batcher","Batcher","clientMetricsBatcher","ClientMetricsBatcher","callDiagnosticEventsBatcher","CallDiagnosticEventsBatcher","namespace","submit","value","request","submitClientMetrics","eventName","props","undefined","preLoginId","Error","payload","metricName","tags","browser","os","domain","window","location","hostname","client_id","credentials","org_id","getOrgId","_unused","logger","info","fields","browser_version","os_version","sdk_version","version","platform","spark_user_agent","type","metrics","context","app","locale","name","eventPayload","timestamp","Date","valueOf","_payload","postPreLoginMetric","aliasUser","method","api","resource","headers","body","qs","alias","_this","getClientToken","then","token","authorization","toString","submitCallDiagnosticEvents","event","_default","exports"],"sources":["metrics.js"],"sourcesContent":["/* eslint-disable default-param-last */\n\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\nimport {BrowserDetection} from '@webex/common';\nimport {OS_NAME, OSMap, CLIENT_NAME} from './config';\n\nimport Batcher from './batcher';\nimport ClientMetricsBatcher from './client-metrics-batcher';\nimport CallDiagnosticEventsBatcher from './call-diagnostic-events-batcher';\n\nconst {getOSName, getOSVersion, getBrowserName, getBrowserVersion} = BrowserDetection();\n\nexport function getOSNameInternal() {\n return OSMap[getOSName()] ?? OS_NAME.OTHERS;\n}\n\nfunction getSparkUserAgent(webex) {\n const {appName, appVersion, appPlatform} = webex?.config ?? {};\n\n let sparkUserAgent = CLIENT_NAME;\n\n if (appName) {\n sparkUserAgent += ` ${appName}/${appVersion ?? '0.0'}`;\n }\n\n if (appPlatform) {\n sparkUserAgent += ` ${appPlatform}`;\n }\n\n return sparkUserAgent;\n}\n\nconst Metrics = WebexPlugin.extend({\n children: {\n batcher: Batcher,\n clientMetricsBatcher: ClientMetricsBatcher,\n callDiagnosticEventsBatcher: CallDiagnosticEventsBatcher,\n },\n\n namespace: 'Metrics',\n\n submit(key, value) {\n return this.batcher.request({key, ...value});\n },\n\n /**\n * This corresponds to #sendSemiStructured() in the deprecated metrics handler\n * @param {string} eventName\n * @param {Object} props\n * @param {string} preLoginId\n * @returns {Object} HttpResponse object\n */\n submitClientMetrics(eventName, props = {}, preLoginId) {\n if (!eventName) {\n throw Error('Missing behavioral metric name. Please provide one');\n }\n const payload = {metricName: eventName};\n\n payload.tags = {\n ...props.tags,\n browser: getBrowserName(),\n os: getOSNameInternal(),\n\n // Node does not like this so we need to check if it exists or not\n // eslint-disable-next-line no-undef\n domain:\n typeof window !== 'undefined' ? window.location.hostname || 'non-browser' : 'non-browser', // Check what else we could measure\n client_id: this.webex.credentials.config.client_id,\n };\n\n try {\n payload.tags.org_id = this.webex.credentials.getOrgId();\n } catch {\n this.logger.info('metrics: unable to get orgId');\n }\n\n payload.fields = {\n ...props.fields,\n browser_version: getBrowserVersion(),\n os_version: getOSVersion(),\n sdk_version: this.webex.version,\n platform: 'Web',\n spark_user_agent: getSparkUserAgent(this.webex),\n };\n\n payload.type = props.type || this.webex.config.metrics.type;\n\n payload.context = {\n ...props.context,\n app: {\n version: this.webex.version,\n },\n locale: 'en-US',\n os: {\n name: getOSNameInternal(),\n version: getOSVersion(),\n },\n };\n\n if (props.eventPayload) {\n payload.eventPayload = props.eventPayload;\n }\n\n // Mocking the time in tests when running in node\n // is impossible so unable to use Date.now()\n payload.timestamp = new Date().valueOf();\n\n if (preLoginId) {\n const _payload = {\n metrics: [payload],\n };\n\n // Do not batch these because pre-login events occur during onboarding, so we will be partially blind\n // to users' progress through the reg flow if we wait to persist pre-login metrics for people who drop off because\n // their metrics will not post from a queue flush in time\n return this.postPreLoginMetric(_payload, preLoginId);\n }\n\n return this.clientMetricsBatcher.request(payload);\n },\n\n /**\n * Issue request to alias a user's pre-login ID with their CI UUID\n * @param {string} preLoginId\n * @returns {Object} HttpResponse object\n */\n aliasUser(preLoginId) {\n return this.request({\n method: 'POST',\n api: 'metrics',\n resource: 'clientmetrics',\n headers: {\n 'x-prelogin-userid': preLoginId,\n },\n body: {},\n qs: {\n alias: true,\n },\n });\n },\n\n postPreLoginMetric(payload, preLoginId) {\n return this.webex.credentials.getClientToken().then((token) =>\n this.request({\n method: 'POST',\n api: 'metrics',\n resource: 'clientmetrics-prelogin',\n headers: {\n authorization: token.toString(),\n 'x-prelogin-userid': preLoginId,\n },\n body: payload,\n })\n );\n },\n\n submitCallDiagnosticEvents(payload) {\n const event = {\n type: 'diagnostic-event',\n eventPayload: payload,\n };\n\n return this.callDiagnosticEventsBatcher.request(event);\n },\n});\n\nexport default Metrics;\n"],"mappings":";;;;;;;;;;;;;;;AAMA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,qBAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,4BAAA,GAAAF,sBAAA,CAAAJ,OAAA;AAA2E,SAAAO,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,YAAA,CAAAH,MAAA,OAAAI,6BAAA,QAAAC,OAAA,GAAAD,6BAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAC,gCAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAmB,MAAA,CAAAD,MAAA,OAAAE,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAT,MAAA,EAAAO,GAAA,EAAAH,MAAA,CAAAG,GAAA,SAAAG,iCAAA,GAAAC,wBAAA,CAAAX,MAAA,EAAAU,iCAAA,CAAAN,MAAA,KAAAlB,OAAA,CAAAmB,MAAA,CAAAD,MAAA,GAAAE,OAAA,WAAAC,GAAA,IAAAK,sBAAA,CAAAZ,MAAA,EAAAO,GAAA,EAAAZ,gCAAA,CAAAS,MAAA,EAAAG,GAAA,iBAAAP,MAAA;AAE3E,IAAAa,iBAAA,GAAqE,IAAAC,wBAAgB,GAAE;EAAhFC,SAAS,GAAAF,iBAAA,CAATE,SAAS;EAAEC,YAAY,GAAAH,iBAAA,CAAZG,YAAY;EAAEC,cAAc,GAAAJ,iBAAA,CAAdI,cAAc;EAAEC,iBAAiB,GAAAL,iBAAA,CAAjBK,iBAAiB;AAE1D,SAASC,iBAAiBA,CAAA,EAAG;EAAA,IAAAC,gBAAA;EAClC,QAAAA,gBAAA,GAAOC,aAAK,CAACN,SAAS,EAAE,CAAC,cAAAK,gBAAA,cAAAA,gBAAA,GAAIE,eAAO,CAACC,MAAM;AAC7C;AAEA,SAASC,iBAAiBA,CAACC,KAAK,EAAE;EAAA,IAAAC,aAAA;EAChC,IAAAC,IAAA,IAAAD,aAAA,GAA2CD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,MAAM,cAAAF,aAAA,cAAAA,aAAA,GAAI,CAAC,CAAC;IAAvDG,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAEC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IAAEC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;EAEvC,IAAIC,cAAc,GAAGC,mBAAW;EAEhC,IAAIJ,OAAO,EAAE;IACXG,cAAc,QAAAE,MAAA,CAAQL,OAAO,OAAAK,MAAA,CAAIJ,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,KAAK,CAAE;EACxD;EAEA,IAAIC,WAAW,EAAE;IACfC,cAAc,QAAAE,MAAA,CAAQH,WAAW,CAAE;EACrC;EAEA,OAAOC,cAAc;AACvB;AAEA,IAAMG,OAAO,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACjCC,QAAQ,EAAE;IACRC,OAAO,EAAEC,gBAAO;IAChBC,oBAAoB,EAAEC,6BAAoB;IAC1CC,2BAA2B,EAAEC;EAC/B,CAAC;EAEDC,SAAS,EAAE,SAAS;EAEpBC,MAAM,WAAAA,OAACvC,GAAG,EAAEwC,KAAK,EAAE;IACjB,OAAO,IAAI,CAACR,OAAO,CAACS,OAAO,CAAAjD,aAAA;MAAEQ,GAAG,EAAHA;IAAG,GAAKwC,KAAK,EAAE;EAC9C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,mBAAmB,WAAAA,oBAACC,SAAS,EAA0B;IAAA,IAAxBC,KAAK,GAAAjD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkD,SAAA,GAAAlD,SAAA,MAAG,CAAC,CAAC;IAAA,IAAEmD,UAAU,GAAAnD,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAkD,SAAA;IACnD,IAAI,CAACF,SAAS,EAAE;MACd,MAAMI,KAAK,CAAC,oDAAoD,CAAC;IACnE;IACA,IAAMC,OAAO,GAAG;MAACC,UAAU,EAAEN;IAAS,CAAC;IAEvCK,OAAO,CAACE,IAAI,GAAA1D,aAAA,CAAAA,aAAA,KACPoD,KAAK,CAACM,IAAI;MACbC,OAAO,EAAEzC,cAAc,EAAE;MACzB0C,EAAE,EAAExC,iBAAiB,EAAE;MAEvB;MACA;MACAyC,MAAM,EACJ,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,CAACC,QAAQ,CAACC,QAAQ,IAAI,aAAa,GAAG,aAAa;MAAE;MAC7FC,SAAS,EAAE,IAAI,CAACvC,KAAK,CAACwC,WAAW,CAACrC,MAAM,CAACoC;IAAS,EACnD;IAED,IAAI;MACFT,OAAO,CAACE,IAAI,CAACS,MAAM,GAAG,IAAI,CAACzC,KAAK,CAACwC,WAAW,CAACE,QAAQ,EAAE;IACzD,CAAC,CAAC,OAAAC,OAAA,EAAM;MACN,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,8BAA8B,CAAC;IAClD;IAEAf,OAAO,CAACgB,MAAM,GAAAxE,aAAA,CAAAA,aAAA,KACToD,KAAK,CAACoB,MAAM;MACfC,eAAe,EAAEtD,iBAAiB,EAAE;MACpCuD,UAAU,EAAEzD,YAAY,EAAE;MAC1B0D,WAAW,EAAE,IAAI,CAACjD,KAAK,CAACkD,OAAO;MAC/BC,QAAQ,EAAE,KAAK;MACfC,gBAAgB,EAAErD,iBAAiB,CAAC,IAAI,CAACC,KAAK;IAAC,EAChD;IAED8B,OAAO,CAACuB,IAAI,GAAG3B,KAAK,CAAC2B,IAAI,IAAI,IAAI,CAACrD,KAAK,CAACG,MAAM,CAACmD,OAAO,CAACD,IAAI;IAE3DvB,OAAO,CAACyB,OAAO,GAAAjF,aAAA,CAAAA,aAAA,KACVoD,KAAK,CAAC6B,OAAO;MAChBC,GAAG,EAAE;QACHN,OAAO,EAAE,IAAI,CAAClD,KAAK,CAACkD;MACtB,CAAC;MACDO,MAAM,EAAE,OAAO;MACfvB,EAAE,EAAE;QACFwB,IAAI,EAAEhE,iBAAiB,EAAE;QACzBwD,OAAO,EAAE3D,YAAY;MACvB;IAAC,EACF;IAED,IAAImC,KAAK,CAACiC,YAAY,EAAE;MACtB7B,OAAO,CAAC6B,YAAY,GAAGjC,KAAK,CAACiC,YAAY;IAC3C;;IAEA;IACA;IACA7B,OAAO,CAAC8B,SAAS,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;IAExC,IAAIlC,UAAU,EAAE;MACd,IAAMmC,QAAQ,GAAG;QACfT,OAAO,EAAE,CAACxB,OAAO;MACnB,CAAC;;MAED;MACA;MACA;MACA,OAAO,IAAI,CAACkC,kBAAkB,CAACD,QAAQ,EAAEnC,UAAU,CAAC;IACtD;IAEA,OAAO,IAAI,CAACZ,oBAAoB,CAACO,OAAO,CAACO,OAAO,CAAC;EACnD,CAAC;EAED;AACF;AACA;AACA;AACA;EACEmC,SAAS,WAAAA,UAACrC,UAAU,EAAE;IACpB,OAAO,IAAI,CAACL,OAAO,CAAC;MAClB2C,MAAM,EAAE,MAAM;MACdC,GAAG,EAAE,SAAS;MACdC,QAAQ,EAAE,eAAe;MACzBC,OAAO,EAAE;QACP,mBAAmB,EAAEzC;MACvB,CAAC;MACD0C,IAAI,EAAE,CAAC,CAAC;MACRC,EAAE,EAAE;QACFC,KAAK,EAAE;MACT;IACF,CAAC,CAAC;EACJ,CAAC;EAEDR,kBAAkB,WAAAA,mBAAClC,OAAO,EAAEF,UAAU,EAAE;IAAA,IAAA6C,KAAA;IACtC,OAAO,IAAI,CAACzE,KAAK,CAACwC,WAAW,CAACkC,cAAc,EAAE,CAACC,IAAI,CAAC,UAACC,KAAK;MAAA,OACxDH,KAAI,CAAClD,OAAO,CAAC;QACX2C,MAAM,EAAE,MAAM;QACdC,GAAG,EAAE,SAAS;QACdC,QAAQ,EAAE,wBAAwB;QAClCC,OAAO,EAAE;UACPQ,aAAa,EAAED,KAAK,CAACE,QAAQ,EAAE;UAC/B,mBAAmB,EAAElD;QACvB,CAAC;QACD0C,IAAI,EAAExC;MACR,CAAC,CAAC;IAAA,EACH;EACH,CAAC;EAEDiD,0BAA0B,WAAAA,2BAACjD,OAAO,EAAE;IAClC,IAAMkD,KAAK,GAAG;MACZ3B,IAAI,EAAE,kBAAkB;MACxBM,YAAY,EAAE7B;IAChB,CAAC;IAED,OAAO,IAAI,CAACZ,2BAA2B,CAACK,OAAO,CAACyD,KAAK,CAAC;EACxD,CAAC;EAAA9B,OAAA;AACH,CAAC,CAAC;AAAC,IAAA+B,QAAA,GAEYvE,OAAO;AAAAwE,OAAA,CAAAlG,OAAA,GAAAiG,QAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-metrics",
3
- "version": "2.43.1",
3
+ "version": "2.44.0",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -24,12 +24,11 @@
24
24
  "sinon": "^9.2.4"
25
25
  },
26
26
  "dependencies": {
27
- "@webex/common": "2.43.1",
28
- "@webex/common-timers": "2.43.1",
29
- "@webex/internal-plugin-device": "2.43.1",
30
- "@webex/internal-plugin-metrics": "2.43.1",
31
- "@webex/test-helper-chai": "2.43.1",
32
- "@webex/test-helper-mock-webex": "2.43.1",
33
- "@webex/webex-core": "2.43.1"
27
+ "@webex/common": "2.44.0",
28
+ "@webex/common-timers": "2.44.0",
29
+ "@webex/internal-plugin-metrics": "2.44.0",
30
+ "@webex/test-helper-chai": "2.44.0",
31
+ "@webex/test-helper-mock-webex": "2.44.0",
32
+ "@webex/webex-core": "2.44.0"
34
33
  }
35
34
  }
package/src/index.js CHANGED
@@ -2,8 +2,6 @@
2
2
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
3
  */
4
4
 
5
- import '@webex/internal-plugin-device';
6
-
7
5
  import {registerInternalPlugin} from '@webex/webex-core';
8
6
 
9
7
  import Metrics from './metrics';
package/src/metrics.js CHANGED
@@ -70,7 +70,6 @@ const Metrics = WebexPlugin.extend({
70
70
  domain:
71
71
  typeof window !== 'undefined' ? window.location.hostname || 'non-browser' : 'non-browser', // Check what else we could measure
72
72
  client_id: this.webex.credentials.config.client_id,
73
- user_id: this.webex.internal.device.userId,
74
73
  };
75
74
 
76
75
  try {
@@ -89,7 +89,7 @@ describe('plugin-metrics', () => {
89
89
  webex.credentials = new Credentials(undefined, {parent: webex});
90
90
  sinon.stub(webex.credentials, 'getClientToken').returns(Promise.resolve('token'));
91
91
 
92
- webex.internal = {...webex.internal, device: {userId: 'userId'}};
92
+ webex.internal = {...webex.internal};
93
93
  webex.config = {
94
94
  ...webex.config,
95
95
  appName: 'appName',
@@ -203,7 +203,6 @@ describe('plugin-metrics', () => {
203
203
  assert.property(metric.tags, 'os');
204
204
  assert.property(metric.tags, 'domain');
205
205
  assert.property(metric.tags, 'client_id');
206
- assert.property(metric.tags, 'user_id');
207
206
 
208
207
  assert.property(metric.fields, 'browser_version');
209
208
  assert.property(metric.fields, 'os_version');