@webex/calling 3.12.0-mobius-socket.11 → 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.
- package/dist/CallingClient/CallingClient.js +21 -30
- package/dist/CallingClient/CallingClient.js.map +1 -1
- package/dist/CallingClient/calling/call.test.js +1 -1
- package/dist/CallingClient/calling/call.test.js.map +1 -1
- package/dist/CallingClient/constants.js +15 -3
- package/dist/CallingClient/constants.js.map +1 -1
- package/dist/CallingClient/line/line.test.js +1 -1
- package/dist/CallingClient/line/line.test.js.map +1 -1
- package/dist/CallingClient/registration/register.js +200 -116
- package/dist/CallingClient/registration/register.js.map +1 -1
- package/dist/CallingClient/registration/register.test.js +1 -1
- package/dist/CallingClient/registration/register.test.js.map +1 -1
- package/dist/CallingClient/registration/types.js.map +1 -1
- package/dist/CallingClient/utils/mobiusSocketMapper.js +32 -20
- package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -1
- package/dist/CallingClient/utils/request.js +32 -3
- package/dist/CallingClient/utils/request.js.map +1 -1
- package/dist/CallingClient/utils/wsFeatureFlag.js +9 -1
- package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -1
- package/dist/common/Utils.js +70 -30
- package/dist/common/Utils.js.map +1 -1
- package/dist/module/CallingClient/CallingClient.js +13 -18
- package/dist/module/CallingClient/constants.js +12 -0
- package/dist/module/CallingClient/registration/register.js +101 -40
- package/dist/module/CallingClient/utils/mobiusSocketMapper.js +11 -0
- package/dist/module/CallingClient/utils/request.js +29 -1
- package/dist/module/CallingClient/utils/wsFeatureFlag.js +9 -2
- package/dist/module/common/Utils.js +17 -4
- package/dist/types/CallingClient/CallingClient.d.ts +0 -1
- package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
- package/dist/types/CallingClient/constants.d.ts +12 -0
- package/dist/types/CallingClient/constants.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
- package/dist/types/CallingClient/registration/types.d.ts +1 -1
- package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
- package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -1
- package/dist/types/CallingClient/utils/request.d.ts.map +1 -1
- package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -1
- package/dist/types/common/Utils.d.ts +4 -1
- package/dist/types/common/Utils.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {Devices, IDeviceInfo, RegistrationStatus} from '../../common/types';\n\nexport type Header = {\n [key: string]: string;\n};\n\nexport type restoreRegistrationCallBack = (\n restoreData: IDeviceInfo,\n caller: string\n) => Promise<boolean>;\n\nexport type retry429CallBack = (retryAfter: number, caller: string) => void
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {Devices, IDeviceInfo, RegistrationStatus} from '../../common/types';\n\nexport type Header = {\n [key: string]: string;\n};\n\nexport type restoreRegistrationCallBack = (\n restoreData: IDeviceInfo,\n caller: string\n) => Promise<boolean>;\n\nexport type retry429CallBack = (retryAfter: number, caller: string) => Promise<void>;\n\nexport type FailoverCacheState = {\n attempt: number;\n timeElapsed: number;\n retryScheduledTime: number;\n serverType: 'primary' | 'backup';\n};\n\n/**\n * Represents an interface for managing registration-related operations.\n */\nexport interface IRegistration {\n /**\n * Sets the primary and backup Mobius server URLs.\n *\n * @param primaryMobiusUris - An array of primary Mobius server URLs.\n * @param backupMobiusUris - An array of backup Mobius server URLs.\n */\n setMobiusServers(primaryMobiusUris: string[], backupMobiusUris: string[]): void;\n\n /**\n * Triggers the registration process with the given list of servers\n * Registration is attempted with primary and backup until it succeeds or the list is exhausted\n */\n triggerRegistration(): Promise<void>;\n\n /**\n * Checks if the device is currently registered.\n *\n */\n isDeviceRegistered(): boolean;\n\n /**\n * Sets the status of the registration.\n *\n * @param value - The registration status to set.\n */\n setStatus(value: RegistrationStatus): void;\n\n /**\n * Retrieves the current registration status.\n *\n */\n getStatus(): RegistrationStatus;\n\n /**\n * Retrieves information about the device as {@link IDeviceInfo}.\n *\n */\n getDeviceInfo(): IDeviceInfo;\n\n /**\n * Clears the keep-alive timer used for registration.\n */\n clearKeepaliveTimer(): void;\n\n /**\n * Deregisters the device.\n */\n deregister(): void;\n\n /**\n * Sets the active Mobius server URL to use for registration.\n *\n * @param url - The Mobius server URL to set as active.\n */\n setActiveMobiusUrl(url: string): void;\n\n /**\n * Retrieves the active Mobius server URL.\n *\n */\n getActiveMobiusUrl(): string;\n\n /**\n * Attempts to reconnect after a connection failure.\n *\n * @param caller - The caller's identifier for reconnection.\n */\n reconnectOnFailure(caller: string): Promise<void>;\n\n /**\n * Checks if a reconnection attempt is pending.\n *\n */\n isReconnectPending(): boolean;\n\n /**\n * Restores the connection and attempts refreshing existing registration with server.\n * Allows retry if not restored in the first attempt.\n *\n * @param retry - Set to `true` to trigger a retry after restoration.\n */\n handleConnectionRestoration(retry: boolean): Promise<boolean>;\n\n /**\n * Populate deviceInfo from a devices response (e.g., getDevices API).\n */\n setDeviceInfo(body: Devices): void;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -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
|
|
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
|
-
|
|
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
|
|
47
|
+
return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD;
|
|
40
48
|
}
|
|
41
49
|
if (uri.includes('/callhold/resume')) {
|
|
42
|
-
return
|
|
50
|
+
return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_RESUME;
|
|
43
51
|
}
|
|
44
52
|
if (uri.includes('/calltransfer/commit')) {
|
|
45
|
-
return
|
|
53
|
+
return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_TRANSFER;
|
|
46
54
|
}
|
|
47
|
-
|
|
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
|
|
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
|
|
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
|
|
74
|
+
return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_STATE;
|
|
66
75
|
}
|
|
67
76
|
if (httpMethodType === _types.HTTP_METHODS.DELETE) {
|
|
68
|
-
return
|
|
77
|
+
return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.CALL_DELETE;
|
|
69
78
|
}
|
|
70
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
103
|
+
return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.UNREGISTER;
|
|
94
104
|
}
|
|
95
105
|
if (httpMethodType === _types.HTTP_METHODS.GET) {
|
|
96
|
-
return
|
|
106
|
+
return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_GET;
|
|
97
107
|
}
|
|
98
|
-
|
|
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
|
|
114
|
+
return _constants2.MOBIUS_SOCKET_MESSAGE_TYPE.DEVICE_LIST;
|
|
104
115
|
}
|
|
105
|
-
|
|
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 [
|
|
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":"
|
|
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; }
|
|
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:
|
|
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
|
-
|
|
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
|
|
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":[]}
|