@wildix/xbees-connect 1.1.13 → 1.1.15

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wildix/xbees-connect",
3
- "version": "1.1.9",
3
+ "version": "1.1.14",
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": "",
@@ -147,6 +147,9 @@ export class Client {
147
147
  getCurrentContact() {
148
148
  return this.sendAsync({ type: ClientEventType.CURRENT_CONTACT });
149
149
  }
150
+ getCurrentConversation() {
151
+ return this.sendAsync({ type: ClientEventType.CURRENT_CONVERSATION });
152
+ }
150
153
  contactUpdated(query, contact) {
151
154
  return this.sendAsync({ type: ClientEventType.CONTACT_CREATE_OR_UPDATE, payload: { query, contact } });
152
155
  }
@@ -307,4 +310,7 @@ export class Client {
307
310
  },
308
311
  });
309
312
  }
313
+ setIntegrationStorageKey(integrationKey) {
314
+ this.localStorageManager.setIntegrationKey(integrationKey);
315
+ }
310
316
  }
@@ -14,6 +14,7 @@ export var ClientEventType;
14
14
  ClientEventType["READY"] = "xBeesReady";
15
15
  ClientEventType["CONTEXT"] = "xBeesContext";
16
16
  ClientEventType["CURRENT_CONTACT"] = "xBeesCurrentContact";
17
+ ClientEventType["CURRENT_CONVERSATION"] = "xBeesCurrentConversation";
17
18
  ClientEventType["THEME_MODE"] = "xBeesThemeMode";
18
19
  ClientEventType["THEME"] = "xBeesTheme";
19
20
  ClientEventType["START_CALL"] = "xBeesStartCall";
@@ -8,6 +8,9 @@ class LocalStorageManager {
8
8
  }
9
9
  listeners = new Set();
10
10
  integrationKey = '';
11
+ setIntegrationKey(integrationKey) {
12
+ this.integrationKey = integrationKey;
13
+ }
11
14
  getStorageKey(key) {
12
15
  return !this.integrationKey ? key : `${this.integrationKey}_${key}`;
13
16
  }
