@webex/contact-center 0.0.0-next.1

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 (177) hide show
  1. package/README.md +81 -0
  2. package/__mocks__/workerMock.js +15 -0
  3. package/babel.config.js +15 -0
  4. package/dist/cc.js +1416 -0
  5. package/dist/cc.js.map +1 -0
  6. package/dist/config.js +72 -0
  7. package/dist/config.js.map +1 -0
  8. package/dist/constants.js +58 -0
  9. package/dist/constants.js.map +1 -0
  10. package/dist/index.js +142 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/logger-proxy.js +115 -0
  13. package/dist/logger-proxy.js.map +1 -0
  14. package/dist/metrics/MetricsManager.js +474 -0
  15. package/dist/metrics/MetricsManager.js.map +1 -0
  16. package/dist/metrics/behavioral-events.js +322 -0
  17. package/dist/metrics/behavioral-events.js.map +1 -0
  18. package/dist/metrics/constants.js +134 -0
  19. package/dist/metrics/constants.js.map +1 -0
  20. package/dist/services/WebCallingService.js +323 -0
  21. package/dist/services/WebCallingService.js.map +1 -0
  22. package/dist/services/agent/index.js +177 -0
  23. package/dist/services/agent/index.js.map +1 -0
  24. package/dist/services/agent/types.js +137 -0
  25. package/dist/services/agent/types.js.map +1 -0
  26. package/dist/services/config/Util.js +203 -0
  27. package/dist/services/config/Util.js.map +1 -0
  28. package/dist/services/config/constants.js +221 -0
  29. package/dist/services/config/constants.js.map +1 -0
  30. package/dist/services/config/index.js +607 -0
  31. package/dist/services/config/index.js.map +1 -0
  32. package/dist/services/config/types.js +334 -0
  33. package/dist/services/config/types.js.map +1 -0
  34. package/dist/services/constants.js +117 -0
  35. package/dist/services/constants.js.map +1 -0
  36. package/dist/services/core/Err.js +43 -0
  37. package/dist/services/core/Err.js.map +1 -0
  38. package/dist/services/core/GlobalTypes.js +6 -0
  39. package/dist/services/core/GlobalTypes.js.map +1 -0
  40. package/dist/services/core/Utils.js +126 -0
  41. package/dist/services/core/Utils.js.map +1 -0
  42. package/dist/services/core/WebexRequest.js +96 -0
  43. package/dist/services/core/WebexRequest.js.map +1 -0
  44. package/dist/services/core/aqm-reqs.js +246 -0
  45. package/dist/services/core/aqm-reqs.js.map +1 -0
  46. package/dist/services/core/constants.js +109 -0
  47. package/dist/services/core/constants.js.map +1 -0
  48. package/dist/services/core/types.js +6 -0
  49. package/dist/services/core/types.js.map +1 -0
  50. package/dist/services/core/websocket/WebSocketManager.js +187 -0
  51. package/dist/services/core/websocket/WebSocketManager.js.map +1 -0
  52. package/dist/services/core/websocket/connection-service.js +111 -0
  53. package/dist/services/core/websocket/connection-service.js.map +1 -0
  54. package/dist/services/core/websocket/keepalive.worker.js +94 -0
  55. package/dist/services/core/websocket/keepalive.worker.js.map +1 -0
  56. package/dist/services/core/websocket/types.js +6 -0
  57. package/dist/services/core/websocket/types.js.map +1 -0
  58. package/dist/services/index.js +78 -0
  59. package/dist/services/index.js.map +1 -0
  60. package/dist/services/task/AutoWrapup.js +88 -0
  61. package/dist/services/task/AutoWrapup.js.map +1 -0
  62. package/dist/services/task/TaskManager.js +369 -0
  63. package/dist/services/task/TaskManager.js.map +1 -0
  64. package/dist/services/task/constants.js +58 -0
  65. package/dist/services/task/constants.js.map +1 -0
  66. package/dist/services/task/contact.js +464 -0
  67. package/dist/services/task/contact.js.map +1 -0
  68. package/dist/services/task/dialer.js +60 -0
  69. package/dist/services/task/dialer.js.map +1 -0
  70. package/dist/services/task/index.js +1188 -0
  71. package/dist/services/task/index.js.map +1 -0
  72. package/dist/services/task/types.js +214 -0
  73. package/dist/services/task/types.js.map +1 -0
  74. package/dist/types/cc.d.ts +676 -0
  75. package/dist/types/config.d.ts +66 -0
  76. package/dist/types/constants.d.ts +45 -0
  77. package/dist/types/index.d.ts +178 -0
  78. package/dist/types/logger-proxy.d.ts +71 -0
  79. package/dist/types/metrics/MetricsManager.d.ts +223 -0
  80. package/dist/types/metrics/behavioral-events.d.ts +29 -0
  81. package/dist/types/metrics/constants.d.ts +127 -0
  82. package/dist/types/services/WebCallingService.d.ts +1 -0
  83. package/dist/types/services/agent/index.d.ts +46 -0
  84. package/dist/types/services/agent/types.d.ts +413 -0
  85. package/dist/types/services/config/Util.d.ts +19 -0
  86. package/dist/types/services/config/constants.d.ts +203 -0
  87. package/dist/types/services/config/index.d.ts +171 -0
  88. package/dist/types/services/config/types.d.ts +1113 -0
  89. package/dist/types/services/constants.d.ts +97 -0
  90. package/dist/types/services/core/Err.d.ts +119 -0
  91. package/dist/types/services/core/GlobalTypes.d.ts +33 -0
  92. package/dist/types/services/core/Utils.d.ts +36 -0
  93. package/dist/types/services/core/WebexRequest.d.ts +22 -0
  94. package/dist/types/services/core/aqm-reqs.d.ts +16 -0
  95. package/dist/types/services/core/constants.d.ts +85 -0
  96. package/dist/types/services/core/types.d.ts +47 -0
  97. package/dist/types/services/core/websocket/WebSocketManager.d.ts +34 -0
  98. package/dist/types/services/core/websocket/connection-service.d.ts +27 -0
  99. package/dist/types/services/core/websocket/keepalive.worker.d.ts +2 -0
  100. package/dist/types/services/core/websocket/types.d.ts +37 -0
  101. package/dist/types/services/index.d.ts +52 -0
  102. package/dist/types/services/task/AutoWrapup.d.ts +40 -0
  103. package/dist/types/services/task/TaskManager.d.ts +1 -0
  104. package/dist/types/services/task/constants.d.ts +46 -0
  105. package/dist/types/services/task/contact.d.ts +59 -0
  106. package/dist/types/services/task/dialer.d.ts +28 -0
  107. package/dist/types/services/task/index.d.ts +569 -0
  108. package/dist/types/services/task/types.d.ts +1041 -0
  109. package/dist/types/types.d.ts +452 -0
  110. package/dist/types/webex-config.d.ts +53 -0
  111. package/dist/types/webex.d.ts +7 -0
  112. package/dist/types.js +292 -0
  113. package/dist/types.js.map +1 -0
  114. package/dist/webex-config.js +60 -0
  115. package/dist/webex-config.js.map +1 -0
  116. package/dist/webex.js +99 -0
  117. package/dist/webex.js.map +1 -0
  118. package/jest.config.js +45 -0
  119. package/package.json +83 -0
  120. package/src/cc.ts +1618 -0
  121. package/src/config.ts +65 -0
  122. package/src/constants.ts +51 -0
  123. package/src/index.ts +220 -0
  124. package/src/logger-proxy.ts +110 -0
  125. package/src/metrics/MetricsManager.ts +512 -0
  126. package/src/metrics/behavioral-events.ts +332 -0
  127. package/src/metrics/constants.ts +135 -0
  128. package/src/services/WebCallingService.ts +351 -0
  129. package/src/services/agent/index.ts +149 -0
  130. package/src/services/agent/types.ts +440 -0
  131. package/src/services/config/Util.ts +261 -0
  132. package/src/services/config/constants.ts +249 -0
  133. package/src/services/config/index.ts +743 -0
  134. package/src/services/config/types.ts +1117 -0
  135. package/src/services/constants.ts +111 -0
  136. package/src/services/core/Err.ts +126 -0
  137. package/src/services/core/GlobalTypes.ts +34 -0
  138. package/src/services/core/Utils.ts +132 -0
  139. package/src/services/core/WebexRequest.ts +103 -0
  140. package/src/services/core/aqm-reqs.ts +272 -0
  141. package/src/services/core/constants.ts +106 -0
  142. package/src/services/core/types.ts +48 -0
  143. package/src/services/core/websocket/WebSocketManager.ts +196 -0
  144. package/src/services/core/websocket/connection-service.ts +142 -0
  145. package/src/services/core/websocket/keepalive.worker.js +88 -0
  146. package/src/services/core/websocket/types.ts +40 -0
  147. package/src/services/index.ts +71 -0
  148. package/src/services/task/AutoWrapup.ts +86 -0
  149. package/src/services/task/TaskManager.ts +420 -0
  150. package/src/services/task/constants.ts +52 -0
  151. package/src/services/task/contact.ts +429 -0
  152. package/src/services/task/dialer.ts +52 -0
  153. package/src/services/task/index.ts +1375 -0
  154. package/src/services/task/types.ts +1113 -0
  155. package/src/types.ts +639 -0
  156. package/src/webex-config.ts +54 -0
  157. package/src/webex.js +96 -0
  158. package/test/unit/spec/cc.ts +1985 -0
  159. package/test/unit/spec/metrics/MetricsManager.ts +491 -0
  160. package/test/unit/spec/metrics/behavioral-events.ts +102 -0
  161. package/test/unit/spec/services/WebCallingService.ts +416 -0
  162. package/test/unit/spec/services/agent/index.ts +65 -0
  163. package/test/unit/spec/services/config/index.ts +1035 -0
  164. package/test/unit/spec/services/core/Utils.ts +279 -0
  165. package/test/unit/spec/services/core/WebexRequest.ts +144 -0
  166. package/test/unit/spec/services/core/aqm-reqs.ts +570 -0
  167. package/test/unit/spec/services/core/websocket/WebSocketManager.ts +378 -0
  168. package/test/unit/spec/services/core/websocket/connection-service.ts +178 -0
  169. package/test/unit/spec/services/task/TaskManager.ts +1351 -0
  170. package/test/unit/spec/services/task/contact.ts +204 -0
  171. package/test/unit/spec/services/task/dialer.ts +157 -0
  172. package/test/unit/spec/services/task/index.ts +1474 -0
  173. package/tsconfig.json +6 -0
  174. package/typedoc.json +37 -0
  175. package/typedoc.md +240 -0
  176. package/umd/contact-center.min.js +3 -0
  177. package/umd/contact-center.min.js.map +1 -0
