@expressms/smartapp-sdk 1.2.9 → 1.4.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -88,7 +88,7 @@ __Реализации клиентских методов SmartApp Bridge__
88
88
 
89
89
  - `getChats({ filter: string | null })` - запросить чаты;
90
90
 
91
- - `requestGeolocation()` - запросить геолокацию;
91
+ - `requestLocation()` - запросить геолокацию;
92
92
 
93
93
  - `searchCorporatePhonebook({ filter: string | null })` - запросить результаты поиска по корпоративной phonebook и результат трастового поиска ;
94
94
 
@@ -431,7 +431,7 @@ __Открытие файла__
431
431
  Метод отправляет клиенту запрос типа:
432
432
 
433
433
  ```
434
- const response = yield openFile(file: {
434
+ const response = yield openFile(file: {
435
435
  "type": <string> | null
436
436
  "file": <string>
437
437
  "fileMimeType": <string> | null
@@ -443,9 +443,9 @@ const response = yield openFile(file: {
443
443
  "fileHash": <string> | null
444
444
  "fileEncryptionAlgo": <string> | null
445
445
  "chunkSize": <number> | null
446
- "fileId": <string> | null
446
+ "fileId": <string> | null
447
447
  "key": {} | null
448
- }
448
+ }
449
449
  )
450
450
  ```
451
451
 
@@ -538,76 +538,106 @@ const response = yield requestSelfProfile()
538
538
  }
539
539
  ```
540
540
 
541
- __Кеширование статики с помощью WorkboxWebpackPlugin__
542
-
543
- Если приложение было создано с помощью `create-react-app`, добавляем строчку в `package.json`:
541
+ __Открытие карточки контакта__
544
542
 
543
+ ```
544
+ yield openContactCard({ userHuid: "123e4567-e89b-12d3-a456-426655440000" })
545
545
  ```
546
546
 
547
- "scripts": {
548
- "eject": "react-scripts eject",
549
- }
547
+ Метод отправляет клиенту запрос на открытие карточки контакта с указанным huid.
550
548
 
551
- ```
552
549
 
553
- В зависимости приложения добавляем `smartapp-sdk` версии `1.2.2` или выше:
550
+ __Статус подключения клиента к серверу__
554
551
 
552
+ ```
553
+ const response = yield getConnectionStatus()
555
554
  ```
556
555
 
557
- "dependencies": {
558
- "@unlimited/smartapp-sdk": "^1.2.2",
556
+ Метод отправляет клиенту запрос типа:
557
+ ```
558
+ {
559
+ "ref": <string>,
560
+ "handler": "express",
561
+ "type": "smartapp_rpc",
562
+ "method": "get_connection_status",
563
+ "payload": {},
564
+ "files": []
559
565
  }
560
-
561
566
  ```
562
567
 
563
- Устанавливаем пакет и выполняем команду `npm run eject`.
564
-
565
- Далее, делаем следующие изменения в файлах:
566
-
567
- Добавляем код в `index.tsx`:
568
-
568
+ И получает ответ:
569
569
  ```
570
-
571
- if (module.hot) module.hot.accept()
572
-
573
- if ("serviceWorker" in navigator) {
574
- window.addEventListener("load", () => {
575
- navigator.serviceWorker.register("./sw.js")
576
- })
570
+ {
571
+ "ref": <string>,
572
+ "status": "success|error",
573
+ "data": {
574
+ "connectionStatus": "connected" | "disconnected",
575
+ }
577
576
  }
578
-
579
577
  ```
580
578
 
581
- Добавляем код в файл `webpack.config.js`:
579
+ __Создание ссылки (deeplink)__
582
580
 
583
581
  ```
584
-
585
- plugins: [
586
- new WorkboxWebpackPlugin.InjectManifest({
587
- swSrc: "@unlimited/smartapp-sdk/workers/workbox.js", // path to worker
588
- swDest: "sw.js"
589
- }),
590
-
582
+ const response = yield createDeeplink({
583
+ appId: "email-app",
584
+ meta: [
585
+ {
586
+ key: "route",
587
+ value: "/send-email",
588
+ },
589
+ {
590
+ key: "email",
591
+ value: "test@mail.ru",
592
+ },
593
+ ]
594
+ })
591
595
  ```
592
596
 
593
- Удаляем в файле `webpack.config.js` следующий код:
597
+ Метод отправляет клиенту запрос типа:
598
+ ```
599
+ {
600
+ "ref": <string>,
601
+ "handler": "express",
602
+ "type": "smartapp_rpc",
603
+ "method": "create_deeplink",
604
+ "payload": {
605
+ "app_id": "email-app",
606
+ "meta": [
607
+ {
608
+ "key": "route",
609
+ "value": "/send-email",
610
+ },
611
+ {
612
+ "key": "email",
613
+ "value": "test@mail.ru",
614
+ },
615
+ ]
616
+ },
617
+ "files": []
618
+ }
619
+ ```
594
620
 
621
+ И получает ответ:
622
+ ```
623
+ {
624
+ "ref": <string>,
625
+ "status": "success|error",
626
+ "data": {
627
+ "deeplink": "https://xlnk.ms/open/smartapp/email-app?route=%2Fsend-email&email=test%40mail.ru",
628
+ }
629
+ }
595
630
  ```
596
631
 
597
- // Generate a service worker script that will precache, and keep up to date,
598
- // the HTML & assets that are part of the webpack build.
599
- isEnvProduction &&
600
- fs.existsSync(swSrc) &&
601
- new WorkboxWebpackPlugin.InjectManifest({
602
- swSrc,
603
- dontCacheBustURLsMatching: /\.[0-9a-f]{8}\./,
604
- exclude: [/\.map$/, /asset-manifest\.json$/, /LICENSE/],
605
- // Bump up the default maximum size (2mb) that"s precached,
606
- // to make lazy-loading failure scenarios less likely.
607
- // See <https://github.com/cra-template/pwa/issues/13#issuecomment-722667270>
608
- maximumFileSizeToCacheInBytes: 5 _ 1024 _ 1024,
609
- }),
632
+ Также можно подписаться на изменение статуса подключения:
633
+ ```
634
+ yield subscribeClientEvents('connection_status', (event) => {
635
+ // TODO: обработать event.data.connectionStatus
636
+ })
637
+ ```
610
638
 
639
+ Отписаться от изменения статуса подключения:
640
+ ```
641
+ yield unsubscribeClientEvents('connection_status', functionName)
611
642
  ```
612
643
 
613
- Запускаем приложение, проверяем регистрацию сервис-воркера.
@@ -1,8 +1,8 @@
1
1
  import Bridge from '@expressms/smartapp-bridge';
2
- import { getChats, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, sendBotCommand } from './lib/client';
2
+ import { createDeeplink, getChats, getConnectionStatus, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents } from './lib/client';
3
3
  import { addContact, createPersonalChat, getContact, openContactCard, 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, };
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, };
@@ -3,17 +3,21 @@ 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.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.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");
10
+ Object.defineProperty(exports, "createDeeplink", { enumerable: true, get: function () { return client_1.createDeeplink; } });
10
11
  Object.defineProperty(exports, "getChats", { enumerable: true, get: function () { return client_1.getChats; } });
