@webex/calling 3.12.0-mobius-socket.12 → 3.12.0-mobius-socket.14

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 (42) hide show
  1. package/dist/CallingClient/CallingClient.js +22 -30
  2. package/dist/CallingClient/CallingClient.js.map +1 -1
  3. package/dist/CallingClient/calling/call.test.js +1 -1
  4. package/dist/CallingClient/calling/call.test.js.map +1 -1
  5. package/dist/CallingClient/constants.js +15 -3
  6. package/dist/CallingClient/constants.js.map +1 -1
  7. package/dist/CallingClient/registration/register.js +143 -87
  8. package/dist/CallingClient/registration/register.js.map +1 -1
  9. package/dist/CallingClient/registration/register.test.js +1 -1
  10. package/dist/CallingClient/registration/register.test.js.map +1 -1
  11. package/dist/CallingClient/utils/mobiusSocketMapper.js +32 -20
  12. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -1
  13. package/dist/CallingClient/utils/request.js +46 -5
  14. package/dist/CallingClient/utils/request.js.map +1 -1
  15. package/dist/CallingClient/utils/wsFeatureFlag.js +9 -1
  16. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -1
  17. package/dist/Metrics/index.js +60 -0
  18. package/dist/Metrics/index.js.map +1 -1
  19. package/dist/Metrics/types.js +11 -1
  20. package/dist/Metrics/types.js.map +1 -1
  21. package/dist/module/CallingClient/CallingClient.js +15 -19
  22. package/dist/module/CallingClient/constants.js +12 -0
  23. package/dist/module/CallingClient/registration/register.js +77 -36
  24. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +11 -0
  25. package/dist/module/CallingClient/utils/request.js +39 -1
  26. package/dist/module/CallingClient/utils/wsFeatureFlag.js +9 -2
  27. package/dist/module/Metrics/index.js +46 -0
  28. package/dist/module/Metrics/types.js +10 -0
  29. package/dist/types/CallingClient/CallingClient.d.ts +0 -1
  30. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  31. package/dist/types/CallingClient/constants.d.ts +12 -0
  32. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  33. package/dist/types/CallingClient/registration/register.d.ts +1 -0
  34. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  35. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -1
  36. package/dist/types/CallingClient/utils/request.d.ts +1 -0
  37. package/dist/types/CallingClient/utils/request.d.ts.map +1 -1
  38. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -1
  39. package/dist/types/Metrics/index.d.ts.map +1 -1
  40. package/dist/types/Metrics/types.d.ts +11 -1
  41. package/dist/types/Metrics/types.d.ts.map +1 -1
  42. package/package.json +1 -1
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5
  _Object$defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.deriveMobiusSocketMessageType = deriveMobiusSocketMessageType;
8
9
  exports.isSupplementaryServiceMessageType = void 0;
9
10
  var _types = require("../../common/types");
10
- var _constants = require("./constants");
11
+ var _Logger = _interopRequireDefault(require("../../Logger"));
12
+ var _constants = require("../constants");
13
+ var _constants2 = require("./constants");
11
14
  /**
12
15
  * Derives the Mobius Socket message type from the URI and HTTP method.
13
16
  * Uses both the URI path pattern and the HTTP method to disambiguate operations
@@ -29,82 +32,91 @@ var _constants = require("./constants");
29
32
  */
30
33
  // eslint-disable-next-line import/prefer-default-export
31
34
  function deriveMobiusSocketMessageType(uri, httpMethodType) {
35
+ var logContext = {
36
+ file: _constants.MOBIUS_SOCKET_MAPPER_FILE,
37
+ method: _constants.METHODS.DERIVE_MOBIUS_SOCKET_MESSAGE_TYPE
38
+ };
32
39
  if (!uri) {
33
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
40
+ _Logger.default.warn('Cannot derive Mobius socket message type: uri is empty', logContext);
41
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
34
42
  }
35
43
 
36
44
  // --- Supplementary services: .../services/{service}/{action} ---
37
45
  if (uri.includes('/services')) {
38
46
  if (uri.includes('/callhold/hold')) {
39
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD;
47
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD;
40
48
  }
41
49
  if (uri.includes('/callhold/resume')) {
42
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME;
50
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME;
43
51
  }
44
52
  if (uri.includes('/calltransfer/commit')) {
45
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER;
53
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER;
46
54
  }
47
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
55
+ _Logger.default.warn("Unrecognized supplementary service uri - uri: ".concat(uri, ", httpMethod: ").concat(httpMethodType), logContext);
56
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
48
57
  }
49
58
 
50
59
  // --- Call sub-resource actions (checked before bare calls/{callId}) ---
51
60
 
52
61
  // Call media: .../calls/{callId}/media
53
62
  if (uri.includes('/calls/') && uri.includes('/media')) {
54
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_MEDIA;
63
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_MEDIA;
55
64
  }
56
65
 
57
66
  // Call status: .../calls/{callId}/status
58
67
  if (uri.includes('/calls/') && uri.includes('/status')) {
59
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATUS;
68
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATUS;
60
69
  }
61
70
 
62
71
  // Call state or delete: .../calls/{callId} (PATCH → state, DELETE → delete)
63
72
  if (uri.match(/\/calls\/[^/]+$/)) {
64
73
  if (httpMethodType === _types.HTTP_METHODS.PATCH) {
65
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATE;
74
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATE;
66
75
  }
67
76
  if (httpMethodType === _types.HTTP_METHODS.DELETE) {
68
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_DELETE;
77
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_DELETE;
69
78
  }
70
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
79
+ _Logger.default.warn("Unrecognized httpMethod for calls/{callId} - uri: ".concat(uri, ", httpMethod: ").concat(httpMethodType), logContext);
80
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
71
81
  }
72
82
 
73
83
  // Call setup: .../devices/{deviceId}/call (singular)
74
84
  if (uri.endsWith('/call')) {
75
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_SETUP;
85
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_SETUP;
76
86
  }
77
87
 
78
88
  // --- Device-level operations ---
79
89
 
80
90
  // Device keepalive: .../devices/{deviceId}/status (no /calls/ in path)
81
91
  if (uri.includes('/devices/') && uri.endsWith('/status')) {
82
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_STATUS;
92
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_STATUS;
83
93
  }
84
94
 
85
95
  // Device registration: .../calling/web/device (singular)
86
96
  if (uri.endsWith('/device')) {
87
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER;
97
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER;
88
98
  }
89
99
 
90
100
  // Device unregister or get: .../devices/{deviceId} (DELETE → unregister, GET → device_get)
91
101
  if (uri.match(/\/devices\/[^/?]+$/) && !uri.includes('/calls')) {
92
102
  if (httpMethodType === _types.HTTP_METHODS.DELETE) {
93
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.UNREGISTER;
103
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.UNREGISTER;
94
104
  }
95
105
  if (httpMethodType === _types.HTTP_METHODS.GET) {
96
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_GET;
106
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_GET;
97
107
  }
98
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
108
+ _Logger.default.warn("Unrecognized httpMethod for devices/{deviceId} - uri: ".concat(uri, ", httpMethod: ").concat(httpMethodType), logContext);
109
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
99
110
  }
100
111
 
101
112
  // Device list: .../devices or .../devices?userid=...
102
113
  if (uri.includes('/devices') && !uri.match(/\/devices\/[^/?]+/)) {
103
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_LIST;
114
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_LIST;
104
115
  }
105
- return _constants.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
116
+ _Logger.default.warn("Unrecognized uri pattern for Mobius socket - uri: ".concat(uri, ", httpMethod: ").concat(httpMethodType), logContext);
117
+ return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;
106
118
  }
