@ion299/sdk-react-native 0.1.0-beta.6 → 0.1.0-beta.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/CHANGELOG.md +11 -0
- package/README.md +69 -11
- package/lib/commonjs/ChatSDK.js +16 -3
- package/lib/commonjs/ChatSDK.js.map +1 -1
- package/lib/commonjs/api.js +29 -0
- package/lib/commonjs/api.js.map +1 -1
- package/lib/module/ChatSDK.js +16 -3
- package/lib/module/ChatSDK.js.map +1 -1
- package/lib/module/api.js +29 -0
- package/lib/module/api.js.map +1 -1
- package/lib/typescript/commonjs/ChatSDK.d.ts +3 -0
- package/lib/typescript/commonjs/ChatSDK.d.ts.map +1 -1
- package/lib/typescript/commonjs/api.d.ts +3 -0
- package/lib/typescript/commonjs/api.d.ts.map +1 -1
- package/lib/typescript/module/ChatSDK.d.ts +3 -0
- package/lib/typescript/module/ChatSDK.d.ts.map +1 -1
- package/lib/typescript/module/api.d.ts +3 -0
- package/lib/typescript/module/api.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ChatSDK.ts +18 -3
- package/src/api.ts +37 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,17 @@
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.0-beta.7]
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- Регистрация push-токена устройства для фоновых уведомлений:
|
|
13
|
+
`ChatSDK.registerPushToken(deviceToken, platform?)` и
|
|
14
|
+
`ChatSDK.unregisterPushToken(deviceToken?)`. Токен снимается автоматически
|
|
15
|
+
в `logout()`. WebSocket в фоне ОС гасит — события о новых сообщениях
|
|
16
|
+
оператора при свёрнутом/закрытом приложении доставляются через FCM/APNs:
|
|
17
|
+
ЧП шлёт push на зарегистрированные токены контакта (свой backend не нужен).
|
|
18
|
+
SDK провайдер-агностик: хост-приложение приносит нативный токен под свой стек.
|
|
19
|
+
|
|
9
20
|
## [0.1.0-beta.6]
|
|
10
21
|
|
|
11
22
|
### Added
|
package/README.md
CHANGED
|
@@ -215,11 +215,56 @@ unsubMessagesUpdated(); unsubConnected(); unsubError()
|
|
|
215
215
|
|
|
216
216
|
## Push-уведомления
|
|
217
217
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
доставить
|
|
218
|
+
В фоне/закрытом приложении WebSocket гасит ОС — события туда не приходят
|
|
219
|
+
(это ограничение iOS и Android, см. «Поведение в фоне»). Единственный
|
|
220
|
+
кроссплатформенный способ доставить уведомление о сообщении оператора —
|
|
221
|
+
**push (FCM / APNs)**. Есть два варианта интеграции.
|
|
221
222
|
|
|
222
|
-
###
|
|
223
|
+
### Вариант A — `registerPushToken` (рекомендуется)
|
|
224
|
+
|
|
225
|
+
Хост-приложение получает **нативный** push-токен своим способом (под свой стек)
|
|
226
|
+
и отдаёт его SDK. ЧП сам шлёт FCM/APNs на зарегистрированные токены контакта —
|
|
227
|
+
свой backend не нужен. SDK **не зависит** от конкретного push-провайдера.
|
|
228
|
+
|
|
229
|
+
```ts
|
|
230
|
+
await ChatSDK.login(/* ... */)
|
|
231
|
+
await ChatSDK.registerPushToken(deviceToken, platform) // platform: 'fcm' | 'apns'
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
`platform`:
|
|
235
|
+
- `'fcm'` — FCM registration token (Android всегда; iOS — если используете Firebase и на iOS);
|
|
236
|
+
- `'apns'` — «сырой» APNs device-token (iOS без Firebase).
|
|
237
|
+
|
|
238
|
+
Токен снимается автоматически в `logout()` (или вручную `unregisterPushToken()`).
|
|
239
|
+
|
|
240
|
+
**Где взять токен — примеры под разные стеки:**
|
|
241
|
+
|
|
242
|
+
```ts
|
|
243
|
+
// Expo — getDevicePushTokenAsync() отдаёт НАТИВНЫЙ FCM/APNs токен
|
|
244
|
+
import * as Notifications from 'expo-notifications'
|
|
245
|
+
import { Platform } from 'react-native'
|
|
246
|
+
|
|
247
|
+
await Notifications.requestPermissionsAsync()
|
|
248
|
+
const { data } = await Notifications.getDevicePushTokenAsync()
|
|
249
|
+
await ChatSDK.registerPushToken(String(data), Platform.OS === 'ios' ? 'apns' : 'fcm')
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
```ts
|
|
253
|
+
// Голый React Native — @react-native-firebase/messaging
|
|
254
|
+
import messaging from '@react-native-firebase/messaging'
|
|
255
|
+
|
|
256
|
+
await messaging().requestPermission()
|
|
257
|
+
const fcmToken = await messaging().getToken()
|
|
258
|
+
await ChatSDK.registerPushToken(fcmToken, 'fcm')
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
> Нативные SDK (iOS/Android без RN) регистрируют токен тем же эндпоинтом —
|
|
262
|
+
> `registerPushToken` лишь обёртка над `POST /api/mobile/{token}/contact/{contactId}/push-token`.
|
|
263
|
+
|
|
264
|
+
### Вариант B — webhook на свой backend
|
|
265
|
+
|
|
266
|
+
Если вы хотите управлять доставкой сами, ЧП может слать webhook
|
|
267
|
+
`message.created` на ваш backend, а push вы шлёте уже своей инфраструктурой.
|
|
223
268
|
|
|
224
269
|
```json
|
|
225
270
|
{
|
|
@@ -238,12 +283,15 @@ backend при новом сообщении от оператора. Ваш bac
|
|
|
238
283
|
|
|
239
284
|
Подпись: заголовок `X-Chat-Platform-Signature: sha256=HMAC_SHA256(body, webhook_secret)`.
|
|
240
285
|
|
|
241
|
-
###
|
|
286
|
+
### Приём push и открытие чата
|
|
287
|
+
|
|
288
|
+
Сам push принимает **хост-приложение** (SDK не перехватывает уведомления).
|
|
289
|
+
Распознать «наш» push и открыть чат на тап:
|
|
242
290
|
|
|
243
291
|
```tsx
|
|
244
292
|
import { ChatSDK } from '@chat-platform/sdk-react-native'
|
|
245
293
|
|
|
246
|
-
// В обработчике нотификации
|
|
294
|
+
// В обработчике тапа по нотификации
|
|
247
295
|
ChatSDK.handleNotification({
|
|
248
296
|
token: data.cp_token,
|
|
249
297
|
contactId: data.cp_contact_id,
|
|
@@ -251,7 +299,7 @@ ChatSDK.handleNotification({
|
|
|
251
299
|
navigation.navigate('Chat')
|
|
252
300
|
```
|
|
253
301
|
|
|
254
|
-
|
|
302
|
+
В data-payload push'а ЧП кладёт ключи `cp_token` и `cp_contact_id`.
|
|
255
303
|
|
|
256
304
|
---
|
|
257
305
|
|
|
@@ -279,7 +327,17 @@ navigation.navigate('Chat')
|
|
|
279
327
|
|
|
280
328
|
### `ChatSDK.logout()`
|
|
281
329
|
|
|
282
|
-
Завершает сессию, отключает realtime
|
|
330
|
+
Завершает сессию, отключает realtime, снимает зарегистрированный push-токен.
|
|
331
|
+
|
|
332
|
+
### `ChatSDK.registerPushToken(deviceToken, platform?)`
|
|
333
|
+
|
|
334
|
+
Регистрирует push-токен устройства для фоновых уведомлений. Требует `login()`.
|
|
335
|
+
`platform`: `'fcm'` (по умолчанию) или `'apns'`. Токен запоминается и снимается
|
|
336
|
+
в `logout()`.
|
|
337
|
+
|
|
338
|
+
### `ChatSDK.unregisterPushToken(deviceToken?)`
|
|
339
|
+
|
|
340
|
+
Снимает регистрацию push-токена (по умолчанию — последнего зарегистрированного).
|
|
283
341
|
|
|
284
342
|
### `ChatSDK.handleNotification(payload)`
|
|
285
343
|
|
|
@@ -304,9 +362,9 @@ navigation.navigate('Chat')
|
|
|
304
362
|
- [ ] `ChatSDK.init(...)` в точке входа приложения
|
|
305
363
|
- [ ] `ChatSDK.login(...)` после авторизации пользователя
|
|
306
364
|
- [ ] `<ChatScreen />` в навигаторе
|
|
307
|
-
- [ ]
|
|
308
|
-
|
|
309
|
-
- [ ] `ChatSDK.handleNotification(...)` в обработчике push
|
|
365
|
+
- [ ] Push: получить нативный токен и вызвать `ChatSDK.registerPushToken(token, platform)` после `login()`
|
|
366
|
+
(либо webhook на свой backend — вариант B)
|
|
367
|
+
- [ ] `ChatSDK.handleNotification(...)` в обработчике тапа по push (`cp_token`, `cp_contact_id` в data payload)
|
|
310
368
|
|
|
311
369
|
---
|
|
312
370
|
|
package/lib/commonjs/ChatSDK.js
CHANGED
|
@@ -15,6 +15,7 @@ class ChatSDKSingleton {
|
|
|
15
15
|
lastError = null;
|
|
16
16
|
currentUser = null;
|
|
17
17
|
listeners = new Map();
|
|
18
|
+
pushDeviceToken = null;
|
|
18
19
|
|
|
19
20
|
// ─── Lifecycle ────────────────────────────────────────────────────────────
|
|
20
21
|
|
|
@@ -75,6 +76,7 @@ class ChatSDKSingleton {
|
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
async logout() {
|
|
79
|
+
await this.unregisterPushToken().catch(() => {});
|
|
78
80
|
this.currentUser = null;
|
|
79
81
|
this.session?.destroy();
|
|
80
82
|
this.session = null;
|
|
@@ -84,11 +86,22 @@ class ChatSDKSingleton {
|
|
|
84
86
|
|
|
85
87
|
// ─── Push ─────────────────────────────────────────────────────────────────
|
|
86
88
|
|
|
89
|
+
async registerPushToken(deviceToken, platform = 'fcm') {
|
|
90
|
+
this.assertInitialized();
|
|
91
|
+
await this.api.registerPushToken(deviceToken, platform);
|
|
92
|
+
this.pushDeviceToken = deviceToken;
|
|
93
|
+
}
|
|
94
|
+
async unregisterPushToken(deviceToken) {
|
|
95
|
+
const target = deviceToken ?? this.pushDeviceToken;
|
|
96
|
+
if (!target || !this.api) return;
|
|
97
|
+
try {
|
|
98
|
+
await this.api.deletePushToken(target);
|
|
99
|
+
} finally {
|
|
100
|
+
if (target === this.pushDeviceToken) this.pushDeviceToken = null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
87
103
|
handleNotification(_payload) {
|
|
88
|
-
// Навигация обрабатывается в host app через onNotification callback.
|
|
89
|
-
// SDK только проверяет, что payload относится к нашему токену.
|
|
90
104
|
if (_payload.token !== this.config?.token) return;
|
|
91
|
-
// В будущем: открыть ChatScreen если приложение foreground
|
|
92
105
|
}
|
|
93
106
|
|
|
94
107
|
// ─── Getters ──────────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_api","require","_session","ChatSDKSingleton","config","api","sdkConfig","session","state","lastError","currentUser","listeners","Map","init","raw","console","warn","resolveConfig","MobileApiClient","baseUrl","token","setState","getConfig","then","cfg","emit","catch","err","msg","Error","message","String","getLastError","login","user","device","assertInitialized","result","createSession","userId","name","surname","email","phone","setSession","sessionToken","contactId","setUserProfile","startSession","logout","destroy","clearSession","handleNotification","_payload","getApi","getSDKConfig","getBaseUrl","getState","isAuthenticated","getUser","getMessages","getOperator","isRealtimeConnected","isConnected","refreshMessages","Promise","resolve","on","event","handler","has","set","Set","handlers","get","add","delete","ChatSDKSession","apiBaseUrl","emitMessagesUpdated","messages","operator","emitConnectedChange","connected","emitOperatorChanged","payload","emitNewMessage","start","next","data","forEach","h","decoded","JSON","parse","atob","ChatSDK","exports"],"sourceRoot":"..\\..\\src","sources":["ChatSDK.ts"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AA2BA,MAAME,gBAAgB,CAAC;EACbC,MAAM,GAAyB,IAAI;EACnCC,GAAG,GAA2B,IAAI;EAClCC,SAAS,GAAwB,IAAI;EACrCC,OAAO,GAA0B,IAAI;EACrCC,KAAK,GAAa,MAAM;EACxBC,SAAS,GAAkB,IAAI;EAC/BC,WAAW,GAAuB,IAAI;EACtCC,SAAS,GAAsC,IAAIC,GAAG,CAAC,CAAC;;
|
|
1
|
+
{"version":3,"names":["_api","require","_session","ChatSDKSingleton","config","api","sdkConfig","session","state","lastError","currentUser","listeners","Map","pushDeviceToken","init","raw","console","warn","resolveConfig","MobileApiClient","baseUrl","token","setState","getConfig","then","cfg","emit","catch","err","msg","Error","message","String","getLastError","login","user","device","assertInitialized","result","createSession","userId","name","surname","email","phone","setSession","sessionToken","contactId","setUserProfile","startSession","logout","unregisterPushToken","destroy","clearSession","registerPushToken","deviceToken","platform","target","deletePushToken","handleNotification","_payload","getApi","getSDKConfig","getBaseUrl","getState","isAuthenticated","getUser","getMessages","getOperator","isRealtimeConnected","isConnected","refreshMessages","Promise","resolve","on","event","handler","has","set","Set","handlers","get","add","delete","ChatSDKSession","apiBaseUrl","emitMessagesUpdated","messages","operator","emitConnectedChange","connected","emitOperatorChanged","payload","emitNewMessage","start","next","data","forEach","h","decoded","JSON","parse","atob","ChatSDK","exports"],"sourceRoot":"..\\..\\src","sources":["ChatSDK.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/api.js
CHANGED
|
@@ -117,6 +117,19 @@ class MobileApiClient {
|
|
|
117
117
|
callback_data: callbackData
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
|
+
async registerPushToken(deviceToken, platform) {
|
|
121
|
+
this.assertSession();
|
|
122
|
+
await this.post(`/api/mobile/${this.token}/contact/${this.contactId}/push-token`, {
|
|
123
|
+
device_token: deviceToken,
|
|
124
|
+
platform
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
async deletePushToken(deviceToken) {
|
|
128
|
+
this.assertSession();
|
|
129
|
+
await this.del(`/api/mobile/${this.token}/contact/${this.contactId}/push-token`, {
|
|
130
|
+
device_token: deviceToken
|
|
131
|
+
});
|
|
132
|
+
}
|
|
120
133
|
getDownloadUrl(contactId) {
|
|
121
134
|
return `${this.baseUrl}/api/mobile/${this.token}/contact/${contactId}/download`;
|
|
122
135
|
}
|
|
@@ -173,6 +186,22 @@ class MobileApiClient {
|
|
|
173
186
|
}
|
|
174
187
|
return res.json();
|
|
175
188
|
}
|
|
189
|
+
async del(path, body, timeoutMs = 30_000) {
|
|
190
|
+
const res = await this.fetchWithTimeout(`${this.baseUrl}${path}`, {
|
|
191
|
+
method: 'DELETE',
|
|
192
|
+
headers: {
|
|
193
|
+
'Content-Type': 'application/json',
|
|
194
|
+
Accept: 'application/json',
|
|
195
|
+
...this.authHeaders()
|
|
196
|
+
},
|
|
197
|
+
body: JSON.stringify(body)
|
|
198
|
+
}, timeoutMs);
|
|
199
|
+
if (!res.ok) {
|
|
200
|
+
const json = await res.json().catch(() => ({}));
|
|
201
|
+
throw new Error(json?.message ?? `HTTP ${res.status}`);
|
|
202
|
+
}
|
|
203
|
+
return res.json();
|
|
204
|
+
}
|
|
176
205
|
async fetchWithTimeout(url, options, timeoutMs = 30000) {
|
|
177
206
|
const controller = new AbortController();
|
|
178
207
|
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
package/lib/commonjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MobileApiClient","sessionToken","contactId","userProfile","constructor","baseUrl","token","replace","setSession","setUserProfile","profile","clearSession","getContactId","createSession","userId","device","body","path","lastError","attempt","res","post","e","Error","String","Promise","r","setTimeout","getConfig","get","getMessages","assertSession","startDialog","userData","sendMessage","text","files","url","form","FormData","trim","append","length","forEach","f","uri","name","type","surname","email","phone","fetch","method","headers","authHeaders","ok","json","catch","message","status","getSurveyConfig","closeEventCreatedAt","params","URLSearchParams","set","undefined","query","toString","submitCsi","rating","comment","sendCallback","messageId","callbackData","message_id","callback_data","getDownloadUrl","buildAttachmentDownloadUrl","fileUrl","filename","getBroadcastAuthEndpoint","getAuthHeaders","Authorization","fetchWithTimeout","Accept","timeoutMs","JSON","stringify","options","controller","AbortController","timer","abort","signal","clearTimeout","exports"],"sourceRoot":"..\\..\\src","sources":["api.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["MobileApiClient","sessionToken","contactId","userProfile","constructor","baseUrl","token","replace","setSession","setUserProfile","profile","clearSession","getContactId","createSession","userId","device","body","path","lastError","attempt","res","post","e","Error","String","Promise","r","setTimeout","getConfig","get","getMessages","assertSession","startDialog","userData","sendMessage","text","files","url","form","FormData","trim","append","length","forEach","f","uri","name","type","surname","email","phone","fetch","method","headers","authHeaders","ok","json","catch","message","status","getSurveyConfig","closeEventCreatedAt","params","URLSearchParams","set","undefined","query","toString","submitCsi","rating","comment","sendCallback","messageId","callbackData","message_id","callback_data","registerPushToken","deviceToken","platform","device_token","deletePushToken","del","getDownloadUrl","buildAttachmentDownloadUrl","fileUrl","filename","getBroadcastAuthEndpoint","getAuthHeaders","Authorization","fetchWithTimeout","Accept","timeoutMs","JSON","stringify","options","controller","AbortController","timer","abort","signal","clearTimeout","exports"],"sourceRoot":"..\\..\\src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/ChatSDK.js
CHANGED
|
@@ -11,6 +11,7 @@ class ChatSDKSingleton {
|
|
|
11
11
|
lastError = null;
|
|
12
12
|
currentUser = null;
|
|
13
13
|
listeners = new Map();
|
|
14
|
+
pushDeviceToken = null;
|
|
14
15
|
|
|
15
16
|
// ─── Lifecycle ────────────────────────────────────────────────────────────
|
|
16
17
|
|
|
@@ -71,6 +72,7 @@ class ChatSDKSingleton {
|
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
async logout() {
|
|
75
|
+
await this.unregisterPushToken().catch(() => {});
|
|
74
76
|
this.currentUser = null;
|
|
75
77
|
this.session?.destroy();
|
|
76
78
|
this.session = null;
|
|
@@ -80,11 +82,22 @@ class ChatSDKSingleton {
|
|
|
80
82
|
|
|
81
83
|
// ─── Push ─────────────────────────────────────────────────────────────────
|
|
82
84
|
|
|
85
|
+
async registerPushToken(deviceToken, platform = 'fcm') {
|
|
86
|
+
this.assertInitialized();
|
|
87
|
+
await this.api.registerPushToken(deviceToken, platform);
|
|
88
|
+
this.pushDeviceToken = deviceToken;
|
|
89
|
+
}
|
|
90
|
+
async unregisterPushToken(deviceToken) {
|
|
91
|
+
const target = deviceToken ?? this.pushDeviceToken;
|
|
92
|
+
if (!target || !this.api) return;
|
|
93
|
+
try {
|
|
94
|
+
await this.api.deletePushToken(target);
|
|
95
|
+
} finally {
|
|
96
|
+
if (target === this.pushDeviceToken) this.pushDeviceToken = null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
83
99
|
handleNotification(_payload) {
|
|
84
|
-
// Навигация обрабатывается в host app через onNotification callback.
|
|
85
|
-
// SDK только проверяет, что payload относится к нашему токену.
|
|
86
100
|
if (_payload.token !== this.config?.token) return;
|
|
87
|
-
// В будущем: открыть ChatScreen если приложение foreground
|
|
88
101
|
}
|
|
89
102
|
|
|
90
103
|
// ─── Getters ──────────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MobileApiClient","ChatSDKSession","ChatSDKSingleton","config","api","sdkConfig","session","state","lastError","currentUser","listeners","Map","init","raw","console","warn","resolveConfig","baseUrl","token","setState","getConfig","then","cfg","emit","catch","err","msg","Error","message","String","getLastError","login","user","device","assertInitialized","result","createSession","userId","name","surname","email","phone","setSession","sessionToken","contactId","setUserProfile","startSession","logout","destroy","clearSession","handleNotification","_payload","getApi","getSDKConfig","getBaseUrl","getState","isAuthenticated","getUser","getMessages","getOperator","isRealtimeConnected","isConnected","refreshMessages","Promise","resolve","on","event","handler","has","set","Set","handlers","get","add","delete","apiBaseUrl","emitMessagesUpdated","messages","operator","emitConnectedChange","connected","emitOperatorChanged","payload","emitNewMessage","start","next","data","forEach","h","decoded","JSON","parse","atob","ChatSDK"],"sourceRoot":"..\\..\\src","sources":["ChatSDK.ts"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,UAAO;AACvC,SAASC,cAAc,QAAQ,cAAW;AA2B1C,MAAMC,gBAAgB,CAAC;EACbC,MAAM,GAAyB,IAAI;EACnCC,GAAG,GAA2B,IAAI;EAClCC,SAAS,GAAwB,IAAI;EACrCC,OAAO,GAA0B,IAAI;EACrCC,KAAK,GAAa,MAAM;EACxBC,SAAS,GAAkB,IAAI;EAC/BC,WAAW,GAAuB,IAAI;EACtCC,SAAS,GAAsC,IAAIC,GAAG,CAAC,CAAC;;
|
|
1
|
+
{"version":3,"names":["MobileApiClient","ChatSDKSession","ChatSDKSingleton","config","api","sdkConfig","session","state","lastError","currentUser","listeners","Map","pushDeviceToken","init","raw","console","warn","resolveConfig","baseUrl","token","setState","getConfig","then","cfg","emit","catch","err","msg","Error","message","String","getLastError","login","user","device","assertInitialized","result","createSession","userId","name","surname","email","phone","setSession","sessionToken","contactId","setUserProfile","startSession","logout","unregisterPushToken","destroy","clearSession","registerPushToken","deviceToken","platform","target","deletePushToken","handleNotification","_payload","getApi","getSDKConfig","getBaseUrl","getState","isAuthenticated","getUser","getMessages","getOperator","isRealtimeConnected","isConnected","refreshMessages","Promise","resolve","on","event","handler","has","set","Set","handlers","get","add","delete","apiBaseUrl","emitMessagesUpdated","messages","operator","emitConnectedChange","connected","emitOperatorChanged","payload","emitNewMessage","start","next","data","forEach","h","decoded","JSON","parse","atob","ChatSDK"],"sourceRoot":"..\\..\\src","sources":["ChatSDK.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/api.js
CHANGED
|
@@ -113,6 +113,19 @@ export class MobileApiClient {
|
|
|
113
113
|
callback_data: callbackData
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
|
+
async registerPushToken(deviceToken, platform) {
|
|
117
|
+
this.assertSession();
|
|
118
|
+
await this.post(`/api/mobile/${this.token}/contact/${this.contactId}/push-token`, {
|
|
119
|
+
device_token: deviceToken,
|
|
120
|
+
platform
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
async deletePushToken(deviceToken) {
|
|
124
|
+
this.assertSession();
|
|
125
|
+
await this.del(`/api/mobile/${this.token}/contact/${this.contactId}/push-token`, {
|
|
126
|
+
device_token: deviceToken
|
|
127
|
+
});
|
|
128
|
+
}
|
|
116
129
|
getDownloadUrl(contactId) {
|
|
117
130
|
return `${this.baseUrl}/api/mobile/${this.token}/contact/${contactId}/download`;
|
|
118
131
|
}
|
|
@@ -169,6 +182,22 @@ export class MobileApiClient {
|
|
|
169
182
|
}
|
|
170
183
|
return res.json();
|
|
171
184
|
}
|
|
185
|
+
async del(path, body, timeoutMs = 30_000) {
|
|
186
|
+
const res = await this.fetchWithTimeout(`${this.baseUrl}${path}`, {
|
|
187
|
+
method: 'DELETE',
|
|
188
|
+
headers: {
|
|
189
|
+
'Content-Type': 'application/json',
|
|
190
|
+
Accept: 'application/json',
|
|
191
|
+
...this.authHeaders()
|
|
192
|
+
},
|
|
193
|
+
body: JSON.stringify(body)
|
|
194
|
+
}, timeoutMs);
|
|
195
|
+
if (!res.ok) {
|
|
196
|
+
const json = await res.json().catch(() => ({}));
|
|
197
|
+
throw new Error(json?.message ?? `HTTP ${res.status}`);
|
|
198
|
+
}
|
|
199
|
+
return res.json();
|
|
200
|
+
}
|
|
172
201
|
async fetchWithTimeout(url, options, timeoutMs = 30000) {
|
|
173
202
|
const controller = new AbortController();
|
|
174
203
|
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
package/lib/module/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MobileApiClient","sessionToken","contactId","userProfile","constructor","baseUrl","token","replace","setSession","setUserProfile","profile","clearSession","getContactId","createSession","userId","device","body","path","lastError","attempt","res","post","e","Error","String","Promise","r","setTimeout","getConfig","get","getMessages","assertSession","startDialog","userData","sendMessage","text","files","url","form","FormData","trim","append","length","forEach","f","uri","name","type","surname","email","phone","fetch","method","headers","authHeaders","ok","json","catch","message","status","getSurveyConfig","closeEventCreatedAt","params","URLSearchParams","set","undefined","query","toString","submitCsi","rating","comment","sendCallback","messageId","callbackData","message_id","callback_data","getDownloadUrl","buildAttachmentDownloadUrl","fileUrl","filename","getBroadcastAuthEndpoint","getAuthHeaders","Authorization","fetchWithTimeout","Accept","timeoutMs","JSON","stringify","options","controller","AbortController","timer","abort","signal","clearTimeout"],"sourceRoot":"..\\..\\src","sources":["api.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["MobileApiClient","sessionToken","contactId","userProfile","constructor","baseUrl","token","replace","setSession","setUserProfile","profile","clearSession","getContactId","createSession","userId","device","body","path","lastError","attempt","res","post","e","Error","String","Promise","r","setTimeout","getConfig","get","getMessages","assertSession","startDialog","userData","sendMessage","text","files","url","form","FormData","trim","append","length","forEach","f","uri","name","type","surname","email","phone","fetch","method","headers","authHeaders","ok","json","catch","message","status","getSurveyConfig","closeEventCreatedAt","params","URLSearchParams","set","undefined","query","toString","submitCsi","rating","comment","sendCallback","messageId","callbackData","message_id","callback_data","registerPushToken","deviceToken","platform","device_token","deletePushToken","del","getDownloadUrl","buildAttachmentDownloadUrl","fileUrl","filename","getBroadcastAuthEndpoint","getAuthHeaders","Authorization","fetchWithTimeout","Accept","timeoutMs","JSON","stringify","options","controller","AbortController","timer","abort","signal","clearTimeout"],"sourceRoot":"..\\..\\src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,10 +19,13 @@ declare class ChatSDKSingleton {
|
|
|
19
19
|
private lastError;
|
|
20
20
|
private currentUser;
|
|
21
21
|
private listeners;
|
|
22
|
+
private pushDeviceToken;
|
|
22
23
|
init(raw: ChatSDKConfig): void;
|
|
23
24
|
getLastError(): string | null;
|
|
24
25
|
login(user: ChatSDKUser, device?: ChatSDKDevice): Promise<void>;
|
|
25
26
|
logout(): Promise<void>;
|
|
27
|
+
registerPushToken(deviceToken: string, platform?: 'fcm' | 'apns'): Promise<void>;
|
|
28
|
+
unregisterPushToken(deviceToken?: string): Promise<void>;
|
|
26
29
|
handleNotification(_payload: NotificationPayload): void;
|
|
27
30
|
getApi(): MobileApiClient;
|
|
28
31
|
getSDKConfig(): MobileConfig | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSDK.d.ts","sourceRoot":"","sources":["../../../src/ChatSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,QAAQ,EACT,MAAM,SAAS,CAAA;AAEhB,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,QAAQ,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,eAAe,EAAE,2BAA2B,CAAA;IAC5C,UAAU,EAAE,sBAAsB,CAAA;IAClC,eAAe,EAAE,2BAA2B,CAAA;IAC5C,eAAe,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,KAAK,SAAS,GAAG,MAAM,WAAW,CAAA;AAClC,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAEnF,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,SAAS,CAA+C;
|
|
1
|
+
{"version":3,"file":"ChatSDK.d.ts","sourceRoot":"","sources":["../../../src/ChatSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,QAAQ,EACT,MAAM,SAAS,CAAA;AAEhB,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,QAAQ,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,eAAe,EAAE,2BAA2B,CAAA;IAC5C,UAAU,EAAE,sBAAsB,CAAA;IAClC,eAAe,EAAE,2BAA2B,CAAA;IAC5C,eAAe,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,KAAK,SAAS,GAAG,MAAM,WAAW,CAAA;AAClC,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAEnF,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,eAAe,CAAsB;IAI7C,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IA4B9B,YAAY,IAAI,MAAM,GAAG,IAAI;IAIvB,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC/D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,KAAK,GAAG,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvF,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAMvD,MAAM,IAAI,eAAe;IAKzB,YAAY,IAAI,YAAY,GAAG,IAAI;IAInC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,QAAQ;IAIpB,eAAe,IAAI,OAAO;IAI1B,OAAO,IAAI,WAAW,GAAG,IAAI;IAI7B,yEAAyE;IACzE,WAAW,IAAI,WAAW,EAAE;IAI5B,WAAW,IAAI,YAAY,GAAG,IAAI;IAIlC,mBAAmB,IAAI,OAAO;IAI9B,8FAA8F;IAC9F,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC,EAAE,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAWvE,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,iBAAiB;IAMzB,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,aAAa;CAc7B;AAED,eAAO,MAAM,OAAO,kBAAyB,CAAA"}
|
|
@@ -18,6 +18,8 @@ export declare class MobileApiClient {
|
|
|
18
18
|
getSurveyConfig(closeEventCreatedAt?: number): Promise<SurveyConfigResponse>;
|
|
19
19
|
submitCsi(rating: number, comment?: string): Promise<void>;
|
|
20
20
|
sendCallback(messageId: number, callbackData: string): Promise<void>;
|
|
21
|
+
registerPushToken(deviceToken: string, platform: 'fcm' | 'apns'): Promise<void>;
|
|
22
|
+
deletePushToken(deviceToken: string): Promise<void>;
|
|
21
23
|
getDownloadUrl(contactId: string): string;
|
|
22
24
|
buildAttachmentDownloadUrl(fileUrl: string, filename: string): string;
|
|
23
25
|
getBroadcastAuthEndpoint(): string;
|
|
@@ -26,6 +28,7 @@ export declare class MobileApiClient {
|
|
|
26
28
|
private authHeaders;
|
|
27
29
|
private get;
|
|
28
30
|
private post;
|
|
31
|
+
private del;
|
|
29
32
|
private fetchWithTimeout;
|
|
30
33
|
}
|
|
31
34
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAAyC;gBAEhD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAK1C,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKzD,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI;IAIjE,YAAY,IAAI,IAAI;IAMpB,YAAY,IAAI,MAAM,GAAG,IAAI;IAIvB,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,eAAe,CAAC;IAqBrB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAKlC,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQxC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnE,eAAe,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAe5E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAAyC;gBAEhD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAK1C,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKzD,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI;IAIjE,YAAY,IAAI,IAAI;IAMpB,YAAY,IAAI,MAAM,GAAG,IAAI;IAIvB,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,eAAe,CAAC;IAqBrB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAKlC,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQxC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnE,eAAe,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAe5E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpE,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/E,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIzC,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IASrE,wBAAwB,IAAI,MAAM;IAIlC,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIxC,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;YAML,GAAG;YAWH,IAAI;YAqBJ,GAAG;YAqBH,gBAAgB;CAc/B"}
|
|
@@ -19,10 +19,13 @@ declare class ChatSDKSingleton {
|
|
|
19
19
|
private lastError;
|
|
20
20
|
private currentUser;
|
|
21
21
|
private listeners;
|
|
22
|
+
private pushDeviceToken;
|
|
22
23
|
init(raw: ChatSDKConfig): void;
|
|
23
24
|
getLastError(): string | null;
|
|
24
25
|
login(user: ChatSDKUser, device?: ChatSDKDevice): Promise<void>;
|
|
25
26
|
logout(): Promise<void>;
|
|
27
|
+
registerPushToken(deviceToken: string, platform?: 'fcm' | 'apns'): Promise<void>;
|
|
28
|
+
unregisterPushToken(deviceToken?: string): Promise<void>;
|
|
26
29
|
handleNotification(_payload: NotificationPayload): void;
|
|
27
30
|
getApi(): MobileApiClient;
|
|
28
31
|
getSDKConfig(): MobileConfig | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSDK.d.ts","sourceRoot":"","sources":["../../../src/ChatSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,QAAQ,EACT,MAAM,SAAS,CAAA;AAEhB,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,QAAQ,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,eAAe,EAAE,2BAA2B,CAAA;IAC5C,UAAU,EAAE,sBAAsB,CAAA;IAClC,eAAe,EAAE,2BAA2B,CAAA;IAC5C,eAAe,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,KAAK,SAAS,GAAG,MAAM,WAAW,CAAA;AAClC,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAEnF,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,SAAS,CAA+C;
|
|
1
|
+
{"version":3,"file":"ChatSDK.d.ts","sourceRoot":"","sources":["../../../src/ChatSDK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,2BAA2B,EAC3B,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,QAAQ,EACT,MAAM,SAAS,CAAA;AAEhB,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,QAAQ,CAAA;IACrB,KAAK,EAAE,OAAO,CAAA;IACd,eAAe,EAAE,2BAA2B,CAAA;IAC5C,UAAU,EAAE,sBAAsB,CAAA;IAClC,eAAe,EAAE,2BAA2B,CAAA;IAC5C,eAAe,EAAE,OAAO,CAAA;CACzB,CAAA;AAED,KAAK,SAAS,GAAG,MAAM,WAAW,CAAA;AAClC,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAEnF,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,eAAe,CAAsB;IAI7C,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IA4B9B,YAAY,IAAI,MAAM,GAAG,IAAI;IAIvB,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC/D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAWvB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,KAAK,GAAG,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvF,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAMvD,MAAM,IAAI,eAAe;IAKzB,YAAY,IAAI,YAAY,GAAG,IAAI;IAInC,UAAU,IAAI,MAAM;IAIpB,QAAQ,IAAI,QAAQ;IAIpB,eAAe,IAAI,OAAO;IAI1B,OAAO,IAAI,WAAW,GAAG,IAAI;IAI7B,yEAAyE;IACzE,WAAW,IAAI,WAAW,EAAE;IAI5B,WAAW,IAAI,YAAY,GAAG,IAAI;IAIlC,mBAAmB,IAAI,OAAO;IAI9B,8FAA8F;IAC9F,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhC,EAAE,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAWvE,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,iBAAiB;IAMzB,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,aAAa;CAc7B;AAED,eAAO,MAAM,OAAO,kBAAyB,CAAA"}
|
|
@@ -18,6 +18,8 @@ export declare class MobileApiClient {
|
|
|
18
18
|
getSurveyConfig(closeEventCreatedAt?: number): Promise<SurveyConfigResponse>;
|
|
19
19
|
submitCsi(rating: number, comment?: string): Promise<void>;
|
|
20
20
|
sendCallback(messageId: number, callbackData: string): Promise<void>;
|
|
21
|
+
registerPushToken(deviceToken: string, platform: 'fcm' | 'apns'): Promise<void>;
|
|
22
|
+
deletePushToken(deviceToken: string): Promise<void>;
|
|
21
23
|
getDownloadUrl(contactId: string): string;
|
|
22
24
|
buildAttachmentDownloadUrl(fileUrl: string, filename: string): string;
|
|
23
25
|
getBroadcastAuthEndpoint(): string;
|
|
@@ -26,6 +28,7 @@ export declare class MobileApiClient {
|
|
|
26
28
|
private authHeaders;
|
|
27
29
|
private get;
|
|
28
30
|
private post;
|
|
31
|
+
private del;
|
|
29
32
|
private fetchWithTimeout;
|
|
30
33
|
}
|
|
31
34
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAAyC;gBAEhD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAK1C,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKzD,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI;IAIjE,YAAY,IAAI,IAAI;IAMpB,YAAY,IAAI,MAAM,GAAG,IAAI;IAIvB,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,eAAe,CAAC;IAqBrB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAKlC,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQxC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnE,eAAe,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAe5E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,WAAW,CAAyC;gBAEhD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAK1C,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKzD,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI;IAIjE,YAAY,IAAI,IAAI;IAMpB,YAAY,IAAI,MAAM,GAAG,IAAI;IAIvB,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,eAAe,CAAC;IAqBrB,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAKlC,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAQxC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnE,eAAe,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAe5E,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpE,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/E,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIzC,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IASrE,wBAAwB,IAAI,MAAM;IAIlC,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIxC,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,WAAW;YAML,GAAG;YAWH,IAAI;YAqBJ,GAAG;YAqBH,gBAAgB;CAc/B"}
|
package/package.json
CHANGED
package/src/ChatSDK.ts
CHANGED
|
@@ -35,6 +35,7 @@ class ChatSDKSingleton {
|
|
|
35
35
|
private lastError: string | null = null
|
|
36
36
|
private currentUser: ChatSDKUser | null = null
|
|
37
37
|
private listeners: Map<EventName, Set<EventHandler>> = new Map()
|
|
38
|
+
private pushDeviceToken: string | null = null
|
|
38
39
|
|
|
39
40
|
// ─── Lifecycle ────────────────────────────────────────────────────────────
|
|
40
41
|
|
|
@@ -109,6 +110,7 @@ class ChatSDKSingleton {
|
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
async logout(): Promise<void> {
|
|
113
|
+
await this.unregisterPushToken().catch(() => {})
|
|
112
114
|
this.currentUser = null
|
|
113
115
|
this.session?.destroy()
|
|
114
116
|
this.session = null
|
|
@@ -117,12 +119,25 @@ class ChatSDKSingleton {
|
|
|
117
119
|
}
|
|
118
120
|
|
|
119
121
|
// ─── Push ─────────────────────────────────────────────────────────────────
|
|
122
|
+
|
|
123
|
+
async registerPushToken(deviceToken: string, platform: 'fcm' | 'apns' = 'fcm'): Promise<void> {
|
|
124
|
+
this.assertInitialized()
|
|
125
|
+
await this.api!.registerPushToken(deviceToken, platform)
|
|
126
|
+
this.pushDeviceToken = deviceToken
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
async unregisterPushToken(deviceToken?: string): Promise<void> {
|
|
130
|
+
const target = deviceToken ?? this.pushDeviceToken
|
|
131
|
+
if (!target || !this.api) return
|
|
132
|
+
try {
|
|
133
|
+
await this.api.deletePushToken(target)
|
|
134
|
+
} finally {
|
|
135
|
+
if (target === this.pushDeviceToken) this.pushDeviceToken = null
|
|
136
|
+
}
|
|
137
|
+
}
|
|
120
138
|
|
|
121
139
|
handleNotification(_payload: NotificationPayload): void {
|
|
122
|
-
// Навигация обрабатывается в host app через onNotification callback.
|
|
123
|
-
// SDK только проверяет, что payload относится к нашему токену.
|
|
124
140
|
if (_payload.token !== this.config?.token) return
|
|
125
|
-
// В будущем: открыть ChatScreen если приложение foreground
|
|
126
141
|
}
|
|
127
142
|
|
|
128
143
|
// ─── Getters ──────────────────────────────────────────────────────────────
|
package/src/api.ts
CHANGED
|
@@ -146,6 +146,22 @@ export class MobileApiClient {
|
|
|
146
146
|
)
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
+
async registerPushToken(deviceToken: string, platform: 'fcm' | 'apns'): Promise<void> {
|
|
150
|
+
this.assertSession()
|
|
151
|
+
await this.post(
|
|
152
|
+
`/api/mobile/${this.token}/contact/${this.contactId}/push-token`,
|
|
153
|
+
{ device_token: deviceToken, platform },
|
|
154
|
+
)
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
async deletePushToken(deviceToken: string): Promise<void> {
|
|
158
|
+
this.assertSession()
|
|
159
|
+
await this.del(
|
|
160
|
+
`/api/mobile/${this.token}/contact/${this.contactId}/push-token`,
|
|
161
|
+
{ device_token: deviceToken },
|
|
162
|
+
)
|
|
163
|
+
}
|
|
164
|
+
|
|
149
165
|
getDownloadUrl(contactId: string): string {
|
|
150
166
|
return `${this.baseUrl}/api/mobile/${this.token}/contact/${contactId}/download`
|
|
151
167
|
}
|
|
@@ -211,6 +227,27 @@ export class MobileApiClient {
|
|
|
211
227
|
return res.json()
|
|
212
228
|
}
|
|
213
229
|
|
|
230
|
+
private async del(path: string, body: unknown, timeoutMs = 30_000): Promise<unknown> {
|
|
231
|
+
const res = await this.fetchWithTimeout(
|
|
232
|
+
`${this.baseUrl}${path}`,
|
|
233
|
+
{
|
|
234
|
+
method: 'DELETE',
|
|
235
|
+
headers: {
|
|
236
|
+
'Content-Type': 'application/json',
|
|
237
|
+
Accept: 'application/json',
|
|
238
|
+
...this.authHeaders(),
|
|
239
|
+
},
|
|
240
|
+
body: JSON.stringify(body),
|
|
241
|
+
},
|
|
242
|
+
timeoutMs,
|
|
243
|
+
)
|
|
244
|
+
if (!res.ok) {
|
|
245
|
+
const json = await res.json().catch(() => ({}))
|
|
246
|
+
throw new Error(json?.message ?? `HTTP ${res.status}`)
|
|
247
|
+
}
|
|
248
|
+
return res.json()
|
|
249
|
+
}
|
|
250
|
+
|
|
214
251
|
private async fetchWithTimeout(url: string, options: RequestInit, timeoutMs = 30000): Promise<Response> {
|
|
215
252
|
const controller = new AbortController()
|
|
216
253
|
const timer = setTimeout(() => controller.abort(), timeoutMs)
|