12
+ Object.defineProperty(exports, "getConnectionStatus", { enumerable: true, get: function () { return client_1.getConnectionStatus; } });
11
13
  Object.defineProperty(exports, "openClientSettings", { enumerable: true, get: function () { return client_1.openClientSettings; } });
12
14
  Object.defineProperty(exports, "openFile", { enumerable: true, get: function () { return client_1.openFile; } });
13
15
  Object.defineProperty(exports, "openGroupChat", { enumerable: true, get: function () { return client_1.openGroupChat; } });
14
16
  Object.defineProperty(exports, "requestLocation", { enumerable: true, get: function () { return client_1.requestLocation; } });
15
17
  Object.defineProperty(exports, "searchCorporatePhonebook", { enumerable: true, get: function () { return client_1.searchCorporatePhonebook; } });
16
18
  Object.defineProperty(exports, "sendBotCommand", { enumerable: true, get: function () { return client_1.sendBotCommand; } });
19
+ Object.defineProperty(exports, "subscribeClientEvents", { enumerable: true, get: function () { return client_1.subscribeClientEvents; } });
20
+ Object.defineProperty(exports, "unsubscribeClientEvents", { enumerable: true, get: function () { return client_1.unsubscribeClientEvents; } });
17
21
  const contacts_1 = require("./lib/contacts");
18
22
  Object.defineProperty(exports, "addContact", { enumerable: true, get: function () { return contacts_1.addContact; } });
19
23
  Object.defineProperty(exports, "createPersonalChat", { enumerable: true, get: function () { return contacts_1.createPersonalChat; } });
