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

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,26 @@
1
- import { SubscriptionEventType } from '../../types';
1
+ import { StatusResponse, 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
- status: string;
10
- }>;
9
+ declare const subscribeClientEvents: ({ eventType, payload, callback, }: {
10
+ eventType: SubscriptionEventType;
11
+ payload?: SubscriptionPayload | undefined;
12
+ callback?: Function | undefined;
13
+ }) => Promise<StatusResponse>;
11
14
  /**
12
15
  * Unsubscribe from previously subscribed client events
13
16
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
17
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
14
18
  * @param callback Function to be unsibscribed
15
19
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
16
20
  */
17
- declare const unsubscribeClientEvents: (eventType: SubscriptionEventType, callback?: Function) => Promise<{
18
- status: string;
19
- }>;
21
+ declare const unsubscribeClientEvents: ({ eventType, payload, callback, }: {
22
+ eventType: SubscriptionEventType;
23
+ payload?: SubscriptionPayload | undefined;
24
+ callback?: Function | undefined;
25
+ }) => Promise<StatusResponse>;
20
26
  export { subscribeClientEvents, unsubscribeClientEvents };
@@ -8,71 +8,90 @@ 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
+ const composeResponse = (status, errorCode) => {
12
+ return {
13
+ payload: {
14
+ status,
15
+ errorCode
16
+ },
17
+ };
18
+ };
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ const getSubscriptionId = (eventType, payload) => {
21
+ const sourceId = (payload === null || payload === void 0 ? void 0 : payload.id) ? '-' + (payload === null || payload === void 0 ? void 0 : payload.id) : '';
22
+ const sourceType = (payload === null || payload === void 0 ? void 0 : payload.type) ? '-' + (payload === null || payload === void 0 ? void 0 : payload.type) : '';
23
+ return `${eventType}${sourceType}${sourceId}`;
24
+ };
25
+ const isAnySubscriptions = (eventType, payload) => {
26
+ const id = getSubscriptionId(eventType, payload);
27
+ return subscriptions.some(sub => sub.id == id);
13
28
  };
14
29
  const installBridgeEventListener = () => {
15
30
  if (bridgeEventListenerInstalled || !smartapp_bridge_1.default)
16
31
  return;
17
32
  bridgeEventListenerInstalled = true;
18
33
  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); });
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ const id = getSubscriptionId(event.type, event.payload.source);
36
+ 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
37
  });
21
38
  };
22
39
  /**
23
40
  * Subscribe to special client events
24
41
  * @param eventType Event from SubscriptionEventType enum to be subscribed
42
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
25
43
  * @param callback Optional function to be handled when event is coming
26
44
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
27
45
  */
