1/**
2 * Unified exports for all utility functions
3 * Import utilities from '$lib/utils' for cleaner imports
4 *
5 * For browser-only utilities (pdf-processing, audio-recording, svg-to-png,
6 * webp-to-png, process-uploaded-files, convert-files-to-extra), use:
7 * import { ... } from '$lib/utils/browser-only'
8 */
9
10// API utilities
11export { getAuthHeaders, getJsonHeaders } from './api-headers';
12export { validateApiKey } from './api-key-validation';
13
14// Attachment utilities
15export {
16 getAttachmentDisplayItems,
17 type AttachmentDisplayItemsOptions
18} from './attachment-display';
19export { isTextFile, isImageFile, isPdfFile, isAudioFile } from './attachment-type';
20
21// Textarea utilities
22export { default as autoResizeTextarea } from './autoresize-textarea';
23
24// Branching utilities
25export {
26 filterByLeafNodeId,
27 findLeafNode,
28 findDescendantMessages,
29 getMessageSiblings,
30 getMessageDisplayList,
31 hasMessageSiblings,
32 getNextSibling,
33 getPreviousSibling
34} from './branching';
35
36// Config helpers
37export { setConfigValue, getConfigValue, configToParameterRecord } from './config-helpers';
38
39// Conversation utilities
40export { createMessageCountMap, getMessageCount } from './conversation-utils';
41
42// Clipboard utilities
43export {
44 copyToClipboard,
45 copyCodeToClipboard,
46 formatMessageForClipboard,
47 parseClipboardContent,
48 hasClipboardAttachments,
49 type ClipboardTextAttachment,
50 type ParsedClipboardContent
51} from './clipboard';
52
53// File preview utilities
54export { getFileTypeLabel } from './file-preview';
55export { getPreviewText } from './text';
56
57// File type utilities
58export {
59 getFileTypeCategory,
60 getFileTypeCategoryByExtension,
61 getFileTypeByExtension,
62 isFileTypeSupported
63} from './file-type';
64
65// Formatting utilities
66export { formatFileSize, formatParameters, formatNumber } from './formatters';
67
68// IME utilities
69export { isIMEComposing } from './is-ime-composing';
70
71// LaTeX utilities
72export { maskInlineLaTeX, preprocessLaTeX } from './latex-protection';
73
74// Modality file validation utilities
75export {
76 isFileTypeSupportedByModel,
77 filterFilesByModalities,
78 generateModalityErrorMessage,
79 type ModalityCapabilities
80} from './modality-file-validation';
81
82// Model name utilities
83export { normalizeModelName, isValidModelName } from './model-names';
84
85// Portal utilities
86export { portalToBody } from './portal-to-body';
87
88// Precision utilities
89export { normalizeFloatingPoint, normalizeNumber } from './precision';
90
91// Syntax highlighting utilities
92export { getLanguageFromFilename } from './syntax-highlight-language';
93
94// Text file utilities
95export { isTextFileByName, readFileAsText, isLikelyTextFile } from './text-files';