@wildix/xbees-connect 1.3.7 → 1.3.8-alpha.2
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/dist-cjs/package.json +1 -1
- package/dist-cjs/src/Client.js +67 -6
- package/dist-cjs/src/enums/index.js +5 -0
- package/dist-es/package.json +1 -1
- package/dist-es/src/Client.js +67 -6
- package/dist-es/src/enums/index.js +5 -0
- package/dist-types/src/Client.d.ts +6 -2
- package/dist-types/src/enums/index.d.ts +7 -2
- package/dist-types/types/Client.d.ts +19 -2
- package/dist-types/types/Event.d.ts +6 -2
- package/dist-types/types/Payload.d.ts +24 -0
- package/dist-types/types/Resolver.d.ts +3 -0
- package/dist-types/types/index.d.ts +2 -2
- package/package.json +1 -1
package/dist-cjs/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wildix/xbees-connect",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8-alpha.2",
|
|
4
4
|
"description": "This library provides easy communication between x-bees and integrated web applications",
|
|
5
5
|
"author": "dimitri.chernykh <dimitri.chernykh@wildix.com>",
|
|
6
6
|
"homepage": "",
|
package/dist-cjs/src/Client.js
CHANGED
|
@@ -48,6 +48,7 @@ class Client {
|
|
|
48
48
|
needAuthorize;
|
|
49
49
|
isParentReactNativeWebView;
|
|
50
50
|
iframeId;
|
|
51
|
+
integrationId;
|
|
51
52
|
variant = null;
|
|
52
53
|
startPage = null;
|
|
53
54
|
product = null;
|
|
@@ -61,6 +62,7 @@ class Client {
|
|
|
61
62
|
this.needAuthorize = params.has(enums_1.UrlParams.AUTHORIZE);
|
|
62
63
|
this.startPage = params.get(enums_1.UrlParams.START_PAGE);
|
|
63
64
|
this.product = params.get(enums_1.UrlParams.PRODUCT);
|
|
65
|
+
this.integrationId = params.get(enums_1.UrlParams.ID)?.split('-')[0] ?? '';
|
|
64
66
|
// @ts-expect-error window.ReactNativeWebView will be provided by ReactNative WebView
|
|
65
67
|
this.isParentReactNativeWebView = !!window.ReactNativeWebView;
|
|
66
68
|
this.worker = this.isParentReactNativeWebView ? new PostMessageControllerNative_1.default() : new PostMessageControllerWeb_1.default();
|
|
@@ -131,7 +133,11 @@ class Client {
|
|
|
131
133
|
ready(props = types_1.SupportedPlatformVariant.ALL) {
|
|
132
134
|
const payload = typeof props === 'string'
|
|
133
135
|
? { version: this.version(), platform: props }
|
|
134
|
-
: {
|
|
136
|
+
: {
|
|
137
|
+
version: this.version(),
|
|
138
|
+
...props,
|
|
139
|
+
platform: props.platform ?? types_1.SupportedPlatformVariant.ALL,
|
|
140
|
+
};
|
|
135
141
|
this.getXBeesUser();
|
|
136
142
|
return this.sendAsync({
|
|
137
143
|
type: enums_1.ClientEventType.READY,
|
|
@@ -139,10 +145,15 @@ class Client {
|
|
|
139
145
|
});
|
|
140
146
|
}
|
|
141
147
|
async requestXbeesUser() {
|
|
142
|
-
const responseMessageUser = await this.sendAsync({
|
|
148
|
+
const responseMessageUser = await this.sendAsync({
|
|
149
|
+
type: enums_1.ClientEventType.USER,
|
|
150
|
+
});
|
|
143
151
|
if (responseMessageUser.payload) {
|
|
144
152
|
const { extension, domain } = responseMessageUser.payload;
|
|
145
|
-
this.user = {
|
|
153
|
+
this.user = {
|
|
154
|
+
...responseMessageUser.payload,
|
|
155
|
+
email: this.getUserEmail(),
|
|
156
|
+
};
|
|
146
157
|
if (extension) {
|
|
147
158
|
this.userExtension = extension;
|
|
148
159
|
}
|
|
@@ -241,10 +252,16 @@ class Client {
|
|
|
241
252
|
return this.sendAsync({ type: enums_1.ClientEventType.AVAILABLE_CONTACT_DATA });
|
|
242
253
|
}
|
|
243
254
|
contactUpdated(query, contact) {
|
|
244
|
-
return this.sendAsync({
|
|
255
|
+
return this.sendAsync({
|
|
256
|
+
type: enums_1.ClientEventType.CONTACT_CREATE_OR_UPDATE,
|
|
257
|
+
payload: { query, contact },
|
|
258
|
+
});
|
|
245
259
|
}
|
|
246
260
|
contactMatchUpdated(query, contact) {
|
|
247
|
-
return this.sendAsync({
|
|
261
|
+
return this.sendAsync({
|
|
262
|
+
type: enums_1.ClientEventType.CONTACT_MATCH_UPDATE,
|
|
263
|
+
payload: { query, contact },
|
|
264
|
+
});
|
|
248
265
|
}
|
|
249
266
|
getThemeMode() {
|
|
250
267
|
return this.sendAsync({ type: enums_1.ClientEventType.THEME_MODE });
|
|
@@ -252,6 +269,9 @@ class Client {
|
|
|
252
269
|
getTheme() {
|
|
253
270
|
return this.sendAsync({ type: enums_1.ClientEventType.THEME });
|
|
254
271
|
}
|
|
272
|
+
getIntegrationId() {
|
|
273
|
+
return this.integrationId;
|
|
274
|
+
}
|
|
255
275
|
startCall(phoneNumber) {
|
|
256
276
|
return this.sendAsync({
|
|
257
277
|
type: enums_1.ClientEventType.START_CALL,
|
|
@@ -268,7 +288,10 @@ class Client {
|
|
|
268
288
|
return this.sendAsync({ type: enums_1.ClientEventType.TO_CLIPBOARD, payload });
|
|
269
289
|
}
|
|
270
290
|
showToast(message, severity = 'INFO') {
|
|
271
|
-
return this.sendAsync({
|
|
291
|
+
return this.sendAsync({
|
|
292
|
+
type: enums_1.ClientEventType.TOAST,
|
|
293
|
+
payload: { message, severity },
|
|
294
|
+
});
|
|
272
295
|
}
|
|
273
296
|
isNotAuthorized() {
|
|
274
297
|
return this.sendAsync({ type: enums_1.ClientEventType.NOT_AUTHORIZED });
|
|
@@ -493,5 +516,43 @@ class Client {
|
|
|
493
516
|
onCancelRedirectToEntityPage(callback) {
|
|
494
517
|
return this.addEventListener(enums_1.EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE, callback);
|
|
495
518
|
}
|
|
519
|
+
onGetSupportedIntegrationContextKeys(callback) {
|
|
520
|
+
// send event to x-bees
|
|
521
|
+
void this.sendAsyncErrorSafe({
|
|
522
|
+
type: enums_1.ClientEventType.SUPPORTED_INTEGRATION_CONTEXT_KEYS_IS_SUPPORTED,
|
|
523
|
+
});
|
|
524
|
+
return this.addEventListener(enums_1.EventType.GET_SUPPORTED_INTEGRATION_CONTEXT_KEYS, () => {
|
|
525
|
+
const resolve = (keys) => this.sendAsync({
|
|
526
|
+
type: enums_1.ClientEventType.SUPPORTED_INTEGRATION_CONTEXT_KEYS,
|
|
527
|
+
payload: { keys },
|
|
528
|
+
});
|
|
529
|
+
const reject = (reason) => {
|
|
530
|
+
console.debug(reason);
|
|
531
|
+
};
|
|
532
|
+
try {
|
|
533
|
+
callback(resolve, reject);
|
|
534
|
+
}
|
|
535
|
+
catch (error) {
|
|
536
|
+
reject(`${error}`);
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
onRequestIntegrationContext(callback) {
|
|
541
|
+
return this.addEventListener(enums_1.EventType.REQUEST_INTEGRATION_CONTEXT, (payload) => {
|
|
542
|
+
const resolve = (response) => this.sendAsync({
|
|
543
|
+
type: enums_1.ClientEventType.INTEGRATION_CONTEXT_RESPONSE,
|
|
544
|
+
payload: response,
|
|
545
|
+
});
|
|
546
|
+
const reject = (reason) => {
|
|
547
|
+
console.debug(reason);
|
|
548
|
+
};
|
|
549
|
+
try {
|
|
550
|
+
callback(payload, resolve, reject);
|
|
551
|
+
}
|
|
552
|
+
catch (error) {
|
|
553
|
+
reject(`${error}`);
|
|
554
|
+
}
|
|
555
|
+
});
|
|
556
|
+
}
|
|
496
557
|
}
|
|
497
558
|
exports.Client = Client;
|
|
@@ -17,6 +17,8 @@ var EventType;
|
|
|
17
17
|
EventType["CONTACT_REFRESH"] = "xBeesContactRefresh";
|
|
18
18
|
EventType["START_REDIRECT_TO_ENTITY_PAGE"] = "xBeesStartRedirectToEntityPage";
|
|
19
19
|
EventType["CANCEL_REDIRECT_TO_ENTITY_PAGE"] = "xBeesCancelRedirectToEntityPage";
|
|
20
|
+
EventType["GET_SUPPORTED_INTEGRATION_CONTEXT_KEYS"] = "xBeesGetSupportedIntegrationContextKeys";
|
|
21
|
+
EventType["REQUEST_INTEGRATION_CONTEXT"] = "xBeesRequestIntegrationContext";
|
|
20
22
|
})(EventType || (exports.EventType = EventType = {}));
|
|
21
23
|
var ClientEventType;
|
|
22
24
|
(function (ClientEventType) {
|
|
@@ -56,6 +58,9 @@ var ClientEventType;
|
|
|
56
58
|
ClientEventType["CUSTOM_EVENT"] = "xBeesCustomEvent";
|
|
57
59
|
ClientEventType["CREATE_CONTACT_IS_SUPPORTED"] = "xBeesCreateContactIsSupported";
|
|
58
60
|
ClientEventType["CREATE_CONTACT_HAS_NO_PERMISSION"] = "xBeesCreateContactHasNoPermission";
|
|
61
|
+
ClientEventType["SUPPORTED_INTEGRATION_CONTEXT_KEYS_IS_SUPPORTED"] = "xBeesSupportedIntegrationContextKeysIsSupported";
|
|
62
|
+
ClientEventType["SUPPORTED_INTEGRATION_CONTEXT_KEYS"] = "xBeesSupportedIntegrationContextKeys";
|
|
63
|
+
ClientEventType["INTEGRATION_CONTEXT_RESPONSE"] = "xBeesIntegrationContextResponse";
|
|
59
64
|
})(ClientEventType || (exports.ClientEventType = ClientEventType = {}));
|
|
60
65
|
var UrlParams;
|
|
61
66
|
(function (UrlParams) {
|
package/dist-es/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wildix/xbees-connect",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8-alpha.2",
|
|
4
4
|
"description": "This library provides easy communication between x-bees and integrated web applications",
|
|
5
5
|
"author": "dimitri.chernykh <dimitri.chernykh@wildix.com>",
|
|
6
6
|
"homepage": "",
|
package/dist-es/src/Client.js
CHANGED
|
@@ -42,6 +42,7 @@ export class Client {
|
|
|
42
42
|
needAuthorize;
|
|
43
43
|
isParentReactNativeWebView;
|
|
44
44
|
iframeId;
|
|
45
|
+
integrationId;
|
|
45
46
|
variant = null;
|
|
46
47
|
startPage = null;
|
|
47
48
|
product = null;
|
|
@@ -55,6 +56,7 @@ export class Client {
|
|
|
55
56
|
this.needAuthorize = params.has(UrlParams.AUTHORIZE);
|
|
56
57
|
this.startPage = params.get(UrlParams.START_PAGE);
|
|
57
58
|
this.product = params.get(UrlParams.PRODUCT);
|
|
59
|
+
this.integrationId = params.get(UrlParams.ID)?.split('-')[0] ?? '';
|
|
58
60
|
// @ts-expect-error window.ReactNativeWebView will be provided by ReactNative WebView
|
|
59
61
|
this.isParentReactNativeWebView = !!window.ReactNativeWebView;
|
|
60
62
|
this.worker = this.isParentReactNativeWebView ? new PostMessageControllerNative() : new PostMessageControllerWeb();
|
|
@@ -125,7 +127,11 @@ export class Client {
|
|
|
125
127
|
ready(props = SupportedPlatformVariant.ALL) {
|
|
126
128
|
const payload = typeof props === 'string'
|
|
127
129
|
? { version: this.version(), platform: props }
|
|
128
|
-
: {
|
|
130
|
+
: {
|
|
131
|
+
version: this.version(),
|
|
132
|
+
...props,
|
|
133
|
+
platform: props.platform ?? SupportedPlatformVariant.ALL,
|
|
134
|
+
};
|
|
129
135
|
this.getXBeesUser();
|
|
130
136
|
return this.sendAsync({
|
|
131
137
|
type: ClientEventType.READY,
|
|
@@ -133,10 +139,15 @@ export class Client {
|
|
|
133
139
|
});
|
|
134
140
|
}
|
|
135
141
|
async requestXbeesUser() {
|
|
136
|
-
const responseMessageUser = await this.sendAsync({
|
|
142
|
+
const responseMessageUser = await this.sendAsync({
|
|
143
|
+
type: ClientEventType.USER,
|
|
144
|
+
});
|
|
137
145
|
if (responseMessageUser.payload) {
|
|
138
146
|
const { extension, domain } = responseMessageUser.payload;
|
|
139
|
-
this.user = {
|
|
147
|
+
this.user = {
|
|
148
|
+
...responseMessageUser.payload,
|
|
149
|
+
email: this.getUserEmail(),
|
|
150
|
+
};
|
|
140
151
|
if (extension) {
|
|
141
152
|
this.userExtension = extension;
|
|
142
153
|
}
|
|
@@ -235,10 +246,16 @@ export class Client {
|
|
|
235
246
|
return this.sendAsync({ type: ClientEventType.AVAILABLE_CONTACT_DATA });
|
|
236
247
|
}
|
|
237
248
|
contactUpdated(query, contact) {
|
|
238
|
-
return this.sendAsync({
|
|
249
|
+
return this.sendAsync({
|
|
250
|
+
type: ClientEventType.CONTACT_CREATE_OR_UPDATE,
|
|
251
|
+
payload: { query, contact },
|
|
252
|
+
});
|
|
239
253
|
}
|
|
240
254
|
contactMatchUpdated(query, contact) {
|
|
241
|
-
return this.sendAsync({
|
|
255
|
+
return this.sendAsync({
|
|
256
|
+
type: ClientEventType.CONTACT_MATCH_UPDATE,
|
|
257
|
+
payload: { query, contact },
|
|
258
|
+
});
|
|
242
259
|
}
|
|
243
260
|
getThemeMode() {
|
|
244
261
|
return this.sendAsync({ type: ClientEventType.THEME_MODE });
|
|
@@ -246,6 +263,9 @@ export class Client {
|
|
|
246
263
|
getTheme() {
|
|
247
264
|
return this.sendAsync({ type: ClientEventType.THEME });
|
|
248
265
|
}
|
|
266
|
+
getIntegrationId() {
|
|
267
|
+
return this.integrationId;
|
|
268
|
+
}
|
|
249
269
|
startCall(phoneNumber) {
|
|
250
270
|
return this.sendAsync({
|
|
251
271
|
type: ClientEventType.START_CALL,
|
|
@@ -262,7 +282,10 @@ export class Client {
|
|
|
262
282
|
return this.sendAsync({ type: ClientEventType.TO_CLIPBOARD, payload });
|
|
263
283
|
}
|
|
264
284
|
showToast(message, severity = 'INFO') {
|
|
265
|
-
return this.sendAsync({
|
|
285
|
+
return this.sendAsync({
|
|
286
|
+
type: ClientEventType.TOAST,
|
|
287
|
+
payload: { message, severity },
|
|
288
|
+
});
|
|
266
289
|
}
|
|
267
290
|
isNotAuthorized() {
|
|
268
291
|
return this.sendAsync({ type: ClientEventType.NOT_AUTHORIZED });
|
|
@@ -487,4 +510,42 @@ export class Client {
|
|
|
487
510
|
onCancelRedirectToEntityPage(callback) {
|
|
488
511
|
return this.addEventListener(EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE, callback);
|
|
489
512
|
}
|
|
513
|
+
onGetSupportedIntegrationContextKeys(callback) {
|
|
514
|
+
// send event to x-bees
|
|
515
|
+
void this.sendAsyncErrorSafe({
|
|
516
|
+
type: ClientEventType.SUPPORTED_INTEGRATION_CONTEXT_KEYS_IS_SUPPORTED,
|
|
517
|
+
});
|
|
518
|
+
return this.addEventListener(EventType.GET_SUPPORTED_INTEGRATION_CONTEXT_KEYS, () => {
|
|
519
|
+
const resolve = (keys) => this.sendAsync({
|
|
520
|
+
type: ClientEventType.SUPPORTED_INTEGRATION_CONTEXT_KEYS,
|
|
521
|
+
payload: { keys },
|
|
522
|
+
});
|
|
523
|
+
const reject = (reason) => {
|
|
524
|
+
console.debug(reason);
|
|
525
|
+
};
|
|
526
|
+
try {
|
|
527
|
+
callback(resolve, reject);
|
|
528
|
+
}
|
|
529
|
+
catch (error) {
|
|
530
|
+
reject(`${error}`);
|
|
531
|
+
}
|
|
532
|
+
});
|
|
533
|
+
}
|
|
534
|
+
onRequestIntegrationContext(callback) {
|
|
535
|
+
return this.addEventListener(EventType.REQUEST_INTEGRATION_CONTEXT, (payload) => {
|
|
536
|
+
const resolve = (response) => this.sendAsync({
|
|
537
|
+
type: ClientEventType.INTEGRATION_CONTEXT_RESPONSE,
|
|
538
|
+
payload: response,
|
|
539
|
+
});
|
|
540
|
+
const reject = (reason) => {
|
|
541
|
+
console.debug(reason);
|
|
542
|
+
};
|
|
543
|
+
try {
|
|
544
|
+
callback(payload, resolve, reject);
|
|
545
|
+
}
|
|
546
|
+
catch (error) {
|
|
547
|
+
reject(`${error}`);
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
}
|
|
490
551
|
}
|
|
@@ -14,6 +14,8 @@ export var EventType;
|
|
|
14
14
|
EventType["CONTACT_REFRESH"] = "xBeesContactRefresh";
|
|
15
15
|
EventType["START_REDIRECT_TO_ENTITY_PAGE"] = "xBeesStartRedirectToEntityPage";
|
|
16
16
|
EventType["CANCEL_REDIRECT_TO_ENTITY_PAGE"] = "xBeesCancelRedirectToEntityPage";
|
|
17
|
+
EventType["GET_SUPPORTED_INTEGRATION_CONTEXT_KEYS"] = "xBeesGetSupportedIntegrationContextKeys";
|
|
18
|
+
EventType["REQUEST_INTEGRATION_CONTEXT"] = "xBeesRequestIntegrationContext";
|
|
17
19
|
})(EventType || (EventType = {}));
|
|
18
20
|
export var ClientEventType;
|
|
19
21
|
(function (ClientEventType) {
|
|
@@ -53,6 +55,9 @@ export var ClientEventType;
|
|
|
53
55
|
ClientEventType["CUSTOM_EVENT"] = "xBeesCustomEvent";
|
|
54
56
|
ClientEventType["CREATE_CONTACT_IS_SUPPORTED"] = "xBeesCreateContactIsSupported";
|
|
55
57
|
ClientEventType["CREATE_CONTACT_HAS_NO_PERMISSION"] = "xBeesCreateContactHasNoPermission";
|
|
58
|
+
ClientEventType["SUPPORTED_INTEGRATION_CONTEXT_KEYS_IS_SUPPORTED"] = "xBeesSupportedIntegrationContextKeysIsSupported";
|
|
59
|
+
ClientEventType["SUPPORTED_INTEGRATION_CONTEXT_KEYS"] = "xBeesSupportedIntegrationContextKeys";
|
|
60
|
+
ClientEventType["INTEGRATION_CONTEXT_RESPONSE"] = "xBeesIntegrationContextResponse";
|
|
56
61
|
})(ClientEventType || (ClientEventType = {}));
|
|
57
62
|
export var UrlParams;
|
|
58
63
|
(function (UrlParams) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Callback, ConnectClient, Contact, ContactQuery, IPayloadViewPort, LookupAndMatchContactsResolver, Message, Reject, RemoveEventListener, ResponseMessage, StorageEventCallback, SuggestContactsResolver, SupportedPlatformVariant, ToastSeverity, XBeesUser } from '../types';
|
|
1
|
+
import { Callback, ConnectClient, Contact, ContactQuery, IPayloadRequestIntegrationContext, IPayloadViewPort, LookupAndMatchContactsResolver, Message, Reject, RemoveEventListener, ResponseMessage, StorageEventCallback, SuggestContactsResolver, SupportedPlatformVariant, ToastSeverity, XBeesUser } from '../types';
|
|
2
2
|
import { ReadyExtendedProps } from '../types/Event';
|
|
3
3
|
import { JSONValue } from '../types/Json';
|
|
4
|
-
import { LookupAndMatchBatchContactsResolver } from '../types/Resolver';
|
|
4
|
+
import { GetSupportedIntegrationContextKeysResolver, LookupAndMatchBatchContactsResolver, RequestIntegrationContextResolver } from '../types/Resolver';
|
|
5
5
|
import { ClientEventType, EventType, Product, StartPage } from './enums';
|
|
6
6
|
import TechnicalSupport from './helpers/TechnicalSupport';
|
|
7
7
|
/**
|
|
@@ -25,6 +25,7 @@ export declare class Client implements ConnectClient {
|
|
|
25
25
|
private readonly needAuthorize;
|
|
26
26
|
private readonly isParentReactNativeWebView;
|
|
27
27
|
private readonly iframeId;
|
|
28
|
+
private readonly integrationId;
|
|
28
29
|
private readonly variant;
|
|
29
30
|
private readonly startPage;
|
|
30
31
|
private readonly product;
|
|
@@ -73,6 +74,7 @@ export declare class Client implements ConnectClient {
|
|
|
73
74
|
contactMatchUpdated(query: ContactQuery, contact: Contact): Promise<ResponseMessage<ClientEventType.CONTACT_MATCH_UPDATE>>;
|
|
74
75
|
getThemeMode(): Promise<Message<ClientEventType.THEME_MODE>>;
|
|
75
76
|
getTheme(): Promise<Message<ClientEventType.THEME>>;
|
|
77
|
+
getIntegrationId(): string;
|
|
76
78
|
startCall(phoneNumber: string): Promise<Message<ClientEventType.START_CALL>>;
|
|
77
79
|
reboot(): Promise<ResponseMessage>;
|
|
78
80
|
setViewport(payload: IPayloadViewPort): Promise<ResponseMessage>;
|
|
@@ -116,4 +118,6 @@ export declare class Client implements ConnectClient {
|
|
|
116
118
|
onContactRefresh(callback: Callback<EventType.CONTACT_REFRESH>): RemoveEventListener;
|
|
117
119
|
onStartRedirectToEntityPage(callback: Callback<EventType.START_REDIRECT_TO_ENTITY_PAGE>): RemoveEventListener;
|
|
118
120
|
onCancelRedirectToEntityPage(callback: Callback<EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE>): RemoveEventListener;
|
|
121
|
+
onGetSupportedIntegrationContextKeys(callback: (resolve: GetSupportedIntegrationContextKeysResolver, reject: Reject) => void): RemoveEventListener;
|
|
122
|
+
onRequestIntegrationContext(callback: (payload: IPayloadRequestIntegrationContext, resolve: RequestIntegrationContextResolver, reject: Reject) => void): RemoveEventListener;
|
|
119
123
|
}
|
|
@@ -12,7 +12,9 @@ export declare enum EventType {
|
|
|
12
12
|
CONTACT_WEIGHT_UPDATE = "xBeesContactWeightUpdate",
|
|
13
13
|
CONTACT_REFRESH = "xBeesContactRefresh",
|
|
14
14
|
START_REDIRECT_TO_ENTITY_PAGE = "xBeesStartRedirectToEntityPage",
|
|
15
|
-
CANCEL_REDIRECT_TO_ENTITY_PAGE = "xBeesCancelRedirectToEntityPage"
|
|
15
|
+
CANCEL_REDIRECT_TO_ENTITY_PAGE = "xBeesCancelRedirectToEntityPage",
|
|
16
|
+
GET_SUPPORTED_INTEGRATION_CONTEXT_KEYS = "xBeesGetSupportedIntegrationContextKeys",
|
|
17
|
+
REQUEST_INTEGRATION_CONTEXT = "xBeesRequestIntegrationContext"
|
|
16
18
|
}
|
|
17
19
|
export declare enum ClientEventType {
|
|
18
20
|
READY = "xBeesReady",
|
|
@@ -50,7 +52,10 @@ export declare enum ClientEventType {
|
|
|
50
52
|
DROPDOWN_VISIBILITY = "xBeesDropdownVisibility",
|
|
51
53
|
CUSTOM_EVENT = "xBeesCustomEvent",
|
|
52
54
|
CREATE_CONTACT_IS_SUPPORTED = "xBeesCreateContactIsSupported",
|
|
53
|
-
CREATE_CONTACT_HAS_NO_PERMISSION = "xBeesCreateContactHasNoPermission"
|
|
55
|
+
CREATE_CONTACT_HAS_NO_PERMISSION = "xBeesCreateContactHasNoPermission",
|
|
56
|
+
SUPPORTED_INTEGRATION_CONTEXT_KEYS_IS_SUPPORTED = "xBeesSupportedIntegrationContextKeysIsSupported",
|
|
57
|
+
SUPPORTED_INTEGRATION_CONTEXT_KEYS = "xBeesSupportedIntegrationContextKeys",
|
|
58
|
+
INTEGRATION_CONTEXT_RESPONSE = "xBeesIntegrationContextResponse"
|
|
54
59
|
}
|
|
55
60
|
export declare enum UrlParams {
|
|
56
61
|
TOKEN = "t",
|
|
@@ -6,9 +6,9 @@ import { ReadyExtendedProps } from './Event';
|
|
|
6
6
|
import { JSONValue } from './Json';
|
|
7
7
|
import { RemoveEventListener } from './Listener';
|
|
8
8
|
import { ResponseMessage } from './Message';
|
|
9
|
-
import { IPayloadViewPort } from './Payload';
|
|
9
|
+
import { IPayloadRequestIntegrationContext, IPayloadViewPort } from './Payload';
|
|
10
10
|
import { SupportedPlatformVariant } from './Platform';
|
|
11
|
-
import { LookupAndMatchBatchContactsResolver, LookupAndMatchContactsResolver, Reject, SuggestContactsResolver } from './Resolver';
|
|
11
|
+
import { GetSupportedIntegrationContextKeysResolver, LookupAndMatchBatchContactsResolver, LookupAndMatchContactsResolver, Reject, RequestIntegrationContextResolver, SuggestContactsResolver } from './Resolver';
|
|
12
12
|
import { StorageEventCallback } from './Storage';
|
|
13
13
|
import { ToastSeverity } from './Toast';
|
|
14
14
|
import { XBeesUser } from './XBeesUser';
|
|
@@ -43,6 +43,9 @@ export interface ConnectClient {
|
|
|
43
43
|
/**
|
|
44
44
|
* Retrieves the product type from which the integration is opened */
|
|
45
45
|
getProduct: () => Product | null;
|
|
46
|
+
/**
|
|
47
|
+
* Retrieves the integration id from url */
|
|
48
|
+
getIntegrationId: () => string;
|
|
46
49
|
/**
|
|
47
50
|
* Retrieves the version of xBeesConnect */
|
|
48
51
|
version: () => string;
|
|
@@ -226,4 +229,18 @@ export interface ConnectClient {
|
|
|
226
229
|
* Removes data about redirect to entity page from integration storage
|
|
227
230
|
*/
|
|
228
231
|
onCancelRedirectToEntityPage: (callback: Callback<EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE>) => RemoveEventListener;
|
|
232
|
+
/**
|
|
233
|
+
* Registers a handler that returns the list of integration context keys this integration supports.
|
|
234
|
+
* Announces integration context capability to xBees on registration.
|
|
235
|
+
* Suitable for headless/daemon integrations.
|
|
236
|
+
* Use resolve(keys) to respond. Use reject(reason) only for fatal/initialization errors.
|
|
237
|
+
*/
|
|
238
|
+
onGetSupportedIntegrationContextKeys: (callback: (resolve: GetSupportedIntegrationContextKeysResolver, reject: Reject) => void) => RemoveEventListener;
|
|
239
|
+
/**
|
|
240
|
+
* Registers a handler for integration context requests from xBees.
|
|
241
|
+
* xBees provides a query and a set of requested keys; the integration should return aggregated data.
|
|
242
|
+
* For partial success, use resolve({ data, errors }) instead of reject.
|
|
243
|
+
* Use reject(reason) only for invalid payload or fatal errors.
|
|
244
|
+
*/
|
|
245
|
+
onRequestIntegrationContext: (callback: (payload: IPayloadRequestIntegrationContext, resolve: RequestIntegrationContextResolver, reject: Reject) => void) => RemoveEventListener;
|
|
229
246
|
}
|
|
@@ -2,10 +2,10 @@ import { ClientEventType, EventType } from '../src/enums';
|
|
|
2
2
|
import { AvailableContactData } from './AvailableContactData';
|
|
3
3
|
import { ContactQuery } from './Contact';
|
|
4
4
|
import { Message, MessageType } from './Message';
|
|
5
|
-
import { IPayloadAutoSuggestResult, IPayloadBatchContactsMatchResult, IPayloadBatchContactsMatchResultError, IPayloadCallStart, IPayloadCallStartedInfo, IPayloadCancelRedirectToEntityPage, IPayloadContactMatchResult, IPayloadContactMatchResultNotFound, IPayloadContactResult, IPayloadContactWeightUpdate, IPayloadContextResult, IPayloadConversationResult, IPayloadCustomEvent, IPayloadDropdownVisibility, IPayloadGetFromStorage, IPayloadSaveToStorage, IPayloadSendAnalytics, IPayloadStartRedirectToEntityPage, IPayloadTechSupport, IPayloadThemeChange, IPayloadToast, IPayloadVersion, IPayloadViewPort } from './Payload';
|
|
5
|
+
import { IPayloadAutoSuggestResult, IPayloadBatchContactsMatchResult, IPayloadBatchContactsMatchResultError, IPayloadCallStart, IPayloadCallStartedInfo, IPayloadCancelRedirectToEntityPage, IPayloadContactMatchResult, IPayloadContactMatchResultNotFound, IPayloadContactResult, IPayloadContactWeightUpdate, IPayloadContextResult, IPayloadConversationResult, IPayloadCustomEvent, IPayloadDropdownVisibility, IPayloadGetFromStorage, IPayloadIntegrationContextResponse, IPayloadRequestIntegrationContext, IPayloadSaveToStorage, IPayloadSendAnalytics, IPayloadStartRedirectToEntityPage, IPayloadSupportedIntegrationContextKeys, IPayloadTechSupport, IPayloadThemeChange, IPayloadToast, IPayloadVersion, IPayloadViewPort } from './Payload';
|
|
6
6
|
import { SupportedPlatformVariant } from './Platform';
|
|
7
7
|
import { XBeesUser } from './XBeesUser';
|
|
8
|
-
export type EventPayload<T extends MessageType> = T extends EventType.GET_CONTACTS_AUTO_SUGGEST ? string : T extends ClientEventType.CONTACTS_AUTO_SUGGEST ? IPayloadAutoSuggestResult : T extends ClientEventType.CONTACT_LOOKUP_AND_MATCH | ClientEventType.CONTACT_CREATE_OR_UPDATE | ClientEventType.CONTACT_MATCH_UPDATE ? IPayloadContactMatchResult : T extends ClientEventType.CONTACT_LOOKUP_AND_MATCH_NOT_FOUND ? IPayloadContactMatchResultNotFound : T extends ClientEventType.LOOKUP_AND_MATCH_BATCH_ERROR ? IPayloadBatchContactsMatchResultError : T extends ClientEventType.CONTEXT ? IPayloadContextResult : T extends ClientEventType.CURRENT_CONTACT ? IPayloadContactResult : T extends ClientEventType.CURRENT_CONVERSATION ? IPayloadConversationResult : T extends EventType.ADD_CALL ? IPayloadCallStartedInfo : T extends ClientEventType.START_CALL ? IPayloadCallStart : T extends ClientEventType.READY ? IPayloadVersion : T extends ClientEventType.VIEW_PORT ? IPayloadViewPort : T extends ClientEventType.THEME ? IPayloadThemeChange : T extends EventType.USE_THEME ? IPayloadThemeChange : T extends ClientEventType.TOAST ? IPayloadToast : T extends ClientEventType.SEND_ANALYTICS ? IPayloadSendAnalytics : T extends ClientEventType.SEND_TECHNICAL_SUPPORT_INFORMATION ? IPayloadTechSupport : T extends EventType.PBX_TOKEN ? string : T extends ClientEventType.TOKEN ? string : T extends ClientEventType.TO_CLIPBOARD ? string : T extends EventType.GET_LOOK_UP_AND_MATCH ? ContactQuery : T extends EventType.GET_LOOK_UP_AND_MATCH_BATCH ? ContactQuery[] : T extends EventType.VISIBILITY ? boolean : T extends ClientEventType.USER ? XBeesUser : T extends ClientEventType.SAVE_TO_STORAGE ? IPayloadSaveToStorage : T extends ClientEventType.GET_FROM_STORAGE ? IPayloadGetFromStorage : T extends ClientEventType.REMOVE_FROM_STORAGE ? IPayloadGetFromStorage : T extends ClientEventType.AVAILABLE_CONTACT_DATA ? AvailableContactData | null : T extends ClientEventType.LOOK_UP_AND_MATCH_BATCH_CONTACTS ? IPayloadBatchContactsMatchResult : T extends ClientEventType.DROPDOWN_VISIBILITY ? IPayloadDropdownVisibility : T extends ClientEventType.CUSTOM_EVENT ? IPayloadCustomEvent : T extends EventType.START_REDIRECT_TO_ENTITY_PAGE ? IPayloadStartRedirectToEntityPage : T extends EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE ? IPayloadCancelRedirectToEntityPage : never;
|
|
8
|
+
export type EventPayload<T extends MessageType> = T extends EventType.GET_CONTACTS_AUTO_SUGGEST ? string : T extends ClientEventType.CONTACTS_AUTO_SUGGEST ? IPayloadAutoSuggestResult : T extends ClientEventType.CONTACT_LOOKUP_AND_MATCH | ClientEventType.CONTACT_CREATE_OR_UPDATE | ClientEventType.CONTACT_MATCH_UPDATE ? IPayloadContactMatchResult : T extends ClientEventType.CONTACT_LOOKUP_AND_MATCH_NOT_FOUND ? IPayloadContactMatchResultNotFound : T extends ClientEventType.LOOKUP_AND_MATCH_BATCH_ERROR ? IPayloadBatchContactsMatchResultError : T extends ClientEventType.CONTEXT ? IPayloadContextResult : T extends ClientEventType.CURRENT_CONTACT ? IPayloadContactResult : T extends ClientEventType.CURRENT_CONVERSATION ? IPayloadConversationResult : T extends EventType.ADD_CALL ? IPayloadCallStartedInfo : T extends ClientEventType.START_CALL ? IPayloadCallStart : T extends ClientEventType.READY ? IPayloadVersion : T extends ClientEventType.VIEW_PORT ? IPayloadViewPort : T extends ClientEventType.THEME ? IPayloadThemeChange : T extends EventType.USE_THEME ? IPayloadThemeChange : T extends ClientEventType.TOAST ? IPayloadToast : T extends ClientEventType.SEND_ANALYTICS ? IPayloadSendAnalytics : T extends ClientEventType.SEND_TECHNICAL_SUPPORT_INFORMATION ? IPayloadTechSupport : T extends EventType.PBX_TOKEN ? string : T extends ClientEventType.TOKEN ? string : T extends ClientEventType.TO_CLIPBOARD ? string : T extends EventType.GET_LOOK_UP_AND_MATCH ? ContactQuery : T extends EventType.GET_LOOK_UP_AND_MATCH_BATCH ? ContactQuery[] : T extends EventType.VISIBILITY ? boolean : T extends ClientEventType.USER ? XBeesUser : T extends ClientEventType.SAVE_TO_STORAGE ? IPayloadSaveToStorage : T extends ClientEventType.GET_FROM_STORAGE ? IPayloadGetFromStorage : T extends ClientEventType.REMOVE_FROM_STORAGE ? IPayloadGetFromStorage : T extends ClientEventType.AVAILABLE_CONTACT_DATA ? AvailableContactData | null : T extends ClientEventType.LOOK_UP_AND_MATCH_BATCH_CONTACTS ? IPayloadBatchContactsMatchResult : T extends ClientEventType.DROPDOWN_VISIBILITY ? IPayloadDropdownVisibility : T extends ClientEventType.CUSTOM_EVENT ? IPayloadCustomEvent : T extends EventType.START_REDIRECT_TO_ENTITY_PAGE ? IPayloadStartRedirectToEntityPage : T extends EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE ? IPayloadCancelRedirectToEntityPage : T extends EventType.GET_SUPPORTED_INTEGRATION_CONTEXT_KEYS ? undefined : T extends EventType.REQUEST_INTEGRATION_CONTEXT ? IPayloadRequestIntegrationContext : T extends ClientEventType.SUPPORTED_INTEGRATION_CONTEXT_KEYS ? IPayloadSupportedIntegrationContextKeys : T extends ClientEventType.INTEGRATION_CONTEXT_RESPONSE ? IPayloadIntegrationContextResponse : never;
|
|
9
9
|
export type EventPayloadMap = {
|
|
10
10
|
[EventType.GET_CONTACTS_AUTO_SUGGEST]: string;
|
|
11
11
|
[EventType.GET_LOOK_UP_AND_MATCH]: ContactQuery;
|
|
@@ -19,6 +19,8 @@ export type EventPayloadMap = {
|
|
|
19
19
|
[EventType.CONTACT_REFRESH]: string;
|
|
20
20
|
[EventType.START_REDIRECT_TO_ENTITY_PAGE]: IPayloadStartRedirectToEntityPage;
|
|
21
21
|
[EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE]: IPayloadCancelRedirectToEntityPage;
|
|
22
|
+
[EventType.GET_SUPPORTED_INTEGRATION_CONTEXT_KEYS]: undefined;
|
|
23
|
+
[EventType.REQUEST_INTEGRATION_CONTEXT]: IPayloadRequestIntegrationContext;
|
|
22
24
|
};
|
|
23
25
|
export type EventCallbackMap = {
|
|
24
26
|
[EventType.GET_CONTACTS_AUTO_SUGGEST]: (query: EventPayloadMap[EventType.GET_CONTACTS_AUTO_SUGGEST]) => void;
|
|
@@ -33,6 +35,8 @@ export type EventCallbackMap = {
|
|
|
33
35
|
[EventType.CONTACT_REFRESH]: (id: EventPayloadMap[EventType.CONTACT_REFRESH]) => void;
|
|
34
36
|
[EventType.START_REDIRECT_TO_ENTITY_PAGE]: (params: EventPayloadMap[EventType.START_REDIRECT_TO_ENTITY_PAGE]) => void;
|
|
35
37
|
[EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE]: (params: EventPayloadMap[EventType.CANCEL_REDIRECT_TO_ENTITY_PAGE]) => void;
|
|
38
|
+
[EventType.GET_SUPPORTED_INTEGRATION_CONTEXT_KEYS]: (_?: undefined) => void;
|
|
39
|
+
[EventType.REQUEST_INTEGRATION_CONTEXT]: (payload: EventPayloadMap[EventType.REQUEST_INTEGRATION_CONTEXT]) => void;
|
|
36
40
|
};
|
|
37
41
|
export type RawMessageEvent = MessageEvent<string | Message>;
|
|
38
42
|
export type ReadyExtendedProps = {
|
|
@@ -95,4 +95,28 @@ export interface IPayloadStartRedirectToEntityPage {
|
|
|
95
95
|
export interface IPayloadCancelRedirectToEntityPage {
|
|
96
96
|
conversationId: string;
|
|
97
97
|
}
|
|
98
|
+
export interface IntegrationContextKey {
|
|
99
|
+
key: string;
|
|
100
|
+
description: string;
|
|
101
|
+
}
|
|
102
|
+
export interface IPayloadSupportedIntegrationContextKeys {
|
|
103
|
+
keys: IntegrationContextKey[];
|
|
104
|
+
}
|
|
105
|
+
export interface IPayloadRequestIntegrationContext {
|
|
106
|
+
query: ContactQuery;
|
|
107
|
+
keys: IntegrationContextKey[];
|
|
108
|
+
}
|
|
109
|
+
export interface IResolvedIntegrationEntity {
|
|
110
|
+
id: string;
|
|
111
|
+
type: string;
|
|
112
|
+
name?: string;
|
|
113
|
+
}
|
|
114
|
+
export interface IPayloadIntegrationContextResponse {
|
|
115
|
+
query: ContactQuery;
|
|
116
|
+
requestedKeys: IntegrationContextKey[];
|
|
117
|
+
supportedKeys: IntegrationContextKey[];
|
|
118
|
+
resolvedEntity?: IResolvedIntegrationEntity;
|
|
119
|
+
data: Partial<Record<string, unknown>>;
|
|
120
|
+
errors?: Partial<Record<string, string>>;
|
|
121
|
+
}
|
|
98
122
|
export {};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Contact, ContactQuery } from './Contact';
|
|
2
|
+
import { IntegrationContextKey, IPayloadIntegrationContextResponse } from './Payload';
|
|
2
3
|
export type SuggestContactsResolver = (contacts: Contact[]) => void;
|
|
3
4
|
export type LookupAndMatchContactsResolver = (contact: Contact) => void;
|
|
4
5
|
export type LookupAndMatchBatchContactsResolver = (contactResultsMap: Map<ContactQuery, Contact | null | undefined>) => void;
|
|
5
6
|
export type Reject = (reason: string) => void;
|
|
7
|
+
export type GetSupportedIntegrationContextKeysResolver = (keys: IntegrationContextKey[]) => void;
|
|
8
|
+
export type RequestIntegrationContextResolver = (response: IPayloadIntegrationContextResponse) => void;
|
|
@@ -7,9 +7,9 @@ export type { JSONArray, JSONObject } from './Json';
|
|
|
7
7
|
export type { Listener, RemoveEventListener } from './Listener';
|
|
8
8
|
export type { Message, MessageIFrameResponse, MessageType, ResponseMessage } from './Message';
|
|
9
9
|
export type { MessageSender } from './MessageSender';
|
|
10
|
-
export type { IPayloadAutoSuggestResult, IPayloadCallStart, IPayloadCallStartedInfo, IPayloadContactMatchResult, IPayloadContactMatchResultNotFound, IPayloadContactResult, IPayloadContextResult, IPayloadConversationResult, IPayloadSendAnalytics, IPayloadTechSupport, IPayloadThemeChange, IPayloadToast, IPayloadVersion, IPayloadViewPort,
|
|
10
|
+
export type { IntegrationContextKey, IPayloadAutoSuggestResult, IPayloadCallStart, IPayloadCallStartedInfo, IPayloadCancelRedirectToEntityPage, IPayloadContactMatchResult, IPayloadContactMatchResultNotFound, IPayloadContactResult, IPayloadContextResult, IPayloadConversationResult, IPayloadIntegrationContextResponse, IPayloadRequestIntegrationContext, IPayloadSendAnalytics, IPayloadStartRedirectToEntityPage, IPayloadSupportedIntegrationContextKeys, IPayloadTechSupport, IPayloadThemeChange, IPayloadToast, IPayloadVersion, IPayloadViewPort, IResolvedIntegrationEntity, } from './Payload';
|
|
11
11
|
export { SupportedPlatformVariant } from './Platform';
|
|
12
|
-
export type { LookupAndMatchBatchContactsResolver, LookupAndMatchContactsResolver, Reject, SuggestContactsResolver, } from './Resolver';
|
|
12
|
+
export type { GetSupportedIntegrationContextKeysResolver, LookupAndMatchBatchContactsResolver, LookupAndMatchContactsResolver, Reject, RequestIntegrationContextResolver, SuggestContactsResolver, } from './Resolver';
|
|
13
13
|
export type { StorageEventCallback } from './Storage';
|
|
14
14
|
export type { ToastSeverity } from './Toast';
|
|
15
15
|
export type { WorkVariants } from './WorkVariant';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wildix/xbees-connect",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8-alpha.2",
|
|
4
4
|
"description": "This library provides easy communication between x-bees and integrated web applications",
|
|
5
5
|
"author": "dimitri.chernykh <dimitri.chernykh@wildix.com>",
|
|
6
6
|
"homepage": "",
|