@webex/internal-plugin-metrics 3.0.0-beta.15 → 3.0.0-beta.151

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/batcher.js CHANGED
@@ -1,34 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.default = void 0;
12
-
13
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
14
-
15
10
  var _symbol = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/symbol"));
16
-
17
11
  var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
18
-
19
12
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
20
-
21
13
  var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
22
-
23
14
  var _webexCore = require("@webex/webex-core");
24
-
25
15
  var _commonTimers = require("@webex/common-timers");
26
-
27
16
  /*!
28
17
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
29
18
  */
30
- var sym = (0, _symbol.default)('metric id');
31
19
 
20
+ var sym = (0, _symbol.default)('metric id');
32
21
  var MetricsBatcher = _webexCore.Batcher.extend({
33
22
  namespace: 'Metrics',
34
23
  prepareItem: function prepareItem(item) {
@@ -58,41 +47,34 @@ var MetricsBatcher = _webexCore.Batcher.extend({
58
47
  },
59
48
  handleHttpSuccess: function handleHttpSuccess(res) {
60
49
  var _this = this;
61
-
62
50
  return _promise.default.all(res.options.body.metrics.map(function (item) {
63
51
  return _this.acceptItem(item);
64
52
  }));
65
53
  },
66
54
  handleHttpError: function handleHttpError(reason) {
67
55
  var _this2 = this;
68
-
69
56
  if (reason instanceof _webexCore.WebexHttpError.NetworkOrCORSError) {
70
57
  this.logger.warn('metrics-batcher: received network error submitting metrics, reenqueuing payload');
71
58
  return _promise.default.all(reason.options.body.metrics.map(function (item) {
72
59
  return new _promise.default(function (resolve) {
73
60
  var delay = item[sym].nextDelay;
74
-
75
61
  if (delay < _this2.config.batcherRetryPlateau) {
76
62
  item[sym].nextDelay *= 2;
77
63
  }
78
-
79
64
  (0, _commonTimers.safeSetTimeout)(function () {
80
65
  resolve(_this2.rerequest(item));
81
66
  }, delay);
82
67
  });
83
68
  }));
84
69
  }
85
-
86
70
  return (0, _apply.default)(_webexCore.Batcher.prototype.handleHttpError, this, [reason]);
87
71
  },
88
72
  rerequest: function rerequest(item) {
89
73
  var _this3 = this;
90
-
91
74
  return _promise.default.all([this.getDeferredForRequest(item), this.prepareItem(item)]).then(function (_ref) {
92
75
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
93
- defer = _ref2[0],
94
- req = _ref2[1];
95
-
76
+ defer = _ref2[0],
77
+ req = _ref2[1];
96
78
  _this3.enqueue(req).then(function () {
97
79
  return _this3.bounce();
98
80
  }).catch(function (reason) {
@@ -110,7 +92,6 @@ var MetricsBatcher = _webexCore.Batcher.extend({
110
92
  return _promise.default.resolve(item[sym]);
111
93
  }
112
94
  });
113
-
114
95
  var _default = MetricsBatcher;
115
96
  exports.default = _default;
116
97
  //# sourceMappingURL=batcher.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["sym","MetricsBatcher","Batcher","extend","namespace","prepareItem","item","env","process","NODE_ENV","appType","config","time","version","webex","resolve","prepareRequest","queue","map","postTime","submitHttpRequest","payload","request","method","service","resource","body","metrics","handleHttpSuccess","res","all","options","acceptItem","handleHttpError","reason","WebexHttpError","NetworkOrCORSError","logger","warn","delay","nextDelay","batcherRetryPlateau","safeSetTimeout","rerequest","prototype","getDeferredForRequest","then","defer","req","enqueue","bounce","catch","reject","fingerprintRequest","fingerprintResponse"],"sources":["batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Batcher, WebexHttpError} from '@webex/webex-core';\nimport {safeSetTimeout} from '@webex/common-timers';\n\nconst sym = Symbol('metric id');\n\nconst MetricsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n prepareItem(item) {\n // Keep non-prod data out of metrics\n const env = process.env.NODE_ENV === 'production' ? null : 'TEST';\n\n item.appType = item.appType || this.config.appType;\n item.env = item.env || env;\n item.time = item.time || Date.now();\n item.version = item.version || this.webex.version;\n\n return Promise.resolve(item);\n },\n\n prepareRequest(queue) {\n return Promise.resolve(\n queue.map((item) => {\n item.postTime = item.postTime || Date.now();\n\n return item;\n })\n );\n },\n\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'metrics',\n resource: 'metrics',\n body: {\n metrics: payload,\n },\n });\n },\n\n handleHttpSuccess(res) {\n return Promise.all(res.options.body.metrics.map((item) => this.acceptItem(item)));\n },\n\n handleHttpError(reason) {\n if (reason instanceof WebexHttpError.NetworkOrCORSError) {\n this.logger.warn(\n 'metrics-batcher: received network error submitting metrics, reenqueuing payload'\n );\n\n return Promise.all(\n reason.options.body.metrics.map(\n (item) =>\n new Promise((resolve) => {\n const delay = item[sym].nextDelay;\n\n if (delay < this.config.batcherRetryPlateau) {\n item[sym].nextDelay *= 2;\n }\n safeSetTimeout(() => {\n resolve(this.rerequest(item));\n }, delay);\n })\n )\n );\n }\n\n return Reflect.apply(Batcher.prototype.handleHttpError, this, [reason]);\n },\n\n rerequest(item) {\n return Promise.all([this.getDeferredForRequest(item), this.prepareItem(item)]).then(\n ([defer, req]) => {\n this.enqueue(req)\n .then(() => this.bounce())\n .catch((reason) => defer.reject(reason));\n }\n );\n },\n\n fingerprintRequest(item) {\n item[sym] = item[sym] || {\n nextDelay: 1000,\n };\n\n return Promise.resolve(item[sym]);\n },\n\n fingerprintResponse(item) {\n return Promise.resolve(item[sym]);\n },\n});\n\nexport default MetricsBatcher;\n"],"mappings":"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"}
1
+ {"version":3,"names":["sym","MetricsBatcher","Batcher","extend","namespace","prepareItem","item","env","process","NODE_ENV","appType","config","time","version","webex","resolve","prepareRequest","queue","map","postTime","submitHttpRequest","payload","request","method","service","resource","body","metrics","handleHttpSuccess","res","all","options","acceptItem","handleHttpError","reason","WebexHttpError","NetworkOrCORSError","logger","warn","delay","nextDelay","batcherRetryPlateau","safeSetTimeout","rerequest","prototype","getDeferredForRequest","then","defer","req","enqueue","bounce","catch","reject","fingerprintRequest","fingerprintResponse"],"sources":["batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Batcher, WebexHttpError} from '@webex/webex-core';\nimport {safeSetTimeout} from '@webex/common-timers';\n\nconst sym = Symbol('metric id');\n\nconst MetricsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n prepareItem(item) {\n // Keep non-prod data out of metrics\n const env = process.env.NODE_ENV === 'production' ? null : 'TEST';\n\n item.appType = item.appType || this.config.appType;\n item.env = item.env || env;\n item.time = item.time || Date.now();\n item.version = item.version || this.webex.version;\n\n return Promise.resolve(item);\n },\n\n prepareRequest(queue) {\n return Promise.resolve(\n queue.map((item) => {\n item.postTime = item.postTime || Date.now();\n\n return item;\n })\n );\n },\n\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'metrics',\n resource: 'metrics',\n body: {\n metrics: payload,\n },\n });\n },\n\n handleHttpSuccess(res) {\n return Promise.all(res.options.body.metrics.map((item) => this.acceptItem(item)));\n },\n\n handleHttpError(reason) {\n if (reason instanceof WebexHttpError.NetworkOrCORSError) {\n this.logger.warn(\n 'metrics-batcher: received network error submitting metrics, reenqueuing payload'\n );\n\n return Promise.all(\n reason.options.body.metrics.map(\n (item) =>\n new Promise((resolve) => {\n const delay = item[sym].nextDelay;\n\n if (delay < this.config.batcherRetryPlateau) {\n item[sym].nextDelay *= 2;\n }\n safeSetTimeout(() => {\n resolve(this.rerequest(item));\n }, delay);\n })\n )\n );\n }\n\n return Reflect.apply(Batcher.prototype.handleHttpError, this, [reason]);\n },\n\n rerequest(item) {\n return Promise.all([this.getDeferredForRequest(item), this.prepareItem(item)]).then(\n ([defer, req]) => {\n this.enqueue(req)\n .then(() => this.bounce())\n .catch((reason) => defer.reject(reason));\n }\n );\n },\n\n fingerprintRequest(item) {\n item[sym] = item[sym] || {\n nextDelay: 1000,\n };\n\n return Promise.resolve(item[sym]);\n },\n\n fingerprintResponse(item) {\n return Promise.resolve(item[sym]);\n },\n});\n\nexport default MetricsBatcher;\n"],"mappings":"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"}
@@ -1,27 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.default = void 0;
12
-
13
9
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
14
-
15
10
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
16
-
17
11
  var _batcher = _interopRequireDefault(require("./batcher"));
18
-
19
12
  /*!
20
13
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
21
14
  */
15
+
22
16
  var CallDiagnosticEventsBatcher = _batcher.default.extend({
23
17
  namespace: 'Metrics',
24
-
25
18
  /**
26
19
  * @param {string} webClientDomain
27
20
  * @returns {string}
@@ -30,12 +23,10 @@ var CallDiagnosticEventsBatcher = _batcher.default.extend({
30
23
  if (webClientDomain !== null && webClientDomain !== void 0 && webClientDomain.includes('teams.webex.com') || webClientDomain !== null && webClientDomain !== void 0 && webClientDomain.includes('localhost') || webClientDomain !== null && webClientDomain !== void 0 && webClientDomain.includes('127.0.0.1') || process.env.NODE_ENV !== 'production') {
31
24
  return 'test';
32
25
  }
33
-
34
26
  return process.env.NODE_ENV === 'production' ? 'prod' : 'test';
35
27
  },
36
28
  prepareItem: function prepareItem(item) {
37
29
  var _item$event, _item$event$eventData;
38
-
39
30
  // networkType should be a enum value: `wifi`, `ethernet`, `cellular`, or `unknown`.
40
31
  // Browsers cannot provide such information right now. However, it is a required field.
41
32
  var origin = {
@@ -64,7 +55,6 @@ var CallDiagnosticEventsBatcher = _batcher.default.extend({
64
55
  });
65
56
  }
66
57
  });
67
-
68
58
  var _default = CallDiagnosticEventsBatcher;
69
59
  exports.default = _default;
70
60
  //# sourceMappingURL=call-diagnostic-events-batcher.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CallDiagnosticEventsBatcher","Batcher","extend","namespace","getBuildType","webClientDomain","includes","process","env","NODE_ENV","prepareItem","item","origin","buildType","event","eventData","networkType","eventPayload","resolve","prepareRequest","queue","forEach","originTime","sent","Date","toISOString","submitHttpRequest","payload","webex","request","method","service","resource","body","metrics"],"sources":["call-diagnostic-events-batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport Batcher from './batcher';\n\nconst CallDiagnosticEventsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n /**\n * @param {string} webClientDomain\n * @returns {string}\n */\n getBuildType(webClientDomain) {\n if (\n webClientDomain?.includes('teams.webex.com') ||\n webClientDomain?.includes('localhost') ||\n webClientDomain?.includes('127.0.0.1') ||\n process.env.NODE_ENV !== 'production'\n ) {\n return 'test';\n }\n\n return process.env.NODE_ENV === 'production' ? 'prod' : 'test';\n },\n\n prepareItem(item) {\n // networkType should be a enum value: `wifi`, `ethernet`, `cellular`, or `unknown`.\n // Browsers cannot provide such information right now. However, it is a required field.\n const origin = {\n buildType: this.getBuildType(item.event?.eventData?.webClientDomain),\n networkType: 'unknown',\n };\n\n item.eventPayload.origin = Object.assign(origin, item.eventPayload.origin);\n\n return Promise.resolve(item);\n },\n\n prepareRequest(queue) {\n // Add sent timestamp\n queue.forEach((item) => {\n item.eventPayload.originTime = item.eventPayload.originTime || {};\n item.eventPayload.originTime.sent = new Date().toISOString();\n });\n\n return Promise.resolve(queue);\n },\n\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'metrics',\n resource: 'clientmetrics',\n body: {\n metrics: payload,\n },\n });\n },\n});\n\nexport default CallDiagnosticEventsBatcher;\n"],"mappings":";;;;;;;;;;;;;;;;AAIA;;AAJA;AACA;AACA;AAIA,IAAMA,2BAA2B,GAAGC,gBAAA,CAAQC,MAAR,CAAe;EACjDC,SAAS,EAAE,SADsC;;EAGjD;AACF;AACA;AACA;EACEC,YAPiD,wBAOpCC,eAPoC,EAOnB;IAC5B,IACEA,eAAe,SAAf,IAAAA,eAAe,WAAf,IAAAA,eAAe,CAAEC,QAAjB,CAA0B,iBAA1B,KACAD,eADA,aACAA,eADA,eACAA,eAAe,CAAEC,QAAjB,CAA0B,WAA1B,CADA,IAEAD,eAFA,aAEAA,eAFA,eAEAA,eAAe,CAAEC,QAAjB,CAA0B,WAA1B,CAFA,IAGAC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAJ3B,EAKE;MACA,OAAO,MAAP;IACD;;IAED,OAAOF,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC,MAAxC,GAAiD,MAAxD;EACD,CAlBgD;EAoBjDC,WApBiD,uBAoBrCC,IApBqC,EAoB/B;IAAA;;IAChB;IACA;IACA,IAAMC,MAAM,GAAG;MACbC,SAAS,EAAE,KAAKT,YAAL,gBAAkBO,IAAI,CAACG,KAAvB,yEAAkB,YAAYC,SAA9B,0DAAkB,sBAAuBV,eAAzC,CADE;MAEbW,WAAW,EAAE;IAFA,CAAf;IAKAL,IAAI,CAACM,YAAL,CAAkBL,MAAlB,GAA2B,qBAAcA,MAAd,EAAsBD,IAAI,CAACM,YAAL,CAAkBL,MAAxC,CAA3B;IAEA,OAAO,iBAAQM,OAAR,CAAgBP,IAAhB,CAAP;EACD,CA/BgD;EAiCjDQ,cAjCiD,0BAiClCC,KAjCkC,EAiC3B;IACpB;IACAA,KAAK,CAACC,OAAN,CAAc,UAACV,IAAD,EAAU;MACtBA,IAAI,CAACM,YAAL,CAAkBK,UAAlB,GAA+BX,IAAI,CAACM,YAAL,CAAkBK,UAAlB,IAAgC,EAA/D;MACAX,IAAI,CAACM,YAAL,CAAkBK,UAAlB,CAA6BC,IAA7B,GAAoC,IAAIC,IAAJ,GAAWC,WAAX,EAApC;IACD,CAHD;IAKA,OAAO,iBAAQP,OAAR,CAAgBE,KAAhB,CAAP;EACD,CAzCgD;EA2CjDM,iBA3CiD,6BA2C/BC,OA3C+B,EA2CtB;IACzB,OAAO,KAAKC,KAAL,CAAWC,OAAX,CAAmB;MACxBC,MAAM,EAAE,MADgB;MAExBC,OAAO,EAAE,SAFe;MAGxBC,QAAQ,EAAE,eAHc;MAIxBC,IAAI,EAAE;QACJC,OAAO,EAAEP;MADL;IAJkB,CAAnB,CAAP;EAQD;AApDgD,CAAf,CAApC;;eAuDe3B,2B"}
1
+ {"version":3,"names":["CallDiagnosticEventsBatcher","Batcher","extend","namespace","getBuildType","webClientDomain","includes","process","env","NODE_ENV","prepareItem","item","origin","buildType","event","eventData","networkType","eventPayload","resolve","prepareRequest","queue","forEach","originTime","sent","Date","toISOString","submitHttpRequest","payload","webex","request","method","service","resource","body","metrics"],"sources":["call-diagnostic-events-batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport Batcher from './batcher';\n\nconst CallDiagnosticEventsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n /**\n * @param {string} webClientDomain\n * @returns {string}\n */\n getBuildType(webClientDomain) {\n if (\n webClientDomain?.includes('teams.webex.com') ||\n webClientDomain?.includes('localhost') ||\n webClientDomain?.includes('127.0.0.1') ||\n process.env.NODE_ENV !== 'production'\n ) {\n return 'test';\n }\n\n return process.env.NODE_ENV === 'production' ? 'prod' : 'test';\n },\n\n prepareItem(item) {\n // networkType should be a enum value: `wifi`, `ethernet`, `cellular`, or `unknown`.\n // Browsers cannot provide such information right now. However, it is a required field.\n const origin = {\n buildType: this.getBuildType(item.event?.eventData?.webClientDomain),\n networkType: 'unknown',\n };\n\n item.eventPayload.origin = Object.assign(origin, item.eventPayload.origin);\n\n return Promise.resolve(item);\n },\n\n prepareRequest(queue) {\n // Add sent timestamp\n queue.forEach((item) => {\n item.eventPayload.originTime = item.eventPayload.originTime || {};\n item.eventPayload.originTime.sent = new Date().toISOString();\n });\n\n return Promise.resolve(queue);\n },\n\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'metrics',\n resource: 'clientmetrics',\n body: {\n metrics: payload,\n },\n });\n },\n});\n\nexport default CallDiagnosticEventsBatcher;\n"],"mappings":";;;;;;;;;;AAIA;AAJA;AACA;AACA;;AAIA,IAAMA,2BAA2B,GAAGC,gBAAO,CAACC,MAAM,CAAC;EACjDC,SAAS,EAAE,SAAS;EAEpB;AACF;AACA;AACA;EACEC,YAAY,wBAACC,eAAe,EAAE;IAC5B,IACEA,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAEC,QAAQ,CAAC,iBAAiB,CAAC,IAC5CD,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAEC,QAAQ,CAAC,WAAW,CAAC,IACtCD,eAAe,aAAfA,eAAe,eAAfA,eAAe,CAAEC,QAAQ,CAAC,WAAW,CAAC,IACtCC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EACrC;MACA,OAAO,MAAM;IACf;IAEA,OAAOF,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM;EAChE,CAAC;EAEDC,WAAW,uBAACC,IAAI,EAAE;IAAA;IAChB;IACA;IACA,IAAMC,MAAM,GAAG;MACbC,SAAS,EAAE,IAAI,CAACT,YAAY,gBAACO,IAAI,CAACG,KAAK,yEAAV,YAAYC,SAAS,0DAArB,sBAAuBV,eAAe,CAAC;MACpEW,WAAW,EAAE;IACf,CAAC;IAEDL,IAAI,CAACM,YAAY,CAACL,MAAM,GAAG,qBAAcA,MAAM,EAAED,IAAI,CAACM,YAAY,CAACL,MAAM,CAAC;IAE1E,OAAO,iBAAQM,OAAO,CAACP,IAAI,CAAC;EAC9B,CAAC;EAEDQ,cAAc,0BAACC,KAAK,EAAE;IACpB;IACAA,KAAK,CAACC,OAAO,CAAC,UAACV,IAAI,EAAK;MACtBA,IAAI,CAACM,YAAY,CAACK,UAAU,GAAGX,IAAI,CAACM,YAAY,CAACK,UAAU,IAAI,CAAC,CAAC;MACjEX,IAAI,CAACM,YAAY,CAACK,UAAU,CAACC,IAAI,GAAG,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE;IAC9D,CAAC,CAAC;IAEF,OAAO,iBAAQP,OAAO,CAACE,KAAK,CAAC;EAC/B,CAAC;EAEDM,iBAAiB,6BAACC,OAAO,EAAE;IACzB,OAAO,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC;MACxBC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,SAAS;MAClBC,QAAQ,EAAE,eAAe;MACzBC,IAAI,EAAE;QACJC,OAAO,EAAEP;MACX;IACF,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAAC,eAEY3B,2BAA2B;AAAA"}
@@ -1,22 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.default = void 0;
12
-
13
9
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
14
-
15
10
  var _batcher = _interopRequireDefault(require("./batcher"));
16
-
17
11
  /*!
18
12
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
19
13
  */
14
+
20
15
  var ClientMetricsBatcher = _batcher.default.extend({
21
16
  namespace: 'Metrics',
22
17
  prepareItem: function prepareItem(item) {
@@ -37,7 +32,6 @@ var ClientMetricsBatcher = _batcher.default.extend({
37
32
  });
38
33
  }
39
34
  });
40
-
41
35
  var _default = ClientMetricsBatcher;
42
36
  exports.default = _default;
43
37
  //# sourceMappingURL=client-metrics-batcher.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ClientMetricsBatcher","Batcher","extend","namespace","prepareItem","item","resolve","prepareRequest","queue","submitHttpRequest","payload","webex","request","method","service","resource","body","metrics"],"sources":["client-metrics-batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport Batcher from './batcher';\n\nconst ClientMetricsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n prepareItem(item) {\n // Add more defaults to payload when the clientmetrics endpoint evolves to support richer payloads\n return Promise.resolve(item);\n },\n\n prepareRequest(queue) {\n return Promise.resolve(queue);\n },\n\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'metrics',\n resource: 'clientmetrics',\n body: {\n metrics: payload,\n },\n });\n },\n});\n\nexport default ClientMetricsBatcher;\n"],"mappings":";;;;;;;;;;;;;;AAIA;;AAJA;AACA;AACA;AAIA,IAAMA,oBAAoB,GAAGC,gBAAA,CAAQC,MAAR,CAAe;EAC1CC,SAAS,EAAE,SAD+B;EAG1CC,WAH0C,uBAG9BC,IAH8B,EAGxB;IAChB;IACA,OAAO,iBAAQC,OAAR,CAAgBD,IAAhB,CAAP;EACD,CANyC;EAQ1CE,cAR0C,0BAQ3BC,KAR2B,EAQpB;IACpB,OAAO,iBAAQF,OAAR,CAAgBE,KAAhB,CAAP;EACD,CAVyC;EAY1CC,iBAZ0C,6BAYxBC,OAZwB,EAYf;IACzB,OAAO,KAAKC,KAAL,CAAWC,OAAX,CAAmB;MACxBC,MAAM,EAAE,MADgB;MAExBC,OAAO,EAAE,SAFe;MAGxBC,QAAQ,EAAE,eAHc;MAIxBC,IAAI,EAAE;QACJC,OAAO,EAAEP;MADL;IAJkB,CAAnB,CAAP;EAQD;AArByC,CAAf,CAA7B;;eAwBeV,oB"}
1
+ {"version":3,"names":["ClientMetricsBatcher","Batcher","extend","namespace","prepareItem","item","resolve","prepareRequest","queue","submitHttpRequest","payload","webex","request","method","service","resource","body","metrics"],"sources":["client-metrics-batcher.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport Batcher from './batcher';\n\nconst ClientMetricsBatcher = Batcher.extend({\n namespace: 'Metrics',\n\n prepareItem(item) {\n // Add more defaults to payload when the clientmetrics endpoint evolves to support richer payloads\n return Promise.resolve(item);\n },\n\n prepareRequest(queue) {\n return Promise.resolve(queue);\n },\n\n submitHttpRequest(payload) {\n return this.webex.request({\n method: 'POST',\n service: 'metrics',\n resource: 'clientmetrics',\n body: {\n metrics: payload,\n },\n });\n },\n});\n\nexport default ClientMetricsBatcher;\n"],"mappings":";;;;;;;;;AAIA;AAJA;AACA;AACA;;AAIA,IAAMA,oBAAoB,GAAGC,gBAAO,CAACC,MAAM,CAAC;EAC1CC,SAAS,EAAE,SAAS;EAEpBC,WAAW,uBAACC,IAAI,EAAE;IAChB;IACA,OAAO,iBAAQC,OAAO,CAACD,IAAI,CAAC;EAC9B,CAAC;EAEDE,cAAc,0BAACC,KAAK,EAAE;IACpB,OAAO,iBAAQF,OAAO,CAACE,KAAK,CAAC;EAC/B,CAAC;EAEDC,iBAAiB,6BAACC,OAAO,EAAE;IACzB,OAAO,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC;MACxBC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE,SAAS;MAClBC,QAAQ,EAAE,eAAe;MACzBC,IAAI,EAAE;QACJC,OAAO,EAAEP;MACX;IACF,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAAC,eAEYV,oBAAoB;AAAA"}
package/dist/config.js CHANGED
@@ -1,18 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  _Object$defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
-
9
- exports.default = exports.CLIENT_NAME = void 0;
10
-
7
+ exports.default = exports.OS_NAME = exports.OSMap = exports.CLIENT_NAME = void 0;
11
8
  var _common = require("@webex/common");
12
-
13
9
  /*!
14
10
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
15
11
  */
12
+
16
13
  var CLIENT_NAME = 'webex-js-sdk';
17
14
  exports.CLIENT_NAME = CLIENT_NAME;
18
15
  var _default = {
@@ -31,4 +28,23 @@ var _default = {
31
28
  }
32
29
  };
33
30
  exports.default = _default;
31
+ var OS_NAME = {
32
+ WINDOWS: 'windows',
33
+ MAC: 'mac',
34
+ IOS: 'ios',
35
+ ANDROID: 'android',
36
+ CHROME: 'chrome',
37
+ LINUX: 'linux',
38
+ OTHERS: 'other'
39
+ };
40
+ exports.OS_NAME = OS_NAME;
41
+ var OSMap = {
42
+ 'Chrome OS': OS_NAME.CHROME,
43
+ macOS: OS_NAME.MAC,
44
+ Windows: OS_NAME.WINDOWS,
45
+ iOS: OS_NAME.IOS,
46
+ Android: OS_NAME.ANDROID,
47
+ Linux: OS_NAME.LINUX
48
+ };
49
+ exports.OSMap = OSMap;
34
50
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CLIENT_NAME","device","preDiscoveryServices","metricsServiceUrl","process","env","METRICS_SERVICE_URL","metrics","appType","inBrowser","batcherWait","batcherMaxCalls","batcherMaxWait","batcherRetryPlateau"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {inBrowser} from '@webex/common';\n\nexport const CLIENT_NAME = 'webex-js-sdk';\nexport default {\n device: {\n preDiscoveryServices: {\n metricsServiceUrl:\n process.env.METRICS_SERVICE_URL || 'https://metrics-a.wbx2.com/metrics/api/v1',\n metrics: process.env.METRICS_SERVICE_URL || 'https://metrics-a.wbx2.com/metrics/api/v1',\n },\n },\n metrics: {\n appType: inBrowser ? 'browser' : 'nodejs',\n batcherWait: 500,\n batcherMaxCalls: 50,\n batcherMaxWait: 1500,\n batcherRetryPlateau: 32000,\n },\n};\n"],"mappings":";;;;;;;;;;AAIA;;AAJA;AACA;AACA;AAIO,IAAMA,WAAW,GAAG,cAApB;;eACQ;EACbC,MAAM,EAAE;IACNC,oBAAoB,EAAE;MACpBC,iBAAiB,EACfC,OAAO,CAACC,GAAR,CAAYC,mBAAZ,IAAmC,2CAFjB;MAGpBC,OAAO,EAAEH,OAAO,CAACC,GAAR,CAAYC,mBAAZ,IAAmC;IAHxB;EADhB,CADK;EAQbC,OAAO,EAAE;IACPC,OAAO,EAAEC,iBAAA,GAAY,SAAZ,GAAwB,QAD1B;IAEPC,WAAW,EAAE,GAFN;IAGPC,eAAe,EAAE,EAHV;IAIPC,cAAc,EAAE,IAJT;IAKPC,mBAAmB,EAAE;EALd;AARI,C"}
1
+ {"version":3,"names":["CLIENT_NAME","device","preDiscoveryServices","metricsServiceUrl","process","env","METRICS_SERVICE_URL","metrics","appType","inBrowser","batcherWait","batcherMaxCalls","batcherMaxWait","batcherRetryPlateau","OS_NAME","WINDOWS","MAC","IOS","ANDROID","CHROME","LINUX","OTHERS","OSMap","macOS","Windows","iOS","Android","Linux"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {inBrowser} from '@webex/common';\n\nexport const CLIENT_NAME = 'webex-js-sdk';\nexport default {\n device: {\n preDiscoveryServices: {\n metricsServiceUrl:\n process.env.METRICS_SERVICE_URL || 'https://metrics-a.wbx2.com/metrics/api/v1',\n metrics: process.env.METRICS_SERVICE_URL || 'https://metrics-a.wbx2.com/metrics/api/v1',\n },\n },\n metrics: {\n appType: inBrowser ? 'browser' : 'nodejs',\n batcherWait: 500,\n batcherMaxCalls: 50,\n batcherMaxWait: 1500,\n batcherRetryPlateau: 32000,\n },\n};\n\nexport const OS_NAME = {\n WINDOWS: 'windows',\n MAC: 'mac',\n IOS: 'ios',\n ANDROID: 'android',\n CHROME: 'chrome',\n LINUX: 'linux',\n OTHERS: 'other',\n};\n\nexport const OSMap = {\n 'Chrome OS': OS_NAME.CHROME,\n macOS: OS_NAME.MAC,\n Windows: OS_NAME.WINDOWS,\n iOS: OS_NAME.IOS,\n Android: OS_NAME.ANDROID,\n Linux: OS_NAME.LINUX,\n};\n"],"mappings":";;;;;;;AAIA;AAJA;AACA;AACA;;AAIO,IAAMA,WAAW,GAAG,cAAc;AAAC;AAAA,eAC3B;EACbC,MAAM,EAAE;IACNC,oBAAoB,EAAE;MACpBC,iBAAiB,EACfC,OAAO,CAACC,GAAG,CAACC,mBAAmB,IAAI,2CAA2C;MAChFC,OAAO,EAAEH,OAAO,CAACC,GAAG,CAACC,mBAAmB,IAAI;IAC9C;EACF,CAAC;EACDC,OAAO,EAAE;IACPC,OAAO,EAAEC,iBAAS,GAAG,SAAS,GAAG,QAAQ;IACzCC,WAAW,EAAE,GAAG;IAChBC,eAAe,EAAE,EAAE;IACnBC,cAAc,EAAE,IAAI;IACpBC,mBAAmB,EAAE;EACvB;AACF,CAAC;AAAA;AAEM,IAAMC,OAAO,GAAG;EACrBC,OAAO,EAAE,SAAS;EAClBC,GAAG,EAAE,KAAK;EACVC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,MAAM,EAAE;AACV,CAAC;AAAC;AAEK,IAAMC,KAAK,GAAG;EACnB,WAAW,EAAER,OAAO,CAACK,MAAM;EAC3BI,KAAK,EAAET,OAAO,CAACE,GAAG;EAClBQ,OAAO,EAAEV,OAAO,CAACC,OAAO;EACxBU,GAAG,EAAEX,OAAO,CAACG,GAAG;EAChBS,OAAO,EAAEZ,OAAO,CAACI,OAAO;EACxBS,KAAK,EAAEb,OAAO,CAACM;AACjB,CAAC;AAAC"}
package/dist/index.js CHANGED
@@ -1,38 +1,41 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
3
5
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
5
7
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
8
  _Object$defineProperty(exports, "__esModule", {
8
9
  value: true
9
10
  });
10
-
11
11
  _Object$defineProperty(exports, "config", {
12
12
  enumerable: true,
13
13
  get: function get() {
14
14
  return _config.default;
15
15
  }
16
16
  });
17
-
18
17
  _Object$defineProperty(exports, "default", {
19
18
  enumerable: true,
20
19
  get: function get() {
21
20
  return _metrics.default;
22
21
  }
23
22
  });
24
-
23
+ _Object$defineProperty(exports, "getOSNameInternal", {
24
+ enumerable: true,
25
+ get: function get() {
26
+ return _metrics.getOSNameInternal;
27
+ }
28
+ });
25
29
  require("@webex/internal-plugin-device");
26
-
27
30
  var _webexCore = require("@webex/webex-core");
28
-
29
- var _metrics = _interopRequireDefault(require("./metrics"));
30
-
31
+ var _metrics = _interopRequireWildcard(require("./metrics"));
31
32
  var _config = _interopRequireDefault(require("./config"));
32
-
33
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
35
  /*!
34
36
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
35
37
  */
38
+
36
39
  (0, _webexCore.registerInternalPlugin)('metrics', _metrics.default, {
37
40
  config: _config.default
38
41
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["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} from './metrics';\nexport {config};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AAEA;;AAEA;;AACA;;AATA;AACA;AACA;AASA,IAAAA,iCAAA,EAAuB,SAAvB,EAAkCC,gBAAlC,EAA2C;EACzCC,MAAM,EAANA;AADyC,CAA3C"}
1
+ {"version":3,"names":["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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AAEA;AAEA;AACA;AAA8B;AAAA;AAT9B;AACA;AACA;;AASA,IAAAA,iCAAsB,EAAC,SAAS,EAAEC,gBAAO,EAAE;EACzCC,MAAM,EAANA;AACF,CAAC,CAAC"}
package/dist/metrics.js CHANGED
@@ -1,70 +1,50 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
-
14
+ exports.getOSNameInternal = getOSNameInternal;
23
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
24
-
25
16
  var _webexCore = require("@webex/webex-core");
26
-
27
17
  var _common = require("@webex/common");
28
-
29
18
  var _config = require("./config");
30
-
31
19
  var _batcher = _interopRequireDefault(require("./batcher"));
32
-
33
20
  var _clientMetricsBatcher = _interopRequireDefault(require("./client-metrics-batcher"));
34
-
35
21
  var _callDiagnosticEventsBatcher = _interopRequireDefault(require("./call-diagnostic-events-batcher"));
36
-
37
22
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
38
-
39
23
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
40
-
41
24
  var _BrowserDetection = (0, _common.BrowserDetection)(),
42
- getOSName = _BrowserDetection.getOSName,
43
- getOSVersion = _BrowserDetection.getOSVersion,
44
- getBrowserName = _BrowserDetection.getBrowserName,
45
- getBrowserVersion = _BrowserDetection.getBrowserVersion;
46
-
25
+ getOSName = _BrowserDetection.getOSName,
26
+ getOSVersion = _BrowserDetection.getOSVersion,
27
+ getBrowserName = _BrowserDetection.getBrowserName,
28
+ getBrowserVersion = _BrowserDetection.getBrowserVersion;
29
+ function getOSNameInternal() {
30
+ var _OSMap$getOSName;
31
+ return (_OSMap$getOSName = _config.OSMap[getOSName()]) !== null && _OSMap$getOSName !== void 0 ? _OSMap$getOSName : _config.OS_NAME.OTHERS;
32
+ }
47
33
  function getSparkUserAgent(webex) {
48
34
  var _webex$config;
49
-
50
35
  var _ref = (_webex$config = webex === null || webex === void 0 ? void 0 : webex.config) !== null && _webex$config !== void 0 ? _webex$config : {},
51
- appName = _ref.appName,
52
- appVersion = _ref.appVersion,
53
- appPlatform = _ref.appPlatform;
54
-
36
+ appName = _ref.appName,
37
+ appVersion = _ref.appVersion,
38
+ appPlatform = _ref.appPlatform;
55
39
  var sparkUserAgent = _config.CLIENT_NAME;
56
-
57
40
  if (appName) {
58
41
  sparkUserAgent += " ".concat(appName, "/").concat(appVersion !== null && appVersion !== void 0 ? appVersion : '0.0');
59
42
  }
60
-
61
43
  if (appPlatform) {
62
44
  sparkUserAgent += " ".concat(appPlatform);
63
45
  }
64
-
65
46
  return sparkUserAgent;
66
47
  }
67
-
68
48
  var Metrics = _webexCore.WebexPlugin.extend({
69
49
  children: {
70
50
  batcher: _batcher.default,
@@ -77,7 +57,6 @@ var Metrics = _webexCore.WebexPlugin.extend({
77
57
  key: key
78
58
  }, value));
79
59
  },
80
-
81
60
  /**
82
61
  * This corresponds to #sendSemiStructured() in the deprecated metrics handler
83
62
  * @param {string} eventName
@@ -88,37 +67,27 @@ var Metrics = _webexCore.WebexPlugin.extend({
88
67
  submitClientMetrics: function submitClientMetrics(eventName) {
89
68
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
90
69
  var preLoginId = arguments.length > 2 ? arguments[2] : undefined;
91
-
92
70
  if (!eventName) {
93
71
  throw Error('Missing behavioral metric name. Please provide one');
94
72
  }
95
-
96
73
  var payload = {
97
74
  metricName: eventName
98
75
  };
99
76
  payload.tags = _objectSpread(_objectSpread({}, props.tags), {}, {
100
77
  browser: getBrowserName(),
101
- os: getOSName(),
78
+ os: getOSNameInternal(),
102
79
  // Node does not like this so we need to check if it exists or not
103
80
  // eslint-disable-next-line no-undef
104
- domain: typeof window !== 'undefined' ? window.location.hostname || 'non-browser' : 'non-browser',
105
- // Check what else we could measure
106
- client_id: this.webex.credentials.config.client_id,
107
- user_id: this.webex.internal.device.userId
81
+ domain: typeof window !== 'undefined' ? window.location.hostname || 'non-browser' : 'non-browser' // Check what else we could measure
108
82
  });
109
83
 
110
- try {
111
- payload.tags.org_id = this.webex.credentials.getOrgId();
112
- } catch (_unused) {
113
- this.logger.info('metrics: unable to get orgId');
114
- }
115
-
116
84
  payload.fields = _objectSpread(_objectSpread({}, props.fields), {}, {
117
85
  browser_version: getBrowserVersion(),
118
86
  os_version: getOSVersion(),
119
87
  sdk_version: this.webex.version,
120
88
  platform: 'Web',
121
- spark_user_agent: getSparkUserAgent(this.webex)
89
+ spark_user_agent: getSparkUserAgent(this.webex),
90
+ client_id: this.webex.credentials.config.client_id
122
91
  });
123
92
  payload.type = props.type || this.webex.config.metrics.type;
124
93
  payload.context = _objectSpread(_objectSpread({}, props.context), {}, {
@@ -127,32 +96,29 @@ var Metrics = _webexCore.WebexPlugin.extend({
127
96
  },
128
97
  locale: 'en-US',
129
98
  os: {
130
- name: getOSName(),
99
+ name: getOSNameInternal(),
131
100
  version: getOSVersion()
132
101
  }
133
102
  });
134
-
135
103
  if (props.eventPayload) {
136
104
  payload.eventPayload = props.eventPayload;
137
- } // Mocking the time in tests when running in node
138
- // is impossible so unable to use Date.now()
139
-
105
+ }
140
106
 
107
+ // Mocking the time in tests when running in node
108
+ // is impossible so unable to use Date.now()
141
109
  payload.timestamp = new Date().valueOf();
142
-
143
110
  if (preLoginId) {
144
111
  var _payload = {
145
112
  metrics: [payload]
146
- }; // Do not batch these because pre-login events occur during onboarding, so we will be partially blind
113
+ };
114
+
115
+ // Do not batch these because pre-login events occur during onboarding, so we will be partially blind
147
116
  // to users' progress through the reg flow if we wait to persist pre-login metrics for people who drop off because
148
117
  // their metrics will not post from a queue flush in time
149
-
150
118
  return this.postPreLoginMetric(_payload, preLoginId);
151
119
  }
152
-
153
120
  return this.clientMetricsBatcher.request(payload);
154
121
  },
155
-
156
122
  /**
157
123
  * Issue request to alias a user's pre-login ID with their CI UUID
158
124
  * @param {string} preLoginId
@@ -174,7 +140,6 @@ var Metrics = _webexCore.WebexPlugin.extend({
174
140
  },
175
141
  postPreLoginMetric: function postPreLoginMetric(payload, preLoginId) {
176
142
  var _this = this;
177
-
178
143
  return this.webex.credentials.getClientToken().then(function (token) {
179
144
  return _this.request({
180
145
  method: 'POST',
@@ -195,9 +160,8 @@ var Metrics = _webexCore.WebexPlugin.extend({
195
160
  };
196
161
  return this.callDiagnosticEventsBatcher.request(event);
197
162
  },
198
- version: "3.0.0-beta.15"
163
+ version: "3.0.0-beta.151"
199
164
  });
200
-
201
165
  var _default = Metrics;
202
166
  exports.default = _default;
203
167
  //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BrowserDetection","getOSName","getOSVersion","getBrowserName","getBrowserVersion","getSparkUserAgent","webex","config","appName","appVersion","appPlatform","sparkUserAgent","CLIENT_NAME","Metrics","WebexPlugin","extend","children","batcher","Batcher","clientMetricsBatcher","ClientMetricsBatcher","callDiagnosticEventsBatcher","CallDiagnosticEventsBatcher","namespace","submit","key","value","request","submitClientMetrics","eventName","props","preLoginId","Error","payload","metricName","tags","browser","os","domain","window","location","hostname","client_id","credentials","user_id","internal","device","userId","org_id","getOrgId","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","getClientToken","then","token","authorization","toString","submitCallDiagnosticEvents","event"],"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';\n\nimport {CLIENT_NAME} from './config';\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\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: getOSName(),\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: getOSName(),\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":["BrowserDetection","getOSName","getOSVersion","getBrowserName","getBrowserVersion","getOSNameInternal","OSMap","OS_NAME","OTHERS","getSparkUserAgent","webex","config","appName","appVersion","appPlatform","sparkUserAgent","CLIENT_NAME","Metrics","WebexPlugin","extend","children","batcher","Batcher","clientMetricsBatcher","ClientMetricsBatcher","callDiagnosticEventsBatcher","CallDiagnosticEventsBatcher","namespace","submit","key","value","request","submitClientMetrics","eventName","props","preLoginId","Error","payload","metricName","tags","browser","os","domain","window","location","hostname","fields","browser_version","os_version","sdk_version","version","platform","spark_user_agent","client_id","credentials","type","metrics","context","app","locale","name","eventPayload","timestamp","Date","valueOf","_payload","postPreLoginMetric","aliasUser","method","api","resource","headers","body","qs","alias","getClientToken","then","token","authorization","toString","submitCallDiagnosticEvents","event"],"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 };\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 client_id: this.webex.credentials.config.client_id,\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-metrics",
3
- "version": "3.0.0-beta.15",
3
+ "version": "3.0.0-beta.151",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -24,12 +24,12 @@
24
24
  "sinon": "^9.2.4"
25
25
  },
26
26
  "dependencies": {
27
- "@webex/common": "3.0.0-beta.15",
28
- "@webex/common-timers": "3.0.0-beta.15",
29
- "@webex/internal-plugin-device": "3.0.0-beta.15",
30
- "@webex/internal-plugin-metrics": "3.0.0-beta.15",
31
- "@webex/test-helper-chai": "3.0.0-beta.15",
32
- "@webex/test-helper-mock-webex": "3.0.0-beta.15",
33
- "@webex/webex-core": "3.0.0-beta.15"
27
+ "@webex/common": "3.0.0-beta.151",
28
+ "@webex/common-timers": "3.0.0-beta.151",
29
+ "@webex/internal-plugin-device": "3.0.0-beta.151",
30
+ "@webex/internal-plugin-metrics": "3.0.0-beta.151",
31
+ "@webex/test-helper-chai": "3.0.0-beta.151",
32
+ "@webex/test-helper-mock-webex": "3.0.0-beta.151",
33
+ "@webex/webex-core": "3.0.0-beta.151"
34
34
  }
35
35
  }
package/src/config.js CHANGED
@@ -21,3 +21,22 @@ export default {
21
21
  batcherRetryPlateau: 32000,
22
22
  },
23
23
  };
24
+
25
+ export const OS_NAME = {
26
+ WINDOWS: 'windows',
27
+ MAC: 'mac',
28
+ IOS: 'ios',
29
+ ANDROID: 'android',
30
+ CHROME: 'chrome',
31
+ LINUX: 'linux',
32
+ OTHERS: 'other',
33
+ };
34
+
35
+ export const OSMap = {
36
+ 'Chrome OS': OS_NAME.CHROME,
37
+ macOS: OS_NAME.MAC,
38
+ Windows: OS_NAME.WINDOWS,
39
+ iOS: OS_NAME.IOS,
40
+ Android: OS_NAME.ANDROID,
41
+ Linux: OS_NAME.LINUX,
42
+ };
package/src/index.js CHANGED
@@ -13,5 +13,5 @@ registerInternalPlugin('metrics', Metrics, {
13
13
  config,
14
14
  });
15
15
 
16
- export {default} from './metrics';
16
+ export {default, getOSNameInternal} from './metrics';
17
17
  export {config};
package/src/metrics.js CHANGED
@@ -6,14 +6,18 @@
6
6
 
7
7
  import {WebexPlugin} from '@webex/webex-core';
8
8
  import {BrowserDetection} from '@webex/common';
9
+ import {OS_NAME, OSMap, CLIENT_NAME} from './config';
9
10
 
10
- import {CLIENT_NAME} from './config';
11
11
  import Batcher from './batcher';
12
12
  import ClientMetricsBatcher from './client-metrics-batcher';
13
13
  import CallDiagnosticEventsBatcher from './call-diagnostic-events-batcher';
14
14
 
15
15
  const {getOSName, getOSVersion, getBrowserName, getBrowserVersion} = BrowserDetection();
16
16
 
17
+ export function getOSNameInternal() {
18
+ return OSMap[getOSName()] ?? OS_NAME.OTHERS;
19
+ }
20
+
17
21
  function getSparkUserAgent(webex) {
18
22
  const {appName, appVersion, appPlatform} = webex?.config ?? {};
19
23
 
@@ -59,22 +63,14 @@ const Metrics = WebexPlugin.extend({
59
63
  payload.tags = {
60
64
  ...props.tags,
61
65
  browser: getBrowserName(),
62
- os: getOSName(),
66
+ os: getOSNameInternal(),
63
67
 
64
68
  // Node does not like this so we need to check if it exists or not
65
69
  // eslint-disable-next-line no-undef
66
70
  domain:
67
71
  typeof window !== 'undefined' ? window.location.hostname || 'non-browser' : 'non-browser', // Check what else we could measure
68
- client_id: this.webex.credentials.config.client_id,
69
- user_id: this.webex.internal.device.userId,
70
72
  };
71
73
 
72
- try {
73
- payload.tags.org_id = this.webex.credentials.getOrgId();
74
- } catch {
75
- this.logger.info('metrics: unable to get orgId');
76
- }
77
-
78
74
  payload.fields = {
79
75
  ...props.fields,
80
76
  browser_version: getBrowserVersion(),
@@ -82,6 +78,7 @@ const Metrics = WebexPlugin.extend({
82
78
  sdk_version: this.webex.version,
83
79
  platform: 'Web',
84
80
  spark_user_agent: getSparkUserAgent(this.webex),
81
+ client_id: this.webex.credentials.config.client_id,
85
82
  };
86
83
 
87
84
  payload.type = props.type || this.webex.config.metrics.type;
@@ -93,7 +90,7 @@ const Metrics = WebexPlugin.extend({
93
90
  },
94
91
  locale: 'en-US',
95
92
  os: {
96
- name: getOSName(),
93
+ name: getOSNameInternal(),
97
94
  version: getOSVersion(),
98
95
  },
99
96
  };
@@ -199,17 +199,15 @@ describe('plugin-metrics', () => {
199
199
  assert.property(metric, 'eventPayload');
200
200
 
201
201
  assert.property(metric.tags, 'browser');
202
- assert.property(metric.tags, 'org_id');
203
202
  assert.property(metric.tags, 'os');
204
203
  assert.property(metric.tags, 'domain');
205
- assert.property(metric.tags, 'client_id');
206
- assert.property(metric.tags, 'user_id');
207
204
 
208
205
  assert.property(metric.fields, 'browser_version');
209
206
  assert.property(metric.fields, 'os_version');
210
207
  assert.property(metric.fields, 'sdk_version');
211
208
  assert.property(metric.fields, 'platform');
212
209
  assert.property(metric.fields, 'spark_user_agent');
210
+ assert.property(metric.fields, 'client_id');
213
211
 
214
212
  assert.property(metric.context, 'app');
215
213
  assert.property(metric.context, 'locale');