107
119
  var isSupplementaryServiceMessageType = exports.isSupplementaryServiceMessageType = function isSupplementaryServiceMessageType(type) {
108
- return [_constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD, _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME, _constants.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER].includes(type);
120
+ return [_constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD, _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME, _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER].includes(type);
109
121
  };
110
122
  //# sourceMappingURL=mobiusSocketMapper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_constants","deriveMobiusSocketMessageType","uri","httpMethodType","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","includes","CALL_HOLD","CALL_RESUME","CALL_TRANSFER","CALL_MEDIA","CALL_STATUS","match","HTTP_METHODS","PATCH","CALL_STATE","DELETE","CALL_DELETE","endsWith","CALL_SETUP","DEVICE_STATUS","REGISTER","UNREGISTER","GET","DEVICE_GET","DEVICE_LIST","isSupplementaryServiceMessageType","exports","type"],"sources":["mobiusSocketMapper.ts"],"sourcesContent":["import {HTTP_METHODS} from '../../common/types';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\n\n/**\n * Derives the Mobius Socket message type from the URI and HTTP method.\n * Uses both the URI path pattern and the HTTP method to disambiguate operations\n * that share the same endpoint (e.g., PATCH vs DELETE on calls/{callId}).\n *\n * @param uri - The request URI\n * @param httpMethodType - The HTTP method used for the request\n * @returns The socket message type based on the URI pattern and HTTP method\n *\n * @example\n * deriveMobiusSocketMessageType('/api/v1/calling/web/device', HTTP_METHODS.POST)\n * // returns 'register'\n *\n * deriveMobiusSocketMessageType('/api/v1/calling/web/devices/abc123/calls/xyz789', HTTP_METHODS.PATCH)\n * // returns 'call_state'\n *\n * deriveMobiusSocketMessageType('/api/v1/calling/web/devices/abc123/calls/xyz789', HTTP_METHODS.DELETE)\n * // returns 'call_delete'\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function deriveMobiusSocketMessageType(\n uri?: string,\n httpMethodType?: HTTP_METHODS\n): MOBIUS_SOCKET_MESSAGE_TYPE {\n if (!uri) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n }\n\n // --- Supplementary services: .../services/{service}/{action} ---\n if (uri.includes('/services')) {\n if (uri.includes('/callhold/hold')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD;\n }\n if (uri.includes('/callhold/resume')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME;\n }\n if (uri.includes('/calltransfer/commit')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER;\n }\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n }\n\n // --- Call sub-resource actions (checked before bare calls/{callId}) ---\n\n // Call media: .../calls/{callId}/media\n if (uri.includes('/calls/') && uri.includes('/media')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_MEDIA;\n }\n\n // Call status: .../calls/{callId}/status\n if (uri.includes('/calls/') && uri.includes('/status')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATUS;\n }\n\n // Call state or delete: .../calls/{callId} (PATCH → state, DELETE → delete)\n if (uri.match(/\\/calls\\/[^/]+$/)) {\n if (httpMethodType === HTTP_METHODS.PATCH) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATE;\n }\n if (httpMethodType === HTTP_METHODS.DELETE) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_DELETE;\n }\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n }\n\n // Call setup: .../devices/{deviceId}/call (singular)\n if (uri.endsWith('/call')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_SETUP;\n }\n\n // --- Device-level operations ---\n\n // Device keepalive: .../devices/{deviceId}/status (no /calls/ in path)\n if (uri.includes('/devices/') && uri.endsWith('/status')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_STATUS;\n }\n\n // Device registration: .../calling/web/device (singular)\n if (uri.endsWith('/device')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER;\n }\n\n // Device unregister or get: .../devices/{deviceId} (DELETE → unregister, GET → device_get)\n if (uri.match(/\\/devices\\/[^/?]+$/) && !uri.includes('/calls')) {\n if (httpMethodType === HTTP_METHODS.DELETE) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNREGISTER;\n }\n if (httpMethodType === HTTP_METHODS.GET) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_GET;\n }\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n }\n\n // Device list: .../devices or .../devices?userid=...\n if (uri.includes('/devices') && !uri.match(/\\/devices\\/[^/?]+/)) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_LIST;\n }\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n}\n\nexport const isSupplementaryServiceMessageType = (type: MOBIUS_SOCKET_MESSAGE_TYPE): boolean =>\n [\n MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD,\n MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME,\n MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER,\n ].includes(type);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","_Logger","_interopRequireDefault","_constants","_constants2","deriveMobiusSocketMessageType","uri","httpMethodType","logContext","file","MOBIUS_SOCKET_MAPPER_FILE","method","METHODS","DERIVE_MOBIUS_SOCKET_MESSAGE_TYPE","log","warn","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","includes","CALL_HOLD","CALL_RESUME","CALL_TRANSFER","concat","CALL_MEDIA","CALL_STATUS","match","HTTP_METHODS","PATCH","CALL_STATE","DELETE","CALL_DELETE","endsWith","CALL_SETUP","DEVICE_STATUS","REGISTER","UNREGISTER","GET","DEVICE_GET","DEVICE_LIST","isSupplementaryServiceMessageType","exports","type"],"sources":["mobiusSocketMapper.ts"],"sourcesContent":["import {HTTP_METHODS} from '../../common/types';\nimport log from '../../Logger';\nimport {METHODS, MOBIUS_SOCKET_MAPPER_FILE} from '../constants';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\n\n/**\n * Derives the Mobius Socket message type from the URI and HTTP method.\n * Uses both the URI path pattern and the HTTP method to disambiguate operations\n * that share the same endpoint (e.g., PATCH vs DELETE on calls/{callId}).\n *\n * @param uri - The request URI\n * @param httpMethodType - The HTTP method used for the request\n * @returns The socket message type based on the URI pattern and HTTP method\n *\n * @example\n * deriveMobiusSocketMessageType('/api/v1/calling/web/device', HTTP_METHODS.POST)\n * // returns 'register'\n *\n * deriveMobiusSocketMessageType('/api/v1/calling/web/devices/abc123/calls/xyz789', HTTP_METHODS.PATCH)\n * // returns 'call_state'\n *\n * deriveMobiusSocketMessageType('/api/v1/calling/web/devices/abc123/calls/xyz789', HTTP_METHODS.DELETE)\n * // returns 'call_delete'\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function deriveMobiusSocketMessageType(\n uri?: string,\n httpMethodType?: HTTP_METHODS\n): MOBIUS_SOCKET_MESSAGE_TYPE {\n const logContext = {\n file: MOBIUS_SOCKET_MAPPER_FILE,\n method: METHODS.DERIVE_MOBIUS_SOCKET_MESSAGE_TYPE,\n };\n\n if (!uri) {\n log.warn('Cannot derive Mobius socket message type: uri is empty', logContext);\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n }\n\n // --- Supplementary services: .../services/{service}/{action} ---\n if (uri.includes('/services')) {\n if (uri.includes('/callhold/hold')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD;\n }\n if (uri.includes('/callhold/resume')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME;\n }\n if (uri.includes('/calltransfer/commit')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER;\n }\n\n log.warn(\n `Unrecognized supplementary service uri - uri: ${uri}, httpMethod: ${httpMethodType}`,\n logContext\n );\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n }\n\n // --- Call sub-resource actions (checked before bare calls/{callId}) ---\n\n // Call media: .../calls/{callId}/media\n if (uri.includes('/calls/') && uri.includes('/media')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_MEDIA;\n }\n\n // Call status: .../calls/{callId}/status\n if (uri.includes('/calls/') && uri.includes('/status')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATUS;\n }\n\n // Call state or delete: .../calls/{callId} (PATCH → state, DELETE → delete)\n if (uri.match(/\\/calls\\/[^/]+$/)) {\n if (httpMethodType === HTTP_METHODS.PATCH) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATE;\n }\n if (httpMethodType === HTTP_METHODS.DELETE) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_DELETE;\n }\n\n log.warn(\n `Unrecognized httpMethod for calls/{callId} - uri: ${uri}, httpMethod: ${httpMethodType}`,\n logContext\n );\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n }\n\n // Call setup: .../devices/{deviceId}/call (singular)\n if (uri.endsWith('/call')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.CALL_SETUP;\n }\n\n // --- Device-level operations ---\n\n // Device keepalive: .../devices/{deviceId}/status (no /calls/ in path)\n if (uri.includes('/devices/') && uri.endsWith('/status')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_STATUS;\n }\n\n // Device registration: .../calling/web/device (singular)\n if (uri.endsWith('/device')) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER;\n }\n\n // Device unregister or get: .../devices/{deviceId} (DELETE → unregister, GET → device_get)\n if (uri.match(/\\/devices\\/[^/?]+$/) && !uri.includes('/calls')) {\n if (httpMethodType === HTTP_METHODS.DELETE) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNREGISTER;\n }\n if (httpMethodType === HTTP_METHODS.GET) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_GET;\n }\n\n log.warn(\n `Unrecognized httpMethod for devices/{deviceId} - uri: ${uri}, httpMethod: ${httpMethodType}`,\n logContext\n );\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n }\n\n // Device list: .../devices or .../devices?userid=...\n if (uri.includes('/devices') && !uri.match(/\\/devices\\/[^/?]+/)) {\n return MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_LIST;\n }\n\n log.warn(\n `Unrecognized uri pattern for Mobius socket - uri: ${uri}, httpMethod: ${httpMethodType}`,\n logContext\n );\n\n return MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN;\n}\n\nexport const isSupplementaryServiceMessageType = (type: MOBIUS_SOCKET_MESSAGE_TYPE): boolean =>\n [\n MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD,\n MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME,\n MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER,\n ].includes(type);\n"],"mappings":"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","ignoreList":[]}
