ajaxter-chat 3.0.17 → 3.1.0

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.
Files changed (143) hide show
  1. package/dist/components/BlockList/index.d.ts +1 -0
  2. package/dist/components/BlockList/index.d.ts.map +1 -0
  3. package/dist/components/BlockList/index.js +55 -28
  4. package/dist/components/BlockList/index.js.map +1 -0
  5. package/dist/components/CallScreen/index.d.ts +1 -0
  6. package/dist/components/CallScreen/index.d.ts.map +1 -0
  7. package/dist/components/CallScreen/index.js +107 -39
  8. package/dist/components/CallScreen/index.js.map +1 -0
  9. package/dist/components/ChatScreen/index.d.ts +1 -0
  10. package/dist/components/ChatScreen/index.d.ts.map +1 -0
  11. package/dist/components/ChatScreen/index.js +493 -294
  12. package/dist/components/ChatScreen/index.js.map +1 -0
  13. package/dist/components/ChatWidget.d.ts +1 -0
  14. package/dist/components/ChatWidget.d.ts.map +1 -0
  15. package/dist/components/ChatWidget.js +350 -255
  16. package/dist/components/ChatWidget.js.map +1 -0
  17. package/dist/components/EmojiPicker/index.d.ts +1 -0
  18. package/dist/components/EmojiPicker/index.d.ts.map +1 -0
  19. package/dist/components/EmojiPicker/index.js +19 -7
  20. package/dist/components/EmojiPicker/index.js.map +1 -0
  21. package/dist/components/ErrorBoundary/index.d.ts +20 -0
  22. package/dist/components/ErrorBoundary/index.d.ts.map +1 -0
  23. package/dist/components/ErrorBoundary/index.js +76 -0
  24. package/dist/components/ErrorBoundary/index.js.map +1 -0
  25. package/dist/components/HomeScreen/index.d.ts +1 -0
  26. package/dist/components/HomeScreen/index.d.ts.map +1 -0
  27. package/dist/components/HomeScreen/index.js +236 -158
  28. package/dist/components/HomeScreen/index.js.map +1 -0
  29. package/dist/components/MaintenanceView/index.d.ts +1 -0
  30. package/dist/components/MaintenanceView/index.d.ts.map +1 -0
  31. package/dist/components/MaintenanceView/index.js +28 -12
  32. package/dist/components/MaintenanceView/index.js.map +1 -0
  33. package/dist/components/MiniCallBar/index.d.ts +1 -0
  34. package/dist/components/MiniCallBar/index.d.ts.map +1 -0
  35. package/dist/components/MiniCallBar/index.js +85 -37
  36. package/dist/components/MiniCallBar/index.js.map +1 -0
  37. package/dist/components/PermissionsGateScreen/index.d.ts +1 -0
  38. package/dist/components/PermissionsGateScreen/index.d.ts.map +1 -0
  39. package/dist/components/PermissionsGateScreen/index.js +82 -28
  40. package/dist/components/PermissionsGateScreen/index.js.map +1 -0
  41. package/dist/components/RecentChatsScreen/index.d.ts +1 -0
  42. package/dist/components/RecentChatsScreen/index.d.ts.map +1 -0
  43. package/dist/components/RecentChatsScreen/index.js +79 -19
  44. package/dist/components/RecentChatsScreen/index.js.map +1 -0
  45. package/dist/components/SlideNavMenu.d.ts +1 -0
  46. package/dist/components/SlideNavMenu.d.ts.map +1 -0
  47. package/dist/components/SlideNavMenu.js +82 -63
  48. package/dist/components/SlideNavMenu.js.map +1 -0
  49. package/dist/components/Tabs/BottomTabs.d.ts +1 -0
  50. package/dist/components/Tabs/BottomTabs.d.ts.map +1 -0
  51. package/dist/components/Tabs/BottomTabs.js +34 -19
  52. package/dist/components/Tabs/BottomTabs.js.map +1 -0
  53. package/dist/components/TicketDetailScreen/index.d.ts +1 -0
  54. package/dist/components/TicketDetailScreen/index.d.ts.map +1 -0
  55. package/dist/components/TicketDetailScreen/index.js +66 -27
  56. package/dist/components/TicketDetailScreen/index.js.map +1 -0
  57. package/dist/components/TicketFormScreen/index.d.ts +1 -0
  58. package/dist/components/TicketFormScreen/index.d.ts.map +1 -0
  59. package/dist/components/TicketFormScreen/index.js +99 -49
  60. package/dist/components/TicketFormScreen/index.js.map +1 -0
  61. package/dist/components/TicketScreen/index.d.ts +1 -0
  62. package/dist/components/TicketScreen/index.d.ts.map +1 -0
  63. package/dist/components/TicketScreen/index.js +95 -26
  64. package/dist/components/TicketScreen/index.js.map +1 -0
  65. package/dist/components/UserListScreen/index.d.ts +1 -0
  66. package/dist/components/UserListScreen/index.d.ts.map +1 -0
  67. package/dist/components/UserListScreen/index.js +127 -53
  68. package/dist/components/UserListScreen/index.js.map +1 -0
  69. package/dist/components/ViewerBlockedScreen/index.d.ts +1 -0
  70. package/dist/components/ViewerBlockedScreen/index.d.ts.map +1 -0
  71. package/dist/components/ViewerBlockedScreen/index.js +113 -61
  72. package/dist/components/ViewerBlockedScreen/index.js.map +1 -0
  73. package/dist/config/index.d.ts +1 -0
  74. package/dist/config/index.d.ts.map +1 -0
  75. package/dist/config/index.js +7 -2
  76. package/dist/config/index.js.map +1 -0
  77. package/dist/hooks/useChat.d.ts +9 -1
  78. package/dist/hooks/useChat.d.ts.map +1 -0
  79. package/dist/hooks/useChat.js +60 -18
  80. package/dist/hooks/useChat.js.map +1 -0
  81. package/dist/hooks/useRemoteConfig.d.ts +1 -0
  82. package/dist/hooks/useRemoteConfig.d.ts.map +1 -0
  83. package/dist/hooks/useRemoteConfig.js +12 -8
  84. package/dist/hooks/useRemoteConfig.js.map +1 -0
  85. package/dist/hooks/useSocket.d.ts +40 -0
  86. package/dist/hooks/useSocket.d.ts.map +1 -0
  87. package/dist/hooks/useSocket.js +190 -0
  88. package/dist/hooks/useSocket.js.map +1 -0
  89. package/dist/hooks/useWebRTC.d.ts +10 -2
  90. package/dist/hooks/useWebRTC.d.ts.map +1 -0
  91. package/dist/hooks/useWebRTC.js +101 -69
  92. package/dist/hooks/useWebRTC.js.map +1 -0
  93. package/dist/index.d.ts +6 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +67 -21
  96. package/dist/index.js.map +1 -0
  97. package/dist/types/index.d.ts +1 -0
  98. package/dist/types/index.d.ts.map +1 -0
  99. package/dist/types/index.js +3 -1
  100. package/dist/types/index.js.map +1 -0
  101. package/dist/utils/chat.d.ts +1 -0
  102. package/dist/utils/chat.d.ts.map +1 -0
  103. package/dist/utils/chat.js +17 -7
  104. package/dist/utils/chat.js.map +1 -0
  105. package/dist/utils/fileName.d.ts +1 -0
  106. package/dist/utils/fileName.d.ts.map +1 -0
  107. package/dist/utils/fileName.js +5 -1
  108. package/dist/utils/fileName.js.map +1 -0
  109. package/dist/utils/messageSound.d.ts +1 -0
  110. package/dist/utils/messageSound.d.ts.map +1 -0
  111. package/dist/utils/messageSound.js +9 -3
  112. package/dist/utils/messageSound.js.map +1 -0
  113. package/dist/utils/presenceStatus.d.ts +1 -0
  114. package/dist/utils/presenceStatus.d.ts.map +1 -0
  115. package/dist/utils/presenceStatus.js +11 -4
  116. package/dist/utils/presenceStatus.js.map +1 -0
  117. package/dist/utils/privacyConsent.d.ts +1 -0
  118. package/dist/utils/privacyConsent.d.ts.map +1 -0
  119. package/dist/utils/privacyConsent.js +9 -3
  120. package/dist/utils/privacyConsent.js.map +1 -0
  121. package/dist/utils/reenableRequest.d.ts +1 -0
  122. package/dist/utils/reenableRequest.d.ts.map +1 -0
  123. package/dist/utils/reenableRequest.js +5 -1
  124. package/dist/utils/reenableRequest.js.map +1 -0
  125. package/dist/utils/theme.d.ts +1 -0
  126. package/dist/utils/theme.d.ts.map +1 -0
  127. package/dist/utils/theme.js +10 -4
  128. package/dist/utils/theme.js.map +1 -0
  129. package/dist/utils/widgetPermissions.d.ts +1 -0
  130. package/dist/utils/widgetPermissions.d.ts.map +1 -0
  131. package/dist/utils/widgetPermissions.js +13 -5
  132. package/dist/utils/widgetPermissions.js.map +1 -0
  133. package/dist/utils/widgetSession.d.ts +1 -0
  134. package/dist/utils/widgetSession.d.ts.map +1 -0
  135. package/dist/utils/widgetSession.js +9 -3
  136. package/dist/utils/widgetSession.js.map +1 -0
  137. package/package.json +3 -3
  138. package/src/components/ChatWidget.tsx +291 -269
  139. package/src/components/ErrorBoundary/index.tsx +62 -0
  140. package/src/hooks/useChat.ts +59 -12
  141. package/src/hooks/useSocket.ts +228 -0
  142. package/src/hooks/useWebRTC.ts +99 -64
  143. package/src/index.ts +7 -2
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ 'use client';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.useSocket = useSocket;
5
+ const react_1 = require("react");
6
+ const SOCKET_URL = 'http://localhost:3005';
7
+ const RECONNECT_DELAY = 3000;
8
+ const MAX_RECONNECT = 5;
9
+ function useSocket(opts) {
10
+ const { widgetId, viewerUid, serverUrl = SOCKET_URL, onMessage, onMessageAck, onChatPaused, onCallOffer, onCallAnswer, onIceCandidate, onCallEnd, onError, onUserStatus, } = opts;
11
+ const [status, setStatus] = (0, react_1.useState)('disconnected');
12
+ const wsRef = (0, react_1.useRef)(null);
13
+ const reconnectCount = (0, react_1.useRef)(0);
14
+ const reconnectTimer = (0, react_1.useRef)(null);
15
+ const currentRoomRef = (0, react_1.useRef)(null);
16
+ const mountedRef = (0, react_1.useRef)(true);
17
+ const send = (0, react_1.useCallback)((event, payload) => {
18
+ var _a;
19
+ if (((_a = wsRef.current) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN) {
20
+ wsRef.current.send(JSON.stringify({ event, payload }));
21
+ }
22
+ }, []);
23
+ const connect = (0, react_1.useCallback)(() => {
24
+ if (!mountedRef.current)
25
+ return;
26
+ if (wsRef.current) {
27
+ wsRef.current.onclose = null;
28
+ wsRef.current.close();
29
+ }
30
+ setStatus('connecting');
31
+ const url = `${serverUrl}?widgetId=${encodeURIComponent(widgetId)}&uid=${encodeURIComponent(viewerUid)}`;
32
+ let ws;
33
+ try {
34
+ ws = new WebSocket(url);
35
+ }
36
+ catch (e) {
37
+ setStatus('error');
38
+ return;
39
+ }
40
+ wsRef.current = ws;
41
+ ws.onopen = () => {
42
+ if (!mountedRef.current) {
43
+ ws.close();
44
+ return;
45
+ }
46
+ reconnectCount.current = 0;
47
+ setStatus('connected');
48
+ // Re-join current room if we were in one
49
+ if (currentRoomRef.current) {
50
+ send('join', { roomId: currentRoomRef.current, widgetId });
51
+ }
52
+ };
53
+ ws.onmessage = (event) => {
54
+ let parsed;
55
+ try {
56
+ parsed = JSON.parse(event.data);
57
+ }
58
+ catch (_a) {
59
+ return;
60
+ }
61
+ const { event: ev, payload } = parsed;
62
+ switch (ev) {
63
+ case 'message':
64
+ onMessage === null || onMessage === void 0 ? void 0 : onMessage(payload);
65
+ break;
66
+ case 'message:ack':
67
+ onMessageAck === null || onMessageAck === void 0 ? void 0 : onMessageAck(payload);
68
+ break;
69
+ case 'chat:paused': {
70
+ const p = payload;
71
+ onChatPaused === null || onChatPaused === void 0 ? void 0 : onChatPaused(p.roomId, p.paused);
72
+ break;
73
+ }
74
+ case 'call-offer': {
75
+ const p = payload;
76
+ onCallOffer === null || onCallOffer === void 0 ? void 0 : onCallOffer(p.offer, p.from, p.callId);
77
+ break;
78
+ }
79
+ case 'call-answer': {
80
+ const p = payload;
81
+ onCallAnswer === null || onCallAnswer === void 0 ? void 0 : onCallAnswer(p.answer, p.from, p.callId);
82
+ break;
83
+ }
84
+ case 'ice-candidate': {
85
+ const p = payload;
86
+ onIceCandidate === null || onIceCandidate === void 0 ? void 0 : onIceCandidate(p.candidate, p.from);
87
+ break;
88
+ }
89
+ case 'call-end': {
90
+ const p = payload;
91
+ onCallEnd === null || onCallEnd === void 0 ? void 0 : onCallEnd(p.callId);
92
+ break;
93
+ }
94
+ case 'user:status': {
95
+ const p = payload;
96
+ onUserStatus === null || onUserStatus === void 0 ? void 0 : onUserStatus(p.uid, p.status);
97
+ break;
98
+ }
99
+ case 'error': {
100
+ const p = payload;
101
+ onError === null || onError === void 0 ? void 0 : onError(p.code, p.message);
102
+ break;
103
+ }
104
+ }
105
+ };
106
+ ws.onerror = () => {
107
+ if (!mountedRef.current)
108
+ return;
109
+ setStatus('error');
110
+ };
111
+ ws.onclose = () => {
112
+ if (!mountedRef.current)
113
+ return;
114
+ setStatus('disconnected');
115
+ if (reconnectCount.current < MAX_RECONNECT) {
116
+ reconnectCount.current++;
117
+ reconnectTimer.current = setTimeout(connect, RECONNECT_DELAY * reconnectCount.current);
118
+ }
119
+ };
120
+ }, [widgetId, viewerUid, serverUrl, send, onMessage, onMessageAck, onChatPaused, onCallOffer, onCallAnswer, onIceCandidate, onCallEnd, onError, onUserStatus]);
121
+ (0, react_1.useEffect)(() => {
122
+ mountedRef.current = true;
123
+ if (widgetId && viewerUid)
124
+ connect();
125
+ return () => {
126
+ var _a;
127
+ mountedRef.current = false;
128
+ if (reconnectTimer.current)
129
+ clearTimeout(reconnectTimer.current);
130
+ (_a = wsRef.current) === null || _a === void 0 ? void 0 : _a.close();
131
+ };
132
+ // eslint-disable-next-line react-hooks/exhaustive-deps
133
+ }, [widgetId, viewerUid, serverUrl]);
134
+ const joinRoom = (0, react_1.useCallback)((roomId) => {
135
+ currentRoomRef.current = roomId;
136
+ send('join', { roomId, widgetId });
137
+ }, [send, widgetId]);
138
+ const leaveRoom = (0, react_1.useCallback)((roomId) => {
139
+ currentRoomRef.current = null;
140
+ send('leave', { roomId });
141
+ }, [send]);
142
+ const emitMessage = (0, react_1.useCallback)((msg) => {
143
+ send('message', msg);
144
+ }, [send]);
145
+ const emitTypingStart = (0, react_1.useCallback)((roomId) => {
146
+ send('typing_start', { roomId, userId: viewerUid });
147
+ }, [send, viewerUid]);
148
+ const emitTypingStop = (0, react_1.useCallback)((roomId) => {
149
+ send('typing_stop', { roomId, userId: viewerUid });
150
+ }, [send, viewerUid]);
151
+ const emitPauseToggle = (0, react_1.useCallback)((roomId, targetUserId, paused) => {
152
+ send('chat:pause', { roomId, targetUserId, paused });
153
+ }, [send]);
154
+ const emitReport = (0, react_1.useCallback)((roomId, reason) => {
155
+ send('chat:report', { roomId, reporterId: viewerUid, reason });
156
+ }, [send, viewerUid]);
157
+ const emitBlock = (0, react_1.useCallback)((blockedUid) => {
158
+ send('user:block', { blockedUid });
159
+ }, [send]);
160
+ const emitUnblock = (0, react_1.useCallback)((blockedUid) => {
161
+ send('user:unblock', { blockedUid });
162
+ }, [send]);
163
+ const emitTransfer = (0, react_1.useCallback)((fromRoomId, toUserId, note) => {
164
+ send('transfer', { fromRoomId, toUserId, note });
165
+ }, [send]);
166
+ const emitCallOffer = (0, react_1.useCallback)((offer, toUid, callId) => {
167
+ send('call-offer', { offer, to: toUid, from: viewerUid, callId });
168
+ }, [send, viewerUid]);
169
+ const emitCallAnswer = (0, react_1.useCallback)((answer, toUid, callId) => {
170
+ send('call-answer', { answer, to: toUid, callId });
171
+ }, [send]);
172
+ const emitIceCandidate = (0, react_1.useCallback)((candidate, toUid) => {
173
+ send('ice-candidate', { candidate, to: toUid });
174
+ }, [send]);
175
+ const emitCallEnd = (0, react_1.useCallback)((callId, toUid) => {
176
+ send('call-end', { callId, to: toUid });
177
+ }, [send]);
178
+ const emitAddParticipant = (0, react_1.useCallback)((roomId, uid) => {
179
+ send('room:add-participant', { roomId, uid });
180
+ }, [send]);
181
+ return {
182
+ status,
183
+ joinRoom, leaveRoom,
184
+ emitMessage, emitTypingStart, emitTypingStop,
185
+ emitPauseToggle, emitReport, emitBlock, emitUnblock, emitTransfer,
186
+ emitCallOffer, emitCallAnswer, emitIceCandidate, emitCallEnd,
187
+ emitAddParticipant,
188
+ };
189
+ }
190
+ //# sourceMappingURL=useSocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSocket.js","sourceRoot":"","sources":["../../src/hooks/useSocket.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,19 @@
1
1
  import { CallSession, ChatUser } from '../types';
2
- export declare function useWebRTC(): {
2
+ export interface UseWebRTCOptions {
3
+ onOfferReady?: (offer: RTCSessionDescriptionInit, toUid: string, callId: string) => void;
4
+ onAnswerReady?: (answer: RTCSessionDescriptionInit, toUid: string, callId: string) => void;
5
+ onIceCandidateReady?: (candidate: RTCIceCandidateInit, toUid: string) => void;
6
+ onCallEnded?: (callId: string, toUid?: string) => void;
7
+ }
8
+ export declare function useWebRTC(opts?: UseWebRTCOptions): {
3
9
  session: CallSession;
4
10
  localVideoRef: import("react").MutableRefObject<HTMLVideoElement | null>;
5
11
  remoteVideoRef: import("react").MutableRefObject<HTMLVideoElement | null>;
6
12
  startCall: (peer: ChatUser, withVideo?: boolean) => Promise<void>;
7
- acceptCall: (offer: RTCSessionDescriptionInit, peer: ChatUser, withVideo?: boolean) => Promise<void>;
13
+ acceptCall: (offer: RTCSessionDescriptionInit, peer: ChatUser, callId: string, withVideo?: boolean) => Promise<void>;
14
+ addIceCandidate: (candidate: RTCIceCandidateInit) => Promise<void>;
8
15
  endCall: () => void;
9
16
  toggleMute: () => void;
10
17
  toggleCamera: () => void;
11
18
  };
19
+ //# sourceMappingURL=useWebRTC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWebRTC.d.ts","sourceRoot":"","sources":["../../src/hooks/useWebRTC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAa,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3F,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9E,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AAOD,wBAAgB,SAAS,CAAC,IAAI,GAAE,gBAAqB;;;;sBA+CR,QAAQ;wBA8B1C,yBAAyB,QAC1B,QAAQ,UACN,MAAM;iCAyBsC,mBAAmB;;;;EA6C1E"}
@@ -1,112 +1,144 @@
1
- import { useState, useRef, useCallback, useEffect } from 'react';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useWebRTC = useWebRTC;
4
+ const react_1 = require("react");
2
5
  const ICE_SERVERS = [
3
6
  { urls: 'stun:stun.l.google.com:19302' },
4
7
  { urls: 'stun:stun1.l.google.com:19302' },
5
8
  ];
6
- export function useWebRTC() {
7
- const [session, setSession] = useState({
9
+ function useWebRTC(opts = {}) {
10
+ const { onOfferReady, onAnswerReady, onIceCandidateReady, onCallEnded } = opts;
11
+ const [session, setSession] = (0, react_1.useState)({
8
12
  state: 'idle',
9
13
  peer: null,
10
14
  startedAt: null,
11
15
  isMuted: false,
12
16
  isCameraOn: false,
13
17
  });
14
- const pcRef = useRef(null);
15
- const localStream = useRef(null);
16
- const localVideoRef = useRef(null);
17
- const remoteVideoRef = useRef(null);
18
- const updateSession = (patch) => setSession(prev => (Object.assign(Object.assign({}, prev), patch)));
19
- /** Start an outgoing call */
20
- const startCall = useCallback(async (peer, withVideo = false) => {
21
- updateSession({ state: 'calling', peer });
22
- const stream = await navigator.mediaDevices.getUserMedia({
23
- audio: true,
24
- video: withVideo,
25
- });
26
- localStream.current = stream;
27
- if (localVideoRef.current)
28
- localVideoRef.current.srcObject = stream;
18
+ const pcRef = (0, react_1.useRef)(null);
19
+ const localStream = (0, react_1.useRef)(null);
20
+ const localVideoRef = (0, react_1.useRef)(null);
21
+ const remoteVideoRef = (0, react_1.useRef)(null);
22
+ const currentCallId = (0, react_1.useRef)(null);
23
+ const peerUidRef = (0, react_1.useRef)(null);
24
+ const updateSession = (0, react_1.useCallback)((patch) => setSession(prev => (Object.assign(Object.assign({}, prev), patch))), []);
25
+ const buildPc = (0, react_1.useCallback)((peer) => {
29
26
  const pc = new RTCPeerConnection({ iceServers: ICE_SERVERS });
30
27
  pcRef.current = pc;
31
- stream.getTracks().forEach(t => pc.addTrack(t, stream));
28
+ peerUidRef.current = peer.uid;
32
29
  pc.ontrack = e => {
33
30
  if (remoteVideoRef.current)
34
31
  remoteVideoRef.current.srcObject = e.streams[0];
35
- updateSession({ state: 'connected', startedAt: new Date(), isCameraOn: withVideo });
32
+ updateSession({ state: 'connected', startedAt: new Date() });
36
33
  };
37
34
  pc.onicecandidate = e => {
38
- if (e.candidate) {
39
- // TODO: socket.emit('ice-candidate', { candidate: e.candidate, to: peer.uid });
40
- console.log('[WebRTC] ICE candidate ready — send via signalling:', e.candidate);
35
+ if (e.candidate && peerUidRef.current) {
36
+ onIceCandidateReady === null || onIceCandidateReady === void 0 ? void 0 : onIceCandidateReady(e.candidate.toJSON(), peerUidRef.current);
41
37
  }
42
38
  };
43
- const offer = await pc.createOffer();
44
- await pc.setLocalDescription(offer);
45
- // TODO: socket.emit('call-offer', { offer, to: peer.uid, from: 'me' });
46
- console.log('[WebRTC] Offer created send via signalling server:', offer);
47
- }, []);
48
- /** Accept an incoming call offer */
49
- const acceptCall = useCallback(async (offer, peer, withVideo = false) => {
39
+ pc.onconnectionstatechange = () => {
40
+ if (pc.connectionState === 'failed' || pc.connectionState === 'disconnected') {
41
+ updateSession({ state: 'ended' });
42
+ setTimeout(() => updateSession({ state: 'idle' }), 1800);
43
+ }
44
+ };
45
+ return pc;
46
+ }, [onIceCandidateReady, updateSession]);
47
+ const startCall = (0, react_1.useCallback)(async (peer, withVideo = false) => {
48
+ const callId = `call_${Date.now()}`;
49
+ currentCallId.current = callId;
50
+ updateSession({ state: 'calling', peer });
51
+ let stream;
52
+ try {
53
+ stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: withVideo });
54
+ }
55
+ catch (err) {
56
+ console.error('[WebRTC] getUserMedia failed:', err);
57
+ updateSession({ state: 'idle' });
58
+ return;
59
+ }
60
+ localStream.current = stream;
61
+ if (localVideoRef.current)
62
+ localVideoRef.current.srcObject = stream;
63
+ const pc = buildPc(peer);
64
+ stream.getTracks().forEach(t => pc.addTrack(t, stream));
65
+ try {
66
+ const offer = await pc.createOffer();
67
+ await pc.setLocalDescription(offer);
68
+ onOfferReady === null || onOfferReady === void 0 ? void 0 : onOfferReady(offer, peer.uid, callId);
69
+ updateSession({ isCameraOn: withVideo });
70
+ }
71
+ catch (err) {
72
+ console.error('[WebRTC] createOffer failed:', err);
73
+ }
74
+ }, [buildPc, onOfferReady, updateSession]);
75
+ const acceptCall = (0, react_1.useCallback)(async (offer, peer, callId, withVideo = false) => {
76
+ currentCallId.current = callId;
50
77
  updateSession({ state: 'connected', peer, startedAt: new Date(), isCameraOn: withVideo });
51
- const stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: withVideo });
78
+ let stream;
79
+ try {
80
+ stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: withVideo });
81
+ }
82
+ catch (err) {
83
+ console.error('[WebRTC] getUserMedia failed:', err);
84
+ return;
85
+ }
52
86
  localStream.current = stream;
53
87
  if (localVideoRef.current)
54
88
  localVideoRef.current.srcObject = stream;
55
- const pc = new RTCPeerConnection({ iceServers: ICE_SERVERS });
56
- pcRef.current = pc;
89
+ const pc = buildPc(peer);
57
90
  stream.getTracks().forEach(t => pc.addTrack(t, stream));
58
- pc.ontrack = e => {
59
- if (remoteVideoRef.current)
60
- remoteVideoRef.current.srcObject = e.streams[0];
61
- };
62
- pc.onicecandidate = e => {
63
- if (e.candidate) {
64
- // TODO: socket.emit('ice-candidate', { candidate: e.candidate, to: peer.uid });
65
- }
66
- };
67
91
  await pc.setRemoteDescription(offer);
68
92
  const answer = await pc.createAnswer();
69
93
  await pc.setLocalDescription(answer);
70
- // TODO: socket.emit('call-answer', { answer, to: peer.uid });
94
+ onAnswerReady === null || onAnswerReady === void 0 ? void 0 : onAnswerReady(answer, peer.uid, callId);
95
+ }, [buildPc, onAnswerReady, updateSession]);
96
+ const addIceCandidate = (0, react_1.useCallback)(async (candidate) => {
97
+ var _a;
98
+ try {
99
+ await ((_a = pcRef.current) === null || _a === void 0 ? void 0 : _a.addIceCandidate(new RTCIceCandidate(candidate)));
100
+ }
101
+ catch (err) {
102
+ console.warn('[WebRTC] addIceCandidate failed:', err);
103
+ }
71
104
  }, []);
72
- /** Hang up */
73
- const endCall = useCallback(() => {
74
- var _a, _b;
75
- (_a = localStream.current) === null || _a === void 0 ? void 0 : _a.getTracks().forEach(t => t.stop());
76
- (_b = pcRef.current) === null || _b === void 0 ? void 0 : _b.close();
105
+ const endCall = (0, react_1.useCallback)(() => {
106
+ var _a, _b, _c;
107
+ const callId = currentCallId.current;
108
+ const peerUid = (_a = peerUidRef.current) !== null && _a !== void 0 ? _a : undefined;
109
+ (_b = localStream.current) === null || _b === void 0 ? void 0 : _b.getTracks().forEach(t => t.stop());
110
+ (_c = pcRef.current) === null || _c === void 0 ? void 0 : _c.close();
77
111
  pcRef.current = null;
78
112
  localStream.current = null;
113
+ currentCallId.current = null;
114
+ if (callId)
115
+ onCallEnded === null || onCallEnded === void 0 ? void 0 : onCallEnded(callId, peerUid);
79
116
  updateSession({ state: 'ended', peer: null, startedAt: null });
80
117
  setTimeout(() => updateSession({ state: 'idle' }), 1800);
81
- }, []);
82
- const toggleMute = useCallback(() => {
118
+ }, [onCallEnded, updateSession]);
119
+ const toggleMute = (0, react_1.useCallback)(() => {
83
120
  if (!localStream.current)
84
121
  return;
85
- const enabled = !session.isMuted;
86
- localStream.current.getAudioTracks().forEach(t => { t.enabled = enabled; });
87
- updateSession({ isMuted: !session.isMuted });
88
- }, [session.isMuted]);
89
- const toggleCamera = useCallback(() => {
122
+ const muted = !session.isMuted;
123
+ localStream.current.getAudioTracks().forEach(t => { t.enabled = !muted; });
124
+ updateSession({ isMuted: muted });
125
+ }, [session.isMuted, updateSession]);
126
+ const toggleCamera = (0, react_1.useCallback)(() => {
90
127
  if (!localStream.current)
91
128
  return;
92
- const enabled = !session.isCameraOn;
93
- localStream.current.getVideoTracks().forEach(t => { t.enabled = enabled; });
94
- updateSession({ isCameraOn: enabled });
95
- }, [session.isCameraOn]);
96
- // Cleanup on unmount
97
- useEffect(() => () => {
129
+ const on = !session.isCameraOn;
130
+ localStream.current.getVideoTracks().forEach(t => { t.enabled = on; });
131
+ updateSession({ isCameraOn: on });
132
+ }, [session.isCameraOn, updateSession]);
133
+ (0, react_1.useEffect)(() => () => {
98
134
  var _a, _b;
99
135
  (_a = localStream.current) === null || _a === void 0 ? void 0 : _a.getTracks().forEach(t => t.stop());
100
136
  (_b = pcRef.current) === null || _b === void 0 ? void 0 : _b.close();
101
137
  }, []);
102
138
  return {
103
- session,
104
- localVideoRef,
105
- remoteVideoRef,
106
- startCall,
107
- acceptCall,
108
- endCall,
109
- toggleMute,
110
- toggleCamera,
139
+ session, localVideoRef, remoteVideoRef,
140
+ startCall, acceptCall, addIceCandidate, endCall,
141
+ toggleMute, toggleCamera,
111
142
  };
112
143
  }
144
+ //# sourceMappingURL=useWebRTC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWebRTC.js","sourceRoot":"","sources":["../../src/hooks/useWebRTC.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,9 +10,11 @@ export { MaintenanceView } from './components/MaintenanceView';
10
10
  export { BottomTabs } from './components/Tabs/BottomTabs';
11
11
  export { EmojiPicker } from './components/EmojiPicker';
12
12
  export { SlideNavMenu } from './components/SlideNavMenu';
13
+ export { ErrorBoundary } from './components/ErrorBoundary';
13
14
  export { useChat } from './hooks/useChat';
14
15
  export { useWebRTC } from './hooks/useWebRTC';
15
16
  export { useRemoteConfig } from './hooks/useRemoteConfig';
17
+ export { useSocket } from './hooks/useSocket';
16
18
  export { shouldShowPrivacyNotice, dismissPrivacyNotice, getPrivacyDismissedAt } from './utils/privacyConsent';
17
19
  export { submitReenableRequest } from './utils/reenableRequest';
18
20
  export type { ReenableRequestPayload } from './utils/reenableRequest';
@@ -22,3 +24,7 @@ export { loadPresenceStatus, savePresenceStatus, resolveInitialPresence, syncPre
22
24
  export type { PresenceSyncPayload } from './utils/presenceStatus';
23
25
  export { avatarColor, initials, formatTime, formatDate, generateTranscript, downloadText, truncateWords } from './utils/chat';
24
26
  export type { ChatWidgetProps, ChatWidgetTheme, ChatWidgetViewer, WidgetConfig, RemoteChatData, ChatUser, ChatMessage, Ticket, RecentChat, CallSession, CallState, ChatStatus, ChatType, UserType, OnlineStatus, Screen, BottomTab, UserListContext, MessageType, LocalEnvConfig, PresenceStatus, } from './types';
27
+ export type { UseSocketOptions, SocketStatus, SocketMessageAck } from './hooks/useSocket';
28
+ export type { UseChatOptions } from './hooks/useChat';
29
+ export type { UseWebRTCOptions } from './hooks/useWebRTC';
30
+ //# 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,UAAU,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAc,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAU,6BAA6B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAc,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAO,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAY,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAS,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAc,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAS,8BAA8B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAc,8BAA8B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAa,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAY,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAW,4BAA4B,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,MAAiB,iBAAiB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAe,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAS,yBAAyB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAe,mBAAmB,CAAC;AAEvD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAwB,eAAe,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9H,YAAY,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9H,YAAY,EACV,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAClD,YAAY,EAAE,cAAc,EAC5B,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EACzC,WAAW,EAAE,SAAS,EACtB,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAC5C,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAC/C,cAAc,EAAE,cAAc,GAC/B,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,21 +1,67 @@
1
- export { ChatWidget, default } from './components/ChatWidget';
2
- export { HomeScreen } from './components/HomeScreen';
3
- export { UserListScreen } from './components/UserListScreen';
4
- export { ChatScreen } from './components/ChatScreen';
5
- export { RecentChatsScreen } from './components/RecentChatsScreen';
6
- export { TicketScreen } from './components/TicketScreen';
7
- export { BlockListScreen } from './components/BlockList';
8
- export { CallScreen } from './components/CallScreen';
9
- export { MaintenanceView } from './components/MaintenanceView';
10
- export { BottomTabs } from './components/Tabs/BottomTabs';
11
- export { EmojiPicker } from './components/EmojiPicker';
12
- export { SlideNavMenu } from './components/SlideNavMenu';
13
- export { useChat } from './hooks/useChat';
14
- export { useWebRTC } from './hooks/useWebRTC';
15
- export { useRemoteConfig } from './hooks/useRemoteConfig';
16
- export { shouldShowPrivacyNotice, dismissPrivacyNotice, getPrivacyDismissedAt } from './utils/privacyConsent';
17
- export { submitReenableRequest } from './utils/reenableRequest';
18
- export { loadLocalConfig, fetchRemoteChatData } from './config';
19
- export { mergeTheme, darken } from './utils/theme';
20
- export { loadPresenceStatus, savePresenceStatus, resolveInitialPresence, syncPresenceToServer } from './utils/presenceStatus';
21
- export { avatarColor, initials, formatTime, formatDate, generateTranscript, downloadText, truncateWords } from './utils/chat';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.truncateWords = exports.downloadText = exports.generateTranscript = exports.formatDate = exports.formatTime = exports.initials = exports.avatarColor = exports.syncPresenceToServer = exports.resolveInitialPresence = exports.savePresenceStatus = exports.loadPresenceStatus = exports.darken = exports.mergeTheme = exports.fetchRemoteChatData = exports.loadLocalConfig = exports.submitReenableRequest = exports.getPrivacyDismissedAt = exports.dismissPrivacyNotice = exports.shouldShowPrivacyNotice = exports.useSocket = exports.useRemoteConfig = exports.useWebRTC = exports.useChat = exports.ErrorBoundary = exports.SlideNavMenu = exports.EmojiPicker = exports.BottomTabs = exports.MaintenanceView = exports.CallScreen = exports.BlockListScreen = exports.TicketScreen = exports.RecentChatsScreen = exports.ChatScreen = exports.UserListScreen = exports.HomeScreen = exports.default = exports.ChatWidget = void 0;
7
+ var ChatWidget_1 = require("./components/ChatWidget");
8
+ Object.defineProperty(exports, "ChatWidget", { enumerable: true, get: function () { return ChatWidget_1.ChatWidget; } });
9
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(ChatWidget_1).default; } });
10
+ var HomeScreen_1 = require("./components/HomeScreen");
11
+ Object.defineProperty(exports, "HomeScreen", { enumerable: true, get: function () { return HomeScreen_1.HomeScreen; } });
12
+ var UserListScreen_1 = require("./components/UserListScreen");
13
+ Object.defineProperty(exports, "UserListScreen", { enumerable: true, get: function () { return UserListScreen_1.UserListScreen; } });
14
+ var ChatScreen_1 = require("./components/ChatScreen");
15
+ Object.defineProperty(exports, "ChatScreen", { enumerable: true, get: function () { return ChatScreen_1.ChatScreen; } });
16
+ var RecentChatsScreen_1 = require("./components/RecentChatsScreen");
17
+ Object.defineProperty(exports, "RecentChatsScreen", { enumerable: true, get: function () { return RecentChatsScreen_1.RecentChatsScreen; } });
18
+ var TicketScreen_1 = require("./components/TicketScreen");
19
+ Object.defineProperty(exports, "TicketScreen", { enumerable: true, get: function () { return TicketScreen_1.TicketScreen; } });
20
+ var BlockList_1 = require("./components/BlockList");
21
+ Object.defineProperty(exports, "BlockListScreen", { enumerable: true, get: function () { return BlockList_1.BlockListScreen; } });
22
+ var CallScreen_1 = require("./components/CallScreen");
23
+ Object.defineProperty(exports, "CallScreen", { enumerable: true, get: function () { return CallScreen_1.CallScreen; } });
24
+ var MaintenanceView_1 = require("./components/MaintenanceView");
25
+ Object.defineProperty(exports, "MaintenanceView", { enumerable: true, get: function () { return MaintenanceView_1.MaintenanceView; } });
26
+ var BottomTabs_1 = require("./components/Tabs/BottomTabs");
27
+ Object.defineProperty(exports, "BottomTabs", { enumerable: true, get: function () { return BottomTabs_1.BottomTabs; } });
28
+ var EmojiPicker_1 = require("./components/EmojiPicker");
29
+ Object.defineProperty(exports, "EmojiPicker", { enumerable: true, get: function () { return EmojiPicker_1.EmojiPicker; } });
30
+ var SlideNavMenu_1 = require("./components/SlideNavMenu");
31
+ Object.defineProperty(exports, "SlideNavMenu", { enumerable: true, get: function () { return SlideNavMenu_1.SlideNavMenu; } });
32
+ var ErrorBoundary_1 = require("./components/ErrorBoundary");
33
+ Object.defineProperty(exports, "ErrorBoundary", { enumerable: true, get: function () { return ErrorBoundary_1.ErrorBoundary; } });
34
+ var useChat_1 = require("./hooks/useChat");
35
+ Object.defineProperty(exports, "useChat", { enumerable: true, get: function () { return useChat_1.useChat; } });
36
+ var useWebRTC_1 = require("./hooks/useWebRTC");
37
+ Object.defineProperty(exports, "useWebRTC", { enumerable: true, get: function () { return useWebRTC_1.useWebRTC; } });
38
+ var useRemoteConfig_1 = require("./hooks/useRemoteConfig");
39
+ Object.defineProperty(exports, "useRemoteConfig", { enumerable: true, get: function () { return useRemoteConfig_1.useRemoteConfig; } });
40
+ var useSocket_1 = require("./hooks/useSocket");
41
+ Object.defineProperty(exports, "useSocket", { enumerable: true, get: function () { return useSocket_1.useSocket; } });
42
+ var privacyConsent_1 = require("./utils/privacyConsent");
43
+ Object.defineProperty(exports, "shouldShowPrivacyNotice", { enumerable: true, get: function () { return privacyConsent_1.shouldShowPrivacyNotice; } });
44
+ Object.defineProperty(exports, "dismissPrivacyNotice", { enumerable: true, get: function () { return privacyConsent_1.dismissPrivacyNotice; } });
45
+ Object.defineProperty(exports, "getPrivacyDismissedAt", { enumerable: true, get: function () { return privacyConsent_1.getPrivacyDismissedAt; } });
46
+ var reenableRequest_1 = require("./utils/reenableRequest");
47
+ Object.defineProperty(exports, "submitReenableRequest", { enumerable: true, get: function () { return reenableRequest_1.submitReenableRequest; } });
48
+ var config_1 = require("./config");
49
+ Object.defineProperty(exports, "loadLocalConfig", { enumerable: true, get: function () { return config_1.loadLocalConfig; } });
50
+ Object.defineProperty(exports, "fetchRemoteChatData", { enumerable: true, get: function () { return config_1.fetchRemoteChatData; } });
51
+ var theme_1 = require("./utils/theme");
52
+ Object.defineProperty(exports, "mergeTheme", { enumerable: true, get: function () { return theme_1.mergeTheme; } });
53
+ Object.defineProperty(exports, "darken", { enumerable: true, get: function () { return theme_1.darken; } });
54
+ var presenceStatus_1 = require("./utils/presenceStatus");
55
+ Object.defineProperty(exports, "loadPresenceStatus", { enumerable: true, get: function () { return presenceStatus_1.loadPresenceStatus; } });
56
+ Object.defineProperty(exports, "savePresenceStatus", { enumerable: true, get: function () { return presenceStatus_1.savePresenceStatus; } });
57
+ Object.defineProperty(exports, "resolveInitialPresence", { enumerable: true, get: function () { return presenceStatus_1.resolveInitialPresence; } });
58
+ Object.defineProperty(exports, "syncPresenceToServer", { enumerable: true, get: function () { return presenceStatus_1.syncPresenceToServer; } });
59
+ var chat_1 = require("./utils/chat");
60
+ Object.defineProperty(exports, "avatarColor", { enumerable: true, get: function () { return chat_1.avatarColor; } });
61
+ Object.defineProperty(exports, "initials", { enumerable: true, get: function () { return chat_1.initials; } });
62
+ Object.defineProperty(exports, "formatTime", { enumerable: true, get: function () { return chat_1.formatTime; } });
63
+ Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return chat_1.formatDate; } });
64
+ Object.defineProperty(exports, "generateTranscript", { enumerable: true, get: function () { return chat_1.generateTranscript; } });
65
+ Object.defineProperty(exports, "downloadText", { enumerable: true, get: function () { return chat_1.downloadText; } });
66
+ Object.defineProperty(exports, "truncateWords", { enumerable: true, get: function () { return chat_1.truncateWords; } });
67
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8D;AAArD,wGAAA,UAAU,OAAA;AAAE,sHAAA,OAAO,OAAA;AAC5B,sDAA6D;AAApD,wGAAA,UAAU,OAAA;AACnB,8DAAiE;AAAxD,gHAAA,cAAc,OAAA;AACvB,sDAA6D;AAApD,wGAAA,UAAU,OAAA;AACnB,oEAAoE;AAA3D,sHAAA,iBAAiB,OAAA;AAC1B,0DAA+D;AAAtD,4GAAA,YAAY,OAAA;AACrB,oDAA4D;AAAnD,4GAAA,eAAe,OAAA;AACxB,sDAA6D;AAApD,wGAAA,UAAU,OAAA;AACnB,gEAAkE;AAAzD,kHAAA,eAAe,OAAA;AACxB,2DAAkE;AAAzD,wGAAA,UAAU,OAAA;AACnB,wDAA8D;AAArD,0GAAA,WAAW,OAAA;AACpB,0DAA+D;AAAtD,4GAAA,YAAY,OAAA;AACrB,4DAAgE;AAAvD,8GAAA,aAAa,OAAA;AAEtB,2CAAqD;AAA5C,kGAAA,OAAO,OAAA;AAChB,+CAAuD;AAA9C,sGAAA,SAAS,OAAA;AAClB,2DAA6D;AAApD,kHAAA,eAAe,OAAA;AACxB,+CAAuD;AAA9C,sGAAA,SAAS,OAAA;AAElB,yDAA8G;AAArG,yHAAA,uBAAuB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAC7E,2DAAgE;AAAvD,wHAAA,qBAAqB,OAAA;AAE9B,mCAAgE;AAAvD,yGAAA,eAAe,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAC7C,uCAAqE;AAA5D,mGAAA,UAAU,OAAA;AAAE,+FAAA,MAAM,OAAA;AAC3B,yDAA8H;AAArH,oHAAA,kBAAkB,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAAE,wHAAA,sBAAsB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAE7F,qCAA8H;AAArH,mGAAA,WAAW,OAAA;AAAE,gGAAA,QAAQ,OAAA;AAAE,kGAAA,UAAU,OAAA;AAAE,kGAAA,UAAU,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AAAE,oGAAA,YAAY,OAAA;AAAE,qGAAA,aAAa,OAAA"}
@@ -175,3 +175,4 @@ export interface ChatWidgetProps {
175
175
  theme?: ChatWidgetTheme;
176
176
  viewer?: ChatWidgetViewer;
177
177
  }
178
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -13,3 +13,4 @@ export declare function generateTranscript(messages: ChatMessage[], peer: ChatUs
13
13
  export declare function truncateWords(text: string, maxWords: number): string;
14
14
  /** Trigger a file download in the browser */
15
15
  export declare function downloadText(content: string, filename: string): void;
16
+ //# sourceMappingURL=chat.d.ts.map