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