@droppii-org/chat-mobile 0.2.23 → 0.2.24
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/lib/module/config/uploadLimits.js +13 -0
- package/lib/module/config/uploadLimits.js.map +1 -0
- package/lib/module/hooks/useChatCompose.js +142 -0
- package/lib/module/hooks/useChatCompose.js.map +1 -0
- package/lib/module/hooks/useImageAttachment.js +71 -151
- package/lib/module/hooks/useImageAttachment.js.map +1 -1
- package/lib/module/hooks/useSendAttachment.js +2 -2
- package/lib/module/hooks/useSendAttachment.js.map +1 -1
- package/lib/module/hooks/useVideoAttachment.js +4 -4
- package/lib/module/hooks/useVideoAttachment.js.map +1 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +50 -185
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetail.js +16 -137
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/index.js +0 -1
- package/lib/module/screens/chat-detail/index.js.map +1 -1
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js +2 -2
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js.map +1 -1
- package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js +3 -3
- package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js.map +1 -1
- package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js +2 -1
- package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js.map +1 -1
- package/lib/module/services/attachmentOrchestrator.js +6 -5
- package/lib/module/services/attachmentOrchestrator.js.map +1 -1
- package/lib/module/utils/imageUtils.js +3 -3
- package/lib/module/utils/imageUtils.js.map +1 -1
- package/lib/module/utils/pLimit.js +19 -0
- package/lib/module/utils/pLimit.js.map +1 -0
- package/lib/module/utils/videoThumbnail.js +8 -3
- package/lib/module/utils/videoThumbnail.js.map +1 -1
- package/lib/module/utils/videoThumbnailUpload.js +76 -0
- package/lib/module/utils/videoThumbnailUpload.js.map +1 -0
- package/lib/typescript/src/config/uploadLimits.d.ts +7 -0
- package/lib/typescript/src/config/uploadLimits.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useChatCompose.d.ts +27 -0
- package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useImageAttachment.d.ts +2 -2
- package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useSendAttachment.d.ts +1 -1
- package/lib/typescript/src/hooks/useSendAttachment.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useVideoAttachment.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +0 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +5 -2
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/index.d.ts +0 -2
- package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/types.d.ts +1 -35
- package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/videoAttachmentHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentOrchestrator.d.ts +1 -1
- package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -1
- package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -1
- package/lib/typescript/src/utils/pLimit.d.ts +6 -0
- package/lib/typescript/src/utils/pLimit.d.ts.map +1 -0
- package/lib/typescript/src/utils/videoThumbnail.d.ts.map +1 -1
- package/lib/typescript/src/utils/videoThumbnailUpload.d.ts +11 -0
- package/lib/typescript/src/utils/videoThumbnailUpload.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/config/uploadLimits.ts +11 -0
- package/src/hooks/useChatCompose.ts +186 -0
- package/src/hooks/useImageAttachment.ts +110 -197
- package/src/hooks/useSendAttachment.ts +3 -6
- package/src/hooks/useVideoAttachment.ts +4 -4
- package/src/index.tsx +1 -5
- package/src/screens/chat-detail/ChatComposer.tsx +88 -240
- package/src/screens/chat-detail/ChatDetail.tsx +24 -195
- package/src/screens/chat-detail/index.ts +1 -5
- package/src/screens/chat-detail/types.ts +1 -38
- package/src/services/attachmentHandlers/fileAttachmentHandler.ts +3 -2
- package/src/services/attachmentHandlers/imageAttachmentHandler.ts +6 -3
- package/src/services/attachmentHandlers/videoAttachmentHandler.ts +2 -1
- package/src/services/attachmentOrchestrator.ts +6 -8
- package/src/utils/imageUtils.ts +3 -4
- package/src/utils/pLimit.ts +20 -0
- package/src/utils/videoThumbnail.ts +10 -3
- package/src/utils/videoThumbnailUpload.ts +103 -0
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +0 -288
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +0 -1
- package/lib/module/utils/giftedChatMessage.js +0 -90
- package/lib/module/utils/giftedChatMessage.js.map +0 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts +0 -26
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +0 -1
- package/lib/typescript/src/utils/giftedChatMessage.d.ts +0 -10
- package/lib/typescript/src/utils/giftedChatMessage.d.ts.map +0 -1
- package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +0 -386
- package/src/utils/giftedChatMessage.ts +0 -137
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { memo,
|
|
3
|
+
import { memo, useCallback, useEffect, useMemo, useRef } from 'react';
|
|
4
4
|
import { Platform, StyleSheet } from 'react-native';
|
|
5
5
|
import { KeyboardAvoidingView } from 'react-native-keyboard-controller';
|
|
6
6
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
@@ -12,10 +12,7 @@ import { useConversation, useConversationStore } from "../../store/index.js";
|
|
|
12
12
|
import ChatDetailHeader from "./ChatDetailHeader.js";
|
|
13
13
|
import { ChatListLegend } from "./ChatListLegend.js";
|
|
14
14
|
import { ChatComposer } from "./ChatComposer.js";
|
|
15
|
-
import { DEFAULT_ATTACHMENT_ACTIONS, DEFAULT_Chat_QUICK_ACTIONS } from "./constants.js";
|
|
16
15
|
import { getConversationAvatarUri, getConversationSubtitle, getConversationTitle, shouldShowAddMember } from "./conversationHeader.utils.js";
|
|
17
|
-
import { useSendMessage } from "../../hooks/message/useSendMessage.js";
|
|
18
|
-
import { useMessageStore } from "../../store/message.js";
|
|
19
16
|
import { ChatDetailProvider } from "../../context/ChatDetailContext.js";
|
|
20
17
|
import { normalizeUrl } from "../../utils/url.js";
|
|
21
18
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -33,50 +30,18 @@ const ChatDetail = /*#__PURE__*/memo(({
|
|
|
33
30
|
onPressAddMember,
|
|
34
31
|
onPressMenu,
|
|
35
32
|
onPressAvatar,
|
|
36
|
-
showQuickActions = true,
|
|
37
|
-
quickActions,
|
|
38
|
-
inputPlaceholder,
|
|
39
|
-
onChangeInput,
|
|
40
|
-
onPressAttach,
|
|
41
|
-
onPressEmoji,
|
|
42
|
-
attachmentActions,
|
|
43
|
-
onQuickActionPress,
|
|
44
|
-
onAttachmentAction,
|
|
45
|
-
renderQuickAction,
|
|
46
|
-
renderQuickActions,
|
|
47
|
-
renderAttachmentAction,
|
|
48
|
-
attachmentColumns,
|
|
49
33
|
onPressUrl,
|
|
50
34
|
customMessageItemFactory
|
|
51
35
|
}) => {
|
|
52
36
|
const navigation = useNavigation();
|
|
53
|
-
const [internalInput, setInternalInput] = useState('');
|
|
54
37
|
const mediaViewerRef = useRef(null);
|
|
55
38
|
const conversation = useConversation(conversationId);
|
|
56
|
-
// const user = conversation?.peer;
|
|
57
|
-
|
|
58
|
-
// Default handlers when props not provided
|
|
59
39
|
const handleBackDefault = useCallback(() => {
|
|
60
40
|
navigation.goBack();
|
|
61
41
|
}, [navigation]);
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
console.log('[quick-action]', action.id);
|
|
66
|
-
}
|
|
67
|
-
})), []);
|
|
68
|
-
const attachmentActionsDefault = useMemo(() => DEFAULT_ATTACHMENT_ACTIONS.map(action => ({
|
|
69
|
-
...action,
|
|
70
|
-
onPress: () => {
|
|
71
|
-
console.log('[attachment-action]', action.id);
|
|
72
|
-
}
|
|
73
|
-
})), []);
|
|
74
|
-
const {
|
|
75
|
-
sendMessage
|
|
76
|
-
} = useSendMessage();
|
|
77
|
-
const {
|
|
78
|
-
pushNewMessage
|
|
79
|
-
} = useMessageStore();
|
|
42
|
+
const handleMediaPress = useCallback((items, index) => {
|
|
43
|
+
mediaViewerRef.current?.show(items, index);
|
|
44
|
+
}, []);
|
|
80
45
|
const {
|
|
81
46
|
messages,
|
|
82
47
|
currentUserId,
|
|
@@ -88,17 +53,6 @@ const ChatDetail = /*#__PURE__*/memo(({
|
|
|
88
53
|
conversationId,
|
|
89
54
|
enabled
|
|
90
55
|
});
|
|
91
|
-
|
|
92
|
-
// Callback for attachment messages - add them to the message list
|
|
93
|
-
const handleAttachmentMessageSent = useCallback(message => {
|
|
94
|
-
if (__DEV__) console.log('[ChatDetail] Attachment message received:', {
|
|
95
|
-
clientMsgID: message?.clientMsgID,
|
|
96
|
-
contentType: message?.contentType
|
|
97
|
-
});
|
|
98
|
-
if (message) {
|
|
99
|
-
pushNewMessage(message);
|
|
100
|
-
}
|
|
101
|
-
}, [pushNewMessage]);
|
|
102
56
|
useEffect(() => {
|
|
103
57
|
useConversationStore.getState().setCurrentConversation(conversationId);
|
|
104
58
|
}, [conversationId]);
|
|
@@ -107,65 +61,15 @@ const ChatDetail = /*#__PURE__*/memo(({
|
|
|
107
61
|
const resolvedAvatarFullName = avatarFullName ?? resolvedTitle;
|
|
108
62
|
const resolvedShowAddMember = showAddMember ?? shouldShowAddMember(conversation);
|
|
109
63
|
const resolvedSubtitle = useMemo(() => {
|
|
110
|
-
if (subtitle !== undefined)
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
if (getSubtitle && conversation) {
|
|
114
|
-
return getSubtitle(conversation);
|
|
115
|
-
}
|
|
64
|
+
if (subtitle !== undefined) return subtitle;
|
|
65
|
+
if (getSubtitle && conversation) return getSubtitle(conversation);
|
|
116
66
|
return getConversationSubtitle(conversation);
|
|
117
67
|
}, [conversation, getSubtitle, subtitle]);
|
|
118
|
-
const currentInput = internalInput;
|
|
119
|
-
const handleChangeText = useCallback(text => {
|
|
120
|
-
const newText = text ?? '';
|
|
121
|
-
if (onChangeInput) {
|
|
122
|
-
onChangeInput(newText);
|
|
123
|
-
} else {
|
|
124
|
-
setInternalInput(newText);
|
|
125
|
-
}
|
|
126
|
-
}, [onChangeInput]);
|
|
127
|
-
const handleSend = useCallback(async urlMetadata => {
|
|
128
|
-
// Support captured text passed from attachment handler
|
|
129
|
-
const capturedText = urlMetadata?._capturedText;
|
|
130
|
-
const cleanMetadata = capturedText ? (({
|
|
131
|
-
_capturedText,
|
|
132
|
-
...rest
|
|
133
|
-
}) => rest)(urlMetadata) : urlMetadata;
|
|
134
|
-
const text = (capturedText || currentInput).trim();
|
|
135
|
-
|
|
136
|
-
// Validate: must have text OR preview metadata (text is optional if preview exists)
|
|
137
|
-
// If metadata exists, trust it (useLinkPreview is responsible for validity)
|
|
138
|
-
if (!text && !cleanMetadata) {
|
|
139
|
-
if (__DEV__) console.warn('[ChatDetail] No text or preview link to send');
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Log if metadata seems incomplete
|
|
144
|
-
if (cleanMetadata && !cleanMetadata.url) {
|
|
145
|
-
if (__DEV__) console.warn('[ChatDetail] Preview metadata missing URL - check useLinkPreview');
|
|
146
|
-
}
|
|
147
|
-
try {
|
|
148
|
-
await sendMessage({
|
|
149
|
-
files: [],
|
|
150
|
-
plainText: text,
|
|
151
|
-
urlMetadata: cleanMetadata || undefined
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
// Clear input after successful send
|
|
155
|
-
if (onChangeInput) {
|
|
156
|
-
onChangeInput('');
|
|
157
|
-
} else {
|
|
158
|
-
setInternalInput('');
|
|
159
|
-
}
|
|
160
|
-
} catch (error) {
|
|
161
|
-
if (__DEV__) console.error('[ChatDetail] Failed to send message:', {
|
|
162
|
-
error,
|
|
163
|
-
text: text.substring(0, 50),
|
|
164
|
-
hasPreview: !!cleanMetadata
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
}, [currentInput, onChangeInput, sendMessage]);
|
|
168
68
|
const insets = useSafeAreaInsets();
|
|
69
|
+
const keyboardVerticalOffset = useMemo(() => Platform.select({
|
|
70
|
+
android: insets.bottom,
|
|
71
|
+
default: 0
|
|
72
|
+
}), [insets.bottom]);
|
|
169
73
|
const handlePressUrl = useCallback(url => {
|
|
170
74
|
onPressUrl?.(normalizeUrl(url));
|
|
171
75
|
}, [onPressUrl]);
|
|
@@ -181,17 +85,14 @@ const ChatDetail = /*#__PURE__*/memo(({
|
|
|
181
85
|
avatarFullName: resolvedAvatarFullName,
|
|
182
86
|
showAddMember: resolvedShowAddMember,
|
|
183
87
|
onBack: onBack ?? handleBackDefault,
|
|
184
|
-
onPressSearch: onPressSearch
|
|
185
|
-
onPressAddMember: onPressAddMember
|
|
186
|
-
onPressMenu: onPressMenu
|
|
187
|
-
onPressAvatar: onPressAvatar
|
|
88
|
+
onPressSearch: onPressSearch,
|
|
89
|
+
onPressAddMember: onPressAddMember,
|
|
90
|
+
onPressMenu: onPressMenu,
|
|
91
|
+
onPressAvatar: onPressAvatar
|
|
188
92
|
}), /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
|
|
189
93
|
style: styles.keyboardAvoiding,
|
|
190
94
|
behavior: "padding",
|
|
191
|
-
keyboardVerticalOffset:
|
|
192
|
-
android: insets.bottom,
|
|
193
|
-
default: 0
|
|
194
|
-
}),
|
|
95
|
+
keyboardVerticalOffset: keyboardVerticalOffset,
|
|
195
96
|
children: [/*#__PURE__*/_jsx(ChatListLegend, {
|
|
196
97
|
messages: messages,
|
|
197
98
|
currentUserId: currentUserId,
|
|
@@ -200,31 +101,9 @@ const ChatDetail = /*#__PURE__*/memo(({
|
|
|
200
101
|
isLoading: isLoading,
|
|
201
102
|
isLoadingEarlier: isLoadingEarlier,
|
|
202
103
|
hasMoreEarlier: hasMoreEarlier,
|
|
203
|
-
onMediaPress:
|
|
204
|
-
mediaViewerRef.current?.show(items, index);
|
|
205
|
-
},
|
|
104
|
+
onMediaPress: handleMediaPress,
|
|
206
105
|
onPressUrl: handlePressUrl
|
|
207
106
|
}), /*#__PURE__*/_jsx(ChatComposer, {
|
|
208
|
-
value: currentInput,
|
|
209
|
-
placeholder: inputPlaceholder,
|
|
210
|
-
onChangeText: handleChangeText,
|
|
211
|
-
onSend: handleSend,
|
|
212
|
-
onMessageSent: handleAttachmentMessageSent,
|
|
213
|
-
onPressAttach: onPressAttach ?? (() => console.log('[onPressAttach]')),
|
|
214
|
-
onPressEmoji: onPressEmoji ?? (() => console.log('[onPressEmoji]')),
|
|
215
|
-
showQuickActions: showQuickActions,
|
|
216
|
-
quickActions: quickActions ?? quickActionsDefault,
|
|
217
|
-
attachmentActions: attachmentActions ?? attachmentActionsDefault,
|
|
218
|
-
onQuickActionPress: onQuickActionPress ?? (action => {
|
|
219
|
-
console.log('[onQuickActionPress]', action.id, action.meta);
|
|
220
|
-
}),
|
|
221
|
-
onAttachmentAction: onAttachmentAction ?? (action => {
|
|
222
|
-
console.log('[onAttachmentAction]', action.id, action.meta);
|
|
223
|
-
}),
|
|
224
|
-
renderQuickAction: renderQuickAction,
|
|
225
|
-
renderQuickActions: renderQuickActions,
|
|
226
|
-
renderAttachmentAction: renderAttachmentAction,
|
|
227
|
-
attachmentColumns: attachmentColumns,
|
|
228
107
|
isEmptyMessage: messages?.length === 0
|
|
229
108
|
})]
|
|
230
109
|
}), /*#__PURE__*/_jsx(MediaViewerModal, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","KeyboardAvoidingView","useSafeAreaInsets","KContainer","useNavigation","useChatMessages","MediaViewerModal","useConversation","useConversationStore","ChatDetailHeader","ChatListLegend","ChatComposer","getConversationAvatarUri","getConversationSubtitle","getConversationTitle","shouldShowAddMember","ChatDetailProvider","normalizeUrl","jsx","_jsx","jsxs","_jsxs","ChatDetail","conversationId","enabled","title","subtitle","avatarUri","avatarFullName","showAddMember","getSubtitle","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","onPressUrl","customMessageItemFactory","navigation","mediaViewerRef","conversation","handleBackDefault","goBack","handleMediaPress","items","index","current","show","messages","currentUserId","onLoadEarlier","isLoading","isLoadingEarlier","hasMoreEarlier","getState","setCurrentConversation","resolvedTitle","resolvedAvatarUri","resolvedAvatarFullName","resolvedShowAddMember","resolvedSubtitle","undefined","insets","keyboardVerticalOffset","select","android","bottom","default","handlePressUrl","url","children","Page","flex","edges","style","styles","keyboardAvoiding","behavior","onMediaPress","isEmptyMessage","length","ref","displayName","create"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetail.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,5 +8,4 @@ export { ChatAttachmentPanel } from "./ChatAttachmentPanel.js";
|
|
|
8
8
|
export { DEFAULT_Chat_QUICK_ACTIONS, DEFAULT_ATTACHMENT_ACTIONS, DEFAULT_ATTACHMENT_PANEL_HEIGHT } from "./constants.js";
|
|
9
9
|
export { getConversationTitle, getConversationAvatarUri, getConversationSubtitle, shouldShowAddMember } from "./conversationHeader.utils.js";
|
|
10
10
|
export { DChatMessageType, CUSTOM_MESSAGE_DATA_TYPE } from "../../types/message.js";
|
|
11
|
-
export { mapOpenIMMessageToGiftedChat, mapOpenIMMessagesToGiftedChat } from "../../utils/giftedChatMessage.js";
|
|
12
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","ChatDetail","ChatDetailHeader","ChatComposer","ChatQuickActions","ChatAttachmentPanel","DEFAULT_Chat_QUICK_ACTIONS","DEFAULT_ATTACHMENT_ACTIONS","DEFAULT_ATTACHMENT_PANEL_HEIGHT","getConversationTitle","getConversationAvatarUri","getConversationSubtitle","shouldShowAddMember","DChatMessageType","CUSTOM_MESSAGE_DATA_TYPE"
|
|
1
|
+
{"version":3,"names":["default","ChatDetail","ChatDetailHeader","ChatComposer","ChatQuickActions","ChatAttachmentPanel","DEFAULT_Chat_QUICK_ACTIONS","DEFAULT_ATTACHMENT_ACTIONS","DEFAULT_ATTACHMENT_PANEL_HEIGHT","getConversationTitle","getConversationAvatarUri","getConversationSubtitle","shouldShowAddMember","DChatMessageType","CUSTOM_MESSAGE_DATA_TYPE"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/index.ts"],"mappings":";;AAAA,SAASA,OAAO,IAAIC,UAAU,QAAQ,iBAAc;AACpD,SAASD,OAAO,IAAIE,gBAAgB,QAAQ,uBAAoB;AAChE,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SACEC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,+BAA+B,QAC1B,gBAAa;AACpB,SACEC,oBAAoB,EACpBC,wBAAwB,EACxBC,uBAAuB,EACvBC,mBAAmB,QACd,+BAA4B;AAenC,SACEC,gBAAgB,EAChBC,wBAAwB,QACnB,wBAAqB","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
export const MAX_FILE_SIZE =
|
|
3
|
+
import { UPLOAD_LIMITS } from "../../config/uploadLimits.js";
|
|
4
|
+
export const MAX_FILE_SIZE = UPLOAD_LIMITS.file;
|
|
5
5
|
export class FileAttachmentHandler {
|
|
6
6
|
validate(attachment) {
|
|
7
7
|
if (attachment.type !== 'file') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["UPLOAD_LIMITS","MAX_FILE_SIZE","file","FileAttachmentHandler","validate","attachment","type","valid","reason","sourceFile","filename","size","buildPayload","uploadedUrl","fileElem","uuid","id","fileName","fileSize","fileType","mimeType","sourceUrl","console","warn","substring"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/fileAttachmentHandler.ts"],"mappings":";;AAWA,SAASA,aAAa,QAAQ,8BAA2B;AAEzD,OAAO,MAAMC,aAAa,GAAGD,aAAa,CAACE,IAAI;AAE/C,OAAO,MAAMC,qBAAqB,CAA+B;EAC/DC,QAAQA,CACNC,UAAsB,EAC8B;IACpD,IAAIA,UAAU,CAACC,IAAI,KAAK,MAAM,EAAE;MAC9B,OAAO;QACLC,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,MAAM;MAAEC;IAAW,CAAC,GAAGJ,UAAU;IAEjC,IAAI,CAACI,UAAU,CAACC,QAAQ,EAAE;MACxB,OAAO;QACLH,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAI,CAACC,UAAU,CAACE,IAAI,EAAE;MACpB,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAIC,UAAU,CAACE,IAAI,GAAGV,aAAa,EAAE;MACnC,OAAO;QACLM,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,8BAA8BP,aAAa,GAAG,IAAI,GAAG,IAAI;MACnE,CAAC;IACH;IAEA,OAAO;MAAEM,KAAK,EAAE;IAAK,CAAC;EACxB;EAEA,MAAMK,YAAYA,CAChBP,UAAsB,EACtBQ,WAAmB,EACA;IACnB,MAAMX,IAAI,GAAGG,UAA4B;IACzC,MAAM;MAAEI;IAAW,CAAC,GAAGP,IAAI;IAE3B,MAAMY,QAAkB,GAAG;MACzBC,IAAI,EAAEV,UAAU,CAACW,EAAE;MACnBC,QAAQ,EAAER,UAAU,CAACC,QAAQ;MAC7BQ,QAAQ,EAAET,UAAU,CAACE,IAAI;MACzBQ,QAAQ,EAAEV,UAAU,CAACW,QAAQ;MAC7BC,SAAS,EAAER;IACb,CAAC;IAEDS,OAAO,CAACC,IAAI,CAAC,uCAAuC,EAAE;MACpDR,IAAI,EAAED,QAAQ,CAACC,IAAI;MACnBE,QAAQ,EAAEH,QAAQ,CAACG,QAAQ;MAC3BC,QAAQ,EAAEJ,QAAQ,CAACI,QAAQ;MAC3BC,QAAQ,EAAEL,QAAQ,CAACK,QAAQ;MAC3BE,SAAS,EAAER,WAAW,CAACW,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;IAC5C,CAAC,CAAC;IAEF,OAAOV,QAAQ;EACjB;AACF;AAEA,eAAe,IAAIX,qBAAqB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { generateUUID } from "../../utils/imageUtils.js";
|
|
4
|
+
import { UPLOAD_LIMITS } from "../../config/uploadLimits.js";
|
|
4
5
|
export const ImageAttachmentHandler = {
|
|
5
6
|
validate(attachment) {
|
|
6
|
-
|
|
7
|
-
if (attachment.sourceFile.size > MAX_SIZE) {
|
|
7
|
+
if (attachment.sourceFile.size > UPLOAD_LIMITS.image) {
|
|
8
8
|
return {
|
|
9
9
|
valid: false,
|
|
10
|
-
reason:
|
|
10
|
+
reason: `Image exceeds ${UPLOAD_LIMITS.image / 1024 / 1024}MB limit`
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
13
|
const validMimes = ['image/jpeg', 'image/png', 'image/webp', 'image/jpg', 'image/heic', 'image/heif'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateUUID","ImageAttachmentHandler","validate","attachment","
|
|
1
|
+
{"version":3,"names":["generateUUID","UPLOAD_LIMITS","ImageAttachmentHandler","validate","attachment","sourceFile","size","image","valid","reason","validMimes","includes","mimeType","metadata","width","height","buildPayload","uploadedUrl","console","log","filename","url","picInfo","uuid","type","payload","sourcePicture","bigPicture","snapshotPicture","sourcePath","path","fileName"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/imageAttachmentHandler.ts"],"mappings":";;AAEA,SAASA,YAAY,QAAQ,2BAAwB;AACrD,SAASC,aAAa,QAAQ,8BAA2B;AAEzD,OAAO,MAAMC,sBAA0C,GAAG;EACxDC,QAAQA,CAACC,UAA2B,EAAE;IACpC,IAAIA,UAAU,CAACC,UAAU,CAACC,IAAI,GAAGL,aAAa,CAACM,KAAK,EAAE;MACpD,OAAO;QACLC,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,iBAAiBR,aAAa,CAACM,KAAK,GAAG,IAAI,GAAG,IAAI;MAC5D,CAAC;IACH;IAEA,MAAMG,UAAU,GAAG,CACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,CACb;IACD,IAAI,CAACA,UAAU,CAACC,QAAQ,CAACP,UAAU,CAACC,UAAU,CAACO,QAAQ,CAAC,EAAE;MACxD,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,uBAAuBL,UAAU,CAACC,UAAU,CAACO,QAAQ;MAC/D,CAAC;IACH;IAEA,IAAIR,UAAU,CAACS,QAAQ,CAACC,KAAK,IAAI,CAAC,IAAIV,UAAU,CAACS,QAAQ,CAACE,MAAM,IAAI,CAAC,EAAE;MACrE,OAAO;QAAEP,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA2B,CAAC;IAC7D;IAEA,OAAO;MAAED,KAAK,EAAE;IAAK,CAAC;EACxB,CAAC;EAED,MAAMQ,YAAYA,CAACZ,UAA2B,EAAEa,WAAmB,EAAE;IACnEC,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAE;MAC3DC,QAAQ,EAAEhB,UAAU,CAACC,UAAU,CAACe,QAAQ;MACxCC,GAAG,EAAEJ;MACL;IACF,CAAC,CAAC;IAEF,MAAMK,OAAO,GAAG;MACdC,IAAI,EAAEvB,YAAY,CAAC,CAAC;MACpBwB,IAAI,EAAEpB,UAAU,CAACC,UAAU,CAACO,QAAQ;MACpCN,IAAI,EAAEF,UAAU,CAACC,UAAU,CAACC,IAAI;MAChCQ,KAAK,EAAEV,UAAU,CAACS,QAAQ,CAACC,KAAK;MAChCC,MAAM,EAAEX,UAAU,CAACS,QAAQ,CAACE,MAAM;MAClCM,GAAG,EAAEJ;IACP,CAAC;IAED,MAAMQ,OAAO,GAAG;MACdC,aAAa,EAAEJ,OAAO;MACtBK,UAAU,EAAEL,OAAO;MACnBM,eAAe,EAAEN,OAAO;MACxBO,UAAU,EAAEzB,UAAU,CAACC,UAAU,CAACyB,IAAI,CAAE;IAC1C,CAAC;IAEDZ,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAE;MAC1DY,QAAQ,EAAE3B,UAAU,CAACC,UAAU,CAACe,QAAQ;MACxCS,UAAU,EAAEzB,UAAU,CAACC,UAAU,CAACyB;IACpC,CAAC,CAAC;IAEF,OAAOL,OAAO;EAChB;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { UPLOAD_LIMITS } from "../../config/uploadLimits.js";
|
|
3
4
|
export class VideoAttachmentHandler {
|
|
4
|
-
static MAX_VIDEO_SIZE =
|
|
5
|
+
static MAX_VIDEO_SIZE = UPLOAD_LIMITS.video;
|
|
5
6
|
static SUPPORTED_TYPES = ['video/mp4', 'video/quicktime'];
|
|
6
7
|
validate(attachment) {
|
|
7
8
|
if (attachment.type !== 'video') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VideoAttachmentHandler","MAX_VIDEO_SIZE","SUPPORTED_TYPES","validate","attachment","type","valid","reason","sourceFile","size","mimeType","includes","buildPayload","uploadedUrl","
|
|
1
|
+
{"version":3,"names":["UPLOAD_LIMITS","VideoAttachmentHandler","MAX_VIDEO_SIZE","video","SUPPORTED_TYPES","validate","attachment","type","valid","reason","sourceFile","size","mimeType","includes","buildPayload","uploadedUrl","metadata","snapshotUrl","thumbnail","url","snapshotWidth","width","snapshotHeight","height","snapshotSize","console","log","picInfo","videoUUID","id","videoType","videoSize","duration","videoUrl","videoPath","path","snapshotPath","snapshotUUID","snapShotType","warn","substring"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/videoAttachmentHandler.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
import OpenIMSDK from '@droppii/openim-rn-client-sdk';
|
|
4
4
|
import { getAttachmentHandler } from "../types/attachmentHandler.js";
|
|
5
5
|
import { useConversationStore } from "../store/index.js";
|
|
6
|
+
import { useMessageStore } from "../store/message.js";
|
|
6
7
|
import { getAttachmentPriorityConfig } from "../config/attachment-priority.js";
|
|
7
8
|
export let AttachmentOrchestratorService;
|
|
8
9
|
(function (_AttachmentOrchestratorService) {
|
|
9
10
|
async function sendPreparedAttachments(attachments, uploadedUrls, options = {
|
|
10
11
|
strategy: 'individual'
|
|
11
|
-
}
|
|
12
|
+
}) {
|
|
12
13
|
const result = {
|
|
13
14
|
success: false,
|
|
14
15
|
sentAttachmentIds: [],
|
|
@@ -70,7 +71,7 @@ export let AttachmentOrchestratorService;
|
|
|
70
71
|
attachmentIds: payloads.map(p => p.attachmentId)
|
|
71
72
|
});
|
|
72
73
|
try {
|
|
73
|
-
const mergedMsgId = await sendMergedMessage(payloads.map(p => p.payload), options.includeCaption
|
|
74
|
+
const mergedMsgId = await sendMergedMessage(payloads.map(p => p.payload), options.includeCaption);
|
|
74
75
|
console.log('[AttachmentOrchestrator] Messages sent via merger:', {
|
|
75
76
|
messageId: mergedMsgId,
|
|
76
77
|
count: payloads.length
|
|
@@ -91,7 +92,7 @@ export let AttachmentOrchestratorService;
|
|
|
91
92
|
return result;
|
|
92
93
|
}
|
|
93
94
|
_AttachmentOrchestratorService.sendPreparedAttachments = sendPreparedAttachments;
|
|
94
|
-
async function sendMergedMessage(payloads, _caption
|
|
95
|
+
async function sendMergedMessage(payloads, _caption) {
|
|
95
96
|
const currentConversation = useConversationStore.getState().getCurrentConversation();
|
|
96
97
|
if (!currentConversation) {
|
|
97
98
|
throw new Error('No conversation selected');
|
|
@@ -215,8 +216,8 @@ export let AttachmentOrchestratorService;
|
|
|
215
216
|
messageId: lastMsgId,
|
|
216
217
|
index: i + 1
|
|
217
218
|
});
|
|
218
|
-
if (
|
|
219
|
-
|
|
219
|
+
if (result) {
|
|
220
|
+
useMessageStore.getState().pushNewMessage(result);
|
|
220
221
|
}
|
|
221
222
|
}
|
|
222
223
|
return lastMsgId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OpenIMSDK","getAttachmentHandler","useConversationStore","getAttachmentPriorityConfig","AttachmentOrchestratorService","_AttachmentOrchestratorService","sendPreparedAttachments","attachments","uploadedUrls","options","strategy","
|
|
1
|
+
{"version":3,"names":["OpenIMSDK","getAttachmentHandler","useConversationStore","useMessageStore","getAttachmentPriorityConfig","AttachmentOrchestratorService","_AttachmentOrchestratorService","sendPreparedAttachments","attachments","uploadedUrls","options","strategy","result","success","sentAttachmentIds","failedAttachmentIds","errors","length","console","log","att","handler","type","validation","validate","valid","push","id","reason","error","msg","Error","message","validAttachments","filter","a","includes","payloads","uploadedUrl","payload","buildPayload","attachmentId","payloadCount","attachmentIds","map","p","mergedMsgId","sendMergedMessage","includeCaption","messageId","count","mergedMessageId","stack","undefined","_send","_caption","currentConversation","getState","getCurrentConversation","priorityConfig","enabled","order","categorizedPayloads","image","video","file","text","duration","videoPath","fileExtension","fileName","content","images","videos","files","texts","createMessageFromPayload","createVideoMessageByURL","createFileMessageByURL","createTextMessage","createImageMessageByURL","lastMsgId","allMessages","attachmentType","payloadsForType","mergeStrategy","messages","typeLabel","charAt","toUpperCase","slice","merged","createMergerMessage","messageList","title","summaryList","_","i","allPayloads","totalMessages","sendMessageNotOss","recvID","userID","groupID","clientMsgID","serverMsgID","index","pushNewMessage"],"sourceRoot":"../../../src","sources":["services/attachmentOrchestrator.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import Images from "../assets/images/index.js";
|
|
4
|
+
import { UPLOAD_LIMITS } from "../config/uploadLimits.js";
|
|
4
5
|
export const generateUUID = () => {
|
|
5
6
|
return `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;
|
|
6
7
|
};
|
|
@@ -71,9 +72,8 @@ export const formatFileSize = bytes => {
|
|
|
71
72
|
return Math.round(bytes / Math.pow(k, i) * 100) / 100 + ' ' + sizes[i];
|
|
72
73
|
};
|
|
73
74
|
export const validateImageFile = file => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
return `Image too large. Max ${formatFileSize(MAX_SIZE)}`;
|
|
75
|
+
if (file.size > UPLOAD_LIMITS.image) {
|
|
76
|
+
return `Image too large. Max ${formatFileSize(UPLOAD_LIMITS.image)}`;
|
|
77
77
|
}
|
|
78
78
|
const validMimes = ['image/jpeg', 'image/png', 'image/webp', 'image/heic', 'image/heif'];
|
|
79
79
|
if (!validMimes.includes(file.mime)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Images","generateUUID","Date","now","Math","random","toString","slice","isVideoFile","filename","mimeType","getMimeType","startsWith","isVideoFromPicker","pickedItem","mime","mimeMap","jpg","jpeg","png","webp","heic","heif","mp4","mov","avi","mkv","webm","m4v","flv","wmv","mp3","wav","m4a","aac","flac","ogg","pdf","doc","docx","xls","xlsx","zip","fileName","ext","split","pop","toLowerCase","getFileIcon","ICON_IMG","ICON_PDF","ICON_WORD","ICON_EXCEL","ICON_TXT","formatFileSize","bytes","k","sizes","i","floor","log","round","pow","validateImageFile","file","
|
|
1
|
+
{"version":3,"names":["Images","UPLOAD_LIMITS","generateUUID","Date","now","Math","random","toString","slice","isVideoFile","filename","mimeType","getMimeType","startsWith","isVideoFromPicker","pickedItem","mime","mimeMap","jpg","jpeg","png","webp","heic","heif","mp4","mov","avi","mkv","webm","m4v","flv","wmv","mp3","wav","m4a","aac","flac","ogg","pdf","doc","docx","xls","xlsx","zip","fileName","ext","split","pop","toLowerCase","getFileIcon","ICON_IMG","ICON_PDF","ICON_WORD","ICON_EXCEL","ICON_TXT","formatFileSize","bytes","k","sizes","i","floor","log","round","pow","validateImageFile","file","size","image","validMimes","includes","getImageUploadEndpoint","baseUrl"],"sourceRoot":"../../../src","sources":["utils/imageUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Run `items` through `fn` with at most `concurrency` items in-flight at once.
|
|
5
|
+
* Errors per-item are swallowed — wrap `fn` if you need to capture them.
|
|
6
|
+
*/
|
|
7
|
+
export async function pLimit(items, fn, concurrency) {
|
|
8
|
+
let idx = 0;
|
|
9
|
+
const worker = async () => {
|
|
10
|
+
while (idx < items.length) {
|
|
11
|
+
const i = idx++;
|
|
12
|
+
await fn(items[i], i);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
await Promise.all(Array.from({
|
|
16
|
+
length: Math.min(concurrency, items.length)
|
|
17
|
+
}, worker));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=pLimit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pLimit","items","fn","concurrency","idx","worker","length","i","Promise","all","Array","from","Math","min"],"sourceRoot":"../../../src","sources":["utils/pLimit.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,eAAeA,MAAMA,CAC1BC,KAAU,EACVC,EAA6C,EAC7CC,WAAmB,EACJ;EACf,IAAIC,GAAG,GAAG,CAAC;EACX,MAAMC,MAAM,GAAG,MAAAA,CAAA,KAAY;IACzB,OAAOD,GAAG,GAAGH,KAAK,CAACK,MAAM,EAAE;MACzB,MAAMC,CAAC,GAAGH,GAAG,EAAE;MACf,MAAMF,EAAE,CAACD,KAAK,CAACM,CAAC,CAAC,EAAGA,CAAC,CAAC;IACxB;EACF,CAAC;EACD,MAAMC,OAAO,CAACC,GAAG,CACfC,KAAK,CAACC,IAAI,CAAC;IAAEL,MAAM,EAAEM,IAAI,CAACC,GAAG,CAACV,WAAW,EAAEF,KAAK,CAACK,MAAM;EAAE,CAAC,EAAED,MAAM,CACpE,CAAC;AACH","ignoreList":[]}
|
|
@@ -17,16 +17,21 @@ import { createThumbnail } from 'react-native-create-thumbnail';
|
|
|
17
17
|
* The app strips "file://" before calling, so local videos fall into the broken
|
|
18
18
|
* branch. The fix is to KEEP the file:// scheme so the working overload is used.
|
|
19
19
|
*
|
|
20
|
+
* iOS is the opposite: AVAsset / react-native-create-thumbnail requires a bare
|
|
21
|
+
* path without any scheme prefix. Strip "file://" on iOS.
|
|
22
|
+
*
|
|
20
23
|
* For Android photo-picker synthetic paths we additionally copy the file into the
|
|
21
24
|
* app cache first (a clean, app-private file the retriever can always open) and
|
|
22
25
|
* still hand it back with a file:// prefix. Returns the path to pass to
|
|
23
26
|
* createThumbnail plus a raw cleanup path for any temp copy.
|
|
24
27
|
*/
|
|
25
28
|
const ensureRetrievableVideoPath = async videoPath => {
|
|
26
|
-
// iOS
|
|
29
|
+
// iOS AVAsset / react-native-create-thumbnail requires a bare file path
|
|
30
|
+
// without the file:// scheme. Strip it if present.
|
|
27
31
|
if (Platform.OS !== 'android') {
|
|
32
|
+
const barePath = videoPath.startsWith('file://') ? videoPath.slice('file://'.length) : videoPath;
|
|
28
33
|
return {
|
|
29
|
-
path:
|
|
34
|
+
path: barePath,
|
|
30
35
|
cleanupPath: null
|
|
31
36
|
};
|
|
32
37
|
}
|
|
@@ -96,7 +101,6 @@ export const VideoThumbnailUtil = {
|
|
|
96
101
|
dirSize: 100,
|
|
97
102
|
cacheName
|
|
98
103
|
});
|
|
99
|
-
console.log('✅ [VideoThumbnail] THUMBNAIL PATH:', result.path);
|
|
100
104
|
console.log('[VideoThumbnail] Thumbnail generated', {
|
|
101
105
|
path: result.path,
|
|
102
106
|
width: result.width || 0,
|
|
@@ -126,6 +130,7 @@ export const VideoThumbnailUtil = {
|
|
|
126
130
|
console.warn('[VideoThumbnail] Cleanup failed:', err);
|
|
127
131
|
}
|
|
128
132
|
},
|
|
133
|
+
// Serial by design — reduces memory pressure when processing multiple videos.
|
|
129
134
|
batchGenerateThumbnails: async (videoPaths, options = {}) => {
|
|
130
135
|
const results = [];
|
|
131
136
|
for (const videoPath of videoPaths) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","RNFS","createThumbnail","ensureRetrievableVideoPath","videoPath","OS","
|
|
1
|
+
{"version":3,"names":["Platform","RNFS","createThumbnail","ensureRetrievableVideoPath","videoPath","OS","barePath","startsWith","slice","length","path","cleanupPath","rawPath","replace","isSynthetic","includes","ext","split","pop","dest","CachesDirectoryPath","Date","now","Math","floor","random","console","log","from","to","copyFile","VideoThumbnailUtil","generateThumbnail","options","time","quality","cacheId","tempSourcePath","retrievablePath","fileName","String","cacheName","abs","charCodeAt","timeMs","result","url","timeStamp","format","dirSize","width","height","error","unlink","catch","err","warn","cleanupThumbnail","thumbnailPath","batchGenerateThumbnails","videoPaths","results","thumbnail","push"],"sourceRoot":"../../../src","sources":["utils/videoThumbnail.ts"],"mappings":"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","ignoreList":[]}
|