28
- const subscribeClientEvents = (eventType, callback) => {
29
- const successResponse = { status: types_1.STATUS.SUCCESS };
46
+ const subscribeClientEvents = ({ eventType, payload, callback, }) => {
30
47
  // No need to subscribe event twice on client
31
- if (isAnySubscriptionsOfType(eventType)) {
32
- subscriptions.push({ eventType, callback });
33
- return Promise.resolve(successResponse);
48
+ if (isAnySubscriptions(eventType, payload)) {
49
+ const id = getSubscriptionId(eventType, payload);
50
+ subscriptions.push({ id, callback });
51
+ return Promise.resolve(composeResponse(types_1.STATUS.SUCCESS));
34
52
  }
35
53
  if (!smartapp_bridge_1.default)
36
- return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
54
+ return Promise.reject(composeResponse(types_1.STATUS.ERROR, types_1.ERROR_CODES.NO_BRIDGE));
37
55
  return smartapp_bridge_1.default
38
56
  .sendClientEvent({
39
57
  method: types_1.METHODS.SUBSCRIBE_CLIENT_EVENTS,
40
- params: {
41
- event: eventType,
42
- },
58
+ params: Object.assign({ event: eventType }, payload),
43
59
  })
44
- .then(() => {
60
+ .then((event) => {
61
+ const response = event;
62
+ const id = getSubscriptionId(eventType, payload);
63
+ if (response.payload.status !== types_1.STATUS.SUCCESS)
64
+ return response;
45
65
  installBridgeEventListener();
46
- subscriptions.push({ eventType, callback });
47
- return successResponse;
66
+ subscriptions.push({ id, callback });
67
+ return response;
48
68
  });
49
69
  };
50
70
  exports.subscribeClientEvents = subscribeClientEvents;
51
71
  /**
52
72
  * Unsubscribe from previously subscribed client events
53
73
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
74
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
54
75
  * @param callback Function to be unsibscribed
55
76
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
56
77
  */
57
- const unsubscribeClientEvents = (eventType, callback) => {
58
- const successResponse = { status: types_1.STATUS.SUCCESS };
59
- const index = subscriptions.findIndex(sub => sub.eventType == eventType && sub.callback == callback);
78
+ const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
79
+ const id = getSubscriptionId(eventType, payload);
80
+ const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
60
81
  if (!smartapp_bridge_1.default)
61
82
  return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
62
83
  if (index == -1)
63
- return Promise.reject(types_1.ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
84
+ return Promise.resolve(composeResponse(types_1.STATUS.ERROR, types_1.ERROR_CODES.SUBSCRIPTION_NOT_FOUND));
64
85
  subscriptions.splice(index, 1);
65
86
  // Send unsubscribe to client only at last subscription
66
- if (isAnySubscriptionsOfType(eventType))
67
- return Promise.resolve(successResponse);
87
+ if (isAnySubscriptions(eventType, payload))
88
+ return Promise.resolve(composeResponse(types_1.STATUS.SUCCESS));
68
89
  return smartapp_bridge_1.default
69
90
  .sendClientEvent({
70
91
  method: types_1.METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
71
- params: {
72
- event: eventType,
73
- },
92
+ params: Object.assign({ event: eventType }, payload),
74
93
  })
75
- .then(() => successResponse);
94
+ .then((event) => event);
76
95
  };
77
96
  exports.unsubscribeClientEvents = unsubscribeClientEvents;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBaUY7QUFFakYsTUFBTSxhQUFhLEdBQXFFLEVBQUUsQ0FBQTtBQUMxRixJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBZ0MsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUE7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLEVBQUU7SUFDdEMsSUFBSSw0QkFBNEIsSUFBSSxDQUFDLHlCQUFNO1FBQUUsT0FBTTtJQUVuRCw0QkFBNEIsR0FBRyxJQUFJLENBQUE7SUFFbkMseUJBQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdkIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFDLE9BQUEsTUFBQSxHQUFHLENBQUMsUUFBUSxvREFBRyxLQUFLLENBQUMsQ0FBQSxFQUFBLENBQUMsQ0FBQTtJQUM3RixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsUUFBbUIsRUFBK0IsRUFBRTtJQUNuSCxNQUFNLGVBQWUsR0FBRyxFQUFFLE1BQU0sRUFBRSxjQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFbEQsNkNBQTZDO0lBQzdDLElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdkMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzNDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtLQUN4QztJQUVELElBQUksQ0FBQyx5QkFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXpELE9BQU8seUJBQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsZUFBTyxDQUFDLHVCQUF1QjtRQUN2QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1QsMEJBQTBCLEVBQUUsQ0FBQTtRQUM1QixhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDM0MsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUErQlEsc0RBQXFCO0FBN0I5Qjs7Ozs7R0FLRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLFFBQW1CLEVBQStCLEVBQUU7SUFDckgsTUFBTSxlQUFlLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWxELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFBO0lBRXBHLElBQUksQ0FBQyx5QkFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3pELElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFFMUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFOUIsdURBQXVEO0lBQ3ZELElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRWhGLE9BQU8seUJBQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsZUFBTyxDQUFDLHlCQUF5QjtRQUN6QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDaEMsQ0FBQyxDQUFBO0FBRStCLDBEQUF1QiJ9
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBc0g7QUFFdEgsTUFBTSxhQUFhLEdBQStDLEVBQUUsQ0FBQTtBQUNwRSxJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQWMsRUFBRSxTQUFrQixFQUFrQixFQUFFO0lBQzdFLE9BQU87UUFDTCxPQUFPLEVBQUU7WUFDUCxNQUFNO1lBQ04sU0FBUztTQUNWO0tBQ2dCLENBQUE7QUFDckIsQ0FBQyxDQUFBO0FBRUQsOERBQThEO0FBQzlELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLE9BQWEsRUFBRSxFQUFFO0lBQzVFLE1BQU0sUUFBUSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEVBQUUsRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxFQUFFLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ3JELE1BQU0sVUFBVSxHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLElBQUksRUFBQyxDQUFDLENBQUMsR0FBRyxJQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxJQUFJLENBQUEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBRTNELE9BQU8sR0FBRyxTQUFTLEdBQUcsVUFBVSxHQUFHLFFBQVEsRUFBRSxDQUFBO0FBQy9DLENBQUMsQ0FBQTtBQUVELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLE9BQTZCLEVBQUUsRUFBRTtJQUM3RixNQUFNLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7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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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlGQUErQztBQUUvQyx1Q0FRb0I7QUFDcEIsMkNBQXdCO0FBQ3hCLDRDQUF5QjtBQUV6QixNQUFNLGtCQUFrQixHQUFHLEdBQUcsRUFBRTtJQUM5QixPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxvQkFBb0I7UUFDcEMsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFzSkMsZ0RBQWtCO0FBcEpwQixNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLElBQUksRUFBNkIsRUFBRSxFQUFFO0lBQ2hFLE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLFNBQVM7UUFDekIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFO0tBQ25CLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWdKQyw0QkFBUTtBQTlJVixNQUFNLHdCQUF3QixHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUE2QixFQUFFLEVBQUU7SUFDaEYsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsMEJBQTBCO1FBQzFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRTtLQUNuQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUEwSUMsNERBQXdCO0FBeEkxQixNQUFNLGFBQWEsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUEyQixFQUFFLEVBQUU7SUFDakUsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsZUFBZTtRQUMvQixNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUU7S0FDeEIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBb0lDLHNDQUFhO0FBbElmLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBVSxFQUFFLEVBQUU7SUFDOUIsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQXlIQyw0QkFBUTtBQXZIVixNQUFNLGNBQWMsR0FBRyxDQUFDLEVBQ3RCLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxHQUtMLEVBQUUsRUFBRTtJQUNILElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU07SUFFcEMsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsZ0JBQWdCO1FBQ2hDLE1BQU0sRUFBRTtZQUNOLFFBQVE7WUFDUixPQUFPLEVBQUU7Z0JBQ1AsSUFBSTtnQkFDSixJQUFJO2FBQ0w7U0FDRjtLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQXVHQyx3Q0FBYztBQXJHaEIsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLGdCQUFnQjtRQUNoQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWlHQywwQ0FBZTtBQS9GakI7OztHQUdHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLElBQTBDLEVBQUU7SUFDM0UsSUFBSSxDQUFDLHlCQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFekQsTUFBTSxRQUFRLEdBQUcsTUFBTSx5QkFBTSxDQUFDLGVBQWUsQ0FBQztRQUM1QyxNQUFNLEVBQUUsZUFBTyxDQUFDLHFCQUFxQjtRQUNyQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtJQUVGLE9BQU8sUUFBdUMsQ0FBQTtBQUNoRCxDQUFDLENBQUE7QUFtRkMsa0RBQW1CO0FBakZyQjs7Ozs7R0FLRztBQUNILE1BQU0sY0FBYyxHQUFHLEtBQUssRUFDMUIsS0FBYSxFQUNiLElBQXFFLEVBQ3BDLEVBQUU7SUFDbkMsSUFBSSxDQUFDLHlCQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFekQsTUFBTSxRQUFRLEdBQUcsTUFBTSx5QkFBTSxDQUFDLGVBQWUsQ0FBQztRQUM1QyxNQUFNLEVBQUUsZUFBTyxDQUFDLGVBQWU7UUFDL0IsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtLQUN4QixDQUFDLENBQUE7SUFFRixPQUFPLFFBQWtDLENBQUE7QUFDM0MsQ0FBQyxDQUFBO0FBZ0VDLHdDQUFjO0FBOURoQjs7Ozs7R0FLRztBQUNILE1BQU0sZUFBZSxHQUFHLEtBQUssRUFBRSxFQUM3QixXQUFXLEVBQ1gsTUFBTSxHQUlQLEVBQWdDLEVBQUU7SUFDakMsSUFBSSxDQUFDLHlCQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFekQsT0FBTyxNQUFNLHlCQUFNLENBQUMsZUFBZSxDQUFDO1FBQ2xDLE1BQU0sRUFBRSxlQUFPLENBQUMsaUJBQWlCO1FBQ2pDLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7S0FDaEMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBNENDLDBDQUFlO0FBMUNqQjs7OztHQUlHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBb0IsRUFBMkIsRUFBRTtJQUM3RSxJQUFJLENBQUMseUJBQU07UUFBRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsbUJBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUV6RCxPQUFPLHlCQUFNO1NBQ1YsZUFBZSxDQUFDO1FBQ2YsTUFBTSxFQUFFLGVBQU8sQ0FBQyxlQUFlO1FBQy9CLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRTtLQUNqQixDQUFDO1NBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBdUIsQ0FBQyxDQUFBO0FBQzNDLENBQUMsQ0FBQTtBQTZCQyx3Q0FBYztBQTNCaEI7Ozs7R0FJRztBQUNILE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQTZCLEVBQXlDLEVBQUU7SUFDbkgsSUFBSSxDQUFDLHlCQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLG1CQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFekQsT0FBTyx5QkFBTTtTQUNWLGVBQWUsQ0FBQztRQUNmLE1BQU0sRUFBRSxlQUFPLENBQUMsc0JBQXNCO1FBQ3RDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRTtLQUNuQixDQUFDO1NBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBcUMsQ0FBQyxDQUFBO0FBQ3pELENBQUMsQ0FBQTtBQWNDLG9EQUFvQiJ9
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,12 @@ export interface SearchLocalPhonebookResponse extends EmitterEventPayload {
34
39
  localPhonebookEntries: Array<LocalPhonebookEntry>;
35
40
  };
36
41
  }
42
+ export type GetUnreadCounterResponse = {
43
+ ref: string;
44
+ payload: {
45
+ status: STATUS;
46
+ errorCode?: string | null;
47
+ unreadCounter: number;
48
+ };
49
+ };
37
50
  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,26 @@
1
- import { SubscriptionEventType } from '../../types';
1
+ import { StatusResponse, 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
- status: string;
10
- }>;
9
+ declare const subscribeClientEvents: ({ eventType, payload, callback, }: {
10
+ eventType: SubscriptionEventType;
11
+ payload?: SubscriptionPayload | undefined;
12
+ callback?: Function | undefined;
13
+ }) => Promise<StatusResponse>;
11
14
  /**
12
15
  * Unsubscribe from previously subscribed client events
13
16
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
17
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
14
18
  * @param callback Function to be unsibscribed
15
19
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
16
20
  */
17
- declare const unsubscribeClientEvents: (eventType: SubscriptionEventType, callback?: Function) => Promise<{
18
- status: string;
19
- }>;
21
+ declare const unsubscribeClientEvents: ({ eventType, payload, callback, }: {
22
+ eventType: SubscriptionEventType;
23
+ payload?: SubscriptionPayload | undefined;
24
+ callback?: Function | undefined;
25
+ }) => Promise<StatusResponse>;
20
26
  export { subscribeClientEvents, unsubscribeClientEvents };
@@ -2,70 +2,95 @@ 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
+ const composeResponse = (status, errorCode) => {
6
+ return {
7
+ payload: {
8
+ status,
9
+ errorCode
10
+ },
11
+ };
12
+ };
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const getSubscriptionId = (eventType, payload) => {
15
+ const sourceId = payload?.id ? '-' + payload?.id : '';
16
+ const sourceType = payload?.type ? '-' + payload?.type : '';
17
+ return `${eventType}${sourceType}${sourceId}`;
18
+ };
19
+ const isAnySubscriptions = (eventType, payload) => {
20
+ const id = getSubscriptionId(eventType, payload);
21
+ return subscriptions.some(sub => sub.id == id);
7
22
  };
8
23
  const installBridgeEventListener = () => {
9
24
  if (bridgeEventListenerInstalled || !bridge)
10
25
  return;
11
26
  bridgeEventListenerInstalled = true;
12
27
  bridge.onReceive(event => {
13
- subscriptions.filter(sub => sub.eventType === event.type).map(sub => sub.callback?.(event));
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ const id = getSubscriptionId(event.type, event.payload.source);
30
+ subscriptions.filter(sub => sub.id === id).map(sub => sub.callback?.(event));
14
31
  });
15
32
  };
16
33
  /**
17
34
  * Subscribe to special client events
18
35
  * @param eventType Event from SubscriptionEventType enum to be subscribed
36
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
19
37
  * @param callback Optional function to be handled when event is coming
20
38
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
21
39
  */
22
- const subscribeClientEvents = (eventType, callback) => {
23
- const successResponse = { status: STATUS.SUCCESS };
40
+ const subscribeClientEvents = ({ eventType, payload, callback, }) => {
24
41
  // No need to subscribe event twice on client
25
- if (isAnySubscriptionsOfType(eventType)) {
26
- subscriptions.push({ eventType, callback });
27
- return Promise.resolve(successResponse);
42
+ if (isAnySubscriptions(eventType, payload)) {
43
+ const id = getSubscriptionId(eventType, payload);
44
+ subscriptions.push({ id, callback });
45
+ return Promise.resolve(composeResponse(STATUS.SUCCESS));
28
46
  }
29
47
  if (!bridge)
30
- return Promise.reject(ERROR_CODES.NO_BRIDGE);
48
+ return Promise.reject(composeResponse(STATUS.ERROR, ERROR_CODES.NO_BRIDGE));
31
49
  return bridge
32
50
  .sendClientEvent({
33
51
  method: METHODS.SUBSCRIBE_CLIENT_EVENTS,
34
52
  params: {
35
53
  event: eventType,
54
+ ...payload,
36
55
  },
37
56
  })
38
- .then(() => {
57
+ .then((event) => {
58
+ const response = event;
59
+ const id = getSubscriptionId(eventType, payload);
60
+ if (response.payload.status !== STATUS.SUCCESS)
61
+ return response;
39
62
  installBridgeEventListener();
40
- subscriptions.push({ eventType, callback });
41
- return successResponse;
63
+ subscriptions.push({ id, callback });
64
+ return response;
42
65
  });
43
66
  };
44
67
  /**
45
68
  * Unsubscribe from previously subscribed client events
46
69
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
70
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
47
71
  * @param callback Function to be unsibscribed
48
72
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
49
73
  */
50
- const unsubscribeClientEvents = (eventType, callback) => {
51
- const successResponse = { status: STATUS.SUCCESS };
52
- const index = subscriptions.findIndex(sub => sub.eventType == eventType && sub.callback == callback);
74
+ const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
75
+ const id = getSubscriptionId(eventType, payload);
76
+ const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
53
77
  if (!bridge)
54
78
  return Promise.reject(ERROR_CODES.NO_BRIDGE);
55
79
  if (index == -1)
56
- return Promise.reject(ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
80
+ return Promise.resolve(composeResponse(STATUS.ERROR, ERROR_CODES.SUBSCRIPTION_NOT_FOUND));
57
81
  subscriptions.splice(index, 1);
58
82
  // Send unsubscribe to client only at last subscription
59
- if (isAnySubscriptionsOfType(eventType))
60
- return Promise.resolve(successResponse);
83
+ if (isAnySubscriptions(eventType, payload))
84
+ return Promise.resolve(composeResponse(STATUS.SUCCESS));
61
85
  return bridge
62
86
  .sendClientEvent({
63
87
  method: METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
64
88
  params: {
65
89
  event: eventType,
90
+ ...payload,
66
91
  },
67
92
  })
68
- .then(() => successResponse);
93
+ .then((event) => event);
69
94
  };
70
95
  export { subscribeClientEvents, unsubscribeClientEvents };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLDRCQUE0QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBeUIsTUFBTSxhQUFhLENBQUE7QUFFakYsTUFBTSxhQUFhLEdBQXFFLEVBQUUsQ0FBQTtBQUMxRixJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBZ0MsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUE7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLEVBQUU7SUFDdEMsSUFBSSw0QkFBNEIsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFNO0lBRW5ELDRCQUE0QixHQUFHLElBQUksQ0FBQTtJQUVuQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUM3RixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsUUFBbUIsRUFBK0IsRUFBRTtJQUNuSCxNQUFNLGVBQWUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFbEQsNkNBQTZDO0lBQzdDLElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdkMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzNDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtLQUN4QztJQUVELElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUV6RCxPQUFPLE1BQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsT0FBTyxDQUFDLHVCQUF1QjtRQUN2QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1QsMEJBQTBCLEVBQUUsQ0FBQTtRQUM1QixhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDM0MsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLFFBQW1CLEVBQStCLEVBQUU7SUFDckgsTUFBTSxlQUFlLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWxELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFBO0lBRXBHLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN6RCxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFBRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFFMUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFOUIsdURBQXVEO0lBQ3ZELElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRWhGLE9BQU8sTUFBTTtTQUNWLGVBQWUsQ0FBQztRQUNmLE1BQU0sRUFBRSxPQUFPLENBQUMseUJBQXlCO1FBQ3pDLE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxTQUFTO1NBQ2pCO0tBQ0YsQ0FBQztTQUNELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQTtBQUNoQyxDQUFDLENBQUE7QUFFRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQSJ9
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLDRCQUE0QixDQUFBO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBOEQsTUFBTSxhQUFhLENBQUE7QUFFdEgsTUFBTSxhQUFhLEdBQStDLEVBQUUsQ0FBQTtBQUNwRSxJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQWMsRUFBRSxTQUFrQixFQUFrQixFQUFFO0lBQzdFLE9BQU87UUFDTCxPQUFPLEVBQUU7WUFDUCxNQUFNO1lBQ04sU0FBUztTQUNWO0tBQ2dCLENBQUE7QUFDckIsQ0FBQyxDQUFBO0FBRUQsOERBQThEO0FBQzlELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLE9BQWEsRUFBRSxFQUFFO0lBQzVFLE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDckQsTUFBTSxVQUFVLEdBQUcsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUUzRCxPQUFPLEdBQUcsU0FBUyxHQUFHLFVBQVUsR0FBRyxRQUFRLEVBQUUsQ0FBQTtBQUMvQyxDQUFDLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsU0FBZ0MsRUFBRSxPQUE2QixFQUFFLEVBQUU7SUFDN0YsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBRWhELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMs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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,12 @@ export interface SearchLocalPhonebookResponse extends EmitterEventPayload {
34
39
  localPhonebookEntries: Array<LocalPhonebookEntry>;
35
40
  };
36
41
  }
42
+ export type GetUnreadCounterResponse = {
43
+ ref: string;
44
+ payload: {
45
+ status: STATUS;
46
+ errorCode?: string | null;
47
+ unreadCounter: number;
48
+ };
49
+ };
37
50
  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,70 +1986,95 @@
1984
1986
 
1985
1987
  const subscriptions = [];
1986
1988
  let bridgeEventListenerInstalled = false;
1987
- const isAnySubscriptionsOfType = (eventType) => {
1988
- return subscriptions.some(sub => sub.eventType == eventType);
1989
+ const composeResponse = (status, errorCode) => {
1990
+ return {
1991
+ payload: {
1992
+ status,
1993
+ errorCode
1994
+ },
1995
+ };
1996
+ };
1997
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1998
+ const getSubscriptionId = (eventType, payload) => {
1999
+ const sourceId = payload?.id ? '-' + payload?.id : '';
2000
+ const sourceType = payload?.type ? '-' + payload?.type : '';
2001
+ return `${eventType}${sourceType}${sourceId}`;
2002
+ };
2003
+ const isAnySubscriptions = (eventType, payload) => {
2004
+ const id = getSubscriptionId(eventType, payload);
2005
+ return subscriptions.some(sub => sub.id == id);
1989
2006
  };
1990
2007
  const installBridgeEventListener = () => {
1991
2008
  if (bridgeEventListenerInstalled || !bridge)
1992
2009
  return;
1993
2010
  bridgeEventListenerInstalled = true;
1994
2011
  bridge.onReceive(event => {
1995
- subscriptions.filter(sub => sub.eventType === event.type).map(sub => sub.callback?.(event));
2012
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2013
+ const id = getSubscriptionId(event.type, event.payload.source);
2014
+ subscriptions.filter(sub => sub.id === id).map(sub => sub.callback?.(event));
1996
2015
  });
1997
2016
  };
1998
2017
  /**
1999
2018
  * Subscribe to special client events
2000
2019
  * @param eventType Event from SubscriptionEventType enum to be subscribed
2020
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
2001
2021
  * @param callback Optional function to be handled when event is coming
2002
2022
  * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
2003
2023
  */
2004
- const subscribeClientEvents = (eventType, callback) => {
2005
- const successResponse = { status: STATUS.SUCCESS };
2024
+ const subscribeClientEvents = ({ eventType, payload, callback, }) => {
2006
2025
  // No need to subscribe event twice on client
2007
- if (isAnySubscriptionsOfType(eventType)) {
2008
- subscriptions.push({ eventType, callback });
2009
- return Promise.resolve(successResponse);
2026
+ if (isAnySubscriptions(eventType, payload)) {
2027
+ const id = getSubscriptionId(eventType, payload);
2028
+ subscriptions.push({ id, callback });
2029
+ return Promise.resolve(composeResponse(STATUS.SUCCESS));
2010
2030
  }
2011
2031
  if (!bridge)
2012
- return Promise.reject(ERROR_CODES.NO_BRIDGE);
2032
+ return Promise.reject(composeResponse(STATUS.ERROR, ERROR_CODES.NO_BRIDGE));
2013
2033
  return bridge
2014
2034
  .sendClientEvent({
2015
2035
  method: METHODS.SUBSCRIBE_CLIENT_EVENTS,
2016
2036
  params: {
2017
2037
  event: eventType,
2038
+ ...payload,
2018
2039
  },
2019
2040
  })
2020
- .then(() => {
2041
+ .then((event) => {
2042
+ const response = event;
2043
+ const id = getSubscriptionId(eventType, payload);
2044
+ if (response.payload.status !== STATUS.SUCCESS)
2045
+ return response;
2021
2046
  installBridgeEventListener();
2022
- subscriptions.push({ eventType, callback });
2023
- return successResponse;
2047
+ subscriptions.push({ id, callback });
2048
+ return response;
2024
2049
  });
2025
2050
  };
2026
2051
  /**
2027
2052
  * Unsubscribe from previously subscribed client events
2028
2053
  * @param eventType Event from SubscriptionEventType enum to be unsubscribed
2054
+ * @param payload Additional params, for example `{ id: 'email-app', type: 'smartapp' }`
2029
2055
  * @param callback Function to be unsibscribed
2030
2056
  * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
2031
2057
  */
2032
- const unsubscribeClientEvents = (eventType, callback) => {
2033
- const successResponse = { status: STATUS.SUCCESS };
2034
- const index = subscriptions.findIndex(sub => sub.eventType == eventType && sub.callback == callback);
2058
+ const unsubscribeClientEvents = ({ eventType, payload, callback, }) => {
2059
+ const id = getSubscriptionId(eventType, payload);
2060
+ const index = subscriptions.findIndex(sub => sub.id == id && sub.callback == callback);
2035
2061
  if (!bridge)
2036
2062
  return Promise.reject(ERROR_CODES.NO_BRIDGE);
2037
2063
  if (index == -1)
2038
- return Promise.reject(ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
2064
+ return Promise.resolve(composeResponse(STATUS.ERROR, ERROR_CODES.SUBSCRIPTION_NOT_FOUND));
2039
2065
  subscriptions.splice(index, 1);
2040
2066
  // Send unsubscribe to client only at last subscription
2041
- if (isAnySubscriptionsOfType(eventType))
2042
- return Promise.resolve(successResponse);
2067
+ if (isAnySubscriptions(eventType, payload))
2068
+ return Promise.resolve(composeResponse(STATUS.SUCCESS));
2043
2069
  return bridge
2044
2070
  .sendClientEvent({
2045
2071
  method: METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
2046
2072
  params: {
2047
2073
  event: eventType,
2074
+ ...payload,
2048
2075
  },
2049
2076
  })
2050
- .then(() => successResponse);
2077
+ .then((event) => event);
2051
2078
  };
2052
2079
 
2053
2080
  /**
@@ -2248,6 +2275,19 @@
2248
2275
  })
2249
2276
  .then(event => event);
2250
2277
  };
2278
+ /**
2279
+ * Get unread counter for chat/user/bot/smartapp.
2280
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
2281
+ */
2282
+ const getUnreadCounter = async ({ type, id }) => {
2283
+ if (!bridge)
2284
+ return Promise.reject(ERROR_CODES.NO_BRIDGE);
2285
+ const response = await bridge.sendClientEvent({
2286
+ method: METHODS.GET_UNREAD_COUNTER,
2287
+ params: { type, id },
2288
+ });
2289
+ return response;
2290
+ };
2251
2291
 
2252
2292
  const addContact = ({ phone, name }) => {
2253
2293
  return bridge?.sendClientEvent({
@@ -2389,6 +2429,7 @@
2389
2429
  exports.getChats = getChats;
2390
2430
  exports.getConnectionStatus = getConnectionStatus;
2391
2431
  exports.getContact = getContact;
2432
+ exports.getUnreadCounter = getUnreadCounter;
2392
2433
  exports.handleDeeplink = handleDeeplink;
2393
2434
  exports.onBackPressed = onBackPressed;
2394
2435
  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.1",
4
4
  "description": "Smartapp SDK",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",