@webex/internal-plugin-metrics 2.60.1-next.9 → 2.60.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/batcher.js +3 -3
  2. package/dist/batcher.js.map +1 -1
  3. package/dist/call-diagnostic-events-batcher.js +60 -0
  4. package/dist/call-diagnostic-events-batcher.js.map +1 -0
  5. package/dist/client-metrics-batcher.js +3 -3
  6. package/dist/client-metrics-batcher.js.map +1 -1
  7. package/dist/config.js +9 -6
  8. package/dist/config.js.map +1 -1
  9. package/dist/index.js +2 -21
  10. package/dist/index.js.map +1 -1
  11. package/dist/metrics.js +22 -24
  12. package/dist/metrics.js.map +1 -1
  13. package/package.json +19 -27
  14. package/src/batcher.js +0 -1
  15. package/src/call-diagnostic-events-batcher.js +62 -0
  16. package/src/client-metrics-batcher.js +0 -1
  17. package/src/config.js +0 -1
  18. package/src/index.js +15 -0
  19. package/src/metrics.js +16 -17
  20. package/test/unit/spec/batcher.js +0 -2
  21. package/test/unit/spec/call-diagnostic-events-batcher.js +195 -0
  22. package/test/unit/spec/client-metrics-batcher.js +0 -2
  23. package/test/unit/spec/metrics.js +94 -67
  24. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js +0 -67
  25. package/dist/call-diagnostic/call-diagnostic-metrics-batcher.js.map +0 -1
  26. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js +0 -454
  27. package/dist/call-diagnostic/call-diagnostic-metrics-latencies.js.map +0 -1
  28. package/dist/call-diagnostic/call-diagnostic-metrics.js +0 -834
  29. package/dist/call-diagnostic/call-diagnostic-metrics.js.map +0 -1
  30. package/dist/call-diagnostic/call-diagnostic-metrics.util.js +0 -344
  31. package/dist/call-diagnostic/call-diagnostic-metrics.util.js.map +0 -1
  32. package/dist/call-diagnostic/config.js +0 -609
  33. package/dist/call-diagnostic/config.js.map +0 -1
  34. package/dist/metrics.types.js +0 -7
  35. package/dist/metrics.types.js.map +0 -1
  36. package/dist/new-metrics.js +0 -336
  37. package/dist/new-metrics.js.map +0 -1
  38. package/dist/types/batcher.d.ts +0 -2
  39. package/dist/types/call-diagnostic/call-diagnostic-metrics-batcher.d.ts +0 -2
  40. package/dist/types/call-diagnostic/call-diagnostic-metrics-latencies.d.ts +0 -194
  41. package/dist/types/call-diagnostic/call-diagnostic-metrics.d.ts +0 -418
  42. package/dist/types/call-diagnostic/call-diagnostic-metrics.util.d.ts +0 -103
  43. package/dist/types/call-diagnostic/config.d.ts +0 -178
  44. package/dist/types/client-metrics-batcher.d.ts +0 -2
  45. package/dist/types/config.d.ts +0 -36
  46. package/dist/types/index.d.ts +0 -13
  47. package/dist/types/metrics.d.ts +0 -3
  48. package/dist/types/metrics.types.d.ts +0 -104
  49. package/dist/types/new-metrics.d.ts +0 -139
  50. package/dist/types/utils.d.ts +0 -6
  51. package/dist/utils.js +0 -26
  52. package/dist/utils.js.map +0 -1
  53. package/src/call-diagnostic/call-diagnostic-metrics-batcher.ts +0 -75
  54. package/src/call-diagnostic/call-diagnostic-metrics-latencies.ts +0 -419
  55. package/src/call-diagnostic/call-diagnostic-metrics.ts +0 -898
  56. package/src/call-diagnostic/call-diagnostic-metrics.util.ts +0 -387
  57. package/src/call-diagnostic/config.ts +0 -685
  58. package/src/index.ts +0 -43
  59. package/src/metrics.types.ts +0 -160
  60. package/src/new-metrics.ts +0 -317
  61. package/src/utils.ts +0 -17
  62. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-batcher.ts +0 -453
  63. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics-latencies.ts +0 -505
  64. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.ts +0 -2177
  65. package/test/unit/spec/call-diagnostic/call-diagnostic-metrics.util.ts +0 -621
  66. package/test/unit/spec/new-metrics.ts +0 -266
  67. package/test/unit/spec/utils.ts +0 -22
  68. package/tsconfig.json +0 -6
package/dist/batcher.js CHANGED
@@ -42,8 +42,7 @@ var MetricsBatcher = _webexCore.Batcher.extend({
42
42
  resource: 'metrics',
43
43
  body: {
44
44
  metrics: payload
45
- },
46
- waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout
45
+ }
47
46
  });
48
47
  },
49
48
  handleHttpSuccess: function handleHttpSuccess(res) {
@@ -93,5 +92,6 @@ var MetricsBatcher = _webexCore.Batcher.extend({
93
92
  return _promise.default.resolve(item[sym]);
94
93
  }
95
94
  });
