@expressms/smartapp-sdk 1.0.5 → 1.0.7
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 +251 -50
- package/build/main/index.d.ts +8 -7
- package/build/main/index.js +5 -2
- package/build/main/lib/client/index.d.ts +8 -0
- package/build/main/lib/client/index.js +26 -0
- package/build/main/lib/contacts/index.d.ts +20 -4
- package/build/main/lib/contacts/index.js +26 -6
- package/build/main/lib/index.d.ts +5 -2
- package/build/main/lib/index.js +5 -2
- package/build/main/lib/logging/index.d.ts +5 -7
- package/build/main/lib/logging/index.js +4 -1
- package/build/main/lib/notification/index.d.ts +3 -0
- package/build/main/lib/notification/index.js +6 -2
- package/build/main/lib/routing/index.d.ts +14 -4
- package/build/main/lib/routing/index.js +18 -8
- package/build/main/types/bridge.d.ts +4 -2
- package/build/main/types/bridge.js +4 -2
- package/build/main/types/contacts.d.ts +1 -1
- package/build/main/types/index.d.ts +2 -2
- package/build/module/index.d.ts +8 -7
- package/build/module/index.js +9 -8
- package/build/module/lib/client/index.d.ts +8 -0
- package/build/module/lib/client/index.js +19 -0
- package/build/module/lib/contacts/index.d.ts +20 -4
- package/build/module/lib/contacts/index.js +28 -8
- package/build/module/lib/index.d.ts +5 -2
- package/build/module/lib/index.js +8 -5
- package/build/module/lib/logging/index.d.ts +5 -7
- package/build/module/lib/logging/index.js +7 -4
- package/build/module/lib/notification/index.d.ts +3 -0
- package/build/module/lib/notification/index.js +8 -4
- package/build/module/lib/routing/index.d.ts +14 -4
- package/build/module/lib/routing/index.js +20 -10
- package/build/module/types/bridge.d.ts +4 -2
- package/build/module/types/bridge.js +4 -2
- package/build/module/types/contacts.d.ts +1 -1
- package/build/module/types/index.d.ts +2 -2
- package/build/module/types/index.js +2 -2
- package/build/umd/index.js +75 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,95 +1,160 @@
|
|
|
1
|
-
#
|
|
1
|
+
# SmartApp SDK
|
|
2
2
|
|
|
3
3
|
__Библиотека предлагает__:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
__Методы SmartApp Bridge__
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
bridge.sendClientEvent({
|
|
9
|
-
method: string,
|
|
10
|
-
params: object,
|
|
11
|
-
timeout?: number
|
|
12
|
-
})
|
|
13
|
-
```
|
|
7
|
+
- Отправка ивента клиенту:
|
|
14
8
|
|
|
15
|
-
```
|
|
16
|
-
bridge
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
})
|
|
21
|
-
```
|
|
9
|
+
```
|
|
10
|
+
bridge?.sendClientEvent({
|
|
11
|
+
method: string,
|
|
12
|
+
params: object,
|
|
13
|
+
timeout?: number
|
|
14
|
+
})
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- Отправка ивента боту:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
bridge?.sendBotEvent({
|
|
21
|
+
method: string,
|
|
22
|
+
params: object,
|
|
23
|
+
timeout?: number
|
|
24
|
+
})
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- `bridge?.onReceive(callback: Function)` - передать клиенту коллбэк для выполнения при получении входящих ивентов;
|
|
28
|
+
|
|
29
|
+
- `bridge?.enableLogs()` - включить сбор логов SmartApp (выключено по умолчанию);
|
|
30
|
+
|
|
31
|
+
- `bridge?.disableLogs()` - выключить сбор логов SmartApp (выключено по умолчанию);
|
|
32
|
+
|
|
33
|
+
- `bridge?.disableRenameParams()` – выключить переименование полей ивентов SmartApp из `camelCase` в `snake_case` при отправке
|
|
34
|
+
ивента боту или клиенту, и наоборот, при получении (включено по умолчанию);
|
|
22
35
|
|
|
23
|
-
`bridge
|
|
36
|
+
- `bridge?.enableRenameParams()` – включить переименование полей ивентов SmartApp из `camelCase` в `snake_case` при отправке
|
|
37
|
+
ивента боту или клиенту, и наоборот, при получении (включено по умолчанию);
|
|
24
38
|
|
|
25
|
-
|
|
39
|
+
__Реализации клиентских методов SmartApp Bridge__
|
|
26
40
|
|
|
27
|
-
-
|
|
41
|
+
- `ready({ timeout?: number })` - отправить клиенту команду `ready`;
|
|
28
42
|
|
|
29
|
-
`
|
|
43
|
+
- `routingChanged(isRoot: boolean)` - отправить клиенту команду `routing_changed`;
|
|
30
44
|
|
|
31
|
-
`
|
|
45
|
+
- `onBackPressed(handleBackPressed: Function)` - передать клиенту коллбэк для выполнения при получении команды `back_pressed`;
|
|
32
46
|
|
|
33
|
-
`
|
|
47
|
+
- `addContact({ phone: string, name: string })` - скачать `.csv` файл контакта;
|
|
48
|
+
|
|
49
|
+
- `getContact({ phone: string })` – получить контакт по номеру телефона;
|
|
50
|
+
|
|
51
|
+
- `createPersonalChat({ huid: string })` - создать чат с юзером или открыть существующий;
|
|
52
|
+
|
|
53
|
+
- `onNotification(handleNotification: Function)` - передать клиенту коллбэк для выполнения при получении ивента с `type === "notification"`;
|
|
54
|
+
|
|
55
|
+
- ```
|
|
56
|
+
sendMessage({
|
|
57
|
+
userHuid: string | null,
|
|
58
|
+
groupChatId: string | null,
|
|
59
|
+
messageBody: string,
|
|
60
|
+
messageMeta? : Object
|
|
61
|
+
})
|
|
62
|
+
```
|
|
63
|
+
отправить сообщение юзеру, боту или в групповой чат;
|
|
64
|
+
|
|
65
|
+
- ```
|
|
66
|
+
openSmartApp({
|
|
67
|
+
appId: string,
|
|
68
|
+
meta?: any,
|
|
69
|
+
})
|
|
70
|
+
```
|
|
71
|
+
открыть смартапп;
|
|
72
|
+
|
|
73
|
+
- `exitSmartAppToCatalog()` - выйти из смартапп на каталог;
|
|
74
|
+
|
|
75
|
+
- `useQuery()` - получить параметры `url` SmartApp;
|
|
76
|
+
|
|
77
|
+
- `openClientSettings()` - открыть настройки профиля пользователя Express;
|
|
78
|
+
|
|
79
|
+
- `getChats({ filter: string | null })` - запросить чаты;
|
|
80
|
+
|
|
81
|
+
__Метод onReceive__
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
import { EventChannel, eventChannel } from "redux-saga"
|
|
34
85
|
|
|
35
|
-
|
|
86
|
+
function subscribeClientEvents(): EventChannel<any> {
|
|
87
|
+
return eventChannel(emit => {
|
|
88
|
+
bridge?.onReceive((event) => emit(event as any))
|
|
89
|
+
return () => {}
|
|
90
|
+
})
|
|
91
|
+
}
|
|
92
|
+
```
|
|
36
93
|
|
|
37
|
-
|
|
94
|
+
__Метод routingChanged__
|
|
38
95
|
|
|
39
|
-
|
|
96
|
+
```
|
|
97
|
+
function routerChangedSaga(action: any) {
|
|
98
|
+
const isRoot = action.payload.location.pathname === "/"
|
|
40
99
|
|
|
41
|
-
|
|
100
|
+
routingChanged(isRoot)
|
|
101
|
+
}
|
|
102
|
+
```
|
|
42
103
|
|
|
43
|
-
|
|
104
|
+
__Метод onBackPressed__
|
|
44
105
|
|
|
45
|
-
|
|
106
|
+
```
|
|
107
|
+
function handleClientBackPressedEvent() {
|
|
108
|
+
history.goBack()
|
|
109
|
+
}
|
|
46
110
|
|
|
47
|
-
|
|
111
|
+
function* watchClientEvents() {
|
|
112
|
+
yield onBackPressed(handleClientBackPressedEvent)
|
|
113
|
+
}
|
|
114
|
+
```
|
|
48
115
|
|
|
49
116
|
__Редирект в другой смартапп__
|
|
50
117
|
|
|
51
118
|
```
|
|
52
119
|
bridge?.sendClientEvent({
|
|
53
|
-
method:
|
|
120
|
+
method: "open_smart_app",
|
|
54
121
|
params: {
|
|
55
|
-
|
|
56
|
-
|
|
122
|
+
appId: string // уникальный идентификатор SmartApp e.g. "feature-smartapp"
|
|
123
|
+
}
|
|
57
124
|
})
|
|
58
125
|
```
|
|
59
|
-
|
|
126
|
+
|
|
127
|
+
__Редирект в другой смартапп, передача поля `meta`__
|
|
128
|
+
|
|
60
129
|
```
|
|
61
130
|
openSmartApp({
|
|
62
|
-
appId: string // уникальный идентификатор SmartApp
|
|
63
|
-
meta: Object, // "meta" может содержать любую
|
|
131
|
+
appId: string // уникальный идентификатор SmartApp e.g. "feature-smartapp",
|
|
132
|
+
meta: Object, // "meta" может содержать любую информацию
|
|
64
133
|
})
|
|
65
134
|
```
|
|
66
135
|
|
|
67
|
-
__
|
|
136
|
+
__Редирект в другой смартапп и передача информации в поле `meta`__
|
|
137
|
+
|
|
138
|
+
SmartApp 1 отправляет клиенту ивент:
|
|
68
139
|
|
|
69
|
-
SmartApp 1 отправляет ивент экспрессу
|
|
70
140
|
```
|
|
71
141
|
openSmartApp({
|
|
72
142
|
appId: "feature-smartapp",
|
|
73
143
|
meta: {
|
|
74
|
-
|
|
75
|
-
}
|
|
144
|
+
route: "/route-in-feature-smartapp"
|
|
145
|
+
}
|
|
76
146
|
})
|
|
77
147
|
```
|
|
78
148
|
|
|
79
|
-
|
|
149
|
+
Клиент получает ивент, сохраняет значение поля `meta`.
|
|
80
150
|
|
|
81
|
-
|
|
151
|
+
Клиент открывает SmartApp 2 с `appId === "feature-smartapp"`.
|
|
82
152
|
|
|
83
|
-
SmartApp 2 шлет ивент `ready
|
|
153
|
+
SmartApp 2 шлет ивент `ready`:
|
|
84
154
|
|
|
85
|
-
|
|
86
|
-
const response = yield bridge?.sendClientEvent({
|
|
87
|
-
method: 'ready',
|
|
88
|
-
params: {},
|
|
89
|
-
})
|
|
90
|
-
```
|
|
155
|
+
`const response = yield ready()`
|
|
91
156
|
|
|
92
|
-
|
|
157
|
+
В ответе на `ready` SmartApp 2 проверяет наличие поля `openSmartAppMeta`:
|
|
93
158
|
|
|
94
159
|
```
|
|
95
160
|
if (response?.payload?.openSmartAppMeta) {
|
|
@@ -97,4 +162,140 @@ if (response?.payload?.openSmartAppMeta) {
|
|
|
97
162
|
history.push(`${openSmartAppMeta?.route}`)
|
|
98
163
|
}
|
|
99
164
|
```
|
|
100
|
-
|
|
165
|
+
|
|
166
|
+
SmartApp 2 выполняет необходимые действия с `meta`, которую SmartApp 1 отправляет клиенту, а клиент возвращает в ответе на
|
|
167
|
+
ивент `ready` SmartApp 2.
|
|
168
|
+
|
|
169
|
+
__Получение параметров `url` SmartApp__
|
|
170
|
+
|
|
171
|
+
`const urlParams = useQuery()`
|
|
172
|
+
|
|
173
|
+
Метод возвращает объект типа:
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
{
|
|
177
|
+
platform: "web" | "ios" | "android",
|
|
178
|
+
theme: "default" | "dark"
|
|
179
|
+
}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
__Открытие настроек профиля__
|
|
183
|
+
|
|
184
|
+
`openClientSettings()`
|
|
185
|
+
|
|
186
|
+
Метод отправляет клиенту запрос типа:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
{
|
|
190
|
+
"ref": <string>,
|
|
191
|
+
"handler": "express",
|
|
192
|
+
"type": "open_client_settings",
|
|
193
|
+
"payload": {},
|
|
194
|
+
"files": []
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Ответа от клиента не приходит. Происходит открытие Настроек профиля пользователя Express.
|
|
199
|
+
|
|
200
|
+
__Запрос чатов__
|
|
201
|
+
|
|
202
|
+
`const response = yield getChats({ filter }: { filter: string | null })`
|
|
203
|
+
|
|
204
|
+
Метод отправляет клиенту запрос типа:
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
{
|
|
208
|
+
"ref": <string>,
|
|
209
|
+
"handler": "express",
|
|
210
|
+
"type": "get_chats",
|
|
211
|
+
"payload": {
|
|
212
|
+
"filter": <string|null>,
|
|
213
|
+
},
|
|
214
|
+
"files": []
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
И получает ответ типа:
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
{
|
|
222
|
+
"ref": <string>,
|
|
223
|
+
"status": "success",
|
|
224
|
+
"data": {
|
|
225
|
+
"chats": [
|
|
226
|
+
{
|
|
227
|
+
"group_chat_id": <uuid>,
|
|
228
|
+
"name": <string>,
|
|
229
|
+
"avatar": <string|null>,
|
|
230
|
+
"members_type": "cts|rts|hybrid",
|
|
231
|
+
"is_trusted": <bool>,
|
|
232
|
+
"chat_type": "chat|group_chat|botx|channel",
|
|
233
|
+
},
|
|
234
|
+
],
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
__Кеширование статики с помощью WorkboxWebpackPlugin__
|
|
240
|
+
|
|
241
|
+
Если приложение было создано с помощью `create-react-app`, добавляем строчку в `package.json`:
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
"scripts": {
|
|
245
|
+
"eject": "react-scripts eject",
|
|
246
|
+
}
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
В зависимости приложения добавляем `smartapp-sdk` версии `1.0.7` или выше:
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
"dependencies": {
|
|
253
|
+
"@expressms/smartapp-sdk": "^1.0.7",
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Устанавливаем пакет и выполняем команду `npm run eject`.
|
|
258
|
+
|
|
259
|
+
Далее, делаем следующие изменения в файлах:
|
|
260
|
+
|
|
261
|
+
Добавляем код в `index.tsx`:
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
if (module.hot) module.hot.accept()
|
|
265
|
+
|
|
266
|
+
if ("serviceWorker" in navigator) {
|
|
267
|
+
window.addEventListener("load", () => {
|
|
268
|
+
navigator.serviceWorker.register("./sw.js")
|
|
269
|
+
})
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Добавляем код в файл `webpack.config.js`:
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
plugins: [
|
|
277
|
+
new WorkboxWebpackPlugin.InjectManifest({
|
|
278
|
+
swSrc: "@expressms/smartapp-sdk/workers/workbox.js", // path to worker
|
|
279
|
+
swDest: "sw.js"
|
|
280
|
+
}),
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Удаляем в файле `webpack.config.js` следующий код:
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
// Generate a service worker script that will precache, and keep up to date,
|
|
287
|
+
// the HTML & assets that are part of the webpack build.
|
|
288
|
+
isEnvProduction &&
|
|
289
|
+
fs.existsSync(swSrc) &&
|
|
290
|
+
new WorkboxWebpackPlugin.InjectManifest({
|
|
291
|
+
swSrc,
|
|
292
|
+
dontCacheBustURLsMatching: /\.[0-9a-f]{8}\./,
|
|
293
|
+
exclude: [/\.map$/, /asset-manifest\.json$/, /LICENSE/],
|
|
294
|
+
// Bump up the default maximum size (2mb) that"s precached,
|
|
295
|
+
// to make lazy-loading failure scenarios less likely.
|
|
296
|
+
// See <https://github.com/cra-template/pwa/issues/13#issuecomment-722667270>
|
|
297
|
+
maximumFileSizeToCacheInBytes: 5 * 1024 * 1024,
|
|
298
|
+
}),
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
Запускаем приложение, проверяем регистрацию сервис-воркера.
|
package/build/main/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import Bridge from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
1
|
+
import Bridge from "@expressms/smartapp-bridge";
|
|
2
|
+
import { getChats, openClientSettings } from "./lib/client";
|
|
3
|
+
import { addContact, createPersonalChat, getContact, sendMessage } from "./lib/contacts";
|
|
4
|
+
import { useQuery } from "./lib/helpers/helpers";
|
|
5
|
+
import { ready } from "./lib/logging";
|
|
6
|
+
import { onNotification } from "./lib/notification";
|
|
7
|
+
import { exitSmartAppToCatalog, onBackPressed, openSmartApp, routingChanged } from "./lib/routing";
|
|
8
|
+
export { Bridge, ready, routingChanged, onBackPressed, addContact, getContact, createPersonalChat, onNotification, sendMessage, openSmartApp, exitSmartAppToCatalog, useQuery, openClientSettings, getChats, };
|
package/build/main/index.js
CHANGED
|
@@ -3,9 +3,12 @@ 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.useQuery = exports.exitSmartAppToCatalog = exports.openSmartApp = exports.sendMessage = exports.onNotification = exports.createPersonalChat = exports.getContact = exports.addContact = exports.onBackPressed = exports.routingChanged = exports.ready = exports.Bridge = void 0;
|
|
6
|
+
exports.getChats = exports.openClientSettings = exports.useQuery = exports.exitSmartAppToCatalog = 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
|
+
const client_1 = require("./lib/client");
|
|
10
|
+
Object.defineProperty(exports, "getChats", { enumerable: true, get: function () { return client_1.getChats; } });
|
|
11
|
+
Object.defineProperty(exports, "openClientSettings", { enumerable: true, get: function () { return client_1.openClientSettings; } });
|
|
9
12
|
const contacts_1 = require("./lib/contacts");
|
|
10
13
|
Object.defineProperty(exports, "addContact", { enumerable: true, get: function () { return contacts_1.addContact; } });
|
|
11
14
|
Object.defineProperty(exports, "createPersonalChat", { enumerable: true, get: function () { return contacts_1.createPersonalChat; } });
|
|
@@ -22,4 +25,4 @@ Object.defineProperty(exports, "exitSmartAppToCatalog", { enumerable: true, get:
|
|
|
22
25
|
Object.defineProperty(exports, "onBackPressed", { enumerable: true, get: function () { return routing_1.onBackPressed; } });
|
|
23
26
|
Object.defineProperty(exports, "openSmartApp", { enumerable: true, get: function () { return routing_1.openSmartApp; } });
|
|
24
27
|
Object.defineProperty(exports, "routingChanged", { enumerable: true, get: function () { return routing_1.routingChanged; } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUZBQStDO0FBUzdDLGlCQVRLLHlCQUFNLENBU0w7QUFSUix5Q0FBMkQ7QUFxQnpELHlGQXJCTyxpQkFBUSxPQXFCUDtBQURSLG1HQXBCaUIsMkJBQWtCLE9Bb0JqQjtBQW5CcEIsNkNBQXdGO0FBV3RGLDJGQVhPLHFCQUFVLE9BV1A7QUFFVixtR0FibUIsNkJBQWtCLE9BYW5CO0FBRGxCLDJGQVp1QyxxQkFBVSxPQVl2QztBQUdWLDRGQWZtRCxzQkFBVyxPQWVuRDtBQWRiLG1EQUFnRDtBQWlCOUMseUZBakJPLGtCQUFRLE9BaUJQO0FBaEJWLDJDQUFxQztBQU1uQyxzRkFOTyxlQUFLLE9BTVA7QUFMUCxxREFBbUQ7QUFXakQsK0ZBWE8sNkJBQWMsT0FXUDtBQVZoQiwyQ0FBa0c7QUFhaEcsc0dBYk8sK0JBQXFCLE9BYVA7QUFQckIsOEZBTjhCLHVCQUFhLE9BTTlCO0FBTWIsNkZBWjZDLHNCQUFZLE9BWTdDO0FBUFosK0ZBTDJELHdCQUFjLE9BSzNEIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare const openClientSettings: () => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
2
|
+
/**
|
|
3
|
+
* @param filter
|
|
4
|
+
*/
|
|
5
|
+
declare const getChats: ({ filter }: {
|
|
6
|
+
filter: string | null;
|
|
7
|
+
}) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
8
|
+
export { openClientSettings, getChats, };
|
|
@@ -0,0 +1,26 @@
|
|
|
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.getChats = exports.openClientSettings = void 0;
|
|
7
|
+
const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
|
|
8
|
+
const types_1 = require("../../types");
|
|
9
|
+
const openClientSettings = () => {
|
|
10
|
+
return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent({
|
|
11
|
+
method: types_1.METHODS.OPEN_CLIENT_SETTINGS,
|
|
12
|
+
params: {},
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
exports.openClientSettings = openClientSettings;
|
|
16
|
+
/**
|
|
17
|
+
* @param filter
|
|
18
|
+
*/
|
|
19
|
+
const getChats = ({ filter = null }) => {
|
|
20
|
+
return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent({
|
|
21
|
+
method: types_1.METHODS.GET_CHATS,
|
|
22
|
+
params: { filter },
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
exports.getChats = getChats;
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NsaWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpRkFBK0M7QUFDL0MsdUNBQXFDO0FBRXJDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFO0lBQzlCLE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLG9CQUFvQjtRQUNwQyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQWFDLGdEQUFrQjtBQVhwQjs7R0FFRztBQUNILE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUE2QixFQUFFLEVBQUU7SUFDaEUsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsU0FBUztRQUN6QixNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUU7S0FDbkIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBSUMsNEJBQVEifQ==
|
|
@@ -1,13 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SendMessageMethodParams } from "../../types/contacts";
|
|
2
|
+
/**
|
|
3
|
+
* @param phone
|
|
4
|
+
* @param name
|
|
5
|
+
*/
|
|
2
6
|
declare const addContact: ({ phone, name }: {
|
|
3
7
|
phone: string;
|
|
4
8
|
name: string;
|
|
5
|
-
}) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload | undefined
|
|
9
|
+
}) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* @param phone
|
|
12
|
+
*/
|
|
6
13
|
declare const getContact: ({ phone }: {
|
|
7
14
|
phone: string;
|
|
8
15
|
}) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* @param huid
|
|
18
|
+
*/
|
|
9
19
|
declare const createPersonalChat: ({ huid }: {
|
|
10
20
|
huid: string;
|
|
11
|
-
}) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload | undefined
|
|
12
|
-
|
|
21
|
+
}) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* @param userHuid
|
|
24
|
+
* @param groupChatId
|
|
25
|
+
* @param messageBody
|
|
26
|
+
* @param messageMeta
|
|
27
|
+
*/
|
|
28
|
+
declare const sendMessage: ({ userHuid, groupChatId, messageBody, messageMeta, }: SendMessageMethodParams) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
13
29
|
export { addContact, getContact, createPersonalChat, sendMessage, };
|
|
@@ -6,7 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.sendMessage = exports.createPersonalChat = exports.getContact = exports.addContact = void 0;
|
|
7
7
|
const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
|
|
8
8
|
const types_1 = require("../../types");
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* @param phone
|
|
11
|
+
* @param name
|
|
12
|
+
*/
|
|
13
|
+
const addContact = ({ phone, name }) => {
|
|
10
14
|
return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent({
|
|
11
15
|
method: types_1.METHODS.ADD_CONTACT,
|
|
12
16
|
params: {
|
|
@@ -16,6 +20,9 @@ const addContact = async ({ phone, name }) => {
|
|
|
16
20
|
});
|
|
17
21
|
};
|
|
18
22
|
exports.addContact = addContact;
|
|
23
|
+
/**
|
|
24
|
+
* @param phone
|
|
25
|
+
*/
|
|
19
26
|
const getContact = async ({ phone }) => {
|
|
20
27
|
return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent({
|
|
21
28
|
method: types_1.METHODS.GET_CONTACT,
|
|
@@ -23,21 +30,34 @@ const getContact = async ({ phone }) => {
|
|
|
23
30
|
});
|
|
24
31
|
};
|
|
25
32
|
exports.getContact = getContact;
|
|
26
|
-
|
|
33
|
+
/**
|
|
34
|
+
* @param huid
|
|
35
|
+
*/
|
|
36
|
+
const createPersonalChat = ({ huid }) => {
|
|
27
37
|
return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent({
|
|
28
38
|
method: types_1.METHODS.CREATE_PERSONAL_CHAT,
|
|
29
39
|
params: { huid },
|
|
30
40
|
});
|
|
31
41
|
};
|
|
32
42
|
exports.createPersonalChat = createPersonalChat;
|
|
33
|
-
|
|
43
|
+
/**
|
|
44
|
+
* @param userHuid
|
|
45
|
+
* @param groupChatId
|
|
46
|
+
* @param messageBody
|
|
47
|
+
* @param messageMeta
|
|
48
|
+
*/
|
|
49
|
+
const sendMessage = ({ userHuid = null, groupChatId = null, messageBody = "", messageMeta = {}, }) => {
|
|
34
50
|
return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent({
|
|
35
51
|
method: types_1.METHODS.SEND_MESSAGE,
|
|
36
|
-
params: {
|
|
52
|
+
params: {
|
|
53
|
+
userHuid,
|
|
54
|
+
groupChatId,
|
|
55
|
+
message: {
|
|
37
56
|
body: messageBody,
|
|
38
57
|
meta: messageMeta,
|
|
39
|
-
}
|
|
58
|
+
},
|
|
59
|
+
},
|
|
40
60
|
});
|
|
41
61
|
};
|
|
42
62
|
exports.sendMessage = sendMessage;
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRhY3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyx1Q0FBcUM7QUFHckM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FDakIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFtQyxFQUNoRCxFQUFFO0lBQ0YsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsV0FBVztRQUMzQixNQUFNLEVBQUU7WUFDTixLQUFLO1lBQ0wsSUFBSTtTQUNMO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBZ0RDLGdDQUFVO0FBOUNaOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFxQixFQUFFLEVBQUU7SUFDeEQsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsV0FBVztRQUMzQixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUU7S0FDbEIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBdUNDLGdDQUFVO0FBckNaOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFvQixFQUFFLEVBQUU7SUFDeEQsT0FBTyx5QkFBTSxhQUFOLHlCQUFNLHVCQUFOLHlCQUFNLENBQUUsZUFBZSxDQUFDO1FBQzdCLE1BQU0sRUFBRSxlQUFPLENBQUMsb0JBQW9CO1FBQ3BDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRTtLQUNqQixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUE4QkMsZ0RBQWtCO0FBNUJwQjs7Ozs7R0FLRztBQUNILE1BQU0sV0FBVyxHQUFHLENBQUMsRUFDRSxRQUFRLEdBQUcsSUFBSSxFQUNmLFdBQVcsR0FBRyxJQUFJLEVBQ2xCLFdBQVcsR0FBRyxFQUFFLEVBQ2hCLFdBQVcsR0FBRyxFQUFFLEdBQ1EsRUFBRSxFQUFFO0lBQ2pELE9BQU8seUJBQU0sYUFBTix5QkFBTSx1QkFBTix5QkFBTSxDQUFFLGVBQWUsQ0FBQztRQUM3QixNQUFNLEVBQUUsZUFBTyxDQUFDLFlBQVk7UUFDNUIsTUFBTSxFQUFFO1lBQ04sUUFBUTtZQUNSLFdBQVc7WUFDWCxPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxXQUFXO2FBQ2xCO1NBQ0Y7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFNQyxrQ0FBVyJ9
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @param timeout
|
|
3
|
+
*/
|
|
4
|
+
declare const bridgeSendReady: (timeout?: number) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
5
|
+
export { bridgeSendReady, };
|
package/build/main/lib/index.js
CHANGED
|
@@ -6,7 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.bridgeSendReady = void 0;
|
|
7
7
|
const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
|
|
8
8
|
const types_1 = require("../types");
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* @param timeout
|
|
11
|
+
*/
|
|
12
|
+
const bridgeSendReady = (timeout) => {
|
|
10
13
|
const event = {
|
|
11
14
|
method: types_1.METHODS.READY,
|
|
12
15
|
params: {},
|
|
@@ -14,4 +17,4 @@ const bridgeSendReady = async (timeout) => {
|
|
|
14
17
|
return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent(timeout ? Object.assign(Object.assign({}, event), { timeout }) : event);
|
|
15
18
|
};
|
|
16
19
|
exports.bridgeSendReady = bridgeSendReady;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGlGQUErQztBQUMvQyxvQ0FBa0M7QUFFbEM7O0dBRUc7QUFDSCxNQUFNLGVBQWUsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtJQUMzQyxNQUFNLEtBQUssR0FBRztRQUNaLE1BQU0sRUFBRSxlQUFPLENBQUMsS0FBSztRQUNyQixNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUE7SUFDRCxPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsaUNBQU0sS0FBSyxLQUFFLE9BQU8sSUFBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDekUsQ0FBQyxDQUFBO0FBR0MsMENBQWUifQ==
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
declare const ready: (timeout?: number) => Promise<BridgeResponse>;
|
|
7
|
-
export { ready };
|
|
1
|
+
/**
|
|
2
|
+
* @param timeout
|
|
3
|
+
*/
|
|
4
|
+
declare const ready: (timeout?: number) => Promise<any>;
|
|
5
|
+
export { ready, };
|
|
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ready = void 0;
|
|
7
7
|
const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
|
|
8
8
|
const index_1 = require("../index");
|
|
9
|
+
/**
|
|
10
|
+
* @param timeout
|
|
11
|
+
*/
|
|
9
12
|
const ready = async (timeout) => {
|
|
10
13
|
var _a, _b;
|
|
11
14
|
const response = await (0, index_1.bridgeSendReady)(timeout);
|
|
@@ -16,4 +19,4 @@ const ready = async (timeout) => {
|
|
|
16
19
|
return response;
|
|
17
20
|
};
|
|
18
21
|
exports.ready = ready;
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2xvZ2dpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUZBQStDO0FBQy9DLG9DQUEwQztBQUUxQzs7R0FFRztBQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxPQUFnQixFQUFFLEVBQUU7O0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSx1QkFBZSxFQUFDLE9BQU8sQ0FBUSxDQUFBO0lBQ3RELE1BQU0sTUFBTSxHQUFHLHlCQUFhLENBQUE7SUFDNUIsTUFBTSxhQUFhLEdBQUcsTUFBQSxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTywwQ0FBRSxXQUFXLENBQUE7SUFFcEQsSUFBSSxhQUFhO1FBQUUsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsVUFBVSxzREFBSSxDQUFBO0lBRXpDLE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUMsQ0FBQTtBQUdDLHNCQUFLIn0=
|
|
@@ -6,15 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.onNotification = void 0;
|
|
7
7
|
const smartapp_bridge_1 = __importDefault(require("@expressms/smartapp-bridge"));
|
|
8
8
|
const types_1 = require("../../types");
|
|
9
|
+
/**
|
|
10
|
+
* @param handleNotification
|
|
11
|
+
*/
|
|
9
12
|
const onNotification = async (handleNotification) => {
|
|
10
13
|
const response = await (smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.sendClientEvent({
|
|
11
14
|
method: types_1.METHODS.NOTIFICATION,
|
|
12
15
|
params: {},
|
|
13
16
|
}));
|
|
14
17
|
return smartapp_bridge_1.default === null || smartapp_bridge_1.default === void 0 ? void 0 : smartapp_bridge_1.default.onReceive((event) => {
|
|
15
|
-
if (event.type === types_1.METHODS.NOTIFICATION)
|
|
18
|
+
if ((event === null || event === void 0 ? void 0 : event.type) === types_1.METHODS.NOTIFICATION) {
|
|
16
19
|
handleNotification(response);
|
|
20
|
+
}
|
|
17
21
|
});
|
|
18
22
|
};
|
|
19
23
|
exports.onNotification = onNotification;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL25vdGlmaWNhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxpRkFBK0M7QUFDL0MsdUNBQXFDO0FBRXJDOztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsS0FBSyxFQUFFLGtCQUE0QixFQUFFLEVBQUU7SUFDNUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFBLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxlQUFlLENBQUM7UUFDN0MsTUFBTSxFQUFFLGVBQU8sQ0FBQyxZQUFZO1FBQzVCLE1BQU0sRUFBRSxFQUFFO0tBQ1gsQ0FBQyxDQUFBLENBQUE7SUFFRixPQUFPLHlCQUFNLGFBQU4seUJBQU0sdUJBQU4seUJBQU0sQ0FBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNqQyxJQUFJLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLElBQUksTUFBSyxlQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3hDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQzdCO0lBQ0gsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFHQyx3Q0FBYyJ9
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
declare const
|
|
1
|
+
/**
|
|
2
|
+
* @param isRoot
|
|
3
|
+
*/
|
|
4
|
+
declare const routingChanged: (isRoot: boolean) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
5
|
+
/**
|
|
6
|
+
* @param handleBackPressed
|
|
7
|
+
*/
|
|
8
|
+
declare const onBackPressed: (handleBackPressed: Function) => void | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* @param appId
|
|
11
|
+
* @param meta
|
|
12
|
+
*/
|
|
13
|
+
declare const openSmartApp: (appId: string, meta?: any) => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
14
|
+
declare const exitSmartAppToCatalog: () => Promise<import("@expressms/smartapp-bridge/build/main/types/eventEmitter").EmitterEventPayload> | undefined;
|
|
5
15
|
export { routingChanged, onBackPressed, openSmartApp, exitSmartAppToCatalog, };
|