ahs-cti 1.0.0-beta.2 → 1.0.0-beta.21
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/README.md +639 -639
- package/dist/callHistory-TZ7SSXSN.mjs +339 -0
- package/dist/callHistory-TZ7SSXSN.mjs.map +1 -0
- package/dist/chunk-6AM6THQM.mjs +920 -0
- package/dist/chunk-6AM6THQM.mjs.map +1 -0
- package/dist/index.d.mts +490 -4
- package/dist/index.d.ts +491 -4
- package/dist/index.js +2580 -1418
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1469 -1637
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,920 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
21
|
+
|
|
22
|
+
// call-control-sdk/lib/permissions/sdk-constants.ts
|
|
23
|
+
var SDK_WILDCARD = "*";
|
|
24
|
+
var SDK_MENU_CODES = {
|
|
25
|
+
WILDCARD: SDK_WILDCARD,
|
|
26
|
+
CALL_HISTORY: "call_history"
|
|
27
|
+
};
|
|
28
|
+
var SDK_PERMISSIONS = {
|
|
29
|
+
WILDCARD: SDK_WILDCARD,
|
|
30
|
+
// main object key constants
|
|
31
|
+
CALLS: "calls",
|
|
32
|
+
CALL_TRANSFER: "call_transfer",
|
|
33
|
+
CALL_CONFERENCE: "call_conference",
|
|
34
|
+
// in each object has items list of objects
|
|
35
|
+
CALL_INBOUND: "call_inbound",
|
|
36
|
+
CALL_OUTBOUND: "call_outbound",
|
|
37
|
+
CONFERENCE: "call_conference",
|
|
38
|
+
TRANSFER_BLIND: "call_transfer_blind",
|
|
39
|
+
TRANSFER_ATTENDED: "call_transfer_attended",
|
|
40
|
+
TRANSFER_WARM: "call_transfer_warm"
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// call-control-sdk/lib/hooks/sdk-state.ts
|
|
44
|
+
import { getSession, removeSession, setSession } from "@react-solutions/vault";
|
|
45
|
+
|
|
46
|
+
// call-control-sdk/lib/utils/storage.ts
|
|
47
|
+
var STORAGE_KEY = "call-control-sdk-state";
|
|
48
|
+
|
|
49
|
+
// call-control-sdk/lib/hooks/sdk-state.ts
|
|
50
|
+
var SDKStateManager = class {
|
|
51
|
+
constructor() {
|
|
52
|
+
__publicField(this, "state");
|
|
53
|
+
__publicField(this, "listeners", []);
|
|
54
|
+
__publicField(this, "STORAGE_KEY", STORAGE_KEY);
|
|
55
|
+
__publicField(this, "apiKey");
|
|
56
|
+
__publicField(this, "tenantId");
|
|
57
|
+
this.state = this.getInitialState();
|
|
58
|
+
this.loadFromStorage();
|
|
59
|
+
}
|
|
60
|
+
getInitialState() {
|
|
61
|
+
var _a2, _b;
|
|
62
|
+
return {
|
|
63
|
+
authorization: void 0,
|
|
64
|
+
process: null,
|
|
65
|
+
agentId: "",
|
|
66
|
+
openConferenceDialog: false,
|
|
67
|
+
openCallTransferDialog: false,
|
|
68
|
+
isInitialized: false,
|
|
69
|
+
sdkConfig: {
|
|
70
|
+
disableEndCallButton: false,
|
|
71
|
+
disabledDialButton: false,
|
|
72
|
+
disabledMoreOptionsButton: false,
|
|
73
|
+
enableSmsServices: false,
|
|
74
|
+
enableQueueName: false,
|
|
75
|
+
disableCallTransferButton: false,
|
|
76
|
+
disableBlindTransfer: false,
|
|
77
|
+
disableAttendedTransfer: false,
|
|
78
|
+
disableWarmTransfer: false,
|
|
79
|
+
isDraggable: true,
|
|
80
|
+
disableSoftPhone: false,
|
|
81
|
+
disableConferenceButton: false,
|
|
82
|
+
disableHoldButton: false,
|
|
83
|
+
disableMuteButton: false,
|
|
84
|
+
disabled: {},
|
|
85
|
+
enabled: {},
|
|
86
|
+
outlined: {}
|
|
87
|
+
},
|
|
88
|
+
urlConfig: {
|
|
89
|
+
baseURL: "",
|
|
90
|
+
iframeURL: "",
|
|
91
|
+
iframeAPIURL: "",
|
|
92
|
+
webSocketURL: "",
|
|
93
|
+
coreBaseURL: "",
|
|
94
|
+
id: "",
|
|
95
|
+
password: ""
|
|
96
|
+
},
|
|
97
|
+
callStartTime: null,
|
|
98
|
+
controlPanelPosition: { x: 10, y: 10 },
|
|
99
|
+
iframePosition: {
|
|
100
|
+
x: ((_a2 = window.screen) == null ? void 0 : _a2.availWidth) - 460,
|
|
101
|
+
y: ((_b = window.screen) == null ? void 0 : _b.height) - 580
|
|
102
|
+
},
|
|
103
|
+
callData: {
|
|
104
|
+
agent_id: -1,
|
|
105
|
+
queue_name: "",
|
|
106
|
+
hold: 0,
|
|
107
|
+
mute: 0,
|
|
108
|
+
status: "",
|
|
109
|
+
type: "",
|
|
110
|
+
event_time: "",
|
|
111
|
+
phone_number: ""
|
|
112
|
+
},
|
|
113
|
+
conferenceLine: [
|
|
114
|
+
{
|
|
115
|
+
line: 1,
|
|
116
|
+
status: "IDLE",
|
|
117
|
+
type: "",
|
|
118
|
+
phone: "",
|
|
119
|
+
isMute: false,
|
|
120
|
+
isHold: false,
|
|
121
|
+
isCallStart: false,
|
|
122
|
+
isMergeCall: false
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
line: 2,
|
|
126
|
+
status: "IDLE",
|
|
127
|
+
type: "",
|
|
128
|
+
phone: "",
|
|
129
|
+
isMute: false,
|
|
130
|
+
isHold: false,
|
|
131
|
+
isCallStart: false,
|
|
132
|
+
isMergeCall: false
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
line: 3,
|
|
136
|
+
status: "IDLE",
|
|
137
|
+
type: "",
|
|
138
|
+
phone: "",
|
|
139
|
+
isMute: false,
|
|
140
|
+
isHold: false,
|
|
141
|
+
isCallStart: false,
|
|
142
|
+
isMergeCall: false
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
line: 4,
|
|
146
|
+
status: "IDLE",
|
|
147
|
+
type: "",
|
|
148
|
+
phone: "",
|
|
149
|
+
isMute: false,
|
|
150
|
+
isHold: false,
|
|
151
|
+
isCallStart: false,
|
|
152
|
+
isMergeCall: false
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
line: 5,
|
|
156
|
+
status: "IDLE",
|
|
157
|
+
type: "",
|
|
158
|
+
phone: "",
|
|
159
|
+
isMute: false,
|
|
160
|
+
isHold: false,
|
|
161
|
+
isCallStart: false,
|
|
162
|
+
isMergeCall: false
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
hold: 0,
|
|
166
|
+
mute: 0,
|
|
167
|
+
agentStatus: "",
|
|
168
|
+
sdk: null,
|
|
169
|
+
isPermissionsLoaded: false,
|
|
170
|
+
userPermissions: null,
|
|
171
|
+
menuEntitlements: null,
|
|
172
|
+
consultInfo: null
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
loadFromStorage() {
|
|
176
|
+
var _a2, _b;
|
|
177
|
+
try {
|
|
178
|
+
const stored = getSession(this.STORAGE_KEY);
|
|
179
|
+
if (stored) {
|
|
180
|
+
const parsedState = stored;
|
|
181
|
+
this.state = __spreadProps(__spreadValues({}, this.state), {
|
|
182
|
+
agentId: parsedState.agentId || "",
|
|
183
|
+
authorization: parsedState.authorization || void 0,
|
|
184
|
+
process: parsedState.process || null,
|
|
185
|
+
openConferenceDialog: (parsedState == null ? void 0 : parsedState.openConferenceDialog) || false,
|
|
186
|
+
openCallTransferDialog: (parsedState == null ? void 0 : parsedState.openCallTransferDialog) || false,
|
|
187
|
+
isInitialized: parsedState.isInitialized || false,
|
|
188
|
+
sdkConfig: parsedState.sdkConfig || {
|
|
189
|
+
disableEndCallButton: false,
|
|
190
|
+
disabledMoreOptionsButton: false,
|
|
191
|
+
enableSmsServices: false,
|
|
192
|
+
enableQueueName: false,
|
|
193
|
+
disabledDialButton: false,
|
|
194
|
+
disableCallTransferButton: false,
|
|
195
|
+
disableBlindTransfer: false,
|
|
196
|
+
disableAttendedTransfer: false,
|
|
197
|
+
disableWarmTransfer: false,
|
|
198
|
+
isDraggable: true,
|
|
199
|
+
disableSoftPhone: false,
|
|
200
|
+
disableConferenceButton: false,
|
|
201
|
+
disableHoldButton: false,
|
|
202
|
+
disableMuteButton: false,
|
|
203
|
+
disabled: {},
|
|
204
|
+
enabled: {},
|
|
205
|
+
outlined: {}
|
|
206
|
+
},
|
|
207
|
+
urlConfig: parsedState.urlConfig || {
|
|
208
|
+
id: "",
|
|
209
|
+
baseURL: "",
|
|
210
|
+
iframeURL: "",
|
|
211
|
+
iframeAPIURL: "",
|
|
212
|
+
webSocketURL: "",
|
|
213
|
+
coreBaseURL: "",
|
|
214
|
+
password: ""
|
|
215
|
+
},
|
|
216
|
+
callStartTime: parsedState.callStartTime || null,
|
|
217
|
+
controlPanelPosition: parsedState.controlPanelPosition || {
|
|
218
|
+
x: 10,
|
|
219
|
+
y: 10
|
|
220
|
+
},
|
|
221
|
+
iframePosition: parsedState.iframePosition || {
|
|
222
|
+
x: ((_a2 = window.screen) == null ? void 0 : _a2.availWidth) - 460,
|
|
223
|
+
y: ((_b = window.screen) == null ? void 0 : _b.height) - 580
|
|
224
|
+
},
|
|
225
|
+
callData: parsedState.callData || {
|
|
226
|
+
mobileNumber: "",
|
|
227
|
+
callReferenceId: "",
|
|
228
|
+
agent_id: "",
|
|
229
|
+
status: "",
|
|
230
|
+
type: "",
|
|
231
|
+
event_time: "",
|
|
232
|
+
phone_number: ""
|
|
233
|
+
},
|
|
234
|
+
conferenceLine: parsedState.conferenceLine && Array.isArray(parsedState.conferenceLine) && parsedState.conferenceLine.length > 0 ? parsedState.conferenceLine : this.state.conferenceLine,
|
|
235
|
+
agentStatus: parsedState.agentStatus,
|
|
236
|
+
sdk: parsedState.sdk || null,
|
|
237
|
+
isPermissionsLoaded: parsedState.isPermissionsLoaded || false,
|
|
238
|
+
userPermissions: parsedState.userPermissions || null,
|
|
239
|
+
menuEntitlements: parsedState.menuEntitlements || null
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
} catch (error) {
|
|
243
|
+
console.warn("Failed to load SDK state:", error);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
saveToStorage() {
|
|
247
|
+
try {
|
|
248
|
+
const persistentState = {
|
|
249
|
+
agentId: this.state.agentId,
|
|
250
|
+
authorization: this.state.authorization,
|
|
251
|
+
process: this.state.process,
|
|
252
|
+
isInitialized: this.state.isInitialized,
|
|
253
|
+
openConferenceDialog: this.state.openConferenceDialog,
|
|
254
|
+
openCallTransferDialog: this.state.openCallTransferDialog,
|
|
255
|
+
sdkConfig: this.state.sdkConfig,
|
|
256
|
+
urlConfig: this.state.urlConfig,
|
|
257
|
+
callStartTime: this.state.callStartTime,
|
|
258
|
+
controlPanelPosition: this.state.controlPanelPosition,
|
|
259
|
+
iframePosition: this.state.iframePosition,
|
|
260
|
+
callData: this.state.callData,
|
|
261
|
+
conferenceLine: this.state.conferenceLine,
|
|
262
|
+
agentStatus: this.state.agentStatus,
|
|
263
|
+
sdk: this.state.sdk,
|
|
264
|
+
isPermissionsLoaded: this.state.isPermissionsLoaded,
|
|
265
|
+
userPermissions: this.state.userPermissions,
|
|
266
|
+
menuEntitlements: this.state.menuEntitlements
|
|
267
|
+
};
|
|
268
|
+
setSession(this.STORAGE_KEY, persistentState);
|
|
269
|
+
} catch (error) {
|
|
270
|
+
console.warn("Failed to save SDK state:", error);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
notifyListeners() {
|
|
274
|
+
this.listeners.forEach((listener) => listener());
|
|
275
|
+
}
|
|
276
|
+
validateCredentials(apiKey, tenantId) {
|
|
277
|
+
if (!apiKey || typeof apiKey !== "string" || apiKey.trim().length === 0) {
|
|
278
|
+
throw new Error("API key not available");
|
|
279
|
+
}
|
|
280
|
+
if (!tenantId || typeof tenantId !== "string" || tenantId.trim().length === 0) {
|
|
281
|
+
throw new Error("Tenant ID not available");
|
|
282
|
+
}
|
|
283
|
+
this.apiKey = apiKey.trim();
|
|
284
|
+
this.tenantId = tenantId.trim();
|
|
285
|
+
}
|
|
286
|
+
initialize(apiKey, tenantId, agentId, urlConfig, initResult, sdkConfig) {
|
|
287
|
+
var _a2;
|
|
288
|
+
this.validateCredentials(apiKey, tenantId);
|
|
289
|
+
if (!agentId || typeof agentId !== "string" || agentId.trim().length === 0) {
|
|
290
|
+
throw new Error("Agent ID not available");
|
|
291
|
+
} else {
|
|
292
|
+
this.state.agentId = agentId;
|
|
293
|
+
this.state.openConferenceDialog = false;
|
|
294
|
+
this.state.openCallTransferDialog = false;
|
|
295
|
+
this.state.authorization = initResult;
|
|
296
|
+
this.state.sdkConfig = __spreadValues(__spreadValues({
|
|
297
|
+
disableEndCallButton: false,
|
|
298
|
+
disabledDialButton: false,
|
|
299
|
+
disabledMoreOptionsButton: false,
|
|
300
|
+
enableQueueName: false,
|
|
301
|
+
disableCallTransferButton: false,
|
|
302
|
+
disableBlindTransfer: false,
|
|
303
|
+
disableAttendedTransfer: false,
|
|
304
|
+
disableWarmTransfer: false,
|
|
305
|
+
isDraggable: true,
|
|
306
|
+
disableSoftPhone: false,
|
|
307
|
+
disableConferenceButton: false,
|
|
308
|
+
disableHoldButton: false,
|
|
309
|
+
disableMuteButton: false,
|
|
310
|
+
disabled: {},
|
|
311
|
+
enabled: {},
|
|
312
|
+
outlined: {}
|
|
313
|
+
}, sdkConfig), initResult == null ? void 0 : initResult.callControls);
|
|
314
|
+
this.state.urlConfig = {
|
|
315
|
+
baseURL: (urlConfig == null ? void 0 : urlConfig.baseURL) || "",
|
|
316
|
+
iframeURL: (urlConfig == null ? void 0 : urlConfig.iframeURL) || "",
|
|
317
|
+
iframeAPIURL: (urlConfig == null ? void 0 : urlConfig.iframeAPIURL) || "",
|
|
318
|
+
webSocketURL: (urlConfig == null ? void 0 : urlConfig.webSocketURL) || "",
|
|
319
|
+
coreBaseURL: (urlConfig == null ? void 0 : urlConfig.coreBaseURL) || "",
|
|
320
|
+
id: ((_a2 = initResult == null ? void 0 : initResult.userInfo) == null ? void 0 : _a2.id) ? String(initResult.userInfo.id) : "",
|
|
321
|
+
password: (urlConfig == null ? void 0 : urlConfig.password) || ""
|
|
322
|
+
};
|
|
323
|
+
this.state.isInitialized = true;
|
|
324
|
+
this.saveToStorage();
|
|
325
|
+
this.notifyListeners();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
getState() {
|
|
329
|
+
return __spreadValues({}, this.state);
|
|
330
|
+
}
|
|
331
|
+
getCredentials() {
|
|
332
|
+
return { apiKey: this.apiKey, tenantId: this.tenantId };
|
|
333
|
+
}
|
|
334
|
+
getSdkAuthToken() {
|
|
335
|
+
var _a2;
|
|
336
|
+
return (_a2 = this.state.authorization) == null ? void 0 : _a2.accessToken;
|
|
337
|
+
}
|
|
338
|
+
subscribe(listener) {
|
|
339
|
+
this.listeners.push(listener);
|
|
340
|
+
return () => {
|
|
341
|
+
const index = this.listeners.indexOf(listener);
|
|
342
|
+
if (index > -1) {
|
|
343
|
+
this.listeners.splice(index, 1);
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
// public setHolding(isHolding: boolean): void {
|
|
348
|
+
// this.state.isHolding = isHolding;
|
|
349
|
+
// this.saveToStorage();
|
|
350
|
+
// this.notifyListeners();
|
|
351
|
+
// }
|
|
352
|
+
// public setMuted(isMuted: boolean): void {
|
|
353
|
+
// this.state.isMuted = isMuted;
|
|
354
|
+
// this.saveToStorage();
|
|
355
|
+
// this.notifyListeners();
|
|
356
|
+
// }
|
|
357
|
+
setProcess(process) {
|
|
358
|
+
this.state.process = process;
|
|
359
|
+
this.saveToStorage();
|
|
360
|
+
this.notifyListeners();
|
|
361
|
+
}
|
|
362
|
+
setControlPanelPosition(position) {
|
|
363
|
+
this.state.controlPanelPosition = position;
|
|
364
|
+
this.saveToStorage();
|
|
365
|
+
this.notifyListeners();
|
|
366
|
+
}
|
|
367
|
+
setIframePosition(position) {
|
|
368
|
+
this.state.iframePosition = position;
|
|
369
|
+
this.saveToStorage();
|
|
370
|
+
this.notifyListeners();
|
|
371
|
+
}
|
|
372
|
+
startCall() {
|
|
373
|
+
this.state.callStartTime = Date.now();
|
|
374
|
+
this.saveToStorage();
|
|
375
|
+
this.notifyListeners();
|
|
376
|
+
}
|
|
377
|
+
endCall() {
|
|
378
|
+
this.state.callStartTime = null;
|
|
379
|
+
this.saveToStorage();
|
|
380
|
+
this.notifyListeners();
|
|
381
|
+
}
|
|
382
|
+
setInitCheck() {
|
|
383
|
+
this.state.isInitialized = false;
|
|
384
|
+
this.saveToStorage();
|
|
385
|
+
this.notifyListeners();
|
|
386
|
+
}
|
|
387
|
+
setOpenConferenceDialog(open) {
|
|
388
|
+
this.state.openConferenceDialog = open;
|
|
389
|
+
this.saveToStorage();
|
|
390
|
+
this.notifyListeners();
|
|
391
|
+
}
|
|
392
|
+
setOpenCallTransferDialog(open) {
|
|
393
|
+
this.state.openCallTransferDialog = open;
|
|
394
|
+
this.saveToStorage();
|
|
395
|
+
this.notifyListeners();
|
|
396
|
+
}
|
|
397
|
+
setConsultInfo(info) {
|
|
398
|
+
this.state.consultInfo = info;
|
|
399
|
+
this.notifyListeners();
|
|
400
|
+
}
|
|
401
|
+
setAgentStatus(status) {
|
|
402
|
+
this.state.agentStatus = status;
|
|
403
|
+
this.saveToStorage();
|
|
404
|
+
this.notifyListeners();
|
|
405
|
+
}
|
|
406
|
+
updateCallData(data) {
|
|
407
|
+
this.state.callData = __spreadValues(__spreadValues({}, this.state.callData), data);
|
|
408
|
+
this.saveToStorage();
|
|
409
|
+
this.notifyListeners();
|
|
410
|
+
}
|
|
411
|
+
updateConferenceData(data) {
|
|
412
|
+
this.state.conferenceLine = [...data];
|
|
413
|
+
this.saveToStorage();
|
|
414
|
+
this.notifyListeners();
|
|
415
|
+
}
|
|
416
|
+
setConferenceLine(line) {
|
|
417
|
+
var _a2;
|
|
418
|
+
if (!this.state.conferenceLine || !Array.isArray(this.state.conferenceLine)) {
|
|
419
|
+
this.state.conferenceLine = this.getInitialState().conferenceLine;
|
|
420
|
+
}
|
|
421
|
+
const conferenceLineData = (_a2 = this.state.conferenceLine) == null ? void 0 : _a2.map(
|
|
422
|
+
(each) => {
|
|
423
|
+
if (each.line === line.line) {
|
|
424
|
+
return line;
|
|
425
|
+
}
|
|
426
|
+
return each;
|
|
427
|
+
}
|
|
428
|
+
);
|
|
429
|
+
this.state.conferenceLine = conferenceLineData;
|
|
430
|
+
this.saveToStorage();
|
|
431
|
+
this.notifyListeners();
|
|
432
|
+
}
|
|
433
|
+
resetConferenceLines() {
|
|
434
|
+
this.state.conferenceLine = [
|
|
435
|
+
{
|
|
436
|
+
line: 1,
|
|
437
|
+
status: "IDLE",
|
|
438
|
+
type: "",
|
|
439
|
+
phone: "",
|
|
440
|
+
isMute: false,
|
|
441
|
+
isHold: false,
|
|
442
|
+
isCallStart: false,
|
|
443
|
+
isMergeCall: false
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
line: 2,
|
|
447
|
+
status: "IDLE",
|
|
448
|
+
type: "",
|
|
449
|
+
phone: "",
|
|
450
|
+
isMute: false,
|
|
451
|
+
isHold: false,
|
|
452
|
+
isCallStart: false,
|
|
453
|
+
isMergeCall: false
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
line: 3,
|
|
457
|
+
status: "IDLE",
|
|
458
|
+
type: "",
|
|
459
|
+
phone: "",
|
|
460
|
+
isMute: false,
|
|
461
|
+
isHold: false,
|
|
462
|
+
isCallStart: false,
|
|
463
|
+
isMergeCall: false
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
line: 4,
|
|
467
|
+
status: "IDLE",
|
|
468
|
+
type: "",
|
|
469
|
+
phone: "",
|
|
470
|
+
isMute: false,
|
|
471
|
+
isHold: false,
|
|
472
|
+
isCallStart: false,
|
|
473
|
+
isMergeCall: false
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
line: 5,
|
|
477
|
+
status: "IDLE",
|
|
478
|
+
type: "",
|
|
479
|
+
phone: "",
|
|
480
|
+
isMute: false,
|
|
481
|
+
isHold: false,
|
|
482
|
+
isCallStart: false,
|
|
483
|
+
isMergeCall: false
|
|
484
|
+
}
|
|
485
|
+
];
|
|
486
|
+
this.saveToStorage();
|
|
487
|
+
this.notifyListeners();
|
|
488
|
+
}
|
|
489
|
+
clearStorageAndReset() {
|
|
490
|
+
try {
|
|
491
|
+
removeSession(this.STORAGE_KEY);
|
|
492
|
+
this.state = this.getInitialState();
|
|
493
|
+
this.notifyListeners();
|
|
494
|
+
} catch (error) {
|
|
495
|
+
console.warn("Failed to clear:", error);
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
getConferenceLines() {
|
|
499
|
+
return this.state.conferenceLine || [];
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Update SDK config with permission-based controls.
|
|
503
|
+
* Merges the provided controls with existing config.
|
|
504
|
+
*/
|
|
505
|
+
updateSDKConfigFromPermissions(permissionControls) {
|
|
506
|
+
this.state.sdkConfig = __spreadValues(__spreadValues({}, this.state.sdkConfig), permissionControls);
|
|
507
|
+
this.saveToStorage();
|
|
508
|
+
this.notifyListeners();
|
|
509
|
+
}
|
|
510
|
+
/**
|
|
511
|
+
* Revert call consult controls back to the base permission-derived values.
|
|
512
|
+
* Called when a CALL_STATE event arrives without call_consult_controls.
|
|
513
|
+
*/
|
|
514
|
+
resetConsultControls() {
|
|
515
|
+
const base = this.getControlsConfig();
|
|
516
|
+
this.state.sdkConfig = __spreadProps(__spreadValues({}, this.state.sdkConfig), {
|
|
517
|
+
disableEndCallButton: base.disableEndCallButton,
|
|
518
|
+
disableCallTransferButton: base.disableCallTransferButton,
|
|
519
|
+
disableConferenceButton: base.disableConferenceButton,
|
|
520
|
+
disableHoldButton: base.disableHoldButton,
|
|
521
|
+
disableMuteButton: base.disableMuteButton
|
|
522
|
+
});
|
|
523
|
+
this.saveToStorage();
|
|
524
|
+
this.notifyListeners();
|
|
525
|
+
}
|
|
526
|
+
// ============ Entitlement Logic (Ported from SDKPermissionManager) ============
|
|
527
|
+
/**
|
|
528
|
+
* Set user information (entitlements) from login response
|
|
529
|
+
*/
|
|
530
|
+
setSDKPermissions(userInfo) {
|
|
531
|
+
var _a2, _b;
|
|
532
|
+
if (!userInfo) return;
|
|
533
|
+
const sdk = (_a2 = userInfo.entitlements) == null ? void 0 : _a2.sdk;
|
|
534
|
+
const sdkPermissions = Array.isArray(userInfo.permissions) ? userInfo.permissions : null;
|
|
535
|
+
const sdkMenus = Array.isArray((_b = userInfo.entitlements) == null ? void 0 : _b.menus) ? userInfo.entitlements.menus : null;
|
|
536
|
+
this.state.sdk = sdk;
|
|
537
|
+
this.state.userPermissions = sdkPermissions;
|
|
538
|
+
this.state.menuEntitlements = sdkMenus;
|
|
539
|
+
this.state.isPermissionsLoaded = true;
|
|
540
|
+
const permissionControls = this.getControlsConfig();
|
|
541
|
+
this.updateSDKConfigFromPermissions(permissionControls);
|
|
542
|
+
this.saveToStorage();
|
|
543
|
+
this.notifyListeners();
|
|
544
|
+
}
|
|
545
|
+
/**
|
|
546
|
+
* Check if a bit is enabled in entitlements
|
|
547
|
+
*/
|
|
548
|
+
isBitEnabled(category, bitCode) {
|
|
549
|
+
var _a2;
|
|
550
|
+
const sdk = this.state.sdk;
|
|
551
|
+
if (!sdk) return false;
|
|
552
|
+
const categoryEntitlement = sdk[category];
|
|
553
|
+
if (!categoryEntitlement) return false;
|
|
554
|
+
if (!categoryEntitlement.enabled) return false;
|
|
555
|
+
if (!bitCode) return true;
|
|
556
|
+
const bit = (_a2 = categoryEntitlement.items) == null ? void 0 : _a2.find(
|
|
557
|
+
(item) => item.code === bitCode
|
|
558
|
+
);
|
|
559
|
+
return bit ? bit.enabled : false;
|
|
560
|
+
}
|
|
561
|
+
/** Check if the user has a specific flat permission (e.g. "calls:inbound") */
|
|
562
|
+
hasPermission(permission) {
|
|
563
|
+
const perms = this.state.userPermissions;
|
|
564
|
+
if (!perms) return false;
|
|
565
|
+
return perms.includes("*") || perms.includes(permission);
|
|
566
|
+
}
|
|
567
|
+
/** Check if any of the provided permissions is granted */
|
|
568
|
+
hasAnyPermission(permissions) {
|
|
569
|
+
return permissions.some((p) => this.hasPermission(p));
|
|
570
|
+
}
|
|
571
|
+
/** Check if all of the provided permissions are granted */
|
|
572
|
+
hasAllPermissions(permissions) {
|
|
573
|
+
return permissions.every((p) => this.hasPermission(p));
|
|
574
|
+
}
|
|
575
|
+
/** Check if a menu entitlement is enabled (e.g. "campaign"). Supports "*" wildcard. */
|
|
576
|
+
hasMenuFeature(code) {
|
|
577
|
+
const menus = this.state.menuEntitlements;
|
|
578
|
+
if (!menus) return false;
|
|
579
|
+
if (menus.some((m) => m.code === "*" && m.enabled)) return true;
|
|
580
|
+
const entry = menus.find((m) => m.code === code);
|
|
581
|
+
return entry ? entry.enabled : false;
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Get SDK controls configuration derived exclusively from structured entitlements.
|
|
585
|
+
*/
|
|
586
|
+
getControlsConfig() {
|
|
587
|
+
const { sdk, isPermissionsLoaded } = this.state;
|
|
588
|
+
if (!isPermissionsLoaded || !sdk) {
|
|
589
|
+
return {
|
|
590
|
+
disabledDialButton: true,
|
|
591
|
+
disableEndCallButton: true,
|
|
592
|
+
disableCallTransferButton: true,
|
|
593
|
+
disableBlindTransfer: true,
|
|
594
|
+
disableAttendedTransfer: true,
|
|
595
|
+
disableWarmTransfer: true,
|
|
596
|
+
disableConferenceButton: true,
|
|
597
|
+
disableHoldButton: true,
|
|
598
|
+
disableMuteButton: true,
|
|
599
|
+
disabledMoreOptionsButton: true
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
const isDialAllowed = this.isBitEnabled(
|
|
603
|
+
"calls",
|
|
604
|
+
SDK_PERMISSIONS.CALL_OUTBOUND
|
|
605
|
+
);
|
|
606
|
+
const isInboundAllowed = this.isBitEnabled(
|
|
607
|
+
"calls",
|
|
608
|
+
SDK_PERMISSIONS.CALL_INBOUND
|
|
609
|
+
);
|
|
610
|
+
const isAnyCallAllowed = isDialAllowed || isInboundAllowed;
|
|
611
|
+
const isHoldAllowed = isAnyCallAllowed;
|
|
612
|
+
const isMuteAllowed = isAnyCallAllowed;
|
|
613
|
+
const isEndCallAllowed = isAnyCallAllowed;
|
|
614
|
+
const isConferenceAllowed = this.isBitEnabled("call_conference", "");
|
|
615
|
+
const isTransferEnabled = this.isBitEnabled("call_transfer", "");
|
|
616
|
+
const isBlindAllowed = this.isBitEnabled(
|
|
617
|
+
"call_transfer",
|
|
618
|
+
SDK_PERMISSIONS.TRANSFER_BLIND
|
|
619
|
+
);
|
|
620
|
+
const isAttendedAllowed = this.isBitEnabled(
|
|
621
|
+
"call_transfer",
|
|
622
|
+
SDK_PERMISSIONS.TRANSFER_ATTENDED
|
|
623
|
+
);
|
|
624
|
+
const isWarmAllowed = this.isBitEnabled(
|
|
625
|
+
"call_transfer",
|
|
626
|
+
SDK_PERMISSIONS.TRANSFER_WARM
|
|
627
|
+
);
|
|
628
|
+
return {
|
|
629
|
+
disabledDialButton: !isDialAllowed,
|
|
630
|
+
disableEndCallButton: !isEndCallAllowed,
|
|
631
|
+
disableCallTransferButton: !isTransferEnabled,
|
|
632
|
+
disableBlindTransfer: !isBlindAllowed,
|
|
633
|
+
disableAttendedTransfer: !isAttendedAllowed,
|
|
634
|
+
disableWarmTransfer: !isWarmAllowed,
|
|
635
|
+
disableConferenceButton: !isConferenceAllowed,
|
|
636
|
+
disableHoldButton: !isHoldAllowed,
|
|
637
|
+
disableMuteButton: !isMuteAllowed,
|
|
638
|
+
disabledMoreOptionsButton: false
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
};
|
|
642
|
+
var sdkStateManager = new SDKStateManager();
|
|
643
|
+
|
|
644
|
+
// call-control-sdk/lib/services/toastMessage.tsx
|
|
645
|
+
import { createContext, useContext, useState } from "react";
|
|
646
|
+
import { Snackbar, Alert } from "@mui/material";
|
|
647
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
648
|
+
var ToastContext = createContext(void 0);
|
|
649
|
+
var noopToast = {
|
|
650
|
+
showToast: (message, severity) => {
|
|
651
|
+
console.warn(`[Toast outside provider] ${severity != null ? severity : "info"}: ${message}`);
|
|
652
|
+
}
|
|
653
|
+
};
|
|
654
|
+
var useToast = () => {
|
|
655
|
+
const ctx = useContext(ToastContext);
|
|
656
|
+
return ctx != null ? ctx : noopToast;
|
|
657
|
+
};
|
|
658
|
+
var ToastProvider = ({ children }) => {
|
|
659
|
+
const [open, setOpen] = useState(false);
|
|
660
|
+
const [message, setMessage] = useState("");
|
|
661
|
+
const [severity, setSeverity] = useState("info");
|
|
662
|
+
const showToast = (msg, sev = "info") => {
|
|
663
|
+
setMessage(msg);
|
|
664
|
+
setSeverity(sev);
|
|
665
|
+
setOpen(true);
|
|
666
|
+
};
|
|
667
|
+
return /* @__PURE__ */ jsxs(ToastContext.Provider, { value: { showToast }, children: [
|
|
668
|
+
children,
|
|
669
|
+
/* @__PURE__ */ jsx(
|
|
670
|
+
Snackbar,
|
|
671
|
+
{
|
|
672
|
+
open,
|
|
673
|
+
color: severity,
|
|
674
|
+
autoHideDuration: 3e3,
|
|
675
|
+
onClose: () => setOpen(false),
|
|
676
|
+
anchorOrigin: { vertical: "top", horizontal: "right" },
|
|
677
|
+
children: /* @__PURE__ */ jsx(
|
|
678
|
+
Alert,
|
|
679
|
+
{
|
|
680
|
+
variant: "filled",
|
|
681
|
+
severity,
|
|
682
|
+
onClose: () => setOpen(false),
|
|
683
|
+
sx: { width: "100%" },
|
|
684
|
+
children: message
|
|
685
|
+
}
|
|
686
|
+
)
|
|
687
|
+
}
|
|
688
|
+
)
|
|
689
|
+
] });
|
|
690
|
+
};
|
|
691
|
+
|
|
692
|
+
// call-control-sdk/lib/components/SDKProvider.tsx
|
|
693
|
+
import { memo } from "react";
|
|
694
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
695
|
+
var SDKProvider = memo(({ children }) => {
|
|
696
|
+
return /* @__PURE__ */ jsx2(ToastProvider, { children });
|
|
697
|
+
});
|
|
698
|
+
SDKProvider.displayName = "SDKProvider";
|
|
699
|
+
|
|
700
|
+
// call-control-sdk/lib/services/endPoint.ts
|
|
701
|
+
var getBaseURL = () => {
|
|
702
|
+
var _a2, _b, _c;
|
|
703
|
+
return ((_c = (_b = (_a2 = sdkStateManager) == null ? void 0 : _a2.getState()) == null ? void 0 : _b.urlConfig) == null ? void 0 : _c.baseURL) || "";
|
|
704
|
+
};
|
|
705
|
+
var getCoreURL = () => {
|
|
706
|
+
var _a2, _b, _c;
|
|
707
|
+
return ((_c = (_b = (_a2 = sdkStateManager) == null ? void 0 : _a2.getState()) == null ? void 0 : _b.urlConfig) == null ? void 0 : _c.coreBaseURL) || "";
|
|
708
|
+
};
|
|
709
|
+
var BASE_URL = getBaseURL();
|
|
710
|
+
var CORE_URL = getCoreURL();
|
|
711
|
+
var VERSION = {
|
|
712
|
+
v1: "/api/v1"
|
|
713
|
+
};
|
|
714
|
+
var END_POINT = {
|
|
715
|
+
get LOGIN() {
|
|
716
|
+
return `${getBaseURL()}${VERSION.v1}/cti/login?provider=convox`;
|
|
717
|
+
},
|
|
718
|
+
get READY_AGENT() {
|
|
719
|
+
return `${getCoreURL()}${VERSION.v1}/agents/ready`;
|
|
720
|
+
},
|
|
721
|
+
get UPDATE_AGENT_BREAK() {
|
|
722
|
+
return `${getCoreURL()}${VERSION.v1}/agents/status`;
|
|
723
|
+
},
|
|
724
|
+
get CLICK_TO_CALL() {
|
|
725
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/dial`;
|
|
726
|
+
},
|
|
727
|
+
get HOLD_CALL() {
|
|
728
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/hold`;
|
|
729
|
+
},
|
|
730
|
+
get MUTE_CALL() {
|
|
731
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/mute`;
|
|
732
|
+
},
|
|
733
|
+
get UNMUTE_CALL() {
|
|
734
|
+
return `${getCoreURL()}${VERSION.v1}/cti/mute`;
|
|
735
|
+
},
|
|
736
|
+
get END_CALL() {
|
|
737
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/hangup`;
|
|
738
|
+
},
|
|
739
|
+
get LOGOUT() {
|
|
740
|
+
return `${getBaseURL()}${VERSION.v1}/cti/logout?provider=convox`;
|
|
741
|
+
},
|
|
742
|
+
get CONFERENCE_CALL() {
|
|
743
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/conference/add`;
|
|
744
|
+
},
|
|
745
|
+
get CONFERENCE_MERGE_CALL() {
|
|
746
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/conference/merge`;
|
|
747
|
+
},
|
|
748
|
+
get CONFERENCE_CALL_HOLD_OR_UN_HOLD() {
|
|
749
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/hold`;
|
|
750
|
+
},
|
|
751
|
+
get CONFERENCE_CALL_MUTE_OT_UN_MUTE() {
|
|
752
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/mute`;
|
|
753
|
+
},
|
|
754
|
+
get CONFERENCE_CALL_END() {
|
|
755
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/hangup`;
|
|
756
|
+
},
|
|
757
|
+
get CONFERENCE_CALL_END_ALL() {
|
|
758
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/hangup`;
|
|
759
|
+
},
|
|
760
|
+
get CONFERENCE_CALL_TRANSFER() {
|
|
761
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/conference/transfer`;
|
|
762
|
+
},
|
|
763
|
+
get TRANSFER_CALL() {
|
|
764
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/transfer-call`;
|
|
765
|
+
},
|
|
766
|
+
get TRANSFER_COMPLETE() {
|
|
767
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/transfer/complete`;
|
|
768
|
+
},
|
|
769
|
+
get TRANSFER_CANCEL() {
|
|
770
|
+
return `${getCoreURL()}${VERSION.v1}/cti/calls/transfer/cancel`;
|
|
771
|
+
},
|
|
772
|
+
get AGENTS_LIST() {
|
|
773
|
+
return `${getBaseURL()}${VERSION.v1}/cti/users`;
|
|
774
|
+
},
|
|
775
|
+
get PROCESS_LIST() {
|
|
776
|
+
return `${getBaseURL()}${VERSION.v1}/cti/processes-list`;
|
|
777
|
+
},
|
|
778
|
+
get BREAKS_LIST() {
|
|
779
|
+
return `${getBaseURL()}${VERSION.v1}/cti/breaks`;
|
|
780
|
+
},
|
|
781
|
+
get TRANSFER_TO_DETAILS() {
|
|
782
|
+
return `${getBaseURL()}${VERSION.v1}/cti/transfer-to-details?provider=convox`;
|
|
783
|
+
},
|
|
784
|
+
get SEND_NOTIFICATIONS() {
|
|
785
|
+
return `${getBaseURL()}${VERSION.v1}/cti/notifications/send`;
|
|
786
|
+
},
|
|
787
|
+
get CALL_HISTORY() {
|
|
788
|
+
return `${getBaseURL()}${VERSION.v1}/dashboard/call-history`;
|
|
789
|
+
},
|
|
790
|
+
get SENTIMENTAL_ANALYSIS() {
|
|
791
|
+
return `${getBaseURL()}${VERSION.v1}/users/get_sentiment_analysis`;
|
|
792
|
+
},
|
|
793
|
+
get DISPOSITIONS() {
|
|
794
|
+
return `${getBaseURL()}${VERSION.v1}/cti/calls/dispositions`;
|
|
795
|
+
},
|
|
796
|
+
SET_CALL_DISPOSITION: (callUuid) => `${getBaseURL()}${VERSION.v1}/calls/${callUuid}/disposition`,
|
|
797
|
+
get HOSPITALS_SERVICES() {
|
|
798
|
+
return `${getBaseURL()}${VERSION.v1}/cti/hospital/services`;
|
|
799
|
+
},
|
|
800
|
+
get BLIEND_TRANSFER() {
|
|
801
|
+
return `${getBaseURL()}${VERSION.v1}/cti/calls/blind_transfer?provider=convox`;
|
|
802
|
+
},
|
|
803
|
+
get AUTH_LOGOUT() {
|
|
804
|
+
return `${getBaseURL()}${VERSION.v1}/auth/logout`;
|
|
805
|
+
},
|
|
806
|
+
// Permissions
|
|
807
|
+
get USER_PERMISSIONS() {
|
|
808
|
+
return `${getBaseURL()}${VERSION.v1}/rbac/users/me/permissions`;
|
|
809
|
+
},
|
|
810
|
+
// Supervisor Call Monitoring (Listen / Whisper / Barge via ChanSpy)
|
|
811
|
+
get SUPERVISOR_CALL_LISTEN() {
|
|
812
|
+
return `${getBaseURL()}${VERSION.v1}/cti/supervisor/listen`;
|
|
813
|
+
},
|
|
814
|
+
get SUPERVISOR_CALL_LEAVE() {
|
|
815
|
+
return `${getBaseURL()}${VERSION.v1}/cti/supervisor/leave`;
|
|
816
|
+
},
|
|
817
|
+
get SUPERVISOR_CALL_CHANGE_MODE() {
|
|
818
|
+
return `${getBaseURL()}${VERSION.v1}/cti/supervisor/mode`;
|
|
819
|
+
},
|
|
820
|
+
// Call History pages
|
|
821
|
+
get CALLS_HISTORY() {
|
|
822
|
+
return `${getBaseURL()}${VERSION.v1}/calls/history`;
|
|
823
|
+
},
|
|
824
|
+
get MISSED_CALLS() {
|
|
825
|
+
return `${getBaseURL()}${VERSION.v1}/supervisor/missed-calls`;
|
|
826
|
+
},
|
|
827
|
+
RECORDING_BY_CALL: (call_uuid) => `${getBaseURL()}${VERSION.v1}/recordings/call/${call_uuid}`
|
|
828
|
+
};
|
|
829
|
+
|
|
830
|
+
// call-control-sdk/lib/services/axios.ts
|
|
831
|
+
import axios from "axios";
|
|
832
|
+
var _a;
|
|
833
|
+
var DEFAULT_TOKEN = (_a = sdkStateManager.getSdkAuthToken()) != null ? _a : "";
|
|
834
|
+
var REQUEST_TIMEOUT = 6e4;
|
|
835
|
+
function getAuthToken() {
|
|
836
|
+
var _a2;
|
|
837
|
+
return (_a2 = sdkStateManager.getSdkAuthToken()) != null ? _a2 : "";
|
|
838
|
+
}
|
|
839
|
+
function createAxiosInstance() {
|
|
840
|
+
var _a2, _b, _c, _d;
|
|
841
|
+
const instance = axios.create({
|
|
842
|
+
// baseURL: sdkStateManager.getState()?.urlConfig?.baseURL,
|
|
843
|
+
headers: {
|
|
844
|
+
"Content-Type": "application/json",
|
|
845
|
+
Accept: "application/json",
|
|
846
|
+
"x-tenant-id": (_b = (_a2 = sdkStateManager.getCredentials()) == null ? void 0 : _a2.tenantId) != null ? _b : "",
|
|
847
|
+
"x-api-key": (_d = (_c = sdkStateManager.getCredentials()) == null ? void 0 : _c.apiKey) != null ? _d : "",
|
|
848
|
+
Authorization: DEFAULT_TOKEN ? DEFAULT_TOKEN.startsWith("Bearer ") ? DEFAULT_TOKEN : `Bearer ${DEFAULT_TOKEN}` : ""
|
|
849
|
+
},
|
|
850
|
+
timeout: REQUEST_TIMEOUT,
|
|
851
|
+
withCredentials: false
|
|
852
|
+
});
|
|
853
|
+
instance.interceptors.request.use(
|
|
854
|
+
(config) => {
|
|
855
|
+
const token = getAuthToken();
|
|
856
|
+
if (token && config.headers) {
|
|
857
|
+
const authToken = token.startsWith("Bearer ") ? token : `Bearer ${token}`;
|
|
858
|
+
config.headers.Authorization = authToken;
|
|
859
|
+
}
|
|
860
|
+
console.log("API Request:", {
|
|
861
|
+
url: config.url,
|
|
862
|
+
method: config.method,
|
|
863
|
+
hasToken: !!token,
|
|
864
|
+
tokenStartsWithBearer: token == null ? void 0 : token.startsWith("Bearer "),
|
|
865
|
+
headers: {
|
|
866
|
+
Authorization: config.headers.Authorization,
|
|
867
|
+
"x-tenant-id": config.headers["x-tenant-id"],
|
|
868
|
+
"x-api-key": config.headers["x-api-key"]
|
|
869
|
+
}
|
|
870
|
+
});
|
|
871
|
+
config.metadata = { startTime: (/* @__PURE__ */ new Date()).getTime() };
|
|
872
|
+
return config;
|
|
873
|
+
},
|
|
874
|
+
(error) => {
|
|
875
|
+
console.error("Request interceptor error:", error);
|
|
876
|
+
return Promise.reject(error);
|
|
877
|
+
}
|
|
878
|
+
);
|
|
879
|
+
instance.interceptors.response.use(
|
|
880
|
+
(response) => {
|
|
881
|
+
return response;
|
|
882
|
+
},
|
|
883
|
+
async (error) => {
|
|
884
|
+
var _a3;
|
|
885
|
+
const originalRequest = error.config;
|
|
886
|
+
if (((_a3 = error.response) == null ? void 0 : _a3.status) === 401 && !originalRequest._retry) {
|
|
887
|
+
sdkStateManager.setInitCheck();
|
|
888
|
+
console.warn("Unauthorized request, attempting retry...");
|
|
889
|
+
}
|
|
890
|
+
if (!error.response) {
|
|
891
|
+
console.error("Network error:", error.message);
|
|
892
|
+
error.message = "Network error: Please check your internet connection";
|
|
893
|
+
}
|
|
894
|
+
if (error.response && error.response.status >= 500) {
|
|
895
|
+
console.error("Server error:", error.response.status, error.response.data);
|
|
896
|
+
error.message = "Server error: Please try again later";
|
|
897
|
+
}
|
|
898
|
+
return Promise.reject(error);
|
|
899
|
+
}
|
|
900
|
+
);
|
|
901
|
+
return instance;
|
|
902
|
+
}
|
|
903
|
+
var axiosInstance = createAxiosInstance();
|
|
904
|
+
var axios_default = axiosInstance;
|
|
905
|
+
|
|
906
|
+
export {
|
|
907
|
+
__spreadValues,
|
|
908
|
+
__spreadProps,
|
|
909
|
+
__publicField,
|
|
910
|
+
STORAGE_KEY,
|
|
911
|
+
SDK_WILDCARD,
|
|
912
|
+
SDK_MENU_CODES,
|
|
913
|
+
SDK_PERMISSIONS,
|
|
914
|
+
sdkStateManager,
|
|
915
|
+
END_POINT,
|
|
916
|
+
axios_default,
|
|
917
|
+
useToast,
|
|
918
|
+
SDKProvider
|
|
919
|
+
};
|
|
920
|
+
//# sourceMappingURL=chunk-6AM6THQM.mjs.map
|