@@ -38,6 +38,7 @@ export declare class Client implements ConnectClient {
38
38
  isActivationOnly(): boolean;
39
39
  getContext(): Promise<Message<ClientEventType.CONTEXT>>;
40
40
  getCurrentContact(): Promise<Message<ClientEventType.CURRENT_CONTACT>>;
41
+ getCurrentConversation(): Promise<Message<ClientEventType.CURRENT_CONVERSATION>>;
41
42
  contactUpdated(query: ContactQuery, contact: Contact): Promise<Message<ClientEventType.CONTACT_CREATE_OR_UPDATE>>;
42
43
  getThemeMode(): Promise<Message<ClientEventType.THEME_MODE>>;
43
44
  getTheme(): Promise<Message<ClientEventType.THEME>>;
@@ -67,4 +68,5 @@ export declare class Client implements ConnectClient {
67
68
  onStorage(listener: StorageEventCallback): () => void;
68
69
  onLogout(callback: Callback<EventType.LOGOUT>): RemoveEventListener;
69
70
  sendAnalytics(eventName: string, params?: Record<string, string>): void;
71
+ setIntegrationStorageKey(integrationKey: string): void;
70
72
  }
@@ -12,6 +12,7 @@ export declare enum ClientEventType {
12
12
  READY = "xBeesReady",
13
13
  CONTEXT = "xBeesContext",
14
14
  CURRENT_CONTACT = "xBeesCurrentContact",
15
+ CURRENT_CONVERSATION = "xBeesCurrentConversation",
15
16
  THEME_MODE = "xBeesThemeMode",
16
17
  THEME = "xBeesTheme",
17
18
  START_CALL = "xBeesStartCall",
@@ -4,6 +4,7 @@ declare class LocalStorageManager {
4
4
  static getInstance(): LocalStorageManager;
5
5
  private listeners;
6
6
  private integrationKey;
7
+ setIntegrationKey(integrationKey: string): void;
7
8
  getStorageKey(key: string): string;
8
9
  getKey(key: string): string;
9
10
  constructor();
@@ -18,6 +18,10 @@ export type Contact = (ContactShape & {
18
18
  }) | (ContactShape & {
19
19
  phone: string;
20
20
  });
21
+ export type Conversation = {
22
+ id: string;
23
+ type: string;
24
+ };
21
25
  export type ContactQuery = {
22
26
  id?: string;
23
27
  email?: string;
@@ -64,13 +68,16 @@ export interface IPayloadContactMatchResultNotFound {
64
68
  export interface IPayloadContactResult {
65
69
  contact: Contact;
66
70
  }
67
- export interface IPayloadContextResult extends IPayloadContactResult {
71
+ export interface IPayloadConversationResult {
72
+ conversation?: Conversation;
73
+ }
74
+ export interface IPayloadContextResult extends IPayloadContactResult, IPayloadConversationResult {
68
75
  }
69
76
  export interface IPayloadSendAnalytics {
70
77
  eventName: string;
71
78
  params?: Record<string, string>;
72
79
  }
73
- 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 ? IPayloadContactMatchResult : T extends ClientEventType.CONTACT_LOOKUP_AND_MATCH_NOT_FOUND ? IPayloadContactMatchResultNotFound : T extends ClientEventType.CONTACT_CREATE_OR_UPDATE ? IPayloadContactMatchResult : T extends ClientEventType.CONTEXT ? IPayloadContextResult : T extends ClientEventType.CURRENT_CONTACT ? IPayloadContactResult : 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 EventType.PBX_TOKEN ? string : T extends ClientEventType.TOKEN ? string : T extends ClientEventType.TO_CLIPBOARD ? string : never;
80
+ 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 ? IPayloadContactMatchResult : T extends ClientEventType.CONTACT_LOOKUP_AND_MATCH_NOT_FOUND ? IPayloadContactMatchResultNotFound : T extends ClientEventType.CONTACT_CREATE_OR_UPDATE ? IPayloadContactMatchResult : 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 EventType.PBX_TOKEN ? string : T extends ClientEventType.TOKEN ? string : T extends ClientEventType.TO_CLIPBOARD ? string : never;
74
81
  export type Message<T extends MessageType = MessageType> = {
75
82
  type: T;
76
83
  payload?: EventPayload<T>;
@@ -165,6 +172,9 @@ export interface ConnectClient {
165
172
  /**
166
173
  * Retrieves current opened in x-bees contact data */
167
174
  getCurrentContact: () => Promise<Message<ClientEventType.CURRENT_CONTACT>>;
175
+ /**
176
+ * Retrieves current opened in x-bees conversation data or undefined if the conversation is temporary */
177
+ getCurrentConversation: () => Promise<Message<ClientEventType.CURRENT_CONVERSATION>>;
168
178
  /**
169
179
  * Sends notification to x-bees about contact data updated */
170
180
  contactUpdated(query: ContactQuery, contact: Contact): Promise<Message<ClientEventType.CONTACT_CREATE_OR_UPDATE>>;
@@ -243,6 +253,9 @@ export interface ConnectClient {
243
253
  /**
244
254
  * Removes data from localStorage */
245
255
  deleteFromStorage: (key: string) => void;
256
+ /**
257
+ * Set parent integration key to switch to parent integration localStorage data */
258
+ setIntegrationStorageKey: (integrationKey: string) => void;
246
259
  /**
247
260
  * listens on localStorage */
248
261
  onStorage: (listener: StorageEventCallback) => () => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wildix/xbees-connect",
3
- "version": "1.1.13",
3
+ "version": "1.1.15",
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": "",
@@ -42,5 +42,5 @@
42
42
  "engines": {
43
43
  "node": ">=16"
44
44
  },
45
- "gitHead": "f61ad8eeaa80bcaf32fb3a897c1aeca47d09ba9a"
45
+ "gitHead": "958f82f41e6fb5ddc73c072cccb4e1635630fd9a"
46
46
  }