@expressms/smartapp-sdk 1.6.0 → 1.7.0-alpha.0

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,8 +1,8 @@
1
1
  import Bridge from '@expressms/smartapp-bridge';
2
- import { clientStorageClear, clientStorageGet, clientStorageRemove, clientStorageSet, createDeeplink, getChats, getConnectionStatus, handleDeeplink, openChatMessage, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, searchLocalPhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents } from './lib/client';
2
+ import { clientStorageClear, clientStorageGet, clientStorageRemove, clientStorageSet, createDeeplink, getChats, getConnectionStatus, getUnreadCounter, handleDeeplink, openChatMessage, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, searchLocalPhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents } from './lib/client';
3
3
  import { addContact, createPersonalChat, getContact, openContactCard, openPersonalChat, requestSelfProfile, sendMessage } from './lib/contacts';
4
4
  import { useQuery } from './lib/helpers/helpers';
5
5
  import { ready } from './lib/logging';
6
6
  import { onNotification } from './lib/notification';
7
7
  import { closeSmartApp, exitSmartAppToCatalog, onBackPressed, onMoveToRoot, openSmartApp, routingChanged } from './lib/routing';
8
- export { Bridge, ready, routingChanged, onBackPressed, addContact, getContact, createPersonalChat, onNotification, sendMessage, openSmartApp, openFile, exitSmartAppToCatalog, useQuery, openClientSettings, getChats, searchCorporatePhonebook, sendBotCommand, openGroupChat, onMoveToRoot, requestLocation, openContactCard, requestSelfProfile, closeSmartApp, getConnectionStatus, subscribeClientEvents, unsubscribeClientEvents, createDeeplink, openChatMessage, clientStorageGet, clientStorageSet, clientStorageRemove, clientStorageClear, openPersonalChat, handleDeeplink, searchLocalPhonebook, };
8
+ export { Bridge, ready, routingChanged, onBackPressed, addContact, getContact, createPersonalChat, onNotification, sendMessage, openSmartApp, openFile, exitSmartAppToCatalog, useQuery, openClientSettings, getChats, searchCorporatePhonebook, sendBotCommand, openGroupChat, onMoveToRoot, requestLocation, openContactCard, requestSelfProfile, closeSmartApp, getConnectionStatus, subscribeClientEvents, unsubscribeClientEvents, createDeeplink, openChatMessage, clientStorageGet, clientStorageSet, clientStorageRemove, clientStorageClear, openPersonalChat, handleDeeplink, searchLocalPhonebook, getUnreadCounter, };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.searchLocalPhonebook = exports.handleDeeplink = exports.openPersonalChat = exports.clientStorageClear = exports.clientStorageRemove = exports.clientStorageSet = exports.clientStorageGet = exports.openChatMessage = exports.createDeeplink = exports.unsubscribeClientEvents = exports.subscribeClientEvents = exports.getConnectionStatus = exports.closeSmartApp = exports.requestSelfProfile = exports.openContactCard = exports.requestLocation = exports.onMoveToRoot = exports.openGroupChat = exports.sendBotCommand = exports.searchCorporatePhonebook = exports.getChats = exports.openClientSettings = exports.useQuery = exports.exitSmartAppToCatalog = exports.openFile = exports.openSmartApp = exports.sendMessage = exports.onNotification = exports.createPersonalChat = exports.getContact = exports.addContact = exports.onBackPressed = exports.routingChanged = exports.ready = exports.Bridge = void 0;
6
+ exports.getUnreadCounter = exports.searchLocalPhonebook = exports.handleDeeplink = exports.openPersonalChat = exports.clientStorageClear = exports.clientStorageRemove = exports.clientStorageSet = exports.clientStorageGet = exports.openChatMessage = exports.createDeeplink = exports.unsubscribeClientEvents = exports.subscribeClientEvents = exports.getConnectionStatus = exports.closeSmartApp = exports.requestSelfProfile = exports.openContactCard = exports.requestLocation = exports.onMoveToRoot = exports.openGroupChat = exports.sendBotCommand = exports.searchCorporatePhonebook = exports.getChats = exports.openClientSettings = exports.useQuery = exports.exitSmartAppToCatalog = exports.openFile = exports.openSmartApp = exports.sendMessage = exports.onNotification = exports.createPersonalChat = exports.getContact = exports.addContact = exports.onBackPressed = exports.routingChanged = exports.ready = exports.Bridge = void 0;
7
7
  const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
8
8
  exports.Bridge = smartapp_bridge_1.default;
9
9
  const client_1 = require("./lib/client");
