@webex/contact-center 3.12.0-next.13 → 3.12.0-next.130
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/.sdd/manifest.json +884 -0
- package/AGENTS.md +94 -0
- package/ai-docs/ARCHITECTURE.md +168 -0
- package/ai-docs/CONTRACTS.md +53 -0
- package/ai-docs/GETTING_STARTED.md +168 -0
- package/ai-docs/GLOSSARY.md +43 -0
- package/ai-docs/README.md +138 -0
- package/ai-docs/REVIEW_CHECKLIST.md +41 -0
- package/ai-docs/RULES.md +444 -0
- package/ai-docs/SECURITY.md +52 -0
- package/ai-docs/SERVICE_STATE.md +52 -0
- package/ai-docs/SPEC_INDEX.md +65 -0
- package/ai-docs/adr/0001-spec-source-policy.md +55 -0
- package/ai-docs/adr/README.md +8 -0
- package/ai-docs/adr/_adr-template.md +31 -0
- package/ai-docs/contact-center-spec.md +382 -0
- package/ai-docs/features/consult-transfer-list-policy/spec/feature-spec.md +362 -0
- package/ai-docs/features/contact-owner-change-refactor.md +78 -0
- package/ai-docs/features/generated-spec-conformance-fidelity-remediation/spec/feature-spec.md +117 -0
- package/ai-docs/features/residual-warning-coverage-completion/spec/feature-spec.md +203 -0
- package/ai-docs/features/validator-code-fidelity-drift-fix/spec/feature-spec.md +315 -0
- package/ai-docs/patterns/event-driven-patterns.md +485 -0
- package/ai-docs/patterns/testing-patterns.md +480 -0
- package/ai-docs/patterns/typescript-patterns.md +365 -0
- package/ai-docs/templates/README.md +102 -0
- package/ai-docs/templates/documentation/create-agents-md.md +240 -0
- package/ai-docs/templates/documentation/create-architecture-md.md +295 -0
- package/ai-docs/templates/existing-service/bug-fix.md +254 -0
- package/ai-docs/templates/existing-service/feature-enhancement.md +450 -0
- package/ai-docs/templates/new-method/00-master.md +80 -0
- package/ai-docs/templates/new-method/01-requirements.md +232 -0
- package/ai-docs/templates/new-method/02-implementation.md +295 -0
- package/ai-docs/templates/new-method/03-tests.md +201 -0
- package/ai-docs/templates/new-method/04-validation.md +141 -0
- package/ai-docs/templates/new-service/00-master.md +109 -0
- package/ai-docs/templates/new-service/01-pre-questions.md +159 -0
- package/ai-docs/templates/new-service/02-code-generation.md +346 -0
- package/ai-docs/templates/new-service/03-integration.md +178 -0
- package/ai-docs/templates/new-service/04-test-generation.md +205 -0
- package/ai-docs/templates/new-service/05-validation.md +145 -0
- package/dist/cc.js +971 -42
- package/dist/cc.js.map +1 -1
- package/dist/config.js +13 -0
- package/dist/config.js.map +1 -1
- package/dist/constants.js +31 -3
- package/dist/constants.js.map +1 -1
- package/dist/index.js +45 -15
- package/dist/index.js.map +1 -1
- package/dist/metrics/MetricsManager.js +16 -0
- package/dist/metrics/MetricsManager.js.map +1 -1
- package/dist/metrics/behavioral-events.js +205 -0
- package/dist/metrics/behavioral-events.js.map +1 -1
- package/dist/metrics/constants.js +48 -4
- package/dist/metrics/constants.js.map +1 -1
- package/dist/services/AddressBook.js +18 -15
- package/dist/services/AddressBook.js.map +1 -1
- package/dist/services/AnswerCallOnWebexService.js +202 -0
- package/dist/services/AnswerCallOnWebexService.js.map +1 -0
- package/dist/services/ApiAiAssistant.js +269 -9
- package/dist/services/ApiAiAssistant.js.map +1 -1
- package/dist/services/EntryPoint.js +46 -68
- package/dist/services/EntryPoint.js.map +1 -1
- package/dist/services/Queue.js +27 -22
- package/dist/services/Queue.js.map +1 -1
- package/dist/services/UserPreference.js +427 -0
- package/dist/services/UserPreference.js.map +1 -0
- package/dist/services/WebexCrossClientService.js +222 -0
- package/dist/services/WebexCrossClientService.js.map +1 -0
- package/dist/services/WxAppTelephonyMercurySync.js +108 -0
- package/dist/services/WxAppTelephonyMercurySync.js.map +1 -0
- package/dist/services/config/Util.js +11 -4
- package/dist/services/config/Util.js.map +1 -1
- package/dist/services/config/constants.js +41 -7
- package/dist/services/config/constants.js.map +1 -1
- package/dist/services/config/index.js +51 -0
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/types.js +57 -12
- package/dist/services/config/types.js.map +1 -1
- package/dist/services/core/Err.js.map +1 -1
- package/dist/services/core/Utils.js +111 -32
- package/dist/services/core/Utils.js.map +1 -1
- package/dist/services/core/WebexRequest.js +6 -2
- package/dist/services/core/WebexRequest.js.map +1 -1
- package/dist/services/core/aqm-reqs.js +28 -14
- package/dist/services/core/aqm-reqs.js.map +1 -1
- package/dist/services/core/types.js.map +1 -1
- package/dist/services/core/websocket/WebSocketManager.js +2 -1
- package/dist/services/core/websocket/WebSocketManager.js.map +1 -1
- package/dist/services/core/websocket/types.js.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/task/Task.js +754 -0
- package/dist/services/task/Task.js.map +1 -0
- package/dist/services/task/TaskFactory.js +49 -0
- package/dist/services/task/TaskFactory.js.map +1 -0
- package/dist/services/task/TaskManager.js +1172 -521
- package/dist/services/task/TaskManager.js.map +1 -1
- package/dist/services/task/TaskUtils.js +211 -27
- package/dist/services/task/TaskUtils.js.map +1 -1
- package/dist/services/task/WebexCallingUtils.js +70 -0
- package/dist/services/task/WebexCallingUtils.js.map +1 -0
- package/dist/services/task/constants.js +12 -2
- package/dist/services/task/constants.js.map +1 -1
- package/dist/services/task/contact.js +29 -0
- package/dist/services/task/contact.js.map +1 -1
- package/dist/services/task/dialer.js +78 -0
- package/dist/services/task/dialer.js.map +1 -1
- package/dist/services/task/digital/Digital.js +78 -0
- package/dist/services/task/digital/Digital.js.map +1 -0
- package/dist/services/task/state-machine/TaskStateMachine.js +982 -0
- package/dist/services/task/state-machine/TaskStateMachine.js.map +1 -0
- package/dist/services/task/state-machine/actions.js +572 -0
- package/dist/services/task/state-machine/actions.js.map +1 -0
- package/dist/services/task/state-machine/constants.js +161 -0
- package/dist/services/task/state-machine/constants.js.map +1 -0
- package/dist/services/task/state-machine/guards.js +379 -0
- package/dist/services/task/state-machine/guards.js.map +1 -0
- package/dist/services/task/state-machine/index.js +53 -0
- package/dist/services/task/state-machine/index.js.map +1 -0
- package/dist/services/task/state-machine/types.js +54 -0
- package/dist/services/task/state-machine/types.js.map +1 -0
- package/dist/services/task/state-machine/uiControlsComputer.js +703 -0
- package/dist/services/task/state-machine/uiControlsComputer.js.map +1 -0
- package/dist/services/task/taskDataNormalizer.js +99 -0
- package/dist/services/task/taskDataNormalizer.js.map +1 -0
- package/dist/services/task/types.js +228 -5
- package/dist/services/task/types.js.map +1 -1
- package/dist/services/task/voice/Voice.js +1485 -0
- package/dist/services/task/voice/Voice.js.map +1 -0
- package/dist/services/task/voice/WebRTC.js +152 -0
- package/dist/services/task/voice/WebRTC.js.map +1 -0
- package/dist/services/task/voice/wxAppVoiceMethods.js +354 -0
- package/dist/services/task/voice/wxAppVoiceMethods.js.map +1 -0
- package/dist/services/wxAppDiagnosticLogging.js +122 -0
- package/dist/services/wxAppDiagnosticLogging.js.map +1 -0
- package/dist/services/wxAppTelephonyUtils.js +19 -0
- package/dist/services/wxAppTelephonyUtils.js.map +1 -0
- package/dist/types/cc.d.ts +193 -6
- package/dist/types/config.d.ts +13 -0
- package/dist/types/constants.d.ts +29 -1
- package/dist/types/index.d.ts +35 -8
- package/dist/types/metrics/MetricsManager.d.ts +6 -0
- package/dist/types/metrics/constants.d.ts +43 -1
- package/dist/types/services/AddressBook.d.ts +2 -1
- package/dist/types/services/AnswerCallOnWebexService.d.ts +38 -0
- package/dist/types/services/ApiAiAssistant.d.ts +56 -5
- package/dist/types/services/EntryPoint.d.ts +7 -5
- package/dist/types/services/Queue.d.ts +5 -3
- package/dist/types/services/UserPreference.d.ts +118 -0
- package/dist/types/services/WebexCrossClientService.d.ts +32 -0
- package/dist/types/services/WxAppTelephonyMercurySync.d.ts +28 -0
- package/dist/types/services/config/constants.d.ts +34 -5
- package/dist/types/services/config/types.d.ts +197 -12
- package/dist/types/services/core/Err.d.ts +6 -0
- package/dist/types/services/core/Utils.d.ts +35 -13
- package/dist/types/services/core/WebexRequest.d.ts +1 -0
- package/dist/types/services/core/types.d.ts +2 -0
- package/dist/types/services/core/websocket/WebSocketManager.d.ts +1 -0
- package/dist/types/services/core/websocket/types.d.ts +1 -1
- package/dist/types/services/index.d.ts +1 -1
- package/dist/types/services/task/Task.d.ts +175 -0
- package/dist/types/services/task/TaskFactory.d.ts +13 -0
- package/dist/types/services/task/TaskUtils.d.ts +48 -2
- package/dist/types/services/task/WebexCallingUtils.d.ts +11 -0
- package/dist/types/services/task/constants.d.ts +10 -0
- package/dist/types/services/task/contact.d.ts +4 -0
- package/dist/types/services/task/dialer.d.ts +30 -0
- package/dist/types/services/task/digital/Digital.d.ts +22 -0
- package/dist/types/services/task/state-machine/TaskStateMachine.d.ts +1442 -0
- package/dist/types/services/task/state-machine/actions.d.ts +10 -0
- package/dist/types/services/task/state-machine/constants.d.ts +107 -0
- package/dist/types/services/task/state-machine/guards.d.ts +103 -0
- package/dist/types/services/task/state-machine/index.d.ts +13 -0
- package/dist/types/services/task/state-machine/types.d.ts +277 -0
- package/dist/types/services/task/state-machine/uiControlsComputer.d.ts +9 -0
- package/dist/types/services/task/taskDataNormalizer.d.ts +10 -0
- package/dist/types/services/task/types.d.ts +680 -66
- package/dist/types/services/task/voice/Voice.d.ts +227 -0
- package/dist/types/services/task/voice/WebRTC.d.ts +53 -0
- package/dist/types/services/task/voice/wxAppVoiceMethods.d.ts +55 -0
- package/dist/types/services/wxAppDiagnosticLogging.d.ts +51 -0
- package/dist/types/services/wxAppTelephonyUtils.d.ts +5 -0
- package/dist/types/types.d.ts +205 -9
- package/dist/types/utils/PageCache.d.ts +20 -3
- package/dist/types/webex.d.ts +1 -0
- package/dist/types.js +162 -4
- package/dist/types.js.map +1 -1
- package/dist/utils/PageCache.js +19 -5
- package/dist/utils/PageCache.js.map +1 -1
- package/dist/webex.js +22 -2
- package/dist/webex.js.map +1 -1
- package/package.json +16 -12
- package/src/cc.ts +1289 -112
- package/src/config.ts +13 -0
- package/src/constants.ts +29 -1
- package/src/index.ts +36 -5
- package/src/metrics/MetricsManager.ts +16 -0
- package/src/metrics/ai-docs/AGENTS.md +350 -0
- package/src/metrics/ai-docs/ARCHITECTURE.md +338 -0
- package/src/metrics/ai-docs/metrics-spec.md +921 -0
- package/src/metrics/behavioral-events.ts +212 -0
- package/src/metrics/constants.ts +52 -4
- package/src/services/AddressBook.ts +17 -6
- package/src/services/AnswerCallOnWebexService.ts +239 -0
- package/src/services/ApiAiAssistant.ts +356 -9
- package/src/services/EntryPoint.ts +59 -60
- package/src/services/Queue.ts +29 -12
- package/src/services/UserPreference.ts +509 -0
- package/src/services/WebexCrossClientService.ts +293 -0
- package/src/services/WxAppTelephonyMercurySync.ts +142 -0
- package/src/services/agent/ai-docs/AGENTS.md +240 -0
- package/src/services/agent/ai-docs/ARCHITECTURE.md +304 -0
- package/src/services/agent/ai-docs/agent-spec.md +505 -0
- package/src/services/ai-docs/AGENTS.md +386 -0
- package/src/services/ai-docs/services-spec.md +505 -0
- package/src/services/config/Util.ts +12 -3
- package/src/services/config/ai-docs/AGENTS.md +255 -0
- package/src/services/config/ai-docs/ARCHITECTURE.md +426 -0
- package/src/services/config/ai-docs/config-spec.md +686 -0
- package/src/services/config/constants.ts +46 -6
- package/src/services/config/index.ts +65 -0
- package/src/services/config/types.ts +197 -13
- package/src/services/core/Err.ts +3 -0
- package/src/services/core/Utils.ts +127 -37
- package/src/services/core/WebexRequest.ts +3 -1
- package/src/services/core/ai-docs/AGENTS.md +381 -0
- package/src/services/core/ai-docs/ARCHITECTURE.md +698 -0
- package/src/services/core/ai-docs/core-spec.md +787 -0
- package/src/services/core/aqm-reqs.ts +30 -15
- package/src/services/core/types.ts +2 -0
- package/src/services/core/websocket/WebSocketManager.ts +2 -0
- package/src/services/core/websocket/types.ts +1 -1
- package/src/services/index.ts +1 -1
- package/src/services/task/Task.ts +908 -0
- package/src/services/task/TaskFactory.ts +60 -0
- package/src/services/task/TaskManager.ts +1419 -608
- package/src/services/task/TaskUtils.ts +303 -25
- package/src/services/task/WebexCallingUtils.ts +136 -0
- package/src/services/task/ai-docs/AGENTS.md +457 -0
- package/src/services/task/ai-docs/ARCHITECTURE.md +595 -0
- package/src/services/task/ai-docs/task-spec.md +1474 -0
- package/src/services/task/constants.ts +10 -0
- package/src/services/task/contact.ts +30 -0
- package/src/services/task/dialer.ts +80 -0
- package/src/services/task/digital/Digital.ts +97 -0
- package/src/services/task/state-machine/TaskStateMachine.ts +1320 -0
- package/src/services/task/state-machine/actions.ts +741 -0
- package/src/services/task/state-machine/ai-docs/AGENTS.md +460 -0
- package/src/services/task/state-machine/ai-docs/ARCHITECTURE.md +1156 -0
- package/src/services/task/state-machine/ai-docs/task-state-machine-spec.md +2247 -0
- package/src/services/task/state-machine/constants.ts +172 -0
- package/src/services/task/state-machine/guards.ts +442 -0
- package/src/services/task/state-machine/index.ts +28 -0
- package/src/services/task/state-machine/types.ts +258 -0
- package/src/services/task/state-machine/uiControlsComputer.ts +1135 -0
- package/src/services/task/taskDataNormalizer.ts +137 -0
- package/src/services/task/types.ts +819 -70
- package/src/services/task/voice/Voice.ts +1851 -0
- package/src/services/task/voice/WebRTC.ts +191 -0
- package/src/services/task/voice/wxAppVoiceMethods.ts +516 -0
- package/src/services/wxAppDiagnosticLogging.ts +174 -0
- package/src/services/wxAppTelephonyUtils.ts +14 -0
- package/src/types.ts +262 -11
- package/src/utils/AGENTS.md +289 -0
- package/src/utils/PageCache.ts +38 -5
- package/src/utils/ai-docs/utils-spec.md +391 -0
- package/src/webex.js +10 -0
- package/test/unit/spec/cc.ts +2210 -119
- package/test/unit/spec/logger-proxy.ts +70 -0
- package/test/unit/spec/metrics/MetricsManager.ts +25 -0
- package/test/unit/spec/metrics/behavioral-events.ts +60 -0
- package/test/unit/spec/services/AddressBook.ts +37 -6
- package/test/unit/spec/services/AnswerCallOnWebexService.ts +264 -0
- package/test/unit/spec/services/ApiAiAssistant.ts +311 -21
- package/test/unit/spec/services/EntryPoint.ts +87 -40
- package/test/unit/spec/services/Queue.ts +123 -12
- package/test/unit/spec/services/UserPreference.ts +401 -0
- package/test/unit/spec/services/WebCallingService.ts +7 -1
- package/test/unit/spec/services/WebexCrossClientService.ts +467 -0
- package/test/unit/spec/services/WxAppTelephonyMercurySync.ts +136 -0
- package/test/unit/spec/services/config/Util.ts +129 -0
- package/test/unit/spec/services/config/index.ts +97 -29
- package/test/unit/spec/services/core/Utils.ts +425 -8
- package/test/unit/spec/services/core/WebexRequest.ts +3 -1
- package/test/unit/spec/services/core/aqm-reqs.ts +113 -1
- package/test/unit/spec/services/core/websocket/WebSocketManager.ts +66 -40
- package/test/unit/spec/services/task/AutoWrapup.ts +63 -0
- package/test/unit/spec/services/task/Task.ts +745 -0
- package/test/unit/spec/services/task/TaskFactory.ts +99 -0
- package/test/unit/spec/services/task/TaskManager.ts +2518 -1494
- package/test/unit/spec/services/task/TaskUtils.ts +235 -0
- package/test/unit/spec/services/task/WebexCallingUtils.ts +153 -0
- package/test/unit/spec/services/task/contact.ts +33 -0
- package/test/unit/spec/services/task/dialer.ts +190 -0
- package/test/unit/spec/services/task/digital/Digital.ts +105 -0
- package/test/unit/spec/services/task/state-machine/TaskStateMachine.ts +4060 -0
- package/test/unit/spec/services/task/state-machine/guards.ts +839 -0
- package/test/unit/spec/services/task/state-machine/types.ts +18 -0
- package/test/unit/spec/services/task/state-machine/uiControlsComputer.ts +3101 -0
- package/test/unit/spec/services/task/taskTestUtils.ts +87 -0
- package/test/unit/spec/services/task/voice/Voice.ts +2061 -0
- package/test/unit/spec/services/task/voice/WebRTC.ts +235 -0
- package/test/unit/spec/services/task/voice/wxAppVoiceMethods.ts +603 -0
- package/test/unit/spec/services/wxAppDiagnosticLogging.ts +143 -0
- package/test/unit/spec/wellnessSampleUtils.ts +288 -0
- package/umd/contact-center.min.js +2 -2
- package/umd/contact-center.min.js.map +1 -1
- package/dist/services/task/index.js +0 -1525
- package/dist/services/task/index.js.map +0 -1
- package/dist/types/services/task/index.d.ts +0 -650
- package/src/services/task/index.ts +0 -1801
- package/test/unit/spec/services/task/index.ts +0 -2184
package/dist/config.js
CHANGED
|
@@ -31,6 +31,19 @@ var _default = exports.default = {
|
|
|
31
31
|
* @default true
|
|
32
32
|
*/
|
|
33
33
|
allowAutomatedRelogin: true,
|
|
34
|
+
/**
|
|
35
|
+
* Whether to skip Mobius/WebRTC registration for browser login flows.
|
|
36
|
+
* @type {boolean}
|
|
37
|
+
* @default false
|
|
38
|
+
*/
|
|
39
|
+
disableWebRTCRegistration: false,
|
|
40
|
+
/**
|
|
41
|
+
* Whether wxApp Better Together is enabled at SDK init.
|
|
42
|
+
* Must be set before SDK init. Default false (WXCC-6026).
|
|
43
|
+
* @type {boolean}
|
|
44
|
+
* @default false
|
|
45
|
+
*/
|
|
46
|
+
enableWxBetterTogether: false,
|
|
34
47
|
/**
|
|
35
48
|
* The type of client making the connection.
|
|
36
49
|
* @type {string}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_default","exports","default","cc","allowMultiLogin","allowAutomatedRelogin","clientType","isKeepAliveEnabled","force","metrics","clientName"],"sources":["config.ts"],"sourcesContent":["/**\n * Default configuration for the Webex Contact Center SDK.\n *\n * @public\n * @example\n * import config from './config';\n * const allowMultiLogin = config.cc.allowMultiLogin;\n * @ignore\n */\nexport default {\n /**\n * Contact Center configuration options.\n * @public\n */\n cc: {\n /**\n * Whether to allow multiple logins from different devices.\n * @type {boolean}\n * @default false\n */\n allowMultiLogin: false,\n /**\n * Whether to automatically attempt relogin on connection loss.\n * @type {boolean}\n * @default true\n */\n allowAutomatedRelogin: true,\n /**\n * The type of client making the connection.\n * @type {string}\n * @default 'WebexCCSDK'\n */\n clientType: 'WebexCCSDK',\n /**\n * Whether to enable keep-alive messages.\n * @type {boolean}\n * @default false\n */\n isKeepAliveEnabled: false,\n /**\n * Whether to force registration.\n * @type {boolean}\n * @default true\n */\n force: true,\n /**\n * Metrics configuration for the client.\n * @public\n */\n metrics: {\n /**\n * Name of the client for metrics.\n * @type {string}\n * @default 'WEBEX_JS_SDK'\n */\n clientName: 'WEBEX_JS_SDK',\n /**\n * Type of client for metrics.\n * @type {string}\n * @default 'WebexCCSDK'\n */\n clientType: 'WebexCCSDK',\n },\n },\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GASe;EACb;AACF;AACA;AACA;EACEC,EAAE,EAAE;IACF;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAE,KAAK;IACtB;AACJ;AACA;AACA;AACA;IACIC,qBAAqB,EAAE,IAAI;IAC3B;AACJ;AACA;AACA;AACA;IACIC,UAAU,EAAE,YAAY;IACxB;AACJ;AACA;AACA;AACA;IACIC,kBAAkB,EAAE,KAAK;IACzB;AACJ;AACA;AACA;AACA;IACIC,KAAK,EAAE,IAAI;IACX;AACJ;AACA;AACA;IACIC,OAAO,EAAE;MACP;AACN;AACA;AACA;AACA;MACMC,UAAU,EAAE,cAAc;MAC1B;AACN;AACA;AACA;AACA;MACMJ,UAAU,EAAE;IACd;EACF;AACF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_default","exports","default","cc","allowMultiLogin","allowAutomatedRelogin","disableWebRTCRegistration","enableWxBetterTogether","clientType","isKeepAliveEnabled","force","metrics","clientName"],"sources":["config.ts"],"sourcesContent":["/**\n * Default configuration for the Webex Contact Center SDK.\n *\n * @public\n * @example\n * import config from './config';\n * const allowMultiLogin = config.cc.allowMultiLogin;\n * @ignore\n */\nexport default {\n /**\n * Contact Center configuration options.\n * @public\n */\n cc: {\n /**\n * Whether to allow multiple logins from different devices.\n * @type {boolean}\n * @default false\n */\n allowMultiLogin: false,\n /**\n * Whether to automatically attempt relogin on connection loss.\n * @type {boolean}\n * @default true\n */\n allowAutomatedRelogin: true,\n /**\n * Whether to skip Mobius/WebRTC registration for browser login flows.\n * @type {boolean}\n * @default false\n */\n disableWebRTCRegistration: false,\n /**\n * Whether wxApp Better Together is enabled at SDK init.\n * Must be set before SDK init. Default false (WXCC-6026).\n * @type {boolean}\n * @default false\n */\n enableWxBetterTogether: false,\n /**\n * The type of client making the connection.\n * @type {string}\n * @default 'WebexCCSDK'\n */\n clientType: 'WebexCCSDK',\n /**\n * Whether to enable keep-alive messages.\n * @type {boolean}\n * @default false\n */\n isKeepAliveEnabled: false,\n /**\n * Whether to force registration.\n * @type {boolean}\n * @default true\n */\n force: true,\n /**\n * Metrics configuration for the client.\n * @public\n */\n metrics: {\n /**\n * Name of the client for metrics.\n * @type {string}\n * @default 'WEBEX_JS_SDK'\n */\n clientName: 'WEBEX_JS_SDK',\n /**\n * Type of client for metrics.\n * @type {string}\n * @default 'WebexCCSDK'\n */\n clientType: 'WebexCCSDK',\n },\n },\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GASe;EACb;AACF;AACA;AACA;EACEC,EAAE,EAAE;IACF;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAE,KAAK;IACtB;AACJ;AACA;AACA;AACA;IACIC,qBAAqB,EAAE,IAAI;IAC3B;AACJ;AACA;AACA;AACA;IACIC,yBAAyB,EAAE,KAAK;IAChC;AACJ;AACA;AACA;AACA;AACA;IACIC,sBAAsB,EAAE,KAAK;IAC7B;AACJ;AACA;AACA;AACA;IACIC,UAAU,EAAE,YAAY;IACxB;AACJ;AACA;AACA;AACA;IACIC,kBAAkB,EAAE,KAAK;IACzB;AACJ;AACA;AACA;AACA;IACIC,KAAK,EAAE,IAAI;IACX;AACJ;AACA;AACA;IACIC,OAAO,EAAE;MACP;AACN;AACA;AACA;AACA;MACMC,UAAU,EAAE,cAAc;MAC1B;AACN;AACA;AACA;AACA;MACMJ,UAAU,EAAE;IACd;EACF;AACF,CAAC","ignoreList":[]}
|
package/dist/constants.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WEB_SOCKET_MANAGER_FILE = exports.WEB_CALLING_SERVICE_FILE = exports.WEBEX_REQUEST_FILE = exports.UNKNOWN_ERROR = exports.TIMEOUT_DURATION = exports.TASK_MANAGER_FILE = exports.TASK_FILE = exports.READY = exports.PRODUCT_NAME = exports.OUTDIAL_MEDIA_TYPE = exports.OUTDIAL_DIRECTION = exports.OUTBOUND_TYPE = exports.METHODS = exports.MERCURY_DISCONNECTED_SUCCESS = exports.LOG_PREFIX = exports.EVENT = exports.EMPTY_STRING = exports.CONNECTION_SERVICE_FILE = exports.CONFIG_FILE_NAME = exports.CC_FILE = exports.ATTRIBUTES = exports.AQM_REQS_FILE = void 0;
|
|
6
|
+
exports.WELLNESS_BREAK_HANDLER = exports.WEB_SOCKET_MANAGER_FILE = exports.WEB_CALLING_SERVICE_FILE = exports.WEBEX_REQUEST_FILE = exports.UNKNOWN_ERROR = exports.TIMEOUT_DURATION = exports.TASK_MANAGER_FILE = exports.TASK_FILE = exports.READY = exports.PRODUCT_NAME = exports.OUTDIAL_MEDIA_TYPE = exports.OUTDIAL_DIRECTION = exports.OUTBOUND_TYPE = exports.METHODS = exports.MERCURY_DISCONNECTED_SUCCESS = exports.LOG_PREFIX = exports.INBOUND_DIRECTION = exports.EVENT = exports.EMPTY_STRING = exports.CONNECTION_SERVICE_FILE = exports.CONFIG_FILE_NAME = exports.CC_FILE = exports.ATTRIBUTES = exports.AQM_REQS_FILE = void 0;
|
|
7
7
|
const EVENT = exports.EVENT = 'event';
|
|
8
8
|
const READY = exports.READY = 'ready';
|
|
9
9
|
const TIMEOUT_DURATION = exports.TIMEOUT_DURATION = 20000; // 20 seconds timeout duration for webrtc registration
|
|
@@ -14,6 +14,7 @@ const LOG_PREFIX = exports.LOG_PREFIX = 'PLUGIN_CC';
|
|
|
14
14
|
const WEB_CALLING_SERVICE_FILE = exports.WEB_CALLING_SERVICE_FILE = 'WebCallingService';
|
|
15
15
|
const CONFIG_FILE_NAME = exports.CONFIG_FILE_NAME = 'config-index';
|
|
16
16
|
const CC_FILE = exports.CC_FILE = 'cc';
|
|
17
|
+
const WELLNESS_BREAK_HANDLER = exports.WELLNESS_BREAK_HANDLER = 'Wellness_Break_Handler';
|
|
17
18
|
const CONNECTION_SERVICE_FILE = exports.CONNECTION_SERVICE_FILE = 'connection-service';
|
|
18
19
|
const WEB_SOCKET_MANAGER_FILE = exports.WEB_SOCKET_MANAGER_FILE = 'WebSocketManager';
|
|
19
20
|
const AQM_REQS_FILE = exports.AQM_REQS_FILE = 'aqm-reqs';
|
|
@@ -21,6 +22,7 @@ const WEBEX_REQUEST_FILE = exports.WEBEX_REQUEST_FILE = 'WebexRequest';
|
|
|
21
22
|
const TASK_MANAGER_FILE = exports.TASK_MANAGER_FILE = 'TaskManager';
|
|
22
23
|
const TASK_FILE = exports.TASK_FILE = 'Task';
|
|
23
24
|
// AGENT OUTDIAL CONSTANTS
|
|
25
|
+
const INBOUND_DIRECTION = exports.INBOUND_DIRECTION = 'INBOUND';
|
|
24
26
|
const OUTDIAL_DIRECTION = exports.OUTDIAL_DIRECTION = 'OUTBOUND';
|
|
25
27
|
const ATTRIBUTES = exports.ATTRIBUTES = {};
|
|
26
28
|
const OUTDIAL_MEDIA_TYPE = exports.OUTDIAL_MEDIA_TYPE = 'telephony';
|
|
@@ -48,16 +50,42 @@ const METHODS = exports.METHODS = {
|
|
|
48
50
|
HANDLE_DEVICE_TYPE: 'handleDeviceType',
|
|
49
51
|
START_OUTDIAL: 'startOutdial',
|
|
50
52
|
GET_QUEUES: 'getQueues',
|
|
51
|
-
GET_OUTDIAL_ANI_ENTRIES: 'getOutdialAniEntries',
|
|
52
53
|
UPLOAD_LOGS: 'uploadLogs',
|
|
53
54
|
UPDATE_AGENT_PROFILE: 'updateAgentProfile',
|
|
54
55
|
GET_DEVICE_ID: 'getDeviceId',
|
|
55
56
|
HANDLE_INCOMING_TASK: 'handleIncomingTask',
|
|
56
57
|
HANDLE_TASK_HYDRATE: 'handleTaskHydrate',
|
|
57
58
|
INCOMING_TASK_LISTENER: 'incomingTaskListener',
|
|
59
|
+
ACCEPT: 'accept',
|
|
60
|
+
REJECT: 'decline',
|
|
61
|
+
HOLD: 'hold',
|
|
62
|
+
RESUME: 'resume',
|
|
63
|
+
HOLD_RESUME: 'holdResume',
|
|
64
|
+
TRANSFER_CALL: 'transfer',
|
|
65
|
+
CONSULT_TRANSFER: 'consultTransfer',
|
|
66
|
+
CONSULT_CONFERENCE: 'consultConference',
|
|
67
|
+
DROP_CONFERENCE_PARTICIPANT: 'dropConferenceParticipant',
|
|
68
|
+
EXIT_CONFERENCE: 'exitConference',
|
|
69
|
+
TRANSFER_CONFERENCE: 'transferConference',
|
|
70
|
+
TOGGLE_MUTE: 'toggleMute',
|
|
71
|
+
TRANSMIT_DTMF: 'transmitDtmf',
|
|
72
|
+
COMPLETE_TRANSFER: 'completeTransfer',
|
|
73
|
+
GET_OUTDIAL_ANI_ENTRIES: 'getOutdialAniEntries',
|
|
58
74
|
ACCEPT_PREVIEW_CONTACT: 'acceptPreviewContact',
|
|
75
|
+
SKIP_PREVIEW_CONTACT: 'skipPreviewContact',
|
|
76
|
+
REMOVE_PREVIEW_CONTACT: 'removePreviewContact',
|
|
59
77
|
GET_BASE_URL: 'getBaseUrl',
|
|
60
78
|
SEND_EVENT: 'sendEvent',
|
|
61
|
-
|
|
79
|
+
GET_REAL_TIME_ASSISTANCE: 'getRealTimeAssistance',
|
|
80
|
+
SEND_REAL_TIME_ASSISTANCE_USER_ACTION: 'sendRealTimeAssistanceUserAction',
|
|
81
|
+
FETCH_HISTORIC_TRANSCRIPTS: 'fetchHistoricTranscripts',
|
|
82
|
+
REQUEST_WELLNESS_BREAK: 'requestWellnessBreak',
|
|
83
|
+
RESPOND_TO_WELLNESS_BREAK: 'respondToWellnessBreak',
|
|
84
|
+
GET_WELLBEING_BREAK_IDLE_CODE: 'getWellbeingBreakIdleCode',
|
|
85
|
+
SET_MANAGE_WEBEX_CALLING_IN_WXCC: 'setManageWebexCallingInWxcc',
|
|
86
|
+
IS_WX_BETTER_TOGETHER_ENABLED: 'isWxBetterTogetherEnabled',
|
|
87
|
+
SYNC_WXAPP_MUTE_FROM_MERCURY: 'syncWxAppMuteFromMercury',
|
|
88
|
+
GET_CALL_DETAILS_ON_WEBEX: 'getCallDetailsOnWebex',
|
|
89
|
+
ENSURE_WXAPP_MERCURY_CONNECTED: 'ensureWxAppMercuryConnected'
|
|
62
90
|
};
|
|
63
91
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EVENT","exports","READY","TIMEOUT_DURATION","EMPTY_STRING","PRODUCT_NAME","LOG_PREFIX","WEB_CALLING_SERVICE_FILE","CONFIG_FILE_NAME","CC_FILE","CONNECTION_SERVICE_FILE","WEB_SOCKET_MANAGER_FILE","AQM_REQS_FILE","WEBEX_REQUEST_FILE","TASK_MANAGER_FILE","TASK_FILE","OUTDIAL_DIRECTION","ATTRIBUTES","OUTDIAL_MEDIA_TYPE","OUTBOUND_TYPE","UNKNOWN_ERROR","MERCURY_DISCONNECTED_SUCCESS","METHODS","REGISTER","DEREGISTER","GET_BUDDY_AGENTS","CONNECT_WEBSOCKET","STATION_LOGIN","STATION_LOGOUT","STATION_RELOGIN","SET_AGENT_STATE","HANDLE_WEBSOCKET_MESSAGE","SETUP_EVENT_LISTENERS","GET_CONNECTION_CONFIG","HANDLE_CONNECTION_LOST","SILENT_RELOGIN","HANDLE_DEVICE_TYPE","START_OUTDIAL","GET_QUEUES","
|
|
1
|
+
{"version":3,"names":["EVENT","exports","READY","TIMEOUT_DURATION","EMPTY_STRING","PRODUCT_NAME","LOG_PREFIX","WEB_CALLING_SERVICE_FILE","CONFIG_FILE_NAME","CC_FILE","WELLNESS_BREAK_HANDLER","CONNECTION_SERVICE_FILE","WEB_SOCKET_MANAGER_FILE","AQM_REQS_FILE","WEBEX_REQUEST_FILE","TASK_MANAGER_FILE","TASK_FILE","INBOUND_DIRECTION","OUTDIAL_DIRECTION","ATTRIBUTES","OUTDIAL_MEDIA_TYPE","OUTBOUND_TYPE","UNKNOWN_ERROR","MERCURY_DISCONNECTED_SUCCESS","METHODS","REGISTER","DEREGISTER","GET_BUDDY_AGENTS","CONNECT_WEBSOCKET","STATION_LOGIN","STATION_LOGOUT","STATION_RELOGIN","SET_AGENT_STATE","HANDLE_WEBSOCKET_MESSAGE","SETUP_EVENT_LISTENERS","GET_CONNECTION_CONFIG","HANDLE_CONNECTION_LOST","SILENT_RELOGIN","HANDLE_DEVICE_TYPE","START_OUTDIAL","GET_QUEUES","UPLOAD_LOGS","UPDATE_AGENT_PROFILE","GET_DEVICE_ID","HANDLE_INCOMING_TASK","HANDLE_TASK_HYDRATE","INCOMING_TASK_LISTENER","ACCEPT","REJECT","HOLD","RESUME","HOLD_RESUME","TRANSFER_CALL","CONSULT_TRANSFER","CONSULT_CONFERENCE","DROP_CONFERENCE_PARTICIPANT","EXIT_CONFERENCE","TRANSFER_CONFERENCE","TOGGLE_MUTE","TRANSMIT_DTMF","COMPLETE_TRANSFER","GET_OUTDIAL_ANI_ENTRIES","ACCEPT_PREVIEW_CONTACT","SKIP_PREVIEW_CONTACT","REMOVE_PREVIEW_CONTACT","GET_BASE_URL","SEND_EVENT","GET_REAL_TIME_ASSISTANCE","SEND_REAL_TIME_ASSISTANCE_USER_ACTION","FETCH_HISTORIC_TRANSCRIPTS","REQUEST_WELLNESS_BREAK","RESPOND_TO_WELLNESS_BREAK","GET_WELLBEING_BREAK_IDLE_CODE","SET_MANAGE_WEBEX_CALLING_IN_WXCC","IS_WX_BETTER_TOGETHER_ENABLED","SYNC_WXAPP_MUTE_FROM_MERCURY","GET_CALL_DETAILS_ON_WEBEX","ENSURE_WXAPP_MERCURY_CONNECTED"],"sources":["constants.ts"],"sourcesContent":["export const EVENT = 'event';\nexport const READY = 'ready';\nexport const TIMEOUT_DURATION = 20000; // 20 seconds timeout duration for webrtc registration\nexport const EMPTY_STRING = '';\nexport const PRODUCT_NAME = 'wxcc_sdk';\n// FILE NAMES\nexport const LOG_PREFIX = 'PLUGIN_CC';\nexport const WEB_CALLING_SERVICE_FILE = 'WebCallingService';\nexport const CONFIG_FILE_NAME = 'config-index';\nexport const CC_FILE = 'cc';\nexport const WELLNESS_BREAK_HANDLER = 'Wellness_Break_Handler';\nexport const CONNECTION_SERVICE_FILE = 'connection-service';\nexport const WEB_SOCKET_MANAGER_FILE = 'WebSocketManager';\nexport const AQM_REQS_FILE = 'aqm-reqs';\nexport const WEBEX_REQUEST_FILE = 'WebexRequest';\nexport const TASK_MANAGER_FILE = 'TaskManager';\nexport const TASK_FILE = 'Task';\n// AGENT OUTDIAL CONSTANTS\nexport const INBOUND_DIRECTION = 'INBOUND';\nexport const OUTDIAL_DIRECTION = 'OUTBOUND';\nexport const ATTRIBUTES = {};\nexport const OUTDIAL_MEDIA_TYPE = 'telephony';\nexport const OUTBOUND_TYPE = 'OUTDIAL';\n\n// Log related constants\nexport const UNKNOWN_ERROR = 'Unknown error';\nexport const MERCURY_DISCONNECTED_SUCCESS = 'Mercury disconnected successfully';\n\n// METHOD NAMES\nexport const METHODS = {\n REGISTER: 'register',\n DEREGISTER: 'deregister',\n GET_BUDDY_AGENTS: 'getBuddyAgents',\n CONNECT_WEBSOCKET: 'connectWebsocket',\n STATION_LOGIN: 'stationLogin',\n STATION_LOGOUT: 'stationLogout',\n STATION_RELOGIN: 'stationReLogin',\n SET_AGENT_STATE: 'setAgentState',\n HANDLE_WEBSOCKET_MESSAGE: 'handleWebsocketMessage',\n SETUP_EVENT_LISTENERS: 'setupEventListeners',\n GET_CONNECTION_CONFIG: 'getConnectionConfig',\n HANDLE_CONNECTION_LOST: 'handleConnectionLost',\n SILENT_RELOGIN: 'silentRelogin',\n HANDLE_DEVICE_TYPE: 'handleDeviceType',\n START_OUTDIAL: 'startOutdial',\n GET_QUEUES: 'getQueues',\n UPLOAD_LOGS: 'uploadLogs',\n UPDATE_AGENT_PROFILE: 'updateAgentProfile',\n GET_DEVICE_ID: 'getDeviceId',\n HANDLE_INCOMING_TASK: 'handleIncomingTask',\n HANDLE_TASK_HYDRATE: 'handleTaskHydrate',\n INCOMING_TASK_LISTENER: 'incomingTaskListener',\n ACCEPT: 'accept',\n REJECT: 'decline',\n HOLD: 'hold',\n RESUME: 'resume',\n HOLD_RESUME: 'holdResume',\n TRANSFER_CALL: 'transfer',\n CONSULT_TRANSFER: 'consultTransfer',\n CONSULT_CONFERENCE: 'consultConference',\n DROP_CONFERENCE_PARTICIPANT: 'dropConferenceParticipant',\n EXIT_CONFERENCE: 'exitConference',\n TRANSFER_CONFERENCE: 'transferConference',\n TOGGLE_MUTE: 'toggleMute',\n TRANSMIT_DTMF: 'transmitDtmf',\n COMPLETE_TRANSFER: 'completeTransfer',\n GET_OUTDIAL_ANI_ENTRIES: 'getOutdialAniEntries',\n ACCEPT_PREVIEW_CONTACT: 'acceptPreviewContact',\n SKIP_PREVIEW_CONTACT: 'skipPreviewContact',\n REMOVE_PREVIEW_CONTACT: 'removePreviewContact',\n GET_BASE_URL: 'getBaseUrl',\n SEND_EVENT: 'sendEvent',\n GET_REAL_TIME_ASSISTANCE: 'getRealTimeAssistance',\n SEND_REAL_TIME_ASSISTANCE_USER_ACTION: 'sendRealTimeAssistanceUserAction',\n FETCH_HISTORIC_TRANSCRIPTS: 'fetchHistoricTranscripts',\n REQUEST_WELLNESS_BREAK: 'requestWellnessBreak',\n RESPOND_TO_WELLNESS_BREAK: 'respondToWellnessBreak',\n GET_WELLBEING_BREAK_IDLE_CODE: 'getWellbeingBreakIdleCode',\n SET_MANAGE_WEBEX_CALLING_IN_WXCC: 'setManageWebexCallingInWxcc',\n IS_WX_BETTER_TOGETHER_ENABLED: 'isWxBetterTogetherEnabled',\n SYNC_WXAPP_MUTE_FROM_MERCURY: 'syncWxAppMuteFromMercury',\n GET_CALL_DETAILS_ON_WEBEX: 'getCallDetailsOnWebex',\n ENSURE_WXAPP_MERCURY_CONNECTED: 'ensureWxAppMercuryConnected',\n};\n"],"mappings":"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","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
Object.defineProperty(exports, "AGENT_EVENTS", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _types3.AGENT_EVENTS;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "AddressBook", {
|
|
@@ -24,19 +24,19 @@ Object.defineProperty(exports, "ApiAIAssistant", {
|
|
|
24
24
|
Object.defineProperty(exports, "CC_AGENT_EVENTS", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function () {
|
|
27
|
-
return
|
|
27
|
+
return _types4.CC_AGENT_EVENTS;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
Object.defineProperty(exports, "CC_EVENTS", {
|
|
31
31
|
enumerable: true,
|
|
32
32
|
get: function () {
|
|
33
|
-
return
|
|
33
|
+
return _types4.CC_EVENTS;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
Object.defineProperty(exports, "CC_TASK_EVENTS", {
|
|
37
37
|
enumerable: true,
|
|
38
38
|
get: function () {
|
|
39
|
-
return
|
|
39
|
+
return _types4.CC_TASK_EVENTS;
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
Object.defineProperty(exports, "ContactCenter", {
|
|
@@ -48,28 +48,52 @@ Object.defineProperty(exports, "ContactCenter", {
|
|
|
48
48
|
Object.defineProperty(exports, "IDLE_CODE", {
|
|
49
49
|
enumerable: true,
|
|
50
50
|
get: function () {
|
|
51
|
-
return
|
|
51
|
+
return _types4.IDLE_CODE;
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
Object.defineProperty(exports, "TASK_EVENTS", {
|
|
55
55
|
enumerable: true,
|
|
56
56
|
get: function () {
|
|
57
|
-
return
|
|
57
|
+
return _types2.TASK_EVENTS;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
Object.defineProperty(exports, "Task", {
|
|
61
61
|
enumerable: true,
|
|
62
62
|
get: function () {
|
|
63
|
-
return
|
|
63
|
+
return _Task.default;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "UserPreference", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function () {
|
|
69
|
+
return _UserPreference.default;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "WELLNESS_BREAK_NOTIFICATION_ACTIONS", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function () {
|
|
75
|
+
return _types.WELLNESS_BREAK_NOTIFICATION_ACTIONS;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "WELLNESS_BREAK_USER_ACTIONS", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function () {
|
|
81
|
+
return _types.WELLNESS_BREAK_USER_ACTIONS;
|
|
64
82
|
}
|
|
65
83
|
});
|
|
66
84
|
Object.defineProperty(exports, "WRAP_UP_CODE", {
|
|
67
85
|
enumerable: true,
|
|
68
86
|
get: function () {
|
|
69
|
-
return
|
|
87
|
+
return _types4.WRAP_UP_CODE;
|
|
70
88
|
}
|
|
71
89
|
});
|
|
72
90
|
exports.default = void 0;
|
|
91
|
+
Object.defineProperty(exports, "getDefaultUIControls", {
|
|
92
|
+
enumerable: true,
|
|
93
|
+
get: function () {
|
|
94
|
+
return _uiControlsComputer.getDefaultUIControls;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
73
97
|
Object.defineProperty(exports, "routingAgent", {
|
|
74
98
|
enumerable: true,
|
|
75
99
|
get: function () {
|
|
@@ -79,13 +103,16 @@ Object.defineProperty(exports, "routingAgent", {
|
|
|
79
103
|
var _webexCore = require("@webex/webex-core");
|
|
80
104
|
var _config = _interopRequireDefault(require("./config"));
|
|
81
105
|
var _cc = _interopRequireDefault(require("./cc"));
|
|
82
|
-
var _task = _interopRequireDefault(require("./services/task"));
|
|
83
106
|
var _agent = _interopRequireDefault(require("./services/agent"));
|
|
107
|
+
var _Task = _interopRequireDefault(require("./services/task/Task"));
|
|
84
108
|
var _AddressBook = _interopRequireDefault(require("./services/AddressBook"));
|
|
85
109
|
var _ApiAiAssistant = _interopRequireDefault(require("./services/ApiAiAssistant"));
|
|
86
|
-
var
|
|
87
|
-
var
|
|
88
|
-
var
|
|
110
|
+
var _UserPreference = _interopRequireDefault(require("./services/UserPreference"));
|
|
111
|
+
var _types = require("./types");
|
|
112
|
+
var _types2 = require("./services/task/types");
|
|
113
|
+
var _types3 = require("./services/agent/types");
|
|
114
|
+
var _types4 = require("./services/config/types");
|
|
115
|
+
var _uiControlsComputer = require("./services/task/state-machine/uiControlsComputer");
|
|
89
116
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
90
117
|
/**
|
|
91
118
|
* @module ContactCenterModule
|
|
@@ -97,19 +124,20 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
97
124
|
* @category Core
|
|
98
125
|
*/
|
|
99
126
|
|
|
100
|
-
// Service exports
|
|
101
127
|
/**
|
|
102
|
-
*
|
|
128
|
+
* Agent routing service for Contact Center operations
|
|
103
129
|
* @category Services
|
|
104
130
|
*/
|
|
105
131
|
|
|
106
132
|
/**
|
|
107
|
-
*
|
|
133
|
+
* Task class represents a contact center task that can be managed by an agent
|
|
108
134
|
* @category Services
|
|
109
135
|
*/
|
|
110
136
|
|
|
111
137
|
// API exports (AddressBook is public, EntryPoint and Queue are accessed via cc wrappers)
|
|
112
138
|
|
|
139
|
+
/** Agent Wellness Break notification and action wire values. */
|
|
140
|
+
|
|
113
141
|
/** EntryPoint API types */
|
|
114
142
|
|
|
115
143
|
// Enums
|
|
@@ -151,6 +179,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
151
179
|
|
|
152
180
|
/** Task related types */
|
|
153
181
|
|
|
182
|
+
/** UI controls utilities */
|
|
183
|
+
|
|
154
184
|
/** Agent related types */
|
|
155
185
|
|
|
156
186
|
/** Config related types */
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_webexCore","require","_config","_interopRequireDefault","_cc","
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_config","_interopRequireDefault","_cc","_agent","_Task","_AddressBook","_ApiAiAssistant","_UserPreference","_types","_types2","_types3","_types4","_uiControlsComputer","e","__esModule","default","registerPlugin","ContactCenter","config","_default","exports"],"sources":["index.ts"],"sourcesContent":["import {registerPlugin} from '@webex/webex-core';\nimport config from './config';\nimport ContactCenter from './cc';\n\n/**\n * @module ContactCenterModule\n * /\n\n// Core exports\n/**\n * ContactCenter is the main plugin class for Webex Contact Center integration\n * @category Core\n */\nexport {default as ContactCenter} from './cc';\n\n/**\n * Agent routing service for Contact Center operations\n * @category Services\n */\nexport {default as routingAgent} from './services/agent';\n\n/**\n * Task class represents a contact center task that can be managed by an agent\n * @category Services\n */\nexport {default as Task} from './services/task/Task';\n\n// API exports (AddressBook is public, EntryPoint and Queue are accessed via cc wrappers)\nexport {default as AddressBook} from './services/AddressBook';\nexport {default as ApiAIAssistant} from './services/ApiAiAssistant';\nexport {default as UserPreference} from './services/UserPreference';\n\n/** Agent Wellness Break notification and action wire values. */\nexport {WELLNESS_BREAK_NOTIFICATION_ACTIONS, WELLNESS_BREAK_USER_ACTIONS} from './types';\n\n/** EntryPoint API types */\nexport type {\n EntryPointRecord,\n EntryPointListResponse,\n EntryPointSearchParams,\n AddressBookEntry,\n AddressBookEntriesResponse,\n AddressBookEntrySearchParams,\n ContactServiceQueuesResponse,\n ContactServiceQueueSearchParams,\n ContactServiceQueue,\n} from './types';\n\n// Enums\n/**\n * Task Events for Contact Center operations\n * @enum {string}\n * @category Enums\n */\nexport {TASK_EVENTS} from './services/task/types';\nexport type {TASK_EVENTS as TaskEvents} from './services/task/types';\n\n/**\n * Agent Events for Contact Center operations\n * @enum {string}\n * @category Enums\n */\nexport {AGENT_EVENTS} from './services/agent/types';\nexport type {AGENT_EVENTS as AgentEvents} from './services/agent/types';\n\n/**\n * Contact Center Task Events\n * @enum {string}\n * @category Enums\n */\nexport {CC_TASK_EVENTS} from './services/config/types';\n\n/**\n * Contact Center Agent Events\n * @enum {string}\n * @category Enums\n */\nexport {CC_AGENT_EVENTS} from './services/config/types';\n\n/**\n * Combined Contact Center Events\n * @enum {string}\n * @category Enums\n */\nexport {CC_EVENTS} from './services/config/types';\nexport type {CC_EVENTS as ContactCenterEvents} from './services/config/types';\n\n// Interfaces\n/** Main types and interfaces for Contact Center functionality */\nexport type {\n /** Interface for Contact Center plugin */\n IContactCenter,\n /** Configuration options for Contact Center plugin */\n CCPluginConfig,\n /** WebexSDK interface */\n WebexSDK,\n} from './types';\n\n// Types\n/** Agent related types */\nexport type {\n /** Login options for agents */\n LoginOption,\n /** Agent login information */\n AgentLogin,\n /** Agent device update information */\n AgentProfileUpdate,\n /** Station login response */\n StationLoginResponse,\n /** Station logout response */\n StationLogoutResponse,\n /** Buddy agents response */\n BuddyAgentsResponse,\n /** Buddy agents information */\n BuddyAgents,\n /** Subscribe request parameters */\n SubscribeRequest,\n /** Upload logs response */\n UploadLogsResponse,\n /** Update device type response */\n UpdateDeviceTypeResponse,\n /** Generic error interface */\n GenericError,\n /** Set state response */\n SetStateResponse,\n /** Wellness notification action */\n WellnessBreakNotificationAction,\n /** Wellness action API value */\n WellnessBreakUserAction,\n /** Validated agent-scoped wellness notification */\n WellnessBreakEvent,\n /** Wellness offer-response parameters */\n RespondToWellnessBreakParams,\n} from './types';\n\n/** Task related types */\nexport type {\n AgentContact,\n /** Event emitter contract for task consumers (no @types/node needed) */\n IEventEmitter,\n /** Task interface */\n ITask,\n Interaction,\n TaskData,\n /** Task response */\n TaskResponse,\n /** Conference participant drop request */\n DropConferenceParticipantPayload,\n ConsultPayload,\n ConsultEndPayload,\n ConsultTransferPayLoad,\n /** Dialer payload */\n DialerPayload,\n TransferPayLoad,\n ResumeRecordingPayload,\n WrapupPayLoad,\n /** UI control types for task buttons */\n InteractionUIControls,\n TaskUILeg,\n TaskUIControls,\n TaskUIControlState,\n} from './services/task/types';\n\n/** UI controls utilities */\nexport {getDefaultUIControls} from './services/task/state-machine/uiControlsComputer';\n\n/** Agent related types */\nexport type {\n /** State change interface */\n StateChange,\n /** Logout interface */\n Logout,\n /** State change success response */\n StateChangeSuccess,\n /** Station login success response */\n StationLoginSuccess,\n /** Extended station login success response with notification tracking */\n StationLoginSuccessResponse,\n /** Device type update success response */\n DeviceTypeUpdateSuccess,\n /** Agent login success response */\n LogoutSuccess,\n /** Agent relogin success response */\n ReloginSuccess,\n /** Agent state type */\n AgentState,\n /** User station login parameters */\n UserStationLogin,\n /** Device type for agent login */\n DeviceType,\n /** Buddy agent details */\n BuddyDetails,\n /** Buddy agents success response */\n BuddyAgentsSuccess,\n} from './services/agent/types';\n\n/** Config related types */\nexport type {\n /** Profile interface */\n Profile,\n /** Response type from getUserUsingCI method */\n AgentResponse,\n /** Response from getDesktopProfileById */\n DesktopProfileResponse,\n /** Response from getMultimediaProfileById */\n MultimediaProfileResponse,\n /** Response from getListOfTeams */\n ListTeamsResponse,\n /** Response from getListOfAuxCodes */\n ListAuxCodesResponse,\n /** Response from getSiteInfo */\n SiteInfo,\n /** Response from getOrgInfo */\n OrgInfo,\n /** Response from getOrganizationSetting */\n OrgSettings,\n /** Response from getTenantData */\n TenantData,\n /** Response from getURLMapping */\n URLMapping,\n /** Response from getDialPlanData */\n DialPlanEntity,\n /** Auxiliary code information */\n AuxCode,\n /** Team information */\n TeamList,\n /** Wrap-up reason information */\n WrapUpReason,\n /** WebSocket event data */\n WebSocketEvent,\n /** Wrap-up configuration data */\n WrapupData,\n /** Base entity type */\n Entity,\n /** Dial plan configuration */\n DialPlan,\n /** Auxiliary code type (IDLE_CODE or WRAP_UP_CODE) */\n AuxCodeType,\n /** User preference data structure */\n UserPreference as UserPreferenceData,\n /** Request payload for creating user preferences */\n CreateUserPreferenceRequest,\n /** Request payload for updating user preferences */\n UpdateUserPreferenceRequest,\n /** Query parameters for fetching user preferences */\n GetUserPreferenceParams,\n} from './services/config/types';\n\n// Constants\n/**\n * Idle code constant\n * @constant {string}\n * @category Enums\n */\nexport {IDLE_CODE} from './services/config/types';\n\n/**\n * Wrap up code constant\n * @constant {string}\n * @category Enums\n */\nexport {WRAP_UP_CODE} from './services/config/types';\n\nregisterPlugin('cc', ContactCenter, {\n config,\n});\n\n/** The Contact Center plugin default export */\nexport default ContactCenter;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,GAAA,GAAAD,sBAAA,CAAAF,OAAA;AAiBA,IAAAI,MAAA,GAAAF,sBAAA,CAAAF,OAAA;AAMA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AAGA,IAAAM,YAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,eAAA,GAAAL,sBAAA,CAAAF,OAAA;AACA,IAAAQ,eAAA,GAAAN,sBAAA,CAAAF,OAAA;AAGA,IAAAS,MAAA,GAAAT,OAAA;AAqBA,IAAAU,OAAA,GAAAV,OAAA;AAQA,IAAAW,OAAA,GAAAX,OAAA;AAQA,IAAAY,OAAA,GAAAZ,OAAA;AA8FA,IAAAa,mBAAA,GAAAb,OAAA;AAAsF,SAAAE,uBAAAY,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAhKtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;;AAKA;;AAGA;;AAaA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAIA;AACA;;AAUA;AACA;;AAoCA;;AA4BA;;AAGA;;AA8BA;;AAoDA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;;AAGA,IAAAG,yBAAc,EAAC,IAAI,EAAEC,WAAa,EAAE;EAClCC,MAAM,EAANA;AACF,CAAC,CAAC;;AAEF;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAL,OAAA,GACeE,WAAa","ignoreList":[]}
|
|
@@ -379,6 +379,22 @@ class MetricsManager {
|
|
|
379
379
|
};
|
|
380
380
|
}
|
|
381
381
|
|
|
382
|
+
/**
|
|
383
|
+
* Clears a running timed event without emitting a metric.
|
|
384
|
+
* @param keys - A string or array of strings representing event keys (same as timeEvent).
|
|
385
|
+
* @public
|
|
386
|
+
*/
|
|
387
|
+
cancelTimedEvent(keys) {
|
|
388
|
+
if (this.isMetricsDisabled()) {
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
const keyArray = Array.isArray(keys) ? keys : [keys];
|
|
392
|
+
if (keyArray.length === 0) {
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
delete this.runningEvents[keyArray[0]];
|
|
396
|
+
}
|
|
397
|
+
|
|
382
398
|
/**
|
|
383
399
|
* Sets the Webex SDK instance and marks the manager as ready when the SDK is ready.
|
|
384
400
|
* @param webex - The Webex SDK instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_behavioralEvents","_constants","e","__esModule","default","PRODUCT_NAME_UPPER","PRODUCT_NAME","toUpperCase","MetricsManager","runningEvents","pendingBehavioralEvents","pendingOperationalEvents","pendingBusinessEvents","readyToSubmitEvents","submittingEvents","metricsDisabled","constructor","setReadyToSubmitEvents","submitPendingEvents","submitPendingBehavioralEvents","submitPendingOperationalEvents","submitPendingBusinessEvents","length","eventsToSubmit","forEach","event","webex","internal","newMetrics","submitBehavioralEvent","product","taxonomy","agent","target","verb","payload","submitOperationalEvent","name","submitBusinessEvent","metadata","appType","addDurationIfTimed","eventName","options","durationKey","genericKey","timing","Object","entries","keys","has","startTime","Date","now","spacesToUnderscore","str","replace","preparePayload","obj","key","undefined","Array","isArray","window","payloadWithCommonMetadata","tabHidden","document","hidden","isMetricsDisabled","setMetricsDisabled","disabled","clearPendingEvents","trackBehavioralEvent","getEventTaxonomy","push","trackOperationalEvent","trackBusinessEvent","trackEvent","metricServices","metricService","LoggerProxy","error","timeEvent","keyArray","Set","setWebex","ready","once","getInstance","instance","resetInstance","getCommonTrackingFieldForAQMResponse","response","fields","agentId","data","agentSessionId","teamId","siteId","orgId","eventType","type","trackingId","notifTrackingId","getCommonTrackingFieldForAQMResponseFailed","failureResponse","failureType","failureReason","reason","reasonCode","exports"],"sources":["MetricsManager.ts"],"sourcesContent":["import {\n EventPayload,\n MetricEventAgent,\n MetricEventProduct,\n MetricEventVerb,\n} from '@webex/internal-plugin-metrics/src/metrics.types';\n\nimport {WebexSDK} from '../types';\nimport LoggerProxy from '../logger-proxy';\nimport {BehavioralEventTaxonomy, getEventTaxonomy} from './behavioral-events';\nimport {METRIC_EVENT_NAMES} from './constants';\nimport {Failure} from '../services/core/GlobalTypes';\nimport {PRODUCT_NAME} from '../constants';\n\ntype BehavioralEvent = {\n taxonomy: BehavioralEventTaxonomy;\n payload: EventPayload;\n};\n\ntype GenericEvent = {\n name: string;\n payload: EventPayload;\n};\n\nexport type MetricsType = 'behavioral' | 'operational' | 'business';\n\nconst PRODUCT_NAME_UPPER = PRODUCT_NAME.toUpperCase();\n/**\n * @class MetricsManager\n * @classdesc Manages the collection, batching, and submission of behavioral, operational, and business metrics for the Webex SDK.\n * Implements a singleton pattern to ensure a single instance throughout the application lifecycle.\n *\n * @remarks\n * This class is responsible for tracking, batching, and submitting various types of metric events.\n * It also provides utility methods for extracting common tracking fields from AQM responses.\n * @ignore\n */\nexport default class MetricsManager {\n /**\n * The Webex SDK instance used for submitting metrics.\n * @private\n */\n private webex: WebexSDK;\n\n /**\n * Stores currently running timed events.\n * @private\n */\n private readonly runningEvents: Record<string, {startTime: number; keys: Set<string>}> = {};\n\n /**\n * Queue for pending behavioral events.\n * @private\n */\n private pendingBehavioralEvents: BehavioralEvent[] = [];\n\n /**\n * Queue for pending operational events.\n * @private\n */\n private pendingOperationalEvents: GenericEvent[] = [];\n\n /**\n * Queue for pending business events.\n * @private\n */\n private pendingBusinessEvents: GenericEvent[] = [];\n\n /**\n * Indicates if the manager is ready to submit events.\n * @private\n */\n private readyToSubmitEvents = false;\n\n /**\n * Lock to prevent concurrent submissions.\n * @private\n */\n private submittingEvents = false; // Add a lock for submitting events\n\n /**\n * Singleton instance of MetricsManager.\n * @private\n */\n private static instance: MetricsManager;\n\n /**\n * Flag to disable metrics collection.\n * @private\n */\n private metricsDisabled = false; // TODO: SPARK-637285\n\n /**\n * Private constructor to enforce singleton pattern.\n * @private\n */\n // eslint-disable-next-line no-useless-constructor\n private constructor() {}\n\n /**\n * Marks the manager as ready to submit events and triggers submission.\n * @private\n */\n private setReadyToSubmitEvents() {\n this.readyToSubmitEvents = true;\n this.submitPendingEvents();\n }\n\n /**\n * Submits all pending events if not already submitting.\n * @private\n */\n private async submitPendingEvents() {\n if (this.submittingEvents) {\n return;\n }\n this.submittingEvents = true;\n try {\n await this.submitPendingBehavioralEvents();\n await this.submitPendingOperationalEvents();\n await this.submitPendingBusinessEvents();\n } finally {\n this.submittingEvents = false;\n }\n }\n\n /**\n * Submits all pending behavioral events if ready.\n * @private\n */\n private async submitPendingBehavioralEvents() {\n if (this.pendingBehavioralEvents.length === 0) {\n return;\n }\n if (this.readyToSubmitEvents) {\n const eventsToSubmit = [...this.pendingBehavioralEvents];\n this.pendingBehavioralEvents.length = 0;\n eventsToSubmit.forEach((event) => {\n this.webex.internal.newMetrics.submitBehavioralEvent({\n product: event.taxonomy.product as MetricEventProduct,\n agent: event.taxonomy.agent as MetricEventAgent,\n target: event.taxonomy.target,\n verb: event.taxonomy.verb as MetricEventVerb,\n payload: event.payload,\n });\n });\n }\n }\n\n /**\n * Submits all pending operational events if ready.\n * @private\n */\n private async submitPendingOperationalEvents() {\n if (this.pendingOperationalEvents.length === 0) {\n return;\n }\n if (this.readyToSubmitEvents) {\n const eventsToSubmit = [...this.pendingOperationalEvents];\n this.pendingOperationalEvents.length = 0;\n eventsToSubmit.forEach((event) => {\n this.webex.internal.newMetrics.submitOperationalEvent({\n name: `${PRODUCT_NAME_UPPER}_${event.name}`,\n payload: event.payload,\n });\n });\n }\n }\n\n /**\n * Submits all pending business events if ready.\n * @private\n */\n private async submitPendingBusinessEvents() {\n if (this.pendingBusinessEvents.length === 0) {\n return;\n }\n if (this.readyToSubmitEvents) {\n const eventsToSubmit = [...this.pendingBusinessEvents];\n this.pendingBusinessEvents.length = 0;\n eventsToSubmit.forEach((event) => {\n this.webex.internal.newMetrics.submitBusinessEvent({\n name: `${PRODUCT_NAME_UPPER}_${event.name}`,\n payload: event.payload,\n metadata: {\n appType: PRODUCT_NAME,\n },\n });\n });\n }\n }\n\n /**\n * Adds a duration property to the event payload if the event was timed.\n * @param eventName - The name of the event.\n * @param options - Optional event payload.\n * @returns The event payload with duration if applicable.\n * @private\n */\n private addDurationIfTimed(eventName: string, options?: EventPayload): EventPayload {\n const durationKey = 'duration_ms';\n for (const [genericKey, timing] of Object.entries(this.runningEvents)) {\n if (timing.keys.has(eventName)) {\n const startTime = timing.startTime;\n // Remove all keys for this operation.\n delete this.runningEvents[genericKey];\n options = options || {};\n options[durationKey] = Date.now() - startTime;\n\n return options;\n }\n }\n\n return options || {};\n }\n\n /**\n * Converts spaces in a string to underscores.\n * @param str - The input string.\n * @returns The string with spaces replaced by underscores.\n * @public\n * @example\n * MetricsManager.spacesToUnderscore('my event name'); // 'my_event_name'\n */\n static spacesToUnderscore(str: string): string {\n return str.replace(/ /g, '_');\n }\n\n /**\n * Prepares the event payload by removing empty or undefined fields and adding common metadata.\n * @param obj - The original event payload.\n * @returns The cleaned and enriched event payload.\n * @private\n */\n private static preparePayload(obj: EventPayload): EventPayload {\n const payload: EventPayload = {};\n\n Object.keys(obj).forEach((key) => {\n if (\n obj[key] !== undefined &&\n obj[key] !== null &&\n obj[key] !== '' &&\n !Array.isArray(obj[key]) &&\n !(typeof obj[key] === 'object' && Object.keys(obj[key]).length === 0)\n ) {\n payload[MetricsManager.spacesToUnderscore(key)] = obj[key];\n }\n });\n\n if (typeof window === 'undefined') {\n return payload;\n }\n\n const payloadWithCommonMetadata = {...payload};\n payloadWithCommonMetadata.tabHidden = document.hidden;\n\n return payloadWithCommonMetadata;\n }\n\n /**\n * Checks if metrics collection is currently disabled.\n * @returns True if metrics are disabled, false otherwise.\n * @private\n */\n private isMetricsDisabled(): boolean {\n // TODO: SPARK-637285 Need to return true if in development mode to avoid sending metrics to the server\n return this.metricsDisabled;\n }\n\n /**\n * Enables or disables metrics collection. Clears pending events if disabled.\n * @param disabled - Whether to disable metrics.\n * @public\n * @example\n * MetricsManager.getInstance().setMetricsDisabled(true);\n */\n public setMetricsDisabled(disabled: boolean) {\n this.metricsDisabled = disabled;\n if (disabled) {\n this.clearPendingEvents();\n }\n }\n\n /**\n * Clears all pending events from the queues.\n * @private\n */\n private clearPendingEvents() {\n this.pendingBehavioralEvents.length = 0;\n this.pendingOperationalEvents.length = 0;\n this.pendingBusinessEvents.length = 0;\n }\n\n /**\n * Tracks a behavioral event and submits it if possible.\n * @param name - The metric event name.\n * @param options - Optional event payload.\n * @public\n * @example\n * MetricsManager.getInstance().trackBehavioralEvent('AGENT_LOGIN', {agentId: '123'});\n */\n public trackBehavioralEvent(name: METRIC_EVENT_NAMES, options?: EventPayload) {\n if (this.isMetricsDisabled()) {\n return;\n }\n\n const taxonomy = getEventTaxonomy(name);\n\n const payload = MetricsManager.preparePayload(this.addDurationIfTimed(name, options));\n\n this.pendingBehavioralEvents.push({taxonomy, payload});\n this.submitPendingBehavioralEvents();\n }\n\n /**\n * Tracks an operational event and submits it if possible.\n * @param name - The metric event name.\n * @param options - Optional event payload.\n * @public\n * @example\n * MetricsManager.getInstance().trackOperationalEvent('AGENT_LOGOUT', {agentId: '123'});\n */\n public trackOperationalEvent(name: METRIC_EVENT_NAMES, options?: EventPayload) {\n if (this.isMetricsDisabled()) {\n return;\n }\n\n const payload = this.addDurationIfTimed(name, options);\n this.pendingOperationalEvents.push({\n name: MetricsManager.spacesToUnderscore(name).toUpperCase(),\n payload: MetricsManager.preparePayload(payload),\n });\n this.submitPendingOperationalEvents();\n }\n\n /**\n * Tracks a business event and submits it if possible.\n * @param name - The metric event name.\n * @param options - Optional event payload.\n * @public\n * @example\n * MetricsManager.getInstance().trackBusinessEvent('AGENT_TRANSFER', {agentId: '123'});\n */\n public trackBusinessEvent(name: METRIC_EVENT_NAMES, options?: EventPayload) {\n if (this.isMetricsDisabled()) {\n return;\n }\n\n const payload = this.addDurationIfTimed(name, options);\n this.pendingBusinessEvents.push({\n name: MetricsManager.spacesToUnderscore(name).toUpperCase(),\n payload: MetricsManager.preparePayload(payload),\n });\n this.submitPendingBusinessEvents();\n }\n\n /**\n * Tracks an event across one or more metric services.\n * @param name - The metric event name.\n * @param payload - Optional event payload.\n * @param metricServices - Array of metric types to track (default: ['behavioral']).\n * @public\n * @example\n * MetricsManager.getInstance().trackEvent('AGENT_LOGIN', {agentId: '123'}, ['behavioral', 'operational']);\n */\n public trackEvent(\n name: METRIC_EVENT_NAMES,\n payload?: EventPayload,\n metricServices: MetricsType[] = ['behavioral']\n ) {\n if (this.isMetricsDisabled()) {\n return;\n }\n\n for (const metricService of metricServices) {\n switch (metricService) {\n case 'behavioral':\n this.trackBehavioralEvent(name, payload);\n break;\n case 'operational':\n this.trackOperationalEvent(name, payload);\n break;\n case 'business':\n this.trackBusinessEvent(name, payload);\n break;\n default:\n LoggerProxy.error(`[MetricsManager] Invalid metric type: ${metricService}`);\n }\n }\n }\n\n /**\n * Starts timing for one or more event keys.\n * @param keys - A string or array of strings representing event keys.\n * @public\n * @example\n * MetricsManager.getInstance().timeEvent('AGENT_LOGIN');\n * MetricsManager.getInstance().timeEvent(['AGENT_LOGIN', 'AGENT_LOGOUT']);\n */\n public timeEvent(keys: string | string[]) {\n if (this.isMetricsDisabled()) {\n return;\n }\n const keyArray = Array.isArray(keys) ? keys : [keys];\n // Use the first key as the tracking key.\n if (keyArray.length === 0) {\n LoggerProxy.error('[MetricsManager] No keys provided for timeEvent');\n\n return;\n }\n const genericKey = keyArray[0];\n this.runningEvents[genericKey] = {startTime: Date.now(), keys: new Set(keyArray)};\n }\n\n /**\n * Sets the Webex SDK instance and marks the manager as ready when the SDK is ready.\n * @param webex - The Webex SDK instance.\n * @private\n */\n private setWebex(webex: WebexSDK) {\n this.webex = webex;\n if (this.webex.ready) {\n this.setReadyToSubmitEvents();\n }\n this.webex.once('ready', () => {\n this.setReadyToSubmitEvents();\n });\n }\n\n /**\n * Returns the singleton instance of MetricsManager, initializing it if necessary.\n * @param options - Optional object containing the Webex SDK instance.\n * @returns The singleton MetricsManager instance.\n * @public\n * @example\n * const metrics = MetricsManager.getInstance({webex});\n */\n public static getInstance(options?: {webex: WebexSDK}): MetricsManager {\n if (!MetricsManager.instance) {\n MetricsManager.instance = new MetricsManager();\n }\n\n if (!MetricsManager.instance.webex && options && options.webex) {\n MetricsManager.instance.setWebex(options.webex);\n }\n\n return MetricsManager.instance;\n }\n\n /**\n * Resets the singleton instance of MetricsManager. Useful for testing.\n * @public\n * @example\n * MetricsManager.resetInstance();\n */\n public static resetInstance() {\n MetricsManager.instance = undefined;\n }\n\n /**\n * Extracts common tracking fields from an AQM response object.\n * @param response - The AQM response object.\n * @returns An object containing common tracking fields.\n * @public\n * @example\n * const fields = MetricsManager.getCommonTrackingFieldForAQMResponse(response);\n */\n public static getCommonTrackingFieldForAQMResponse(response: any): Record<string, any> {\n // This method is used to extract common tracking fields from the AQM response\n // and return them as an object. The fields are extracted from the response\n // object and its data property.\n const fields = {\n agentId: response?.data?.agentId || response?.agentId,\n agentSessionId: response?.data?.agentSessionId || response?.agentSessionId,\n teamId: response?.teamId ?? response?.data?.teamId ?? undefined,\n siteId: response?.data?.siteId || response?.siteId,\n orgId: response?.data?.orgId || response?.orgId,\n eventType: response?.type,\n trackingId: response?.data?.trackingId,\n notifTrackingId: response?.trackingId,\n };\n\n return fields;\n }\n\n /**\n * Extracts common tracking fields from an AQM failure response object.\n * @param failureResponse - The AQM failure response object.\n * @returns An object containing common tracking fields for failures.\n * @public\n * @example\n * const fields = MetricsManager.getCommonTrackingFieldForAQMResponseFailed(failureResponse);\n */\n public static getCommonTrackingFieldForAQMResponseFailed(\n failureResponse: Failure\n ): Record<string, any> {\n // This method is used to extract common tracking fields from the AQM response failure\n // and return them as an object. The fields are extracted from the response\n // object and its data property.\n const fields = {\n agentId: failureResponse?.data?.agentId,\n trackingId: failureResponse?.trackingId,\n notifTrackingId: failureResponse?.trackingId,\n orgId: failureResponse?.orgId,\n failureType: failureResponse?.type,\n failureReason: failureResponse?.data?.reason,\n reasonCode: failureResponse?.data?.reasonCode,\n };\n\n return fields;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_behavioralEvents","_constants","e","__esModule","default","PRODUCT_NAME_UPPER","PRODUCT_NAME","toUpperCase","MetricsManager","runningEvents","pendingBehavioralEvents","pendingOperationalEvents","pendingBusinessEvents","readyToSubmitEvents","submittingEvents","metricsDisabled","constructor","setReadyToSubmitEvents","submitPendingEvents","submitPendingBehavioralEvents","submitPendingOperationalEvents","submitPendingBusinessEvents","length","eventsToSubmit","forEach","event","webex","internal","newMetrics","submitBehavioralEvent","product","taxonomy","agent","target","verb","payload","submitOperationalEvent","name","submitBusinessEvent","metadata","appType","addDurationIfTimed","eventName","options","durationKey","genericKey","timing","Object","entries","keys","has","startTime","Date","now","spacesToUnderscore","str","replace","preparePayload","obj","key","undefined","Array","isArray","window","payloadWithCommonMetadata","tabHidden","document","hidden","isMetricsDisabled","setMetricsDisabled","disabled","clearPendingEvents","trackBehavioralEvent","getEventTaxonomy","push","trackOperationalEvent","trackBusinessEvent","trackEvent","metricServices","metricService","LoggerProxy","error","timeEvent","keyArray","Set","cancelTimedEvent","setWebex","ready","once","getInstance","instance","resetInstance","getCommonTrackingFieldForAQMResponse","response","fields","agentId","data","agentSessionId","teamId","siteId","orgId","eventType","type","trackingId","notifTrackingId","getCommonTrackingFieldForAQMResponseFailed","failureResponse","failureType","failureReason","reason","reasonCode","exports"],"sources":["MetricsManager.ts"],"sourcesContent":["import {\n EventPayload,\n MetricEventAgent,\n MetricEventProduct,\n MetricEventVerb,\n} from '@webex/internal-plugin-metrics/src/metrics.types';\n\nimport {WebexSDK} from '../types';\nimport LoggerProxy from '../logger-proxy';\nimport {BehavioralEventTaxonomy, getEventTaxonomy} from './behavioral-events';\nimport {METRIC_EVENT_NAMES} from './constants';\nimport {Failure} from '../services/core/GlobalTypes';\nimport {PRODUCT_NAME} from '../constants';\n\ntype BehavioralEvent = {\n taxonomy: BehavioralEventTaxonomy;\n payload: EventPayload;\n};\n\ntype GenericEvent = {\n name: string;\n payload: EventPayload;\n};\n\nexport type MetricsType = 'behavioral' | 'operational' | 'business';\n\nconst PRODUCT_NAME_UPPER = PRODUCT_NAME.toUpperCase();\n/**\n * @class MetricsManager\n * @classdesc Manages the collection, batching, and submission of behavioral, operational, and business metrics for the Webex SDK.\n * Implements a singleton pattern to ensure a single instance throughout the application lifecycle.\n *\n * @remarks\n * This class is responsible for tracking, batching, and submitting various types of metric events.\n * It also provides utility methods for extracting common tracking fields from AQM responses.\n * @ignore\n */\nexport default class MetricsManager {\n /**\n * The Webex SDK instance used for submitting metrics.\n * @private\n */\n private webex: WebexSDK;\n\n /**\n * Stores currently running timed events.\n * @private\n */\n private readonly runningEvents: Record<string, {startTime: number; keys: Set<string>}> = {};\n\n /**\n * Queue for pending behavioral events.\n * @private\n */\n private pendingBehavioralEvents: BehavioralEvent[] = [];\n\n /**\n * Queue for pending operational events.\n * @private\n */\n private pendingOperationalEvents: GenericEvent[] = [];\n\n /**\n * Queue for pending business events.\n * @private\n */\n private pendingBusinessEvents: GenericEvent[] = [];\n\n /**\n * Indicates if the manager is ready to submit events.\n * @private\n */\n private readyToSubmitEvents = false;\n\n /**\n * Lock to prevent concurrent submissions.\n * @private\n */\n private submittingEvents = false; // Add a lock for submitting events\n\n /**\n * Singleton instance of MetricsManager.\n * @private\n */\n private static instance: MetricsManager;\n\n /**\n * Flag to disable metrics collection.\n * @private\n */\n private metricsDisabled = false; // TODO: SPARK-637285\n\n /**\n * Private constructor to enforce singleton pattern.\n * @private\n */\n // eslint-disable-next-line no-useless-constructor\n private constructor() {}\n\n /**\n * Marks the manager as ready to submit events and triggers submission.\n * @private\n */\n private setReadyToSubmitEvents() {\n this.readyToSubmitEvents = true;\n this.submitPendingEvents();\n }\n\n /**\n * Submits all pending events if not already submitting.\n * @private\n */\n private async submitPendingEvents() {\n if (this.submittingEvents) {\n return;\n }\n this.submittingEvents = true;\n try {\n await this.submitPendingBehavioralEvents();\n await this.submitPendingOperationalEvents();\n await this.submitPendingBusinessEvents();\n } finally {\n this.submittingEvents = false;\n }\n }\n\n /**\n * Submits all pending behavioral events if ready.\n * @private\n */\n private async submitPendingBehavioralEvents() {\n if (this.pendingBehavioralEvents.length === 0) {\n return;\n }\n if (this.readyToSubmitEvents) {\n const eventsToSubmit = [...this.pendingBehavioralEvents];\n this.pendingBehavioralEvents.length = 0;\n eventsToSubmit.forEach((event) => {\n this.webex.internal.newMetrics.submitBehavioralEvent({\n product: event.taxonomy.product as MetricEventProduct,\n agent: event.taxonomy.agent as MetricEventAgent,\n target: event.taxonomy.target,\n verb: event.taxonomy.verb as MetricEventVerb,\n payload: event.payload,\n });\n });\n }\n }\n\n /**\n * Submits all pending operational events if ready.\n * @private\n */\n private async submitPendingOperationalEvents() {\n if (this.pendingOperationalEvents.length === 0) {\n return;\n }\n if (this.readyToSubmitEvents) {\n const eventsToSubmit = [...this.pendingOperationalEvents];\n this.pendingOperationalEvents.length = 0;\n eventsToSubmit.forEach((event) => {\n this.webex.internal.newMetrics.submitOperationalEvent({\n name: `${PRODUCT_NAME_UPPER}_${event.name}`,\n payload: event.payload,\n });\n });\n }\n }\n\n /**\n * Submits all pending business events if ready.\n * @private\n */\n private async submitPendingBusinessEvents() {\n if (this.pendingBusinessEvents.length === 0) {\n return;\n }\n if (this.readyToSubmitEvents) {\n const eventsToSubmit = [...this.pendingBusinessEvents];\n this.pendingBusinessEvents.length = 0;\n eventsToSubmit.forEach((event) => {\n this.webex.internal.newMetrics.submitBusinessEvent({\n name: `${PRODUCT_NAME_UPPER}_${event.name}`,\n payload: event.payload,\n metadata: {\n appType: PRODUCT_NAME,\n },\n });\n });\n }\n }\n\n /**\n * Adds a duration property to the event payload if the event was timed.\n * @param eventName - The name of the event.\n * @param options - Optional event payload.\n * @returns The event payload with duration if applicable.\n * @private\n */\n private addDurationIfTimed(eventName: string, options?: EventPayload): EventPayload {\n const durationKey = 'duration_ms';\n for (const [genericKey, timing] of Object.entries(this.runningEvents)) {\n if (timing.keys.has(eventName)) {\n const startTime = timing.startTime;\n // Remove all keys for this operation.\n delete this.runningEvents[genericKey];\n options = options || {};\n options[durationKey] = Date.now() - startTime;\n\n return options;\n }\n }\n\n return options || {};\n }\n\n /**\n * Converts spaces in a string to underscores.\n * @param str - The input string.\n * @returns The string with spaces replaced by underscores.\n * @public\n * @example\n * MetricsManager.spacesToUnderscore('my event name'); // 'my_event_name'\n */\n static spacesToUnderscore(str: string): string {\n return str.replace(/ /g, '_');\n }\n\n /**\n * Prepares the event payload by removing empty or undefined fields and adding common metadata.\n * @param obj - The original event payload.\n * @returns The cleaned and enriched event payload.\n * @private\n */\n private static preparePayload(obj: EventPayload): EventPayload {\n const payload: EventPayload = {};\n\n Object.keys(obj).forEach((key) => {\n if (\n obj[key] !== undefined &&\n obj[key] !== null &&\n obj[key] !== '' &&\n !Array.isArray(obj[key]) &&\n !(typeof obj[key] === 'object' && Object.keys(obj[key]).length === 0)\n ) {\n payload[MetricsManager.spacesToUnderscore(key)] = obj[key];\n }\n });\n\n if (typeof window === 'undefined') {\n return payload;\n }\n\n const payloadWithCommonMetadata = {...payload};\n payloadWithCommonMetadata.tabHidden = document.hidden;\n\n return payloadWithCommonMetadata;\n }\n\n /**\n * Checks if metrics collection is currently disabled.\n * @returns True if metrics are disabled, false otherwise.\n * @private\n */\n private isMetricsDisabled(): boolean {\n // TODO: SPARK-637285 Need to return true if in development mode to avoid sending metrics to the server\n return this.metricsDisabled;\n }\n\n /**\n * Enables or disables metrics collection. Clears pending events if disabled.\n * @param disabled - Whether to disable metrics.\n * @public\n * @example\n * MetricsManager.getInstance().setMetricsDisabled(true);\n */\n public setMetricsDisabled(disabled: boolean) {\n this.metricsDisabled = disabled;\n if (disabled) {\n this.clearPendingEvents();\n }\n }\n\n /**\n * Clears all pending events from the queues.\n * @private\n */\n private clearPendingEvents() {\n this.pendingBehavioralEvents.length = 0;\n this.pendingOperationalEvents.length = 0;\n this.pendingBusinessEvents.length = 0;\n }\n\n /**\n * Tracks a behavioral event and submits it if possible.\n * @param name - The metric event name.\n * @param options - Optional event payload.\n * @public\n * @example\n * MetricsManager.getInstance().trackBehavioralEvent('AGENT_LOGIN', {agentId: '123'});\n */\n public trackBehavioralEvent(name: METRIC_EVENT_NAMES, options?: EventPayload) {\n if (this.isMetricsDisabled()) {\n return;\n }\n\n const taxonomy = getEventTaxonomy(name);\n\n const payload = MetricsManager.preparePayload(this.addDurationIfTimed(name, options));\n\n this.pendingBehavioralEvents.push({taxonomy, payload});\n this.submitPendingBehavioralEvents();\n }\n\n /**\n * Tracks an operational event and submits it if possible.\n * @param name - The metric event name.\n * @param options - Optional event payload.\n * @public\n * @example\n * MetricsManager.getInstance().trackOperationalEvent('AGENT_LOGOUT', {agentId: '123'});\n */\n public trackOperationalEvent(name: METRIC_EVENT_NAMES, options?: EventPayload) {\n if (this.isMetricsDisabled()) {\n return;\n }\n\n const payload = this.addDurationIfTimed(name, options);\n this.pendingOperationalEvents.push({\n name: MetricsManager.spacesToUnderscore(name).toUpperCase(),\n payload: MetricsManager.preparePayload(payload),\n });\n this.submitPendingOperationalEvents();\n }\n\n /**\n * Tracks a business event and submits it if possible.\n * @param name - The metric event name.\n * @param options - Optional event payload.\n * @public\n * @example\n * MetricsManager.getInstance().trackBusinessEvent('AGENT_TRANSFER', {agentId: '123'});\n */\n public trackBusinessEvent(name: METRIC_EVENT_NAMES, options?: EventPayload) {\n if (this.isMetricsDisabled()) {\n return;\n }\n\n const payload = this.addDurationIfTimed(name, options);\n this.pendingBusinessEvents.push({\n name: MetricsManager.spacesToUnderscore(name).toUpperCase(),\n payload: MetricsManager.preparePayload(payload),\n });\n this.submitPendingBusinessEvents();\n }\n\n /**\n * Tracks an event across one or more metric services.\n * @param name - The metric event name.\n * @param payload - Optional event payload.\n * @param metricServices - Array of metric types to track (default: ['behavioral']).\n * @public\n * @example\n * MetricsManager.getInstance().trackEvent('AGENT_LOGIN', {agentId: '123'}, ['behavioral', 'operational']);\n */\n public trackEvent(\n name: METRIC_EVENT_NAMES,\n payload?: EventPayload,\n metricServices: MetricsType[] = ['behavioral']\n ) {\n if (this.isMetricsDisabled()) {\n return;\n }\n\n for (const metricService of metricServices) {\n switch (metricService) {\n case 'behavioral':\n this.trackBehavioralEvent(name, payload);\n break;\n case 'operational':\n this.trackOperationalEvent(name, payload);\n break;\n case 'business':\n this.trackBusinessEvent(name, payload);\n break;\n default:\n LoggerProxy.error(`[MetricsManager] Invalid metric type: ${metricService}`);\n }\n }\n }\n\n /**\n * Starts timing for one or more event keys.\n * @param keys - A string or array of strings representing event keys.\n * @public\n * @example\n * MetricsManager.getInstance().timeEvent('AGENT_LOGIN');\n * MetricsManager.getInstance().timeEvent(['AGENT_LOGIN', 'AGENT_LOGOUT']);\n */\n public timeEvent(keys: string | string[]) {\n if (this.isMetricsDisabled()) {\n return;\n }\n const keyArray = Array.isArray(keys) ? keys : [keys];\n // Use the first key as the tracking key.\n if (keyArray.length === 0) {\n LoggerProxy.error('[MetricsManager] No keys provided for timeEvent');\n\n return;\n }\n const genericKey = keyArray[0];\n this.runningEvents[genericKey] = {startTime: Date.now(), keys: new Set(keyArray)};\n }\n\n /**\n * Clears a running timed event without emitting a metric.\n * @param keys - A string or array of strings representing event keys (same as timeEvent).\n * @public\n */\n public cancelTimedEvent(keys: string | string[]): void {\n if (this.isMetricsDisabled()) {\n return;\n }\n const keyArray = Array.isArray(keys) ? keys : [keys];\n if (keyArray.length === 0) {\n return;\n }\n delete this.runningEvents[keyArray[0]];\n }\n\n /**\n * Sets the Webex SDK instance and marks the manager as ready when the SDK is ready.\n * @param webex - The Webex SDK instance.\n * @private\n */\n private setWebex(webex: WebexSDK) {\n this.webex = webex;\n if (this.webex.ready) {\n this.setReadyToSubmitEvents();\n }\n this.webex.once('ready', () => {\n this.setReadyToSubmitEvents();\n });\n }\n\n /**\n * Returns the singleton instance of MetricsManager, initializing it if necessary.\n * @param options - Optional object containing the Webex SDK instance.\n * @returns The singleton MetricsManager instance.\n * @public\n * @example\n * const metrics = MetricsManager.getInstance({webex});\n */\n public static getInstance(options?: {webex: WebexSDK}): MetricsManager {\n if (!MetricsManager.instance) {\n MetricsManager.instance = new MetricsManager();\n }\n\n if (!MetricsManager.instance.webex && options && options.webex) {\n MetricsManager.instance.setWebex(options.webex);\n }\n\n return MetricsManager.instance;\n }\n\n /**\n * Resets the singleton instance of MetricsManager. Useful for testing.\n * @public\n * @example\n * MetricsManager.resetInstance();\n */\n public static resetInstance() {\n MetricsManager.instance = undefined;\n }\n\n /**\n * Extracts common tracking fields from an AQM response object.\n * @param response - The AQM response object.\n * @returns An object containing common tracking fields.\n * @public\n * @example\n * const fields = MetricsManager.getCommonTrackingFieldForAQMResponse(response);\n */\n public static getCommonTrackingFieldForAQMResponse(response: any): Record<string, any> {\n // This method is used to extract common tracking fields from the AQM response\n // and return them as an object. The fields are extracted from the response\n // object and its data property.\n const fields = {\n agentId: response?.data?.agentId || response?.agentId,\n agentSessionId: response?.data?.agentSessionId || response?.agentSessionId,\n teamId: response?.teamId ?? response?.data?.teamId ?? undefined,\n siteId: response?.data?.siteId || response?.siteId,\n orgId: response?.data?.orgId || response?.orgId,\n eventType: response?.type,\n trackingId: response?.data?.trackingId,\n notifTrackingId: response?.trackingId,\n };\n\n return fields;\n }\n\n /**\n * Extracts common tracking fields from an AQM failure response object.\n * @param failureResponse - The AQM failure response object.\n * @returns An object containing common tracking fields for failures.\n * @public\n * @example\n * const fields = MetricsManager.getCommonTrackingFieldForAQMResponseFailed(failureResponse);\n */\n public static getCommonTrackingFieldForAQMResponseFailed(\n failureResponse: Failure\n ): Record<string, any> {\n // This method is used to extract common tracking fields from the AQM response failure\n // and return them as an object. The fields are extracted from the response\n // object and its data property.\n const fields = {\n agentId: failureResponse?.data?.agentId,\n trackingId: failureResponse?.trackingId,\n notifTrackingId: failureResponse?.trackingId,\n orgId: failureResponse?.orgId,\n failureType: failureResponse?.type,\n failureReason: failureResponse?.data?.reason,\n reasonCode: failureResponse?.data?.reasonCode,\n };\n\n return fields;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|