@webex/contact-center 3.9.0-next.19 → 3.9.0-next.20

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.
@@ -393,6 +393,19 @@ const eventTaxonomyMap = {
393
393
  agent: 'user',
394
394
  target: 'queue_fetch',
395
395
  verb: 'fail'
396
+ },
397
+ // Outdial ANI API Events
398
+ [_constants.METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS]: {
399
+ product,
400
+ agent: 'user',
401
+ target: 'outdial_ani_ep_fetch',
402
+ verb: 'complete'
403
+ },
404
+ [_constants.METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_FAILED]: {
405
+ product,
406
+ agent: 'user',
407
+ target: 'outdial_ani_ep_fetch',
408
+ verb: 'fail'
396
409
  }
397
410
  };
398
411
 
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_constants2","product","PRODUCT_NAME","eventTaxonomyMap","METRIC_EVENT_NAMES","STATION_LOGIN_SUCCESS","agent","target","verb","STATION_LOGIN_FAILED","STATION_LOGOUT_SUCCESS","STATION_LOGOUT_FAILED","STATION_RELOGIN_SUCCESS","STATION_RELOGIN_FAILED","AGENT_STATE_CHANGE_SUCCESS","AGENT_STATE_CHANGE_FAILED","FETCH_BUDDY_AGENTS_SUCCESS","FETCH_BUDDY_AGENTS_FAILED","WEBSOCKET_REGISTER_SUCCESS","WEBSOCKET_REGISTER_FAILED","AGENT_RONA","AGENT_CONTACT_ASSIGN_FAILED","AGENT_INVITE_FAILED","TASK_ACCEPT_SUCCESS","TASK_ACCEPT_FAILED","TASK_DECLINE_SUCCESS","TASK_DECLINE_FAILED","TASK_END_SUCCESS","TASK_END_FAILED","TASK_WRAPUP_SUCCESS","TASK_WRAPUP_FAILED","TASK_HOLD_SUCCESS","TASK_HOLD_FAILED","TASK_RESUME_SUCCESS","TASK_RESUME_FAILED","TASK_CONSULT_START_SUCCESS","TASK_CONSULT_START_FAILED","TASK_CONSULT_END_SUCCESS","TASK_CONSULT_END_FAILED","TASK_TRANSFER_SUCCESS","TASK_TRANSFER_FAILED","TASK_RESUME_RECORDING_SUCCESS","TASK_RESUME_RECORDING_FAILED","TASK_PAUSE_RECORDING_SUCCESS","TASK_PAUSE_RECORDING_FAILED","TASK_ACCEPT_CONSULT_SUCCESS","TASK_ACCEPT_CONSULT_FAILED","TASK_OUTDIAL_SUCCESS","TASK_OUTDIAL_FAILED","TASK_CONFERENCE_START_SUCCESS","TASK_CONFERENCE_START_FAILED","TASK_CONFERENCE_END_SUCCESS","TASK_CONFERENCE_END_FAILED","TASK_CONFERENCE_TRANSFER_SUCCESS","TASK_CONFERENCE_TRANSFER_FAILED","UPLOAD_LOGS_SUCCESS","UPLOAD_LOGS_FAILED","AGENT_DEVICE_TYPE_UPDATE_SUCCESS","AGENT_DEVICE_TYPE_UPDATE_FAILED","ENTRYPOINT_FETCH_SUCCESS","ENTRYPOINT_FETCH_FAILED","ADDRESSBOOK_FETCH_SUCCESS","ADDRESSBOOK_FETCH_FAILED","QUEUE_FETCH_SUCCESS","QUEUE_FETCH_FAILED","getEventTaxonomy","name"],"sources":["behavioral-events.ts"],"sourcesContent":["import {\n MetricEventAgent,\n MetricEventProduct,\n MetricEventVerb,\n} from '@webex/internal-plugin-metrics/src/metrics.types';\n\nimport {METRIC_EVENT_NAMES} from './constants';\nimport {PRODUCT_NAME} from '../constants';\n\n/**\n * Represents the taxonomy for a behavioral event in the metrics system.\n * @ignore\n * @typedef BehavioralEventTaxonomy\n * @property {MetricEventProduct} product - The product associated with the behavioral event.\n * @property {MetricEventAgent} agent - The agent responsible for the behavioral event.\n * @property {string} target - The target entity of the behavioral event.\n * @property {MetricEventVerb} verb - The action or verb describing the behavioral event.\n *\n * @category Metrics\n * @type BehavioralEvents\n */\nexport type BehavioralEventTaxonomy = {\n product: MetricEventProduct;\n agent: MetricEventAgent;\n target: string;\n verb: MetricEventVerb;\n};\n\nconst product: MetricEventProduct = PRODUCT_NAME;\n\n// Adding new metrics? Please add them to the Cypher CC metrics wiki\n/**\n * @ignore\n * @typedoc\n * A mapping between metric event names and their corresponding behavioral event taxonomy definitions.\n *\n * This map is used to associate each event (such as login, logout, task actions, etc.)\n * with a structured taxonomy object that describes the product, agent, target, and verb\n * for behavioral analytics and metrics reporting.\n *\n * The keys are string constants from `METRIC_EVENT_NAMES`, and the values are\n * `BehavioralEventTaxonomy` objects that define the event's context.\n *\n * @example\n * ```typescript\n * const taxonomy = eventTaxonomyMap[METRIC_EVENT_NAMES.STATION_LOGIN_SUCCESS];\n * // taxonomy = { product, agent: 'user', target: 'station_login', verb: 'complete' }\n * ```\n *\n * @see BehavioralEventTaxonomy\n * @see METRIC_EVENT_NAMES\n */\nconst eventTaxonomyMap: Record<string, BehavioralEventTaxonomy> = {\n [METRIC_EVENT_NAMES.STATION_LOGIN_SUCCESS]: {\n product,\n agent: 'user',\n target: 'station_login',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.STATION_LOGIN_FAILED]: {\n product,\n agent: 'user',\n target: 'station_login',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.STATION_LOGOUT_SUCCESS]: {\n product,\n agent: 'user',\n target: 'station_logout',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.STATION_LOGOUT_FAILED]: {\n product,\n agent: 'user',\n target: 'station_logout',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.STATION_RELOGIN_SUCCESS]: {\n product,\n agent: 'user',\n target: 'station_relogin',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.STATION_RELOGIN_FAILED]: {\n product,\n agent: 'user',\n target: 'station_relogin',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.AGENT_STATE_CHANGE_SUCCESS]: {\n product,\n agent: 'user',\n target: 'state_change',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.AGENT_STATE_CHANGE_FAILED]: {\n product,\n agent: 'user',\n target: 'state_change',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.FETCH_BUDDY_AGENTS_SUCCESS]: {\n product,\n agent: 'user',\n target: 'buddy_agents_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.FETCH_BUDDY_AGENTS_FAILED]: {\n product,\n agent: 'user',\n target: 'buddy_agents_fetch',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.WEBSOCKET_REGISTER_SUCCESS]: {\n product,\n agent: 'user',\n target: 'websocket_register',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.WEBSOCKET_REGISTER_FAILED]: {\n product,\n agent: 'user',\n target: 'websocket_register',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.AGENT_RONA]: {\n product,\n agent: 'service',\n target: 'agent_rona',\n verb: 'set',\n },\n [METRIC_EVENT_NAMES.AGENT_CONTACT_ASSIGN_FAILED]: {\n product,\n agent: 'service',\n target: 'agent_contact_assign',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.AGENT_INVITE_FAILED]: {\n product,\n agent: 'service',\n target: 'agent_invite',\n verb: 'fail',\n },\n\n // Added Task events\n [METRIC_EVENT_NAMES.TASK_ACCEPT_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_accept',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_ACCEPT_FAILED]: {\n product,\n agent: 'user',\n target: 'task_accept',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_DECLINE_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_decline',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_DECLINE_FAILED]: {\n product,\n agent: 'user',\n target: 'task_decline',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_END_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_end',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_END_FAILED]: {\n product,\n agent: 'user',\n target: 'task_end',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_WRAPUP_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_wrapup',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_WRAPUP_FAILED]: {\n product,\n agent: 'user',\n target: 'task_wrapup',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_HOLD_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_hold',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_HOLD_FAILED]: {\n product,\n agent: 'user',\n target: 'task_hold',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_RESUME_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_resume',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_RESUME_FAILED]: {\n product,\n agent: 'user',\n target: 'task_resume',\n verb: 'fail',\n },\n\n // Advanced Tasks handling\n [METRIC_EVENT_NAMES.TASK_CONSULT_START_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_consult_start',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONSULT_START_FAILED]: {\n product,\n agent: 'user',\n target: 'task_consult_start',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_CONSULT_END_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_consult_end',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONSULT_END_FAILED]: {\n product,\n agent: 'user',\n target: 'task_consult_end',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_TRANSFER_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_transfer',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_TRANSFER_FAILED]: {\n product,\n agent: 'user',\n target: 'task_transfer',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_RESUME_RECORDING_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_resume_recording',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_RESUME_RECORDING_FAILED]: {\n product,\n agent: 'user',\n target: 'task_resume_recording',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_PAUSE_RECORDING_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_pause_recording',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_PAUSE_RECORDING_FAILED]: {\n product,\n agent: 'user',\n target: 'task_pause_recording',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_ACCEPT_CONSULT_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_accept_consult',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_ACCEPT_CONSULT_FAILED]: {\n product,\n agent: 'user',\n target: 'task_accept_consult',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_OUTDIAL_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_outdial',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_OUTDIAL_FAILED]: {\n product,\n agent: 'user',\n target: 'task_outdial',\n verb: 'fail',\n },\n\n // Conference Tasks\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_START_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_conference_start',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_START_FAILED]: {\n product,\n agent: 'user',\n target: 'task_conference_start',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_END_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_conference_end',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_END_FAILED]: {\n product,\n agent: 'user',\n target: 'task_conference_end',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_TRANSFER_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_conference_transfer',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_TRANSFER_FAILED]: {\n product,\n agent: 'user',\n target: 'task_conference_transfer',\n verb: 'fail',\n },\n\n // upload logs\n [METRIC_EVENT_NAMES.UPLOAD_LOGS_SUCCESS]: {\n product,\n agent: 'user',\n target: 'upload_logs',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.UPLOAD_LOGS_FAILED]: {\n product,\n agent: 'user',\n target: 'upload_logs',\n verb: 'fail',\n },\n\n // update profile\n [METRIC_EVENT_NAMES.AGENT_DEVICE_TYPE_UPDATE_SUCCESS]: {\n product,\n agent: 'user',\n target: 'agent_device_type_update',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.AGENT_DEVICE_TYPE_UPDATE_FAILED]: {\n product,\n agent: 'user',\n target: 'agent_device_type_update',\n verb: 'fail',\n },\n\n // EntryPoint API Events\n [METRIC_EVENT_NAMES.ENTRYPOINT_FETCH_SUCCESS]: {\n product,\n agent: 'user',\n target: 'entrypoint_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.ENTRYPOINT_FETCH_FAILED]: {\n product,\n agent: 'user',\n target: 'entrypoint_fetch',\n verb: 'fail',\n },\n\n // AddressBook API Events\n [METRIC_EVENT_NAMES.ADDRESSBOOK_FETCH_SUCCESS]: {\n product,\n agent: 'user',\n target: 'addressbook_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.ADDRESSBOOK_FETCH_FAILED]: {\n product,\n agent: 'user',\n target: 'addressbook_fetch',\n verb: 'fail',\n },\n\n // Queue API Events\n [METRIC_EVENT_NAMES.QUEUE_FETCH_SUCCESS]: {\n product,\n agent: 'user',\n target: 'queue_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.QUEUE_FETCH_FAILED]: {\n product,\n agent: 'user',\n target: 'queue_fetch',\n verb: 'fail',\n },\n};\n\n/**\n * Get the taxonomy information for a given behavioral event name.\n * @ignore\n * @param name - The name of the metric event to look up.\n * @returns The corresponding {@link BehavioralEventTaxonomy} if found, otherwise `undefined`.\n *\n * @typedoc\n */\nexport function getEventTaxonomy(name: METRIC_EVENT_NAMES): BehavioralEventTaxonomy | undefined {\n return eventTaxonomyMap[name];\n}\n"],"mappings":";;;;;;AAMA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA,MAAME,OAA2B,GAAGC,wBAAY;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAyD,GAAG;EAChE,CAACC,6BAAkB,CAACC,qBAAqB,GAAG;IAC1CJ,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,eAAe;IACvBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACK,oBAAoB,GAAG;IACzCR,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,eAAe;IACvBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACM,sBAAsB,GAAG;IAC3CT,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,gBAAgB;IACxBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACO,qBAAqB,GAAG;IAC1CV,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,gBAAgB;IACxBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACQ,uBAAuB,GAAG;IAC5CX,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,iBAAiB;IACzBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACS,sBAAsB,GAAG;IAC3CZ,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,iBAAiB;IACzBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACU,0BAA0B,GAAG;IAC/Cb,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,cAAc;IACtBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACW,yBAAyB,GAAG;IAC9Cd,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,cAAc;IACtBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACY,0BAA0B,GAAG;IAC/Cf,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,oBAAoB;IAC5BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACa,yBAAyB,GAAG;IAC9ChB,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,oBAAoB;IAC5BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACc,0BAA0B,GAAG;IAC/CjB,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,oBAAoB;IAC5BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACe,yBAAyB,GAAG;IAC9ClB,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,oBAAoB;IAC5BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACgB,UAAU,GAAG;IAC/BnB,OAAO;IACPK,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE,YAAY;IACpBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACiB,2BAA2B,GAAG;IAChDpB,OAAO;IACPK,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE,sBAAsB;IAC9BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACkB,mBAAmB,GAAG;IACxCrB,OAAO;IACPK,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE,cAAc;IACtBC,IAAI,EAAE;EACR,CAAC;EAED;EACA,CAACJ,6BAAkB,CAACmB,mBAAmB,GAAG;IACxCtB,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACoB,kBAAkB,GAAG;IACvCvB,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACqB,oBAAoB,GAAG;IACzCxB,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,cAAc;IACtBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACsB,mBAAmB,GAAG;IACxCzB,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,cAAc;IACtBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACuB,gBAAgB,GAAG;IACrC1B,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,UAAU;IAClBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACwB,eAAe,GAAG;IACpC3B,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,UAAU;IAClBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACyB,mBAAmB,GAAG;IACxC5B,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC0B,kBAAkB,GAAG;IACvC7B,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC2B,iBAAiB,GAAG;IACtC9B,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,WAAW;IACnBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC4B,gBAAgB,GAAG;IACrC/B,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,WAAW;IACnBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC6B,mBAAmB,GAAG;IACxChC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC8B,kBAAkB,GAAG;IACvCjC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EAED;EACA,CAACJ,6BAAkB,CAAC+B,0BAA0B,GAAG;IAC/ClC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,oBAAoB;IAC5BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACgC,yBAAyB,GAAG;IAC9CnC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,oBAAoB;IAC5BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACiC,wBAAwB,GAAG;IAC7CpC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,kBAAkB;IAC1BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACkC,uBAAuB,GAAG;IAC5CrC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,kBAAkB;IAC1BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACmC,qBAAqB,GAAG;IAC1CtC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,eAAe;IACvBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACoC,oBAAoB,GAAG;IACzCvC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,eAAe;IACvBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACqC,6BAA6B,GAAG;IAClDxC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,uBAAuB;IAC/BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACsC,4BAA4B,GAAG;IACjDzC,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,uBAAuB;IAC/BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACuC,4BAA4B,GAAG;IACjD1C,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,sBAAsB;IAC9BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACwC,2BAA2B,GAAG;IAChD3C,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,sBAAsB;IAC9BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACyC,2BAA2B,GAAG;IAChD5C,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,qBAAqB;IAC7BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC0C,0BAA0B,GAAG;IAC/C7C,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,qBAAqB;IAC7BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC2C,oBAAoB,GAAG;IACzC9C,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,cAAc;IACtBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC4C,mBAAmB,GAAG;IACxC/C,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,cAAc;IACtBC,IAAI,EAAE;EACR,CAAC;EAED;EACA,CAACJ,6BAAkB,CAAC6C,6BAA6B,GAAG;IAClDhD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,uBAAuB;IAC/BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC8C,4BAA4B,GAAG;IACjDjD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,uBAAuB;IAC/BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC+C,2BAA2B,GAAG;IAChDlD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,qBAAqB;IAC7BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACgD,0BAA0B,GAAG;IAC/CnD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,qBAAqB;IAC7BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACiD,gCAAgC,GAAG;IACrDpD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,0BAA0B;IAClCC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACkD,+BAA+B,GAAG;IACpDrD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,0BAA0B;IAClCC,IAAI,EAAE;EACR,CAAC;EAED;EACA,CAACJ,6BAAkB,CAACmD,mBAAmB,GAAG;IACxCtD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACoD,kBAAkB,GAAG;IACvCvD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EAED;EACA,CAACJ,6BAAkB,CAACqD,gCAAgC,GAAG;IACrDxD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,0BAA0B;IAClCC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACsD,+BAA+B,GAAG;IACpDzD,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,0BAA0B;IAClCC,IAAI,EAAE;EACR,CAAC;EAED;EACA,CAACJ,6BAAkB,CAACuD,wBAAwB,GAAG;IAC7C1D,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,kBAAkB;IAC1BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAACwD,uBAAuB,GAAG;IAC5C3D,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,kBAAkB;IAC1BC,IAAI,EAAE;EACR,CAAC;EAED;EACA,CAACJ,6BAAkB,CAACyD,yBAAyB,GAAG;IAC9C5D,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,mBAAmB;IAC3BC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC0D,wBAAwB,GAAG;IAC7C7D,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,mBAAmB;IAC3BC,IAAI,EAAE;EACR,CAAC;EAED;EACA,CAACJ,6BAAkB,CAAC2D,mBAAmB,GAAG;IACxC9D,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR,CAAC;EACD,CAACJ,6BAAkB,CAAC4D,kBAAkB,GAAG;IACvC/D,OAAO;IACPK,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,aAAa;IACrBC,IAAI,EAAE;EACR;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyD,gBAAgBA,CAACC,IAAwB,EAAuC;EAC9F,OAAO/D,gBAAgB,CAAC+D,IAAI,CAAC;AAC/B"}
1
+ {"version":3,"names":["_constants","require","_constants2","product","PRODUCT_NAME","eventTaxonomyMap","METRIC_EVENT_NAMES","STATION_LOGIN_SUCCESS","agent","target","verb","STATION_LOGIN_FAILED","STATION_LOGOUT_SUCCESS","STATION_LOGOUT_FAILED","STATION_RELOGIN_SUCCESS","STATION_RELOGIN_FAILED","AGENT_STATE_CHANGE_SUCCESS","AGENT_STATE_CHANGE_FAILED","FETCH_BUDDY_AGENTS_SUCCESS","FETCH_BUDDY_AGENTS_FAILED","WEBSOCKET_REGISTER_SUCCESS","WEBSOCKET_REGISTER_FAILED","AGENT_RONA","AGENT_CONTACT_ASSIGN_FAILED","AGENT_INVITE_FAILED","TASK_ACCEPT_SUCCESS","TASK_ACCEPT_FAILED","TASK_DECLINE_SUCCESS","TASK_DECLINE_FAILED","TASK_END_SUCCESS","TASK_END_FAILED","TASK_WRAPUP_SUCCESS","TASK_WRAPUP_FAILED","TASK_HOLD_SUCCESS","TASK_HOLD_FAILED","TASK_RESUME_SUCCESS","TASK_RESUME_FAILED","TASK_CONSULT_START_SUCCESS","TASK_CONSULT_START_FAILED","TASK_CONSULT_END_SUCCESS","TASK_CONSULT_END_FAILED","TASK_TRANSFER_SUCCESS","TASK_TRANSFER_FAILED","TASK_RESUME_RECORDING_SUCCESS","TASK_RESUME_RECORDING_FAILED","TASK_PAUSE_RECORDING_SUCCESS","TASK_PAUSE_RECORDING_FAILED","TASK_ACCEPT_CONSULT_SUCCESS","TASK_ACCEPT_CONSULT_FAILED","TASK_OUTDIAL_SUCCESS","TASK_OUTDIAL_FAILED","TASK_CONFERENCE_START_SUCCESS","TASK_CONFERENCE_START_FAILED","TASK_CONFERENCE_END_SUCCESS","TASK_CONFERENCE_END_FAILED","TASK_CONFERENCE_TRANSFER_SUCCESS","TASK_CONFERENCE_TRANSFER_FAILED","UPLOAD_LOGS_SUCCESS","UPLOAD_LOGS_FAILED","AGENT_DEVICE_TYPE_UPDATE_SUCCESS","AGENT_DEVICE_TYPE_UPDATE_FAILED","ENTRYPOINT_FETCH_SUCCESS","ENTRYPOINT_FETCH_FAILED","ADDRESSBOOK_FETCH_SUCCESS","ADDRESSBOOK_FETCH_FAILED","QUEUE_FETCH_SUCCESS","QUEUE_FETCH_FAILED","OUTDIAL_ANI_EP_FETCH_SUCCESS","OUTDIAL_ANI_EP_FETCH_FAILED","getEventTaxonomy","name"],"sources":["behavioral-events.ts"],"sourcesContent":["import {\n MetricEventAgent,\n MetricEventProduct,\n MetricEventVerb,\n} from '@webex/internal-plugin-metrics/src/metrics.types';\n\nimport {METRIC_EVENT_NAMES} from './constants';\nimport {PRODUCT_NAME} from '../constants';\n\n/**\n * Represents the taxonomy for a behavioral event in the metrics system.\n * @ignore\n * @typedef BehavioralEventTaxonomy\n * @property {MetricEventProduct} product - The product associated with the behavioral event.\n * @property {MetricEventAgent} agent - The agent responsible for the behavioral event.\n * @property {string} target - The target entity of the behavioral event.\n * @property {MetricEventVerb} verb - The action or verb describing the behavioral event.\n *\n * @category Metrics\n * @type BehavioralEvents\n */\nexport type BehavioralEventTaxonomy = {\n product: MetricEventProduct;\n agent: MetricEventAgent;\n target: string;\n verb: MetricEventVerb;\n};\n\nconst product: MetricEventProduct = PRODUCT_NAME;\n\n// Adding new metrics? Please add them to the Cypher CC metrics wiki\n/**\n * @ignore\n * @typedoc\n * A mapping between metric event names and their corresponding behavioral event taxonomy definitions.\n *\n * This map is used to associate each event (such as login, logout, task actions, etc.)\n * with a structured taxonomy object that describes the product, agent, target, and verb\n * for behavioral analytics and metrics reporting.\n *\n * The keys are string constants from `METRIC_EVENT_NAMES`, and the values are\n * `BehavioralEventTaxonomy` objects that define the event's context.\n *\n * @example\n * ```typescript\n * const taxonomy = eventTaxonomyMap[METRIC_EVENT_NAMES.STATION_LOGIN_SUCCESS];\n * // taxonomy = { product, agent: 'user', target: 'station_login', verb: 'complete' }\n * ```\n *\n * @see BehavioralEventTaxonomy\n * @see METRIC_EVENT_NAMES\n */\nconst eventTaxonomyMap: Record<string, BehavioralEventTaxonomy> = {\n [METRIC_EVENT_NAMES.STATION_LOGIN_SUCCESS]: {\n product,\n agent: 'user',\n target: 'station_login',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.STATION_LOGIN_FAILED]: {\n product,\n agent: 'user',\n target: 'station_login',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.STATION_LOGOUT_SUCCESS]: {\n product,\n agent: 'user',\n target: 'station_logout',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.STATION_LOGOUT_FAILED]: {\n product,\n agent: 'user',\n target: 'station_logout',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.STATION_RELOGIN_SUCCESS]: {\n product,\n agent: 'user',\n target: 'station_relogin',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.STATION_RELOGIN_FAILED]: {\n product,\n agent: 'user',\n target: 'station_relogin',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.AGENT_STATE_CHANGE_SUCCESS]: {\n product,\n agent: 'user',\n target: 'state_change',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.AGENT_STATE_CHANGE_FAILED]: {\n product,\n agent: 'user',\n target: 'state_change',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.FETCH_BUDDY_AGENTS_SUCCESS]: {\n product,\n agent: 'user',\n target: 'buddy_agents_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.FETCH_BUDDY_AGENTS_FAILED]: {\n product,\n agent: 'user',\n target: 'buddy_agents_fetch',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.WEBSOCKET_REGISTER_SUCCESS]: {\n product,\n agent: 'user',\n target: 'websocket_register',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.WEBSOCKET_REGISTER_FAILED]: {\n product,\n agent: 'user',\n target: 'websocket_register',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.AGENT_RONA]: {\n product,\n agent: 'service',\n target: 'agent_rona',\n verb: 'set',\n },\n [METRIC_EVENT_NAMES.AGENT_CONTACT_ASSIGN_FAILED]: {\n product,\n agent: 'service',\n target: 'agent_contact_assign',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.AGENT_INVITE_FAILED]: {\n product,\n agent: 'service',\n target: 'agent_invite',\n verb: 'fail',\n },\n\n // Added Task events\n [METRIC_EVENT_NAMES.TASK_ACCEPT_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_accept',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_ACCEPT_FAILED]: {\n product,\n agent: 'user',\n target: 'task_accept',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_DECLINE_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_decline',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_DECLINE_FAILED]: {\n product,\n agent: 'user',\n target: 'task_decline',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_END_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_end',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_END_FAILED]: {\n product,\n agent: 'user',\n target: 'task_end',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_WRAPUP_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_wrapup',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_WRAPUP_FAILED]: {\n product,\n agent: 'user',\n target: 'task_wrapup',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_HOLD_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_hold',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_HOLD_FAILED]: {\n product,\n agent: 'user',\n target: 'task_hold',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_RESUME_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_resume',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_RESUME_FAILED]: {\n product,\n agent: 'user',\n target: 'task_resume',\n verb: 'fail',\n },\n\n // Advanced Tasks handling\n [METRIC_EVENT_NAMES.TASK_CONSULT_START_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_consult_start',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONSULT_START_FAILED]: {\n product,\n agent: 'user',\n target: 'task_consult_start',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_CONSULT_END_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_consult_end',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONSULT_END_FAILED]: {\n product,\n agent: 'user',\n target: 'task_consult_end',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_TRANSFER_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_transfer',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_TRANSFER_FAILED]: {\n product,\n agent: 'user',\n target: 'task_transfer',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_RESUME_RECORDING_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_resume_recording',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_RESUME_RECORDING_FAILED]: {\n product,\n agent: 'user',\n target: 'task_resume_recording',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_PAUSE_RECORDING_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_pause_recording',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_PAUSE_RECORDING_FAILED]: {\n product,\n agent: 'user',\n target: 'task_pause_recording',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_ACCEPT_CONSULT_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_accept_consult',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_ACCEPT_CONSULT_FAILED]: {\n product,\n agent: 'user',\n target: 'task_accept_consult',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_OUTDIAL_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_outdial',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_OUTDIAL_FAILED]: {\n product,\n agent: 'user',\n target: 'task_outdial',\n verb: 'fail',\n },\n\n // Conference Tasks\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_START_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_conference_start',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_START_FAILED]: {\n product,\n agent: 'user',\n target: 'task_conference_start',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_END_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_conference_end',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_END_FAILED]: {\n product,\n agent: 'user',\n target: 'task_conference_end',\n verb: 'fail',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_TRANSFER_SUCCESS]: {\n product,\n agent: 'user',\n target: 'task_conference_transfer',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.TASK_CONFERENCE_TRANSFER_FAILED]: {\n product,\n agent: 'user',\n target: 'task_conference_transfer',\n verb: 'fail',\n },\n\n // upload logs\n [METRIC_EVENT_NAMES.UPLOAD_LOGS_SUCCESS]: {\n product,\n agent: 'user',\n target: 'upload_logs',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.UPLOAD_LOGS_FAILED]: {\n product,\n agent: 'user',\n target: 'upload_logs',\n verb: 'fail',\n },\n\n // update profile\n [METRIC_EVENT_NAMES.AGENT_DEVICE_TYPE_UPDATE_SUCCESS]: {\n product,\n agent: 'user',\n target: 'agent_device_type_update',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.AGENT_DEVICE_TYPE_UPDATE_FAILED]: {\n product,\n agent: 'user',\n target: 'agent_device_type_update',\n verb: 'fail',\n },\n\n // EntryPoint API Events\n [METRIC_EVENT_NAMES.ENTRYPOINT_FETCH_SUCCESS]: {\n product,\n agent: 'user',\n target: 'entrypoint_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.ENTRYPOINT_FETCH_FAILED]: {\n product,\n agent: 'user',\n target: 'entrypoint_fetch',\n verb: 'fail',\n },\n\n // AddressBook API Events\n [METRIC_EVENT_NAMES.ADDRESSBOOK_FETCH_SUCCESS]: {\n product,\n agent: 'user',\n target: 'addressbook_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.ADDRESSBOOK_FETCH_FAILED]: {\n product,\n agent: 'user',\n target: 'addressbook_fetch',\n verb: 'fail',\n },\n\n // Queue API Events\n [METRIC_EVENT_NAMES.QUEUE_FETCH_SUCCESS]: {\n product,\n agent: 'user',\n target: 'queue_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.QUEUE_FETCH_FAILED]: {\n product,\n agent: 'user',\n target: 'queue_fetch',\n verb: 'fail',\n },\n\n // Outdial ANI API Events\n [METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS]: {\n product,\n agent: 'user',\n target: 'outdial_ani_ep_fetch',\n verb: 'complete',\n },\n [METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_FAILED]: {\n product,\n agent: 'user',\n target: 'outdial_ani_ep_fetch',\n verb: 'fail',\n },\n};\n\n/**\n * Get the taxonomy information for a given behavioral event name.\n * @ignore\n * @param name - The name of the metric event to look up.\n * @returns The corresponding {@link BehavioralEventTaxonomy} if found, otherwise `undefined`.\n *\n * @typedoc\n */\nexport function getEventTaxonomy(name: METRIC_EVENT_NAMES): BehavioralEventTaxonomy | undefined {\n return eventTaxonomyMap[name];\n}\n"],"mappings":"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"}
package/dist/webex.js CHANGED
@@ -29,7 +29,7 @@ if (!global.Buffer) {
29
29
  */
30
30
  const Webex = _webexCore.default.extend({
31
31
  webex: true,
32
- version: `3.9.0-next.19`
32
+ version: `3.9.0-next.20`
33
33
  });
34
34
 
35
35
  /**
package/package.json CHANGED
@@ -80,5 +80,5 @@
80
80
  "typedoc": "^0.25.0",
81
81
  "typescript": "4.9.5"
82
82
  },
83
- "version": "3.9.0-next.19"
83
+ "version": "3.9.0-next.20"
84
84
  }
@@ -409,6 +409,20 @@ const eventTaxonomyMap: Record<string, BehavioralEventTaxonomy> = {
409
409
  target: 'queue_fetch',
410
410
  verb: 'fail',
411
411
  },
412
+
413
+ // Outdial ANI API Events
414
+ [METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS]: {
415
+ product,
416
+ agent: 'user',
417
+ target: 'outdial_ani_ep_fetch',
418
+ verb: 'complete',
419
+ },
420
+ [METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_FAILED]: {
421
+ product,
422
+ agent: 'user',
423
+ target: 'outdial_ani_ep_fetch',
424
+ verb: 'fail',
425
+ },
412
426
  };
413
427
 
414
428
  /**
@@ -118,6 +118,7 @@ describe('webex.cc', () => {
118
118
  },
119
119
  config: {
120
120
  getAgentConfig: jest.fn(),
121
+ getOutdialAniEntries: jest.fn(),
121
122
  },
122
123
  webSocketManager: mockWebSocketManager,
123
124
  connectionService: {
@@ -161,7 +162,7 @@ describe('webex.cc', () => {
161
162
  };
162
163
 
163
164
  jest.spyOn(MetricsManager, 'getInstance').mockReturnValue(mockMetricsManager);
164
- jest.spyOn(Services, 'getInstance').mockReturnValue(mockServicesInstance);
165
+ jest.spyOn(Services, 'getInstance').mockReturnValue(mockServicesInstance as any);
165
166
  jest.spyOn(TaskManager, 'getTaskManager').mockReturnValue(mockTaskManager);
166
167
  jest.spyOn(WebexRequest, 'getInstance').mockReturnValue(mockWebexRequest);
167
168
  // Instantiate ContactCenter to ensure it's fully initialized
@@ -1975,4 +1976,207 @@ describe('webex.cc', () => {
1975
1976
  });
1976
1977
  });
1977
1978
  });
1979
+
1980
+ describe('getOutdialAniEntries', () => {
1981
+ const mockOutdialANI = 'ani-123-456';
1982
+ const mockParams = {
1983
+ outdialANI: mockOutdialANI,
1984
+ page: 0,
1985
+ pageSize: 10,
1986
+ search: 'test',
1987
+ filter: 'active=true',
1988
+ attributes: 'id,name,number',
1989
+ };
1990
+
1991
+ beforeEach(() => {
1992
+ jest.clearAllMocks();
1993
+ // Reset orgId mock to return valid value
1994
+ webex.credentials.getOrgId.mockReturnValue('mockOrgId');
1995
+ });
1996
+
1997
+ it('should successfully fetch outdial ANI entries and track success metrics', async () => {
1998
+ const mockResult = [
1999
+ {
2000
+ id: '142fba3c-8502-4446-bf6e-584fd657553a',
2001
+ name: 'Test Entry',
2002
+ number: '+19403016307',
2003
+ },
2004
+ {
2005
+ id: '6f53000b-e04a-4418-9de9-ba511d2367cb',
2006
+ name: 'Another Entry',
2007
+ number: '+19403016308',
2008
+ },
2009
+ ];
2010
+
2011
+ // Mock the service call to return successful result
2012
+ webex.cc.services.config.getOutdialAniEntries.mockResolvedValue(mockResult);
2013
+
2014
+ const result = await webex.cc.getOutdialAniEntries(mockParams);
2015
+
2016
+ // Verify the service was called with correct parameters
2017
+ expect(webex.cc.services.config.getOutdialAniEntries).toHaveBeenCalledWith('mockOrgId', {
2018
+ outdialANI: mockOutdialANI,
2019
+ page: 0,
2020
+ pageSize: 10,
2021
+ search: 'test',
2022
+ filter: 'active=true',
2023
+ attributes: 'id,name,number',
2024
+ });
2025
+
2026
+ // Verify the result is returned correctly
2027
+ expect(result).toEqual(mockResult);
2028
+
2029
+ // Verify success metrics are tracked
2030
+ expect(mockMetricsManager.trackEvent).toHaveBeenCalledWith(
2031
+ METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS,
2032
+ {
2033
+ outdialANI: mockOutdialANI,
2034
+ resultCount: 2,
2035
+ },
2036
+ ['behavioral', 'business', 'operational']
2037
+ );
2038
+
2039
+ // Verify success logging
2040
+ expect(LoggerProxy.log).toHaveBeenCalledWith(
2041
+ `Successfully retrieved outdial ANI entries for ANI ID ${mockOutdialANI}`,
2042
+ {
2043
+ module: CC_FILE,
2044
+ method: 'getOutdialAniEntries',
2045
+ }
2046
+ );
2047
+ });
2048
+
2049
+ it('should handle empty results and track success metrics with zero count', async () => {
2050
+ const mockResult = [];
2051
+
2052
+ // Mock the service call to return empty result
2053
+ webex.cc.services.config.getOutdialAniEntries.mockResolvedValue(mockResult);
2054
+
2055
+ const result = await webex.cc.getOutdialAniEntries({outdialANI: mockOutdialANI});
2056
+
2057
+ // Verify the result is returned correctly
2058
+ expect(result).toEqual(mockResult);
2059
+
2060
+ // Verify success metrics are tracked with zero count
2061
+ expect(mockMetricsManager.trackEvent).toHaveBeenCalledWith(
2062
+ METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS,
2063
+ {
2064
+ outdialANI: mockOutdialANI,
2065
+ resultCount: 0,
2066
+ },
2067
+ ['behavioral', 'business', 'operational']
2068
+ );
2069
+ });
2070
+
2071
+ it('should handle undefined results and track success metrics with zero count', async () => {
2072
+ // Mock the service call to return undefined
2073
+ webex.cc.services.config.getOutdialAniEntries.mockResolvedValue(undefined);
2074
+
2075
+ const result = await webex.cc.getOutdialAniEntries({outdialANI: mockOutdialANI});
2076
+
2077
+ // Verify the result is returned correctly
2078
+ expect(result).toBeUndefined();
2079
+
2080
+ // Verify success metrics are tracked with zero count
2081
+ expect(mockMetricsManager.trackEvent).toHaveBeenCalledWith(
2082
+ METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS,
2083
+ {
2084
+ outdialANI: mockOutdialANI,
2085
+ resultCount: 0,
2086
+ },
2087
+ ['behavioral', 'business', 'operational']
2088
+ );
2089
+ });
2090
+
2091
+ it('should handle service failure and track failure metrics', async () => {
2092
+ const mockError = new Error('Service unavailable') as any;
2093
+ mockError.details = {
2094
+ trackingId: 'test-tracking-id',
2095
+ orgId: 'mockOrgId',
2096
+ error: 'Service error',
2097
+ };
2098
+
2099
+ // Mock the service call to throw an error
2100
+ webex.cc.services.config.getOutdialAniEntries.mockRejectedValue(mockError);
2101
+
2102
+ // Mock getErrorDetails to return a detailed error
2103
+ const detailedError = new Error('Detailed service error');
2104
+ getErrorDetailsSpy.mockReturnValue({error: detailedError});
2105
+
2106
+ await expect(webex.cc.getOutdialAniEntries(mockParams)).rejects.toThrow('Detailed service error');
2107
+
2108
+ // Verify failure metrics are tracked
2109
+ expect(mockMetricsManager.trackEvent).toHaveBeenCalledWith(
2110
+ METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_FAILED,
2111
+ {
2112
+ ...MetricsManager.getCommonTrackingFieldForAQMResponseFailed(mockError.details),
2113
+ outdialANI: mockOutdialANI,
2114
+ error: mockError,
2115
+ },
2116
+ ['behavioral', 'business', 'operational']
2117
+ );
2118
+
2119
+ // Verify error logging
2120
+ expect(LoggerProxy.error).toHaveBeenCalledWith(
2121
+ `Failed to fetch outdial ANI entries for ANI ID ${mockOutdialANI} due to: ${mockError}`,
2122
+ {
2123
+ module: CC_FILE,
2124
+ method: 'getOutdialAniEntries',
2125
+ trackingId: 'test-tracking-id',
2126
+ }
2127
+ );
2128
+
2129
+ // Verify getErrorDetails was called
2130
+ expect(getErrorDetailsSpy).toHaveBeenCalledWith(
2131
+ mockError,
2132
+ 'getOutdialAniEntries',
2133
+ CC_FILE
2134
+ );
2135
+ });
2136
+
2137
+ it('should throw error when orgId is not found', async () => {
2138
+ // Mock getOrgId to return null
2139
+ webex.credentials.getOrgId.mockReturnValue(null);
2140
+
2141
+ await expect(webex.cc.getOutdialAniEntries(mockParams)).rejects.toThrow('Org ID not found.');
2142
+
2143
+ // Verify error logging
2144
+ expect(LoggerProxy.error).toHaveBeenCalledWith('Org ID not found.', {
2145
+ module: CC_FILE,
2146
+ method: 'getOutdialAniEntries',
2147
+ });
2148
+
2149
+ // Verify service was not called
2150
+ expect(webex.cc.services.config.getOutdialAniEntries).not.toHaveBeenCalled();
2151
+
2152
+ // Verify no metrics were tracked
2153
+ expect(mockMetricsManager.trackEvent).not.toHaveBeenCalled();
2154
+ });
2155
+
2156
+ it('should handle minimal parameters correctly', async () => {
2157
+ const minimalParams = {outdialANI: mockOutdialANI};
2158
+ const mockResult = [{id: 'test', name: 'Test', number: '+1234567890'}];
2159
+
2160
+ webex.cc.services.config.getOutdialAniEntries.mockResolvedValue(mockResult);
2161
+
2162
+ const result = await webex.cc.getOutdialAniEntries(minimalParams);
2163
+
2164
+ // Verify the service was called with minimal parameters
2165
+ expect(webex.cc.services.config.getOutdialAniEntries).toHaveBeenCalledWith('mockOrgId', {
2166
+ outdialANI: mockOutdialANI,
2167
+ });
2168
+
2169
+ expect(result).toEqual(mockResult);
2170
+
2171
+ // Verify success metrics are tracked
2172
+ expect(mockMetricsManager.trackEvent).toHaveBeenCalledWith(
2173
+ METRIC_EVENT_NAMES.OUTDIAL_ANI_EP_FETCH_SUCCESS,
2174
+ {
2175
+ outdialANI: mockOutdialANI,
2176
+ resultCount: 1,
2177
+ },
2178
+ ['behavioral', 'business', 'operational']
2179
+ );
2180
+ });
2181
+ });
1978
2182
  });