96
- var _default = exports.default = MetricsBatcher;
95
+ var _default = MetricsBatcher;
96
+ exports.default = _default;
97
97
  //# sourceMappingURL=batcher.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_commonTimers","sym","_symbol","default","MetricsBatcher","Batcher","extend","namespace","prepareItem","item","env","process","NODE_ENV","appType","config","time","_now","version","webex","_promise","resolve","prepareRequest","queue","map","postTime","submitHttpRequest","payload","request","method","service","resource","body","metrics","waitForServiceTimeout","handleHttpSuccess","res","_this","all","options","acceptItem","handleHttpError","reason","_this2","WebexHttpError","NetworkOrCORSError","logger","warn","delay","nextDelay","batcherRetryPlateau","safeSetTimeout","rerequest","_apply","prototype","_this3","getDeferredForRequest","then","_ref","_ref2","_slicedToArray2","defer","req","enqueue","bounce","catch","reject","fingerprintRequest","fingerprintResponse","_default","exports"],"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 waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout,\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":["_webexCore","require","_commonTimers","sym","_symbol","default","MetricsBatcher","Batcher","extend","namespace","prepareItem","item","env","process","NODE_ENV","appType","config","time","_now","version","webex","_promise","resolve","prepareRequest","queue","map","postTime","submitHttpRequest","payload","request","method","service","resource","body","metrics","handleHttpSuccess","res","_this","all","options","acceptItem","handleHttpError","reason","_this2","WebexHttpError","NetworkOrCORSError","logger","warn","delay","nextDelay","batcherRetryPlateau","safeSetTimeout","rerequest","_apply","prototype","_this3","getDeferredForRequest","then","_ref","_ref2","_slicedToArray2","defer","req","enqueue","bounce","catch","reject","fingerprintRequest","fingerprintResponse","_default","exports"],"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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"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
10
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
11
+ var _batcher = _interopRequireDefault(require("./batcher"));
12
+ /*!
13
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
14
+ */
15
+
16
+ var CallDiagnosticEventsBatcher = _batcher.default.extend({
17
+ namespace: 'Metrics',
18
+ /**
19
+ * @param {string} webClientDomain
20
+ * @returns {string}
21
+ */
22
+ getBuildType: function getBuildType(webClientDomain) {
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') {
24
+ return 'test';
25
+ }
26
+ return process.env.NODE_ENV === 'production' ? 'prod' : 'test';
27
+ },
28
+ prepareItem: function prepareItem(item) {
29
+ var _item$event, _item$event$eventData;
30
+ // networkType should be a enum value: `wifi`, `ethernet`, `cellular`, or `unknown`.
31
+ // Browsers cannot provide such information right now. However, it is a required field.
32
+ var origin = {
33
+ buildType: this.getBuildType((_item$event = item.event) === null || _item$event === void 0 ? void 0 : (_item$event$eventData = _item$event.eventData) === null || _item$event$eventData === void 0 ? void 0 : _item$event$eventData.webClientDomain),
34
+ networkType: 'unknown'
35
+ };
36
+ item.eventPayload.origin = (0, _assign.default)(origin, item.eventPayload.origin);
37
+ return _promise.default.resolve(item);
38
+ },
39
+ prepareRequest: function prepareRequest(queue) {
40
+ // Add sent timestamp
41
+ queue.forEach(function (item) {
42
+ item.eventPayload.originTime = item.eventPayload.originTime || {};
43
+ item.eventPayload.originTime.sent = new Date().toISOString();
44
+ });
45
+ return _promise.default.resolve(queue);
46
+ },
47
+ submitHttpRequest: function submitHttpRequest(payload) {
48
+ return this.webex.request({
49
+ method: 'POST',
50
+ service: 'metrics',
51
+ resource: 'clientmetrics',
52
+ body: {
53
+ metrics: payload
54
+ }
55
+ });
56
+ }
57
+ });
58
+ var _default = CallDiagnosticEventsBatcher;
59
+ exports.default = _default;
60
+ //# sourceMappingURL=call-diagnostic-events-batcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_batcher","_interopRequireDefault","require","CallDiagnosticEventsBatcher","Batcher","extend","namespace","getBuildType","webClientDomain","includes","process","env","NODE_ENV","prepareItem","item","_item$event","_item$event$eventData","origin","buildType","event","eventData","networkType","eventPayload","_assign","default","_promise","resolve","prepareRequest","queue","forEach","originTime","sent","Date","toISOString","submitHttpRequest","payload","webex","request","method","service","resource","body","metrics","_default","exports"],"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,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAJA;AACA;AACA;;AAIA,IAAMC,2BAA2B,GAAGC,gBAAO,CAACC,MAAM,CAAC;EACjDC,SAAS,EAAE,SAAS;EAEpB;AACF;AACA;AACA;EACEC,YAAY,WAAAA,aAACC,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,WAAAA,YAACC,IAAI,EAAE;IAAA,IAAAC,WAAA,EAAAC,qBAAA;IAChB;IACA;IACA,IAAMC,MAAM,GAAG;MACbC,SAAS,EAAE,IAAI,CAACX,YAAY,EAAAQ,WAAA,GAACD,IAAI,CAACK,KAAK,cAAAJ,WAAA,wBAAAC,qBAAA,GAAVD,WAAA,CAAYK,SAAS,cAAAJ,qBAAA,uBAArBA,qBAAA,CAAuBR,eAAe,CAAC;MACpEa,WAAW,EAAE;IACf,CAAC;IAEDP,IAAI,CAACQ,YAAY,CAACL,MAAM,GAAG,IAAAM,OAAA,CAAAC,OAAA,EAAcP,MAAM,EAAEH,IAAI,CAACQ,YAAY,CAACL,MAAM,CAAC;IAE1E,OAAOQ,QAAA,CAAAD,OAAA,CAAQE,OAAO,CAACZ,IAAI,CAAC;EAC9B,CAAC;EAEDa,cAAc,WAAAA,eAACC,KAAK,EAAE;IACpB;IACAA,KAAK,CAACC,OAAO,CAAC,UAACf,IAAI,EAAK;MACtBA,IAAI,CAACQ,YAAY,CAACQ,UAAU,GAAGhB,IAAI,CAACQ,YAAY,CAACQ,UAAU,IAAI,CAAC,CAAC;MACjEhB,IAAI,CAACQ,YAAY,CAACQ,UAAU,CAACC,IAAI,GAAG,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE;IAC9D,CAAC,CAAC;IAEF,OAAOR,QAAA,CAAAD,OAAA,CAAQE,OAAO,CAACE,KAAK,CAAC;EAC/B,CAAC;EAEDM,iBAAiB,WAAAA,kBAACC,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,IAAAQ,QAAA,GAEYxC,2BAA2B;AAAAyC,OAAA,CAAApB,OAAA,GAAAmB,QAAA"}
@@ -28,10 +28,10 @@ var ClientMetricsBatcher = _batcher.default.extend({
28
28
  resource: 'clientmetrics',
29
29
  body: {
30
30
  metrics: payload
31
- },
32
- waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout
31
+ }
33
32
  });