package/src/config.ts ADDED
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Default configuration for the Webex Contact Center SDK.
3
+ *
4
+ * @public
5
+ * @example
6
+ * import config from './config';
7
+ * const allowMultiLogin = config.cc.allowMultiLogin;
8
+ * @ignore
9
+ */
10
+ export default {
11
+ /**
12
+ * Contact Center configuration options.
13
+ * @public
14
+ */
15
+ cc: {
16
+ /**
17
+ * Whether to allow multiple logins from different devices.
18
+ * @type {boolean}
19
+ * @default false
20
+ */
21
+ allowMultiLogin: false,
22
+ /**
23
+ * Whether to automatically attempt relogin on connection loss.
24
+ * @type {boolean}
25
+ * @default true
26
+ */
27
+ allowAutomatedRelogin: true,
28
+ /**
29
+ * The type of client making the connection.
30
+ * @type {string}
31
+ * @default 'WebexCCSDK'
32
+ */
33
+ clientType: 'WebexCCSDK',
34
+ /**
35
+ * Whether to enable keep-alive messages.
36
+ * @type {boolean}
37
+ * @default false
38
+ */
39
+ isKeepAliveEnabled: false,
40
+ /**
41
+ * Whether to force registration.
42
+ * @type {boolean}
43
+ * @default true
44
+ */
45
+ force: true,
46
+ /**
47
+ * Metrics configuration for the client.
48
+ * @public
49
+ */
50
+ metrics: {
51
+ /**
52
+ * Name of the client for metrics.
53
+ * @type {string}
54
+ * @default 'WEBEX_JS_SDK'
55
+ */
56
+ clientName: 'WEBEX_JS_SDK',
57
+ /**
58
+ * Type of client for metrics.
59
+ * @type {string}
60
+ * @default 'WebexCCSDK'
61
+ */
62
+ clientType: 'WebexCCSDK',
63
+ },
64
+ },
65
+ };
@@ -0,0 +1,51 @@
1
+ export const EVENT = 'event';
2
+ export const READY = 'ready';
3
+ export const TIMEOUT_DURATION = 20000; // 20 seconds timeout duration for webrtc registration
4
+ export const EMPTY_STRING = '';
5
+ export const PRODUCT_NAME = 'wxcc_sdk';
6
+ // FILE NAMES
7
+ export const LOG_PREFIX = 'PLUGIN_CC';
8
+ export const WEB_CALLING_SERVICE_FILE = 'WebCallingService';
9
+ export const CONFIG_FILE_NAME = 'config-index';
10
+ export const CC_FILE = 'cc';
11
+ export const CONNECTION_SERVICE_FILE = 'connection-service';
12
+ export const WEB_SOCKET_MANAGER_FILE = 'WebSocketManager';
13
+ export const AQM_REQS_FILE = 'aqm-reqs';
14
+ export const WEBEX_REQUEST_FILE = 'WebexRequest';
15
+ export const TASK_MANAGER_FILE = 'TaskManager';
16
+ export const TASK_FILE = 'Task';
17
+ // AGENT OUTDIAL CONSTANTS
18
+ export const OUTDIAL_DIRECTION = 'OUTBOUND';
19
+ export const ATTRIBUTES = {};
20
+ export const OUTDIAL_MEDIA_TYPE = 'telephony';
21
+ export const OUTBOUND_TYPE = 'OUTDIAL';
22
+
23
+ // Log related constants
24
+ export const UNKNOWN_ERROR = 'Unknown error';
25
+ export const MERCURY_DISCONNECTED_SUCCESS = 'Mercury disconnected successfully';
26
+
27
+ // METHOD NAMES
28
+ export const METHODS = {
29
+ REGISTER: 'register',
30
+ DEREGISTER: 'deregister',
31
+ GET_BUDDY_AGENTS: 'getBuddyAgents',
32
+ CONNECT_WEBSOCKET: 'connectWebsocket',
33
+ STATION_LOGIN: 'stationLogin',
34
+ STATION_LOGOUT: 'stationLogout',
35
+ STATION_RELOGIN: 'stationReLogin',
36
+ SET_AGENT_STATE: 'setAgentState',
37
+ HANDLE_WEBSOCKET_MESSAGE: 'handleWebsocketMessage',
38
+ SETUP_EVENT_LISTENERS: 'setupEventListeners',
39
+ GET_CONNECTION_CONFIG: 'getConnectionConfig',
40
+ HANDLE_CONNECTION_LOST: 'handleConnectionLost',
41
+ SILENT_RELOGIN: 'silentRelogin',
42
+ HANDLE_DEVICE_TYPE: 'handleDeviceType',
43
+ START_OUTDIAL: 'startOutdial',
44
+ GET_QUEUES: 'getQueues',
45
+ UPLOAD_LOGS: 'uploadLogs',
46
+ UPDATE_AGENT_PROFILE: 'updateAgentProfile',
47
+ GET_DEVICE_ID: 'getDeviceId',
48
+ HANDLE_INCOMING_TASK: 'handleIncomingTask',
49
+ HANDLE_TASK_HYDRATE: 'handleTaskHydrate',
50
+ INCOMING_TASK_LISTENER: 'incomingTaskListener',
51
+ };
package/src/index.ts ADDED
@@ -0,0 +1,220 @@
1
+ import {registerPlugin} from '@webex/webex-core';
2
+ import config from './config';
3
+ import ContactCenter from './cc';
4
+
5
+ /** @module ContactCenterModule */
6
+
7
+ // Core exports
8
+ /**
9
+ * ContactCenter is the main plugin class for Webex Contact Center integration
10
+ * @category Core
11
+ */
12
+ export {default as ContactCenter} from './cc';
13
+
14
+ // Service exports
15
+ /**
16
+ * Task class represents a contact center task that can be managed by an agent
17
+ * @category Services
18
+ */
19
+ export {default as Task} from './services/task';
20
+
21
+ /**
22
+ * Agent routing service for Contact Center operations
23
+ * @category Services
24
+ */
25
+ export {default as routingAgent} from './services/agent';
26
+
27
+ // Enums
28
+ /**
29
+ * Task Events for Contact Center operations
30
+ * @enum {string}
31
+ * @category Enums
32
+ */
33
+ export {TASK_EVENTS} from './services/task/types';
34
+ export type {TASK_EVENTS as TaskEvents} from './services/task/types';
35
+
36
+ /**
37
+ * Agent Events for Contact Center operations
38
+ * @enum {string}
39
+ * @category Enums
40
+ */
41
+ export {AGENT_EVENTS} from './services/agent/types';
42
+ export type {AGENT_EVENTS as AgentEvents} from './services/agent/types';
43
+
44
+ /**
45
+ * Contact Center Task Events
46
+ * @enum {string}
47
+ * @category Enums
48
+ */
49
+ export {CC_TASK_EVENTS} from './services/config/types';
50
+
51
+ /**
52
+ * Contact Center Agent Events
53
+ * @enum {string}
54
+ * @category Enums
55
+ */
56
+ export {CC_AGENT_EVENTS} from './services/config/types';
57
+
58
+ /**
59
+ * Combined Contact Center Events
60
+ * @enum {string}
61
+ * @category Enums
62
+ */
63
+ export {CC_EVENTS} from './services/config/types';
64
+ export type {CC_EVENTS as ContactCenterEvents} from './services/config/types';
65
+
66
+ // Interfaces
67
+ /** Main types and interfaces for Contact Center functionality */
68
+ export type {
69
+ /** Interface for Contact Center plugin */
70
+ IContactCenter,
71
+ /** Configuration options for Contact Center plugin */
72
+ CCPluginConfig,
73
+ /** WebexSDK interface */
74
+ WebexSDK,
75
+ } from './types';
76
+
77
+ // Types
78
+ /** Agent related types */
79
+ export type {
80
+ /** Login options for agents */
81
+ LoginOption,
82
+ /** Agent login information */
83
+ AgentLogin,
84
+ /** Agent device update information */
85
+ AgentProfileUpdate,
86
+ /** Station login response */
87
+ StationLoginResponse,
88
+ /** Station logout response */
89
+ StationLogoutResponse,
90
+ /** Buddy agents response */
91
+ BuddyAgentsResponse,
92
+ /** Buddy agents information */
93
+ BuddyAgents,
94
+ /** Subscribe request parameters */
95
+ SubscribeRequest,
96
+ /** Upload logs response */
97
+ UploadLogsResponse,
98
+ /** Update device type response */
99
+ UpdateDeviceTypeResponse,
100
+ /** Generic error interface */
101
+ GenericError,
102
+ /** Set state response */
103
+ SetStateResponse,
104
+ } from './types';
105
+
106
+ /** Task related types */
107
+ export type {
108
+ AgentContact,
109
+ /** Task interface */
110
+ ITask,
111
+ TaskData,
112
+ /** Task response */
113
+ TaskResponse,
114
+ ConsultPayload,
115
+ ConsultEndPayload,
116
+ ConsultTransferPayLoad,
117
+ /** Dialer payload */
118
+ DialerPayload,
119
+ TransferPayLoad,
120
+ ResumeRecordingPayload,
121
+ WrapupPayLoad,
122
+ } from './services/task/types';
123
+
124
+ /** Agent related types */
125
+ export type {
126
+ /** State change interface */
127
+ StateChange,
128
+ /** Logout interface */
129
+ Logout,
130
+ /** State change success response */
131
+ StateChangeSuccess,
132
+ /** Station login success response */
133
+ StationLoginSuccess,
134
+ /** Extended station login success response with notification tracking */
135
+ StationLoginSuccessResponse,
136
+ /** Device type update success response */
137
+ DeviceTypeUpdateSuccess,
138
+ /** Agent login success response */
139
+ LogoutSuccess,
140
+ /** Agent relogin success response */
141
+ ReloginSuccess,
142
+ /** Agent state type */
143
+ AgentState,
144
+ /** User station login parameters */
145
+ UserStationLogin,
146
+ /** Device type for agent login */
147
+ DeviceType,
148
+ /** Buddy agent details */
149
+ BuddyDetails,
150
+ /** Buddy agents success response */
151
+ BuddyAgentsSuccess,
152
+ } from './services/agent/types';
153
+
154
+ /** Config related types */
155
+ export type {
156
+ /** Profile interface */
157
+ Profile,
158
+ /** Contact service queue interface */
159
+ ContactServiceQueue,
160
+ /** Response type from getUserUsingCI method */
161
+ AgentResponse,
162
+ /** Response from getDesktopProfileById */
163
+ DesktopProfileResponse,
164
+ /** Response from getMultimediaProfileById */
165
+ MultimediaProfileResponse,
166
+ /** Response from getListOfTeams */
167
+ ListTeamsResponse,
168
+ /** Response from getListOfAuxCodes */
169
+ ListAuxCodesResponse,
170
+ /** Response from getSiteInfo */
171
+ SiteInfo,
172
+ /** Response from getOrgInfo */
173
+ OrgInfo,
174
+ /** Response from getOrganizationSetting */
175
+ OrgSettings,
176
+ /** Response from getTenantData */
177
+ TenantData,
178
+ /** Response from getURLMapping */
179
+ URLMapping,
180
+ /** Response from getDialPlanData */
181
+ DialPlanEntity,
182
+ /** Auxiliary code information */
183
+ AuxCode,
184
+ /** Team information */
185
+ TeamList,
186
+ /** Wrap-up reason information */
187
+ WrapUpReason,
188
+ /** WebSocket event data */
189
+ WebSocketEvent,
190
+ /** Wrap-up configuration data */
191
+ WrapupData,
192
+ /** Base entity type */
193
+ Entity,
194
+ /** Dial plan configuration */
195
+ DialPlan,
196
+ /** Auxiliary code type (IDLE_CODE or WRAP_UP_CODE) */
197
+ AuxCodeType,
198
+ } from './services/config/types';
199
+
200
+ // Constants
201
+ /**
202
+ * Idle code constant
203
+ * @constant {string}
204
+ * @category Enums
205
+ */
206
+ export {IDLE_CODE} from './services/config/types';
207
+
208
+ /**
209
+ * Wrap up code constant
210
+ * @constant {string}
211
+ * @category Enums
212
+ */
213
+ export {WRAP_UP_CODE} from './services/config/types';
214
+
215
+ registerPlugin('cc', ContactCenter, {
216
+ config,
217
+ });
218
+
219
+ /** The Contact Center plugin default export */
220
+ export default ContactCenter;
@@ -0,0 +1,110 @@
1
+ import {Logger, LogContext, LOGGING_LEVEL} from './types';
2
+ import {LOG_PREFIX} from './constants';
3
+
4
+ /**
5
+ * LoggerProxy acts as a static proxy to route logging calls to an injected logger implementation.
6
+ * Ensures a consistent log format and centralizes logging behavior for the SDK.
7
+ * @ignore
8
+ */
9
+ export default class LoggerProxy {
10
+ /**
11
+ * The static logger instance to be used by the proxy.
12
+ * @ignore
13
+ */
14
+ public static logger: Logger;
15
+
16
+ /**
17
+ * Initializes the logger proxy with a provided logger implementation.
18
+ *
19
+ * @param {Logger} logger - A logger object implementing standard logging methods.
20
+ * @ignore
21
+ */
22
+ public static initialize(logger: Logger): void {
23
+ LoggerProxy.logger = logger;
24
+ }
25
+
26
+ /**
27
+ * Logs a generic message using the default log level.
28
+ *
29
+ * @param {string} message - The log message.
30
+ * @param {LogContext} [context={}] - Optional context providing module and method names.
31
+ * @ignore
32
+ */
33
+ public static log(message: string, context: LogContext = {}): void {
34
+ if (LoggerProxy.logger) {
35
+ LoggerProxy.logger.log(LoggerProxy.format(LOGGING_LEVEL.log, message, context));
36
+ }
37
+ }
38
+
39
+ /**
40
+ * Logs an informational message.
41
+ *
42
+ * @param {string} message - The log message.
43
+ * @param {LogContext} [context={}] - Optional context providing module and method names.
44
+ * @ignore
45
+ */
46
+ public static info(message: string, context: LogContext = {}): void {
47
+ if (LoggerProxy.logger) {
48
+ LoggerProxy.logger.info(LoggerProxy.format(LOGGING_LEVEL.info, message, context));
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Logs a warning message.
54
+ *
55
+ * @param {string} message - The warning message.
56
+ * @param {LogContext} [context={}] - Optional context providing module and method names.
57
+ * @ignore
58
+ */
59
+ public static warn(message: string, context: LogContext = {}): void {
60
+ if (LoggerProxy.logger) {
61
+ LoggerProxy.logger.warn(LoggerProxy.format(LOGGING_LEVEL.warn, message, context));
62
+ }
63
+ }
64
+
65
+ /**
66
+ * Logs a trace-level message, useful for debugging.
67
+ *
68
+ * @param {string} message - The trace message.
69
+ * @param {LogContext} [context={}] - Optional context providing module and method names.
70
+ * @ignore
71
+ */
72
+ public static trace(message: string, context: LogContext = {}): void {
73
+ if (LoggerProxy.logger) {
74
+ LoggerProxy.logger.trace(LoggerProxy.format(LOGGING_LEVEL.trace, message, context));
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Logs an error message.
80
+ *
81
+ * @param {string} message - The error message.
82
+ * @param {LogContext} [context={}] - Optional context providing module and method names.
83
+ * @ignore
84
+ */
85
+ public static error(message: string, context: LogContext = {}): void {
86
+ if (LoggerProxy.logger) {
87
+ LoggerProxy.logger.error(LoggerProxy.format(LOGGING_LEVEL.error, message, context));
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Formats a log message with timestamp, log level, and context details.
93
+ *
94
+ * @private
95
+ * @param {LOGGING_LEVEL} level - Logging level (e.g., info, error).
96
+ * @param {string} message - The message to be logged.
97
+ * @param {LogContext} context - Context containing module and method metadata.
98
+ * @returns {string} The formatted log string.
99
+ * @ignore
100
+ */
101
+ private static format(level: LOGGING_LEVEL, message: string, context: LogContext): string {
102
+ const timestamp = new Date().toISOString();
103
+ const moduleName = context.module || 'unknown';
104
+ const methodName = context.method || 'unknown';
105
+ const interactionId = context.interactionId ? ` - interactionId:${context.interactionId}` : '';
106
+ const trackingId = context.trackingId ? ` - trackingId:${context.trackingId}` : '';
107
+
108
+ return `${timestamp} ${LOG_PREFIX} - [${level}]: module:${moduleName} - method:${methodName}${interactionId}${trackingId} - ${message}`;
109
+ }
110
+ }