@ion299/sdk-react-native 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/ChatPlatformSdk.podspec +20 -0
- package/README.md +315 -0
- package/android/build.gradle +54 -0
- package/android/src/main/AndroidManifest.xml +18 -0
- package/android/src/main/java/com/chatplatform/sdk/ChatSdkDownloaderModule.kt +240 -0
- package/android/src/main/java/com/chatplatform/sdk/ChatSdkFilePickerModule.kt +165 -0
- package/android/src/main/java/com/chatplatform/sdk/ChatSdkPackage.kt +15 -0
- package/android/src/main/res/xml/chat_sdk_file_paths.xml +7 -0
- package/ios/ChatSdkDownloader.m +10 -0
- package/ios/ChatSdkDownloader.swift +141 -0
- package/ios/ChatSdkFilePicker.m +9 -0
- package/ios/ChatSdkFilePicker.swift +161 -0
- package/lib/commonjs/ChatSDK.js +193 -0
- package/lib/commonjs/ChatSDK.js.map +1 -0
- package/lib/commonjs/api.js +195 -0
- package/lib/commonjs/api.js.map +1 -0
- package/lib/commonjs/attachmentUtils.js +39 -0
- package/lib/commonjs/attachmentUtils.js.map +1 -0
- package/lib/commonjs/components/AttachmentGallery.js +367 -0
- package/lib/commonjs/components/AttachmentGallery.js.map +1 -0
- package/lib/commonjs/components/ChatScreen.js +286 -0
- package/lib/commonjs/components/ChatScreen.js.map +1 -0
- package/lib/commonjs/components/MessageBubble.js +227 -0
- package/lib/commonjs/components/MessageBubble.js.map +1 -0
- package/lib/commonjs/components/MessageInput.js +273 -0
- package/lib/commonjs/components/MessageInput.js.map +1 -0
- package/lib/commonjs/components/SurveyOverlay.js +499 -0
- package/lib/commonjs/components/SurveyOverlay.js.map +1 -0
- package/lib/commonjs/downloaders/defaultAttachmentDownloader.js +28 -0
- package/lib/commonjs/downloaders/defaultAttachmentDownloader.js.map +1 -0
- package/lib/commonjs/filePicker.js +25 -0
- package/lib/commonjs/filePicker.js.map +1 -0
- package/lib/commonjs/index.js +27 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/native/NativeChatSdkDownloader.js +28 -0
- package/lib/commonjs/native/NativeChatSdkDownloader.js.map +1 -0
- package/lib/commonjs/native/NativeChatSdkFilePicker.js +17 -0
- package/lib/commonjs/native/NativeChatSdkFilePicker.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/realtime.js +242 -0
- package/lib/commonjs/realtime.js.map +1 -0
- package/lib/commonjs/safeArea.js +18 -0
- package/lib/commonjs/safeArea.js.map +1 -0
- package/lib/commonjs/session.js +159 -0
- package/lib/commonjs/session.js.map +1 -0
- package/lib/commonjs/surveyCache.js +30 -0
- package/lib/commonjs/surveyCache.js.map +1 -0
- package/lib/commonjs/theme.js +29 -0
- package/lib/commonjs/theme.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/useChat.js +145 -0
- package/lib/commonjs/useChat.js.map +1 -0
- package/lib/module/ChatSDK.js +189 -0
- package/lib/module/ChatSDK.js.map +1 -0
- package/lib/module/api.js +190 -0
- package/lib/module/api.js.map +1 -0
- package/lib/module/attachmentUtils.js +33 -0
- package/lib/module/attachmentUtils.js.map +1 -0
- package/lib/module/components/AttachmentGallery.js +362 -0
- package/lib/module/components/AttachmentGallery.js.map +1 -0
- package/lib/module/components/ChatScreen.js +281 -0
- package/lib/module/components/ChatScreen.js.map +1 -0
- package/lib/module/components/MessageBubble.js +222 -0
- package/lib/module/components/MessageBubble.js.map +1 -0
- package/lib/module/components/MessageInput.js +268 -0
- package/lib/module/components/MessageInput.js.map +1 -0
- package/lib/module/components/SurveyOverlay.js +494 -0
- package/lib/module/components/SurveyOverlay.js.map +1 -0
- package/lib/module/downloaders/defaultAttachmentDownloader.js +22 -0
- package/lib/module/downloaders/defaultAttachmentDownloader.js.map +1 -0
- package/lib/module/filePicker.js +20 -0
- package/lib/module/filePicker.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/native/NativeChatSdkDownloader.js +23 -0
- package/lib/module/native/NativeChatSdkDownloader.js.map +1 -0
- package/lib/module/native/NativeChatSdkFilePicker.js +13 -0
- package/lib/module/native/NativeChatSdkFilePicker.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/realtime.js +236 -0
- package/lib/module/realtime.js.map +1 -0
- package/lib/module/safeArea.js +14 -0
- package/lib/module/safeArea.js.map +1 -0
- package/lib/module/session.js +154 -0
- package/lib/module/session.js.map +1 -0
- package/lib/module/surveyCache.js +23 -0
- package/lib/module/surveyCache.js.map +1 -0
- package/lib/module/theme.js +25 -0
- package/lib/module/theme.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/useChat.js +141 -0
- package/lib/module/useChat.js.map +1 -0
- package/lib/typescript/commonjs/ChatSDK.d.ts +49 -0
- package/lib/typescript/commonjs/ChatSDK.d.ts.map +1 -0
- package/lib/typescript/commonjs/api.d.ts +31 -0
- package/lib/typescript/commonjs/api.d.ts.map +1 -0
- package/lib/typescript/commonjs/attachmentUtils.d.ts +12 -0
- package/lib/typescript/commonjs/attachmentUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/AttachmentGallery.d.ts +16 -0
- package/lib/typescript/commonjs/components/AttachmentGallery.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/ChatScreen.d.ts +16 -0
- package/lib/typescript/commonjs/components/ChatScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/MessageBubble.d.ts +12 -0
- package/lib/typescript/commonjs/components/MessageBubble.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/MessageInput.d.ts +14 -0
- package/lib/typescript/commonjs/components/MessageInput.d.ts.map +1 -0
- package/lib/typescript/commonjs/components/SurveyOverlay.d.ts +13 -0
- package/lib/typescript/commonjs/components/SurveyOverlay.d.ts.map +1 -0
- package/lib/typescript/commonjs/downloaders/defaultAttachmentDownloader.d.ts +3 -0
- package/lib/typescript/commonjs/downloaders/defaultAttachmentDownloader.d.ts.map +1 -0
- package/lib/typescript/commonjs/filePicker.d.ts +4 -0
- package/lib/typescript/commonjs/filePicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +7 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/NativeChatSdkDownloader.d.ts +24 -0
- package/lib/typescript/commonjs/native/NativeChatSdkDownloader.d.ts.map +1 -0
- package/lib/typescript/commonjs/native/NativeChatSdkFilePicker.d.ts +17 -0
- package/lib/typescript/commonjs/native/NativeChatSdkFilePicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/realtime.d.ts +42 -0
- package/lib/typescript/commonjs/realtime.d.ts.map +1 -0
- package/lib/typescript/commonjs/safeArea.d.ts +4 -0
- package/lib/typescript/commonjs/safeArea.d.ts.map +1 -0
- package/lib/typescript/commonjs/session.d.ts +45 -0
- package/lib/typescript/commonjs/session.d.ts.map +1 -0
- package/lib/typescript/commonjs/surveyCache.d.ts +5 -0
- package/lib/typescript/commonjs/surveyCache.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme.d.ts +21 -0
- package/lib/typescript/commonjs/theme.d.ts.map +1 -0
- package/lib/typescript/commonjs/types.d.ts +156 -0
- package/lib/typescript/commonjs/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/useChat.d.ts +16 -0
- package/lib/typescript/commonjs/useChat.d.ts.map +1 -0
- package/lib/typescript/module/ChatSDK.d.ts +49 -0
- package/lib/typescript/module/ChatSDK.d.ts.map +1 -0
- package/lib/typescript/module/api.d.ts +31 -0
- package/lib/typescript/module/api.d.ts.map +1 -0
- package/lib/typescript/module/attachmentUtils.d.ts +12 -0
- package/lib/typescript/module/attachmentUtils.d.ts.map +1 -0
- package/lib/typescript/module/components/AttachmentGallery.d.ts +16 -0
- package/lib/typescript/module/components/AttachmentGallery.d.ts.map +1 -0
- package/lib/typescript/module/components/ChatScreen.d.ts +16 -0
- package/lib/typescript/module/components/ChatScreen.d.ts.map +1 -0
- package/lib/typescript/module/components/MessageBubble.d.ts +12 -0
- package/lib/typescript/module/components/MessageBubble.d.ts.map +1 -0
- package/lib/typescript/module/components/MessageInput.d.ts +14 -0
- package/lib/typescript/module/components/MessageInput.d.ts.map +1 -0
- package/lib/typescript/module/components/SurveyOverlay.d.ts +13 -0
- package/lib/typescript/module/components/SurveyOverlay.d.ts.map +1 -0
- package/lib/typescript/module/downloaders/defaultAttachmentDownloader.d.ts +3 -0
- package/lib/typescript/module/downloaders/defaultAttachmentDownloader.d.ts.map +1 -0
- package/lib/typescript/module/filePicker.d.ts +4 -0
- package/lib/typescript/module/filePicker.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +7 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/native/NativeChatSdkDownloader.d.ts +24 -0
- package/lib/typescript/module/native/NativeChatSdkDownloader.d.ts.map +1 -0
- package/lib/typescript/module/native/NativeChatSdkFilePicker.d.ts +17 -0
- package/lib/typescript/module/native/NativeChatSdkFilePicker.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/realtime.d.ts +42 -0
- package/lib/typescript/module/realtime.d.ts.map +1 -0
- package/lib/typescript/module/safeArea.d.ts +4 -0
- package/lib/typescript/module/safeArea.d.ts.map +1 -0
- package/lib/typescript/module/session.d.ts +45 -0
- package/lib/typescript/module/session.d.ts.map +1 -0
- package/lib/typescript/module/surveyCache.d.ts +5 -0
- package/lib/typescript/module/surveyCache.d.ts.map +1 -0
- package/lib/typescript/module/theme.d.ts +21 -0
- package/lib/typescript/module/theme.d.ts.map +1 -0
- package/lib/typescript/module/types.d.ts +156 -0
- package/lib/typescript/module/types.d.ts.map +1 -0
- package/lib/typescript/module/useChat.d.ts +16 -0
- package/lib/typescript/module/useChat.d.ts.map +1 -0
- package/package.json +75 -0
- package/react-native.config.js +10 -0
- package/src/ChatSDK.ts +237 -0
- package/src/api.ts +228 -0
- package/src/attachmentUtils.ts +49 -0
- package/src/components/AttachmentGallery.tsx +363 -0
- package/src/components/ChatScreen.tsx +267 -0
- package/src/components/MessageBubble.tsx +208 -0
- package/src/components/MessageInput.tsx +280 -0
- package/src/components/SurveyOverlay.tsx +469 -0
- package/src/downloaders/defaultAttachmentDownloader.ts +27 -0
- package/src/filePicker.ts +22 -0
- package/src/index.ts +30 -0
- package/src/native/NativeChatSdkDownloader.ts +49 -0
- package/src/native/NativeChatSdkFilePicker.ts +30 -0
- package/src/realtime.ts +278 -0
- package/src/safeArea.ts +8 -0
- package/src/session.ts +196 -0
- package/src/surveyCache.ts +24 -0
- package/src/theme.ts +49 -0
- package/src/types.ts +199 -0
- package/src/useChat.ts +190 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { MobileApiClient } from './api';
|
|
2
|
+
import type { ChatMessage, ChatOperator, ChatSDKConfig, ChatSDKDevice, ChatSDKUser, MessagesUpdatedEventPayload, MobileConfig, NewMessageEventPayload, NotificationPayload, OperatorChangedEventPayload, SDKState } from './types';
|
|
3
|
+
type SDKEventMap = {
|
|
4
|
+
stateChange: SDKState;
|
|
5
|
+
error: unknown;
|
|
6
|
+
operatorChanged: OperatorChangedEventPayload;
|
|
7
|
+
newMessage: NewMessageEventPayload;
|
|
8
|
+
messagesUpdated: MessagesUpdatedEventPayload;
|
|
9
|
+
connectedChange: boolean;
|
|
10
|
+
};
|
|
11
|
+
type EventName = keyof SDKEventMap;
|
|
12
|
+
type EventHandler<K extends EventName = EventName> = (data: SDKEventMap[K]) => void;
|
|
13
|
+
declare class ChatSDKSingleton {
|
|
14
|
+
private config;
|
|
15
|
+
private api;
|
|
16
|
+
private sdkConfig;
|
|
17
|
+
private session;
|
|
18
|
+
private state;
|
|
19
|
+
private lastError;
|
|
20
|
+
private currentUser;
|
|
21
|
+
private listeners;
|
|
22
|
+
init(raw: ChatSDKConfig): void;
|
|
23
|
+
getLastError(): string | null;
|
|
24
|
+
login(user: ChatSDKUser, device?: ChatSDKDevice): Promise<void>;
|
|
25
|
+
logout(): Promise<void>;
|
|
26
|
+
handleNotification(_payload: NotificationPayload): void;
|
|
27
|
+
getApi(): MobileApiClient;
|
|
28
|
+
getSDKConfig(): MobileConfig | null;
|
|
29
|
+
getBaseUrl(): string;
|
|
30
|
+
getState(): SDKState;
|
|
31
|
+
isAuthenticated(): boolean;
|
|
32
|
+
getUser(): ChatSDKUser | null;
|
|
33
|
+
/** Кэш последнего ответа /messages. Пустой массив до первой загрузки. */
|
|
34
|
+
getMessages(): ChatMessage[];
|
|
35
|
+
getOperator(): ChatOperator | null;
|
|
36
|
+
isRealtimeConnected(): boolean;
|
|
37
|
+
/** Принудительный refresh с сервера. Не бросает при сетевых ошибках после первой загрузки. */
|
|
38
|
+
refreshMessages(): Promise<void>;
|
|
39
|
+
on<K extends EventName>(event: K, handler: EventHandler<K>): () => void;
|
|
40
|
+
private startSession;
|
|
41
|
+
private setState;
|
|
42
|
+
private emit;
|
|
43
|
+
private assertInitialized;
|
|
44
|
+
/** Если token — base64-JSON с полями token+baseUrl, распаковывает его. */
|
|
45
|
+
private static resolveConfig;
|
|
46
|
+
}
|
|
47
|
+
export declare const ChatSDK: ChatSDKSingleton;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=ChatSDK.d.ts.map
|
|
@@ -0,0 +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;IAIhE,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;IAU7B,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IASvD,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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { SessionResponse, MobileConfig, MessagesResponse, ChatSDKDevice, SurveyConfigResponse, AttachmentInput } from './types';
|
|
2
|
+
export declare class MobileApiClient {
|
|
3
|
+
private baseUrl;
|
|
4
|
+
private token;
|
|
5
|
+
private sessionToken;
|
|
6
|
+
private contactId;
|
|
7
|
+
private userProfile;
|
|
8
|
+
constructor(baseUrl: string, token: string);
|
|
9
|
+
setSession(sessionToken: string, contactId: string): void;
|
|
10
|
+
setUserProfile(profile: Record<string, string | undefined>): void;
|
|
11
|
+
clearSession(): void;
|
|
12
|
+
getContactId(): string | null;
|
|
13
|
+
createSession(userId: string, profile: Record<string, string | undefined>, device: ChatSDKDevice): Promise<SessionResponse>;
|
|
14
|
+
getConfig(): Promise<MobileConfig>;
|
|
15
|
+
getMessages(): Promise<MessagesResponse>;
|
|
16
|
+
startDialog(userData: Record<string, string | undefined>): Promise<void>;
|
|
17
|
+
sendMessage(text: string, files?: AttachmentInput[]): Promise<void>;
|
|
18
|
+
getSurveyConfig(closeEventCreatedAt?: number): Promise<SurveyConfigResponse>;
|
|
19
|
+
submitCsi(rating: number, comment?: string): Promise<void>;
|
|
20
|
+
sendCallback(messageId: number, callbackData: string): Promise<void>;
|
|
21
|
+
getDownloadUrl(contactId: string): string;
|
|
22
|
+
buildAttachmentDownloadUrl(fileUrl: string, filename: string): string;
|
|
23
|
+
getBroadcastAuthEndpoint(): string;
|
|
24
|
+
getAuthHeaders(): Record<string, string>;
|
|
25
|
+
private assertSession;
|
|
26
|
+
private authHeaders;
|
|
27
|
+
private get;
|
|
28
|
+
private post;
|
|
29
|
+
private fetchWithTimeout;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +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;IAQ1E,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,gBAAgB;CAc/B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ChatAttachment, GalleryAttachment } from './types';
|
|
2
|
+
export declare function attachmentDisplayName(attachment: ChatAttachment): string;
|
|
3
|
+
export declare function sanitizeFilename(name: string): string;
|
|
4
|
+
export interface AttachmentDownloadRequest {
|
|
5
|
+
downloadUrl: string;
|
|
6
|
+
filename: string;
|
|
7
|
+
headers: Record<string, string>;
|
|
8
|
+
mime: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function buildAttachmentDownloadRequest(attachment: GalleryAttachment): AttachmentDownloadRequest;
|
|
11
|
+
export type AttachmentDownloadHandler = (attachment: GalleryAttachment) => Promise<void>;
|
|
12
|
+
//# sourceMappingURL=attachmentUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachmentUtils.d.ts","sourceRoot":"","sources":["../../../src/attachmentUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAEhE,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAaxE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,iBAAiB,GAC5B,yBAAyB,CAe3B;AAED,MAAM,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type AttachmentDownloadHandler } from '../attachmentUtils';
|
|
3
|
+
import type { GalleryAttachment } from '../types';
|
|
4
|
+
import type { ChatTheme } from '../theme';
|
|
5
|
+
interface Props {
|
|
6
|
+
attachments: GalleryAttachment[];
|
|
7
|
+
initialIndex: number;
|
|
8
|
+
visible: boolean;
|
|
9
|
+
onClose: () => void;
|
|
10
|
+
downloadLabel?: string;
|
|
11
|
+
onDownloadAttachment: AttachmentDownloadHandler;
|
|
12
|
+
theme: ChatTheme;
|
|
13
|
+
}
|
|
14
|
+
export declare function AttachmentGallery({ attachments, initialIndex, visible, onClose, downloadLabel, onDownloadAttachment, theme, }: Props): React.JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=AttachmentGallery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentGallery.d.ts","sourceRoot":"","sources":["../../../../src/components/AttachmentGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAgBvE,OAAO,EAAyB,KAAK,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIzC,UAAU,KAAK;IACb,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,yBAAyB,CAAA;IAC/C,KAAK,EAAE,SAAS,CAAA;CACjB;AAwCD,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,YAAY,EACZ,OAAO,EACP,OAAO,EACP,aAAyB,EACzB,oBAAoB,EACpB,KAAK,GACN,EAAE,KAAK,qBA4IP"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ChatTheme } from '../theme';
|
|
3
|
+
import type { AttachmentDownloadHandler } from '../attachmentUtils';
|
|
4
|
+
import type { AttachmentInput, ChatStrings } from '../types';
|
|
5
|
+
interface Props {
|
|
6
|
+
onClose?: () => void;
|
|
7
|
+
theme?: Partial<ChatTheme>;
|
|
8
|
+
strings?: ChatStrings;
|
|
9
|
+
/** Переопределяет встроенный пикер файлов (react-native-document-picker). */
|
|
10
|
+
onPickFiles?: () => Promise<AttachmentInput[] | null>;
|
|
11
|
+
/** Переопределяет встроенное скачивание вложений из галереи. */
|
|
12
|
+
onDownloadAttachment?: AttachmentDownloadHandler;
|
|
13
|
+
}
|
|
14
|
+
export declare function ChatScreen({ onClose, theme: themeOverride, strings, onPickFiles, onDownloadAttachment, }: Props): React.JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=ChatScreen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatScreen.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatScreen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AAenE,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,UAAU,CAAA;AAErD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAA+B,WAAW,EAAqB,MAAM,UAAU,CAAA;AAM5G,UAAU,KAAK;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC1B,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAAA;IACrD,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,yBAAyB,CAAA;CACjD;AAeD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,KAAK,EAAE,aAAa,EACpB,OAAO,EACP,WAAW,EACX,oBAAoB,GACrB,EAAE,KAAK,qBAyKP"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ChatAttachment, ChatMessage } from '../types';
|
|
3
|
+
import type { ChatTheme } from '../theme';
|
|
4
|
+
interface Props {
|
|
5
|
+
message: ChatMessage;
|
|
6
|
+
theme: ChatTheme;
|
|
7
|
+
onButtonPress?: (callbackData: string, serverMessageId: number) => void;
|
|
8
|
+
onAttachmentPress?: (attachment: ChatAttachment) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function MessageBubble({ message, theme, onButtonPress, onAttachmentPress }: Props): React.JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=MessageBubble.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,cAAc,EAAc,WAAW,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAA;IACvE,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAA;CACzD;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,KAAK,qBAgFxF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ChatTheme } from '../theme';
|
|
3
|
+
import type { AttachmentInput, ChatStrings } from '../types';
|
|
4
|
+
interface Props {
|
|
5
|
+
theme: ChatTheme;
|
|
6
|
+
isSending: boolean;
|
|
7
|
+
onSend: (text: string, files: AttachmentInput[]) => void;
|
|
8
|
+
/** Переопределяет встроенный пикер (@react-native-documents/picker). */
|
|
9
|
+
onPickFiles?: () => Promise<AttachmentInput[] | null>;
|
|
10
|
+
strings?: Pick<ChatStrings, 'inputPlaceholder' | 'sendingText'>;
|
|
11
|
+
}
|
|
12
|
+
export declare function MessageInput({ theme, isSending, onSend, onPickFiles, strings }: Props): React.JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=MessageInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageInput.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAe/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE5D,UAAU,KAAK;IACb,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAA;IACxD,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAAA;IACrD,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,kBAAkB,GAAG,aAAa,CAAC,CAAA;CAChE;AAWD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,KAAK,qBAuIrF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SurveyConfig, ChatStrings } from '../types';
|
|
3
|
+
import type { ChatTheme } from '../theme';
|
|
4
|
+
interface Props {
|
|
5
|
+
config: SurveyConfig;
|
|
6
|
+
theme: ChatTheme;
|
|
7
|
+
strings?: Pick<ChatStrings, 'surveyTitle' | 'surveySubmit' | 'surveySkip' | 'surveyClose' | 'sendingText'>;
|
|
8
|
+
onSubmit: (rating: number, comment?: string) => Promise<void>;
|
|
9
|
+
onDismiss: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function SurveyOverlay({ config, theme, strings, onSubmit, onDismiss }: Props): React.JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=SurveyOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SurveyOverlay.d.ts","sourceRoot":"","sources":["../../../../src/components/SurveyOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAavE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,UAAU,KAAK;IACb,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC,CAAA;IAC1G,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,SAAS,EAAE,MAAM,IAAI,CAAA;CACtB;AASD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,qBAqQnF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultAttachmentDownloader.d.ts","sourceRoot":"","sources":["../../../../src/downloaders/defaultAttachmentDownloader.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,oBAAoB,CAAA;AAI3B,eAAO,MAAM,2BAA2B,EAAE,yBAiBzC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filePicker.d.ts","sourceRoot":"","sources":["../../../src/filePicker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,yFAAyF;AACzF,wBAAsB,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,CAiBnE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { ChatSDK } from './ChatSDK';
|
|
2
|
+
export { ChatScreen } from './components/ChatScreen';
|
|
3
|
+
export { useChat } from './useChat';
|
|
4
|
+
export type { AttachmentDownloadHandler } from './attachmentUtils';
|
|
5
|
+
export type { ChatTheme } from './theme';
|
|
6
|
+
export type { ChatSDKConfig, ChatSDKUser, ChatSDKDevice, ChatSDKTheme, MobileConfig, ChatMessage, ChatAttachment, ChatOperator, AttachmentInput, GalleryAttachment, ChatButton, MessagesResponse, NotificationPayload, OperatorChangedEventPayload, NewMessageEventPayload, MessagesUpdatedEventPayload, ChatSDKEventName, SessionResponse, SurveyConfig, SurveyConfigResponse, SDKState, ChatStrings, } from './types';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,YAAY,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,YAAY,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,QAAQ,EACR,WAAW,GACZ,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { EventSubscription, TurboModule } from 'react-native';
|
|
2
|
+
export interface DownloadRequest {
|
|
3
|
+
url: string;
|
|
4
|
+
filename: string;
|
|
5
|
+
mime: string;
|
|
6
|
+
headers: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
export interface DownloadProgress {
|
|
9
|
+
id: string;
|
|
10
|
+
bytesWritten: number;
|
|
11
|
+
totalBytes: number;
|
|
12
|
+
}
|
|
13
|
+
export interface Spec extends TurboModule {
|
|
14
|
+
download(request: DownloadRequest): Promise<{
|
|
15
|
+
id: string;
|
|
16
|
+
uri: string;
|
|
17
|
+
}>;
|
|
18
|
+
addListener(eventName: string): void;
|
|
19
|
+
removeListeners(count: number): void;
|
|
20
|
+
}
|
|
21
|
+
declare const moduleRef: Spec | null;
|
|
22
|
+
export default moduleRef;
|
|
23
|
+
export declare function onDownloadProgress(handler: (event: DownloadProgress) => void): EventSubscription | null;
|
|
24
|
+
//# sourceMappingURL=NativeChatSdkDownloader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeChatSdkDownloader.d.ts","sourceRoot":"","sources":["../../../../src/native/NativeChatSdkDownloader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAElE,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC;AAYD,QAAA,MAAM,SAAS,aAAe,CAAA;AAE9B,eAAe,SAAS,CAAA;AAUxB,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GACzC,iBAAiB,GAAG,IAAI,CAE1B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
export interface PickedFile {
|
|
3
|
+
uri: string;
|
|
4
|
+
name: string;
|
|
5
|
+
mime: string;
|
|
6
|
+
size: number;
|
|
7
|
+
}
|
|
8
|
+
export interface PickOptions {
|
|
9
|
+
multiple: boolean;
|
|
10
|
+
mimeFilter?: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface Spec extends TurboModule {
|
|
13
|
+
pick(options: PickOptions): Promise<PickedFile[] | null>;
|
|
14
|
+
}
|
|
15
|
+
declare const _default: Spec | null;
|
|
16
|
+
export default _default;
|
|
17
|
+
//# sourceMappingURL=NativeChatSdkFilePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeChatSdkFilePicker.d.ts","sourceRoot":"","sources":["../../../../src/native/NativeChatSdkFilePicker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAA;CACzD;;AAYD,wBAA2B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Минимальный Pusher-протокол поверх нативного WebSocket.
|
|
3
|
+
*
|
|
4
|
+
* Не требует pusher-js / @react-native-community/netinfo.
|
|
5
|
+
* Работает в Expo Go, bare RN, любом JS-окружении с WebSocket.
|
|
6
|
+
*
|
|
7
|
+
* Поддерживает:
|
|
8
|
+
* - presence-channels (подписка с auth)
|
|
9
|
+
* - WidgetMessagesUpdated
|
|
10
|
+
* - heartbeat (pong на pusher:ping)
|
|
11
|
+
* - exponential reconnect
|
|
12
|
+
*/
|
|
13
|
+
import type { ReverbConfig } from './types';
|
|
14
|
+
export type RealtimeEvent = 'messages_updated' | 'connected' | 'disconnected';
|
|
15
|
+
export type RealtimeHandler = (data?: unknown) => void;
|
|
16
|
+
/** На эмуляторе API часто на 10.0.2.2, а Reverb host с сервера — localhost. */
|
|
17
|
+
export declare function resolveReverbConfig(reverb: ReverbConfig, apiBaseUrl: string): ReverbConfig;
|
|
18
|
+
export declare class RealtimeClient {
|
|
19
|
+
private ws;
|
|
20
|
+
private socketId;
|
|
21
|
+
private channelName;
|
|
22
|
+
private handlers;
|
|
23
|
+
private reconnectAttempt;
|
|
24
|
+
private reconnectTimer;
|
|
25
|
+
private destroyed;
|
|
26
|
+
private authEndpoint;
|
|
27
|
+
private authHeaders;
|
|
28
|
+
private wsUrl;
|
|
29
|
+
connect(config: ReverbConfig, widgetToken: string, contactId: string, authEndpoint: string, authHeaders: Record<string, string>, apiBaseUrl?: string): void;
|
|
30
|
+
disconnect(): void;
|
|
31
|
+
isConnected(): boolean;
|
|
32
|
+
on(event: RealtimeEvent, handler: RealtimeHandler): () => void;
|
|
33
|
+
private openSocket;
|
|
34
|
+
private handleMessage;
|
|
35
|
+
private subscribe;
|
|
36
|
+
private send;
|
|
37
|
+
private scheduleReconnect;
|
|
38
|
+
private destroy;
|
|
39
|
+
private parseData;
|
|
40
|
+
private emit;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=realtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../../src/realtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,MAAM,MAAM,aAAa,GACrB,kBAAkB,GAClB,WAAW,GACX,cAAc,CAAA;AAElB,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;AAWtD,+EAA+E;AAC/E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE,MAAM,GACjB,YAAY,CAad;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,QAAQ,CAAsD;IACtE,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,KAAK,CAAK;IAIlB,OAAO,CACL,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI;IAeP,UAAU,IAAI,IAAI;IAIlB,WAAW,IAAI,OAAO;IAItB,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,IAAI;IAU9D,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,aAAa;YAiDP,SAAS;IAgDvB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeArea.d.ts","sourceRoot":"","sources":["../../../src/safeArea.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,eAAO,MAAM,oBAAoB,QAA8D,CAAA"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { MobileApiClient } from './api';
|
|
2
|
+
import type { ChatMessage, ChatOperator, MobileConfig, NewMessageEventPayload, OperatorChangedEventPayload } from './types';
|
|
3
|
+
export interface SessionEmitters {
|
|
4
|
+
emitMessagesUpdated: (messages: ChatMessage[], operator: ChatOperator | null) => void;
|
|
5
|
+
emitConnectedChange: (connected: boolean) => void;
|
|
6
|
+
emitOperatorChanged: (payload: OperatorChangedEventPayload) => void;
|
|
7
|
+
emitNewMessage: (payload: NewMessageEventPayload) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Время жизни — от ChatSDK.login() до ChatSDK.logout().
|
|
11
|
+
* Один источник правды для realtime + polling + кэша сообщений/оператора.
|
|
12
|
+
* События проксируются в ChatSDK через emitters.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ChatSDKSession {
|
|
15
|
+
private readonly api;
|
|
16
|
+
private readonly sdkConfig;
|
|
17
|
+
private readonly widgetToken;
|
|
18
|
+
private readonly baseUrl;
|
|
19
|
+
private readonly emitters;
|
|
20
|
+
private realtime;
|
|
21
|
+
private pollTimer;
|
|
22
|
+
private appStateSub;
|
|
23
|
+
private destroyed;
|
|
24
|
+
private refreshing;
|
|
25
|
+
private messages;
|
|
26
|
+
private operator;
|
|
27
|
+
private knownMessageIds;
|
|
28
|
+
private initialLoaded;
|
|
29
|
+
private connected;
|
|
30
|
+
constructor(api: MobileApiClient, sdkConfig: MobileConfig, widgetToken: string, baseUrl: string, emitters: SessionEmitters);
|
|
31
|
+
start(): void;
|
|
32
|
+
destroy(): void;
|
|
33
|
+
getMessages(): ChatMessage[];
|
|
34
|
+
getOperator(): ChatOperator | null;
|
|
35
|
+
isConnected(): boolean;
|
|
36
|
+
refreshMessages(): Promise<void>;
|
|
37
|
+
private detectOperatorChange;
|
|
38
|
+
private detectNewMessages;
|
|
39
|
+
private openRealtime;
|
|
40
|
+
private setConnected;
|
|
41
|
+
private startPolling;
|
|
42
|
+
private stopPolling;
|
|
43
|
+
private handleAppStateChange;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAE5C,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,SAAS,CAAA;AAIhB,MAAM,WAAW,eAAe;IAC9B,mBAAmB,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAA;IACrF,mBAAmB,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IACjD,mBAAmB,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAA;IACnE,cAAc,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAA;CAC1D;AAED;;;;GAIG;AACH,qBAAa,cAAc;IAcvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAQ;gBAGN,GAAG,EAAE,eAAe,EACpB,SAAS,EAAE,YAAY,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,eAAe;IAG5C,KAAK,IAAI,IAAI;IAMb,OAAO,IAAI,IAAI;IAiBf,WAAW,IAAI,WAAW,EAAE;IAI5B,WAAW,IAAI,YAAY,GAAG,IAAI;IAIlC,WAAW,IAAI,OAAO;IAIhB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BtC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,oBAAoB,CAQ3B;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function isSurveyEventSeen(contactId: string, messageId: string): boolean;
|
|
2
|
+
export declare function markSurveyEventSeen(contactId: string, messageId: string): void;
|
|
3
|
+
export declare function deleteSurveyEvent(contactId: string, messageId: string): void;
|
|
4
|
+
export declare function clearSurveyCache(contactId?: string): void;
|
|
5
|
+
//# sourceMappingURL=surveyCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surveyCache.d.ts","sourceRoot":"","sources":["../../../src/surveyCache.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE/E;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAK9E;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAMzD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { MobileConfig } from './types';
|
|
2
|
+
export interface ChatTheme {
|
|
3
|
+
primaryColor: string;
|
|
4
|
+
primaryColorStart: string | null;
|
|
5
|
+
primaryColorEnd: string | null;
|
|
6
|
+
isGradient: boolean;
|
|
7
|
+
outboundBg: string;
|
|
8
|
+
inboundBg: string;
|
|
9
|
+
outboundText: string;
|
|
10
|
+
inboundText: string;
|
|
11
|
+
background: string;
|
|
12
|
+
inputBg: string;
|
|
13
|
+
inputBorder: string;
|
|
14
|
+
inputText: string;
|
|
15
|
+
systemText: string;
|
|
16
|
+
headerBg: string;
|
|
17
|
+
headerText: string;
|
|
18
|
+
sendButtonBg: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function buildTheme(config: MobileConfig | null): ChatTheme;
|
|
21
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,UAAU,EAAE,OAAO,CAAA;IAEnB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IAEnB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAyBjE"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
export interface ChatSDKConfig {
|
|
2
|
+
token: string;
|
|
3
|
+
baseUrl?: string;
|
|
4
|
+
locale?: 'ru' | 'en';
|
|
5
|
+
}
|
|
6
|
+
export interface ChatSDKUser {
|
|
7
|
+
userId: string;
|
|
8
|
+
name?: string;
|
|
9
|
+
surname?: string;
|
|
10
|
+
email?: string;
|
|
11
|
+
phone?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ChatSDKDevice {
|
|
14
|
+
platform?: 'ios' | 'android' | 'other';
|
|
15
|
+
appVersion?: string;
|
|
16
|
+
bundleId?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ChatSDKTheme {
|
|
19
|
+
widgetTitle: string;
|
|
20
|
+
colorType: 'single' | 'gradient';
|
|
21
|
+
themeColor: string;
|
|
22
|
+
colorStart: string | null;
|
|
23
|
+
colorEnd: string | null;
|
|
24
|
+
imageLogo: string | null;
|
|
25
|
+
}
|
|
26
|
+
export interface ReverbConfig {
|
|
27
|
+
key: string;
|
|
28
|
+
host: string;
|
|
29
|
+
port: number;
|
|
30
|
+
scheme: 'http' | 'https';
|
|
31
|
+
}
|
|
32
|
+
export interface MobileConfig extends ChatSDKTheme {
|
|
33
|
+
apiBaseUrl: string;
|
|
34
|
+
reverb: ReverbConfig;
|
|
35
|
+
broadcastAuthEndpoint: string;
|
|
36
|
+
}
|
|
37
|
+
export interface SessionResponse {
|
|
38
|
+
sessionToken: string;
|
|
39
|
+
expiresAt: string;
|
|
40
|
+
contactId: string;
|
|
41
|
+
config: MobileConfig;
|
|
42
|
+
}
|
|
43
|
+
export interface ChatMessage {
|
|
44
|
+
id: string;
|
|
45
|
+
type: 'contact' | 'user' | 'system' | 'event';
|
|
46
|
+
text: string | null;
|
|
47
|
+
time: string;
|
|
48
|
+
createdAt: number;
|
|
49
|
+
sender?: {
|
|
50
|
+
name: string;
|
|
51
|
+
} | null;
|
|
52
|
+
attachments?: ChatAttachment[];
|
|
53
|
+
buttons?: ChatButton[] | null;
|
|
54
|
+
serverMessageId?: number | null;
|
|
55
|
+
}
|
|
56
|
+
export interface ChatAttachment {
|
|
57
|
+
id: number;
|
|
58
|
+
url: string;
|
|
59
|
+
filename: string;
|
|
60
|
+
mime: string;
|
|
61
|
+
size: number;
|
|
62
|
+
type: 'image' | 'video' | 'audio' | 'document';
|
|
63
|
+
}
|
|
64
|
+
export interface AttachmentInput {
|
|
65
|
+
uri: string;
|
|
66
|
+
name: string;
|
|
67
|
+
type: string;
|
|
68
|
+
size?: number;
|
|
69
|
+
}
|
|
70
|
+
export interface GalleryAttachment extends ChatAttachment {
|
|
71
|
+
messageTime: string;
|
|
72
|
+
}
|
|
73
|
+
export interface ChatButton {
|
|
74
|
+
text: string;
|
|
75
|
+
callback_data: string;
|
|
76
|
+
}
|
|
77
|
+
export interface MessagesResponse {
|
|
78
|
+
operator: {
|
|
79
|
+
id: number;
|
|
80
|
+
name: string;
|
|
81
|
+
} | null;
|
|
82
|
+
messages: ChatMessage[];
|
|
83
|
+
}
|
|
84
|
+
export interface ChatOperator {
|
|
85
|
+
id: number;
|
|
86
|
+
name: string;
|
|
87
|
+
}
|
|
88
|
+
export interface NotificationPayload {
|
|
89
|
+
token: string;
|
|
90
|
+
contactId: string;
|
|
91
|
+
conversationId?: string;
|
|
92
|
+
messageId?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface OperatorChangedEventPayload {
|
|
95
|
+
token: string;
|
|
96
|
+
contactId: string;
|
|
97
|
+
previousOperator: ChatOperator | null;
|
|
98
|
+
operator: ChatOperator | null;
|
|
99
|
+
occurredAt: string;
|
|
100
|
+
}
|
|
101
|
+
export interface NewMessageEventPayload {
|
|
102
|
+
token: string;
|
|
103
|
+
contactId: string;
|
|
104
|
+
message: ChatMessage;
|
|
105
|
+
operator: ChatOperator | null;
|
|
106
|
+
occurredAt: string;
|
|
107
|
+
}
|
|
108
|
+
export interface MessagesUpdatedEventPayload {
|
|
109
|
+
messages: ChatMessage[];
|
|
110
|
+
operator: ChatOperator | null;
|
|
111
|
+
}
|
|
112
|
+
export type ChatSDKEventName = 'stateChange' | 'error' | 'operatorChanged' | 'newMessage' | 'messagesUpdated' | 'connectedChange';
|
|
113
|
+
export interface SurveyConfig {
|
|
114
|
+
visible: true;
|
|
115
|
+
title: string;
|
|
116
|
+
description: string;
|
|
117
|
+
range: [number, number];
|
|
118
|
+
badRange: [number, number];
|
|
119
|
+
badMessage: string;
|
|
120
|
+
goodMessage: string;
|
|
121
|
+
afterCommentMessage: string;
|
|
122
|
+
commentEnabled: boolean;
|
|
123
|
+
badRangeEnabled: boolean;
|
|
124
|
+
commentRequired: boolean;
|
|
125
|
+
}
|
|
126
|
+
export type SurveyConfigResponse = SurveyConfig | {
|
|
127
|
+
visible: false;
|
|
128
|
+
};
|
|
129
|
+
export type SDKState = 'idle' | 'initializing' | 'ready' | 'authenticated' | 'error';
|
|
130
|
+
/**
|
|
131
|
+
* Кастомные тексты для <ChatScreen />.
|
|
132
|
+
* Все поля опциональны — непереданные значения берутся из встроенного дефолта.
|
|
133
|
+
*/
|
|
134
|
+
export interface ChatStrings {
|
|
135
|
+
/** Заголовок хедера. По умолчанию: widgetTitle из конфига → 'Чат' */
|
|
136
|
+
headerTitle?: string;
|
|
137
|
+
/** Текст пустого экрана чата */
|
|
138
|
+
emptyStateText?: string;
|
|
139
|
+
/** Placeholder в поле ввода */
|
|
140
|
+
inputPlaceholder?: string;
|
|
141
|
+
/** Текст кнопки/индикатора отправки */
|
|
142
|
+
sendingText?: string;
|
|
143
|
+
/** Текст кнопки повтора при ошибке */
|
|
144
|
+
errorRetry?: string;
|
|
145
|
+
/** Заголовок оверлея CSI-опроса (если не задан сервером) */
|
|
146
|
+
surveyTitle?: string;
|
|
147
|
+
/** Текст кнопки отправки оценки в опросе */
|
|
148
|
+
surveySubmit?: string;
|
|
149
|
+
/** Текст кнопки пропуска опроса */
|
|
150
|
+
surveySkip?: string;
|
|
151
|
+
/** Текст кнопки закрытия результата опроса */
|
|
152
|
+
surveyClose?: string;
|
|
153
|
+
/** Текст кнопки скачивания в галерее */
|
|
154
|
+
galleryDownload?: string;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AttachmentInput, ChatMessage, SurveyConfig } from './types';
|
|
2
|
+
export interface UseChatReturn {
|
|
3
|
+
messages: ChatMessage[];
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
isSending: boolean;
|
|
6
|
+
connected: boolean;
|
|
7
|
+
error: string | null;
|
|
8
|
+
survey: SurveyConfig | null;
|
|
9
|
+
sendMessage: (text: string, files?: AttachmentInput[]) => Promise<void>;
|
|
10
|
+
sendCallback: (messageId: number, callbackData: string) => Promise<void>;
|
|
11
|
+
submitSurvey: (rating: number, comment?: string) => Promise<void>;
|
|
12
|
+
dismissSurvey: () => void;
|
|
13
|
+
retry: () => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function useChat(): UseChatReturn;
|
|
16
|
+
//# sourceMappingURL=useChat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../../src/useChat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EAEf,WAAW,EACX,YAAY,EACb,MAAM,SAAS,CAAA;AAEhB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,eAAe,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjE,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAMD,wBAAgB,OAAO,IAAI,aAAa,CAiKvC"}
|