34
33
  }
35
34
  });
36
- var _default = exports.default = ClientMetricsBatcher;
35
+ var _default = ClientMetricsBatcher;
36
+ exports.default = _default;
37
37
  //# sourceMappingURL=client-metrics-batcher.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_batcher","_interopRequireDefault","require","ClientMetricsBatcher","Batcher","extend","namespace","prepareItem","item","_promise","default","resolve","prepareRequest","queue","submitHttpRequest","payload","webex","request","method","service","resource","body","metrics","waitForServiceTimeout","config","_default","exports"],"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 waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout,\n });\n },\n});\n\nexport default ClientMetricsBatcher;\n"],"mappings":";;;;;;;;;AAIA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAJA;AACA;AACA;;AAIA,IAAMC,oBAAoB,GAAGC,gBAAO,CAACC,MAAM,CAAC;EAC1CC,SAAS,EAAE,SAAS;EAEpBC,WAAW,WAAAA,YAACC,IAAI,EAAE;IAChB;IACA,OAAOC,QAAA,CAAAC,OAAA,CAAQC,OAAO,CAACH,IAAI,CAAC;EAC9B,CAAC;EAEDI,cAAc,WAAAA,eAACC,KAAK,EAAE;IACpB,OAAOJ,QAAA,CAAAC,OAAA,CAAQC,OAAO,CAACE,KAAK,CAAC;EAC/B,CAAC;EAEDC,iBAAiB,WAAAA,kBAACC,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,CAAC;MACDQ,qBAAqB,EAAE,IAAI,CAACP,KAAK,CAACQ,MAAM,CAACF,OAAO,CAACC;IACnD,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAhB,OAAA,GAEYP,oBAAoB"}
1
+ {"version":3,"names":["_batcher","_interopRequireDefault","require","ClientMetricsBatcher","Batcher","extend","namespace","prepareItem","item","_promise","default","resolve","prepareRequest","queue","submitHttpRequest","payload","webex","request","method","service","resource","body","metrics","_default","exports"],"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,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAJA;AACA;AACA;;AAIA,IAAMC,oBAAoB,GAAGC,gBAAO,CAACC,MAAM,CAAC;EAC1CC,SAAS,EAAE,SAAS;EAEpBC,WAAW,WAAAA,YAACC,IAAI,EAAE;IAChB;IACA,OAAOC,QAAA,CAAAC,OAAA,CAAQC,OAAO,CAACH,IAAI,CAAC;EAC9B,CAAC;EAEDI,cAAc,WAAAA,eAACC,KAAK,EAAE;IACpB,OAAOJ,QAAA,CAAAC,OAAA,CAAQC,OAAO,CAACE,KAAK,CAAC;EAC/B,CAAC;EAEDC,iBAAiB,WAAAA,kBAACC,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,IAAAQ,QAAA,GAEYpB,oBAAoB;AAAAqB,OAAA,CAAAd,OAAA,GAAAa,QAAA"}
package/dist/config.js CHANGED
@@ -10,8 +10,9 @@ var _common = require("@webex/common");
10
10
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
11
11
  */
12
12
 
