export const RCLONE_CONFIG_DEFAULTS = { copy: { 'multi_thread_cutoff': '64M', 'multi_thread_streams': 8, 'multi_thread_chunk_size': '8M', }, config: { 'fast_list': true, 'use_server_modtime': true, 'buffer_size': '32M', 'transfers': 8, 'checkers': 16, }, vfs: { 'chunk_size': '4M', 'chunk_streams': 16, }, } as const export const RCLONE_CONF_REGEX = /[\/\\]rclone\.conf$/ export const DOUBLE_BACKSLASH_REGEX = /\\\\/g export const SERVE_TYPES = ['dlna', 'ftp', 'sftp', 'http', 'nfs', 'restic', 's3', 'webdav'] as const export const SUPPORTS_CLEANUP = [ 's3', 'b2', 'box', 'filefabric', 'filen', 'drive', 'internetarchive', 'jottacloud', 'mailru', 'mega', 'onedrive', 'oos', 'pcloud', 'pikpak', 'putio', 'protondrive', 'qingstor', 'seafile', 'yandex', ] as const export const SUPPORTS_PURGE = [ 'netstorage', 'box', 'sharefile', 'dropbox', 'filefabric', 'filescom', 'filen', 'gofile', 'gcs', 'drive', 'hdfs', 'hifile', 'iclouddrive', 'imagekit', 'jottacloud', 'koofr', 'mailru', 'mega', 'azureblob', 'onedrive', 'opendrive', 'swift', 'pikpak', 'pcloud', 'pixeldrain', 'premiumizeme', 'putio', 'protondrive', 'quatrix', 'seafile', 'sugarsync', 'storj', 'webdav', 'yandex', 'zoho', ] as const export const SUPPORTS_ABOUT = [ 'box', 'dropbox', 'gofile', 'drive', 'filen', 'hdfs', 'internetarchive', 'jottacloud', 'koofr', 'mailru', 'mega', 'azurefiles', 'onedrive', 'opendrive', 'swift', 'pcloud', 'pikpak', 'pixeldrain', 'premiumizeme', 'putio', 'protondrive', 'quatrix', 'seafile', 'sftp', 'webdav', 'yandex', 'zoho', 'local', ] as const export const CANNOT_PERSIST_EMPTY_FOLDERS = [ 's3', 'gcs', 'azureblob', 'b2', 'swift', 'oracleobjectstorage', 'oos', 'qingstor', 'storj', 'memory', ] export function supportsPersistentEmptyFolders(backendType?: string | null) { if (!backendType) return true return !CANNOT_PERSIST_EMPTY_FOLDERS.includes(backendType.toLowerCase()) } // export const SUPPORTED_OPERATIONS = [ // { // id: 'uncategorized', // name: 'Uncategorized', // icon: , // titleColor: 'text-foreground', // indicatorColor: 'text-foreground-500', // }, // { // id: 'copy', // name: 'Copy', // icon: , // titleColor: 'text-primary-400', // indicatorColor: 'text-primary-300', // }, // { // id: 'move', // name: 'Move', // icon: , // titleColor: 'text-primary-400', // indicatorColor: 'text-primary-300', // }, // { // id: 'delete', // name: 'Delete', // icon: , // titleColor: 'text-danger-400', // indicatorColor: 'text-danger-300', // }, // { // id: 'sync', // name: 'Sync', // icon: , // titleColor: 'text-success-300', // indicatorColor: 'text-success-300', // }, // { // id: 'bisync', // name: 'Bisync', // icon: , // titleColor: 'text-primary-400', // indicatorColor: 'text-primary-300', // }, // { // id: 'mount', // name: 'Mount', // icon: , // titleColor: 'text-secondary-500', // indicatorColor: 'text-secondary-400', // }, // { // id: 'purge', // name: 'Purge', // icon: , // titleColor: 'text-warning-300', // indicatorColor: 'text-warning-300', // }, // { // id: 'serve', // name: 'Serve', // icon: , // titleColor: 'text-cyan-500', // indicatorColor: 'text-cyan-300', // }, // ] as const