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

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 (31) hide show
  1. package/dist/CallingClient/CallingClient.js +21 -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 +136 -85
  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 +32 -3
  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/module/CallingClient/CallingClient.js +13 -18
  18. package/dist/module/CallingClient/constants.js +12 -0
  19. package/dist/module/CallingClient/registration/register.js +71 -33
  20. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +11 -0
  21. package/dist/module/CallingClient/utils/request.js +29 -1
  22. package/dist/module/CallingClient/utils/wsFeatureFlag.js +9 -2
  23. package/dist/types/CallingClient/CallingClient.d.ts +0 -1
  24. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  25. package/dist/types/CallingClient/constants.d.ts +12 -0
  26. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  27. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  28. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -1
  29. package/dist/types/CallingClient/utils/request.d.ts.map +1 -1
  30. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -1
  31. 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":[]}
@@ -24,7 +24,7 @@ var _constants = require("./constants");
24
24
  var _wsFeatureFlag = require("./wsFeatureFlag");
25
25
  var _constants2 = require("../constants");
26
26
  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
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; }
28
28
  /**
29
29
  * Converts a MobiusSocketResponse into the WebexRequestPayload shape that
30
30
  * all callers (registration, call, keepalive error-handlers) expect.
@@ -71,12 +71,18 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
71
71
  (0, _defineProperty2.default)(this, "webex", void 0);
72
72
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
73
73
  (0, _defineProperty2.default)(this, "mobiusSocket", void 0);
74
+ var logContext = {
75
+ file: _constants2.REQUEST_FILE,
76
+ method: _constants2.METHODS.CONSTRUCTOR
77
+ };
74
78
  if (!config.webex) {
79
+ _Logger.default.error('APIRequest instantiation failed: WebexSDK instance is required', logContext);
75
80
  throw new Error('WebexSDK instance is required');
76
81
  }
77
82
  this.webex = config.webex;
78
83
  this.isMobiusSocketEnabled = (0, _wsFeatureFlag.isMobiusWssEnabled)(config.webex) || false;
79
84
  this.mobiusSocket = (0, _mobiusSocket.getMobiusSocketInstance)(this.webex);
85
+ _Logger.default.info("APIRequest initialized with transport: ".concat(this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'), logContext);
80
86
  }
81
87
 
82
88
  /**
@@ -152,8 +158,9 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
152
158
  case 0:
153
159
  logContext = {
154
160
  file: _constants2.REQUEST_FILE,
155
- method: 'disconnectFromMobiusSocket'
161
+ method: _constants2.METHODS.DISCONNECT_FROM_MOBIUS_SOCKET
156
162
  };
163
+ _Logger.default.info('Disconnecting from Mobius WebSocket', logContext);
157
164
  _context2.prev = 1;
158
165
  _context2.next = 2;
159
166
  return this.mobiusSocket.disconnect(options);
@@ -189,10 +196,15 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
189
196
  key: "makeRequest",
190
197
  value: (function () {
191
198
  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;
199
+ var logContext, trackingId, socketType, isSupplementaryService, wsResponse, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t0, _t1, _t10, _t11, _t12, _t13, _t14;
193
200
  return _regenerator.default.wrap(function (_context3) {
194
201
  while (1) switch (_context3.prev = _context3.next) {
195
202
  case 0:
203
+ logContext = {
204
+ file: _constants2.REQUEST_FILE,
205
+ method: _constants2.METHODS.MAKE_REQUEST
206
+ };
207
+ _Logger.default.info("Dispatching request via ".concat(this.isMobiusSocketEnabled ? 'WSS' : 'HTTP', " "), logContext);
196
208
  if (!this.isMobiusSocketEnabled) {
197
209
  _context3.next = 8;
198
210
  break;
@@ -203,6 +215,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
203
215
  _context3.next = 1;
204
216
  break;
205
217
  }
218
+ _Logger.default.error("Unknown Mobius Socket message type for uri: ".concat(request.uri, ", httpMethod: ").concat(request.method), logContext);
206
219
  throw new Error("Unknown Mobius Socket message type: ".concat(socketType));
207
220
  case 1:
208
221
  isSupplementaryService = (0, _mobiusSocketMapper.isSupplementaryServiceMessageType)(socketType);
@@ -247,10 +260,12 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
247
260
  });
248
261
  case 6:
249
262
  wsResponse = _context3.sent;
263
+ _Logger.default.log("WSS request succeeded - socketType: ".concat(socketType, ", trackingId: ").concat(trackingId, ", statusCode: ").concat(wsResponse.statusCode), logContext);
250
264
  return _context3.abrupt("return", normalizeWsResponse(wsResponse));
251
265
  case 7:
252
266
  _context3.prev = 7;
253
267
  _t14 = _context3["catch"](2);
268
+ _Logger.default.error("WSS request failed - socketType: ".concat(socketType, ", trackingId: ").concat(trackingId, ", error: ").concat(String(_t14)), logContext);
254
269
  throw normalizeWsError(_t14);
255
270
  case 8:
256
271
  return _context3.abrupt("return", this.webex.request(request));
@@ -268,14 +283,28 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
268
283
  }, {
269
284
  key: "registerMobiusSocketListener",
270
285
  value: function registerMobiusSocketListener(cb) {
286
+ var logContext = {
287
+ file: _constants2.REQUEST_FILE,
288
+ method: _constants2.METHODS.REGISTER_MOBIUS_SOCKET_LISTENER
289
+ };
290
+ _Logger.default.info('Attaching Mobius async event listener', logContext);
271
291
  this.mobiusSocket.on('event:async_event', function (data) {
292
+ var _data$data$eventType, _data$data;
293
+ _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
294
  cb(data);
273
295
  });
296
+ _Logger.default.log('Mobius async event listener attached', logContext);
274
297
  }
275
298
  }, {
276
299
  key: "unregisterMobiusSocketListener",
277
300
  value: function unregisterMobiusSocketListener() {
301
+ var logContext = {
302
+ file: _constants2.REQUEST_FILE,
303
+ method: _constants2.METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER
304
+ };
305
+ _Logger.default.info('Detaching Mobius async event listener', logContext);
278
306
  this.mobiusSocket.off('event:async_event');
307
+ _Logger.default.log('Mobius async event listener detached', logContext);
279
308
  }
280
309
  }], [{
281
310
  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","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","info","concat","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","_t","wrap","_context","prev","next","CONNECT_TO_MOBIUS_SOCKET","isConnected","abrupt","getConnectedWebSocketUrl","connect","warn","String","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_t2","_context2","DISCONNECT_FROM_MOBIUS_SOCKET","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","REGISTER_MOBIUS_SOCKET_LISTENER","on","_data$data$eventType","_data$data","trace","eventType","unregisterMobiusSocketListener","UNREGISTER_MOBIUS_SOCKET_LISTENER","off","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';\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 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\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 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: 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 } 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 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\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}\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":[]}
@@ -79,6 +79,11 @@ export class CallingClient extends Eventing {
79
79
  this.registerCallsClearedListener();
80
80
  }
81
81
  async init() {
82
+ const loggerContext = {
83
+ file: CALLING_CLIENT_FILE,
84
+ method: METHODS.INIT,
85
+ };
86
+ log.info(METHOD_START_MESSAGE, loggerContext);
82
87
  if (typeof window !== 'undefined' && window?.navigator?.userAgent) {
83
88
  const ua = window.navigator.userAgent;
84
89
  if (ua.toLowerCase().includes('windows')) {
@@ -107,10 +112,11 @@ export class CallingClient extends Eventing {
107
112
  await this.getMobiusServers();
108
113
  if (this.apiRequest.isSocketEnabled()) {
109
114
  await this.connectToMobiusSocket();
110
- this.registerMobiusSocketListener();
115
+ this.apiRequest.registerMobiusSocketListener(this.handleMobiusAsyncEvent);
111
116
  }
112
117
  await this.createLine();
113
118
  this.setupNetworkEventListeners();
119
+ log.log('CallingClient initialization complete', loggerContext);
114
120
  }
115
121
  async checkNetworkReachability() {
116
122
  try {
@@ -411,34 +417,23 @@ export class CallingClient extends Eventing {
411
417
  }
412
418
  log.warn('All Mobius socket connection attempts exhausted for both primary and backup, continuing without socket', loggerContext);
413
419
  }
414
- registerMobiusSocketListener() {
415
- log.info(METHOD_START_MESSAGE, {
416
- file: CALLING_CLIENT_FILE,
417
- method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,
418
- });
419
- this.apiRequest.registerMobiusSocketListener(this.handleMobiusAsyncEvent);
420
- log.info('Successfully registered listener for Mobius events', {
421
- file: CALLING_CLIENT_FILE,
422
- method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,
423
- });
424
- }
425
420
  handleMobiusAsyncEvent = async (event) => {
426
- log.info(METHOD_START_MESSAGE, {
421
+ const loggerContext = {
427
422
  file: CALLING_CLIENT_FILE,
428
423
  method: METHODS.HANDLE_MOBIUS_ASYNC_EVENT,
429
- });
424
+ };
430
425
  const eventType = event?.data.eventType;
426
+ log.trace(`Mobius async event received - eventType: ${eventType ?? 'undefined'}`, loggerContext);
431
427
  if (!eventType) {
432
- log.warn('Dropping unsupported mobius socket payload', {
433
- file: CALLING_CLIENT_FILE,
434
- method: METHODS.HANDLE_MOBIUS_ASYNC_EVENT,
435
- });
428
+ log.warn('Dropping unsupported mobius socket payload', loggerContext);
436
429
  return;
437
430
  }
438
431
  if (eventType === MobiusEventType.REGISTRATION_DOWN) {
432
+ log.warn('Received REGISTRATION_DOWN event from Mobius; teardown handling pending (TODO)', loggerContext);
439
433
  return;
440
434
  }
441
435
  this.callManager.dequeueWsEvents(event);
436
+ log.trace(`Mobius async event dispatched to CallManager - eventType: ${eventType}`, loggerContext);
442
437
  };
443
438
  registerCallsClearedListener() {
444
439
  log.info(METHOD_START_MESSAGE, {
@@ -70,6 +70,8 @@ export const CALL_MANAGER_FILE = 'callManager';
70
70
  export const METRIC_FILE = 'metric';
71
71
  export const REGISTRATION_FILE = 'register';
72
72
  export const REQUEST_FILE = 'REQUEST';
73
+ export const MOBIUS_SOCKET_MAPPER_FILE = 'mobiusSocketMapper';
74
+ export const WS_FEATURE_FLAG_FILE = 'wsFeatureFlag';
73
75
  export const CODEC_ID = 'codecId';
74
76
  export const MEDIA_ID = 'id';
75
77
  export const RTC_ICE_CANDIDATE_PAIR = 'RTCIceCandidatePair_';
@@ -236,4 +238,14 @@ export const METHODS = {
236
238
  UNREGISTER_MOBIUS_SOCKET_LISTENER: 'unregisterMobiusSocketListener',
237
239
  HANDLE_MOBIUS_ASYNC_EVENT: 'handleMobiusAsyncEvent',
238
240
  HANDLE_REGISTRATION_DOWN_EVENT: 'handleRegistrationDownEvent',
241
+ DISCONNECT_FROM_MOBIUS_SOCKET: 'disconnectFromMobiusSocket',
242
+ MAKE_REQUEST: 'makeRequest',
243
+ DERIVE_MOBIUS_SOCKET_MESSAGE_TYPE: 'deriveMobiusSocketMessageType',
244
+ IS_MOBIUS_WSS_ENABLED: 'isMobiusWssEnabled',
245
+ RESTORE_PREVIOUS_REGISTRATION: 'restorePreviousRegistration',
246
+ RESTART_REGISTRATION: 'restartRegistration',
247
+ TRIGGER_REGISTRATION: 'triggerRegistration',
248
+ HANDLE_404_KEEPALIVE_FAILURE: 'handle404KeepaliveFailure',
249
+ INITIATE_FAILBACK: 'initiateFailback',
250
+ EXECUTE_FAILBACK: 'executeFailback',
239
251
  };