13
- var CLIENT_NAME = exports.CLIENT_NAME = 'webex-js-sdk';
14
- var _default = exports.default = {
13
+ var CLIENT_NAME = 'webex-js-sdk';
14
+ exports.CLIENT_NAME = CLIENT_NAME;
15
+ var _default = {
15
16
  device: {
16
17
  preDiscoveryServices: {
17
18
  metricsServiceUrl: process.env.METRICS_SERVICE_URL || 'https://metrics-a.wbx2.com/metrics/api/v1',
@@ -23,11 +24,11 @@ var _default = exports.default = {
23
24
  batcherWait: 500,
24
25
  batcherMaxCalls: 50,
25
26
  batcherMaxWait: 1500,
26
- batcherRetryPlateau: 32000,
27
- waitForServiceTimeout: 30
27
+ batcherRetryPlateau: 32000
28
28
  }
29
29
  };
30
- var OS_NAME = exports.OS_NAME = {
30
+ exports.default = _default;
31
+ var OS_NAME = {
31
32
  WINDOWS: 'windows',
32
33
  MAC: 'mac',
33
34
  IOS: 'ios',
@@ -36,7 +37,8 @@ var OS_NAME = exports.OS_NAME = {
36
37
  LINUX: 'linux',
37
38
  OTHERS: 'other'
38
39
  };
39
- var OSMap = exports.OSMap = {
40
+ exports.OS_NAME = OS_NAME;
41
+ var OSMap = {
40
42
  'Chrome OS': OS_NAME.CHROME,
41
43
  macOS: OS_NAME.MAC,
42
44
  Windows: OS_NAME.WINDOWS,
@@ -44,4 +46,5 @@ var OSMap = exports.OSMap = {
44
46
  Android: OS_NAME.ANDROID,
45
47
  Linux: OS_NAME.LINUX
46
48
  };
49
+ exports.OSMap = OSMap;
47
50
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_common","require","CLIENT_NAME","exports","_default","default","device","preDiscoveryServices","metricsServiceUrl","process","env","METRICS_SERVICE_URL","metrics","appType","inBrowser","batcherWait","batcherMaxCalls","batcherMaxWait","batcherRetryPlateau","waitForServiceTimeout","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 waitForServiceTimeout: 30,\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,IAAAA,OAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAIO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,cAAc;AAAC,IAAAE,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAC3B;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,KAAK;IAC1BC,qBAAqB,EAAE;EACzB;AACF,CAAC;AAEM,IAAMC,OAAO,GAAAjB,OAAA,CAAAiB,OAAA,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;AAEM,IAAMC,KAAK,GAAAzB,OAAA,CAAAyB,KAAA,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"}
1
+ {"version":3,"names":["_common","require","CLIENT_NAME","exports","_default","device","preDiscoveryServices","metricsServiceUrl","process","env","METRICS_SERVICE_URL","metrics","appType","inBrowser","batcherWait","batcherMaxCalls","batcherMaxWait","batcherRetryPlateau","default","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,IAAAA,OAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAIO,IAAMC,WAAW,GAAG,cAAc;AAACC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AAAA,IAAAE,QAAA,GAC3B;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;AAAAd,OAAA,CAAAe,OAAA,GAAAd,QAAA;AAEM,IAAMe,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;AAACvB,OAAA,CAAAgB,OAAA,GAAAA,OAAA;AAEK,IAAMQ,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;AAACtB,OAAA,CAAAwB,KAAA,GAAAA,KAAA"}
package/dist/index.js CHANGED
@@ -8,14 +8,6 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
8
8
  _Object$defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
- exports.CallDiagnosticUtils = exports.CALL_DIAGNOSTIC_CONFIG = void 0;
12
- _Object$defineProperty(exports, "NewMetrics", {
13
- enumerable: true,
14
- get: function get() {
15
- return _newMetrics.default;
16
- }
17
- });
18
- exports.Utils = void 0;
19
11
  _Object$defineProperty(exports, "config", {
20
12
  enumerable: true,
21
13
  get: function get() {
@@ -34,19 +26,11 @@ _Object$defineProperty(exports, "getOSNameInternal", {
34
26
  return _metrics.getOSNameInternal;
35
27
  }
36
28
  });
37
- require("@webex/internal-plugin-device");
38
29
  var _webexCore = require("@webex/webex-core");
39
30
  var _metrics = _interopRequireWildcard(require("./metrics"));
40
31
  var _config = _interopRequireDefault(require("./config"));
41
- var _newMetrics = _interopRequireDefault(require("./new-metrics"));
42
- var Utils = _interopRequireWildcard(require("./utils"));
43
- exports.Utils = Utils;
44
- var CALL_DIAGNOSTIC_CONFIG = _interopRequireWildcard(require("./call-diagnostic/config"));
45
- exports.CALL_DIAGNOSTIC_CONFIG = CALL_DIAGNOSTIC_CONFIG;
46
- var CallDiagnosticUtils = _interopRequireWildcard(require("./call-diagnostic/call-diagnostic-metrics.util"));
47
- exports.CallDiagnosticUtils = CallDiagnosticUtils;
48
- function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
49
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
32
+ 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); }
33
+ 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; }
50
34
  /*!
51
35
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
52
36
  */
@@ -54,7 +38,4 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
54
38
  (0, _webexCore.registerInternalPlugin)('metrics', _metrics.default, {
55
39
  config: _config.default
56
40
  });
57
- (0, _webexCore.registerInternalPlugin)('newMetrics', _newMetrics.default, {
58
- config: _config.default
59
- });
60
41
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["require","_webexCore","_metrics","_interopRequireWildcard","_config","_interopRequireDefault","_newMetrics","Utils","exports","CALL_DIAGNOSTIC_CONFIG","CallDiagnosticUtils","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","registerInternalPlugin","Metrics","config","NewMetrics"],"sources":["index.ts"],"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';\nimport NewMetrics from './new-metrics';\nimport * as Utils from './utils';\nimport {\n ClientEvent,\n ClientEventLeaveReason,\n SubmitBehavioralEvent,\n SubmitClientEvent,\n SubmitInternalEvent,\n SubmitOperationalEvent,\n SubmitMQE,\n} from './metrics.types';\nimport * as CALL_DIAGNOSTIC_CONFIG from './call-diagnostic/config';\nimport * as CallDiagnosticUtils from './call-diagnostic/call-diagnostic-metrics.util';\n\nregisterInternalPlugin('metrics', Metrics, {\n config,\n});\n\nregisterInternalPlugin('newMetrics', NewMetrics, {\n config,\n});\n\nexport {default, getOSNameInternal} from './metrics';\nexport {config, CALL_DIAGNOSTIC_CONFIG, NewMetrics, Utils, CallDiagnosticUtils};\nexport type {\n ClientEvent,\n ClientEventLeaveReason,\n SubmitBehavioralEvent,\n SubmitClientEvent,\n SubmitInternalEvent,\n SubmitMQE,\n SubmitOperationalEvent,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIAA,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,QAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,WAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,KAAA,GAAAJ,uBAAA,CAAAH,OAAA;AAAiCQ,OAAA,CAAAD,KAAA,GAAAA,KAAA;AAUjC,IAAAE,sBAAA,GAAAN,uBAAA,CAAAH,OAAA;AAAmEQ,OAAA,CAAAC,sBAAA,GAAAA,sBAAA;AACnE,IAAAC,mBAAA,GAAAP,uBAAA,CAAAH,OAAA;AAAsFQ,OAAA,CAAAE,mBAAA,GAAAA,mBAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,QAAA,mBAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAT,wBAAAS,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,sBAAA,IAAAC,gCAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAC,MAAA,CAAAC,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAc,CAAA,SAAAK,CAAA,GAAAR,CAAA,GAAAE,gCAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAK,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,sBAAA,CAAAH,CAAA,EAAAK,CAAA,EAAAK,CAAA,IAAAV,CAAA,CAAAK,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAL,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAiB,GAAA,CAAApB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAtBtF;AACA;AACA;;AAsBA,IAAAY,iCAAsB,EAAC,SAAS,EAAEC,gBAAO,EAAE;EACzCC,MAAM,EAANA;AACF,CAAC,CAAC;AAEF,IAAAF,iCAAsB,EAAC,YAAY,EAAEG,mBAAU,EAAE;EAC/CD,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
@@ -18,10 +18,9 @@ var _common = require("@webex/common");
18
18
  var _config = require("./config");
19
19
  var _batcher = _interopRequireDefault(require("./batcher"));
20
20
  var _clientMetricsBatcher = _interopRequireDefault(require("./client-metrics-batcher"));
21
- function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /* eslint-disable default-param-last */ /*!
23
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
24
- */
21
+ var _callDiagnosticEventsBatcher = _interopRequireDefault(require("./call-diagnostic-events-batcher"));
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; }
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; }
25
24
  var _BrowserDetection = (0, _common.BrowserDetection)(),
26
25
  getOSName = _BrowserDetection.getOSName,
27
26
  getOSVersion = _BrowserDetection.getOSVersion,
@@ -49,7 +48,8 @@ function getSparkUserAgent(webex) {
49
48
  var Metrics = _webexCore.WebexPlugin.extend({
50
49
  children: {
51
50
  batcher: _batcher.default,
52
- clientMetricsBatcher: _clientMetricsBatcher.default
51
+ clientMetricsBatcher: _clientMetricsBatcher.default,
52
+ callDiagnosticEventsBatcher: _callDiagnosticEventsBatcher.default
53
53
  },
54
54
  namespace: 'Metrics',
55
55
  submit: function submit(key, value) {
@@ -58,12 +58,15 @@ var Metrics = _webexCore.WebexPlugin.extend({
58
58
  }, value));
59
59
  },
60
60
  /**
61
- * Returns the payload for submitting client metrics.
61
+ * This corresponds to #sendSemiStructured() in the deprecated metrics handler
62
62
  * @param {string} eventName
63
- * @param {any} props
64
- * @returns {any} - the payload
63
+ * @param {Object} props
64
+ * @param {string} preLoginId
65
+ * @returns {Object} HttpResponse object
65
66
  */
66
- getClientMetricsPayload: function getClientMetricsPayload(eventName, props) {
67
+ submitClientMetrics: function submitClientMetrics(eventName) {
68
+ var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
69
+ var preLoginId = arguments.length > 2 ? arguments[2] : undefined;
67
70
  if (!eventName) {
68
71
  throw Error('Missing behavioral metric name. Please provide one');
69
72
  }
@@ -104,19 +107,6 @@ var Metrics = _webexCore.WebexPlugin.extend({
104
107
  // Mocking the time in tests when running in node
105
108
  // is impossible so unable to use Date.now()
106
109
  payload.timestamp = new Date().valueOf();
107
- return payload;
108
- },
109
- /**
110
- * This corresponds to #sendSemiStructured() in the deprecated metrics handler
111
- * @param {string} eventName
112
- * @param {Object} props
113
- * @param {string} preLoginId
114
- * @returns {Object} HttpResponse object
115
- */
116
- submitClientMetrics: function submitClientMetrics(eventName) {
117
- var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
118
- var preLoginId = arguments.length > 2 ? arguments[2] : undefined;
119
- var payload = this.getClientMetricsPayload(eventName, props);
120
110
  if (preLoginId) {
121
111
  var _payload = {
122
112
  metrics: [payload]
@@ -163,7 +153,15 @@ var Metrics = _webexCore.WebexPlugin.extend({
163
153
  });
164
154
  });
165
155
  },
166
- version: "2.60.1-next.9"
156
+ submitCallDiagnosticEvents: function submitCallDiagnosticEvents(payload) {
157
+ var event = {
158
+ type: 'diagnostic-event',
159
+ eventPayload: payload
160
+ };
161
+ return this.callDiagnosticEventsBatcher.request(event);
162
+ },
163
+ version: "2.60.2"
167
164
  });
168
- var _default = exports.default = Metrics;
165
+ var _default = Metrics;
166
+ exports.default = _default;
169
167
  //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_common","_config","_batcher","_interopRequireDefault","_clientMetricsBatcher","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_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","namespace","submit","key","value","request","getClientMetricsPayload","eventName","props","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","submitClientMetrics","undefined","preLoginId","_payload","postPreLoginMetric","aliasUser","method","api","resource","headers","body","qs","alias","_this","getClientToken","then","token","authorization","toString","_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';\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 },\n\n namespace: 'Metrics',\n\n submit(key, value) {\n return this.batcher.request({key, ...value});\n },\n\n /**\n * Returns the payload for submitting client metrics.\n * @param {string} eventName\n * @param {any} props\n * @returns {any} - the payload\n */\n getClientMetricsPayload(eventName, props) {\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 return payload;\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 const payload = this.getClientMetricsPayload(eventName, props);\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\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;AAA4D,SAAAM,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA,IAX5D,wCAEA;AACA;AACA;AASA,IAAAqB,iBAAA,GAAqE,IAAAC,wBAAgB,EAAC,CAAC;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,CAAC,CAAC,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;EACxB,CAAC;EAEDC,SAAS,EAAE,SAAS;EAEpBC,MAAM,WAAAA,OAACC,GAAG,EAAEC,KAAK,EAAE;IACjB,OAAO,IAAI,CAACP,OAAO,CAACQ,OAAO,CAAA5C,aAAA;MAAE0C,GAAG,EAAHA;IAAG,GAAKC,KAAK,CAAC,CAAC;EAC9C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEE,uBAAuB,WAAAA,wBAACC,SAAS,EAAEC,KAAK,EAAE;IACxC,IAAI,CAACD,SAAS,EAAE;MACd,MAAME,KAAK,CAAC,oDAAoD,CAAC;IACnE;IACA,IAAMC,OAAO,GAAG;MAACC,UAAU,EAAEJ;IAAS,CAAC;IAEvCG,OAAO,CAACE,IAAI,GAAAnD,aAAA,CAAAA,aAAA,KACP+C,KAAK,CAACI,IAAI;MACbC,OAAO,EAAEtC,cAAc,CAAC,CAAC;MACzBuC,EAAE,EAAErC,iBAAiB,CAAC,CAAC;MAEvB;MACA;MACAsC,MAAM,EACJ,OAAOC,MAAM,KAAK,WAAW,GAAGA,MAAM,CAACC,QAAQ,CAACC,QAAQ,IAAI,aAAa,GAAG,aAAa,CAAE;IAAA,EAC9F;;IAEDR,OAAO,CAACS,MAAM,GAAA1D,aAAA,CAAAA,aAAA,KACT+C,KAAK,CAACW,MAAM;MACfC,eAAe,EAAE5C,iBAAiB,CAAC,CAAC;MACpC6C,UAAU,EAAE/C,YAAY,CAAC,CAAC;MAC1BgD,WAAW,EAAE,IAAI,CAACvC,KAAK,CAACwC,OAAO;MAC/BC,QAAQ,EAAE,KAAK;MACfC,gBAAgB,EAAE3C,iBAAiB,CAAC,IAAI,CAACC,KAAK,CAAC;MAC/C2C,SAAS,EAAE,IAAI,CAAC3C,KAAK,CAAC4C,WAAW,CAACzC,MAAM,CAACwC;IAAS,EACnD;IAEDhB,OAAO,CAACkB,IAAI,GAAGpB,KAAK,CAACoB,IAAI,IAAI,IAAI,CAAC7C,KAAK,CAACG,MAAM,CAAC2C,OAAO,CAACD,IAAI;IAE3DlB,OAAO,CAACoB,OAAO,GAAArE,aAAA,CAAAA,aAAA,KACV+C,KAAK,CAACsB,OAAO;MAChBC,GAAG,EAAE;QACHR,OAAO,EAAE,IAAI,CAACxC,KAAK,CAACwC;MACtB,CAAC;MACDS,MAAM,EAAE,OAAO;MACflB,EAAE,EAAE;QACFmB,IAAI,EAAExD,iBAAiB,CAAC,CAAC;QACzB8C,OAAO,EAAEjD,YAAY,CAAC;MACxB;IAAC,EACF;IAED,IAAIkC,KAAK,CAAC0B,YAAY,EAAE;MACtBxB,OAAO,CAACwB,YAAY,GAAG1B,KAAK,CAAC0B,YAAY;IAC3C;;IAEA;IACA;IACAxB,OAAO,CAACyB,SAAS,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IAExC,OAAO3B,OAAO;EAChB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE4B,mBAAmB,WAAAA,oBAAC/B,SAAS,EAA0B;IAAA,IAAxBC,KAAK,GAAA9C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAA6E,SAAA,GAAA7E,SAAA,MAAG,CAAC,CAAC;IAAA,IAAE8E,UAAU,GAAA9E,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAA6E,SAAA;IACnD,IAAM7B,OAAO,GAAG,IAAI,CAACJ,uBAAuB,CAACC,SAAS,EAAEC,KAAK,CAAC;IAE9D,IAAIgC,UAAU,EAAE;MACd,IAAMC,QAAQ,GAAG;QACfZ,OAAO,EAAE,CAACnB,OAAO;MACnB,CAAC;;MAED;MACA;MACA;MACA,OAAO,IAAI,CAACgC,kBAAkB,CAACD,QAAQ,EAAED,UAAU,CAAC;IACtD;IAEA,OAAO,IAAI,CAACzC,oBAAoB,CAACM,OAAO,CAACK,OAAO,CAAC;EACnD,CAAC;EAED;AACF;AACA;AACA;AACA;EACEiC,SAAS,WAAAA,UAACH,UAAU,EAAE;IACpB,OAAO,IAAI,CAACnC,OAAO,CAAC;MAClBuC,MAAM,EAAE,MAAM;MACdC,GAAG,EAAE,SAAS;MACdC,QAAQ,EAAE,eAAe;MACzBC,OAAO,EAAE;QACP,mBAAmB,EAAEP;MACvB,CAAC;MACDQ,IAAI,EAAE,CAAC,CAAC;MACRC,EAAE,EAAE;QACFC,KAAK,EAAE;MACT;IACF,CAAC,CAAC;EACJ,CAAC;EAEDR,kBAAkB,WAAAA,mBAAChC,OAAO,EAAE8B,UAAU,EAAE;IAAA,IAAAW,KAAA;IACtC,OAAO,IAAI,CAACpE,KAAK,CAAC4C,WAAW,CAACyB,cAAc,CAAC,CAAC,CAACC,IAAI,CAAC,UAACC,KAAK;MAAA,OACxDH,KAAI,CAAC9C,OAAO,CAAC;QACXuC,MAAM,EAAE,MAAM;QACdC,GAAG,EAAE,SAAS;QACdC,QAAQ,EAAE,wBAAwB;QAClCC,OAAO,EAAE;UACPQ,aAAa,EAAED,KAAK,CAACE,QAAQ,CAAC,CAAC;UAC/B,mBAAmB,EAAEhB;QACvB,CAAC;QACDQ,IAAI,EAAEtC;MACR,CAAC,CAAC;IAAA,CACJ,CAAC;EACH,CAAC;EAAAa,OAAA;AACH,CAAC,CAAC;AAAC,IAAAkC,QAAA,GAAAC,OAAA,CAAA3F,OAAA,GAEY0B,OAAO"}
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","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","_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 };\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,17 +1,17 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-metrics",
3
+ "version": "2.60.2",
3
4
  "description": "",
4
5
  "license": "MIT",
5
6
  "main": "dist/index.js",
6
7
  "devMain": "src/index.js",
7
- "types": "dist/types/index.d.ts",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/webex/webex-js-sdk.git",
11
11
  "directory": "packages/@webex/internal-plugin-metrics"
12
12
  },
13
13
  "engines": {
14
- "node": ">=16"
14
+ "node": ">=14"
15
15
  },
16
16
  "browserify": {
17
17
  "transform": [
@@ -22,40 +22,32 @@
22
22
  "devDependencies": {
23
23
  "@babel/core": "^7.17.10",
24
24
  "@sinonjs/fake-timers": "^6.0.1",
25
- "@webex/babel-config-legacy": "0.0.0",
26
- "@webex/eslint-config-legacy": "0.0.0",
27
- "@webex/jest-config-legacy": "0.0.0",
28
- "@webex/legacy-tools": "0.0.0",
29
- "@webex/test-helper-chai": "2.60.1-next.9",
30
- "@webex/test-helper-mocha": "2.60.1-next.9",
31
- "@webex/test-helper-mock-webex": "2.60.1-next.9",
32
- "@webex/test-helper-test-users": "2.60.1-next.9",
25
+ "@webex/babel-config-legacy": "2.60.2",
26
+ "@webex/eslint-config-legacy": "2.60.2",
27
+ "@webex/jest-config-legacy": "2.60.2",
28
+ "@webex/legacy-tools": "2.60.2",
29
+ "@webex/test-helper-chai": "2.60.2",
30
+ "@webex/test-helper-mocha": "2.60.2",
31
+ "@webex/test-helper-mock-webex": "2.60.2",
32
+ "@webex/test-helper-test-users": "2.60.2",
33
33
  "eslint": "^8.24.0",
34
34
  "prettier": "^2.7.1",
35
35
  "sinon": "^9.2.4"
36
36
  },
37
37
  "dependencies": {
38
- "@webex/common": "2.60.1-next.9",
39
- "@webex/common-timers": "2.60.1-next.9",
40
- "@webex/event-dictionary-ts": "^1.0.1329",
41
- "@webex/internal-plugin-device": "2.60.1-next.9",
42
- "@webex/internal-plugin-metrics": "2.60.1-next.9",
43
- "@webex/test-helper-chai": "2.60.1-next.9",
44
- "@webex/test-helper-mock-webex": "2.60.1-next.9",
45
- "@webex/webex-core": "2.60.1-next.9",
46
- "ip-anonymize": "^0.1.0",
47
- "lodash": "^4.17.21",
48
- "uuid": "^3.3.2"
38
+ "@webex/common": "2.60.2",
39
+ "@webex/common-timers": "2.60.2",
40
+ "@webex/test-helper-chai": "2.60.2",
41
+ "@webex/test-helper-mock-webex": "2.60.2",
42
+ "@webex/webex-core": "2.60.2"
49
43
  },
50
44
  "scripts": {
51
- "build": " yarn run -T tsc --declaration true --declarationDir ./dist/types",
52
- "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps && yarn build",
53
- "deploy:npm": "yarn npm publish",
45
+ "build": "yarn build:src",
46
+ "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
54
47
  "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
55
48
  "test:browser": "webex-legacy-tools test --integration --unit --runner karma",
56
49
  "test:integration": "webex-legacy-tools test --integration --runner mocha",
57
50
  "test:style": "eslint ./src/**/*.*",
58
51
  "test:unit": "webex-legacy-tools test --unit --runner jest"
59
- },
60
- "version": "2.60.1-next.9"
61
- }
52
+ }
53
+ }
package/src/batcher.js CHANGED
@@ -40,7 +40,6 @@ const MetricsBatcher = Batcher.extend({
40
40
  body: {
41
41
  metrics: payload,
42
42
  },
43
- waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout,
44
43
  });
45
44
  },
46
45
 
@@ -0,0 +1,62 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import Batcher from './batcher';
6
+
7
+ const CallDiagnosticEventsBatcher = Batcher.extend({
8
+ namespace: 'Metrics',
9
+
10
+ /**
11
+ * @param {string} webClientDomain
12
+ * @returns {string}
13
+ */
14
+ getBuildType(webClientDomain) {
15
+ if (
16
+ webClientDomain?.includes('teams.webex.com') ||
17
+ webClientDomain?.includes('localhost') ||
18
+ webClientDomain?.includes('127.0.0.1') ||
19
+ process.env.NODE_ENV !== 'production'
20
+ ) {
21
+ return 'test';
22
+ }
23
+
24
+ return process.env.NODE_ENV === 'production' ? 'prod' : 'test';
25
+ },
26
+
27
+ prepareItem(item) {
28
+ // networkType should be a enum value: `wifi`, `ethernet`, `cellular`, or `unknown`.
29
+ // Browsers cannot provide such information right now. However, it is a required field.
30
+ const origin = {
31
+ buildType: this.getBuildType(item.event?.eventData?.webClientDomain),
32
+ networkType: 'unknown',
33
+ };
34
+
35
+ item.eventPayload.origin = Object.assign(origin, item.eventPayload.origin);
36
+
37
+ return Promise.resolve(item);
38
+ },
39
+
40
+ prepareRequest(queue) {
41
+ // Add sent timestamp
42
+ queue.forEach((item) => {
43
+ item.eventPayload.originTime = item.eventPayload.originTime || {};
44
+ item.eventPayload.originTime.sent = new Date().toISOString();
45
+ });
46
+
47
+ return Promise.resolve(queue);
48
+ },
49
+
50
+ submitHttpRequest(payload) {
51
+ return this.webex.request({
52
+ method: 'POST',
53
+ service: 'metrics',
54
+ resource: 'clientmetrics',
55
+ body: {
56
+ metrics: payload,
57
+ },
58
+ });
59
+ },
60
+ });
61
+
62
+ export default CallDiagnosticEventsBatcher;
@@ -24,7 +24,6 @@ const ClientMetricsBatcher = Batcher.extend({
24
24
  body: {
25
25
  metrics: payload,
26
26
  },
27
- waitForServiceTimeout: this.webex.config.metrics.waitForServiceTimeout,
28
27
  });
29
28
  },
30
29
  });
package/src/config.js CHANGED
@@ -19,7 +19,6 @@ export default {
19
19
  batcherMaxCalls: 50,
20
20
  batcherMaxWait: 1500,
21
21
  batcherRetryPlateau: 32000,
22
- waitForServiceTimeout: 30,
23
22
  },
24
23
  };
25
24
 
package/src/index.js ADDED
@@ -0,0 +1,15 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import {registerInternalPlugin} from '@webex/webex-core';
6
+
7
+ import Metrics from './metrics';
8
+ import config from './config';
9
+
10
+ registerInternalPlugin('metrics', Metrics, {
11
+ config,
12
+ });
13
+
14
+ export {default, getOSNameInternal} from './metrics';
15
+ export {config};