@yoopta/file 6.0.0-beta.13 → 6.0.0-beta.14

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/commands/index.ts","../src/utils/format-size.ts","../src/plugin/file-plugin.tsx","../src/hooks/use-xhr.ts","../src/hooks/use-upload.ts","../src/utils/file-type.ts"],"sourcesContent":["import type { YooEditor, YooptaPathIndex } from '@yoopta/editor';\nimport { Blocks, Elements, buildBlockData, generateId } from '@yoopta/editor';\n\nimport type { FileElement, FileElementProps } from '../types';\n\ntype FileElementOptions = {\n props?: Partial<FileElementProps>;\n};\n\ntype InsertFileOptions = FileElementOptions & {\n at?: YooptaPathIndex;\n focus?: boolean;\n};\n\nexport type FileCommandsType = {\n buildFileElements: (editor: YooEditor, options?: Partial<FileElementOptions>) => FileElement;\n insertFile: (editor: YooEditor, options?: Partial<InsertFileOptions>) => void;\n deleteFile: (editor: YooEditor, blockId: string) => void;\n updateFile: (editor: YooEditor, blockId: string, props: Partial<FileElementProps>) => void;\n};\n\nexport const FileCommands: FileCommandsType = {\n buildFileElements: (_editor: YooEditor, options = {}) => {\n const fileProps: FileElementProps = {\n id: options.props?.id ?? null,\n src: options.props?.src ?? null,\n name: options.props?.name ?? null,\n size: options.props?.size ?? null,\n format: options.props?.format ?? null,\n };\n\n return {\n id: generateId(),\n type: 'file',\n children: [{ text: '' }],\n props: fileProps,\n };\n },\n insertFile: (editor: YooEditor, options = {}) => {\n const { at, focus, props } = options;\n const file = FileCommands.buildFileElements(editor, { props });\n const block = buildBlockData({ value: [file], type: 'File' });\n Blocks.insertBlock(editor, block.type, { focus, at, blockData: block });\n },\n deleteFile: (editor: YooEditor, blockId) => {\n Blocks.deleteBlock(editor, { blockId });\n },\n updateFile: (editor: YooEditor, blockId, props) => {\n Elements.updateElement(editor, { blockId, type: 'file', props });\n },\n};\n","/**\n * Format file size to human-readable string\n */\nexport const formatFileSize = (bytes: number | null | undefined): string => {\n if (bytes === null || bytes === undefined || bytes === 0) return '0 B';\n\n const units = ['B', 'KB', 'MB', 'GB', 'TB'];\n const k = 1024;\n const i = Math.floor(Math.log(Math.abs(bytes)) / Math.log(k));\n\n if (i === 0) return `${bytes} ${units[0]}`;\n\n const size = bytes / Math.pow(k, i);\n const decimals = size < 10 ? 2 : size < 100 ? 1 : 0;\n\n return `${size.toFixed(decimals)} ${units[i]}`;\n};\n\n/**\n * Parse file size string to bytes\n */\nexport const parseFileSize = (sizeString: string): number | null => {\n const match = sizeString.match(/^([\\d.]+)\\s*(B|KB|MB|GB|TB)?$/i);\n if (!match) return null;\n\n const value = parseFloat(match[1]);\n const unit = (match[2] ?? 'B').toUpperCase();\n\n const multipliers: Record<string, number> = {\n B: 1,\n KB: 1024,\n MB: 1024 * 1024,\n GB: 1024 * 1024 * 1024,\n TB: 1024 * 1024 * 1024 * 1024,\n };\n\n return Math.round(value * (multipliers[unit] ?? 1));\n};\n","import type { PluginElementRenderProps } from '@yoopta/editor';\nimport { YooptaPlugin, generateId } from '@yoopta/editor';\n\nimport { FileCommands } from '../commands';\nimport type { FileElementMap, FileElementProps, FilePluginOptions } from '../types';\nimport { formatFileSize } from '../utils/format-size';\n\nconst ALIGNS_TO_JUSTIFY = {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end',\n};\n\nconst DEFAULT_FILE_PROPS: FileElementProps = {\n id: null,\n src: null,\n name: null,\n size: null,\n format: null,\n};\n\nconst File = new YooptaPlugin<FileElementMap, FilePluginOptions>({\n type: 'File',\n elements: (\n <file\n render={(props: PluginElementRenderProps) => {\n const { name, src, size, format } = props.element.props;\n const displayName = format ? `${name}.${format}` : name;\n\n return (\n <div {...props.attributes}>\n <a href={src ?? undefined} download={name ?? undefined} target=\"_blank\" rel=\"noopener noreferrer\">\n {displayName ?? 'Untitled file'}\n {size ? ` (${formatFileSize(size)})` : ''}\n </a>\n {props.children}\n </div>\n );\n }}\n nodeType=\"void\"\n props={DEFAULT_FILE_PROPS}\n />\n ),\n commands: FileCommands,\n options: {\n display: {\n title: 'File',\n description: 'Upload and attach files',\n },\n accept: '',\n },\n parsers: {\n html: {\n serialize: (element, _text, blockMeta) => {\n const { align = 'left', depth = 0 } = blockMeta ?? {};\n const justify = ALIGNS_TO_JUSTIFY[align] ?? 'left';\n const displayName = element.props.format\n ? `${element.props.name}.${element.props.format}`\n : element.props.name;\n const sizeText = element.props.size ? ` (${formatFileSize(element.props.size)})` : '';\n\n return `<div style=\"margin-left: ${depth * 20}px; display: flex; width: 100%; justify-content: ${justify}\">\n <a \n data-yoopta-file\n data-meta-align=\"${align}\" \n data-meta-depth=\"${depth}\" \n href=\"${element.props.src}\" \n data-size=\"${element.props.size ?? 0}\" \n data-format=\"${element.props.format ?? ''}\"\n data-id=\"${element.props.id ?? ''}\"\n download=\"${element.props.name}\" \n target=\"_blank\" \n rel=\"noopener noreferrer\"\n >${displayName}${sizeText}</a>\n </div>`;\n },\n deserialize: {\n // [TODO] - add props as second param. ex.: ['A', { 'data-yoopta-file': true }]\n nodeNames: ['A'],\n parse: (el) => {\n if (el.nodeName === 'A') {\n const hasDownloadAttr = !!el.getAttribute('download');\n const isYooptaFile = !!el.getAttribute('data-yoopta-file');\n const href = el.getAttribute('href');\n\n // Only parse if it's a download link or explicitly marked as yoopta file\n if (!hasDownloadAttr && !isYooptaFile) return;\n if (!href) return;\n\n try {\n const url = new URL(href, window.location.origin);\n const textContent = el.textContent ?? '';\n const downloadAttr = el.getAttribute('download') ?? '';\n\n // Parse name and format\n let name = downloadAttr || textContent.split(' (')[0] || '';\n let format: string | null = null;\n\n const dotIndex = name.lastIndexOf('.');\n if (dotIndex > 0) {\n format = name.slice(dotIndex + 1);\n name = name.slice(0, dotIndex);\n }\n\n // Parse size from data attribute or text content\n const sizeAttr = el.getAttribute('data-size');\n const size = sizeAttr ? Number(sizeAttr) : null;\n\n // Parse id and format from data attributes\n const id = el.getAttribute('data-id') ?? null;\n const formatAttr = el.getAttribute('data-format');\n if (formatAttr) format = formatAttr;\n\n return {\n id: generateId(),\n type: 'file',\n children: [{ text: '' }],\n props: {\n id,\n name: name || null,\n format,\n src: url.href,\n size,\n },\n };\n } catch {\n // Invalid URL, skip\n }\n }\n },\n },\n },\n markdown: {\n serialize: (element) => {\n const displayName = element.props.format\n ? `${element.props.name}.${element.props.format}`\n : element.props.name;\n return `[${displayName}](${element.props.src})\\n`;\n },\n },\n email: {\n serialize: (element, _text, blockMeta) => {\n const { align = 'left', depth = 0 } = blockMeta ?? {};\n const justify = ALIGNS_TO_JUSTIFY[align] ?? 'left';\n const displayName = element.props.format\n ? `${element.props.name}.${element.props.format}`\n : element.props.name;\n const sizeText = element.props.size ? ` (${formatFileSize(element.props.size)})` : '';\n\n return `\n <table style=\"width:100%;\">\n <tbody style=\"width:100%;\">\n <tr>\n <td style=\"margin-left: ${depth * 20}px; display: flex; width: 100%; justify-content: ${justify}; padding: 8px 0;\">\n <a \n href=\"${element.props.src}\" \n download=\"${element.props.name}\" \n target=\"_blank\" \n rel=\"noopener noreferrer\"\n style=\"\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px;\n background-color: #f5f5f5;\n border-radius: 8px;\n text-decoration: none;\n color: #333;\n font-size: 14px;\n \"\n >\n <span style=\"font-size: 20px;\">📎</span>\n <span>${displayName}${sizeText}</span>\n </a>\n </td>\n </tr>\n </tbody>\n </table> \n `;\n },\n },\n },\n});\n\nexport { File };\n","import { useCallback, useRef, useState } from 'react';\n\nimport type {\n FileUploadProgress,\n FileUploadError,\n FileUploadResult,\n FileUploadState,\n XHRRequestOptions,\n} from '../types';\n\nconst validateFile = (file: File, accept?: string, maxSize?: number): FileUploadError | null => {\n if (accept) {\n const acceptedTypes = accept.split(',').map((t) => t.trim());\n const isAccepted = acceptedTypes.some((accepted) => {\n if (accepted.startsWith('.')) {\n // Extension check\n return file.name.toLowerCase().endsWith(accepted.toLowerCase());\n }\n if (accepted.endsWith('/*')) {\n // Wildcard MIME type (e.g., \"image/*\")\n const baseType = accepted.replace('/*', '');\n return file.type.startsWith(baseType);\n }\n // Exact MIME type match\n return file.type === accepted;\n });\n\n if (!isAccepted) {\n return {\n message: `Invalid file type. Allowed types: ${accept}`,\n code: 'INVALID_TYPE',\n };\n }\n }\n\n if (maxSize && file.size > maxSize) {\n const maxSizeMB = (maxSize / 1024 / 1024).toFixed(2);\n return {\n message: `File size exceeds ${maxSizeMB}MB`,\n code: 'FILE_TOO_LARGE',\n };\n }\n\n return null;\n};\n\nexport const useXHRRequest = ({\n onError,\n onSuccess,\n onProgress,\n accept,\n maxSize,\n method = 'POST',\n endpoint,\n headers,\n}: XHRRequestOptions) => {\n const [state, setState] = useState<FileUploadState>({\n loading: false,\n progress: null,\n error: null,\n result: null,\n });\n\n const xhrRef = useRef<XMLHttpRequest | null>(null);\n\n const xhrFetch = (body: XMLHttpRequestBodyInit): Promise<FileUploadResult> =>\n new Promise((resolve, reject) => {\n if (body instanceof File) {\n const validationError = validateFile(body, accept, maxSize);\n if (validationError) {\n setState((prev) => ({\n ...prev,\n error: validationError,\n }));\n onError?.(validationError);\n reject(validationError);\n return;\n }\n }\n\n setState({\n loading: true,\n progress: { loaded: 0, total: body instanceof File ? body.size : 0, percentage: 0 },\n error: null,\n result: null,\n });\n\n const xhr = new XMLHttpRequest();\n xhrRef.current = xhr;\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n const progress: FileUploadProgress = {\n loaded: event.loaded,\n total: event.total,\n percentage: Math.round((event.loaded / event.total) * 100),\n };\n\n setState((prev) => ({\n ...prev,\n progress,\n }));\n\n onProgress?.(progress);\n }\n });\n\n xhr.addEventListener('load', () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n try {\n const result: FileUploadResult = JSON.parse(xhr.responseText);\n\n setState((prev) => ({\n ...prev,\n loading: false,\n result,\n }));\n\n onSuccess?.(result);\n resolve(result);\n } catch {\n const parseError: FileUploadError = {\n message: 'Failed to parse server response',\n code: 'PARSE_ERROR',\n status: xhr.status,\n };\n\n setState((prev) => ({\n ...prev,\n loading: false,\n error: parseError,\n }));\n\n onError?.(parseError);\n reject(parseError);\n }\n } else {\n const httpError: FileUploadError = {\n message: `Upload failed with status ${xhr.status}`,\n code: 'HTTP_ERROR',\n status: xhr.status,\n };\n\n setState((prev) => ({\n ...prev,\n loading: false,\n error: httpError,\n }));\n\n onError?.(httpError);\n reject(httpError);\n }\n });\n\n xhr.addEventListener('error', () => {\n const networkError: FileUploadError = {\n message: 'Network error occurred',\n code: 'NETWORK_ERROR',\n };\n\n setState((prev) => ({\n ...prev,\n loading: false,\n error: networkError,\n }));\n\n onError?.(networkError);\n reject(networkError);\n });\n\n xhr.addEventListener('abort', () => {\n const abortError: FileUploadError = {\n message: 'Upload cancelled',\n code: 'ABORT',\n };\n\n setState((prev) => ({\n ...prev,\n loading: false,\n error: abortError,\n }));\n\n reject(abortError);\n });\n\n xhr.addEventListener('timeout', () => {\n const timeoutError: FileUploadError = {\n message: 'Upload timeout',\n code: 'TIMEOUT',\n };\n\n setState((prev) => ({\n ...prev,\n loading: false,\n error: timeoutError,\n }));\n\n onError?.(timeoutError);\n reject(timeoutError);\n });\n\n xhr.open(method, endpoint);\n\n if (headers) {\n Object.entries(headers).forEach(([key, value]) => {\n xhr.setRequestHeader(key, value);\n });\n }\n\n // Files can be large, so we use a longer timeout (5 minutes)\n xhr.timeout = 300000;\n xhr.send(body);\n });\n\n const cancel = useCallback(() => {\n if (xhrRef.current) {\n xhrRef.current.abort();\n xhrRef.current = null;\n }\n }, []);\n\n const reset = useCallback(() => {\n setState({\n loading: false,\n progress: null,\n error: null,\n result: null,\n });\n }, []);\n\n return {\n ...state,\n xhrFetch,\n cancel,\n reset,\n };\n};\n","import { useCallback, useState } from 'react';\n\nimport type {\n FileDeleteEndpointOptions,\n FileDeleteFn,\n FileDeleteOptions,\n FileElement,\n FileUploadEndpointOptions,\n FileUploadError,\n FileUploadFn,\n FileUploadOptions,\n FileUploadProgress,\n FileUploadResponse,\n FileUploadResult,\n FileUploadState,\n UseFileDeleteReturn,\n UseFileUploadReturn,\n} from '../types';\nimport { useXHRRequest } from './use-xhr';\n\nconst DOCS_URL = 'https://docs.yoopta.dev/plugins/file';\n\n// Type guard to check if options is a custom function\nconst isUploadFn = (\n options: FileUploadOptions,\n): options is (file: File, onProgress?: (progress: FileUploadProgress) => void) => Promise<FileUploadResponse> =>\n typeof options === 'function';\n\n// Type guard to check if delete options is a custom function\nconst isDeleteFn = (options: FileDeleteOptions): options is (element: FileElement) => Promise<void> =>\n typeof options === 'function';\n\n// Validation helpers\nconst validateUploadOptions = (options: FileUploadOptions | undefined): void => {\n if (options === undefined || options === null) {\n throw new Error(\n `[Yoopta File] Upload options are not configured. ` +\n `Please provide 'upload' option when extending the File plugin.\\n\\n` +\n `Example:\\n` +\n `File.extend({\\n` +\n ` options: {\\n` +\n ` upload: async (file) => {\\n` +\n ` // Upload file to your storage and return file props\\n` +\n ` return { src: '...', name: file.name, size: file.size };\\n` +\n ` },\\n` +\n ` },\\n` +\n `})\\n\\n` +\n `See documentation: ${DOCS_URL}`,\n );\n }\n\n if (typeof options !== 'function' && typeof options !== 'object') {\n throw new Error(\n `[Yoopta File] Invalid upload options. Expected a function or endpoint configuration object.\\n\\n` +\n `See documentation: ${DOCS_URL}`,\n );\n }\n\n if (typeof options === 'object' && !options.endpoint) {\n throw new Error(\n `[Yoopta File] Missing 'endpoint' in upload options. ` +\n `When using endpoint-based upload, you must provide an 'endpoint' URL.\\n\\n` +\n `Example:\\n` +\n `File.extend({\\n` +\n ` options: {\\n` +\n ` upload: {\\n` +\n ` endpoint: '/api/upload-file',\\n` +\n ` },\\n` +\n ` },\\n` +\n `})\\n\\n` +\n `See documentation: ${DOCS_URL}`,\n );\n }\n};\n\n// Validation helper for delete options (optional - only validates if provided)\nconst validateDeleteOptions = (options: FileDeleteOptions | undefined): boolean => {\n // Delete is optional - return false if not configured\n if (options === undefined || options === null) {\n return false;\n }\n\n if (typeof options !== 'function' && typeof options !== 'object') {\n throw new Error(\n `[Yoopta File] Invalid delete options. Expected a function or endpoint configuration object.\\n\\n` +\n `See documentation: ${DOCS_URL}`,\n );\n }\n\n if (typeof options === 'object' && !options.endpoint) {\n throw new Error(\n `[Yoopta File] Missing 'endpoint' in delete options. ` +\n `When using endpoint-based delete, you must provide an 'endpoint' URL.\\n\\n` +\n `Example:\\n` +\n `File.extend({\\n` +\n ` options: {\\n` +\n ` delete: {\\n` +\n ` endpoint: '/api/delete-file',\\n` +\n ` },\\n` +\n ` },\\n` +\n `})\\n\\n` +\n `See documentation: ${DOCS_URL}`,\n );\n }\n\n return true;\n};\n\nexport const useFileDelete = (options: FileDeleteOptions | undefined): UseFileDeleteReturn => {\n // Validate options - returns false if not configured (optional)\n const isConfigured = validateDeleteOptions(options);\n\n const validOptions = isConfigured ? (options as FileDeleteOptions) : null;\n const isCustomFn = validOptions ? isDeleteFn(validOptions) : false;\n\n // State for custom function approach - always called\n const [customState, setCustomState] = useState<FileUploadState>({\n loading: false,\n progress: null,\n error: null,\n result: null,\n });\n\n // For endpoint-based approach - create endpoint options (use dummy if custom fn or not configured)\n const endpointOpts: FileDeleteEndpointOptions =\n !validOptions || isCustomFn ? { endpoint: '' } : (validOptions as FileDeleteEndpointOptions);\n\n // Always call useXHRRequest (with dummy options if using custom function)\n const xhrResult = useXHRRequest({\n endpoint: endpointOpts.endpoint,\n method: endpointOpts.method ?? 'DELETE',\n headers: endpointOpts.headers ?? {},\n fieldName: endpointOpts.fieldName ?? 'file',\n onSuccess: endpointOpts.onSuccess,\n onError: endpointOpts.onError,\n onProgress: endpointOpts.onProgress,\n });\n\n // Custom delete function - always defined with useCallback\n const customDeleteFile = useCallback(\n async (element: FileElement): Promise<FileUploadResult> => {\n // If delete is not configured, just return success without actually deleting from storage\n if (!validOptions) {\n const src = element.props?.src ?? '';\n return { id: element.props?.id ?? '', url: src };\n }\n\n if (!isCustomFn) {\n throw new Error('Custom delete called but options is not a function');\n }\n\n const src = element.props?.src;\n if (!src) {\n throw new Error('File src is required');\n }\n\n setCustomState((prev) => ({ ...prev, loading: true, error: null }));\n\n try {\n await (validOptions as FileDeleteFn)(element);\n const result: FileUploadResult = { id: element.props?.id ?? '', url: src };\n setCustomState((prev) => ({ ...prev, loading: false, result }));\n return result;\n } catch (err) {\n const error: FileUploadError = {\n message: err instanceof Error ? err.message : 'Delete failed',\n code: 'CUSTOM_DELETE_ERROR',\n };\n setCustomState((prev) => ({ ...prev, loading: false, error }));\n throw error;\n }\n },\n [validOptions, isCustomFn],\n );\n\n const customReset = useCallback(() => {\n setCustomState({ loading: false, progress: null, error: null, result: null });\n }, []);\n\n // Endpoint-based delete function\n const endpointDeleteFile = useCallback(\n (element: FileElement) => {\n const fileId = element.props?.id;\n if (!fileId) {\n throw new Error('File id is required');\n }\n return xhrResult.xhrFetch(JSON.stringify({ fileId }));\n },\n [xhrResult],\n );\n\n // Return appropriate implementation based on options type\n // If not configured, return no-op delete function\n if (!isConfigured) {\n return {\n ...customState,\n deleteFile: customDeleteFile,\n cancel: () => { },\n reset: customReset,\n };\n }\n\n if (isCustomFn) {\n return {\n ...customState,\n deleteFile: customDeleteFile,\n cancel: () => { },\n reset: customReset,\n };\n }\n\n return {\n loading: xhrResult.loading,\n progress: xhrResult.progress,\n error: xhrResult.error,\n result: xhrResult.result,\n deleteFile: endpointDeleteFile,\n cancel: xhrResult.cancel,\n reset: xhrResult.reset,\n };\n};\n\nexport const useFileUpload = (options: FileUploadOptions | undefined): UseFileUploadReturn => {\n // Validate options - will throw descriptive error if invalid\n validateUploadOptions(options);\n\n // After validation, options is guaranteed to be defined\n const validOptions = options as FileUploadOptions;\n const isCustomFn = isUploadFn(validOptions);\n\n // State for custom function approach - always called\n const [customState, setCustomState] = useState<FileUploadState>({\n loading: false,\n progress: null,\n error: null,\n result: null,\n });\n\n // For endpoint-based approach - create endpoint options (use dummy if custom fn)\n const endpointOpts: FileUploadEndpointOptions = isCustomFn\n ? { endpoint: '' }\n : (validOptions as FileUploadEndpointOptions);\n\n // Always call useXHRRequest (with dummy options if using custom function)\n const xhrResult = useXHRRequest({\n endpoint: endpointOpts.endpoint,\n method: endpointOpts.method ?? 'POST',\n headers: endpointOpts.headers ?? {},\n fieldName: endpointOpts.fieldName ?? 'file',\n maxSize: endpointOpts.maxSize,\n accept: endpointOpts.accept,\n onSuccess: endpointOpts.onSuccess,\n onError: endpointOpts.onError,\n onProgress: endpointOpts.onProgress,\n });\n\n // Custom upload function - always defined with useCallback\n const customUpload = useCallback(\n async (file: File): Promise<FileUploadResult> => {\n if (!isCustomFn) {\n throw new Error('Custom upload called but options is not a function');\n }\n\n setCustomState((prev) => ({\n ...prev,\n loading: true,\n progress: { loaded: 0, total: file.size, percentage: 0 },\n error: null,\n }));\n\n try {\n const onProgress = (progress: FileUploadProgress) => {\n setCustomState((prev) => ({ ...prev, progress }));\n };\n\n const fileProps = await (validOptions as FileUploadFn)(file, onProgress);\n const result: FileUploadResult = {\n id: fileProps.id ?? '',\n url: fileProps.src ?? '',\n name: fileProps.name ?? file.name,\n size: fileProps.size ?? file.size,\n format: fileProps.format,\n };\n\n setCustomState((prev) => ({\n ...prev,\n loading: false,\n progress: { loaded: file.size, total: file.size, percentage: 100 },\n result,\n }));\n\n return result;\n } catch (err) {\n const error: FileUploadError = {\n message: err instanceof Error ? err.message : 'Upload failed',\n code: 'CUSTOM_UPLOAD_ERROR',\n };\n setCustomState((prev) => ({ ...prev, loading: false, error }));\n throw error;\n }\n },\n [validOptions, isCustomFn],\n );\n\n const customReset = useCallback(() => {\n setCustomState({ loading: false, progress: null, error: null, result: null });\n }, []);\n\n // Endpoint-based upload function\n const endpointUpload = useCallback(\n (file: File) => {\n const formData = new FormData();\n formData.append(endpointOpts.fieldName ?? 'yoopta-file', file);\n return xhrResult.xhrFetch(formData);\n },\n [endpointOpts.fieldName, xhrResult],\n );\n\n // Return appropriate implementation based on options type\n if (isCustomFn) {\n return {\n ...customState,\n upload: customUpload,\n cancel: () => { },\n reset: customReset,\n };\n }\n\n return {\n loading: xhrResult.loading,\n progress: xhrResult.progress,\n error: xhrResult.error,\n result: xhrResult.result,\n upload: endpointUpload,\n cancel: xhrResult.cancel,\n reset: xhrResult.reset,\n };\n};\n","import type { FileType, FileTypeConfig } from '../types';\n\n// File type configurations\nexport const FILE_TYPE_CONFIGS: FileTypeConfig[] = [\n {\n type: 'pdf',\n extensions: ['.pdf'],\n mimeTypes: ['application/pdf'],\n label: 'PDF',\n },\n {\n type: 'document',\n extensions: ['.doc', '.docx', '.odt', '.rtf', '.pages'],\n mimeTypes: [\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.oasis.opendocument.text',\n 'application/rtf',\n 'application/x-iwork-pages-sffpages',\n ],\n label: 'Document',\n },\n {\n type: 'spreadsheet',\n extensions: ['.xls', '.xlsx', '.csv', '.ods', '.numbers'],\n mimeTypes: [\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'text/csv',\n 'application/vnd.oasis.opendocument.spreadsheet',\n 'application/x-iwork-numbers-sffnumbers',\n ],\n label: 'Spreadsheet',\n },\n {\n type: 'presentation',\n extensions: ['.ppt', '.pptx', '.odp', '.key'],\n mimeTypes: [\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.oasis.opendocument.presentation',\n 'application/x-iwork-keynote-sffkey',\n ],\n label: 'Presentation',\n },\n {\n type: 'image',\n extensions: ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg', '.bmp', '.ico', '.tiff'],\n mimeTypes: [\n 'image/jpeg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'image/svg+xml',\n 'image/bmp',\n 'image/x-icon',\n 'image/tiff',\n ],\n label: 'Image',\n },\n {\n type: 'video',\n extensions: ['.mp4', '.webm', '.mov', '.avi', '.mkv', '.wmv', '.flv'],\n mimeTypes: [\n 'video/mp4',\n 'video/webm',\n 'video/quicktime',\n 'video/x-msvideo',\n 'video/x-matroska',\n 'video/x-ms-wmv',\n 'video/x-flv',\n ],\n label: 'Video',\n },\n {\n type: 'audio',\n extensions: ['.mp3', '.wav', '.ogg', '.flac', '.aac', '.m4a', '.wma'],\n mimeTypes: [\n 'audio/mpeg',\n 'audio/wav',\n 'audio/ogg',\n 'audio/flac',\n 'audio/aac',\n 'audio/mp4',\n 'audio/x-ms-wma',\n ],\n label: 'Audio',\n },\n {\n type: 'archive',\n extensions: ['.zip', '.rar', '.7z', '.tar', '.gz', '.bz2'],\n mimeTypes: [\n 'application/zip',\n 'application/x-rar-compressed',\n 'application/x-7z-compressed',\n 'application/x-tar',\n 'application/gzip',\n 'application/x-bzip2',\n ],\n label: 'Archive',\n },\n {\n type: 'code',\n extensions: [\n '.js',\n '.ts',\n '.jsx',\n '.tsx',\n '.html',\n '.css',\n '.json',\n '.xml',\n '.py',\n '.java',\n '.c',\n '.cpp',\n '.h',\n '.rb',\n '.php',\n '.go',\n '.rs',\n '.swift',\n '.kt',\n ],\n mimeTypes: [\n 'text/javascript',\n 'application/javascript',\n 'text/typescript',\n 'text/html',\n 'text/css',\n 'application/json',\n 'application/xml',\n 'text/x-python',\n 'text/x-java-source',\n 'text/x-c',\n 'text/x-c++',\n ],\n label: 'Code',\n },\n {\n type: 'text',\n extensions: ['.txt', '.md', '.log', '.ini', '.cfg'],\n mimeTypes: ['text/plain', 'text/markdown'],\n label: 'Text',\n },\n];\n\n/**\n * Detect file type from filename or MIME type\n */\nexport const getFileType = (filename?: string | null, mimeType?: string | null): FileType => {\n if (!filename && !mimeType) return 'unknown';\n\n const extension = filename ? `.${filename.split('.').pop()?.toLowerCase()}` : null;\n\n for (const config of FILE_TYPE_CONFIGS) {\n // Check by extension first (more reliable)\n if (extension && config.extensions.includes(extension)) {\n return config.type;\n }\n // Fallback to MIME type\n if (mimeType && config.mimeTypes.includes(mimeType)) {\n return config.type;\n }\n }\n\n return 'unknown';\n};\n\n/**\n * Get file type configuration\n */\nexport const getFileTypeConfig = (fileType: FileType): FileTypeConfig | undefined =>\n FILE_TYPE_CONFIGS.find((config) => config.type === fileType);\n\n/**\n * Get file type label\n */\nexport const getFileTypeLabel = (filename?: string | null, mimeType?: string | null): string => {\n const fileType = getFileType(filename, mimeType);\n const config = getFileTypeConfig(fileType);\n return config?.label ?? 'File';\n};\n\n/**\n * Get file extension from filename\n */\nexport const getFileExtension = (filename?: string | null): string | null => {\n if (!filename) return null;\n const parts = filename.split('.');\n if (parts.length < 2) return null;\n return parts.pop()?.toLowerCase() ?? null;\n};\n\n/**\n * Check if file is of a specific type\n */\nexport const isFileType = (\n fileType: FileType,\n filename?: string | null,\n mimeType?: string | null,\n): boolean => getFileType(filename, mimeType) === fileType;\n"],"names":["File","_jsx","_jsxs"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yoopta/file",
3
- "version": "6.0.0-beta.13",
3
+ "version": "6.0.0-beta.14",
4
4
  "description": "File plugin for Yoopta Editor",
5
5
  "author": "Darginec05 <devopsbanda@gmail.com>",
6
6
  "homepage": "https://github.com/Darginec05/Yoopta-Editor#readme",
@@ -35,5 +35,5 @@
35
35
  "bugs": {
36
36
  "url": "https://github.com/Darginec05/Yoopta-Editor/issues"
37
37
  },
38
- "gitHead": "7f7239bbe8fdbcdc2791a7e25766687c2a6824ae"
38
+ "gitHead": "3a160adbd49ef53630833c71b7fd33103cb51cd7"
39
39
  }