@webex/cc-store 1.28.0-ccwidgets.12 → 1.28.0-ccwidgets.121

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.
@@ -0,0 +1,71 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ /*!
6
+ * Copyright (c) 2015-2024 Cisco Systems, Inc. See LICENSE file.
7
+ */
8
+
9
+ /*!
10
+ * Platform.js v1.3.6
11
+ * Copyright 2014-2020 Benjamin Tan
12
+ * Copyright 2011-2013 John-David Dalton
13
+ * Available under MIT license
14
+ */
15
+
16
+ /*!
17
+ * The buffer module from node.js, for the browser.
18
+ *
19
+ * @author Feross Aboukhadijeh <https://feross.org>
20
+ * @license MIT
21
+ */
22
+
23
+ /*!
24
+ * js-logger - http://github.com/jonnyreeves/js-logger
25
+ * Jonny Reeves, http://jonnyreeves.co.uk/
26
+ * js-logger may be freely distributed under the MIT license.
27
+ */
28
+
29
+ /*!
30
+ * urlsafe-base64
31
+ */
32
+
33
+ /*! *****************************************************************************
34
+ Copyright (c) Microsoft Corporation.
35
+
36
+ Permission to use, copy, modify, and/or distribute this software for any
37
+ purpose with or without fee is hereby granted.
38
+
39
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
40
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
41
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
42
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
43
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
44
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
45
+ PERFORMANCE OF THIS SOFTWARE.
46
+ ***************************************************************************** */
47
+
48
+ /*! https://mths.be/punycode v1.4.1 by @mathias */
49
+
50
+ /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
51
+
52
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
53
+
54
+ /*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
55
+
56
+ /**
57
+ * @license
58
+ * Lodash <https://lodash.com/>
59
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
60
+ * Released under MIT license <https://lodash.com/license>
61
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
62
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
63
+ */
64
+
65
+ /**
66
+ * core-decorators.js
67
+ * (c) 2017 Jay Phelps and contributors
68
+ * MIT Licensed
69
+ * https://github.com/jayphelps/core-decorators.js
70
+ * @license
71
+ */
@@ -1,3 +1,4 @@
1
- import store from './store';
1
+ import store from './storeEventsWrapper';
2
2
  export * from './store.types';
3
+ export * from './task-utils';
3
4
  export default store;