@@ -23,8 +23,10 @@ var _mobiusSocketMapper = require("./mobiusSocketMapper");
23
23
  var _constants = require("./constants");
24
24
  var _wsFeatureFlag = require("./wsFeatureFlag");
25
25
  var _constants2 = require("../constants");
26
+ var _Metrics = require("../../Metrics");
27
+ var _types = require("../../Metrics/types");
26
28
  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; }
27
- 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; } // @ts-ignore - JS module without type declarations
29
+ 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; }
28
30
  /**
29
31
  * Converts a MobiusSocketResponse into the WebexRequestPayload shape that
30
32
  * all callers (registration, call, keepalive error-handlers) expect.
@@ -71,12 +73,20 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
71
73
  (0, _defineProperty2.default)(this, "webex", void 0);
72
74
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
75
  (0, _defineProperty2.default)(this, "mobiusSocket", void 0);
76
+ (0, _defineProperty2.default)(this, "metricManager", void 0);
77
+ var logContext = {
78
+ file: _constants2.REQUEST_FILE,
79
+ method: _constants2.METHODS.CONSTRUCTOR
80
+ };
74
81
  if (!config.webex) {
82
+ _Logger.default.error('APIRequest instantiation failed: WebexSDK instance is required', logContext);
75
83
  throw new Error('WebexSDK instance is required');
76
84
  }
77
85
  this.webex = config.webex;
78
86
  this.isMobiusSocketEnabled = (0, _wsFeatureFlag.isMobiusWssEnabled)(config.webex) || false;
79
87
  this.mobiusSocket = (0, _mobiusSocket.getMobiusSocketInstance)(this.webex);
88
+ this.metricManager = (0, _Metrics.getMetricManager)(this.webex);
89
+ _Logger.default.info("APIRequest initialized with transport: ".concat(this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'), logContext);
80
90
  }
81
91
 
82
92
  /**
@@ -100,7 +110,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
100
110
  key: "connectToMobiusSocket",
101
111
  value: (function () {
102
112
  var _connectToMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(wssUrl) {
103
- var logContext, _t;
113
+ var logContext, _this$metricManager, _this$metricManager2, _t;
104
114
  return _regenerator.default.wrap(function (_context) {
105
115
  while (1) switch (_context.prev = _context.next) {
106
116
  case 0:
@@ -121,11 +131,13 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
121
131
  return this.mobiusSocket.connect(wssUrl);
122
132
  case 3:
123
133
  _Logger.default.log('Mobius WebSocket connected successfully', logContext);
134
+ (_this$metricManager = this.metricManager) === null || _this$metricManager === void 0 ? void 0 : _this$metricManager.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.CONNECT, _types.METRIC_TYPE.BEHAVIORAL, wssUrl);
124
135
  return _context.abrupt("return", wssUrl);
125
136
  case 4:
126
137
  _context.prev = 4;
127
138
  _t = _context["catch"](2);
128
139
  _Logger.default.warn("Mobius WebSocket connection failed: ".concat(String(_t)), logContext);
140
+ (_this$metricManager2 = this.metricManager) === null || _this$metricManager2 === void 0 ? void 0 : _this$metricManager2.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types.MOBIUS_SOCKET_ACTION.CONNECT, _types.METRIC_TYPE.BEHAVIORAL, wssUrl, undefined, String(_t));
129
141
  throw normalizeWsError(_t);
130
142
  case 5:
131
143
  case "end":
@@ -146,19 +158,21 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
146
158
  key: "disconnectFromMobiusSocket",
147
159
  value: (function () {
148
160
  var _disconnectFromMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
149
- var logContext, _t2;
161
+ var logContext, _this$metricManager3, _this$metricManager4, _t2;
150
162
  return _regenerator.default.wrap(function (_context2) {
151
163
  while (1) switch (_context2.prev = _context2.next) {
152
164
  case 0:
153
165
  logContext = {
154
166
  file: _constants2.REQUEST_FILE,
155
- method: 'disconnectFromMobiusSocket'
167
+ method: _constants2.METHODS.DISCONNECT_FROM_MOBIUS_SOCKET
156
168
  };
169
+ _Logger.default.info('Disconnecting from Mobius WebSocket', logContext);
157
170
  _context2.prev = 1;
158
171
  _context2.next = 2;
159
172
  return this.mobiusSocket.disconnect(options);
160
173
  case 2:
161
174
  _Logger.default.log('Mobius WebSocket disconnected successfully', logContext);
175
+ (_this$metricManager3 = this.metricManager) === null || _this$metricManager3 === void 0 ? void 0 : _this$metricManager3.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.DISCONNECT, _types.METRIC_TYPE.BEHAVIORAL);
162
176
  _context2.next = 4;
163
177
  break;
164
178
  case 3:
@@ -166,6 +180,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
166
180
  _t2 = _context2["catch"](1);
167
181
  // silent error - no need to throw an error
168
182
  _Logger.default.warn("Mobius WebSocket disconnection failed: ".concat(String(_t2)), logContext);
183
+ (_this$metricManager4 = this.metricManager) === null || _this$metricManager4 === void 0 ? void 0 : _this$metricManager4.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types.MOBIUS_SOCKET_ACTION.DISCONNECT, _types.METRIC_TYPE.BEHAVIORAL, undefined, undefined, String(_t2));
169
184
  case 4:
170
185
  case "end":
171
186
  return _context2.stop();
@@ -189,10 +204,15 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
189
204
  key: "makeRequest",
190
205
  value: (function () {
191
206
  var _makeRequest = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(request) {
192
- var trackingId, socketType, isSupplementaryService, wsResponse, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0, _t1, _t10, _t11, _t12, _t13, _t14;
207
+ var logContext, trackingId, socketType, isSupplementaryService, wsResponse, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0, _t1, _t10, _t11, _t12, _t13, _t14;
193
208
  return _regenerator.default.wrap(function (_context3) {
194
209
  while (1) switch (_context3.prev = _context3.next) {
195
210
  case 0:
211
+ logContext = {
212
+ file: _constants2.REQUEST_FILE,
213
+ method: _constants2.METHODS.MAKE_REQUEST
214
+ };
215
+ _Logger.default.info("Dispatching request via ".concat(this.isMobiusSocketEnabled ? 'WSS' : 'HTTP', " "), logContext);
196
216
  if (!this.isMobiusSocketEnabled) {
197
217
  _context3.next = 8;
198
218
  break;
@@ -203,6 +223,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
203
223
  _context3.next = 1;
204
224
  break;
205
225
  }
226
+ _Logger.default.error("Unknown Mobius Socket message type for uri: ".concat(request.uri, ", httpMethod: ").concat(request.method), logContext);
206
227
  throw new Error("Unknown Mobius Socket message type: ".concat(socketType));
207
228
  case 1:
208
229
  isSupplementaryService = (0, _mobiusSocketMapper.isSupplementaryServiceMessageType)(socketType);
@@ -247,10 +268,12 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
247
268
  });
248
269
  case 6:
249
270
  wsResponse = _context3.sent;
271
+ _Logger.default.log("WSS request succeeded - socketType: ".concat(socketType, ", trackingId: ").concat(trackingId, ", statusCode: ").concat(wsResponse.statusCode), logContext);
250
272
  return _context3.abrupt("return", normalizeWsResponse(wsResponse));
251
273
  case 7:
252
274
  _context3.prev = 7;
253
275
  _t14 = _context3["catch"](2);
276
+ _Logger.default.error("WSS request failed - socketType: ".concat(socketType, ", trackingId: ").concat(trackingId, ", error: ").concat(String(_t14)), logContext);
254
277
  throw normalizeWsError(_t14);
255
278
  case 8:
256
279
  return _context3.abrupt("return", this.webex.request(request));
@@ -268,14 +291,32 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
268
291
  }, {
269
292
  key: "registerMobiusSocketListener",
270
293
  value: function registerMobiusSocketListener(cb) {
294
+ var _this$metricManager5;
295
+ var logContext = {
296
+ file: _constants2.REQUEST_FILE,
297
+ method: _constants2.METHODS.REGISTER_MOBIUS_SOCKET_LISTENER
298
+ };
299
+ _Logger.default.info('Attaching Mobius async event listener', logContext);
271
300
  this.mobiusSocket.on('event:async_event', function (data) {
301
+ var _data$data$eventType, _data$data;
302
+ _Logger.default.trace("Mobius async event received - eventType: ".concat((_data$data$eventType = data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.eventType) !== null && _data$data$eventType !== void 0 ? _data$data$eventType : 'unknown'), logContext);
272
303
  cb(data);
273
304
  });
305
+ _Logger.default.log('Mobius async event listener attached', logContext);
306
+ (_this$metricManager5 = this.metricManager) === null || _this$metricManager5 === void 0 ? void 0 : _this$metricManager5.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED, _types.METRIC_TYPE.BEHAVIORAL);
274
307
  }
275
308
  }, {
276
309
  key: "unregisterMobiusSocketListener",
277
310
  value: function unregisterMobiusSocketListener() {
311
+ var _this$metricManager6;
312
+ var logContext = {
313
+ file: _constants2.REQUEST_FILE,
314
+ method: _constants2.METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER
315
+ };
316
+ _Logger.default.info('Detaching Mobius async event listener', logContext);
278
317
  this.mobiusSocket.off('event:async_event');
318
+ _Logger.default.log('Mobius async event listener detached', logContext);
319
+ (_this$metricManager6 = this.metricManager) === null || _this$metricManager6 === void 0 ? void 0 : _this$metricManager6.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED, _types.METRIC_TYPE.BEHAVIORAL);
279
320
  }
280
321
  }], [{
281
322
  key: "getInstance",
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","require","_mobiusSocket","_Logger","_interopRequireDefault","_mobiusSocketMapper","_constants","_wsFeatureFlag","_constants2","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","normalizeWsResponse","wsResponse","_ref","_ref2","statusCode","body","data","undefined","headers","trackingid","trackingId","metadata","normalizeWsError","err","_ref3","_wsErr$response","_ref4","_wsErr$trackingId","_wsErr$response2","_ref5","_wsErr$response3","wsErr","response","APIRequest","exports","config","_classCallCheck2","webex","Error","isMobiusSocketEnabled","isMobiusWssEnabled","mobiusSocket","getMobiusSocketInstance","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","logContext","_t","wrap","_context","prev","next","file","REQUEST_FILE","method","METHODS","CONNECT_TO_MOBIUS_SOCKET","isConnected","log","info","abrupt","getConnectedWebSocketUrl","connect","warn","concat","String","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_t2","_context2","disconnect","disconnectFromMobiusSocket","_x2","_makeRequest","_callee3","request","socketType","isSupplementaryService","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_t12","_t13","_t14","_context3","uuid","deriveMobiusSocketMessageType","uri","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","isSupplementaryServiceMessageType","CALLING_USER_AGENT","credentials","getUserToken","sent","call","userAgent","authorization","sendWssRequest","type","makeRequest","_x3","registerMobiusSocketListener","cb","on","unregisterMobiusSocketListener","off","getInstance","instance","resetInstance","createAPIRequest"],"sources":["request.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\n// @ts-ignore - JS module without type declarations\nimport {getMobiusSocketInstance} from '../../mobius-socket';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {APIRequestConfig, APIRequestOptions, MobiusAsyncEvent, MobiusSocketResponse} from './types';\nimport {\n deriveMobiusSocketMessageType,\n isSupplementaryServiceMessageType,\n} from './mobiusSocketMapper';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {CALLING_USER_AGENT, METHODS, REQUEST_FILE} from '../constants';\n\n/**\n * Converts a MobiusSocketResponse into the WebexRequestPayload shape that\n * all callers (registration, call, keepalive error-handlers) expect.\n */\nfunction normalizeWsResponse(wsResponse: MobiusSocketResponse): WebexRequestPayload {\n return {\n statusCode: wsResponse.statusCode,\n body: (wsResponse.data as object) ?? undefined,\n headers: {\n trackingid: wsResponse.trackingId,\n ...((wsResponse.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * Converts a MobiusSocketResponseError rejection into a WebexRequestPayload-shaped\n * error so handleRegistrationErrors / handleCallErrors can process it identically.\n */\nfunction normalizeWsError(err: unknown): WebexRequestPayload {\n const wsErr = err as {\n statusCode?: number;\n statusMessage?: string;\n response?: MobiusSocketResponse;\n trackingId?: string;\n };\n\n return {\n statusCode: wsErr.statusCode,\n body: (wsErr.response?.data as object) ?? undefined,\n headers: {\n trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',\n ...((wsErr.response?.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * APIRequest routes Mobius traffic over HTTP (`webex.request`) or the Mobius WebSocket path\n * (`mobiusSocketRequest`). `isMobiusSocketEnabled` is set in the constructor from WDM\n * `webrtc-calling-over-ws` and/or SDK config (interim until WDM is fully in prod).\n */\nexport class APIRequest {\n // eslint-disable-next-line no-use-before-define\n private static instance: APIRequest | undefined;\n private isMobiusSocketEnabled: boolean;\n private webex: WebexSDK;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n\n static getInstance(config: APIRequestConfig): APIRequest {\n if (!APIRequest.instance) {\n APIRequest.instance = new APIRequest(config);\n }\n\n return APIRequest.instance;\n }\n\n static resetInstance(): void {\n APIRequest.instance = undefined;\n }\n\n /**\n * @param config - Webex instance plus optional SDK Mobius-socket override\n */\n constructor(config: APIRequestConfig) {\n if (!config.webex) {\n throw new Error('WebexSDK instance is required');\n }\n\n this.webex = config.webex;\n this.isMobiusSocketEnabled = isMobiusWssEnabled(config.webex) || false;\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n }\n\n /**\n * Whether the Mobius WebSocket transport is active for this instance.\n */\n public isSocketEnabled(): boolean {\n return this.isMobiusSocketEnabled;\n }\n\n /**\n * Ensures the Mobius WebSocket is connected before sending API requests.\n * If the socket is already connected, resolves immediately. Otherwise,\n * initiates a new connection to the provided WebSocket URL.\n * On failure, throws a normalized WebexRequestPayload-shaped error.\n *\n * @param wssUrl - The Mobius WebSocket URL to connect to.\n */\n public async connectToMobiusSocket(wssUrl: string): Promise<string | undefined> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n if (this.mobiusSocket.isConnected()) {\n log.info('Mobius WebSocket already connected', logContext);\n\n return this.mobiusSocket.getConnectedWebSocketUrl();\n }\n\n log.info('Mobius WebSocket not connected, initiating connection', logContext);\n\n try {\n await this.mobiusSocket.connect(wssUrl);\n log.log('Mobius WebSocket connected successfully', logContext);\n\n return wssUrl;\n } catch (err) {\n log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);\n throw normalizeWsError(err);\n }\n }\n\n /**\n * Disconnects the default session from the Mobius WebSocket.\n */\n public async disconnectFromMobiusSocket(options?: {code: number; reason: string}): Promise<void> {\n const logContext = {\n file: REQUEST_FILE,\n method: 'disconnectFromMobiusSocket',\n };\n\n try {\n await this.mobiusSocket.disconnect(options);\n log.log('Mobius WebSocket disconnected successfully', logContext);\n } catch (err) {\n // silent error - no need to throw an error\n log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);\n }\n }\n\n /**\n * Makes a request using HTTP or WebSocket transport per the flag set in the constructor.\n * When using WebSocket, the response is normalized to the WebexRequestPayload shape\n * so callers do not need to know which transport was used.\n * @param request - Request options (uri, method, body, headers, service)\n * @returns Promise resolving to WebexRequestPayload\n */\n public async makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload> {\n if (this.isMobiusSocketEnabled) {\n const trackingId = `webex-js-sdk_${uuid()}`;\n const socketType = deriveMobiusSocketMessageType(request.uri, request.method);\n\n if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {\n throw new Error(`Unknown Mobius Socket message type: ${socketType}`);\n }\n\n const isSupplementaryService = isSupplementaryServiceMessageType(socketType);\n\n try {\n const wsResponse: MobiusSocketResponse = await this.mobiusSocket.sendWssRequest({\n type: socketType,\n trackingId,\n metadata: {\n ...request.headers,\n userAgent: CALLING_USER_AGENT,\n authorization: `${\n (isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''\n }`,\n },\n data: request.body,\n });\n\n return normalizeWsResponse(wsResponse);\n } catch (err) {\n throw normalizeWsError(err);\n }\n }\n\n return this.webex.request(request) as Promise<WebexRequestPayload>;\n }\n\n public registerMobiusSocketListener(cb: (data?: MobiusAsyncEvent) => void): void {\n this.mobiusSocket.on('event:async_event', (data: MobiusAsyncEvent) => {\n cb(data);\n });\n }\n\n public unregisterMobiusSocketListener(): void {\n this.mobiusSocket.off('event:async_event');\n }\n}\n\n/**\n * Factory function to create a singleton APIRequest instance\n * @param config - Configuration object for APIRequest\n * @returns APIRequest instance\n */\nexport const createAPIRequest = (config: APIRequestConfig): APIRequest =>\n APIRequest.getInstance(config);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","require","_mobiusSocket","_Logger","_interopRequireDefault","_mobiusSocketMapper","_constants","_wsFeatureFlag","_constants2","_Metrics","_types","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","normalizeWsResponse","wsResponse","_ref","_ref2","statusCode","body","data","undefined","headers","trackingid","trackingId","metadata","normalizeWsError","err","_ref3","_wsErr$response","_ref4","_wsErr$trackingId","_wsErr$response2","_ref5","_wsErr$response3","wsErr","response","APIRequest","exports","config","_classCallCheck2","logContext","file","REQUEST_FILE","method","METHODS","CONSTRUCTOR","webex","log","error","Error","isMobiusSocketEnabled","isMobiusWssEnabled","mobiusSocket","getMobiusSocketInstance","metricManager","getMetricManager","info","concat","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","_this$metricManager","_this$metricManager2","_t","wrap","_context","prev","next","CONNECT_TO_MOBIUS_SOCKET","isConnected","abrupt","getConnectedWebSocketUrl","connect","submitMobiusSocketMetric","METRIC_EVENT","MOBIUS_SOCKET","MOBIUS_SOCKET_ACTION","CONNECT","METRIC_TYPE","BEHAVIORAL","warn","String","MOBIUS_SOCKET_ERROR","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_this$metricManager3","_this$metricManager4","_t2","_context2","DISCONNECT_FROM_MOBIUS_SOCKET","disconnect","DISCONNECT","disconnectFromMobiusSocket","_x2","_makeRequest","_callee3","request","socketType","isSupplementaryService","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_t12","_t13","_t14","_context3","MAKE_REQUEST","uuid","deriveMobiusSocketMessageType","uri","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","isSupplementaryServiceMessageType","CALLING_USER_AGENT","credentials","getUserToken","sent","call","userAgent","authorization","sendWssRequest","type","makeRequest","_x3","registerMobiusSocketListener","cb","_this$metricManager5","REGISTER_MOBIUS_SOCKET_LISTENER","on","_data$data$eventType","_data$data","trace","eventType","LISTENER_REGISTERED","unregisterMobiusSocketListener","_this$metricManager6","UNREGISTER_MOBIUS_SOCKET_LISTENER","off","LISTENER_UNREGISTERED","getInstance","instance","resetInstance","createAPIRequest"],"sources":["request.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {getMobiusSocketInstance} from '../../mobius-socket';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {APIRequestConfig, APIRequestOptions, MobiusAsyncEvent, MobiusSocketResponse} from './types';\nimport {\n deriveMobiusSocketMessageType,\n isSupplementaryServiceMessageType,\n} from './mobiusSocketMapper';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {CALLING_USER_AGENT, METHODS, REQUEST_FILE} from '../constants';\nimport {getMetricManager} from '../../Metrics';\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, MOBIUS_SOCKET_ACTION} from '../../Metrics/types';\n\n/**\n * Converts a MobiusSocketResponse into the WebexRequestPayload shape that\n * all callers (registration, call, keepalive error-handlers) expect.\n */\nfunction normalizeWsResponse(wsResponse: MobiusSocketResponse): WebexRequestPayload {\n return {\n statusCode: wsResponse.statusCode,\n body: (wsResponse.data as object) ?? undefined,\n headers: {\n trackingid: wsResponse.trackingId,\n ...((wsResponse.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * Converts a MobiusSocketResponseError rejection into a WebexRequestPayload-shaped\n * error so handleRegistrationErrors / handleCallErrors can process it identically.\n */\nfunction normalizeWsError(err: unknown): WebexRequestPayload {\n const wsErr = err as {\n statusCode?: number;\n statusMessage?: string;\n response?: MobiusSocketResponse;\n trackingId?: string;\n };\n\n return {\n statusCode: wsErr.statusCode,\n body: (wsErr.response?.data as object) ?? undefined,\n headers: {\n trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',\n ...((wsErr.response?.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * APIRequest routes Mobius traffic over HTTP (`webex.request`) or the Mobius WebSocket path\n * (`mobiusSocketRequest`). `isMobiusSocketEnabled` is set in the constructor from WDM\n * `webrtc-calling-over-ws` and/or SDK config (interim until WDM is fully in prod).\n */\nexport class APIRequest {\n // eslint-disable-next-line no-use-before-define\n private static instance: APIRequest | undefined;\n private isMobiusSocketEnabled: boolean;\n private webex: WebexSDK;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n private metricManager: IMetricManager;\n\n static getInstance(config: APIRequestConfig): APIRequest {\n if (!APIRequest.instance) {\n APIRequest.instance = new APIRequest(config);\n }\n\n return APIRequest.instance;\n }\n\n static resetInstance(): void {\n APIRequest.instance = undefined;\n }\n\n /**\n * @param config - Webex instance plus optional SDK Mobius-socket override\n */\n constructor(config: APIRequestConfig) {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONSTRUCTOR,\n };\n\n if (!config.webex) {\n log.error('APIRequest instantiation failed: WebexSDK instance is required', logContext);\n throw new Error('WebexSDK instance is required');\n }\n\n this.webex = config.webex;\n this.isMobiusSocketEnabled = isMobiusWssEnabled(config.webex) || false;\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n this.metricManager = getMetricManager(this.webex);\n\n log.info(\n `APIRequest initialized with transport: ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'}`,\n logContext\n );\n }\n\n /**\n * Whether the Mobius WebSocket transport is active for this instance.\n */\n public isSocketEnabled(): boolean {\n return this.isMobiusSocketEnabled;\n }\n\n /**\n * Ensures the Mobius WebSocket is connected before sending API requests.\n * If the socket is already connected, resolves immediately. Otherwise,\n * initiates a new connection to the provided WebSocket URL.\n * On failure, throws a normalized WebexRequestPayload-shaped error.\n *\n * @param wssUrl - The Mobius WebSocket URL to connect to.\n */\n public async connectToMobiusSocket(wssUrl: string): Promise<string | undefined> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n if (this.mobiusSocket.isConnected()) {\n log.info('Mobius WebSocket already connected', logContext);\n\n return this.mobiusSocket.getConnectedWebSocketUrl();\n }\n\n log.info('Mobius WebSocket not connected, initiating connection', logContext);\n\n try {\n await this.mobiusSocket.connect(wssUrl);\n log.log('Mobius WebSocket connected successfully', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl\n );\n\n return wssUrl;\n } catch (err) {\n log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl,\n undefined,\n String(err)\n );\n\n throw normalizeWsError(err);\n }\n }\n\n /**\n * Disconnects the default session from the Mobius WebSocket.\n */\n public async disconnectFromMobiusSocket(options?: {code: number; reason: string}): Promise<void> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.DISCONNECT_FROM_MOBIUS_SOCKET,\n };\n\n log.info('Disconnecting from Mobius WebSocket', logContext);\n\n try {\n await this.mobiusSocket.disconnect(options);\n log.log('Mobius WebSocket disconnected successfully', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL\n );\n } catch (err) {\n // silent error - no need to throw an error\n log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n undefined,\n String(err)\n );\n }\n }\n\n /**\n * Makes a request using HTTP or WebSocket transport per the flag set in the constructor.\n * When using WebSocket, the response is normalized to the WebexRequestPayload shape\n * so callers do not need to know which transport was used.\n * @param request - Request options (uri, method, body, headers, service)\n * @returns Promise resolving to WebexRequestPayload\n */\n public async makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.MAKE_REQUEST,\n };\n log.info(`Dispatching request via ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'} `, logContext);\n\n if (this.isMobiusSocketEnabled) {\n const trackingId = `webex-js-sdk_${uuid()}`;\n const socketType = deriveMobiusSocketMessageType(request.uri, request.method);\n\n if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {\n log.error(\n `Unknown Mobius Socket message type for uri: ${request.uri}, httpMethod: ${request.method}`,\n logContext\n );\n throw new Error(`Unknown Mobius Socket message type: ${socketType}`);\n }\n\n const isSupplementaryService = isSupplementaryServiceMessageType(socketType);\n\n try {\n const wsResponse: MobiusSocketResponse = await this.mobiusSocket.sendWssRequest({\n type: socketType,\n trackingId,\n metadata: {\n ...request.headers,\n userAgent: CALLING_USER_AGENT,\n authorization: `${\n (isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''\n }`,\n },\n data: request.body,\n });\n\n log.log(\n `WSS request succeeded - socketType: ${socketType}, trackingId: ${trackingId}, statusCode: ${wsResponse.statusCode}`,\n logContext\n );\n\n return normalizeWsResponse(wsResponse);\n } catch (err) {\n log.error(\n `WSS request failed - socketType: ${socketType}, trackingId: ${trackingId}, error: ${String(\n err\n )}`,\n logContext\n );\n throw normalizeWsError(err);\n }\n }\n\n return this.webex.request(request) as Promise<WebexRequestPayload>;\n }\n\n public registerMobiusSocketListener(cb: (data?: MobiusAsyncEvent) => void): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Attaching Mobius async event listener', logContext);\n\n this.mobiusSocket.on('event:async_event', (data: MobiusAsyncEvent) => {\n log.trace(\n `Mobius async event received - eventType: ${data?.data?.eventType ?? 'unknown'}`,\n logContext\n );\n cb(data);\n });\n\n log.log('Mobius async event listener attached', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n }\n\n public unregisterMobiusSocketListener(): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Detaching Mobius async event listener', logContext);\n this.mobiusSocket.off('event:async_event');\n log.log('Mobius async event listener detached', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n }\n}\n\n/**\n * Factory function to create a singleton APIRequest instance\n * @param config - Configuration object for APIRequest\n * @returns APIRequest instance\n */\nexport const createAPIRequest = (config: APIRequestConfig): APIRequest =>\n APIRequest.getInstance(config);\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5
  _Object$defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.WEBRTC_CALLING_OVER_WS_FEATURE_KEY = void 0;
8
9
  exports.isMobiusWssEnabled = isMobiusWssEnabled;
10
+ var _Logger = _interopRequireDefault(require("../../Logger"));
11
+ var _constants = require("../constants");
9
12
  /** WDM device-settings key for routing Mobius traffic over WebSocket. */
10
13
  var WEBRTC_CALLING_OVER_WS_FEATURE_KEY = exports.WEBRTC_CALLING_OVER_WS_FEATURE_KEY = 'webrtc-calling-over-ws-CALL-219562';
11
14
  /**
@@ -15,6 +18,11 @@ var WEBRTC_CALLING_OVER_WS_FEATURE_KEY = exports.WEBRTC_CALLING_OVER_WS_FEATURE_
15
18
  */
16
19
  function isMobiusWssEnabled(webex) {
17
20
  var _webex$internal, _webex$internal$devic, _webex$internal$devic2, _webex$internal$devic3, _webex$internal$devic4;
18
- return ((_webex$internal = webex.internal) === null || _webex$internal === void 0 ? void 0 : (_webex$internal$devic = _webex$internal.device) === null || _webex$internal$devic === void 0 ? void 0 : (_webex$internal$devic2 = _webex$internal$devic.features) === null || _webex$internal$devic2 === void 0 ? void 0 : (_webex$internal$devic3 = _webex$internal$devic2.developer) === null || _webex$internal$devic3 === void 0 ? void 0 : (_webex$internal$devic4 = _webex$internal$devic3.get(WEBRTC_CALLING_OVER_WS_FEATURE_KEY)) === null || _webex$internal$devic4 === void 0 ? void 0 : _webex$internal$devic4.value) === true;
21
+ var enabled = ((_webex$internal = webex.internal) === null || _webex$internal === void 0 ? void 0 : (_webex$internal$devic = _webex$internal.device) === null || _webex$internal$devic === void 0 ? void 0 : (_webex$internal$devic2 = _webex$internal$devic.features) === null || _webex$internal$devic2 === void 0 ? void 0 : (_webex$internal$devic3 = _webex$internal$devic2.developer) === null || _webex$internal$devic3 === void 0 ? void 0 : (_webex$internal$devic4 = _webex$internal$devic3.get(WEBRTC_CALLING_OVER_WS_FEATURE_KEY)) === null || _webex$internal$devic4 === void 0 ? void 0 : _webex$internal$devic4.value) === true;
22
+ _Logger.default.trace("Mobius WSS feature flag '".concat(WEBRTC_CALLING_OVER_WS_FEATURE_KEY, "' resolved to: ").concat(enabled), {
23
+ file: _constants.WS_FEATURE_FLAG_FILE,
24
+ method: _constants.METHODS.IS_MOBIUS_WSS_ENABLED
25
+ });
26
+ return enabled;
19
27
  }
20
28
  //# sourceMappingURL=wsFeatureFlag.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WEBRTC_CALLING_OVER_WS_FEATURE_KEY","exports","isMobiusWssEnabled","webex","_webex$internal","_webex$internal$devic","_webex$internal$devic2","_webex$internal$devic3","_webex$internal$devic4","internal","device","features","developer","get","value"],"sources":["wsFeatureFlag.ts"],"sourcesContent":["import {WebexSDK} from '../../SDKConnector/types';\n\n/** WDM device-settings key for routing Mobius traffic over WebSocket. */\nexport const WEBRTC_CALLING_OVER_WS_FEATURE_KEY = 'webrtc-calling-over-ws-CALL-219562';\n/**\n * Whether Webex Calling should use the Mobius WebSocket transport for API requests.\n * Reads WDM `webex.internal.device.settings['webrtc-calling-over-ws'].value`; must be\n * strictly `true` to enable WebSocket—otherwise use HTTP.\n */\nexport function isMobiusWssEnabled(webex: WebexSDK): boolean {\n return (\n webex.internal?.device?.features?.developer?.get(WEBRTC_CALLING_OVER_WS_FEATURE_KEY)?.value ===\n true\n );\n}\n"],"mappings":";;;;;;;;AAEA;AACO,IAAMA,kCAAkC,GAAAC,OAAA,CAAAD,kCAAA,GAAG,oCAAoC;AACtF;AACA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAACC,KAAe,EAAW;EAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAC3D,OACE,EAAAJ,eAAA,GAAAD,KAAK,CAACM,QAAQ,cAAAL,eAAA,wBAAAC,qBAAA,GAAdD,eAAA,CAAgBM,MAAM,cAAAL,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBM,QAAQ,cAAAL,sBAAA,wBAAAC,sBAAA,GAAhCD,sBAAA,CAAkCM,SAAS,cAAAL,sBAAA,wBAAAC,sBAAA,GAA3CD,sBAAA,CAA6CM,GAAG,CAACb,kCAAkC,CAAC,cAAAQ,sBAAA,uBAApFA,sBAAA,CAAsFM,KAAK,MAC3F,IAAI;AAER","ignoreList":[]}
1
+ {"version":3,"names":["_Logger","_interopRequireDefault","require","_constants","WEBRTC_CALLING_OVER_WS_FEATURE_KEY","exports","isMobiusWssEnabled","webex","_webex$internal","_webex$internal$devic","_webex$internal$devic2","_webex$internal$devic3","_webex$internal$devic4","enabled","internal","device","features","developer","get","value","log","trace","concat","file","WS_FEATURE_FLAG_FILE","method","METHODS","IS_MOBIUS_WSS_ENABLED"],"sources":["wsFeatureFlag.ts"],"sourcesContent":["import {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {METHODS, WS_FEATURE_FLAG_FILE} from '../constants';\n\n/** WDM device-settings key for routing Mobius traffic over WebSocket. */\nexport const WEBRTC_CALLING_OVER_WS_FEATURE_KEY = 'webrtc-calling-over-ws-CALL-219562';\n/**\n * Whether Webex Calling should use the Mobius WebSocket transport for API requests.\n * Reads WDM `webex.internal.device.settings['webrtc-calling-over-ws'].value`; must be\n * strictly `true` to enable WebSocket—otherwise use HTTP.\n */\nexport function isMobiusWssEnabled(webex: WebexSDK): boolean {\n const enabled =\n webex.internal?.device?.features?.developer?.get(WEBRTC_CALLING_OVER_WS_FEATURE_KEY)?.value ===\n true;\n\n log.trace(\n `Mobius WSS feature flag '${WEBRTC_CALLING_OVER_WS_FEATURE_KEY}' resolved to: ${enabled}`,\n {\n file: WS_FEATURE_FLAG_FILE,\n method: METHODS.IS_MOBIUS_WSS_ENABLED,\n }\n );\n\n return enabled;\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA;AACO,IAAME,kCAAkC,GAAAC,OAAA,CAAAD,kCAAA,GAAG,oCAAoC;AACtF;AACA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAACC,KAAe,EAAW;EAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAC3D,IAAMC,OAAO,GACX,EAAAL,eAAA,GAAAD,KAAK,CAACO,QAAQ,cAAAN,eAAA,wBAAAC,qBAAA,GAAdD,eAAA,CAAgBO,MAAM,cAAAN,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBO,QAAQ,cAAAN,sBAAA,wBAAAC,sBAAA,GAAhCD,sBAAA,CAAkCO,SAAS,cAAAN,sBAAA,wBAAAC,sBAAA,GAA3CD,sBAAA,CAA6CO,GAAG,CAACd,kCAAkC,CAAC,cAAAQ,sBAAA,uBAApFA,sBAAA,CAAsFO,KAAK,MAC3F,IAAI;EAENC,eAAG,CAACC,KAAK,6BAAAC,MAAA,CACqBlB,kCAAkC,qBAAAkB,MAAA,CAAkBT,OAAO,GACvF;IACEU,IAAI,EAAEC,+BAAoB;IAC1BC,MAAM,EAAEC,kBAAO,CAACC;EAClB,CACF,CAAC;EAED,OAAOd,OAAO;AAChB","ignoreList":[]}
@@ -518,6 +518,66 @@ var MetricManager = /*#__PURE__*/function () {
518
518
  this.webex.internal.metrics.submitClientMetrics(name, data);
519
519
  }
520
520
  }
521
+
522
+ /**
523
+ * @param name - Name of the metric being submitted (MOBIUS_SOCKET or MOBIUS_SOCKET_ERROR).
524
+ * @param metricAction - Type of Mobius WebSocket action.
525
+ * @param type - Type of metric.
526
+ * @param wssUrl - The Mobius WebSocket URL involved in the action.
527
+ * @param trackingId - Tracking ID associated with the operation, if any.
528
+ * @param error - Error string used to populate error details (for MOBIUS_SOCKET_ERROR).
529
+ * @param eventType - Type of async event received over the socket, if applicable.
530
+ */
531
+ }, {
532
+ key: "submitMobiusSocketMetric",
533
+ value: function submitMobiusSocketMetric(name, metricAction, type, wssUrl, trackingId, error, eventType) {
534
+ var _this$deviceInfo39, _this$deviceInfo39$de, _this$deviceInfo40, _this$deviceInfo40$de, _this$deviceInfo41, _this$deviceInfo41$de;
535
+ var data;
536
+ var commonTags = {
537
+ action: metricAction,
538
+ device_id: (_this$deviceInfo39 = this.deviceInfo) === null || _this$deviceInfo39 === void 0 ? void 0 : (_this$deviceInfo39$de = _this$deviceInfo39.device) === null || _this$deviceInfo39$de === void 0 ? void 0 : _this$deviceInfo39$de.deviceId,
539
+ service_indicator: this.serviceIndicator
540
+ };
541
+ var commonFields = {
542
+ device_url: (_this$deviceInfo40 = this.deviceInfo) === null || _this$deviceInfo40 === void 0 ? void 0 : (_this$deviceInfo40$de = _this$deviceInfo40.device) === null || _this$deviceInfo40$de === void 0 ? void 0 : _this$deviceInfo40$de.clientDeviceUri,
543
+ mobius_url: (_this$deviceInfo41 = this.deviceInfo) === null || _this$deviceInfo41 === void 0 ? void 0 : (_this$deviceInfo41$de = _this$deviceInfo41.device) === null || _this$deviceInfo41$de === void 0 ? void 0 : _this$deviceInfo41$de.uri,
544
+ calling_sdk_version: process.env.CALLING_SDK_VERSION || _constants.VERSION,
545
+ wss_url: wssUrl,
546
+ tracking_id: trackingId,
547
+ event_type: eventType
548
+ };
549
+ switch (name) {
550
+ case _types2.METRIC_EVENT.MOBIUS_SOCKET:
551
+ {
552
+ data = {
553
+ tags: commonTags,
554
+ fields: commonFields,
555
+ type: type
556
+ };
557
+ break;
558
+ }
559
+ case _types2.METRIC_EVENT.MOBIUS_SOCKET_ERROR:
560
+ {
561
+ data = {
562
+ tags: commonTags,
563
+ fields: _objectSpread(_objectSpread({}, commonFields), {}, {
564
+ error: error
565
+ }),
566
+ type: type
567
+ };
568
+ break;
569
+ }
570
+ default:
571
+ _Logger.default.warn('Invalid metric name received. Rejecting request to submit metric.', {
572
+ file: _constants.METRIC_FILE,
573
+ method: 'submitMobiusSocketMetric'
574
+ });
575
+ break;
576
+ }
577
+ if (data) {
578
+ this.webex.internal.metrics.submitClientMetrics(name, data);
579
+ }
580
+ }
521
581
  }]);
522
582
  }();
523
583
  /**