@@ -34,4 +38,4 @@ Object.defineProperty(exports, "onBackPressed", { enumerable: true, get: functio
34
38
  Object.defineProperty(exports, "onMoveToRoot", { enumerable: true, get: function () { return routing_1.onMoveToRoot; } });
35
39
  Object.defineProperty(exports, "openSmartApp", { enumerable: true, get: function () { return routing_1.openSmartApp; } });
36
40
  Object.defineProperty(exports, "routingChanged", { enumerable: true, get: function () { return routing_1.routingChanged; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUZBQStDO0FBK0I3QyxpQkEvQksseUJBQU0sQ0ErQkw7QUE5QlIseUNBUXFCO0FBb0NuQix5RkEzQ0EsaUJBQVEsT0EyQ0E7QUFEUixtR0F6Q0EsMkJBQWtCLE9BeUNBO0FBSGxCLHlGQXJDQSxpQkFBUSxPQXFDQTtBQU9SLDhGQTNDQSxzQkFBYSxPQTJDQTtBQUViLGdHQTVDQSx3QkFBZSxPQTRDQTtBQUpmLHlHQXZDQSxpQ0FBd0IsT0F1Q0E7QUFDeEIsK0ZBdkNBLHVCQUFjLE9BdUNBO0FBckNoQiw2Q0FPdUI7QUFrQnJCLDJGQXhCQSxxQkFBVSxPQXdCQTtBQUVWLG1HQXpCQSw2QkFBa0IsT0F5QkE7QUFEbEIsMkZBdkJBLHFCQUFVLE9BdUJBO0FBZVYsZ0dBckNBLDBCQUFlLE9BcUNBO0FBQ2YsbUdBckNBLDZCQUFrQixPQXFDQTtBQWJsQiw0RkF2QkEsc0JBQVcsT0F1QkE7QUFyQmIsbURBQThDO0FBeUI1Qyx5RkF6Qk0sa0JBQVEsT0F5Qk47QUF4QlYsMkNBQW1DO0FBYWpDLHNGQWJNLGVBQUssT0FhTjtBQVpQLHFEQUFpRDtBQWtCL0MsK0ZBbEJNLDZCQUFjLE9Ba0JOO0FBakJoQiwyQ0FPc0I7QUF5QnBCLDhGQS9CQSx1QkFBYSxPQStCQTtBQVhiLHNHQW5CQSwrQkFBcUIsT0FtQkE7QUFSckIsOEZBVkEsdUJBQWEsT0FVQTtBQWViLDZGQXhCQSxzQkFBWSxPQXdCQTtBQVRaLDZGQWRBLHNCQUFZLE9BY0E7QUFQWiwrRkFOQSx3QkFBYyxPQU1BIn0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUZBQStDO0FBbUM3QyxpQkFuQ0sseUJBQU0sQ0FtQ0w7QUFsQ1IseUNBWXFCO0FBZ0RuQiwrRkEzREEsdUJBQWMsT0EyREE7QUFaZCx5RkE5Q0EsaUJBQVEsT0E4Q0E7QUFTUixvR0F0REEsNEJBQW1CLE9Bc0RBO0FBVm5CLG1HQTNDQSwyQkFBa0IsT0EyQ0E7QUFIbEIseUZBdkNBLGlCQUFRLE9BdUNBO0FBT1IsOEZBN0NBLHNCQUFhLE9BNkNBO0FBRWIsZ0dBOUNBLHdCQUFlLE9BOENBO0FBSmYseUdBekNBLGlDQUF3QixPQXlDQTtBQUN4QiwrRkF6Q0EsdUJBQWMsT0F5Q0E7QUFRZCxzR0FoREEsOEJBQXFCLE9BZ0RBO0FBQ3JCLHdHQWhEQSxnQ0FBdUIsT0FnREE7QUE5Q3pCLDZDQU91QjtBQWtCckIsMkZBeEJBLHFCQUFVLE9Bd0JBO0FBRVYsbUdBekJBLDZCQUFrQixPQXlCQTtBQURsQiwyRkF2QkEscUJBQVUsT0F1QkE7QUFlVixnR0FyQ0EsMEJBQWUsT0FxQ0E7QUFDZixtR0FyQ0EsNkJBQWtCLE9BcUNBO0FBYmxCLDRGQXZCQSxzQkFBVyxPQXVCQTtBQXJCYixtREFBOEM7QUF5QjVDLHlGQXpCTSxrQkFBUSxPQXlCTjtBQXhCViwyQ0FBbUM7QUFhakMsc0ZBYk0sZUFBSyxPQWFOO0FBWlAscURBQWlEO0FBa0IvQywrRkFsQk0sNkJBQWMsT0FrQk47QUFqQmhCLDJDQU9zQjtBQXlCcEIsOEZBL0JBLHVCQUFhLE9BK0JBO0FBWGIsc0dBbkJBLCtCQUFxQixPQW1CQTtBQVJyQiw4RkFWQSx1QkFBYSxPQVVBO0FBZWIsNkZBeEJBLHNCQUFZLE9Bd0JBO0FBVFosNkZBZEEsc0JBQVksT0FjQTtBQVBaLCtGQU5BLHdCQUFjLE9BTUEifQ==
@@ -0,0 +1,20 @@
1
+ import { SubscriptionEventType } from '../../types';
2
+ /**
3
+ * Subscribe to special client events
4
+ * @param eventType Event from SubscriptionEventType enum to be subscribed
5
+ * @param callback Function to be handled when event is coming
6
+ * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
7
+ */
8
+ declare const subscribeClientEvents: (eventType: SubscriptionEventType, callback: Function) => Promise<{
9
+ status: string;
10
+ }>;
11
+ /**
12
+ * Unsubscribe from previously subscribed client events
13
+ * @param eventType Event from SubscriptionEventType enum to be unsubscribed
14
+ * @param callback Function to be unsibscribed
15
+ * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
16
+ */
17
+ declare const unsubscribeClientEvents: (eventType: SubscriptionEventType, callback: Function) => Promise<{
18
+ status: string;
19
+ }>;
20
+ export { subscribeClientEvents, unsubscribeClientEvents };
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.unsubscribeClientEvents = exports.subscribeClientEvents = void 0;
7
+ const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
8
+ const types_1 = require("../../types");
9
+ const subscriptions = [];
10
+ let bridgeEventListenerInstalled = false;
11
+ const isAnySubscriptionsOfType = (eventType) => {
12
+ return subscriptions.some(sub => sub.eventType == eventType);
13
+ };
14
+ const installBridgeEventListener = () => {
15
+ if (bridgeEventListenerInstalled || !smartapp_bridge_1.default)
16
+ return;
17
+ bridgeEventListenerInstalled = true;
18
+ smartapp_bridge_1.default.onReceive(event => {
19
+ subscriptions.filter(sub => sub.eventType === event.type).map(sub => sub.callback(event));
20
+ });
21
+ };
22
+ /**
23
+ * Subscribe to special client events
24
+ * @param eventType Event from SubscriptionEventType enum to be subscribed
25
+ * @param callback Function to be handled when event is coming
26
+ * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
27
+ */
28
+ const subscribeClientEvents = (eventType, callback) => {
29
+ const successResponse = { status: types_1.STATUS.SUCCESS };
30
+ // No need to subscribe event twice on client
31
+ if (isAnySubscriptionsOfType(eventType)) {
32
+ subscriptions.push({ eventType, callback });
33
+ return Promise.resolve(successResponse);
34
+ }
35
+ if (!smartapp_bridge_1.default)
36
+ return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
37
+ return smartapp_bridge_1.default
38
+ .sendClientEvent({
39
+ method: types_1.METHODS.SUBSCRIBE_CLIENT_EVENTS,
40
+ params: {
41
+ event: eventType,
42
+ },
43
+ })
44
+ .then(() => {
45
+ installBridgeEventListener();
46
+ subscriptions.push({ eventType, callback });
47
+ return successResponse;
48
+ });
49
+ };
50
+ exports.subscribeClientEvents = subscribeClientEvents;
51
+ /**
52
+ * Unsubscribe from previously subscribed client events
53
+ * @param eventType Event from SubscriptionEventType enum to be unsubscribed
54
+ * @param callback Function to be unsibscribed
55
+ * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
56
+ */
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);
60
+ if (!smartapp_bridge_1.default)
61
+ return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
62
+ if (index == -1)
63
+ return Promise.reject(types_1.ERROR_CODES.SUBSCRIPTION_NOT_FOUND);
64
+ subscriptions.splice(index, 1);
65
+ // Send unsubscribe to client only at last subscription
66
+ if (isAnySubscriptionsOfType(eventType))
67
+ return Promise.resolve(successResponse);
68
+ return smartapp_bridge_1.default
69
+ .sendClientEvent({
70
+ method: types_1.METHODS.UNSUBSCRIBE_CLIENT_EVENTS,
71
+ params: {
72
+ event: eventType,
73
+ },
74
+ })
75
+ .then(() => successResponse);
76
+ };
77
+ exports.unsubscribeClientEvents = unsubscribeClientEvents;
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jbGllbnQvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBaUY7QUFFakYsTUFBTSxhQUFhLEdBQW9FLEVBQUUsQ0FBQTtBQUN6RixJQUFJLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtBQUV4QyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBZ0MsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUE7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLEVBQUU7SUFDdEMsSUFBSSw0QkFBNEIsSUFBSSxDQUFDLHlCQUFNO1FBQUUsT0FBTTtJQUVuRCw0QkFBNEIsR0FBRyxJQUFJLENBQUE7SUFFbkMseUJBQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdkIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUMzRixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLFNBQWdDLEVBQUUsUUFBa0IsRUFBK0IsRUFBRTtJQUNsSCxNQUFNLGVBQWUsR0FBRyxFQUFFLE1BQU0sRUFBRSxjQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7SUFFbEQsNkNBQTZDO0lBQzdDLElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDLEVBQUU7UUFDdkMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO1FBQzNDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQTtLQUN4QztJQUVELElBQUksQ0FBQyx5QkFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXpELE9BQU8seUJBQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsZUFBTyxDQUFDLHVCQUF1QjtRQUN2QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ1QsMEJBQTBCLEVBQUUsQ0FBQTtRQUM1QixhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDM0MsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUE7QUErQlEsc0RBQXFCO0FBN0I5Qjs7Ozs7R0FLRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxTQUFnQyxFQUFFLFFBQWtCLEVBQStCLEVBQUU7SUFDcEgsTUFBTSxlQUFlLEdBQUcsRUFBRSxNQUFNLEVBQUUsY0FBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBRWxELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLFNBQVMsSUFBSSxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFBO0lBRXBHLElBQUksQ0FBQyx5QkFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3pELElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFFMUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFFOUIsdURBQXVEO0lBQ3ZELElBQUksd0JBQXdCLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRWhGLE9BQU8seUJBQU07U0FDVixlQUFlLENBQUM7UUFDZixNQUFNLEVBQUUsZUFBTyxDQUFDLHlCQUF5QjtRQUN6QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUztTQUNqQjtLQUNGLENBQUM7U0FDRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDaEMsQ0FBQyxDQUFBO0FBRStCLDBEQUF1QiJ9
@@ -1,4 +1,5 @@
1
- import { File } from '../../types';
1
+ import { CreateDeeplinkResponse, File, GetConnectionStatusResponse } from '../../types';
2
+ export * from './events';
2
3
  declare const openClientSettings: () => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
3
4
  declare const getChats: ({ filter }: {
4
5
  filter: string | null;
@@ -18,4 +19,19 @@ declare const sendBotCommand: ({ userHuid, body, data, }: {
18
19
  } | null;
19
20
  }) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
20
21
  declare const requestLocation: () => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
21
- export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation };
22
+ /**
23
+ * Get client current connection status. It's based on client's WebSocket connection state.
24
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
25
+ */
26
+ declare const getConnectionStatus: () => Promise<GetConnectionStatusResponse>;
27
+ /**
28
+ * Create deeplink URL to open SmartApp
29
+ * @param appId ID of SmartApp
30
+ * @param meta Array of params to be included in deeplink
31
+ * @returns Promise that'll be fullfilled with deeplink data on success, otherwise rejected with reason
32
+ */
33
+ declare const createDeeplink: (appId: string, meta: Array<{
34
+ key: string;
35
+ value: null | boolean | string | number;
36
+ }>) => Promise<CreateDeeplinkResponse>;
37
+ export { openFile, openClientSettings, getChats, searchCorporatePhonebook, openGroupChat, sendBotCommand, requestLocation, getConnectionStatus, createDeeplink, };
@@ -1,11 +1,26 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
18
  };
5
19
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.requestLocation = exports.sendBotCommand = exports.openGroupChat = exports.searchCorporatePhonebook = exports.getChats = exports.openClientSettings = exports.openFile = void 0;
20
+ exports.createDeeplink = exports.getConnectionStatus = exports.requestLocation = exports.sendBotCommand = exports.openGroupChat = exports.searchCorporatePhonebook = exports.getChats = exports.openClientSettings = exports.openFile = void 0;
7
21
  const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
8
22
  const types_1 = require("../../types");
23
+ __exportStar(require("./events"), exports);
9
24
  const openClientSettings = () => {
10
25
  return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent({
11
26
  method: types_1.METHODS.OPEN_CLIENT_SETTINGS,
@@ -63,4 +78,34 @@ const requestLocation = () => {
63
78
  });
64
79
  };
65
80
  exports.requestLocation = requestLocation;
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpRkFBK0M7QUFDL0MsdUNBQTJDO0FBRTNDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFO0lBQzlCLE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLG9CQUFvQjtRQUNwQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWdFQyxnREFBa0I7QUE5RHBCLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBQyxNQUFNLEdBQUcsSUFBSSxFQUE0QixFQUFFLEVBQUU7SUFDOUQsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUM7S0FDakIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBMERDLDRCQUFRO0FBeERWLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxFQUFDLE1BQU0sR0FBRyxJQUFJLEVBQTRCLEVBQUUsRUFBRTtJQUM5RSxPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQywwQkFBMEI7UUFDMUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFDO0tBQ2pCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQW9EQyw0REFBd0I7QUFsRDFCLE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBQyxXQUFXLEVBQTBCLEVBQUUsRUFBRTtJQUMvRCxPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxlQUFlO1FBQy9CLE1BQU0sRUFBRSxFQUFDLFdBQVcsRUFBQztLQUN0QixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUE4Q0Msc0NBQWE7QUE1Q2YsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRTtJQUM5QixPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxTQUFTO1FBQ3pCLE1BQU0sRUFBRSxJQUFJO0tBQ2IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBbUNDLDRCQUFRO0FBakNWLE1BQU0sY0FBYyxHQUFHLENBQ25CLEVBQ0UsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLEdBS0wsRUFDSCxFQUFFO0lBQ0YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1FBQUUsT0FBTTtJQUVwQyxPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxnQkFBZ0I7UUFDaEMsTUFBTSxFQUFFO1lBQ04sUUFBUTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxJQUFJO2dCQUNKLElBQUk7YUFDTDtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBZUMsd0NBQWM7QUFiaEIsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLGdCQUFnQjtRQUNoQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQVNDLDBDQUFlIn0=
81
+ /**
82
+ * Get client current connection status. It's based on client's WebSocket connection state.
83
+ * @returns Promise that'll be fullfilled with status data on success, otherwise rejected with reason
84
+ */
85
+ const getConnectionStatus = async () => {
86
+ if (!smartapp_bridge_1.default)
87
+ return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
88
+ const response = await smartapp_bridge_1.default.sendClientEvent({
89
+ method: types_1.METHODS.GET_CONNECTION_STATUS,
90
+ params: {},
91
+ });
92
+ return response;
93
+ };
94
+ exports.getConnectionStatus = getConnectionStatus;
95
+ /**
96
+ * Create deeplink URL to open SmartApp
97
+ * @param appId ID of SmartApp
98
+ * @param meta Array of params to be included in deeplink
99
+ * @returns Promise that'll be fullfilled with deeplink data on success, otherwise rejected with reason
100
+ */
101
+ const createDeeplink = async (appId, meta) => {
102
+ if (!smartapp_bridge_1.default)
103
+ return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
104
+ const response = await smartapp_bridge_1.default.sendClientEvent({
105
+ method: types_1.METHODS.CREATE_DEEPLINK,
106
+ params: { appId, meta },
107
+ });
108
+ return response;
109
+ };
110
+ exports.createDeeplink = createDeeplink;
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBNkc7QUFDN0csMkNBQXdCO0FBRXhCLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFO0lBQzlCLE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLG9CQUFvQjtRQUNwQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQW1HQyxnREFBa0I7QUFqR3BCLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBQyxNQUFNLEdBQUcsSUFBSSxFQUE0QixFQUFFLEVBQUU7SUFDOUQsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUM7S0FDakIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBNkZDLDRCQUFRO0FBM0ZWLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxFQUFDLE1BQU0sR0FBRyxJQUFJLEVBQTRCLEVBQUUsRUFBRTtJQUM5RSxPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQywwQkFBMEI7UUFDMUMsTUFBTSxFQUFFLEVBQUMsTUFBTSxFQUFDO0tBQ2pCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQXVGQyw0REFBd0I7QUFyRjFCLE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBQyxXQUFXLEVBQTBCLEVBQUUsRUFBRTtJQUMvRCxPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxlQUFlO1FBQy9CLE1BQU0sRUFBRSxFQUFDLFdBQVcsRUFBQztLQUN0QixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFpRkMsc0NBQWE7QUEvRWYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRTtJQUM5QixPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxTQUFTO1FBQ3pCLE1BQU0sRUFBRSxJQUFJO0tBQ2IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBc0VDLDRCQUFRO0FBcEVWLE1BQU0sY0FBYyxHQUFHLENBQ25CLEVBQ0UsUUFBUSxFQUNSLElBQUksRUFDSixJQUFJLEdBS0wsRUFDSCxFQUFFO0lBQ0YsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1FBQUUsT0FBTTtJQUVwQyxPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0IsTUFBTSxFQUFFLGVBQU8sQ0FBQyxnQkFBZ0I7UUFDaEMsTUFBTSxFQUFFO1lBQ04sUUFBUTtZQUNSLE9BQU8sRUFBRTtnQkFDUCxJQUFJO2dCQUNKLElBQUk7YUFDTDtTQUNGO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBa0RDLHdDQUFjO0FBaERoQixNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDM0IsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsZ0JBQWdCO1FBQ2hDLE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBNENDLDBDQUFlO0FBMUNqQjs7O0dBR0c7QUFDSCxNQUFNLG1CQUFtQixHQUFHLEtBQUssSUFBMEMsRUFBRTtJQUMzRSxJQUFJLENBQUMseUJBQU07UUFBRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsbUJBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUV6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLHlCQUFNLENBQUMsZUFBZSxDQUFDO1FBQzVDLE1BQU0sRUFBRSxlQUFPLENBQUMscUJBQXFCO1FBQ3JDLE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQyxDQUFBO0lBRUYsT0FBTyxRQUF1QyxDQUFBO0FBQ2hELENBQUMsQ0FBQTtBQThCQyxrREFBbUI7QUE1QnJCOzs7OztHQUtHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUMxQixLQUFhLEVBQ2IsSUFBcUUsRUFDcEMsRUFBRTtJQUNuQyxJQUFJLENBQUMseUJBQU07UUFBRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsbUJBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUV6RCxNQUFNLFFBQVEsR0FBRyxNQUFNLHlCQUFNLENBQUMsZUFBZSxDQUFDO1FBQzVDLE1BQU0sRUFBRSxlQUFPLENBQUMsZUFBZTtRQUMvQixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0tBQ3hCLENBQUMsQ0FBQTtJQUVGLE9BQU8sUUFBa0MsQ0FBQTtBQUMzQyxDQUFDLENBQUE7QUFXQyx3Q0FBYyJ9
@@ -5,14 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ready = void 0;
7
7
  const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
8
+ const types_1 = require("../../types");
8
9
  const index_1 = require("../index");
9
10
  const ready = async (timeout) => {
10
11
  var _a, _b;
11
12
  const response = await (0, index_1.bridgeSendReady)(timeout);
12
13
  const isLogsEnabled = (_a = response === null || response === void 0 ? void 0 : response.payload) === null || _a === void 0 ? void 0 : _a.logsEnabled;
14
+ if (!smartapp_bridge_1.default)
15
+ return Promise.reject(types_1.ERROR_CODES.NO_BRIDGE);
13
16
  if (isLogsEnabled)
14
- (_b = smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.enableLogs) === null || _b === void 0 ? void 0 : _b.call(smartapp_bridge_1.default);
17
+ (_b = smartapp_bridge_1.default.enableLogs) === null || _b === void 0 ? void 0 : _b.call(smartapp_bridge_1.default);
15
18
  return response;
16
19
  };
17
20
  exports.ready = ready;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2xvZ2dpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUZBQStDO0FBRS9DLG9DQUEwQztBQUUxQyxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsT0FBZ0IsRUFBRSxFQUFFOztJQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsdUJBQWUsRUFBQyxPQUFPLENBQXVCLENBQUE7SUFDckUsTUFBTSxhQUFhLEdBQUcsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTywwQ0FBRSxXQUFXLENBQUE7SUFFcEQsSUFBSSxhQUFhO1FBQUUsTUFBQyx5QkFBYyxhQUFkLHlCQUFNLHVCQUFOLHlCQUFNLENBQVUsVUFBVSx5RUFBSSxDQUFBO0lBRWxELE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMsQ0FBQTtBQUdDLHNCQUFLIn0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2xvZ2dpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUZBQStDO0FBQy9DLHVDQUE2RDtBQUM3RCxvQ0FBMEM7QUFFMUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLE9BQWdCLEVBQUUsRUFBRTs7SUFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLHVCQUFlLEVBQUMsT0FBTyxDQUF1QixDQUFBO0lBQ3JFLE1BQU0sYUFBYSxHQUFHLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLE9BQU8sMENBQUUsV0FBVyxDQUFBO0lBRXBELElBQUksQ0FBQyx5QkFBTTtRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXpELElBQUksYUFBYTtRQUFFLE1BQUEseUJBQU0sQ0FBQyxVQUFVLHlFQUFJLENBQUE7SUFFeEMsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQyxDQUFBO0FBR0Msc0JBQUsifQ==
@@ -18,11 +18,23 @@ export declare enum METHODS {
18
18
  REQUEST_LOCATION = "request_location",
19
19
  REQUEST_SELF_PROFILE = "request_self_profile",
20
20
  CLOSE_SMART_APP = "close_smart_app",
21
- OPEN_FILE = "open_file"
21
+ OPEN_FILE = "open_file",
22
+ SUBSCRIBE_CLIENT_EVENTS = "subscribe_client_events",
23
+ UNSUBSCRIBE_CLIENT_EVENTS = "unsubscribe_client_events",
24
+ GET_CONNECTION_STATUS = "get_connection_status",
25
+ CREATE_DEEPLINK = "create_deeplink"
26
+ }
27
+ export declare enum STATUS {
28
+ SUCCESS = "success",
29
+ ERROR = "error"
30
+ }
31
+ export declare enum ERROR_CODES {
32
+ NO_BRIDGE = "no_bridge",
33
+ SUBSCRIPTION_NOT_FOUND = "subscription_not_found"
22
34
  }
23
35
  export type ReadyEventResponse = ({
24
36
  ref: string;
25
- status: "success";
37
+ status: STATUS.SUCCESS;
26
38
  payload: {
27
39
  logsEnabled?: boolean;
28
40
  isMain?: boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.METHODS = void 0;
3
+ exports.ERROR_CODES = exports.STATUS = exports.METHODS = void 0;
4
4
  var METHODS;
5
5
  (function (METHODS) {
6
6
  METHODS["READY"] = "ready";
@@ -23,5 +23,19 @@ var METHODS;
23
23
  METHODS["REQUEST_SELF_PROFILE"] = "request_self_profile";
24
24
  METHODS["CLOSE_SMART_APP"] = "close_smart_app";
25
25
  METHODS["OPEN_FILE"] = "open_file";
26
+ METHODS["SUBSCRIBE_CLIENT_EVENTS"] = "subscribe_client_events";
27
+ METHODS["UNSUBSCRIBE_CLIENT_EVENTS"] = "unsubscribe_client_events";
28
+ METHODS["GET_CONNECTION_STATUS"] = "get_connection_status";
29
+ METHODS["CREATE_DEEPLINK"] = "create_deeplink";
26
30
  })(METHODS = exports.METHODS || (exports.METHODS = {}));
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLE9BcUJYO0FBckJELFdBQVksT0FBTztJQUNqQiwwQkFBZSxDQUFBO0lBQ2YsOENBQW1DLENBQUE7SUFDbkMsd0NBQTZCLENBQUE7SUFDN0Isd0NBQTZCLENBQUE7SUFDN0Isc0NBQTJCLENBQUE7SUFDM0Isc0NBQTJCLENBQUE7SUFDM0Isd0RBQTZDLENBQUE7SUFDN0Msd0NBQTZCLENBQUE7SUFDN0Isd0NBQTZCLENBQUE7SUFDN0IsNENBQWlDLENBQUE7SUFDakMsd0RBQTZDLENBQUE7SUFDN0Msa0NBQXVCLENBQUE7SUFDdkIsb0VBQXlELENBQUE7SUFDekQsZ0RBQXFDLENBQUE7SUFDckMsOENBQW1DLENBQUE7SUFDbkMsa0RBQXVDLENBQUE7SUFDdkMsZ0RBQXFDLENBQUE7SUFDckMsd0RBQTZDLENBQUE7SUFDN0MsOENBQW1DLENBQUE7SUFDbkMsa0NBQXVCLENBQUE7QUFDekIsQ0FBQyxFQXJCVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFxQmxCIn0=
31
+ var STATUS;
32
+ (function (STATUS) {
33
+ STATUS["SUCCESS"] = "success";
34
+ STATUS["ERROR"] = "error";
35
+ })(STATUS = exports.STATUS || (exports.STATUS = {}));
36
+ var ERROR_CODES;
37
+ (function (ERROR_CODES) {
38
+ ERROR_CODES["NO_BRIDGE"] = "no_bridge";
39
+ ERROR_CODES["SUBSCRIPTION_NOT_FOUND"] = "subscription_not_found";
40
+ })(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLE9BeUJYO0FBekJELFdBQVksT0FBTztJQUNqQiwwQkFBZSxDQUFBO0lBQ2YsOENBQW1DLENBQUE7SUFDbkMsd0NBQTZCLENBQUE7SUFDN0Isd0NBQTZCLENBQUE7SUFDN0Isc0NBQTJCLENBQUE7SUFDM0Isc0NBQTJCLENBQUE7SUFDM0Isd0RBQTZDLENBQUE7SUFDN0Msd0NBQTZCLENBQUE7SUFDN0Isd0NBQTZCLENBQUE7SUFDN0IsNENBQWlDLENBQUE7SUFDakMsd0RBQTZDLENBQUE7SUFDN0Msa0NBQXVCLENBQUE7SUFDdkIsb0VBQXlELENBQUE7SUFDekQsZ0RBQXFDLENBQUE7SUFDckMsOENBQW1DLENBQUE7SUFDbkMsa0RBQXVDLENBQUE7SUFDdkMsZ0RBQXFDLENBQUE7SUFDckMsd0RBQTZDLENBQUE7SUFDN0MsOENBQW1DLENBQUE7SUFDbkMsa0NBQXVCLENBQUE7SUFDdkIsOERBQW1ELENBQUE7SUFDbkQsa0VBQXVELENBQUE7SUFDdkQsMERBQStDLENBQUE7SUFDL0MsOENBQW1DLENBQUE7QUFDckMsQ0FBQyxFQXpCVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUF5QmxCO0FBRUQsSUFBWSxNQUdYO0FBSEQsV0FBWSxNQUFNO0lBQ2hCLDZCQUFtQixDQUFBO0lBQ25CLHlCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUhXLE1BQU0sR0FBTixjQUFNLEtBQU4sY0FBTSxRQUdqQjtBQUVELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQixzQ0FBdUIsQ0FBQTtJQUN2QixnRUFBaUQsQ0FBQTtBQUNuRCxDQUFDLEVBSFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFHdEIifQ==
@@ -0,0 +1,19 @@
1
+ export declare enum SubscriptionEventType {
2
+ CONNECTION_STATUS = "connection_status"
3
+ }
4
+ export type GetConnectionStatusResponse = ({
5
+ ref: string;
6
+ payload: {
7
+ connectionStatus: "connected" | "disconnected";
8
+ };
9
+ });
10
+ export type CreateDeeplinkResponse = ({
11
+ ref: string;
12
+ payload: {
13
+ status: 'error' | 'success';
14
+ errorCode?: string;
15
+ data?: {
16
+ deeplink: string;
17
+ };
18
+ };
19
+ });
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SubscriptionEventType = void 0;
4
+ var SubscriptionEventType;
5
+ (function (SubscriptionEventType) {
6
+ SubscriptionEventType["CONNECTION_STATUS"] = "connection_status";
7
+ })(SubscriptionEventType = exports.SubscriptionEventType || (exports.SubscriptionEventType = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLHFCQUVYO0FBRkQsV0FBWSxxQkFBcUI7SUFDL0IsZ0VBQXVDLENBQUE7QUFDekMsQ0FBQyxFQUZXLHFCQUFxQixHQUFyQiw2QkFBcUIsS0FBckIsNkJBQXFCLFFBRWhDIn0=
@@ -1,2 +1,4 @@
1
1
  export * from "./bridge";
2
2
  export * from "./routing";
3
+ export * from "./contacts";
4
+ export * from "./client";
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./bridge"), exports);
18
18
  __exportStar(require("./routing"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QjtBQUN4Qiw0Q0FBeUIifQ==
19
+ __exportStar(require("./contacts"), exports);
20
+ __exportStar(require("./client"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QjtBQUN4Qiw0Q0FBeUI7QUFDekIsNkNBQTBCO0FBQzFCLDJDQUF3QiJ9
@@ -1,8 +1,8 @@
1
1
  import Bridge from '@expressms/smartapp-bridge';
2
- import { getChats, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, sendBotCommand } from './lib/client';
2
+ import { createDeeplink, getChats, getConnectionStatus, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents } from './lib/client';
3
3
  import { addContact, createPersonalChat, getContact, openContactCard, 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, };
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, };
@@ -1,9 +1,9 @@
1
1
  import Bridge from '@expressms/smartapp-bridge';
2
- import { getChats, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, sendBotCommand, } from './lib/client';
2
+ import { createDeeplink, getChats, getConnectionStatus, openClientSettings, openFile, openGroupChat, requestLocation, searchCorporatePhonebook, sendBotCommand, subscribeClientEvents, unsubscribeClientEvents, } from './lib/client';
3
3
  import { addContact, createPersonalChat, getContact, openContactCard, 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, };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUE7QUFDL0MsT0FBTyxFQUNMLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLGFBQWEsRUFDYixlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLGNBQWMsR0FDZixNQUFNLGNBQWMsQ0FBQTtBQUNyQixPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixXQUFXLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUE7QUFDOUMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQTtBQUNuQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUE7QUFDakQsT0FBTyxFQUNMLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEVBQ1osY0FBYyxHQUNmLE1BQU0sZUFBZSxDQUFBO0FBRXRCLE9BQU8sRUFDTCxNQUFNLEVBQ04sS0FBSyxFQUNMLGNBQWMsRUFDZCxhQUFhLEVBQ2IsVUFBVSxFQUNWLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLFdBQVcsRUFDWCxZQUFZLEVBQ1osUUFBUSxFQUNSLHFCQUFxQixFQUNyQixRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLGFBQWEsRUFDYixZQUFZLEVBQ1osZUFBZSxFQUNmLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxHQUNkLENBQUEifQ==
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, };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sNEJBQTRCLENBQUE7QUFDL0MsT0FBTyxFQUNMLGNBQWMsRUFDZCxRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixRQUFRLEVBQ1IsYUFBYSxFQUNiLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLHFCQUFxQixFQUNyQix1QkFBdUIsR0FDeEIsTUFBTSxjQUFjLENBQUE7QUFDckIsT0FBTyxFQUNMLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsVUFBVSxFQUNWLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsV0FBVyxHQUNaLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVCQUF1QixDQUFBO0FBQzlDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUE7QUFDbkMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFBO0FBQ2pELE9BQU8sRUFDTCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxFQUNaLGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQ0wsTUFBTSxFQUNOLEtBQUssRUFDTCxjQUFjLEVBQ2QsYUFBYSxFQUNiLFVBQVUsRUFDVixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFFBQVEsRUFDUixxQkFBcUIsRUFDckIsUUFBUSxFQUNSLGtCQUFrQixFQUNsQixRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixjQUFjLEdBQ2YsQ0FBQSJ9
@@ -0,0 +1,20 @@
1
+ import { SubscriptionEventType } from '../../types';
2
+ /**
3
+ * Subscribe to special client events
4
+ * @param eventType Event from SubscriptionEventType enum to be subscribed
5
+ * @param callback Function to be handled when event is coming
6
+ * @returns Promise that'll be fullfilled on successful subscription, otherwise rejected with reason
7
+ */
8
+ declare const subscribeClientEvents: (eventType: SubscriptionEventType, callback: Function) => Promise<{
9
+ status: string;
10
+ }>;
11
+ /**
12
+ * Unsubscribe from previously subscribed client events
13
+ * @param eventType Event from SubscriptionEventType enum to be unsubscribed
14
+ * @param callback Function to be unsibscribed
15
+ * @returns Promise that'll be fullfilled on successful unsubscription, otherwise rejected with reason
16
+ */
17
+ declare const unsubscribeClientEvents: (eventType: SubscriptionEventType, callback: Function) => Promise<{
18
+ status: string;
19
+ }>;
20
+ export { subscribeClientEvents, unsubscribeClientEvents };