@@ -14,6 +14,7 @@ Object.defineProperty(exports, "clientStorageSet", { enumerable: true, get: func
14
14
  Object.defineProperty(exports, "createDeeplink", { enumerable: true, get: function () { return client_1.createDeeplink; } });
15
15
  Object.defineProperty(exports, "getChats", { enumerable: true, get: function () { return client_1.getChats; } });
16
16
  Object.defineProperty(exports, "getConnectionStatus", { enumerable: true, get: function () { return client_1.getConnectionStatus; } });
17
+ Object.defineProperty(exports, "getUnreadCounter", { enumerable: true, get: function () { return client_1.getUnreadCounter; } });
17
18
  Object.defineProperty(exports, "handleDeeplink", { enumerable: true, get: function () { return client_1.handleDeeplink; } });
18
19
  Object.defineProperty(exports, "openChatMessage", { enumerable: true, get: function () { return client_1.openChatMessage; } });
19
20
  Object.defineProperty(exports, "openClientSettings", { enumerable: true, get: function () { return client_1.openClientSettings; } });
@@ -46,4 +47,4 @@ Object.defineProperty(exports, "onBackPressed", { enumerable: true, get: functio
46
47
  Object.defineProperty(exports, "onMoveToRoot", { enumerable: true, get: function () { return routing_1.onMoveToRoot; } });
47
48
  Object.defineProperty(exports, "openSmartApp", { enumerable: true, get: function () { return routing_1.openSmartApp; } });
48
49
  Object.defineProperty(exports, "routingChanged", { enumerable: true, get: function () { return routing_1.routingChanged; } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUZBQStDO0FBMkM3QyxpQkEzQ0sseUJBQU0sQ0EyQ0w7QUExQ1IseUNBbUJxQjtBQXNEbkIsbUdBeEVBLDJCQUFrQixPQXdFQTtBQUhsQixpR0FwRUEseUJBQWdCLE9Bb0VBO0FBRWhCLG9HQXJFQSw0QkFBbUIsT0FxRUE7QUFEbkIsaUdBbkVBLHlCQUFnQixPQW1FQTtBQUhoQiwrRkEvREEsdUJBQWMsT0ErREE7QUFaZCx5RkFsREEsaUJBQVEsT0FrREE7QUFTUixvR0ExREEsNEJBQW1CLE9BMERBO0FBVW5CLCtGQW5FQSx1QkFBYyxPQW1FQTtBQU5kLGdHQTVEQSx3QkFBZSxPQTREQTtBQWRmLG1HQTdDQSwyQkFBa0IsT0E2Q0E7QUFIbEIseUZBekNBLGlCQUFRLE9BeUNBO0FBT1IsOEZBL0NBLHNCQUFhLE9BK0NBO0FBRWIsZ0dBaERBLHdCQUFlLE9BZ0RBO0FBSmYseUdBM0NBLGlDQUF3QixPQTJDQTtBQW1CeEIscUdBN0RBLDZCQUFvQixPQTZEQTtBQWxCcEIsK0ZBMUNBLHVCQUFjLE9BMENBO0FBUWQsc0dBakRBLDhCQUFxQixPQWlEQTtBQUNyQix3R0FqREEsZ0NBQXVCLE9BaURBO0FBL0N6Qiw2Q0FRdUI7QUFrQnJCLDJGQXpCQSxxQkFBVSxPQXlCQTtBQUVWLG1HQTFCQSw2QkFBa0IsT0EwQkE7QUFEbEIsMkZBeEJBLHFCQUFVLE9Bd0JBO0FBZVYsZ0dBdENBLDBCQUFlLE9Bc0NBO0FBWWYsaUdBakRBLDJCQUFnQixPQWlEQTtBQVhoQixtR0FyQ0EsNkJBQWtCLE9BcUNBO0FBYmxCLDRGQXZCQSxzQkFBVyxPQXVCQTtBQXJCYixtREFBOEM7QUF5QjVDLHlGQXpCTSxrQkFBUSxPQXlCTjtBQXhCViwyQ0FBbUM7QUFhakMsc0ZBYk0sZUFBSyxPQWFOO0FBWlAscURBQWlEO0FBa0IvQywrRkFsQk0sNkJBQWMsT0FrQk47QUFqQmhCLDJDQU9zQjtBQXlCcEIsOEZBL0JBLHVCQUFhLE9BK0JBO0FBWGIsc0dBbkJBLCtCQUFxQixPQW1CQTtBQVJyQiw4RkFWQSx1QkFBYSxPQVVBO0FBZWIsNkZBeEJBLHNCQUFZLE9Bd0JBO0FBVFosNkZBZEEsc0JBQVksT0FjQTtBQVBaLCtGQU5BLHdCQUFjLE9BTUEifQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUZBQStDO0FBNEM3QyxpQkE1Q0sseUJBQU0sQ0E0Q0w7QUEzQ1IseUNBb0JxQjtBQXNEbkIsbUdBekVBLDJCQUFrQixPQXlFQTtBQUhsQixpR0FyRUEseUJBQWdCLE9BcUVBO0FBRWhCLG9HQXRFQSw0QkFBbUIsT0FzRUE7QUFEbkIsaUdBcEVBLHlCQUFnQixPQW9FQTtBQUhoQiwrRkFoRUEsdUJBQWMsT0FnRUE7QUFaZCx5RkFuREEsaUJBQVEsT0FtREE7QUFTUixvR0EzREEsNEJBQW1CLE9BMkRBO0FBWW5CLGlHQXRFQSx5QkFBZ0IsT0FzRUE7QUFGaEIsK0ZBbkVBLHVCQUFjLE9BbUVBO0FBTmQsZ0dBNURBLHdCQUFlLE9BNERBO0FBZGYsbUdBN0NBLDJCQUFrQixPQTZDQTtBQUhsQix5RkF6Q0EsaUJBQVEsT0F5Q0E7QUFPUiw4RkEvQ0Esc0JBQWEsT0ErQ0E7QUFFYixnR0FoREEsd0JBQWUsT0FnREE7QUFKZix5R0EzQ0EsaUNBQXdCLE9BMkNBO0FBbUJ4QixxR0E3REEsNkJBQW9CLE9BNkRBO0FBbEJwQiwrRkExQ0EsdUJBQWMsT0EwQ0E7QUFRZCxzR0FqREEsOEJBQXFCLE9BaURBO0FBQ3JCLHdHQWpEQSxnQ0FBdUIsT0FpREE7QUEvQ3pCLDZDQVF1QjtBQWtCckIsMkZBekJBLHFCQUFVLE9BeUJBO0FBRVYsbUdBMUJBLDZCQUFrQixPQTBCQTtBQURsQiwyRkF4QkEscUJBQVUsT0F3QkE7QUFlVixnR0F0Q0EsMEJBQWUsT0FzQ0E7QUFZZixpR0FqREEsMkJBQWdCLE9BaURBO0FBWGhCLG1HQXJDQSw2QkFBa0IsT0FxQ0E7QUFibEIsNEZBdkJBLHNCQUFXLE9BdUJBO0FBckJiLG1EQUE4QztBQXlCNUMseUZBekJNLGtCQUFRLE9BeUJOO0FBeEJWLDJDQUFtQztBQWFqQyxzRkFiTSxlQUFLLE9BYU47QUFaUCxxREFBaUQ7QUFrQi9DLCtGQWxCTSw2QkFBYyxPQWtCTjtBQWpCaEIsMkNBT3NCO0FBeUJwQiw4RkEvQkEsdUJBQWEsT0ErQkE7QUFYYixzR0FuQkEsK0JBQXFCLE9BbUJBO0FBUnJCLDhGQVZBLHVCQUFhLE9BVUE7QUFlYiw2RkF4QkEsc0JBQVksT0F3QkE7QUFUWiw2RkFkQSxzQkFBWSxPQWNBO0FBUFosK0ZBTkEsd0JBQWMsT0FNQSJ9
@@ -1,20 +1,30 @@
1
- import { SubscriptionEventType } from '../../types';
1
+ import { SubscriptionEventType, SubscriptionPayload } from '../../types';
2
2
  /**
3
3
  * Subscribe to special client events
4
4
  * @param eventType Event from SubscriptionEventType enum to be subscribed
5
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
5
6
  * @param callback Optional function to be handled when event is coming
6
7
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
7
8
  */
8
- declare const subscribeClientEvents: (eventType: SubscriptionEventType, callback?: Function) => Promise<{
9
+ declare const subscribeClientEvents: ({ eventType, payload, callback, }: {
10
+ eventType: SubscriptionEventType;
11
+ payload?: SubscriptionPayload | undefined;
12
+ callback?: Function | undefined;
13
+ }) => Promise<{
9
14
  status: string;
10
15
  }>;
11
16
  /**
12
17
  * Unsubscribe from previously subscribed client events
13
18
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
19
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
14
20
  * @param callback Function to be unsibscribed
15
21
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
16
22
  */
17
- declare const unsubscribeClientEvents: (eventType: SubscriptionEventType, callback?: Function) => Promise<{
23
+ declare const unsubscribeClientEvents: ({ eventType, payload, callback, }: {
24
+ eventType: SubscriptionEventType;
25
+ payload?: SubscriptionPayload | undefined;
26
+ callback?: Function | undefined;
27
+ }) => Promise<{
18
28
  status: string;
19
29
  }>;
20
30
  export { subscribeClientEvents, unsubscribeClientEvents };
@@ -8,28 +8,39 @@ const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"))
8
8
  const types_1 = require("../../types");
9
9
  const subscriptions = [];
10
10
  let bridgeEventListenerInstalled = false;
11
- const isAnySubscriptionsOfType = (eventType) => {
12
- return subscriptions.some(sub => sub.eventType == eventType);
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ const getSubscriptionId = (eventType, payload) => {
13
+ const sourceId = (payload === null || payload === void 0 ? void 0 : payload.id) ? '-' + (payload === null || payload === void 0 ? void 0 : payload.id) : '';
14
+ const sourceType = (payload === null || payload === void 0 ? void 0 : payload.type) ? '-' + (payload === null || payload === void 0 ? void 0 : payload.type) : '';
15
+ return `${eventType}${sourceType}${sourceId}`;
16
+ };
17
+ const isAnySubscriptions = (eventType, payload) => {
18
+ const id = getSubscriptionId(eventType, payload);
19
+ return subscriptions.some(sub => sub.id == id);
13
20
  };
14
21
  const installBridgeEventListener = () => {
15
22
  if (bridgeEventListenerInstalled || !smartapp_bridge_1.default)
16
23
  return;
17
24
  bridgeEventListenerInstalled = true;
18
25
  smartapp_bridge_1.default.onReceive(event => {
19
- subscriptions.filter(sub => sub.eventType === event.type).map(sub => { var _a; return (_a = sub.callback) === null || _a === void 0 ? void 0 : _a.call(sub, event); });
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ const id = getSubscriptionId(event.type, event.payload.source);
28
+ subscriptions.filter(sub => sub.id === id).map(sub => { var _a; return (_a = sub.callback) === null || _a === void 0 ? void 0 : _a.call(sub, event); });
20
29
  });
21
30
  };
22
31
  /**
23
32
  * Subscribe to special client events
24
33
  * @param eventType Event from SubscriptionEventType enum to be subscribed
34
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
25
35
  * @param callback Optional function to be handled when event is coming
26
36
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
27
37
  */
28
- const subscribeClientEvents = (eventType, callback) => {
38
+ const subscribeClientEvents = ({ eventType, payload, callback, }) => {
29
39
  const successResponse = { status: types_1.STATUS.SUCCESS };
30
40
  // No need to subscribe event twice on client
31
- if (isAnySubscriptionsOfType(eventType)) {
32
- subscriptions.push({ eventType, callback });
41
+ if (isAnySubscriptions(eventType, payload)) {
42
+ const id = getSubscriptionId(eventType, payload);
43
+ subscriptions.push({ id, callback });
33
44
  return Promise.resolve(successResponse);
34
45
  }
35
46
  if (!smartapp_bridge_1.default)
@@ -37,13 +48,12 @@ const subscribeClientEvents = (eventType, callback) => {
37
48
  return smartapp_bridge_1.default
38
49
  .sendClientEvent({
39
50
  method: types_1.METHODS.SUBSCRIBE_CLIENT_EVENTS,
40
- params: {
41
- event: eventType,
42
- },
51
+ params: Object.assign({ event: eventType }, payload),
43
52
  })
44
53
  .then(() => {
54
+ const id = getSubscriptionId(eventType, payload);
45
55
  installBridgeEventListener();
46
- subscriptions.push({ eventType, callback });
56
+ subscriptions.push({ id, callback });
47
57
  return successResponse;
48
58
  });
49
59
  };
@@ -51,28 +61,28 @@ exports.subscribeClientEvents = subscribeClientEvents;
51
61
  /**
52
62
  * Unsubscribe from previously subscribed client events
53
63
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
64
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
54
65
  * @param callback Function to be unsibscribed
55
66
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
56
67
  */
57
- const unsubscribeClientEvents = (eventType, callback) => {
68
+ const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
58
69
  const successResponse = { status: types_1.STATUS.SUCCESS };
59
- const index = subscriptions.findIndex(sub => sub.eventType == eventType && sub.callback == callback);
70
+ const id = getSubscriptionId(eventType, payload);
71
+ const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
60
72
  if (!smartapp_bridge_1.default)
61
73
  return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
62
74
  if (index == -1)
63
75
  return Promise.reject(types_1.ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
64
76
  subscriptions.splice(index, 1);
65
77
  // Send unsubscribe to client only at last subscription
66
- if (isAnySubscriptionsOfType(eventType))
78
+ if (isAnySubscriptions(eventType, payload))
67
79
  return Promise.resolve(successResponse);
68
80
  return smartapp_bridge_1.default
69
81
  .sendClientEvent({
70
82
  method: types_1.METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
71
- params: {
72
- event: eventType,
73
- },
83
+ params: Object.assign({ event: eventType }, payload),
74
84
  })
75
85
  .then(() => successResponse);
76
86
  };
77
87
  exports.unsubscribeClientEvents = unsubscribeClientEvents;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBaUY7QUFFakYsTUFBTSxhQUFhLEdBQXFFLEVBQUUsQ0FBQTtBQUMxRixJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBZ0MsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUE7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLEVBQUU7SUFDdEMsSUFBSSw0QkFBNEIsSUFBSSxDQUFDLHlCQUFNO1FBQUUsT0FBTTtJQUVuRCw0QkFBNEIsR0FBRyxJQUFJLENBQUE7SUFFbkMseUJBQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdkIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFDLE9BQUEsTUFBQSxHQUFHLENBQUMsUUFBUSxvREFBRyxLQUFLLENBQUMsQ0FBQSxFQUFBLENBQUMsQ0FBQTtJQUM3RixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsUUFBbUIsRUFBK0IsRUFBRTtJQUNuSCxNQUFNLGVBQWUsR0FBRyxFQUFFLE1BQU0sRUFBRSxjQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFbEQsNkNBQTZDO0lBQzdDLElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdkMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzNDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtLQUN4QztJQUVELElBQUksQ0FBQyx5QkFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXpELE9BQU8seUJBQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsZUFBTyxDQUFDLHVCQUF1QjtRQUN2QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1QsMEJBQTBCLEVBQUUsQ0FBQTtRQUM1QixhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDM0MsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUErQlEsc0RBQXFCO0FBN0I5Qjs7Ozs7R0FLRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLFFBQW1CLEVBQStCLEVBQUU7SUFDckgsTUFBTSxlQUFlLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWxELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFBO0lBRXBHLElBQUksQ0FBQyx5QkFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3pELElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFFMUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFOUIsdURBQXVEO0lBQ3ZELElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRWhGLE9BQU8seUJBQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsZUFBTyxDQUFDLHlCQUF5QjtRQUN6QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDaEMsQ0FBQyxDQUFBO0FBRStCLDBEQUF1QiJ9
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBc0c7QUFFdEcsTUFBTSxhQUFhLEdBQStDLEVBQUUsQ0FBQTtBQUNwRSxJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4Qyw4REFBOEQ7QUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsT0FBYSxFQUFFLEVBQUU7SUFDNUUsTUFBTSxRQUFRLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDckQsTUFBTSxVQUFVLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxHQUFHLElBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLElBQUksQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFFM0QsT0FBTyxHQUFHLFNBQVMsR0FBRyxVQUFVLEdBQUcsUUFBUSxFQUFFLENBQUE7QUFDL0MsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFNBQWdDLEVBQUUsT0FBNkIsRUFBRSxFQUFFO0lBQzdGLE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUVoRCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ2hELENBQUMsQ0FBQTtBQUVELE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxF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
@@ -1,5 +1,5 @@
1
1
  import { EmitterEventPayload } from '@expressms/smartapp-bridge/build/main/types/eventEmitter';
2
- import { CreateDeeplinkResponse, File, GetConnectionStatusResponse, StatusResponse, SearchLocalPhonebookResponse } from '../../types';
2
+ import { CreateDeeplinkResponse, File, GetConnectionStatusResponse, GetUnreadCounterResponse, SearchLocalPhonebookResponse, StatusResponse, SubscriptionPayload } from '../../types';
3
3
  export * from './events';
4
4
  export * from './storage';
5
5
  declare const openClientSettings: () => Promise<EmitterEventPayload> | undefined;
@@ -62,4 +62,9 @@ declare const handleDeeplink: ({ link }: {
62
62
  declare const searchLocalPhonebook: ({ filter }: {
63
63
  filter: string | null;
64
64
  }) => Promise<SearchLocalPhonebookResponse>;
65
- export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, openChatMessage, handleDeeplink, searchLocalPhonebook, };
65
+ /**
66
+ * Get unread counter for chat/user/bot/smartapp.
67
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
68
+ */
69
+ declare const getUnreadCounter: ({ type, id }: SubscriptionPayload) => Promise<GetUnreadCounterResponse>;
70
+ export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, openChatMessage, handleDeeplink, searchLocalPhonebook, getUnreadCounter, };
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.searchLocalPhonebook = exports.handleDeeplink = exports.openChatMessage = exports.createDeeplink = exports.getConnectionStatus = exports.requestLocation = exports.sendBotCommand = exports.openGroupChat = exports.searchCorporatePhonebook = exports.getChats = exports.openClientSettings = exports.openFile = void 0;
20
+ exports.getUnreadCounter = exports.searchLocalPhonebook = exports.handleDeeplink = exports.openChatMessage = exports.createDeeplink = exports.getConnectionStatus = exports.requestLocation = exports.sendBotCommand = exports.openGroupChat = exports.searchCorporatePhonebook = exports.getChats = exports.openClientSettings = exports.openFile = void 0;
21
21
  const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
22
22
  const types_1 = require("../../types");
23
23
  __exportStar(require("./events"), exports);
@@ -156,4 +156,18 @@ const searchLocalPhonebook = ({ filter = null }) => {
156
156
  .then(event => event);
157
157
  };
158
158
  exports.searchLocalPhonebook = searchLocalPhonebook;
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlGQUErQztBQUUvQyx1Q0FRb0I7QUFDcEIsMkNBQXdCO0FBQ3hCLDRDQUF5QjtBQUV6QixNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtJQUM5QixPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxvQkFBb0I7UUFDcEMsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFzSkMsZ0RBQWtCO0FBcEpwQixNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksRUFBNkIsRUFBRSxFQUFFO0lBQ2hFLE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLFNBQVM7UUFDekIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFO0tBQ25CLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWdKQyw0QkFBUTtBQTlJVixNQUFNLHdCQUF3QixHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUE2QixFQUFFLEVBQUU7SUFDaEYsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsMEJBQTBCO1FBQzFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRTtLQUNuQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUEwSUMsNERBQXdCO0FBeEkxQixNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUEyQixFQUFFLEVBQUU7SUFDakUsT0FBTyx5QkFBTSxhQUFO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
159
+ /**
160
+ * Get unread counter for chat/user/bot/smartapp.
161
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
162
+ */
163
+ const getUnreadCounter = async ({ type, id }) => {
164
+ if (!smartapp_bridge_1.default)
165
+ return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
166
+ const response = await smartapp_bridge_1.default.sendClientEvent({
167
+ method: types_1.METHODS.GET_UNREAD_COUNTER,
168
+ params: { type, id },
169
+ });
170
+ return response;
171
+ };
172
+ exports.getUnreadCounter = getUnreadCounter;
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlGQUErQztBQUUvQyx1Q0FVb0I7QUFDcEIsMkNBQXdCO0FBQ3hCLDRDQUF5QjtBQUV6QixNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtJQUM5QixPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxvQkFBb0I7UUFDcEMsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFxS0MsZ0RBQWtCO0FBbktwQixNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksRUFBNkIsRUFBRSxFQUFFO0lBQ2hFLE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLFNBQVM7UUFDekIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFO0tBQ25CLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQStKQyw0QkFBUTtBQTdKVixNQUFNLHdCQUF3QixHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUE2QixFQUFFLEVBQUU7SUFDaEYsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsMEJBQTBCO1FBQzFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRTtLQUNuQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUF5SkMsNERBQXdCO0FBdkoxQixNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUEyQixFQUFFLEVBQUU7SUFDakUsT0FBTyx5QkFBTSxhQUFO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
@@ -30,7 +30,8 @@ export declare enum METHODS {
30
30
  CLIENT_STORAGE_REMOVE = "client_storage_remove",
31
31
  CLIENT_STORAGE_CLEAR = "client_storage_clear",
32
32
  HANDLE_DEEPLINK = "handle_deeplink",
33
- SEARCH_LOCAL_PHONEBOOK = "search_local_phonebook"
33
+ SEARCH_LOCAL_PHONEBOOK = "search_local_phonebook",
34
+ GET_UNREAD_COUNTER = "get_unread_counter"
34
35
  }
35
36
  export declare enum STATUS {
36
37
  SUCCESS = "success",
@@ -34,6 +34,7 @@ var METHODS;
34
34
  METHODS["CLIENT_STORAGE_CLEAR"] = "client_storage_clear";
35
35
  METHODS["HANDLE_DEEPLINK"] = "handle_deeplink";
36
36
  METHODS["SEARCH_LOCAL_PHONEBOOK"] = "search_local_phonebook";
37
+ METHODS["GET_UNREAD_COUNTER"] = "get_unread_counter";
37
38
  })(METHODS = exports.METHODS || (exports.METHODS = {}));
38
39
  var STATUS;
39
40
  (function (STATUS) {
@@ -45,4 +46,4 @@ var ERROR_CODES;
45
46
  ERROR_CODES["NO_BRIDGE"] = "no_bridge";
46
47
  ERROR_CODES["SUBSCRIPTION_NOT_FOUND"] = "subscription_not_found";
47
48
  })(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxJQUFZLE9BZ0NYO0FBaENELFdBQVksT0FBTztJQUNqQiwwQkFBZSxDQUFBO0lBQ2YsOENBQW1DLENBQUE7SUFDbkMsd0NBQTZCLENBQUE7SUFDN0Isd0NBQTZCLENBQUE7SUFDN0Isc0NBQTJCLENBQUE7SUFDM0Isc0NBQTJCLENBQUE7SUFDM0Isd0RBQTZDLENBQUE7SUFDN0Msd0NBQTZCLENBQUE7SUFDN0Isd0NBQTZCLENBQUE7SUFDN0IsNENBQWlDLENBQUE7SUFDakMsd0RBQTZDLENBQUE7SUFDN0Msa0NBQXVCLENBQUE7SUFDdkIsb0VBQXlELENBQUE7SUFDekQsZ0RBQXFDLENBQUE7SUFDckMsOENBQW1DLENBQUE7SUFDbkMsa0RBQXVDLENBQUE7SUFDdkMsZ0RBQXFDLENBQUE7SUFDckMsd0RBQTZDLENBQUE7SUFDN0MsOENBQW1DLENBQUE7SUFDbkMsa0NBQXVCLENBQUE7SUFDdkIsOERBQW1ELENBQUE7SUFDbkQsa0VBQXVELENBQUE7SUFDdkQsMERBQStDLENBQUE7SUFDL0MsOENBQW1DLENBQUE7SUFDbkMsa0RBQXVDLENBQUE7SUFDdkMsb0RBQXlDLENBQUE7SUFDekMsb0RBQXlDLENBQUE7SUFDekMsMERBQStDLENBQUE7SUFDL0Msd0RBQTZDLENBQUE7SUFDN0MsOENBQW1DLENBQUE7SUFDbkMsNERBQWlELENBQUE7QUFDbkQsQ0FBQyxFQWhDVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFnQ2xCO0FBRUQsSUFBWSxNQUdYO0FBSEQsV0FBWSxNQUFNO0lBQ2hCLDZCQUFtQixDQUFBO0lBQ25CLHlCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLE1BQU0sR0FBTixjQUFNLEtBQU4sY0FBTSxRQUdqQjtBQUVELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixzQ0FBdUIsQ0FBQTtJQUN2QixnRUFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEIifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxJQUFZLE9BaUNYO0FBakNELFdBQVksT0FBTztJQUNqQiwwQkFBZSxDQUFBO0lBQ2YsOENBQW1DLENBQUE7SUFDbkMsd0NBQTZCLENBQUE7SUFDN0Isd0NBQTZCLENBQUE7SUFDN0Isc0NBQTJCLENBQUE7SUFDM0Isc0NBQTJCLENBQUE7SUFDM0Isd0RBQTZDLENBQUE7SUFDN0Msd0NBQTZCLENBQUE7SUFDN0Isd0NBQTZCLENBQUE7SUFDN0IsNENBQWlDLENBQUE7SUFDakMsd0RBQTZDLENBQUE7SUFDN0Msa0NBQXVCLENBQUE7SUFDdkIsb0VBQXlELENBQUE7SUFDekQsZ0RBQXFDLENBQUE7SUFDckMsOENBQW1DLENBQUE7SUFDbkMsa0RBQXVDLENBQUE7SUFDdkMsZ0RBQXFDLENBQUE7SUFDckMsd0RBQTZDLENBQUE7SUFDN0MsOENBQW1DLENBQUE7SUFDbkMsa0NBQXVCLENBQUE7SUFDdkIsOERBQW1ELENBQUE7SUFDbkQsa0VBQXVELENBQUE7SUFDdkQsMERBQStDLENBQUE7SUFDL0MsOENBQW1DLENBQUE7SUFDbkMsa0RBQXVDLENBQUE7SUFDdkMsb0RBQXlDLENBQUE7SUFDekMsb0RBQXlDLENBQUE7SUFDekMsMERBQStDLENBQUE7SUFDL0Msd0RBQTZDLENBQUE7SUFDN0MsOENBQW1DLENBQUE7SUFDbkMsNERBQWlELENBQUE7SUFDakQsb0RBQXlDLENBQUE7QUFDM0MsQ0FBQyxFQWpDVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFpQ2xCO0FBRUQsSUFBWSxNQUdYO0FBSEQsV0FBWSxNQUFNO0lBQ2hCLDZCQUFtQixDQUFBO0lBQ25CLHlCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLE1BQU0sR0FBTixjQUFNLEtBQU4sY0FBTSxRQUdqQjtBQUVELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixzQ0FBdUIsQ0FBQTtJQUN2QixnRUFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEIifQ==
@@ -1,15 +1,20 @@
1
1
  import { EmitterEventPayload } from '@expressms/smartapp-bridge/build/main/types/eventEmitter';
2
2
  import { STATUS } from './bridge';
3
3
  export declare enum SubscriptionEventType {
4
- CONNECTION_STATUS = "connection_status"
4
+ CONNECTION_STATUS = "connection_status",
5
+ UNREAD_COUNTER_CHANGE = "unread_counter_change"
5
6
  }
6
- export type GetConnectionStatusResponse = ({
7
+ export type SubscriptionPayload = {
8
+ type: 'huid' | 'chat' | 'smartapp';
9
+ id: string;
10
+ };
11
+ export type GetConnectionStatusResponse = {
7
12
  ref: string;
8
13
  payload: {
9
- connectionStatus: "connected" | "disconnected";
14
+ connectionStatus: 'connected' | 'disconnected';
10
15
  };
11
- });
12
- export type CreateDeeplinkResponse = ({
16
+ };
17
+ export type CreateDeeplinkResponse = {
13
18
  ref: string;
14
19
  payload: {
15
20
  status: 'error' | 'success';
@@ -18,15 +23,15 @@ export type CreateDeeplinkResponse = ({
18
23
  deeplink: string;
19
24
  };
20
25
  };
21
- });
22
- type LocalPhonebookEntry = ({
26
+ };
27
+ type LocalPhonebookEntry = {
23
28
  avatar: string | null;
24
29
  name: string | null;
25
30
  contacts: {
26
31
  contactType: string;
27
32
  contact: string;
28
33
  }[];
29
- });
34
+ };
30
35
  export interface SearchLocalPhonebookResponse extends EmitterEventPayload {
31
36
  payload: {
32
37
  status: STATUS;
@@ -34,4 +39,10 @@ export interface SearchLocalPhonebookResponse extends EmitterEventPayload {
34
39
  localPhonebookEntries: Array<LocalPhonebookEntry>;
35
40
  };
36
41
  }
42
+ export type GetUnreadCounterResponse = {
43
+ ref: string;
44
+ payload: {
45
+ unreadCounter: number;
46
+ };
47
+ };
37
48
  export {};
@@ -4,5 +4,6 @@ exports.SubscriptionEventType = void 0;
4
4
  var SubscriptionEventType;
5
5
  (function (SubscriptionEventType) {
6
6
  SubscriptionEventType["CONNECTION_STATUS"] = "connection_status";
7
+ SubscriptionEventType["UNREAD_COUNTER_CHANGE"] = "unread_counter_change";
7
8
  })(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxJQUFZLHFCQUVYO0FBRkQsV0FBWSxxQkFBcUI7SUFDL0IsZ0VBQXVDLENBQUE7QUFDekMsQ0FBQyxFQUZXLHFCQUFxQixHQUFyQiw2QkFBcUIsS0FBckIsNkJBQXFCLFFBRWhDIn0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxJQUFZLHFCQUdYO0FBSEQsV0FBWSxxQkFBcUI7SUFDL0IsZ0VBQXVDLENBQUE7SUFDdkMsd0VBQStDLENBQUE7QUFDakQsQ0FBQyxFQUhXLHFCQUFxQixHQUFyQiw2QkFBcUIsS0FBckIsNkJBQXFCLFFBR2hDIn0=
@@ -1,8 +1,8 @@
1
1
  import Bridge from '@expressms/smartapp-bridge';
2
- import { clientStorageClear, clientStorageGet, clientStorageRemove, clientStorageSet, createDeeplink, getChats, getConnectionStatus, handleDeeplink, openChatMessage, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, searchLocalPhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents } from './lib/client';
2
+ import { clientStorageClear, clientStorageGet, clientStorageRemove, clientStorageSet, createDeeplink, getChats, getConnectionStatus, getUnreadCounter, handleDeeplink, openChatMessage, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, searchLocalPhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents } from './lib/client';
3
3
  import { addContact, createPersonalChat, getContact, openContactCard, openPersonalChat, requestSelfProfile, sendMessage } from './lib/contacts';
4
4
  import { useQuery } from './lib/helpers/helpers';
5
5
  import { ready } from './lib/logging';
6
6
  import { onNotification } from './lib/notification';
7
7
  import { closeSmartApp, exitSmartAppToCatalog, onBackPressed, onMoveToRoot, openSmartApp, routingChanged } from './lib/routing';
8
- export { Bridge, ready, routingChanged, onBackPressed, addContact, getContact, createPersonalChat, onNotification, sendMessage, openSmartApp, openFile, exitSmartAppToCatalog, useQuery, openClientSettings, getChats, searchCorporatePhonebook, sendBotCommand, openGroupChat, onMoveToRoot, requestLocation, openContactCard, requestSelfProfile, closeSmartApp, getConnectionStatus, subscribeClientEvents, unsubscribeClientEvents, createDeeplink, openChatMessage, clientStorageGet, clientStorageSet, clientStorageRemove, clientStorageClear, openPersonalChat, handleDeeplink, searchLocalPhonebook, };
8
+ export { Bridge, ready, routingChanged, onBackPressed, addContact, getContact, createPersonalChat, onNotification, sendMessage, openSmartApp, openFile, exitSmartAppToCatalog, useQuery, openClientSettings, getChats, searchCorporatePhonebook, sendBotCommand, openGroupChat, onMoveToRoot, requestLocation, openContactCard, requestSelfProfile, closeSmartApp, getConnectionStatus, subscribeClientEvents, unsubscribeClientEvents, createDeeplink, openChatMessage, clientStorageGet, clientStorageSet, clientStorageRemove, clientStorageClear, openPersonalChat, handleDeeplink, searchLocalPhonebook, getUnreadCounter, };
@@ -1,9 +1,9 @@
1
1
  import Bridge from '@expressms/smartapp-bridge';
2
- import { clientStorageClear, clientStorageGet, clientStorageRemove, clientStorageSet, createDeeplink, getChats, getConnectionStatus, handleDeeplink, openChatMessage, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, searchLocalPhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents, } from './lib/client';
2
+ import { clientStorageClear, clientStorageGet, clientStorageRemove, clientStorageSet, createDeeplink, getChats, getConnectionStatus, getUnreadCounter, handleDeeplink, openChatMessage, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, searchLocalPhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents, } from './lib/client';
3
3
  import { addContact, createPersonalChat, getContact, openContactCard, openPersonalChat, requestSelfProfile, sendMessage, } from './lib/contacts';
4
4
  import { useQuery } from './lib/helpers/helpers';
5
5
  import { ready } from './lib/logging';
6
6
  import { onNotification } from './lib/notification';
7
7
  import { closeSmartApp, exitSmartAppToCatalog, onBackPressed, onMoveToRoot, openSmartApp, routingChanged, } from './lib/routing';
8
- export { Bridge, ready, routingChanged, onBackPressed, addContact, getContact, createPersonalChat, onNotification, sendMessage, openSmartApp, openFile, exitSmartAppToCatalog, useQuery, openClientSettings, getChats, searchCorporatePhonebook, sendBotCommand, openGroupChat, onMoveToRoot, requestLocation, openContactCard, requestSelfProfile, closeSmartApp, getConnectionStatus, subscribeClientEvents, unsubscribeClientEvents, createDeeplink, openChatMessage, clientStorageGet, clientStorageSet, clientStorageRemove, clientStorageClear, openPersonalChat, handleDeeplink, searchLocalPhonebook, };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUE7QUFDL0MsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsUUFBUSxFQUNSLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixRQUFRLEVBQ1IsYUFBYSxFQUNiLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIsdUJBQXVCLEdBQ3hCLE1BQU0sY0FBYyxDQUFBO0FBQ3JCLE9BQU8sRUFDTCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixXQUFXLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUE7QUFDOUMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQTtBQUNuQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxFQUNMLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxHQUNmLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFDTCxNQUFNLEVBQ04sS0FBSyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLFdBQVcsRUFDWCxZQUFZLEVBQ1osUUFBUSxFQUNSLHFCQUFxQixFQUNyQixRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLGFBQWEsRUFDYixZQUFZLEVBQ1osZUFBZSxFQUNmLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsb0JBQW9CLEdBQ3JCLENBQUEifQ==
8
+ export { Bridge, ready, routingChanged, onBackPressed, addContact, getContact, createPersonalChat, onNotification, sendMessage, openSmartApp, openFile, exitSmartAppToCatalog, useQuery, openClientSettings, getChats, searchCorporatePhonebook, sendBotCommand, openGroupChat, onMoveToRoot, requestLocation, openContactCard, requestSelfProfile, closeSmartApp, getConnectionStatus, subscribeClientEvents, unsubscribeClientEvents, createDeeplink, openChatMessage, clientStorageGet, clientStorageSet, clientStorageRemove, clientStorageClear, openPersonalChat, handleDeeplink, searchLocalPhonebook, getUnreadCounter, };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUE7QUFDL0MsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsUUFBUSxFQUNSLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLGFBQWEsRUFDYixlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUN4QixNQUFNLGNBQWMsQ0FBQTtBQUNyQixPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsV0FBVyxHQUNaLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVCQUF1QixDQUFBO0FBQzlDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUE7QUFDbkMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFBO0FBQ2pELE9BQU8sRUFDTCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQ0wsTUFBTSxFQUNOLEtBQUssRUFDTCxjQUFjLEVBQ2QsYUFBYSxFQUNiLFVBQVUsRUFDVixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFFBQVEsRUFDUixxQkFBcUIsRUFDckIsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixnQkFBZ0IsR0FDakIsQ0FBQSJ9
@@ -1,20 +1,30 @@
1
- import { SubscriptionEventType } from '../../types';
1
+ import { SubscriptionEventType, SubscriptionPayload } from '../../types';
2
2
  /**
3
3
  * Subscribe to special client events
4
4
  * @param eventType Event from SubscriptionEventType enum to be subscribed
5
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
5
6
  * @param callback Optional function to be handled when event is coming
6
7
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
7
8
  */
8
- declare const subscribeClientEvents: (eventType: SubscriptionEventType, callback?: Function) => Promise<{
9
+ declare const subscribeClientEvents: ({ eventType, payload, callback, }: {
10
+ eventType: SubscriptionEventType;
11
+ payload?: SubscriptionPayload | undefined;
12
+ callback?: Function | undefined;
13
+ }) => Promise<{
9
14
  status: string;
10
15
  }>;
11
16
  /**
12
17
  * Unsubscribe from previously subscribed client events
13
18
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
19
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
14
20
  * @param callback Function to be unsibscribed
15
21
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
16
22
  */
17
- declare const unsubscribeClientEvents: (eventType: SubscriptionEventType, callback?: Function) => Promise<{
23
+ declare const unsubscribeClientEvents: ({ eventType, payload, callback, }: {
24
+ eventType: SubscriptionEventType;
25
+ payload?: SubscriptionPayload | undefined;
26
+ callback?: Function | undefined;
27
+ }) => Promise<{
18
28
  status: string;
19
29
  }>;
20
30
  export { subscribeClientEvents, unsubscribeClientEvents };
@@ -2,28 +2,39 @@ import bridge from '@expressms/smartapp-bridge';
2
2
  import { ERROR_CODES, METHODS, STATUS } from '../../types';
3
3
  const subscriptions = [];
4
4
  let bridgeEventListenerInstalled = false;
5
- const isAnySubscriptionsOfType = (eventType) => {
6
- return subscriptions.some(sub => sub.eventType == eventType);
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ const getSubscriptionId = (eventType, payload) => {
7
+ const sourceId = payload?.id ? '-' + payload?.id : '';
8
+ const sourceType = payload?.type ? '-' + payload?.type : '';
9
+ return `${eventType}${sourceType}${sourceId}`;
10
+ };
11
+ const isAnySubscriptions = (eventType, payload) => {
12
+ const id = getSubscriptionId(eventType, payload);
13
+ return subscriptions.some(sub => sub.id == id);
7
14
  };
8
15
  const installBridgeEventListener = () => {
9
16
  if (bridgeEventListenerInstalled || !bridge)
10
17
  return;
11
18
  bridgeEventListenerInstalled = true;
12
19
  bridge.onReceive(event => {
13
- subscriptions.filter(sub => sub.eventType === event.type).map(sub => sub.callback?.(event));
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
+ const id = getSubscriptionId(event.type, event.payload.source);
22
+ subscriptions.filter(sub => sub.id === id).map(sub => sub.callback?.(event));
14
23
  });
15
24
  };
16
25
  /**
17
26
  * Subscribe to special client events
18
27
  * @param eventType Event from SubscriptionEventType enum to be subscribed
28
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
19
29
  * @param callback Optional function to be handled when event is coming
20
30
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
21
31
  */
22
- const subscribeClientEvents = (eventType, callback) => {
32
+ const subscribeClientEvents = ({ eventType, payload, callback, }) => {
23
33
  const successResponse = { status: STATUS.SUCCESS };
24
34
  // No need to subscribe event twice on client
25
- if (isAnySubscriptionsOfType(eventType)) {
26
- subscriptions.push({ eventType, callback });
35
+ if (isAnySubscriptions(eventType, payload)) {
36
+ const id = getSubscriptionId(eventType, payload);
37
+ subscriptions.push({ id, callback });
27
38
  return Promise.resolve(successResponse);
28
39
  }
29
40
  if (!bridge)
@@ -33,39 +44,44 @@ const subscribeClientEvents = (eventType, callback) => {
33
44
  method: METHODS.SUBSCRIBE_CLIENT_EVENTS,
34
45
  params: {
35
46
  event: eventType,
47
+ ...payload,
36
48
  },
37
49
  })
38
50
  .then(() => {
51
+ const id = getSubscriptionId(eventType, payload);
39
52
  installBridgeEventListener();
40
- subscriptions.push({ eventType, callback });
53
+ subscriptions.push({ id, callback });
41
54
  return successResponse;
42
55
  });
43
56
  };
44
57
  /**
45
58
  * Unsubscribe from previously subscribed client events
46
59
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
60
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
47
61
  * @param callback Function to be unsibscribed
48
62
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
49
63
  */
50
- const unsubscribeClientEvents = (eventType, callback) => {
64
+ const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
51
65
  const successResponse = { status: STATUS.SUCCESS };
52
- const index = subscriptions.findIndex(sub => sub.eventType == eventType && sub.callback == callback);
66
+ const id = getSubscriptionId(eventType, payload);
67
+ const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
53
68
  if (!bridge)
54
69
  return Promise.reject(ERROR_CODES.NO_BRIDGE);
55
70
  if (index == -1)
56
71
  return Promise.reject(ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
57
72
  subscriptions.splice(index, 1);
58
73
  // Send unsubscribe to client only at last subscription
59
- if (isAnySubscriptionsOfType(eventType))
74
+ if (isAnySubscriptions(eventType, payload))
60
75
  return Promise.resolve(successResponse);
61
76
  return bridge
62
77
  .sendClientEvent({
63
78
  method: METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
64
79
  params: {
65
80
  event: eventType,
81
+ ...payload,
66
82
  },
67
83
  })
68
84
  .then(() => successResponse);
69
85
  };
70
86
  export { subscribeClientEvents, unsubscribeClientEvents };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLDRCQUE0QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBeUIsTUFBTSxhQUFhLENBQUE7QUFFakYsTUFBTSxhQUFhLEdBQXFFLEVBQUUsQ0FBQTtBQUMxRixJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBZ0MsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUE7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLEVBQUU7SUFDdEMsSUFBSSw0QkFBNEIsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFNO0lBRW5ELDRCQUE0QixHQUFHLElBQUksQ0FBQTtJQUVuQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUM3RixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsUUFBbUIsRUFBK0IsRUFBRTtJQUNuSCxNQUFNLGVBQWUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFbEQsNkNBQTZDO0lBQzdDLElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdkMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzNDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtLQUN4QztJQUVELElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUV6RCxPQUFPLE1BQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLHVCQUF1QjtRQUN2QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1QsMEJBQTBCLEVBQUUsQ0FBQTtRQUM1QixhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDM0MsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLFFBQW1CLEVBQStCLEVBQUU7SUFDckgsTUFBTSxlQUFlLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWxELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFBO0lBRXBHLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN6RCxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFBRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFFMUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFOUIsdURBQXVEO0lBQ3ZELElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRWhGLE9BQU8sTUFBTTtTQUNWLGVBQWUsQ0FBQztRQUNmLE1BQU0sRUFBRSxPQUFPLENBQUMseUJBQXlCO1FBQ3pDLE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxTQUFTO1NBQ2pCO0tBQ0YsQ0FBQztTQUNELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUFFRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQSJ9
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLDRCQUE0QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBOEMsTUFBTSxhQUFhLENBQUE7QUFFdEcsTUFBTSxhQUFhLEdBQStDLEVBQUUsQ0FBQTtBQUNwRSxJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4Qyw4REFBOEQ7QUFDOUQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsT0FBYSxFQUFFLEVBQUU7SUFDNUUsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNyRCxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBRTNELE9BQU8sR0FBRyxTQUFTLEdBQUcsVUFBVSxHQUFHLFFBQVEsRUFBRSxDQUFBO0FBQy9DLENBQUMsQ0FBQTtBQUVELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLE9BQTZCLEVBQUUsRUFBRTtJQUM3RixNQUFNLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFFaEQsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUNoRCxDQUFDLENBQUE7QUFFRCxNQUFNLDBCQUEwQixHQUFHLEdBQUcsRUFBRTtJQUN0QyxJQUFJLDRCQUE0QixJQUFJLENBQUMsTUFBTTtRQUFF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
@@ -1,5 +1,5 @@
1
1
  import { EmitterEventPayload } from '@expressms/smartapp-bridge/build/main/types/eventEmitter';
2
- import { CreateDeeplinkResponse, File, GetConnectionStatusResponse, StatusResponse, SearchLocalPhonebookResponse } from '../../types';
2
+ import { CreateDeeplinkResponse, File, GetConnectionStatusResponse, GetUnreadCounterResponse, SearchLocalPhonebookResponse, StatusResponse, SubscriptionPayload } from '../../types';
3
3
  export * from './events';
4
4
  export * from './storage';
5
5
  declare const openClientSettings: () => Promise<EmitterEventPayload> | undefined;
@@ -62,4 +62,9 @@ declare const handleDeeplink: ({ link }: {
62
62
  declare const searchLocalPhonebook: ({ filter }: {
63
63
  filter: string | null;
64
64
  }) => Promise<SearchLocalPhonebookResponse>;
65
- export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, openChatMessage, handleDeeplink, searchLocalPhonebook, };
65
+ /**
66
+ * Get unread counter for chat/user/bot/smartapp.
67
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
68
+ */
69
+ declare const getUnreadCounter: ({ type, id }: SubscriptionPayload) => Promise<GetUnreadCounterResponse>;
70
+ export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, openChatMessage, handleDeeplink, searchLocalPhonebook, getUnreadCounter, };
@@ -124,5 +124,18 @@ const searchLocalPhonebook = ({ filter = null }) => {
124
124
  })
125
125
  .then(event => event);
126
126
  };
127
- export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, openChatMessage, handleDeeplink, searchLocalPhonebook, };
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSw0QkFBNEIsQ0FBQTtBQUUvQyxPQUFPLEVBRUwsV0FBVyxFQUdYLE9BQU8sR0FHUixNQUFNLGFBQWEsQ0FBQTtBQUNwQixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFdBQVcsQ0FBQTtBQUV6QixNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtJQUM5QixPQUFPLE1BQU0sRUFBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7UUFDcEMsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksRUFBNkIsRUFBRSxFQUFFO0lBQ2hFLE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVM7UUFDekIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFO0tBQ25CLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQTZCLEVBQUUsRUFBRTtJQUNoRixPQUFPLE1BQU0sRUFBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQywwQkFBMEI7UUFDMUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFO0tBQ25CLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQTJCLEVBQUUsRUFBRTtJQUNqRSxPQUFPLE1BQU0sRUFBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1FBQy9CLE1BQU0sRUFBRSxFQUFF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
127
+ /**
128
+ * Get unread counter for chat/user/bot/smartapp.
129
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
130
+ */
131
+ const getUnreadCounter = async ({ type, id }) => {
132
+ if (!bridge)
133
+ return Promise.reject(ERROR_CODES.NO_BRIDGE);
134
+ const response = await bridge.sendClientEvent({
135
+ method: METHODS.GET_UNREAD_COUNTER,
136
+ params: { type, id },
137
+ });
138
+ return response;
139
+ };
140
+ export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, openChatMessage, handleDeeplink, searchLocalPhonebook, getUnreadCounter, };
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSw0QkFBNEIsQ0FBQTtBQUUvQyxPQUFPLEVBRUwsV0FBVyxFQUlYLE9BQU8sR0FJUixNQUFNLGFBQWEsQ0FBQTtBQUNwQixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFdBQVcsQ0FBQTtBQUV6QixNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtJQUM5QixPQUFPLE1BQU0sRUFBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0I7UUFDcEMsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksRUFBNkIsRUFBRSxFQUFFO0lBQ2hFLE9BQU8sTUFBTSxFQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVM7UUFDekIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFO0tBQ25CLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQTZCLEVBQUUsRUFBRTtJQUNoRixPQUFPLE1BQU0sRUFBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQywwQkFBMEI7UUFDMUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFO0tBQ25CLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQTJCLEVBQUUsRUFBRTtJQUNqRSxPQUFPLE1BQU0sRUFBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxlQUFlO1FBQy9CLE1BQU0sRUFBRSxFQUFF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
@@ -30,7 +30,8 @@ export declare enum METHODS {
30
30
  CLIENT_STORAGE_REMOVE = "client_storage_remove",
31
31
  CLIENT_STORAGE_CLEAR = "client_storage_clear",
32
32
  HANDLE_DEEPLINK = "handle_deeplink",
33
- SEARCH_LOCAL_PHONEBOOK = "search_local_phonebook"
33
+ SEARCH_LOCAL_PHONEBOOK = "search_local_phonebook",
34
+ GET_UNREAD_COUNTER = "get_unread_counter"
34
35
  }
35
36
  export declare enum STATUS {
36
37
  SUCCESS = "success",
@@ -31,6 +31,7 @@ export var METHODS;
31
31
  METHODS["CLIENT_STORAGE_CLEAR"] = "client_storage_clear";
32
32
  METHODS["HANDLE_DEEPLINK"] = "handle_deeplink";
33
33
  METHODS["SEARCH_LOCAL_PHONEBOOK"] = "search_local_phonebook";
34
+ METHODS["GET_UNREAD_COUNTER"] = "get_unread_counter";
34
35
  })(METHODS || (METHODS = {}));
35
36
  export var STATUS;
36
37
  (function (STATUS) {
@@ -42,4 +43,4 @@ export var ERROR_CODES;
42
43
  ERROR_CODES["NO_BRIDGE"] = "no_bridge";
43
44
  ERROR_CODES["SUBSCRIPTION_NOT_FOUND"] = "subscription_not_found";
44
45
  })(ERROR_CODES || (ERROR_CODES = {}));
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxPQWdDWDtBQWhDRCxXQUFZLE9BQU87SUFDakIsMEJBQWUsQ0FBQTtJQUNmLDhDQUFtQyxDQUFBO0lBQ25DLHdDQUE2QixDQUFBO0lBQzdCLHdDQUE2QixDQUFBO0lBQzdCLHNDQUEyQixDQUFBO0lBQzNCLHNDQUEyQixDQUFBO0lBQzNCLHdEQUE2QyxDQUFBO0lBQzdDLHdDQUE2QixDQUFBO0lBQzdCLHdDQUE2QixDQUFBO0lBQzdCLDRDQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QyxDQUFBO0lBQzdDLGtDQUF1QixDQUFBO0lBQ3ZCLG9FQUF5RCxDQUFBO0lBQ3pELGdEQUFxQyxDQUFBO0lBQ3JDLDhDQUFtQyxDQUFBO0lBQ25DLGtEQUF1QyxDQUFBO0lBQ3ZDLGdEQUFxQyxDQUFBO0lBQ3JDLHdEQUE2QyxDQUFBO0lBQzdDLDhDQUFtQyxDQUFBO0lBQ25DLGtDQUF1QixDQUFBO0lBQ3ZCLDhEQUFtRCxDQUFBO0lBQ25ELGtFQUF1RCxDQUFBO0lBQ3ZELDBEQUErQyxDQUFBO0lBQy9DLDhDQUFtQyxDQUFBO0lBQ25DLGtEQUF1QyxDQUFBO0lBQ3ZDLG9EQUF5QyxDQUFBO0lBQ3pDLG9EQUF5QyxDQUFBO0lBQ3pDLDBEQUErQyxDQUFBO0lBQy9DLHdEQUE2QyxDQUFBO0lBQzdDLDhDQUFtQyxDQUFBO0lBQ25DLDREQUFpRCxDQUFBO0FBQ25ELENBQUMsRUFoQ1csT0FBTyxLQUFQLE9BQU8sUUFnQ2xCO0FBRUQsTUFBTSxDQUFOLElBQVksTUFHWDtBQUhELFdBQVksTUFBTTtJQUNoQiw2QkFBbUIsQ0FBQTtJQUNuQix5QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxNQUFNLEtBQU4sTUFBTSxRQUdqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsc0NBQXVCLENBQUE7SUFDdkIsZ0VBQWlELENBQUE7QUFDbkQsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIn0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxPQWlDWDtBQWpDRCxXQUFZLE9BQU87SUFDakIsMEJBQWUsQ0FBQTtJQUNmLDhDQUFtQyxDQUFBO0lBQ25DLHdDQUE2QixDQUFBO0lBQzdCLHdDQUE2QixDQUFBO0lBQzdCLHNDQUEyQixDQUFBO0lBQzNCLHNDQUEyQixDQUFBO0lBQzNCLHdEQUE2QyxDQUFBO0lBQzdDLHdDQUE2QixDQUFBO0lBQzdCLHdDQUE2QixDQUFBO0lBQzdCLDRDQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QyxDQUFBO0lBQzdDLGtDQUF1QixDQUFBO0lBQ3ZCLG9FQUF5RCxDQUFBO0lBQ3pELGdEQUFxQyxDQUFBO0lBQ3JDLDhDQUFtQyxDQUFBO0lBQ25DLGtEQUF1QyxDQUFBO0lBQ3ZDLGdEQUFxQyxDQUFBO0lBQ3JDLHdEQUE2QyxDQUFBO0lBQzdDLDhDQUFtQyxDQUFBO0lBQ25DLGtDQUF1QixDQUFBO0lBQ3ZCLDhEQUFtRCxDQUFBO0lBQ25ELGtFQUF1RCxDQUFBO0lBQ3ZELDBEQUErQyxDQUFBO0lBQy9DLDhDQUFtQyxDQUFBO0lBQ25DLGtEQUF1QyxDQUFBO0lBQ3ZDLG9EQUF5QyxDQUFBO0lBQ3pDLG9EQUF5QyxDQUFBO0lBQ3pDLDBEQUErQyxDQUFBO0lBQy9DLHdEQUE2QyxDQUFBO0lBQzdDLDhDQUFtQyxDQUFBO0lBQ25DLDREQUFpRCxDQUFBO0lBQ2pELG9EQUF5QyxDQUFBO0FBQzNDLENBQUMsRUFqQ1csT0FBTyxLQUFQLE9BQU8sUUFpQ2xCO0FBRUQsTUFBTSxDQUFOLElBQVksTUFHWDtBQUhELFdBQVksTUFBTTtJQUNoQiw2QkFBbUIsQ0FBQTtJQUNuQix5QkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxNQUFNLEtBQU4sTUFBTSxRQUdqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIsc0NBQXVCLENBQUE7SUFDdkIsZ0VBQWlELENBQUE7QUFDbkQsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIn0=
@@ -1,15 +1,20 @@
1
1
  import { EmitterEventPayload } from '@expressms/smartapp-bridge/build/main/types/eventEmitter';
2
2
  import { STATUS } from './bridge';
3
3
  export declare enum SubscriptionEventType {
4
- CONNECTION_STATUS = "connection_status"
4
+ CONNECTION_STATUS = "connection_status",
5
+ UNREAD_COUNTER_CHANGE = "unread_counter_change"
5
6
  }
6
- export type GetConnectionStatusResponse = ({
7
+ export type SubscriptionPayload = {
8
+ type: 'huid' | 'chat' | 'smartapp';
9
+ id: string;
10
+ };
11
+ export type GetConnectionStatusResponse = {
7
12
  ref: string;
8
13
  payload: {
9
- connectionStatus: "connected" | "disconnected";
14
+ connectionStatus: 'connected' | 'disconnected';
10
15
  };
11
- });
12
- export type CreateDeeplinkResponse = ({
16
+ };
17
+ export type CreateDeeplinkResponse = {
13
18
  ref: string;
14
19
  payload: {
15
20
  status: 'error' | 'success';
@@ -18,15 +23,15 @@ export type CreateDeeplinkResponse = ({
18
23
  deeplink: string;
19
24
  };
20
25
  };
21
- });
22
- type LocalPhonebookEntry = ({
26
+ };
27
+ type LocalPhonebookEntry = {
23
28
  avatar: string | null;
24
29
  name: string | null;
25
30
  contacts: {
26
31
  contactType: string;
27
32
  contact: string;
28
33
  }[];
29
- });
34
+ };
30
35
  export interface SearchLocalPhonebookResponse extends EmitterEventPayload {
31
36
  payload: {
32
37
  status: STATUS;
@@ -34,4 +39,10 @@ export interface SearchLocalPhonebookResponse extends EmitterEventPayload {
34
39
  localPhonebookEntries: Array<LocalPhonebookEntry>;
35
40
  };
36
41
  }
42
+ export type GetUnreadCounterResponse = {
43
+ ref: string;
44
+ payload: {
45
+ unreadCounter: number;
46
+ };
47
+ };
37
48
  export {};
@@ -1,5 +1,6 @@
1
1
  export var SubscriptionEventType;
2
2
  (function (SubscriptionEventType) {
3
3
  SubscriptionEventType["CONNECTION_STATUS"] = "connection_status";
4
+ SubscriptionEventType["UNREAD_COUNTER_CHANGE"] = "unread_counter_change";
4
5
  })(SubscriptionEventType || (SubscriptionEventType = {}));
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxxQkFFWDtBQUZELFdBQVkscUJBQXFCO0lBQy9CLGdFQUF1QyxDQUFBO0FBQ3pDLENBQUMsRUFGVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBRWhDIn0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxxQkFHWDtBQUhELFdBQVkscUJBQXFCO0lBQy9CLGdFQUF1QyxDQUFBO0lBQ3ZDLHdFQUErQyxDQUFBO0FBQ2pELENBQUMsRUFIVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBR2hDIn0=
@@ -1952,6 +1952,7 @@
1952
1952
  METHODS["CLIENT_STORAGE_CLEAR"] = "client_storage_clear";
1953
1953
  METHODS["HANDLE_DEEPLINK"] = "handle_deeplink";
1954
1954
  METHODS["SEARCH_LOCAL_PHONEBOOK"] = "search_local_phonebook";
1955
+ METHODS["GET_UNREAD_COUNTER"] = "get_unread_counter";
1955
1956
  })(METHODS || (METHODS = {}));
1956
1957
  var STATUS;
1957
1958
  (function (STATUS) {
@@ -1973,6 +1974,7 @@
1973
1974
  var SubscriptionEventType;
1974
1975
  (function (SubscriptionEventType) {
1975
1976
  SubscriptionEventType["CONNECTION_STATUS"] = "connection_status";
1977
+ SubscriptionEventType["UNREAD_COUNTER_CHANGE"] = "unread_counter_change";
1976
1978
  })(SubscriptionEventType || (SubscriptionEventType = {}));
1977
1979
 
1978
1980
  var CLIENT_STORAGE_ERROR_CODES;
@@ -1984,28 +1986,39 @@
1984
1986
 
1985
1987
  const subscriptions = [];
1986
1988
  let bridgeEventListenerInstalled = false;
1987
- const isAnySubscriptionsOfType = (eventType) => {
1988
- return subscriptions.some(sub => sub.eventType == eventType);
1989
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1990
+ const getSubscriptionId = (eventType, payload) => {
1991
+ const sourceId = payload?.id ? '-' + payload?.id : '';
1992
+ const sourceType = payload?.type ? '-' + payload?.type : '';
1993
+ return `${eventType}${sourceType}${sourceId}`;
1994
+ };
1995
+ const isAnySubscriptions = (eventType, payload) => {
1996
+ const id = getSubscriptionId(eventType, payload);
1997
+ return subscriptions.some(sub => sub.id == id);
1989
1998
  };
1990
1999
  const installBridgeEventListener = () => {
1991
2000
  if (bridgeEventListenerInstalled || !bridge)
1992
2001
  return;
1993
2002
  bridgeEventListenerInstalled = true;
1994
2003
  bridge.onReceive(event => {
1995
- subscriptions.filter(sub => sub.eventType === event.type).map(sub => sub.callback?.(event));
2004
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2005
+ const id = getSubscriptionId(event.type, event.payload.source);
2006
+ subscriptions.filter(sub => sub.id === id).map(sub => sub.callback?.(event));
1996
2007
  });
1997
2008
  };
1998
2009
  /**
1999
2010
  * Subscribe to special client events
2000
2011
  * @param eventType Event from SubscriptionEventType enum to be subscribed
2012
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
2001
2013
  * @param callback Optional function to be handled when event is coming
2002
2014
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
2003
2015
  */
2004
- const subscribeClientEvents = (eventType, callback) => {
2016
+ const subscribeClientEvents = ({ eventType, payload, callback, }) => {
2005
2017
  const successResponse = { status: STATUS.SUCCESS };
2006
2018
  // No need to subscribe event twice on client
2007
- if (isAnySubscriptionsOfType(eventType)) {
2008
- subscriptions.push({ eventType, callback });
2019
+ if (isAnySubscriptions(eventType, payload)) {
2020
+ const id = getSubscriptionId(eventType, payload);
2021
+ subscriptions.push({ id, callback });
2009
2022
  return Promise.resolve(successResponse);
2010
2023
  }
2011
2024
  if (!bridge)
@@ -2015,36 +2028,41 @@
2015
2028
  method: METHODS.SUBSCRIBE_CLIENT_EVENTS,
2016
2029
  params: {
2017
2030
  event: eventType,
2031
+ ...payload,
2018
2032
  },
2019
2033
  })
2020
2034
  .then(() => {
2035
+ const id = getSubscriptionId(eventType, payload);
2021
2036
  installBridgeEventListener();
2022
- subscriptions.push({ eventType, callback });
2037
+ subscriptions.push({ id, callback });
2023
2038
  return successResponse;
2024
2039
  });
2025
2040
  };
2026
2041
  /**
2027
2042
  * Unsubscribe from previously subscribed client events
2028
2043
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
2044
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
2029
2045
  * @param callback Function to be unsibscribed
2030
2046
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
2031
2047
  */
2032
- const unsubscribeClientEvents = (eventType, callback) => {
2048
+ const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
2033
2049
  const successResponse = { status: STATUS.SUCCESS };
2034
- const index = subscriptions.findIndex(sub => sub.eventType == eventType && sub.callback == callback);
2050
+ const id = getSubscriptionId(eventType, payload);
2051
+ const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
2035
2052
  if (!bridge)
2036
2053
  return Promise.reject(ERROR_CODES.NO_BRIDGE);
2037
2054
  if (index == -1)
2038
2055
  return Promise.reject(ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
2039
2056
  subscriptions.splice(index, 1);
2040
2057
  // Send unsubscribe to client only at last subscription
2041
- if (isAnySubscriptionsOfType(eventType))
2058
+ if (isAnySubscriptions(eventType, payload))
2042
2059
  return Promise.resolve(successResponse);
2043
2060
  return bridge
2044
2061
  .sendClientEvent({
2045
2062
  method: METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
2046
2063
  params: {
2047
2064
  event: eventType,
2065
+ ...payload,
2048
2066
  },
2049
2067
  })
2050
2068
  .then(() => successResponse);
@@ -2248,6 +2266,19 @@
2248
2266
  })
2249
2267
  .then(event => event);
2250
2268
  };
2269
+ /**
2270
+ * Get unread counter for chat/user/bot/smartapp.
2271
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
2272
+ */
2273
+ const getUnreadCounter = async ({ type, id }) => {
2274
+ if (!bridge)
2275
+ return Promise.reject(ERROR_CODES.NO_BRIDGE);
2276
+ const response = await bridge.sendClientEvent({
2277
+ method: METHODS.GET_UNREAD_COUNTER,
2278
+ params: { type, id },
2279
+ });
2280
+ return response;
2281
+ };
2251
2282
 
2252
2283
  const addContact = ({ phone, name }) => {
2253
2284
  return bridge?.sendClientEvent({
@@ -2389,6 +2420,7 @@
2389
2420
  exports.getChats = getChats;
2390
2421
  exports.getConnectionStatus = getConnectionStatus;
2391
2422
  exports.getContact = getContact;
2423
+ exports.getUnreadCounter = getUnreadCounter;
2392
2424
  exports.handleDeeplink = handleDeeplink;
2393
2425
  exports.onBackPressed = onBackPressed;
2394
2426
  exports.onMoveToRoot = onMoveToRoot;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expressms/smartapp-sdk",
3
- "version": "1.6.0",
3
+ "version": "1.7.0-alpha.0",
4
4
  "description": "Smartapp SDK",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",