@@ -1,5 +1,5 @@
1
- import { IContactCenter, Team, WithWebex, IdleCode, InitParams, IStore, ILogger, IWrapupCode } from './store.types';
2
- import { ITask } from '@webex/plugin-cc';
1
+ import { ITask } from '@webex/contact-center';
2
+ import { IContactCenter, Team, IdleCode, InitParams, IStore, ILogger, IWrapupCode, ICustomState, AgentLoginProfile, WithWebex } from './store.types';
3
3
  declare class Store implements IStore {
4
4
  private static instance;
5
5
  teams: Team[];
@@ -8,17 +8,38 @@ declare class Store implements IStore {
8
8
  logger: ILogger;
9
9
  idleCodes: IdleCode[];
10
10
  agentId: string;
11
- selectedLoginOption: string;
11
+ currentTheme: string;
12
12
  wrapupCodes: IWrapupCode[];
13
13
  currentTask: ITask;
14
14
  isAgentLoggedIn: boolean;
15
15
  deviceType: string;
16
+ teamId: string;
17
+ taskList: Record<string, ITask>;
18
+ dialNumber: string;
19
+ currentState: string;
20
+ customState: ICustomState;
21
+ consultCompleted: boolean;
22
+ consultInitiated: boolean;
23
+ consultAccepted: boolean;
24
+ isQueueConsultInProgress: boolean;
25
+ currentConsultQueueId: string;
26
+ consultStartTimeStamp: any;
27
+ lastStateChangeTimestamp?: number;
28
+ lastIdleCodeChangeTimestamp?: number;
29
+ showMultipleLoginAlert: boolean;
30
+ callControlAudio: MediaStream | null;
31
+ consultOfferReceived: boolean;
32
+ featureFlags: {
33
+ [key: string]: boolean;
34
+ };
35
+ isEndConsultEnabled: boolean;
36
+ isAddressBookEnabled: boolean;
37
+ allowConsultToQueue: boolean;
38
+ agentProfile: AgentLoginProfile;
39
+ isMuted: boolean;
16
40
  constructor();
17
- setCurrentTask(task: ITask): void;
18
41
  static getInstance(): Store;
19
- setSelectedLoginOption(option: string): void;
20
- registerCC(webex: WithWebex['webex']): Promise<void>;
21
- init(options: InitParams): Promise<void>;
42
+ registerCC(webex?: WithWebex['webex']): Promise<void>;
43
+ init(options: InitParams, setupEventListeners: any): Promise<void>;
22
44
  }
23
- declare const store: Store;
24
- export default store;
45
+ export default Store;
@@ -1,4 +1,35 @@
1
- import { AgentLogin, IContactCenter, Profile, Team, LogContext } from '@webex/plugin-cc';
1
+ import { AgentLogin, Profile, BuddyDetails, ContactServiceQueue, ITask, BuddyAgents, BuddyAgentsResponse, StateChange, Logout, EntryPointRecord, EntryPointListResponse, EntryPointSearchParams, AddressBookEntry, AddressBookEntriesResponse, AddressBookEntrySearchParams, ContactServiceQueuesResponse, ContactServiceQueueSearchParams, AddressBook } from '@webex/contact-center';
2
+ import { OutdialAniEntriesResponse, OutdialAniParams } from 'node_modules/@webex/contact-center/dist/types/services/config/types';
3
+ import { DestinationType } from 'node_modules/@webex/contact-center/dist/types/services/task/types';
4
+ import { AgentProfileUpdate, LogContext, SetStateResponse, StationLoginResponse, StationLogoutResponse, Team, UpdateDeviceTypeResponse } from 'node_modules/@webex/contact-center/dist/types/types';
5
+ interface IContactCenter {
6
+ on: (event: string, callback: (data: any) => void) => void;
7
+ off: (event: string, callback?: (data: any) => void) => void;
8
+ updateAgentProfile(data: AgentProfileUpdate): Promise<UpdateDeviceTypeResponse>;
9
+ stationLogin(data: AgentLogin): Promise<StationLoginResponse>;
10
+ deregister(): Promise<void>;
11
+ stationLogout(data: Logout): Promise<StationLogoutResponse>;
12
+ LoggerProxy: ILogger;
13
+ register(): Promise<Profile>;
14
+ taskManager: {
15
+ getAllTasks: () => Record<string, ITask>;
16
+ };
17
+ getBuddyAgents(data: BuddyAgents): Promise<BuddyAgentsResponse>;
18
+ getQueues(params?: ContactServiceQueueSearchParams): Promise<ContactServiceQueuesResponse>;
19
+ getEntryPoints(params?: EntryPointSearchParams): Promise<EntryPointListResponse>;
20
+ addressBook: AddressBook;
21
+ agentConfig?: {
22
+ regexUS: RegExp | string;
23
+ agentId: string;
24
+ outdialANIId: string;
25
+ };
26
+ setAgentState(data: StateChange): Promise<SetStateResponse>;
27
+ getOutdialAniEntries(params: OutdialAniParams): Promise<OutdialAniEntriesResponse>;
28
+ }
29
+ type IWebex = {
30
+ cc: IContactCenter;
31
+ once: (event: string, callback: (data: any) => void) => void;
32
+ };
2
33
  type ILogger = {
3
34
  log: (message: string, context?: LogContext) => void;
4
35
  info: (message: string, context?: LogContext) => void;
@@ -6,16 +37,16 @@ type ILogger = {
6
37
  trace: (message: string, context?: LogContext) => void;
7
38
  error: (message: string, context?: LogContext) => void;
8
39
  };
9
- interface WithWebex {
40
+ type WithWebex = {
10
41
  webex: {
11
42
  cc: IContactCenter;
12
43
  logger: ILogger;
13
44
  };
14
- }
15
- interface WithWebexConfig {
45
+ };
46
+ type WithWebexConfig = {
16
47
  webexConfig: any;
17
48
  access_token: string;
18
- }
49
+ };
19
50
  type InitParams = WithWebex | WithWebexConfig;
20
51
  type IdleCode = {
21
52
  name: string;
@@ -24,17 +55,165 @@ type IdleCode = {
24
55
  isDefault: boolean;
25
56
  };
26
57
  interface IStore {
58
+ featureFlags: {
59
+ [key: string]: boolean;
60
+ };
27
61
  teams: Team[];
28
62
  loginOptions: string[];
29
63
  cc: IContactCenter;
30
64
  idleCodes: IdleCode[];
31
65
  agentId: string;
32
66
  logger: ILogger;
33
- registerCC(webex: WithWebex['webex']): Promise<Profile>;
34
- init(params: InitParams): Promise<void>;
67
+ wrapupCodes: IWrapupCode[];
68
+ currentTask: ITask;
69
+ taskList: Record<string, ITask>;
70
+ isAgentLoggedIn: boolean;
71
+ deviceType: string;
72
+ teamId: string;
73
+ dialNumber: string;
74
+ currentState: string;
75
+ lastStateChangeTimestamp?: number;
76
+ lastIdleCodeChangeTimestamp?: number;
77
+ showMultipleLoginAlert: boolean;
78
+ currentTheme: string;
79
+ customState: ICustomState;
80
+ consultCompleted: boolean;
81
+ consultInitiated: boolean;
82
+ consultAccepted: boolean;
83
+ isQueueConsultInProgress: boolean;
84
+ currentConsultQueueId: string;
85
+ consultStartTimeStamp?: number;
86
+ callControlAudio: MediaStream | null;
87
+ consultOfferReceived: boolean;
88
+ isEndConsultEnabled: boolean;
89
+ allowConsultToQueue: boolean;
90
+ agentProfile: AgentLoginProfile;
91
+ isMuted: boolean;
92
+ isAddressBookEnabled: boolean;
93
+ init(params: InitParams, callback: (ccSDK: IContactCenter) => void): Promise<void>;
94
+ registerCC(webex?: WithWebex['webex']): Promise<void>;
95
+ }
96
+ interface IStoreWrapper extends IStore {
97
+ store: IStore;
98
+ onErrorCallback?: (widgetName: string, error: Error) => void;
99
+ setCurrentTask(task: ITask): void;
100
+ refreshTaskList(): void;
101
+ getBuddyAgents(mediaType?: string): Promise<BuddyDetails[]>;
102
+ getQueues(mediaType?: string, params?: ContactServiceQueueSearchParams): Promise<ContactServiceQueuesResponse>;
103
+ getEntryPoints(params?: EntryPointSearchParams): Promise<EntryPointListResponse>;
104
+ getAddressBookEntries(params?: AddressBookEntrySearchParams): Promise<AddressBookEntriesResponse>;
105
+ setDeviceType(option: string): void;
106
+ setDialNumber(input: string): void;
107
+ setCurrentState(state: string): void;
108
+ setLastStateChangeTimestamp(timestamp: number): void;
109
+ setLastIdleCodeChangeTimestamp(timestamp: number): void;
110
+ setShowMultipleLoginAlert(value: boolean): void;
111
+ setCurrentTheme(theme: string): void;
112
+ setIsAgentLoggedIn(value: boolean): void;
113
+ setWrapupCodes(wrapupCodes: IWrapupCode[]): void;
114
+ setState(state: IdleCode | ICustomState): void;
115
+ setConsultCompleted(value: boolean): void;
116
+ setConsultInitiated(value: boolean): void;
117
+ setConsultAccepted(value: boolean): void;
118
+ setConsultStartTimeStamp(timestamp: number): void;
119
+ setAgentProfile(profile: Profile): void;
120
+ setTeamId(id: string): void;
121
+ setIsMuted(value: boolean): void;
122
+ setOnError(callback: (widgetName: string, error: Error) => void): void;
35
123
  }
36
124
  interface IWrapupCode {
37
125
  id: string;
38
126
  name: string;
39
127
  }
40
- export type { IContactCenter, Profile, Team, AgentLogin, WithWebex, IdleCode, InitParams, IStore, ILogger, IWrapupCode };
128
+ declare enum TASK_EVENTS {
129
+ TASK_INCOMING = "task:incoming",
130
+ TASK_ASSIGNED = "task:assigned",
131
+ TASK_MEDIA = "task:media",
132
+ TASK_HOLD = "task:hold",
133
+ TASK_UNHOLD = "task:unhold",
134
+ TASK_CONSULT = "task:consult",
135
+ TASK_CONSULT_END = "task:consultEnd",
136
+ TASK_CONSULT_ACCEPTED = "task:consultAccepted",
137
+ TASK_PAUSE = "task:pause",
138
+ TASK_RESUME = "task:resume",
139
+ TASK_END = "task:end",
140
+ TASK_WRAPUP = "task:wrapup",
141
+ TASK_REJECT = "task:rejected",
142
+ TASK_HYDRATE = "task:hydrate",
143
+ TASK_CONSULTING = "task:consulting",
144
+ TASK_CONSULT_QUEUE_CANCELLED = "task:consultQueueCancelled",
145
+ AGENT_CONTACT_ASSIGNED = "AgentContactAssigned",
146
+ CONTACT_RECORDING_PAUSED = "ContactRecordingPaused",
147
+ CONTACT_RECORDING_RESUMED = "ContactRecordingResumed",
148
+ AGENT_WRAPPEDUP = "AgentWrappedUp",
149
+ AGENT_OFFER_CONTACT = "AgentOfferContact",
150
+ AGENT_CONSULT_CREATED = "AgentConsultCreated",
151
+ TASK_RECORDING_PAUSED = "task:recordingPaused",
152
+ TASK_RECORDING_RESUMED = "task:recordingResumed",
153
+ TASK_OFFER_CONSULT = "task:offerConsult"
154
+ }
155
+ declare enum CC_EVENTS {
156
+ AGENT_DN_REGISTERED = "agent:dnRegistered",
157
+ AGENT_LOGOUT_SUCCESS = "agent:logoutSuccess",
158
+ AGENT_STATION_LOGIN_SUCCESS = "agent:stationLoginSuccess",
159
+ AGENT_MULTI_LOGIN = "agent:multiLogin",
160
+ AGENT_STATE_CHANGE = "agent:stateChange",
161
+ AGENT_RELOGIN_SUCCESS = "agent:reloginSuccess",
162
+ AGENT_OFFER_CONSULT = "AgentOfferConsult"
163
+ }
164
+ interface ICustomStateSet {
165
+ name: string;
166
+ developerName: string;
167
+ }
168
+ interface ICustomStateReset {
169
+ reset: boolean;
170
+ }
171
+ type ICustomState = ICustomStateSet | ICustomStateReset;
172
+ declare const ENGAGED_LABEL = "ENGAGED";
173
+ declare const ENGAGED_USERNAME = "Engaged";
174
+ type AgentLoginProfile = {
175
+ agentName?: string;
176
+ orgId?: string;
177
+ profileType?: string;
178
+ deviceType?: string;
179
+ roles?: Array<string>;
180
+ mmProfile?: {
181
+ chat: number;
182
+ email: number;
183
+ social: number;
184
+ telephony: number;
185
+ };
186
+ };
187
+ type PaginatedListParams = {
188
+ page: number;
189
+ pageSize: number;
190
+ search?: string;
191
+ };
192
+ type FetchPaginatedList<T> = (params: PaginatedListParams) => Promise<{
193
+ data: T[];
194
+ meta?: {
195
+ page?: number;
196
+ totalPages?: number;
197
+ };
198
+ }>;
199
+ type TransformPaginatedData<T, U> = (item: T, page: number, index: number) => U;
200
+ declare const DIALNUMBER: string;
201
+ declare const EXTENSION: string;
202
+ declare const DESKTOP: string;
203
+ declare const MEDIA_TYPE_TELEPHONY_LOWER = "telephony";
204
+ declare const MEDIA_TYPE_TELEPHONY_UPPER = "TELEPHONY";
205
+ declare const DEVICE_TYPE_BROWSER = "BROWSER";
206
+ declare const AGENT_STATE_AVAILABLE = "Available";
207
+ declare const LoginOptions: {
208
+ [key: string]: string;
209
+ };
210
+ declare const ERROR_TRIGGERING_IDLE_CODES: {
211
+ INVALID_NUMBER: string;
212
+ UNAVAILABLE: string;
213
+ DECLINED: string;
214
+ BUSY: string;
215
+ CHANNEL_FAILURE: string;
216
+ RONA: string;
217
+ };
218
+ export type { IContactCenter, ITask, Profile, Team, AgentLogin, WithWebex, IdleCode, InitParams, IStore, ILogger, IWrapupCode, IStoreWrapper, ICustomState, DestinationType, BuddyDetails, ContactServiceQueue, AgentLoginProfile, EntryPointRecord, EntryPointListResponse, EntryPointSearchParams, AddressBookEntry, AddressBookEntriesResponse, AddressBookEntrySearchParams, ContactServiceQueuesResponse, ContactServiceQueueSearchParams, IWebex, PaginatedListParams, FetchPaginatedList, TransformPaginatedData, };
219
+ export { CC_EVENTS, TASK_EVENTS, ENGAGED_LABEL, ENGAGED_USERNAME, DIALNUMBER, EXTENSION, DESKTOP, MEDIA_TYPE_TELEPHONY_LOWER, MEDIA_TYPE_TELEPHONY_UPPER, DEVICE_TYPE_BROWSER, AGENT_STATE_AVAILABLE, LoginOptions, ERROR_TRIGGERING_IDLE_CODES, };
@@ -0,0 +1,116 @@
1
+ import { IStoreWrapper, IStore, InitParams, TASK_EVENTS, CC_EVENTS, IWrapupCode, WithWebex, ICustomState, IdleCode, IContactCenter, ITask, BuddyDetails, ContactServiceQueue, ContactServiceQueueSearchParams, EntryPointListResponse, EntryPointSearchParams, AddressBookEntriesResponse, AddressBookEntrySearchParams, AgentLoginProfile } from './store.types';
2
+ declare class StoreWrapper implements IStoreWrapper {
3
+ store: IStore;
4
+ onIncomingTask: ({ task }: {
5
+ task: ITask;
6
+ }) => void;
7
+ onTaskRejected?: (task: ITask, reason: string) => void;
8
+ onTaskAssigned?: (task: ITask) => void;
9
+ onTaskSelected?: (task: ITask, isClicked: boolean) => void;
10
+ onErrorCallback?: (widgetName: string, error: Error) => void;
11
+ constructor();
12
+ get featureFlags(): {
13
+ [key: string]: boolean;
14
+ };
15
+ get teams(): import("node_modules/@webex/contact-center/dist/types/types").Team[];
16
+ get loginOptions(): string[];
17
+ get cc(): IContactCenter;
18
+ get logger(): import("./store.types").ILogger;
19
+ get idleCodes(): IdleCode[];
20
+ get agentId(): string;
21
+ get deviceType(): string;
22
+ get teamId(): string;
23
+ get dialNumber(): string;
24
+ get wrapupCodes(): IWrapupCode[];
25
+ get currentTask(): ITask;
26
+ get isAgentLoggedIn(): boolean;
27
+ get taskList(): Record<string, ITask>;
28
+ get currentState(): string;
29
+ get lastStateChangeTimestamp(): number;
30
+ get lastIdleCodeChangeTimestamp(): number;
31
+ get showMultipleLoginAlert(): boolean;
32
+ get currentTheme(): string;
33
+ get customState(): ICustomState;
34
+ get consultCompleted(): boolean;
35
+ get consultInitiated(): boolean;
36
+ get consultAccepted(): boolean;
37
+ get consultStartTimeStamp(): number;
38
+ get callControlAudio(): MediaStream;
39
+ get consultOfferReceived(): boolean;
40
+ get isQueueConsultInProgress(): boolean;
41
+ get currentConsultQueueId(): string;
42
+ get isEndConsultEnabled(): boolean;
43
+ get allowConsultToQueue(): boolean;
44
+ get agentProfile(): AgentLoginProfile;
45
+ get isMuted(): boolean;
46
+ get isAddressBookEnabled(): boolean;
47
+ setIsMuted: (value: boolean) => void;
48
+ setCurrentTheme: (theme: string) => void;
49
+ setShowMultipleLoginAlert: (value: boolean) => void;
50
+ setDeviceType: (option: string) => void;
51
+ setTeamId: (id: string) => void;
52
+ setDialNumber: (input: string) => void;
53
+ setCurrentState: (state: string) => void;
54
+ setLastStateChangeTimestamp: (timestamp: number) => void;
55
+ setLastIdleCodeChangeTimestamp: (timestamp: number) => void;
56
+ setIsAgentLoggedIn: (value: boolean) => void;
57
+ setCurrentTask: (task: ITask | null, isClicked?: boolean) => void;
58
+ setOnError: (callback: (widgetName: string, error: Error) => void) => void;
59
+ refreshTaskList: () => void;
60
+ setWrapupCodes: (wrapupCodes: IWrapupCode[]) => void;
61
+ setConsultCompleted: (value: boolean) => void;
62
+ setConsultInitiated: (value: boolean) => void;
63
+ setConsultAccepted: (value: boolean) => void;
64
+ setConsultOfferReceived: (value: boolean) => void;
65
+ setConsultStartTimeStamp: (timestamp: number) => void;
66
+ setCallControlAudio: (audio: MediaStream | null) => void;
67
+ setIsQueueConsultInProgress: (value: boolean) => void;
68
+ setCurrentConsultQueueId: (queueId: string | null) => void;
69
+ setState: (state: ICustomState | IdleCode) => void;
70
+ setIncomingTaskCb: (callback: ({ task }: {
71
+ task: ITask;
72
+ }) => void) => void;
73
+ setTaskRejected: (callback: ((task: ITask, reason: string) => void) | undefined) => void;
74
+ setTaskAssigned: (callback: ((task: ITask) => void) | undefined) => void;
75
+ setTaskSelected: (callback: ((task: ITask, isClicked?: boolean) => void) | undefined) => void;
76
+ setCCCallback: (event: CC_EVENTS | TASK_EVENTS, callback: any) => void;
77
+ setTaskCallback: (event: TASK_EVENTS, callback: any, taskId: string) => void;
78
+ setAgentProfile: (profile: AgentLoginProfile) => void;
79
+ removeCCCallback: (event: CC_EVENTS) => void;
80
+ removeTaskCallback: (event: TASK_EVENTS, callback: any, taskId: string) => void;
81
+ init(options: InitParams): Promise<void>;
82
+ registerCC: (webex?: WithWebex["webex"]) => Promise<void>;
83
+ handleTaskRemove: (taskId: any) => void;
84
+ handleTaskMuteState: (task: ITask) => void;
85
+ handleTaskEnd: () => void;
86
+ handleTaskAssigned: (event: any) => void;
87
+ handleTaskWrapUp: (task: any) => void;
88
+ handleTaskMedia: (track: any) => void;
89
+ handleConsultCreated: () => void;
90
+ handleConsulting: (event: any) => void;
91
+ handleConsultEnd: (event: any) => void;
92
+ handleConsultOffer: () => void;
93
+ handleConsultAccepted: (event: any) => void;
94
+ handleConsultQueueCancelled: () => void;
95
+ handleIncomingTask: (event: any) => void;
96
+ handleStateChange: (data: any) => void;
97
+ handleMultiLoginCloseSession: (data: any) => void;
98
+ handleTaskHydrate: (event: any) => void;
99
+ handleTaskReject: (task: ITask, reason: string) => void;
100
+ getBuddyAgents: (mediaType?: string) => Promise<Array<BuddyDetails>>;
101
+ getQueues: (mediaType?: string, params?: ContactServiceQueueSearchParams) => Promise<{
102
+ data: ContactServiceQueue[];
103
+ meta: {
104
+ page: number;
105
+ pageSize: number;
106
+ total: number;
107
+ totalPages: number;
108
+ };
109
+ }>;
110
+ getEntryPoints: (params?: EntryPointSearchParams) => Promise<EntryPointListResponse>;
111
+ getAddressBookEntries: (params?: AddressBookEntrySearchParams) => Promise<AddressBookEntriesResponse>;
112
+ cleanUpStore: () => void;
113
+ setupIncomingTaskHandler: (ccSDK: IContactCenter) => void;
114
+ }
115
+ declare const storeWrapper: StoreWrapper;
116
+ export default storeWrapper;
@@ -0,0 +1,7 @@
1
+ import { ITask } from './store.types';
2
+ /**
3
+ * Determines if a task is an incoming task
4
+ * @param task - The task object
5
+ * @returns Whether the task is incoming
6
+ */
7
+ export declare const isIncomingTask: (task: ITask) => boolean;
@@ -0,0 +1,2 @@
1
+ import { Profile } from './store.types';
2
+ export declare function getFeatureFlags(agentProfile: Profile): {};
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@webex/cc-store",
3
3
  "description": "Webex Contact Center Widgets: Widgets Store",
4
- "version": "1.28.0-ccwidgets.12",
4
+ "version": "1.28.0-ccwidgets.121",
5
5
  "main": "dist/index.js",
6
+ "types": "dist/types/index.d.ts",
6
7
  "license": "MIT",
7
8
  "publishConfig": {
8
9
  "access": "public"
@@ -17,39 +18,45 @@
17
18
  "build": "yarn run -T tsc",
18
19
  "build:src": "yarn run clean:dist && webpack",
19
20
  "build:watch": "webpack --watch",
20
- "test:unit": "jest"
21
+ "test:unit": "tsc --project tsconfig.test.json && jest --coverage",
22
+ "test:styles": "eslint"
21
23
  },
22
24
  "dependencies": {
25
+ "@webex/contact-center": "3.9.0-next.18",
23
26
  "mobx": "6.13.5",
24
- "typescript": "5.6.3",
25
- "webex": "3.7.0-wxcc.6"
27
+ "typescript": "5.6.3"
26
28
  },
27
29
  "devDependencies": {
28
30
  "@babel/core": "7.25.2",
29
31
  "@babel/preset-env": "7.25.4",
30
32
  "@babel/preset-react": "7.24.7",
31
33
  "@babel/preset-typescript": "7.25.9",
34
+ "@eslint/js": "^9.20.0",
32
35
  "@testing-library/dom": "10.4.0",
33
36
  "@testing-library/jest-dom": "6.6.2",
34
37
  "@testing-library/react": "16.0.1",
35
38
  "@types/jest": "29.5.14",
36
39
  "@types/react-test-renderer": "18",
40
+ "@webex/test-fixtures": "0.0.0",
37
41
  "babel-jest": "29.7.0",
38
42
  "babel-loader": "9.2.1",
43
+ "eslint": "^9.20.1",
44
+ "eslint-config-prettier": "^10.0.1",
45
+ "eslint-config-standard": "^17.1.0",
46
+ "eslint-plugin-import": "^2.25.2",
47
+ "eslint-plugin-n": "^15.0.0 || ^16.0.0 ",
48
+ "eslint-plugin-prettier": "^5.2.3",
49
+ "eslint-plugin-promise": "^6.0.0",
50
+ "eslint-plugin-react": "^7.37.4",
39
51
  "file-loader": "6.2.0",
52
+ "globals": "^16.0.0",
40
53
  "jest": "29.7.0",
41
54
  "jest-environment-jsdom": "29.7.0",
55
+ "prettier": "^3.5.1",
42
56
  "ts-loader": "9.5.1",
57
+ "typescript-eslint": "^8.24.1",
43
58
  "webpack": "5.94.0",
44
59
  "webpack-cli": "5.1.4",
45
60
  "webpack-merge": "6.0.1"
46
- },
47
- "jest": {
48
- "testEnvironment": "jsdom",
49
- "testMatch": [
50
- "**/tests/**/*.ts",
51
- "**/tests/**/*.tsx"
52
- ]
53
- },
54
- "stableVersion": "1.28.0-ccwidgets.11"
61
+ }
55
62
  }