From 16444fbfb46f6c0de173c562981c6d891ba8b74f Mon Sep 17 00:00:00 2001 From: Matthew Yung <117509016+myung03@users.noreply.github.com> Date: Mon, 12 Aug 2024 09:42:54 -0700 Subject: [PATCH 1/3] [ENG-1836] Prevent "zombie" jobs from appearing in the job manager (#2653) job manager doesn't display zombie jobs while not running --- core/src/api/jobs.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/core/src/api/jobs.rs b/core/src/api/jobs.rs index 12a95b6ae..0cddeefda 100644 --- a/core/src/api/jobs.rs +++ b/core/src/api/jobs.rs @@ -76,8 +76,8 @@ pub(crate) fn mount() -> AlphaRouter { // Reports provides the client with a list of JobReports // - we query with a custom select! to avoid returning paused job cache `job.data` // - results must include running jobs, and be combined with the in-memory state - // this is to ensure the client will always get the correct initial state - // - jobs are sorted in to groups by their action + // this is to ensure the client will always get the correct initial state + // - jobs are sorted into groups by their action // - TODO: refactor grouping system to a many-to-many table #[derive(Debug, Clone, Serialize, Type)] pub struct JobGroup { @@ -91,6 +91,15 @@ pub(crate) fn mount() -> AlphaRouter { R.with2(library()) .query(|(node, library), _: ()| async move { + // Check if the job system is active + let is_active = node + .job_system + .has_active_jobs(NodeContext { + node: Arc::clone(&node), + library: library.clone(), + }) + .await || node.old_jobs.has_active_workers(library.id).await; + let mut groups: HashMap = HashMap::new(); let job_reports: Vec = library @@ -106,7 +115,7 @@ pub(crate) fn mount() -> AlphaRouter { if let Ok(report) = Report::try_from(job.clone()) { Some(report) } else { - // TODO(fogodev): this is a temporary fix for the old job system + // TODO: this is a temporary fix for the old job system OldJobReport::try_from(job).map(Into::into).ok() } }) @@ -122,6 +131,11 @@ pub(crate) fn mount() -> AlphaRouter { ); for job in job_reports { + // Skip running jobs if the job system is not active. Temporary fix + if !is_active && job.status == report::Status::Running { + continue; + } + // action name and group key are computed from the job data let (action_name, group_key) = job.get_action_name_and_group_key(); From d246154c2d25bb8fa34d40a01c1015bd56a18665 Mon Sep 17 00:00:00 2001 From: Lkhsss <89461157+Lkhsss@users.noreply.github.com> Date: Tue, 13 Aug 2024 19:06:56 +0800 Subject: [PATCH 2/3] Update Chinese Translations (#2656) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update Chinses tanstation Chinese will be used in different ways in different places.If it's just a translation program or a word-for-word translation, it's going to be very stiff. Call me if you need a translator.lkhsss1019@gmail.com 1.[fix] `"direction": "方向",`to`"direction": "次序",` 2.[fix]`"ascending": "上升",`to`"ascending": "升序",` 3.[fix]`"item_size": "项目大小"`,to`"item_size": "图标大小",` .........etc 太多了数不过来了。。。 ## I Need Some Help Please send me a screenshot of where these entries are in the app so I can best translate them!(Better tell me where they are in the app.) - failed_to_open_file_with - file_from - file_one - file_picker_not_supported - for_library - image - incoming_spacedrop - indexed_new_files - indexer_rules_error - indexer_rules_not_available - accept_files - app_crashed_description - collection - directories - directory - do_the_thing - dont_have_any - dotfile - ends_with - erase - erase_a_file - erase_a_file_description - file_picker_not_supported - files_many - for_library - gitignore - hosted_locations - my_sick_location * Change some translations... --- .vscode/i18n-ally-reviews.yml | 37 + interface/locales/zh-CN/common.json | 1467 ++++++++++++++------------- 2 files changed, 771 insertions(+), 733 deletions(-) diff --git a/.vscode/i18n-ally-reviews.yml b/.vscode/i18n-ally-reviews.yml index 54adb5df7..f77bd718b 100644 --- a/.vscode/i18n-ally-reviews.yml +++ b/.vscode/i18n-ally-reviews.yml @@ -12,6 +12,13 @@ reviews: type: approve comment: 疑似翻译腔。这个地方不太好译。 time: '2024-04-16T02:03:55.931Z' + - user: + name: Lkhsss + email: 89461157+Lkhsss@users.noreply.github.com + id: q2RWeijQlSW9n8OkzwnqK + type: request_change + comment: 我来 + time: '2024-08-11T01:47:24.517Z' all_jobs_have_been_cleared: locales: zh-CN: @@ -23,6 +30,13 @@ reviews: type: comment comment: 要不要把“清除”改为“完成”? time: '2024-04-16T10:56:22.929Z' + - user: + name: Lkhsss + email: 89461157+Lkhsss@users.noreply.github.com + id: GhuW9AvY_ZO-TiwjLKlEi + type: approve + comment: 确实 + time: '2024-08-11T01:54:48.602Z' archive_info: locales: zh-CN: @@ -127,3 +141,26 @@ reviews: type: request_change comment: '' time: '2024-07-16T18:02:10.188Z' + alpha_release_description: + locales: + zh-CN: + comments: + - user: + name: Lkhsss + email: 89461157+Lkhsss@users.noreply.github.com + id: tYCDVVyNv_eUVpMQJifHm + type: request_change + comment: 最后的“有助于极大增强用户体验”很拗口,直接删减法改为“有助于提升用户体验” + time: '2024-08-11T01:57:47.644Z' + collection: + locales: + zh-CN: + comments: + - user: + name: Lkhsss + email: 89461157+Lkhsss@users.noreply.github.com + id: d4GmnxySaJIsAY8vVYY1B + type: approve + comment: 这玩意是什么文件类型? + time: '2024-08-11T02:13:46.747Z' + resolved: true diff --git a/interface/locales/zh-CN/common.json b/interface/locales/zh-CN/common.json index 2d7ad2754..c53abb775 100644 --- a/interface/locales/zh-CN/common.json +++ b/interface/locales/zh-CN/common.json @@ -1,735 +1,736 @@ { - "Connect": "连接", - "Connecting": "正在连接", - "about": "关于", - "about_vision_text": "我们很多人拥有不止一个云账户,磁盘没有备份,数据也有丢失的风险。我们依赖于像 Google 相册、iCloud 这样的云服务,但是它们容量有限,且互操作性几乎为零,云服务和操作系统之间也无法协作。我们的照片不应该困在单一一种生态系统中,也不应该被用于广告营销而被收割,它们应该与操作系统无关、永久保存、由我们自己所有。我们创造的数据是我们的遗产,它们的寿命会比我们还要长,无限地定义了我们的生活,而开源技术是唯一能确保我们绝对控制这些数据的方式", - "about_vision_title": "项目远景", - "accept": "接受", - "accept_files": "Accept files", - "accessed": "已访问", - "account": "账户", - "actions": "操作", - "add": "添加", - "add_device": "添加设备", - "add_file_extension_rule": "将文件扩展名添加到当前规则", - "add_filter": "添加过滤器", - "add_library": "添加库", - "add_location": "添加位置", - "add_location_description": "通过将您喜爱的位置添加到个人库中,增强您的 Spacedrive 体验,以实现无缝高效的文件管理。", - "add_location_overview_description": "将本地路径、卷或网络位置连接到 Spacedrive。", - "add_location_tooltip": "将路径添加为索引", - "add_locations": "添加位置", - "add_tag": "添加标签", - "added_location": "已添加位置 {{name}}", - "adding_location": "添加位置 {{name}}", - "advanced": "高级", - "advanced_settings": "高级设置", - "album": "相册", - "alias": "别名", - "all_jobs_have_been_cleared": "所有任务已清除。", - "alpha_release_description": "感谢试用 Spacedrive。现在 Spacedrive 处于 Alpha 发布阶段,展示了激动人心的新功能。作为初始版本,它可能包含一些错误。我们恳请您在我们的 Discord 频道上反馈遇到的任何问题,您宝贵的反馈将有助于极大增强用户体验。", - "alpha_release_title": "Alpha 版本", - "app_crashed": "应用程序崩溃了", - "app_crashed_description": "We're past the event horizon...", - "appearance": "外观", - "appearance_description": "调整客户端的外观。", - "apply": "申请", - "archive": "存档", - "archive_coming_soon": "存档位置功能即将推出……", - "archive_info": "将库中的数据作为存档提取,有利于保留位置的目录结构。", - "are_you_sure": "您确定吗?", - "ascending": "上升", - "ask_spacedrive": "询问 Spacedrive", - "assign_tag": "分配标签", - "audio": "音频", - "audio_preview_not_supported": "不支持音频预览。", - "auto": "自动", - "back": "返回", - "backfill_sync": "回填同步操作", - "backfill_sync_description": "库暂停直至回填完成", - "backups": "备份", - "backups_description": "管理您的 Spacedrive 数据库备份。", - "bitrate": "比特率", - "blur_effects": "模糊效果", - "blur_effects_description": "某些组件将应用模糊效果。", - "book": "书籍", - "cancel": "取消", - "cancel_selection": "取消选择", - "canceled": "取消", - "celcius": "摄氏度", - "change": "更改", - "change_view_setting_description": "更改默认资源管理器视图", - "changelog": "更新日志", - "changelog_page_description": "看看我们在开发哪些酷炫的新功能", - "changelog_page_title": "更新日志", - "checksum": "校验和", - "clear_finished_jobs": "清除已完成的任务", - "click_to_hide": "点击隐藏", - "click_to_lock": "点击锁定", - "client": "客户端", - "close": "关闭", - "close_command_palette": "关闭命令面板", - "close_current_tab": "关闭当前标签页", - "cloud": "云", - "cloud_connect_description": "您想将您的图书馆连接到云端吗?", - "cloud_drives": "云盘", - "cloud_sync": "云同步", - "cloud_sync_description": "管理将您的库与 Spacedrive Cloud 同步的流程", - "clouds": "云服务", - "code": "Code", - "collection": "Collection", - "color": "颜色", - "color_profile": "颜色配置文件", - "color_space": "色彩空间", - "coming_soon": "即将推出", - "completed": "已完成", - "completed_with_errors": "已完成但有错误", - "compress": "压缩", - "config": "配置文件", - "configure_location": "配置文件位置", - "confirm": "确认", - "connect_cloud": "连接到云", - "connect_cloud_description": "将您的云帐户连接到 Spacedrive。", - "connect_device": "连接设备", - "connect_device_description": "Spacedrive 在您的所有设备上都能发挥最佳效果。", - "connect_library_to_cloud": "将库连接到 Spacedrive Cloud", - "connected": "已连接", - "connecting_library_to_cloud": "将库连接到 Spacedrive Cloud...", - "contacts": "联系人", - "contacts_description": "在 Spacedrive 中管理您的联系人。", - "contains": "包含", - "content_id": "内容ID", - "continue": "继续", - "convert_to": "转换为", - "coordinates": "坐标", - "copied": "已复制", - "copy": "复制", - "copy_as_path": "复制路径", - "copy_object": "复制对象", - "copy_path_to_clipboard": "复制路径到剪贴板", - "copy_success": "项目已复制", - "create": "创建", - "create_file_error": "创建文件时出错", - "create_file_success": "创建了新文件:{{name}}", - "create_folder_error": "创建文件夹时出错", - "create_folder_success": "创建了新文件夹:{{name}}", - "create_library": "创建库", - "create_library_description": "库(library),也即数据库(database),存储在设备上,非常安全。您的文件就放在原来的位置上,库对它们的目录结构进行索引,同时存储所有与 Spacedrive 相关的数据。", - "create_location": "Create Location", - "create_new_library": "创建新库", - "create_new_library_description": "库(library),也即数据库(database),存储在设备上,非常安全。您的文件就放在原来的位置上,库对它们的目录结构进行索引,同时存储所有与 Spacedrive 相关的数据。", - "create_new_tag": "创建新标签", - "create_new_tag_description": "设置名称与颜色。", - "create_tag": "创建标签", - "created": "已创建", - "creating_library": "正在创建库…", - "creating_your_library": "正在为您创建库", - "current": "当前使用", - "current_directory": "当前目录", - "current_directory_with_descendants": "当前目录及其子目录", - "custom": "自定义", - "cut": "剪切", - "cut_object": "剪切对象", - "cut_success": "剪切项目", - "dark": "深色", - "data_folder": "数据文件夹", - "database": "数据库", - "date": "日期", - "date_accessed": "访问日期", - "date_created": "创建日期", - "date_indexed": "索引日期", - "date_modified": "修改日期", - "date_taken": "拍摄日期", - "date_time_format": "日期和时间格式", - "date_time_format_description": "选择 Spacedrive 中显示的日期格式", - "debug_mode": "调试模式", - "debug_mode_description": "启用本应用额外的调试功能。", - "default": "默认", - "default_settings": "默认设置", - "delete": "删除", - "delete_dialog_title": "删除 {{prefix}} {{type}}", - "delete_forever": "永久删除", - "delete_info": "此操作只删除预览媒体,并不会删除磁盘上实际的文件夹。", - "delete_library": "删除库", - "delete_library_description": "Spacedrive 库将会永久删除,但您的文件不会删除。", - "delete_location": "删除存储位置", - "delete_location_description": "删除存储位置时,Spacedrive 会从数据库中移除所有与之相关的文件,但是不会删除文件本身。", - "delete_object": "删除对象", - "delete_rule": "删除规则", - "delete_rule_confirmation": "您确定要删除这个规则吗?", - "delete_tag": "删除标签", - "delete_tag_description": "您确定要删除这个标签吗?此操作不能撤销,打过标签的文件将会丢失标签。", - "delete_warning": "警告:这将永久删除您的 {{type}},我们目前还没有回收站……", - "descending": "降序", - "description": "描述", - "deselect": "取消选择", - "details": "详情", - "device": "设备", - "devices": "设备", - "devices_coming_soon_tooltip": "即将推出!本 Alpha 版本不支持库同步,此功能很快就会准备就绪。", - "dialog": "对话框", - "dialog_shortcut_description": "执行操作", - "direction": "方向", - "directories": "directories", - "directory": "directory", - "disabled": "已禁用", - "disconnected": "已断开连接", - "display_formats": "显示格式", - "display_name": "显示名称", - "distance": "距离", - "do_the_thing": "Do the thing", - "document": "Document", - "done": "完成", - "dont_have_any": "Looks like you don't have any!", - "dont_show_again": "不再显示", - "dotfile": "Dotfile", - "double_click_action": "双击操作", - "download": "下载", - "downloading_update": "正在下载更新", - "drag_to_resize": "拖动以调整大小", - "duplicate": "复制", - "duplicate_object": "复制对象", - "duplicate_success": "项目已复制", - "edit": "编辑", - "edit_library": "编辑库", - "edit_location": "编辑位置", - "empty_file": "空的文件", - "enable_networking": "启用网络", - "enable_networking_description": "允许您的节点与您周围的其他 Spacedrive 节点进行通信。", - "enable_networking_description_required": "库的同步和 Spacedrop 需要开启本功能!", - "enable_relay": "启用中继", - "enable_relay_description": "启用中继服务器以允许您的设备通过公共互联网进行通信。", - "enable_sync": "启用同步", - "enable_sync_description": "为该库中的所有现有数据生成同步操作,并配置 Spacedrive 以在将来发生事情时生成同步操作。", - "enabled": "启用", - "encrypt": "加密", - "encrypt_library": "加密库", - "encrypt_library_coming_soon": "资料库加密即将推出", - "encrypt_library_description": "为这个库启用加密,这只会加密Spacedrive数据库,不会加密文件本身。", - "encrypted": "已加密", - "ends_with": "以... 结束", - "ephemeral_notice_browse": "直接从您的设备浏览您的文件和文件夹。", - "ephemeral_notice_consider_indexing": "考虑索引您本地的位置,以获得更快和更高效的浏览。", - "equals": "是", - "erase": "擦除", - "erase_a_file": "擦除一个文件", - "erase_a_file_description": "配置您的擦除设置。", - "error": "错误", - "error_loading_original_file": "加载原始文件出错", - "error_message": "Error: {{error}}.", - "executable": "Executable", - "expand": "展开", - "explorer": "资源管理器", - "explorer_settings": "资源管理器设置", - "explorer_shortcut_description": "导航、与文件系统交互", - "explorer_view": "资源管理器视图", - "export": "导出", - "export_library": "导出库", - "export_library_coming_soon": "导出库功能即将推出", - "export_library_description": "将这个库导出到一个文件。", - "extension": "扩大", - "extensions": "扩展", - "extensions_description": "安装扩展来扩展这个客户端的功能。", - "fahrenheit": "华氏度", - "failed": "失败的", - "failed_to_add_location": "Failed to add location", - "failed_to_cancel_job": "取消任务失败。", - "failed_to_clear_all_jobs": "清除所有任务失败。", - "failed_to_copy_file": "复制文件失败", - "failed_to_copy_file_path": "复制文件路径失败", - "failed_to_cut_file": "剪切文件失败", - "failed_to_delete_rule": "Failed to delete rule", - "failed_to_download_update": "无法下载更新", - "failed_to_duplicate_file": "复制文件失败", - "failed_to_generate_checksum": "生成校验和失败", - "failed_to_generate_labels": "生成标签失败", - "failed_to_generate_thumbnails": "生成缩略图失败", - "failed_to_load_tags": "加载标签失败", - "failed_to_open_file_body": "Couldn't open file, due to an error: {{error}}", - "failed_to_open_file_title": "Failed to open file", - "failed_to_open_file_with": "Failed to open file, with: {{data}}", - "failed_to_pause_job": "暂停任务失败。", - "failed_to_reindex_location": "重索引位置失败", - "failed_to_remove_file_from_recents": "从最近文档中删除文件失败", - "failed_to_remove_job": "删除任务失败。", - "failed_to_rename_file": "Could not rename {{oldName}} to {{newName}}", - "failed_to_rescan_location": "重新扫描位置失败", - "failed_to_resume_job": "恢复任务失败。", - "failed_to_update_location_settings": "更新位置设置失败", - "favorite": "收藏", - "favorites": "收藏夹", - "feedback": "反馈", - "feedback_is_required": "反馈是必填项", - "feedback_login_description": "登录使我们能够回复您的反馈", - "feedback_placeholder": "您的反馈...", - "feedback_toast_error_message": "提交反馈时出错,请重试。", - "file_already_exist_in_this_location": "文件已存在于此位置", - "file_directory_name": "文件/目录名称", - "file_extension_description": "文件扩展名(例如 .mp4、.jpg、.txt)", - "file_from": "File {{file}} from {{name}}", - "file_indexing_rules": "文件索引规则", - "file_one": "file", - "file_picker_not_supported": "File picker not supported on this platform", - "file_two": "文件", - "file_zero": "文件", - "files_many": "files", - "filter": "筛选", - "filters": "过滤器", - "flash": "闪光", - "folder": "Folder", - "font": "Font", - "for_library": "For library {{name}}", - "forced": "被迫", - "forward": "前进", - "free_of": "自由的", - "from": "从", - "full_disk_access": "完全磁盘访问", - "full_disk_access_description": "为了提供最佳体验,我们需要访问您的磁盘以索引您的文件。您的文件只有您自己可以访问。", - "full_reindex": "完全重新索引", - "full_reindex_info": "执行对此位置的完全重新扫描。", - "general": "通用", - "general_settings": "通用设置", - "general_settings_description": "与此客户端相关的一般设置。", - "general_shortcut_description": "通用快捷键", - "generatePreviewMedia_label": "为这个位置生成预览媒体", - "generate_checksums": "生成校验和", - "gitignore": "git 忽略", - "glob_description": "全局(例如 **/.git)", - "go_back": "返回", - "go_to_labels": "转到标签", - "go_to_location": "前往地点", - "go_to_overview": "前往概览", - "go_to_recents": "转到最近的内容", - "go_to_settings": "前往设置", - "go_to_tag": "转到标签", - "got_it": "我知道了", - "grid_gap": "间隙", - "grid_view": "网格视图", - "grid_view_notice_description": "网格视图以缩略图形式显示文件和文件夹,以便直观、快速识别要寻找的文件。", - "hidden": "隐", - "hidden_label": "阻止位置及其内容出现在汇总分类、搜索和标签中,除非启用了“显示隐藏项目”。", - "hide_in_library_search": "在库搜索中隐藏", - "hide_in_library_search_description": "在搜索整个库时从结果中隐藏带有此标签的文件。", - "hide_in_sidebar": "在侧边栏中隐藏", - "hide_in_sidebar_description": "阻止此标签在应用的侧边栏中显示。", - "hide_location_from_view": "隐藏位置和内容的视图", - "hide_sidebar": "隐藏侧边栏", - "home": "我的文档", - "hosted_locations": "Hosted Locations", - "hosted_locations_description": "Augment your local storage with our cloud!", - "icon_size": "图标大小", - "image": "Image", - "image_labeler_ai_model": "图像标签识别 AI 模型", - "image_labeler_ai_model_description": "用于识别图像中对象的模型。较大的模型更准确但速度较慢。", - "import": "导入", - "incoming_spacedrop": "Incoming Spacedrop", - "indexed": "已索引", - "indexed_new_files": "Indexed new files {{name}}", - "indexer_rule_reject_allow_label": "默认情况下,索引器规则作为拒绝列表,排除与其匹配的任何文件。启用此选项将其变成允许列表,仅索引符合其规定规则的位置的文件。", - "indexer_rules": "索引器规则", - "indexer_rules_error": "Error while retrieving indexer rules", - "indexer_rules_info": "索引器规则允许您使用通配符指定要忽略的路径。", - "indexer_rules_not_available": "No indexer rules available", - "ingester": "同步接收器", - "ingester_description": "此过程接收接收到的云操作并将它们发送到主同步接收器。", - "injester_description": "此过程从 P2P 连接和 Spacedrive Cloud 获取同步操作,并将其应用到库。", - "install": "安装", - "install_update": "安装更新", - "installed": "已安装", - "invalid_extension": "无效的扩展名", - "invalid_glob": "无效的全局变量", - "invalid_name": "名称无效", - "invalid_path": "路径无效", - "ipv4_ipv6_listeners_error": "创建 IPv4 和 IPv6 监听器出错。请检查防火墙设置!", - "ipv4_listeners_error": "创建 IPv4 监听器出错。请检查防火墙设置!", - "ipv6": "IPv6网络", - "ipv6_description": "允许使用 IPv6 网络进行点对点通信", - "ipv6_listeners_error": "创建 IPv6 监听器时出错。请检查防火墙设置!", - "is": "是", - "is_not": "不是", - "item": "item", - "item_size": "项目大小", - "items": "项目", - "job_error_description": "作业已完成,但有错误。\n请参阅下面的错误日志以获取更多信息。\n如果您需要帮助,请联系支持人员并提供此错误。", - "job_has_been_canceled": "作业已取消。", - "job_has_been_paused": "作业已暂停。", - "job_has_been_removed": "作业已移除。", - "job_has_been_resumed": "作业已恢复。", - "join": "加入", - "join_discord": "加入 Discord", - "join_library": "加入一个资料库", - "join_library_description": "库是一个安全的,设备上的数据库。您的文件保持原位,库对其进行目录编制并存储所有Spacedrive相关数据。", - "key": "键位", - "key_manager": "密钥管理器", - "key_manager_description": "创建加密密钥,挂载和卸载密钥以即时查看解密文件。", - "keybinds": "快捷键", - "keybinds_description": "查看、管理客户端快捷键", - "keys": "密钥", - "kilometers": "千米", - "kind": "种类", - "kind_other": "种类", - "label": "标签", - "labels": "标签", - "language": "语言", - "language_description": "更改 Spacedrive 界面的语言", - "learn_more": "Learn More", - "learn_more_about_telemetry": "了解更多有关遥测的信息", - "less": "less", - "libraries": "库", - "libraries_description": "数据库包含所有库的数据和文件的元数据。", - "library": "库", - "library_bytes": "库大小", - "library_bytes_description": "图书馆中所有位置的总大小。", - "library_db_size": "索引大小", - "library_db_size_description": "图书馆数据库的大小。", - "library_name": "库名称", - "library_overview": "库概览", - "library_settings": "库设置", - "library_settings_description": "与当前活动库相关的一般设置。", - "light": "浅色", - "link": "链接", - "list_view": "列表视图", - "list_view_notice_description": "通过列表视图轻松导航您的文件和文件夹。这种视图以简单、有组织的列表形式显示文件,让您能够快速定位和访问所需文件。", - "loading": "正在加载", - "local": "本地", - "local_locations": "本地位置", - "local_node": "本地节点", - "location": "地点", - "location_added_successfully": "位置添加成功。", - "location_connected_tooltip": "位置正在监视变化", - "location_deleted_successfully": "位置删除成功。", - "location_disconnected_tooltip": "位置未被监视以检查更改", - "location_display_name_info": "此位置的名称,这是将显示在侧边栏的名称。不会重命名磁盘上的实际文件夹。", - "location_empty_notice_message": "这个地方空空如也", - "location_is_already_linked": "位置已经链接", - "location_other": "地点", - "location_path_info": "此位置的路径,这是文件在磁盘上的存储位置。", - "location_type": "位置类型", - "location_type_managed": "Spacedrive 将为您排序文件。如果位置不为空,将创建一个“spacedrive”文件夹。", - "location_type_normal": "内容将按原样索引,新文件不会自动排序。", - "location_type_replica": "此位置是另一个位置的副本,其内容将自动同步。", - "locations": "存储位置", - "locations_description": "管理您的存储位置。", - "lock": "锁定", - "lock_sidebar": "锁定侧边栏", - "log_in": "登录", - "log_in_with_browser": "使用浏览器登录", - "log_out": "退出登录", - "logged_in_as": "已登录为 {{email}}", - "logging_in": "正在登录...", - "logout": "退出登录", - "manage_library": "管理库", - "managed": "已管理", - "manual_peers": "手动添加对等点", - "manual_peers_description": "通过输入 IP 地址和端口来手动添加对等点。\n当无法自动发现时,这非常有用。", - "media": "媒体", - "media_view": "媒体视图", - "media_view_context": "媒体视图上下文", - "media_view_notice_description": "轻松发现照片和视频,媒体视图将从当前位置开始显示结果,包括子目录。", - "meet_contributors_behind_spacedrive": "结识 Spacedrive 背后的贡献者", - "meet_title": "了解{{title}}", - "mesh": "Mesh", - "miles": "英里", - "mode": "模式", - "model": "模型", - "modified": "已修改", - "more": "更多", - "more_actions": "更多操作…", - "more_info": "更多信息", - "move_back_within_quick_preview": "在快速预览中后退", - "move_files": "移动文件", - "move_forward_within_quick_preview": "在快速预览中前进", - "move_to_trash": "移到回收站(废纸篓)", - "my_sick_location": "My sick location", - "name": "名称", - "navigate_back": "回退", - "navigate_backwards": "向后导航", - "navigate_files_downwards": "向下导航文件", - "navigate_files_leftwards": "向左导航文件", - "navigate_files_rightwards": "向右导航文件", - "navigate_files_upwards": "向上导航文件", - "navigate_forward": "前进", - "navigate_forwards": "向前导航", - "navigate_to_settings_page": "导航到设置页面", - "network": "网络", - "network_page_description": "您的局域网上的其他Spacedrive节点将显示在这里,以及您的默认操作系统网络挂载。", - "network_settings": "网络设置", - "network_settings_advanced": "高级网络概述", - "network_settings_advanced_description": "有关当前网络设置的高级信息。", - "network_settings_description": "与网络和连接相关的设置。", - "networking": "网络", - "networking_error": "网络启动错误!", - "networking_port": "网络端口", - "networking_port_description": "Spacedrive 点对点网络通信使用的端口。除非您有防火墙来限制,否则应保持此项禁用。不要在互联网上暴露自己!", - "new": "新的", - "new_folder": "新文件夹", - "new_library": "新库", - "new_location": "新位置", - "new_location_web_description": "由于您正在使用Spacedrive的浏览器版本,您将(目前)需要指定远程节点本地目录的绝对URL。", - "new_tab": "新标签", - "new_tag": "新标签", - "new_update_available": "新版本可用!", - "no_apps_available": "没有可用的应用程序", - "no_favorite_items": "没有最喜欢的物品", - "no_git_files": "没有 Git 文件", - "no_hidden_files": "没有隐藏文件", - "no_items_found": "找不到任何项目", - "no_jobs": "没有任务。", - "no_labels": "无标签", - "no_nodes_found": "找不到 Spacedrive 节点.", - "no_search_selected": "未选择搜索", - "no_system_files": "没有系统文件", - "no_tag_selected": "没有选中的标签", - "no_tags": "没有标签", - "no_tags_description": "您还没有创建任何标签", - "node_name": "节点名称", - "nodes": "节点", - "nodes_description": "管理连接到此库的节点。节点是在设备或服务器上运行的Spacedrive后端的实例。每个节点都携带数据库副本,并通过点对点连接实时同步。", - "none": "无", - "normal": "普通", - "not_you": "不是您?", - "note": "Note", - "nothing_selected": "未选择任何内容", - "number_of_passes": "通过次数", - "object": "目的", - "object_id": "对象ID", - "off": "离开", - "offline": "离线", - "on": "在", - "online": "在线", - "only_images": "仅图像", - "open": "打开", - "open_file": "打开文件", - "open_in_new_tab": "在新标签页中打开", - "open_logs": "查看日志", - "open_new_location_once_added": "添加新位置后立即打开", - "open_new_tab": "打开新标签页", - "open_object": "打开对象", - "open_object_from_quick_preview_in_native_file_manager": "在本机文件管理器中从快速预览中打开对象", - "open_settings": "打开设置", - "open_with": "打开方式", - "opening_trash": "打开回收站", - "or": "或", - "overview": "概览", - "p2p_visibility": "P2P 可见性", - "p2p_visibility_contacts_only": "仅限联系人", - "p2p_visibility_description": "配置谁可以看到您的 Spacedrive 安装。", - "p2p_visibility_disabled": "关闭", - "p2p_visibility_everyone": "所有人", - "package": "Package", - "page": "页面", - "page_shortcut_description": "应用程序中的不同页面", - "pair": "配对", - "pairing_with_node": "正在与{{node}}配对", - "paste": "粘贴", - "paste_object": "粘贴对象", - "paste_success": "已粘贴项目", - "path": "路径", - "path_copied_to_clipboard_description": "位置{{location}}的路径已复制到剪贴板。", - "path_copied_to_clipboard_title": "路径已复制到剪贴板", - "path_to_save_do_the_thing": "Path to save when clicking 'Do the thing':", - "paths": "路径", - "pause": "暂停", - "paused": "已暂停", - "peers": "个端点", - "people": "人们", - "pin": "Pin", - "please_select_emoji": "请选择一个表情", - "prefix_a": "a", - "preview_media_bytes": "预览媒体", - "preview_media_bytes_description": "所有预览媒体文件(例如缩略图)的总大小。", - "privacy": "隐私", - "privacy_description": "Spacedrive是为隐私而构建的,这就是为什么我们是开源的,以本地优先。因此,我们会非常明确地告诉您与我们分享了什么数据。", - "queued": "排队", - "quick_preview": "快速预览", - "quick_rescan_started": "正在快速重新扫描目录。", - "quick_view": "快速查看", - "quickpreview_thumbnail_error_message": "无法加载全分辨率图像", - "quickpreview_thumbnail_error_tip": "无法找到图像。因此显示缩略图。", - "random": "随机的", - "receiver": "接收者", - "receiver_description": "该进程接收并存储来自 Spacedrive Cloud 的操作。", - "recent_jobs": "最近的作业", - "recents": "最近使用", - "recents_notice_message": "打开文件时会创建最近的文件。", - "regen_labels": "重新生成标签", - "regen_thumbnails": "重新生成缩略图", - "regenerate_thumbs": "重新生成缩略图", - "reindex": "重新索引", - "reject": "拒绝", - "reject_files": "Reject files", - "relay_listeners_error": "创建中继侦听器时出错。请检查您的防火墙设置!", - "reload": "重新加载", - "remote_access": "启用远程访问", - "remote_access_description": "使其他节点能够直接连接到该节点。", - "remote_identity": "远程身份", - "remove": "移除", - "remove_from_recents": "从最近使用中移除", - "rename": "重命名", - "rename_object": "重命名对象", - "replica": "副本", - "rescan": "重新扫描", - "rescan_directory": "重新扫描目录", - "rescan_location": "重新扫描位置", - "reset": "重置", - "reset_and_quit": "重置并退出应用程序", - "reset_confirmation": "您确定要重置 Spacedrive 吗?您的数据库将被删除。", - "reset_to_continue": "我们检测到您可能使用旧版本的 Spacedrive 创建了您的资料库。请重置以继续使用应用程序!", - "reset_warning": "您会丢失现有的所有 Spacedrive数据!", - "resolution": "解决", - "resources": "资源", - "restore": "恢复", - "resume": "恢复", - "retry": "重试", - "reveal_in_native_file_manager": "在本机文件管理器中显示", - "revel_in_browser": "在{{browser}}中显示", - "rules": "规则", - "running": "运行中", - "save": "保存", - "save_changes": "保存更改", - "save_search": "保存搜索", - "save_spacedrop": "保存 Spacedrop", - "saved_searches": "保存的搜索", - "screenshot": "屏幕截图", - "search": "搜索", - "search_extensions": "搜索扩展", - "search_for_files_and_actions": "搜索文件和操作...", - "search_locations": "搜索地点", - "secure_delete": "安全删除", - "security": "安全", - "security_description": "确保您的客户端安全。", - "see_less": "更少", - "see_more": "更多", - "send": "发送", - "send_report": "发送报告", - "sender": "发件人", - "sender_description": "此过程将同步操作发送到 Spacedrive Cloud。", - "settings": "设置", - "setup": "设置", - "share": "分享", - "share_anonymous_usage": "分享匿名使用情况", - "share_anonymous_usage_description": "分享完全匿名的遥测数据,帮助开发者改进应用程序", - "share_bare_minimum": "分享最基本信息", - "share_bare_minimum_description": "只分享我是 Spacedrive 的活跃用户和一些技术细节", - "sharing": "共享", - "sharing_description": "管理有权访问您的库的人。", - "show_details": "显示详情", - "show_hidden_files": "显示隐藏文件", - "show_inspector": "显示检查员", - "show_object_size": "显示对象大小", - "show_path_bar": "显示路径栏", - "show_slider": "显示滑块", - "show_tags": "显示标签", - "size": "大小", - "size_b": "B", - "size_bs": "Bs", - "size_gb": "GB", - "size_gbs": "GBs", - "size_kb": "KB", - "size_kbs": "KBs", - "size_mb": "MB", - "size_mbs": "MB", - "size_tb": "TB", - "size_tbs": "TBs", - "skip_login": "跳过登录", - "software": "软件", - "sort_by": "排序依据", - "spacedrive_account": "Spacedrive 账户", - "spacedrive_cloud": "Spacedrive 云", - "spacedrive_cloud_description": "Spacedrive 始终优先重视本地资源,但我们未来会提供可选的自有云服务。目前,身份验证仅用于反馈功能。", - "spacedrop": "Spacedrop", - "spacedrop_a_file": "使用 Spacedrop 传输文件", - "spacedrop_already_progress": "Spacedrop 已在进行中", - "spacedrop_contacts_only": "仅限联系人", - "spacedrop_description": "与在您的网络上运行 Spacedrive 的设备即时共享。", - "spacedrop_disabled": "关闭", - "spacedrop_everyone": "所有人", - "spacedrop_rejected": "Spacedrop 被拒绝", - "square_thumbnails": "方形缩略图", - "star_on_github": "在 GitHub 上标星", - "start": "开始", - "starting": "开始...", - "starts_with": "以...开始", - "stop": "停止", - "stopping": "正在停止...", - "success": "成功", - "support": "支持", - "switch_to_grid_view": "切换到网格视图", - "switch_to_list_view": "切换到列表视图", - "switch_to_media_view": "切换到媒体视图", - "switch_to_next_tab": "切换到下一个标签页", - "switch_to_previous_tab": "切换到上一个标签页", - "sync": "同步", - "syncPreviewMedia_label": "将此位置的预览媒体与您的设备同步", - "sync_description": "管理 Spacedrive 的同步方式。", - "sync_with_library": "与资料库同步", - "sync_with_library_description": "如果启用,您的快捷方式将与资料库同步,否则它们只适用于此客户端。", - "system": "系统", - "tag": "标签", - "tag_other": "标签", - "tags": "标签", - "tags_description": "管理您的标签。", - "tags_notice_message": "没有项目分配给该标签。", - "task": "任务", - "task_other": "任务", - "telemetry_description": "启用以向开发者提供详细的使用情况和遥测数据来改善应用程序。禁用则将只发送基本数据:您的活动状态、应用版本、应用内核版本以及平台(例如移动端、web 端或桌面端)。", - "telemetry_title": "共享额外的遥测和使用数据", - "temperature": "温度", - "text": "文本", - "text_file": "文本文件", - "text_size": "文字大小", - "thank_you_for_your_feedback": "感谢您的反馈!", - "thumbnailer_cpu_usage": "缩略图生成器 CPU 使用", - "thumbnailer_cpu_usage_description": "限制缩略图生成器在后台处理时可以使用 CPU 的量。", - "to": "到", - "toggle_all": "切换全部", - "toggle_command_palette": "打开命令面板", - "toggle_hidden_files": "显示/隐藏文件", - "toggle_image_slider_within_quick_preview": "在快速预览中切换图像滑块", - "toggle_inspector": "切换检查器", - "toggle_job_manager": "切换任务管理器", - "toggle_metadata": "切换元数据", - "toggle_path_bar": "切换显示路径栏", - "toggle_quick_preview": "切换快速预览", - "toggle_sidebar": "打开/关闭侧边栏", - "tools": "工具", - "total_bytes_capacity": "总容量", - "total_bytes_capacity_description": "连接到资料库的所有节点的总容量。 在 Alpha 期间可能会显示不正确的值。", - "total_bytes_free": "可用空间", - "total_bytes_free_description": "连接到资料库的所有节点上的可用空间。", - "total_bytes_used": "总使用空间", - "total_bytes_used_description": "连接到资料库的所有节点上使用的总空间。", - "trash": "回收站", - "type": "类型", - "ui_animations": "用户界面动画", - "ui_animations_description": "打开和关闭时对话框和其他用户界面元素将产生动画效果。", - "unknown": "未知", - "unnamed_location": "未命名位置", - "update": "更新", - "update_downloaded": "更新已下载。重新启动 Spacedrive 以安装", - "updated_successfully": "成功更新,您当前使用的版本是 {{version}}", - "uploaded_file": "文件成功上传!", - "usage": "使用情况", - "usage_description": "您的库使用情况和硬件信息", - "vacuum": "清理", - "vacuum_library": "清理库", - "vacuum_library_description": "重新打包数据库以释放不必要的空间。", - "value": "值", - "value_required": "所需值", - "version": "版本 {{version}}", - "video": "视频", - "video_preview_not_supported": "不支持视频预览。", - "view_changes": "查看更改", - "want_to_do_this_later": "想稍后再做吗?", - "web_page_archive": "网页归档", - "website": "网页", - "widget": "小部件", - "with_descendants": "子目录", - "your_account": "您的账户", - "your_account_description": "Spacedrive 账号和信息。", - "your_local_network": "您的本地网络", - "your_privacy": "您的隐私", - "zoom": "缩放", - "zoom_in": "放大", - "zoom_out": "缩小" + "about": "关于", + "about_vision_text": "很多人都不止拥有一个云账户。没有备份,数据有丢失的风险。我们依赖像 Google 相册、iCloud 这样的云服务,但是它们容量低下,且互操作性几乎为零,几乎无法和操作系统集成。我们的照片不应该困在营业公司的广告当中,而因该由我们全权掌控。创造数据是我们的传统技能,这些数据存在于我们生活的方方面面。而开源技术是唯一能确保我们绝对控制这些日益增长的数据的方式。", + "about_vision_title": "项目远景", + "accept": "接受", + "accept_files": "Accept files", + "accessed": "已访问", + "account": "账户", + "actions": "操作", + "add": "添加", + "add_device": "添加设备", + "add_file_extension_rule": "将文件扩展名添加到当前规则", + "add_filter": "添加过滤器", + "add_library": "添加库", + "add_location": "添加位置", + "add_location_description": "通过将您喜爱的位置添加到个人库中,增强您的 Spacedrive 体验,以实现无缝高效的文件管理。", + "add_location_overview_description": "将本地路径、卷或网络位置连接到 Spacedrive。", + "add_location_tooltip": "将路径添加为索引", + "add_locations": "添加位置", + "add_tag": "添加标签", + "added_location": "已添加位置 {{name}}", + "adding_location": "添加位置 {{name}}", + "advanced": "高级", + "advanced_settings": "高级设置", + "album": "相册", + "alias": "别名", + "all_jobs_have_been_cleared": "所有任务皆已完成。", + "alpha_release_description": "感谢试用 Spacedrive。现在 Spacedrive 处于 Alpha 发布阶段,展示了激动人心的新功能。作为初始版本,它可能包含一些错误。我们恳请您在我们的 Discord 频道上反馈遇到的任何问题,您宝贵的反馈将有助于提升用户体验。", + "alpha_release_title": "Alpha 版本", + "app_crashed": "应用程序崩溃了", + "app_crashed_description": "出现了一些错误...", + "appearance": "外观", + "appearance_description": "调整客户端的外观。", + "apply": "申请", + "archive": "存档", + "archive_coming_soon": "存档位置功能即将推出……", + "archive_info": "将库中的数据作为存档提取,有利于保留位置的目录结构。", + "are_you_sure": "您确定吗?", + "ascending": "升序", + "ask_spacedrive": "询问 Spacedrive", + "assign_tag": "分配标签", + "audio": "音频", + "audio_preview_not_supported": "不支持音频预览。", + "auto": "自动", + "back": "返回", + "backfill_sync": "回填同步操作", + "backfill_sync_description": "库暂停直至回填完成", + "backups": "备份", + "backups_description": "管理您的 Spacedrive 数据库备份。", + "bitrate": "比特率", + "blur_effects": "模糊效果", + "blur_effects_description": "某些组件将应用模糊效果。", + "book": "书籍", + "cancel": "取消", + "cancel_selection": "取消选择", + "canceled": "取消", + "celcius": "摄氏度", + "change": "更改", + "change_view_setting_description": "更改默认资源管理器视图", + "changelog": "更新日志", + "changelog_page_description": "看看我们在开发哪些酷炫的新功能", + "changelog_page_title": "更新日志", + "checksum": "校验和", + "clear_finished_jobs": "清除已完成的任务", + "click_to_hide": "点击隐藏", + "click_to_lock": "点击锁定", + "client": "客户端", + "close": "关闭", + "close_command_palette": "关闭命令面板", + "close_current_tab": "关闭当前标签页", + "cloud": "云", + "cloud_connect_description": "您想将您的图书馆连接到云端吗?", + "cloud_drives": "云盘", + "cloud_sync": "云同步", + "cloud_sync_description": "管理将您的库与 Spacedrive Cloud 同步的流程", + "clouds": "云服务", + "code": "Code", + "collection": "Collection", + "color": "颜色", + "color_profile": "颜色配置文件", + "color_space": "色彩空间", + "coming_soon": "即将推出", + "completed": "已完成", + "completed_with_errors": "已完成但有错误", + "compress": "压缩", + "config": "配置文件", + "configure_location": "配置文件位置", + "confirm": "确认", + "Connect": "连接", + "connect_cloud": "连接到云", + "connect_cloud_description": "将您的云帐户连接到 Spacedrive。", + "connect_device": "连接设备", + "connect_device_description": "Spacedrive 在您的所有设备上都能发挥最佳效果。", + "connect_library_to_cloud": "将库连接到 Spacedrive Cloud", + "connected": "已连接", + "Connecting": "正在连接", + "connecting_library_to_cloud": "将库连接到 Spacedrive Cloud...", + "contacts": "联系人", + "contacts_description": "在 Spacedrive 中管理您的联系人。", + "contains": "包含", + "content_id": "内容ID", + "continue": "继续", + "convert_to": "转换为", + "coordinates": "坐标", + "copied": "已复制", + "copy": "复制", + "copy_as_path": "复制路径", + "copy_object": "复制对象", + "copy_path_to_clipboard": "复制路径到剪贴板", + "copy_success": "项目已复制", + "create": "创建", + "create_file_error": "创建文件时出错", + "create_file_success": "创建了新文件:{{name}}", + "create_folder_error": "创建文件夹时出错", + "create_folder_success": "创建了新文件夹:{{name}}", + "create_library": "创建库", + "create_library_description": "数据库将安全地存储在您地设备上。我们不会移动您的文件,仅仅对其进行索引,同时存储与 Spacedrive 相关的数据。", + "create_location": "Create Location", + "create_new_library": "创建新库", + "create_new_library_description": "新创建地数据库将安全地存储在您地设备上。我们不会移动您的文件,仅仅对其进行索引,同时存储与 Spacedrive 相关的数据。", + "create_new_tag": "创建新标签", + "create_new_tag_description": "设置名称与颜色。", + "create_tag": "创建标签", + "created": "已创建", + "creating_library": "正在创建库…", + "creating_your_library": "正在为您创建库", + "current": "当前使用", + "current_directory": "当前目录", + "current_directory_with_descendants": "当前目录及其子目录", + "custom": "自定义", + "cut": "剪切", + "cut_object": "剪切对象", + "cut_success": "剪切项目", + "dark": "深色", + "data_folder": "数据文件夹", + "database": "数据库", + "date": "日期", + "date_accessed": "访问日期", + "date_created": "创建日期", + "date_indexed": "索引日期", + "date_modified": "修改日期", + "date_taken": "拍摄日期", + "date_time_format": "日期和时间格式", + "date_time_format_description": "选择 Spacedrive 中显示的日期格式", + "debug_mode": "调试模式", + "debug_mode_description": "启用本应用额外的调试功能。", + "default": "默认", + "default_settings": "默认设置", + "delete": "删除", + "delete_dialog_title": "删除 {{prefix}} {{type}}", + "delete_forever": "永久删除", + "delete_info": "此操作只删除预览媒体,并不会删除磁盘上实际的文件夹。", + "delete_library": "删除库", + "delete_library_description": "Spacedrive 库将会永久删除,但您的文件不会删除。", + "delete_location": "删除存储位置", + "delete_location_description": "删除存储位置时,Spacedrive 会从数据库中移除所有与之相关的文件,但是不会删除文件本身。", + "delete_object": "删除对象", + "delete_rule": "删除规则", + "delete_rule_confirmation": "您确定要删除这个规则吗?", + "delete_tag": "删除标签", + "delete_tag_description": "您确定要删除这个标签吗?此操作不能撤销,打过标签的文件将会丢失标签。", + "delete_warning": "警告:这将永久删除您的 {{type}},我们目前还没有回收站……", + "descending": "降序", + "description": "描述", + "deselect": "取消选择", + "details": "详情", + "device": "设备", + "devices": "设备", + "devices_coming_soon_tooltip": "即将推出!本 Alpha 版本不支持库同步,此功能很快就会准备就绪。", + "dialog": "对话框", + "dialog_shortcut_description": "执行操作", + "direction": "次序", + "directories": "文件夹", + "directory": "文件夹", + "disabled": "已禁用", + "disconnected": "已断开连接", + "display_formats": "显示格式", + "display_name": "显示名称", + "distance": "距离", + "do_the_thing": "Do the thing", + "document": "文档", + "done": "完成", + "dont_have_any": "这里看起来什么也没有╰(*°▽°*)╯", + "dont_show_again": "不再显示", + "dotfile": "Dotfile", + "double_click_action": "双击操作", + "download": "下载", + "downloading_update": "正在下载更新", + "drag_to_resize": "拖动以调整大小", + "duplicate": "复制", + "duplicate_object": "复制对象", + "duplicate_success": "项目已复制", + "edit": "编辑", + "edit_library": "编辑库", + "edit_location": "编辑位置", + "empty_file": "空的文件", + "enable_networking": "启用网络", + "enable_networking_description": "允许您的节点与您周围的其他 Spacedrive 节点进行通信。", + "enable_networking_description_required": "数据库的同步和 Spacedrop 需要开启本功能!", + "enable_relay": "启用中继服务器", + "enable_relay_description": "启用中继服务器以允许您的设备通过公共互联网进行通信。", + "enable_sync": "启用同步", + "enable_sync_description": "为该库中的所有现有数据生成同步操作,并配置 Spacedrive 以在将来发生事情时生成同步操作。", + "enabled": "启用", + "encrypt": "加密", + "encrypt_library": "加密数据库", + "encrypt_library_coming_soon": "资料库加密即将推出", + "encrypt_library_description": "为数据库启用加密,这只会加密Spacedrive数据库,不会加密文件本身。", + "encrypted": "已加密", + "ends_with": "以... 结束", + "ephemeral_notice_browse": "直接从您的设备浏览您的文件和文件夹。", + "ephemeral_notice_consider_indexing": "考虑索引您本地的位置,以获得更快和更高效的浏览。", + "equals": "是", + "erase": "擦除", + "erase_a_file": "擦除一个文件", + "erase_a_file_description": "配置您的擦除设置。", + "error": "错误", + "error_loading_original_file": "加载原始文件出错", + "error_message": "错误: {{error}}.", + "executable": "应用程序", + "expand": "展开", + "explorer": "资源管理器", + "explorer_settings": "资源管理器设置", + "explorer_shortcut_description": "导航、与文件系统交互", + "explorer_view": "资源管理器视图", + "export": "导出", + "export_library": "导出库", + "export_library_coming_soon": "导出库功能即将推出", + "export_library_description": "将这个库导出到一个文件。", + "extension": "扩大", + "extensions": "扩展", + "extensions_description": "安装扩展来扩展这个客户端的功能。", + "fahrenheit": "华氏度", + "failed": "失败的", + "failed_to_add_location": "添加位置失败", + "failed_to_cancel_job": "取消任务失败。", + "failed_to_clear_all_jobs": "清除所有任务失败。", + "failed_to_copy_file": "复制文件失败", + "failed_to_copy_file_path": "复制文件路径失败", + "failed_to_cut_file": "剪切文件失败", + "failed_to_delete_rule": "删除规则失败", + "failed_to_download_update": "无法下载更新", + "failed_to_duplicate_file": "复制文件失败", + "failed_to_generate_checksum": "生成校验和失败", + "failed_to_generate_labels": "生成标签失败", + "failed_to_generate_thumbnails": "生成缩略图失败", + "failed_to_load_tags": "加载标签失败", + "failed_to_open_file_body": "无法打开文件: {{error}}", + "failed_to_open_file_title": "无法打开文件", + "failed_to_open_file_with": "打开文件失败: {{data}}", + "failed_to_pause_job": "暂停任务失败。", + "failed_to_reindex_location": "重索引位置失败", + "failed_to_remove_file_from_recents": "从最近文档中删除文件失败", + "failed_to_remove_job": "删除任务失败。", + "failed_to_rename_file": "不能将 {{oldName}} 重命名为 {{newName}}", + "failed_to_rescan_location": "重新扫描位置失败", + "failed_to_resume_job": "恢复任务失败。", + "failed_to_update_location_settings": "更新位置设置失败", + "favorite": "收藏", + "favorites": "收藏夹", + "feedback": "反馈", + "feedback_is_required": "反馈是必填项", + "feedback_login_description": "登录使我们能够回复您的反馈", + "feedback_placeholder": "您的反馈...", + "feedback_toast_error_message": "提交反馈时出错,请重试。", + "file_already_exist_in_this_location": "文件已存在于此位置", + "file_directory_name": "文件/目录名称", + "file_extension_description": "文件扩展名(例如 .mp4、.jpg、.txt)", + "file_from": "来自 {{name}} 的文件 {{file}}", + "file_indexing_rules": "文件索引规则", + "file_one": "file", + "file_picker_not_supported": "File picker不支持此设备", + "file_two": "文件", + "file_zero": "文件", + "files_many": "文件", + "filter": "筛选", + "filters": "过滤器", + "flash": "闪光", + "folder": "文件夹", + "font": "字体", + "for_library": "For library {{name}}", + "forced": "被迫", + "forward": "前进", + "free_of": "可用", + "from": "从", + "full_disk_access": "完全磁盘访问", + "full_disk_access_description": "为了提供最佳体验,我们需要访问您的磁盘以索引您的文件。您的文件只有您自己可以访问。", + "full_reindex": "完全重新索引", + "full_reindex_info": "执行对此位置的完全重新扫描。", + "general": "通用", + "general_settings": "通用设置", + "general_settings_description": "与此客户端相关的一般设置。", + "general_shortcut_description": "通用快捷键", + "generate_checksums": "生成校验和", + "generatePreviewMedia_label": "为这个位置生成预览媒体", + "gitignore": "gitignore文件", + "glob_description": "全局(例如 **/.git)", + "go_back": "返回", + "go_to_labels": "转到标签", + "go_to_location": "前往地点", + "go_to_overview": "前往概览", + "go_to_recents": "转到最近的内容", + "go_to_settings": "前往设置", + "go_to_tag": "转到标签", + "got_it": "我知道了", + "grid_gap": "间隙", + "grid_view": "网格视图", + "grid_view_notice_description": "网格视图以缩略图形式显示文件和文件夹,以便直观、快速识别要寻找的文件。", + "hidden": "隐", + "hidden_label": "阻止位置及其内容出现在汇总分类、搜索和标签中,除非启用了“显示隐藏项目”。", + "hide_in_library_search": "在库搜索中隐藏", + "hide_in_library_search_description": "在搜索整个库时从结果中隐藏带有此标签的文件。", + "hide_in_sidebar": "在侧边栏中隐藏", + "hide_in_sidebar_description": "阻止此标签在应用的侧边栏中显示。", + "hide_location_from_view": "隐藏位置和内容的视图", + "hide_sidebar": "隐藏侧边栏", + "home": "我的文档", + "hosted_locations": "Hosted Locations", + "hosted_locations_description": "使用我们的云服务增强你的本地储存", + "icon_size": "图标大小", + "image": "图像", + "image_labeler_ai_model": "图像标签识别 AI 模型", + "image_labeler_ai_model_description": "用于识别图像中对象的模型。较大的模型更准确但速度较慢。", + "import": "导入", + "incoming_spacedrop": "Spacedrop正在接收文件", + "indexed": "已索引", + "indexed_new_files": "Indexed new files {{name}}", + "indexer_rule_reject_allow_label": "默认情况下,索引器规则作为拒绝列表,排除与其匹配的任何文件。启用此选项将其变成允许列表,仅索引符合其规定规则的位置的文件。", + "indexer_rules": "索引器规则", + "indexer_rules_error": "索引索引器规则时出错", + "indexer_rules_info": "索引器规则允许您使用通配符指定要忽略的路径。", + "indexer_rules_not_available": "没有索引器规则", + "ingester": "同步接收器", + "ingester_description": "此过程接收接收到的云操作并将它们发送到主同步接收器。", + "injester_description": "此过程从 P2P 连接和 Spacedrive Cloud 获取同步操作,并将其应用到库。", + "install": "安装", + "install_update": "安装更新", + "installed": "已安装", + "invalid_extension": "无效的扩展名", + "invalid_glob": "无效的全局变量", + "invalid_name": "名称无效", + "invalid_path": "路径无效", + "ipv4_ipv6_listeners_error": "创建 IPv4 和 IPv6 监听器出错。请检查防火墙设置!", + "ipv4_listeners_error": "创建 IPv4 监听器出错。请检查防火墙设置!", + "ipv6": "IPv6网络", + "ipv6_description": "允许使用 IPv6 网络进行点对点通信", + "ipv6_listeners_error": "创建 IPv6 监听器时出错。请检查防火墙设置!", + "is": "是", + "is_not": "不是", + "item": "item", + "item_size": "图标大小", + "items": "项目", + "job_error_description": "作业已完成,但有错误。\n请参阅下面的错误日志以获取更多信息。\n如果您需要帮助,请联系支持人员并提供此错误。", + "job_has_been_canceled": "作业已取消。", + "job_has_been_paused": "作业已暂停。", + "job_has_been_removed": "作业已移除。", + "job_has_been_resumed": "作业已恢复。", + "join": "加入", + "join_discord": "加入 Discord", + "join_library": "加入一个资料库", + "join_library_description": "数据库将安全地存储在您地设备上。我们不会移动您的文件,仅仅对其进行索引,同时存储与 Spacedrive 相关的数据。", + "key": "键位", + "key_manager": "密钥管理器", + "key_manager_description": "创建加密密钥,挂载和卸载密钥以即时查看解密文件。", + "keybinds": "快捷键", + "keybinds_description": "查看、管理客户端快捷键", + "keys": "密钥", + "kilometers": "千米", + "kind": "种类", + "kind_other": "种类", + "label": "标签", + "labels": "标签", + "language": "语言", + "language_description": "更改 Spacedrive 界面的语言", + "learn_more": "Learn More", + "learn_more_about_telemetry": "了解更多有关遥测的信息", + "less": "less", + "libraries": "库", + "libraries_description": "数据库包含所有库的数据和文件的元数据。", + "library": "库", + "library_bytes": "库大小", + "library_bytes_description": "图书馆中所有位置的总大小。", + "library_db_size": "索引大小", + "library_db_size_description": "图书馆数据库的大小。", + "library_name": "库名称", + "library_overview": "库概览", + "library_settings": "库设置", + "library_settings_description": "与当前活动库相关的一般设置。", + "light": "浅色", + "link": "链接", + "list_view": "列表视图", + "list_view_notice_description": "通过列表视图轻松导航您的文件和文件夹。这种视图以简单、有组织的列表形式显示文件,让您能够快速定位和访问所需文件。", + "loading": "正在加载", + "local": "本地", + "local_locations": "本地位置", + "local_node": "本地节点", + "location": "地点", + "location_added_successfully": "位置添加成功。", + "location_connected_tooltip": "位置正在监视变化", + "location_deleted_successfully": "位置删除成功。", + "location_disconnected_tooltip": "位置未被监视以检查更改", + "location_display_name_info": "此位置的名称,这是将显示在侧边栏的名称。不会重命名磁盘上的实际文件夹。", + "location_empty_notice_message": "这个地方空空如也", + "location_is_already_linked": "位置已经链接", + "location_other": "文件位置", + "location_path_info": "此位置的路径,这是文件在磁盘上的存储位置。", + "location_type": "位置类型", + "location_type_managed": "Spacedrive 将为您排序文件。如果位置不为空,将创建一个“spacedrive”文件夹。", + "location_type_normal": "内容将按原样索引,新文件不会自动排序。", + "location_type_replica": "此位置是另一个位置的副本,其内容将自动同步。", + "locations": "存储位置", + "locations_description": "管理您的存储位置。", + "lock": "锁定", + "lock_sidebar": "锁定侧边栏", + "log_in": "登录", + "log_in_with_browser": "使用浏览器登录", + "log_out": "退出登录", + "logged_in_as": "已登录为 {{email}}", + "logging_in": "正在登录...", + "logout": "退出登录", + "manage_library": "管理库", + "managed": "已管理", + "manual_peers": "手动添加对等点", + "manual_peers_description": "通过输入 IP 地址和端口来手动添加对等点。\n当无法自动发现时,这非常有用。", + "media": "媒体", + "media_view": "媒体视图", + "media_view_context": "媒体视图上下文", + "media_view_notice_description": "轻松发现照片和视频,媒体视图将从当前位置开始显示结果,包括子目录。", + "meet_contributors_behind_spacedrive": "结识 Spacedrive 背后的贡献者", + "meet_title": "了解{{title}}", + "mesh": "Mesh", + "miles": "英里", + "mode": "模式", + "model": "模型", + "modified": "已修改", + "more": "更多", + "more_actions": "更多操作…", + "more_info": "更多信息", + "move_back_within_quick_preview": "在快速预览中后退", + "move_files": "移动文件", + "move_forward_within_quick_preview": "在快速预览中前进", + "move_to_trash": "移到回收站(废纸篓)", + "my_sick_location": "My sick location", + "name": "名称", + "navigate_back": "回退", + "navigate_backwards": "向后导航", + "navigate_files_downwards": "向下导航文件", + "navigate_files_leftwards": "向左导航文件", + "navigate_files_rightwards": "向右导航文件", + "navigate_files_upwards": "向上导航文件", + "navigate_forward": "前进", + "navigate_forwards": "向前导航", + "navigate_to_settings_page": "导航到设置页面", + "network": "网络", + "network_page_description": "您的局域网上的其他Spacedrive节点将显示在这里,以及您的默认操作系统网络挂载。", + "network_settings": "网络设置", + "network_settings_advanced": "高级网络概述", + "network_settings_advanced_description": "有关当前网络设置的高级信息。", + "network_settings_description": "与网络和连接相关的设置。", + "networking": "网络", + "networking_error": "网络启动错误!", + "networking_port": "网络端口", + "networking_port_description": "Spacedrive 点对点网络通信使用的端口。除非您有防火墙来限制,否则应保持此项禁用。不要在互联网上暴露自己!", + "new": "新的", + "new_folder": "新文件夹", + "new_library": "新库", + "new_location": "新位置", + "new_location_web_description": "由于您正在使用Spacedrive的浏览器版本,您将(目前)需要指定远程节点本地目录的绝对URL。", + "new_tab": "新标签", + "new_tag": "新标签", + "new_update_available": "新版本可用!", + "no_apps_available": "没有可用的应用程序", + "no_favorite_items": "没有最喜欢的物品", + "no_git_files": "没有 Git 文件", + "no_hidden_files": "没有隐藏文件", + "no_items_found": "找不到任何项目", + "no_jobs": "没有任务。", + "no_labels": "无标签", + "no_nodes_found": "找不到 Spacedrive 节点.", + "no_search_selected": "未选择搜索", + "no_system_files": "没有系统文件", + "no_tag_selected": "没有选中的标签", + "no_tags": "没有标签", + "no_tags_description": "您还没有创建任何标签", + "node_name": "节点名称", + "nodes": "节点", + "nodes_description": "管理连接到此库的节点。节点是在设备或服务器上运行的Spacedrive后端的实例。每个节点都携带数据库副本,并通过点对点连接实时同步。", + "none": "无", + "normal": "普通", + "not_you": "不是您?", + "note": "Note", + "nothing_selected": "未选择任何内容", + "number_of_passes": "通过次数", + "object": "目的", + "object_id": "对象ID", + "off": "离开", + "offline": "离线", + "on": "在", + "online": "在线", + "only_images": "仅图像", + "open": "打开", + "open_file": "打开文件", + "open_in_new_tab": "在新标签页中打开", + "open_logs": "查看日志", + "open_new_location_once_added": "添加新位置后立即打开", + "open_new_tab": "打开新标签页", + "open_object": "打开对象", + "open_object_from_quick_preview_in_native_file_manager": "在本机文件管理器中从快速预览中打开对象", + "open_settings": "打开设置", + "open_with": "打开方式", + "opening_trash": "打开回收站", + "or": "或", + "overview": "概览", + "p2p_visibility": "P2P 可见性", + "p2p_visibility_contacts_only": "仅限联系人", + "p2p_visibility_description": "配置谁可以看到您的 Spacedrive 安装。", + "p2p_visibility_disabled": "关闭", + "p2p_visibility_everyone": "所有人", + "package": "Package", + "page": "页面", + "page_shortcut_description": "应用程序中的不同页面", + "pair": "配对", + "pairing_with_node": "正在与{{node}}配对", + "paste": "粘贴", + "paste_object": "粘贴对象", + "paste_success": "已粘贴项目", + "path": "路径", + "path_copied_to_clipboard_description": "位置{{location}}的路径已复制到剪贴板。", + "path_copied_to_clipboard_title": "路径已复制到剪贴板", + "path_to_save_do_the_thing": "Path to save when clicking 'Do the thing':", + "paths": "路径", + "pause": "暂停", + "paused": "已暂停", + "peers": "个端点", + "people": "人们", + "pin": "Pin", + "please_select_emoji": "请选择一个表情", + "prefix_a": "a", + "preview_media_bytes": "预览媒体", + "preview_media_bytes_description": "所有预览媒体文件(例如缩略图)的总大小。", + "privacy": "隐私", + "privacy_description": "Spacedrive是为隐私而构建的,这就是为什么我们是开源的,以本地优先。因此,我们会非常明确地告诉您与我们分享了什么数据。", + "queued": "排队", + "quick_preview": "快速预览", + "quick_rescan_started": "正在快速重新扫描目录。", + "quick_view": "快速查看", + "quickpreview_thumbnail_error_message": "无法加载全分辨率图像", + "quickpreview_thumbnail_error_tip": "无法找到图像。因此显示缩略图。", + "random": "随机的", + "receiver": "接收者", + "receiver_description": "该进程接收并存储来自 Spacedrive Cloud 的操作。", + "recent_jobs": "最近的作业", + "recents": "最近使用", + "recents_notice_message": "打开文件时会创建最近的文件。", + "regen_labels": "重新生成标签", + "regen_thumbnails": "重新生成缩略图", + "regenerate_thumbs": "重新生成缩略图", + "reindex": "重新索引", + "reject": "拒绝", + "reject_files": "Reject files", + "relay_listeners_error": "创建中继侦听器时出错。请检查您的防火墙设置!", + "reload": "重新加载", + "remote_access": "启用远程访问", + "remote_access_description": "使其他节点能够直接连接到该节点。", + "remote_identity": "远程身份", + "remove": "移除", + "remove_from_recents": "从最近使用中移除", + "rename": "重命名", + "rename_object": "重命名对象", + "replica": "副本", + "rescan": "重新扫描", + "rescan_directory": "重新扫描目录", + "rescan_location": "重新扫描位置", + "reset": "重置", + "reset_and_quit": "重置并退出应用程序", + "reset_confirmation": "您确定要重置 Spacedrive 吗?您的数据库将被删除。", + "reset_to_continue": "我们检测到您可能使用旧版本的 Spacedrive 创建了您的资料库。请重置以继续使用应用程序!", + "reset_warning": "您会丢失现有的所有 Spacedrive数据!", + "resolution": "解决", + "resources": "资源", + "restore": "恢复", + "resume": "恢复", + "retry": "重试", + "reveal_in_native_file_manager": "在本机文件管理器中显示", + "revel_in_browser": "在{{browser}}中显示", + "rules": "规则", + "running": "运行中", + "save": "保存", + "save_changes": "保存更改", + "save_search": "保存搜索", + "save_spacedrop": "保存 Spacedrop", + "saved_searches": "保存的搜索", + "screenshot": "屏幕截图", + "search": "搜索", + "search_extensions": "搜索扩展", + "search_for_files_and_actions": "搜索文件和操作...", + "search_locations": "搜索地点", + "secure_delete": "安全删除", + "security": "安全", + "security_description": "确保您的客户端安全。", + "see_less": "更少", + "see_more": "更多", + "send": "发送", + "send_report": "发送报告", + "sender": "发件人", + "sender_description": "此过程将同步操作发送到 Spacedrive Cloud。", + "settings": "设置", + "setup": "设置", + "share": "分享", + "share_anonymous_usage": "分享匿名使用情况", + "share_anonymous_usage_description": "分享完全匿名的遥测数据,帮助开发者改进应用程序", + "share_bare_minimum": "分享最基本信息", + "share_bare_minimum_description": "只分享我是 Spacedrive 的活跃用户和一些技术细节", + "sharing": "共享", + "sharing_description": "管理有权访问您的库的人。", + "show_details": "显示详情", + "show_hidden_files": "显示隐藏文件", + "show_inspector": "显示检查员", + "show_object_size": "显示对象大小", + "show_path_bar": "显示路径栏", + "show_slider": "显示滑块", + "show_tags": "显示标签", + "size": "大小", + "size_b": "B", + "size_bs": "Bs", + "size_gb": "GB", + "size_gbs": "GBs", + "size_kb": "KB", + "size_kbs": "KBs", + "size_mb": "MB", + "size_mbs": "MB", + "size_tb": "TB", + "size_tbs": "TBs", + "skip_login": "跳过登录", + "software": "软件", + "sort_by": "排序依据", + "spacedrive_account": "Spacedrive 账户", + "spacedrive_cloud": "Spacedrive 云", + "spacedrive_cloud_description": "Spacedrive 始终优先重视本地资源,但我们未来会提供可选的自有云服务。目前,身份验证仅用于反馈功能。", + "spacedrop": "Spacedrop", + "spacedrop_a_file": "使用 Spacedrop 传输文件", + "spacedrop_already_progress": "Spacedrop 已在进行中", + "spacedrop_contacts_only": "仅限联系人", + "spacedrop_description": "与在您的网络上运行 Spacedrive 的设备即时共享。", + "spacedrop_disabled": "关闭", + "spacedrop_everyone": "所有人", + "spacedrop_rejected": "Spacedrop 被拒绝", + "square_thumbnails": "方形缩略图", + "star_on_github": "为我们点个Star吧", + "start": "开始", + "starting": "开始...", + "starts_with": "以...开始", + "stop": "停止", + "stopping": "正在停止...", + "success": "成功", + "support": "支持", + "switch_to_grid_view": "切换到网格视图", + "switch_to_list_view": "切换到列表视图", + "switch_to_media_view": "切换到媒体视图", + "switch_to_next_tab": "切换到下一个标签页", + "switch_to_previous_tab": "切换到上一个标签页", + "sync": "同步", + "sync_description": "管理 Spacedrive 的同步方式。", + "sync_with_library": "与资料库同步", + "sync_with_library_description": "如果启用,您的快捷方式将与资料库同步,否则它们只适用于此客户端。", + "syncPreviewMedia_label": "将此位置的预览媒体与您的设备同步", + "system": "系统", + "tag": "标签", + "tag_other": "标签", + "tags": "标签", + "tags_bulk_instructions": "点击标签并按下数字键为其编号,然后再选择文件并使用设定好的数字键为其快速分配标签", + "tags_description": "管理您的标签。", + "tags_notice_message": "没有项目分配给该标签。", + "task": "任务", + "task_other": "任务", + "telemetry_description": "启用以向开发者提供详细的使用情况和遥测数据来改善应用程序。禁用则将只发送基本数据:您的活动状态、应用版本、应用内核版本以及平台(例如移动端、web 端或桌面端)。", + "telemetry_title": "共享额外的遥测和使用数据", + "temperature": "温度", + "text": "文本", + "text_file": "文本文件", + "text_size": "文字大小", + "thank_you_for_your_feedback": "感谢您的反馈!", + "thumbnailer_cpu_usage": "缩略图生成器 CPU 使用", + "thumbnailer_cpu_usage_description": "限制缩略图生成器在后台处理时可以使用 CPU 的量。", + "to": "到", + "toggle_all": "切换全部", + "toggle_command_palette": "打开命令面板", + "toggle_hidden_files": "显示/隐藏文件", + "toggle_image_slider_within_quick_preview": "在快速预览中切换图像滑块", + "toggle_inspector": "切换检查器", + "toggle_job_manager": "切换任务管理器", + "toggle_metadata": "切换元数据", + "toggle_path_bar": "切换显示路径栏", + "toggle_quick_preview": "切换快速预览", + "toggle_sidebar": "打开/关闭侧边栏", + "tools": "工具", + "total_bytes_capacity": "总容量", + "total_bytes_capacity_description": "连接到资料库的所有节点的总容量。 在 Alpha 期间可能会显示不正确的值。", + "total_bytes_free": "可用空间", + "total_bytes_free_description": "连接到资料库的所有节点上的可用空间。", + "total_bytes_used": "总使用空间", + "total_bytes_used_description": "连接到资料库的所有节点上使用的总空间。", + "trash": "回收站", + "type": "类型", + "ui_animations": "用户界面动画", + "ui_animations_description": "打开和关闭时对话框和其他用户界面元素将产生动画效果。", + "unknown": "未知", + "unnamed_location": "未命名位置", + "update": "更新", + "update_downloaded": "更新已下载。重新启动 Spacedrive 以安装", + "updated_successfully": "成功更新,您当前使用的版本是 {{version}}", + "uploaded_file": "文件成功上传!", + "usage": "使用情况", + "usage_description": "您的库使用情况和硬件信息", + "vacuum": "清理", + "vacuum_library": "清理库", + "vacuum_library_description": "重新打包数据库以释放不必要的空间。", + "value": "值", + "value_required": "所需值", + "version": "版本 {{version}}", + "video": "视频", + "video_preview_not_supported": "不支持视频预览。", + "view_changes": "查看更改", + "want_to_do_this_later": "想稍后再做吗?", + "web_page_archive": "网页归档", + "website": "项目主页", + "widget": "小部件", + "with_descendants": "子目录", + "your_account": "您的账户", + "your_account_description": "Spacedrive 账号和信息。", + "your_local_network": "您的本地网络", + "your_privacy": "您的隐私", + "zoom": "缩放", + "zoom_in": "放大", + "zoom_out": "缩小" } From 139ba6e1a46969209cd2643d7d4c87e02e333e9c Mon Sep 17 00:00:00 2001 From: Arnab Chakraborty <11457760+Rocky43007@users.noreply.github.com> Date: Wed, 14 Aug 2024 21:22:46 +0300 Subject: [PATCH 3/3] [ENG-1854] Migrate to Tauri v2 Release Candidate (#2654) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Migrate to Tauri v2 Release Canidate * Formatting * Update pnpm * Update all tauri deps (js and rust) to Release Candidate 2 - A lot of misc fixes due to changes in the new versions of tauri, rspc and specta * Recreate pnpm-lock * Fix pnpm-lock * Formatting * Use 10 chars SHA for git deps - Update a couple of rust dependencies - Add taplo for toml auto formatting - Adjust some formatting configurations - Updated prettier and its plugins * Fix formatter settings * Minor improvements to Cargo.toml format --------- Co-authored-by: Vítor Vasconcellos --- .editorconfig | 56 +++-- .npmrc | 1 + .prettierrc.js | 2 +- .rustfmt.toml | 22 +- .taplo.toml | 11 + .vscode/settings.json | 8 +- Cargo.lock | Bin 302364 -> 303890 bytes Cargo.toml | 199 ++++++++++-------- apps/deps-generator/Cargo.toml | 21 +- apps/desktop/crates/linux/Cargo.toml | 15 +- apps/desktop/crates/macos/Cargo.toml | 9 +- apps/desktop/crates/windows/Cargo.toml | 17 +- apps/desktop/package.json | 10 +- apps/desktop/src-tauri/Cargo.toml | 86 ++++---- .../src-tauri/capabilities/default.json | 33 ++- apps/desktop/src-tauri/rustfmt.toml | 22 +- apps/desktop/src-tauri/src/main.rs | 67 +++--- apps/desktop/src-tauri/src/menu.rs | 2 +- apps/desktop/src-tauri/src/updater.rs | 2 +- apps/desktop/src-tauri/tauri.conf.json | 10 +- apps/desktop/src/commands.ts | 9 +- .../modules/sd-core/android/crate/Cargo.toml | 11 +- apps/mobile/modules/sd-core/core/Cargo.toml | 27 ++- .../modules/sd-core/ios/crate/Cargo.toml | 11 +- apps/p2p-relay/Cargo.toml | 17 +- apps/server/Cargo.toml | 29 +-- core/Cargo.toml | 98 ++++----- core/crates/file-path-helper/Cargo.toml | 31 +-- core/crates/heavy-lifting/Cargo.toml | 83 ++++---- core/crates/indexer-rules/Cargo.toml | 42 ++-- core/crates/prisma-helpers/Cargo.toml | 19 +- core/crates/sync/Cargo.toml | 37 ++-- core/prisma/migrations/migration_lock.toml | 2 +- core/src/util/unsafe_streamed_query.rs | 6 +- crates/actors/Cargo.toml | 15 +- crates/ai/Cargo.toml | 75 +++---- crates/cloud-api/Cargo.toml | 25 +-- crates/crypto/Cargo.toml | 97 ++++----- crates/fda/Cargo.toml | 11 +- crates/ffmpeg/Cargo.toml | 34 ++- crates/file-ext/Cargo.toml | 26 ++- crates/images/Cargo.toml | 41 ++-- crates/media-metadata/Cargo.toml | 23 +- crates/p2p/Cargo.toml | 73 +++---- crates/p2p/crates/block/Cargo.toml | 17 +- crates/p2p/crates/proto/Cargo.toml | 15 +- crates/p2p/crates/tunnel/Cargo.toml | 15 +- crates/prisma-cli/Cargo.toml | 9 +- crates/prisma/Cargo.toml | 13 +- crates/sync-generator/Cargo.toml | 13 +- crates/sync/Cargo.toml | 25 +-- crates/sync/example/Cargo.toml | 29 +-- crates/task-system/Cargo.toml | 52 +++-- crates/utils/Cargo.toml | 9 +- .../app/$libraryId/TopBar/TopBarOptions.tsx | 4 +- package.json | 9 +- packages/client/src/core.ts | 4 +- pnpm-lock.yaml | Bin 1037025 -> 1036181 bytes scripts/autoformat.sh | 3 + turbo.json | 11 +- 60 files changed, 843 insertions(+), 820 deletions(-) create mode 100644 .taplo.toml diff --git a/.editorconfig b/.editorconfig index e80002aa8..34150bb03 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,13 +14,6 @@ indent_style = tab insert_final_newline = true trim_trailing_whitespace = true -# BATS: https://github.com/bats-core/bats-core -# https://github.com/bats-core/bats-core/master/.editorconfig -[*.bats] -insert_final_newline = true -max_line_length = 80 -trim_trailing_whitespace = true - # CSS # https://google.github.io/styleguide/htmlcssguide.xml#General_Formatting_Rules # http://cssguidelin.es/#syntax-and-formatting @@ -32,6 +25,12 @@ trim_trailing_whitespace = true [*.{htm,html}] trim_trailing_whitespace = true +# Just +# https://github.com/casey/just/master/justfile +[{justfile,Justfile}] +insert_final_newline = true +indent_style = space + # JavaScript, JSON, JSX, JavaScript Modules, TypeScript # https://github.com/feross/standard # https://prettier.io @@ -39,14 +38,20 @@ trim_trailing_whitespace = true indent_size = 4 # Kotlin -# https://android.github.io/kotlin-guides/style.html#indentation +# https://kotlinlang.org/docs/coding-conventions.html#indentation [*.{kt,kts}] indent_size = 4 -# Python -# https://www.python.org/dev/peps/pep-0008/#code-lay-out -[*.py] +# PowerShell +# https://poshcode.gitbook.io/powershell-practice-and-style/style-guide/code-layout-and-formatting +[*.{ps1,psd1,psm1}] indent_size = 4 +indent_style = space + +# Prisma +# https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-schema/data-model#formatting +[*.prisma] +indent_style = space # Rust # https://github.com/rust-lang/rust/blob/master/src/doc/style/style/whitespace.md @@ -55,31 +60,14 @@ indent_size = 4 insert_final_newline = false trim_trailing_whitespace = true -# SQL -# https://www.sqlstyle.guide/ -[*.sql] -indent_size = 4 -indent_style = space - -# Prisma -# https://www.prisma.io/docs/reference/tools-and-interfaces/prisma-schema/data-model#formatting -[*.prisma] -indent_size = 2 -indent_style = space - -# YAML -# http://yaml.org/spec/1.2/2009-07-21/spec.html#id2576668 -[*.{yaml,yml}] -indent_style = space - # Shell # https://google.github.io/styleguide/shell.xml#Indentation [*.{bash,sh,zsh}] indent_style = space -# PowerShell -# https://poshcode.gitbook.io/powershell-practice-and-style/style-guide/code-layout-and-formatting -[*.{ps1,psd1,psm1}] +# SQL +# https://www.sqlstyle.guide/ +[*.sql] indent_size = 4 indent_style = space @@ -88,3 +76,9 @@ indent_style = space [*.swift] indent_size = 4 indent_style = space + +# YAML +# http://yaml.org/spec/1.2/2009-07-21/spec.html#id2576668 +[*.{yaml,yml}] +indent_style = space + diff --git a/.npmrc b/.npmrc index b40bf051f..ee8b1dcae 100644 --- a/.npmrc +++ b/.npmrc @@ -1,5 +1,6 @@ ; make all engine requirements (e.g. node version) strictly kept engine-strict=true +dedupe-peer-dependents=true ; necessary for metro + mobile strict-peer-dependencies=false node-linker=hoisted diff --git a/.prettierrc.js b/.prettierrc.js index dc5d108ad..209a288f7 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -22,7 +22,7 @@ module.exports = { '^[../]', '^[./]' ], - importOrderParserPlugins: ['typescript', 'jsx', 'decorators-legacy'], + importOrderParserPlugins: ['typescript', 'jsx', 'decorators'], importOrderTypeScriptVersion: '4.4.0', tailwindConfig: './packages/ui/tailwind.config.js', plugins: ['@ianvs/prettier-plugin-sort-imports', 'prettier-plugin-tailwindcss'] diff --git a/.rustfmt.toml b/.rustfmt.toml index 9c4c7300b..cd5cd84cc 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -1,12 +1,12 @@ -max_width = 100 -hard_tabs = true -newline_style = "Unix" -use_small_heuristics = "Default" -reorder_imports = true -reorder_modules = true -remove_nested_parens = true -edition = "2021" -merge_derives = true -use_try_shorthand = false +edition = "2021" +force_explicit_abi = true +hard_tabs = true +max_width = 100 +merge_derives = true +newline_style = "Unix" +remove_nested_parens = true +reorder_imports = true +reorder_modules = true use_field_init_shorthand = false -force_explicit_abi = true \ No newline at end of file +use_small_heuristics = "Default" +use_try_shorthand = false diff --git a/.taplo.toml b/.taplo.toml new file mode 100644 index 000000000..59a0f5b66 --- /dev/null +++ b/.taplo.toml @@ -0,0 +1,11 @@ +[formatting] +align_comments = true +align_entries = true +array_auto_collapse = true +array_trailing_comma = false +column_width = 100 +crlf = false +indent_string = ' ' +reorder_arrays = true +reorder_keys = true +trailing_newline = true diff --git a/.vscode/settings.json b/.vscode/settings.json index de45015ec..625b44315 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -36,6 +36,9 @@ "[rust]": { "editor.defaultFormatter": "rust-lang.rust-analyzer" }, + "[toml]": { + "editor.defaultFormatter": "tamasfe.even-better-toml" + }, "rust-analyzer.procMacro.enable": true, "rust-analyzer.diagnostics.experimental.enable": false, "tailwindCSS.experimental.classRegex": [ @@ -102,5 +105,8 @@ "i18n-ally.enabledFrameworks": ["react"], "i18n-ally.keystyle": "flat", // You need to add this to your locale settings file "i18n-ally.translate.google.apiKey": "xxx" - "i18n-ally.translate.engines": ["google"] + "i18n-ally.translate.engines": ["google"], + "prettier.configPath": ".prettierrc.js", + "prettier.prettierPath": "./node_modules/prettier", + "evenBetterToml.taplo.configFile.path": ".taplo.toml" } diff --git a/Cargo.lock b/Cargo.lock index d4088ccad36d3f7340c4b71f31e1c78425918822..89f652b3be1fc59e65ef79e7a6d8ab1b99616a26 100644 GIT binary patch delta 10571 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 P(!1TR`p0*=E$9CLsPmA- delta 9598 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 E1%FJCtN;K2 diff --git a/Cargo.toml b/Cargo.toml index 1cc1388c7..a39b268bc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,127 +1,140 @@ [workspace] -resolver = "2" +exclude = ["crates/crypto"] members = [ - "core", - "core/crates/*", - "crates/*", "apps/deps-generator", - "apps/desktop/src-tauri", "apps/desktop/crates/*", - "apps/mobile/modules/sd-core/core", + "apps/desktop/src-tauri", "apps/mobile/modules/sd-core/android/crate", + "apps/mobile/modules/sd-core/core", "apps/mobile/modules/sd-core/ios/crate", "apps/server", + "core", + "core/crates/*", + "crates/*" ] -exclude = ["crates/crypto"] +resolver = "2" [workspace.package] -license = "AGPL-3.0-only" -edition = "2021" +edition = "2021" +license = "AGPL-3.0-only" repository = "https://github.com/spacedriveapp/spacedrive" [workspace.dependencies] # Third party dependencies used by one or more of our crates -async-channel = "2.3" -async-trait = "0.1.80" -axum = "0.6.20" # Update blocked by hyper -base64 = "0.22.1" -base91 = "0.1.0" -blake3 = "1.5.0" # Update blocked by custom patch below -chrono = "0.4.38" -directories = "5.0" -ed25519-dalek = "2.1.1" -futures = "0.3.30" +async-channel = "2.3" +async-trait = "0.1.80" +axum = "0.6.20" # Update blocked by hyper +base64 = "0.22.1" +base91 = "0.1.0" +blake3 = "1.5.0" # Update blocked by custom patch below +chrono = "0.4.38" +directories = "5.0" +ed25519-dalek = "2.1.1" +futures = "0.3.30" futures-concurrency = "7.6" -gix-ignore = "0.11.2" -globset = "0.4.14" -http = "0.2" # Update blocked by axum -hyper = "0.14" # Update blocked due to API breaking changes -image = "0.24.9" # Update blocked due to https://github.com/image-rs/image/issues/2230 -itertools = "0.13.0" -lending-stream = "1.0" -libc = "0.2" -normpath = "1.2" -once_cell = "1.19" -pin-project-lite = "0.2.14" -rand = "0.8.5" -regex = "1.10" -reqwest = "0.11" # Update blocked by hyper -rmp = "0.8.14" -rmp-serde = "1.3.0" -rmpv = { version = "1.3", features = ["with-serde"] } -rspc = "0.1.4" -serde = "1.0" -serde_json = "1.0" -specta = "=2.0.0-rc.11" -static_assertions = "1.1" -strum = "0.26" -strum_macros = "0.26" -tempfile = "3.10" -thiserror = "1.0" -tokio = "1.38" -tokio-stream = "0.1.15" -tokio-util = "0.7.11" -tracing = "0.1.40" -tracing-subscriber = "0.3.18" -tracing-test = "0.2.5" -uhlc = "0.6.0" # Must follow version used by specta -uuid = "1.8" -webp = "0.2.6" # Update blocked by image +gix-ignore = "0.11.2" +globset = "0.4.14" +http = "0.2" # Update blocked by axum +hyper = "0.14" # Update blocked due to API breaking changes +image = "0.24.9" # Update blocked due to https://github.com/image-rs/image/issues/2230 +itertools = "0.13.0" +lending-stream = "1.0" +libc = "0.2" +normpath = "1.2" +once_cell = "1.19" +pin-project-lite = "0.2.14" +rand = "0.8.5" +regex = "1.10" +reqwest = "0.11" # Update blocked by hyper +rmp = "0.8.14" +rmp-serde = "1.3.0" +rmpv = { version = "1.3", features = ["with-serde"] } +rspc = "0.1.4" # Update blocked by custom patch below +serde = "1.0" +serde_json = "1.0" +specta = "=2.0.0-rc.20" +specta-typescript = "=0.0.7" +static_assertions = "1.1" +strum = "0.26" +strum_macros = "0.26" +tempfile = "3.10" +thiserror = "1.0" +tokio = "1.38" +tokio-stream = "0.1.15" +tokio-util = "0.7.11" +tracing = "0.1.40" +tracing-subscriber = "0.3.18" +tracing-test = "0.2.5" +uhlc = "0.8.0" # Must follow version used by specta +uuid = "1.10" # Must follow version used by specta +webp = "0.2.6" # Update blocked by image [workspace.dependencies.prisma-client-rust] -git = "https://github.com/brendonovich/prisma-client-rust" -rev = "4f9ef9d38ca732162accff72b2eb684d2f120bab" -features = ["migrations", "specta", "sqlite", "sqlite-create-many"] default-features = false +features = ["migrations", "specta", "sqlite", "sqlite-create-many"] +git = "https://github.com/brendonovich/prisma-client-rust" +rev = "4f9ef9d38c" [workspace.dependencies.prisma-client-rust-cli] -git = "https://github.com/brendonovich/prisma-client-rust" -rev = "4f9ef9d38ca732162accff72b2eb684d2f120bab" -features = ["migrations", "specta", "sqlite", "sqlite-create-many"] default-features = false +features = ["migrations", "specta", "sqlite", "sqlite-create-many"] +git = "https://github.com/brendonovich/prisma-client-rust" +rev = "4f9ef9d38c" [workspace.dependencies.prisma-client-rust-sdk] -git = "https://github.com/brendonovich/prisma-client-rust" -rev = "4f9ef9d38ca732162accff72b2eb684d2f120bab" -features = ["sqlite"] default-features = false +features = ["sqlite"] +git = "https://github.com/brendonovich/prisma-client-rust" +rev = "4f9ef9d38c" -[patch.crates-io] # Proper IOS Support -if-watch = { git = "https://github.com/spacedriveapp/if-watch.git", rev = "a92c17d3f85c1c6fb0afeeaf6c2b24d0b147e8c3" } +[patch.crates-io.if-watch] +git = "https://github.com/spacedriveapp/if-watch.git" +rev = "a92c17d3f8" # We hack it to the high heavens -rspc = { git = "https://github.com/spacedriveapp/rspc.git", rev = "ab12964b140991e0730c3423693533fba71efb03" } +[patch.crates-io.rspc] +git = "https://github.com/spacedriveapp/rspc.git" +rev = "0018e80231" # Add `Control::open_stream_with_addrs` -libp2p = { git = "https://github.com/spacedriveapp/rust-libp2p.git", rev = "a005656df7e82059a0eb2e333ebada4731d23f8c" } -libp2p-core = { git = "https://github.com/spacedriveapp/rust-libp2p.git", rev = "a005656df7e82059a0eb2e333ebada4731d23f8c" } -libp2p-swarm = { git = "https://github.com/spacedriveapp/rust-libp2p.git", rev = "a005656df7e82059a0eb2e333ebada4731d23f8c" } -libp2p-stream = { git = "https://github.com/spacedriveapp/rust-libp2p.git", rev = "a005656df7e82059a0eb2e333ebada4731d23f8c" } - -blake3 = { git = "https://github.com/spacedriveapp/blake3.git", rev = "d3aab416c12a75c2bfabce33bcd594e428a79069" } +[patch.crates-io.libp2p] +git = "https://github.com/spacedriveapp/rust-libp2p.git" +rev = "a005656df7" +[patch.crates-io.libp2p-core] +git = "https://github.com/spacedriveapp/rust-libp2p.git" +rev = "a005656df7" +[patch.crates-io.libp2p-swarm] +git = "https://github.com/spacedriveapp/rust-libp2p.git" +rev = "a005656df7" +[patch.crates-io.libp2p-stream] +git = "https://github.com/spacedriveapp/rust-libp2p.git" +rev = "a005656df7" +[patch.crates-io.blake3] +git = "https://github.com/spacedriveapp/blake3.git" +rev = "d3aab416c1" [profile.dev] # Make compilation faster on macOS +codegen-units = 256 +debug = 0 +incremental = true +lto = false +opt-level = 0 split-debuginfo = "unpacked" -opt-level = 0 -debug = 0 -strip = "none" -lto = false -codegen-units = 256 -incremental = true +strip = "none" [profile.dev-debug] inherits = "dev" # Enables debugger +codegen-units = 256 +debug = "full" +incremental = true +lto = "off" +opt-level = 0 split-debuginfo = "none" -opt-level = 0 -debug = "full" -strip = "none" -lto = "off" -codegen-units = 256 -incremental = true +strip = "none" # Set the settings for build scripts and proc-macros. [profile.dev.build-override] @@ -129,20 +142,20 @@ opt-level = 3 # Set the default for dependencies, except workspace members. [profile.dev.package."*"] -opt-level = 3 incremental = false +opt-level = 3 # Set the default for dependencies, except workspace members. [profile.dev-debug.package."*"] -inherits = "dev" -opt-level = 3 -debug = "full" +debug = "full" incremental = false +inherits = "dev" +opt-level = 3 # Optimize release builds [profile.release] -panic = "unwind" # Sadly we need unwind to avoid unexpected crashes on third party crates -codegen-units = 1 # Compile crates one after another so the compiler can optimize better -lto = true # Enables link to optimizations -opt-level = "s" # Optimize for binary size -strip = true # Remove debug symbols +codegen-units = 1 # Compile crates one after another so the compiler can optimize better +lto = true # Enables link to optimizations +opt-level = "s" # Optimize for binary size +panic = "unwind" # Sadly we need unwind to avoid unexpected crashes on third party crates +strip = true # Remove debug symbols diff --git a/apps/deps-generator/Cargo.toml b/apps/deps-generator/Cargo.toml index 03d4b0938..e775b7913 100644 --- a/apps/deps-generator/Cargo.toml +++ b/apps/deps-generator/Cargo.toml @@ -1,19 +1,20 @@ [package] -name = "sd-deps-generator" +name = "sd-deps-generator" version = "0.0.0" -authors = ["Jake Robinson "] -description = "A tool to compile all Spacedrive dependencies and their respective licenses" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Jake Robinson "] +description = "A tool to compile all Spacedrive dependencies and their respective licenses" +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] # Workspace dependencies -reqwest = { workspace = true, features = ["blocking", "native-tls-vendored"] } -serde = { workspace = true, features = ["derive"] } +reqwest = { workspace = true, features = ["blocking", "native-tls-vendored"] } +serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } # Specific Deps Generator dependencies -anyhow = "1.0" -clap = { version = "4.5", features = ["derive"] } +anyhow = "1.0" cargo_metadata = "0.18.1" +clap = { version = "4.5", features = ["derive"] } diff --git a/apps/desktop/crates/linux/Cargo.toml b/apps/desktop/crates/linux/Cargo.toml index c7761d633..9c4755b73 100644 --- a/apps/desktop/crates/linux/Cargo.toml +++ b/apps/desktop/crates/linux/Cargo.toml @@ -1,16 +1,17 @@ [package] -name = "sd-desktop-linux" +name = "sd-desktop-linux" version = "0.1.0" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] -libc = { workspace = true } +libc = { workspace = true } tokio = { workspace = true, features = ["fs"] } [target.'cfg(target_os = "linux")'.dependencies] -wgpu = { version = "0.20.0", default-features = false } +wgpu = { version = "22.1", default-features = false } # WARNING: gtk should follow the same version used by tauri -# https://github.com/tauri-apps/tauri/blob/tauri-v2.0.0-beta.17/core/tauri/Cargo.toml#L85C1-L85C51 +# https://github.com/tauri-apps/tauri/blob/tauri-v2.0.0-rc.2/core/tauri/Cargo.toml gtk = { version = "0.18", features = ["v3_24"] } diff --git a/apps/desktop/crates/macos/Cargo.toml b/apps/desktop/crates/macos/Cargo.toml index 72faca5e4..cc5b156fe 100644 --- a/apps/desktop/crates/macos/Cargo.toml +++ b/apps/desktop/crates/macos/Cargo.toml @@ -1,9 +1,10 @@ [package] -name = "sd-desktop-macos" +name = "sd-desktop-macos" version = "0.1.0" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true [target.'cfg(target_os = "macos")'.dependencies] swift-rs = { version = "1.0.6", features = ["serde"] } diff --git a/apps/desktop/crates/windows/Cargo.toml b/apps/desktop/crates/windows/Cargo.toml index a41ca4bff..7f3fe0bdf 100644 --- a/apps/desktop/crates/windows/Cargo.toml +++ b/apps/desktop/crates/windows/Cargo.toml @@ -1,15 +1,16 @@ [package] -name = "sd-desktop-windows" +name = "sd-desktop-windows" version = "0.1.0" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] -libc = { workspace = true } -normpath = { workspace = true } +libc = { workspace = true } +normpath = { workspace = true } thiserror = { workspace = true } [target.'cfg(target_os = "windows")'.dependencies.windows] -version = "0.57" -features = ["Win32_UI_Shell", "Win32_Foundation", "Win32_System_Com"] +features = ["Win32_Foundation", "Win32_System_Com", "Win32_UI_Shell"] +version = "0.58" diff --git a/apps/desktop/package.json b/apps/desktop/package.json index d18a4b1a5..1ec124294 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -20,10 +20,10 @@ "@sd/ui": "workspace:*", "@t3-oss/env-core": "^0.7.1", "@tanstack/react-query": "^4.36.1", - "@tauri-apps/api": "next", - "@tauri-apps/plugin-dialog": "2.0.0-beta.3", - "@tauri-apps/plugin-os": "2.0.0-beta.3", - "@tauri-apps/plugin-shell": "2.0.0-beta.3", + "@tauri-apps/api": "=2.0.0-rc.0", + "@tauri-apps/plugin-dialog": "=2.0.0-rc.0", + "@tauri-apps/plugin-os": "=2.0.0-rc.0", + "@tauri-apps/plugin-shell": "=2.0.0-rc.0", "consistent-hash": "^1.2.2", "immer": "^10.0.3", "react": "^18.2.0", @@ -34,7 +34,7 @@ "devDependencies": { "@sd/config": "workspace:*", "@sentry/vite-plugin": "^2.16.0", - "@tauri-apps/cli": "2.0.0-beta.20", + "@tauri-apps/cli": "=2.0.0-rc.3", "@types/react": "^18.2.67", "@types/react-dom": "^18.2.22", "sass": "^1.72.0", diff --git a/apps/desktop/src-tauri/Cargo.toml b/apps/desktop/src-tauri/Cargo.toml index 1ab1056f6..993b13832 100644 --- a/apps/desktop/src-tauri/Cargo.toml +++ b/apps/desktop/src-tauri/Cargo.toml @@ -1,52 +1,54 @@ [package] -name = "sd-desktop" +name = "sd-desktop" version = "0.4.1" -description = "The universal file manager." -authors = ["Spacedrive Technology Inc "] -default-run = "sd-desktop" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Spacedrive Technology Inc "] +default-run = "sd-desktop" +description = "The universal file manager." +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] # Spacedrive Sub-crates -sd-core = { path = "../../../core", features = ["ffmpeg", "heif"] } -sd-fda = { path = "../../../crates/fda" } +sd-core = { path = "../../../core", features = ["ffmpeg", "heif"] } +sd-fda = { path = "../../../crates/fda" } sd-prisma = { path = "../../../crates/prisma" } # Workspace dependencies -axum = { workspace = true, features = ["headers", "query"] } -directories = { workspace = true } -futures = { workspace = true } -hyper = { workspace = true } -http = { workspace = true } +axum = { workspace = true, features = ["headers", "query"] } +directories = { workspace = true } +futures = { workspace = true } +http = { workspace = true } +hyper = { workspace = true } prisma-client-rust = { workspace = true } -rand = { workspace = true } -rspc = { workspace = true, features = ["tauri", "tracing"] } -serde = { workspace = true } -serde_json = { workspace = true } -specta = { workspace = true } -strum = { workspace = true, features = ["derive"] } -tokio = { workspace = true, features = ["sync"] } -tracing = { workspace = true } -thiserror = { workspace = true } -uuid = { workspace = true, features = ["serde"] } +rand = { workspace = true } +rspc = { workspace = true, features = ["tauri", "tracing"] } +serde = { workspace = true } +serde_json = { workspace = true } +specta = { workspace = true } +specta-typescript = { workspace = true } +strum = { workspace = true, features = ["derive"] } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["sync"] } +tracing = { workspace = true } +uuid = { workspace = true, features = ["serde"] } # Specific Desktop dependencies # WARNING: Do NOT enable default features, as that vendors dbus (see below) -opener = { version = "0.7.1", features = ["reveal"], default-features = false } -tauri = { version = "=2.0.0-beta.17", features = [ - "macos-private-api", - "unstable", - "linux-libxdo", -] } # Update blocked by rspc -tauri-plugin-updater = "2.0.0-beta" -tauri-plugin-dialog = "2.0.0-beta" -tauri-plugin-os = "2.0.0-beta" -tauri-plugin-shell = "2.0.0-beta" -tauri-runtime = { version = "=2.0.0-beta.15" } # Update blocked by tauri -tauri-specta = { version = "=2.0.0-rc.8", features = ["typescript"] } -tauri-utils = { version = "=2.0.0-beta.16" } # Update blocked by tauri +opener = { version = "0.7.1", features = ["reveal"], default-features = false } +tauri = { version = "=2.0.0-rc.2", features = ["linux-libxdo", "macos-private-api", "unstable"] } +tauri-plugin-dialog = "=2.0.0-rc.0" +tauri-plugin-os = "=2.0.0-rc.0" +tauri-plugin-shell = "=2.0.0-rc.0" +tauri-plugin-updater = "=2.0.0-rc.0" +tauri-runtime = { version = "=2.0.0-rc.2" } +tauri-utils = { version = "=2.0.0-rc.2" } + +[dependencies.tauri-specta] +features = ["derive", "typescript"] +git = "https://github.com/spacedriveapp/tauri-specta" +rev = "6069a05029" [target.'cfg(target_os = "linux")'.dependencies] # Spacedrive Sub-crates @@ -55,7 +57,7 @@ sd-desktop-linux = { path = "../crates/linux" } # Specific Desktop dependencies # WARNING: dbus must NOT be vendored, as that breaks the app on Linux,X11,Nvidia dbus = { version = "0.9.7", features = ["stdfd"] } -# https://github.com/tauri-apps/tauri/blob/tauri-v2.0.0-beta.17/core/tauri/Cargo.toml#L86 +# https://github.com/tauri-apps/tauri/blob/tauri-v2.0.0-rc.2/core/tauri/Cargo.toml webkit2gtk = { version = "=2.0.1", features = ["v2_38"] } [target.'cfg(target_os = "macos")'.dependencies] @@ -68,10 +70,10 @@ sd-desktop-windows = { path = "../crates/windows" } [build-dependencies] # Specific Desktop dependencies -tauri-build = "2.0.0-beta" +tauri-build = "=2.0.0-rc.2" [features] -default = ["custom-protocol"] -devtools = ["tauri/devtools"] -ai-models = ["sd-core/ai"] +ai-models = ["sd-core/ai"] custom-protocol = ["tauri/custom-protocol"] +default = ["custom-protocol"] +devtools = ["tauri/devtools"] diff --git a/apps/desktop/src-tauri/capabilities/default.json b/apps/desktop/src-tauri/capabilities/default.json index 90cc19ebd..cc710d277 100644 --- a/apps/desktop/src-tauri/capabilities/default.json +++ b/apps/desktop/src-tauri/capabilities/default.json @@ -4,27 +4,26 @@ "description": "Capability for the main window", "windows": ["main"], "permissions": [ - "app:default", - "event:default", - "image:default", - "menu:default", - "path:default", - "resources:default", - "window:default", - "tray:default", - "webview:default", - "window:default", + "core:app:default", + "core:event:default", + "core:image:default", + "core:menu:default", + "core:path:default", + "core:resources:default", + "core:window:default", + "core:tray:default", + "core:webview:default", "shell:allow-open", "dialog:allow-open", "dialog:allow-save", "dialog:allow-confirm", "os:allow-os-type", - "window:allow-close", - "window:allow-create", - "window:allow-maximize", - "window:allow-minimize", - "window:allow-toggle-maximize", - "window:allow-start-dragging", - "webview:allow-internal-toggle-devtools" + "core:window:allow-close", + "core:window:allow-create", + "core:window:allow-maximize", + "core:window:allow-minimize", + "core:window:allow-toggle-maximize", + "core:window:allow-start-dragging", + "core:webview:allow-internal-toggle-devtools" ] } diff --git a/apps/desktop/src-tauri/rustfmt.toml b/apps/desktop/src-tauri/rustfmt.toml index 054510e14..385c9ea02 100644 --- a/apps/desktop/src-tauri/rustfmt.toml +++ b/apps/desktop/src-tauri/rustfmt.toml @@ -1,12 +1,12 @@ -max_width = 100 -hard_tabs = true -newline_style = "Auto" -use_small_heuristics = "Default" -reorder_imports = true -reorder_modules = true -remove_nested_parens = true -edition = "2018" -merge_derives = true -use_try_shorthand = false +edition = "2018" +force_explicit_abi = true +hard_tabs = true +max_width = 100 +merge_derives = true +newline_style = "Auto" +remove_nested_parens = true +reorder_imports = true +reorder_modules = true use_field_init_shorthand = false -force_explicit_abi = true +use_small_heuristics = "Default" +use_try_shorthand = false diff --git a/apps/desktop/src-tauri/src/main.rs b/apps/desktop/src-tauri/src/main.rs index 3b8d617ae..7442bf8f6 100644 --- a/apps/desktop/src-tauri/src/main.rs +++ b/apps/desktop/src-tauri/src/main.rs @@ -10,9 +10,11 @@ use sd_core::{Node, NodeError}; use sd_fda::DiskAccess; use serde::{Deserialize, Serialize}; +use specta_typescript::Typescript; +use tauri::Emitter; use tauri::{async_runtime::block_on, webview::PlatformWebview, AppHandle, Manager, WindowEvent}; use tauri_plugins::{sd_error_plugin, sd_server_plugin}; -use tauri_specta::{collect_events, ts}; +use tauri_specta::{collect_events, Builder}; use tokio::task::block_in_place; use tokio::time::sleep; use tracing::error; @@ -181,45 +183,46 @@ async fn main() -> tauri::Result<()> { #[cfg(target_os = "linux")] sd_desktop_linux::normalize_environment(); - let (invoke_handler, register_events) = { - let builder = ts::builder() - .events(collect_events![DragAndDropEvent]) - .commands(tauri_specta::collect_commands![ - app_ready, - reset_spacedrive, - open_logs_dir, - refresh_menu_bar, - reload_webview, - set_menu_bar_item_state, - request_fda_macos, - open_trash_in_os_explorer, - file::open_file_paths, - file::open_ephemeral_files, - file::get_file_path_open_with_apps, - file::get_ephemeral_files_open_with_apps, - file::open_file_path_with, - file::open_ephemeral_file_with, - file::reveal_items, - theme::lock_app_theme, - updater::check_for_update, - updater::install_update - ]) - .config(specta::ts::ExportConfig::default().formatter(specta::ts::formatter::prettier)); + let builder = Builder::new() + .commands(tauri_specta::collect_commands![ + app_ready, + reset_spacedrive, + open_logs_dir, + refresh_menu_bar, + reload_webview, + set_menu_bar_item_state, + request_fda_macos, + open_trash_in_os_explorer, + file::open_file_paths, + file::open_ephemeral_files, + file::get_file_path_open_with_apps, + file::get_ephemeral_files_open_with_apps, + file::open_file_path_with, + file::open_ephemeral_file_with, + file::reveal_items, + theme::lock_app_theme, + updater::check_for_update, + updater::install_update + ]) + .events(collect_events![DragAndDropEvent]); - #[cfg(debug_assertions)] - let builder = builder.path("../src/commands.ts"); - - builder.build().unwrap() - }; + builder + .export( + Typescript::default() + .formatter(specta_typescript::formatter::prettier) + .header("/* eslint-disable */"), + "../src/commands.ts", + ) + .expect("Failed to export typescript bindings"); tauri::Builder::default() - .invoke_handler(invoke_handler) + .invoke_handler(builder.invoke_handler()) .setup(move |app| { // We need a the app handle to determine the data directory now. // This means all the setup code has to be within `setup`, however it doesn't support async so we `block_on`. block_in_place(|| { block_on(async move { - register_events(app); + builder.mount_events(app); let data_dir = app .path() diff --git a/apps/desktop/src-tauri/src/menu.rs b/apps/desktop/src-tauri/src/menu.rs index 4a379534d..1073031f1 100644 --- a/apps/desktop/src-tauri/src/menu.rs +++ b/apps/desktop/src-tauri/src/menu.rs @@ -4,7 +4,7 @@ use serde::Deserialize; use specta::Type; use tauri::{ menu::{Menu, MenuItemKind}, - AppHandle, Manager, Wry, + AppHandle, Emitter, Manager, Wry, }; use tracing::error; diff --git a/apps/desktop/src-tauri/src/updater.rs b/apps/desktop/src-tauri/src/updater.rs index c595b158f..327cc0d0d 100644 --- a/apps/desktop/src-tauri/src/updater.rs +++ b/apps/desktop/src-tauri/src/updater.rs @@ -1,4 +1,4 @@ -use tauri::{plugin::TauriPlugin, Manager, Runtime}; +use tauri::{plugin::TauriPlugin, Emitter, Runtime}; use tauri_plugin_updater::{Update as TauriPluginUpdate, UpdaterExt}; use tokio::sync::Mutex; diff --git a/apps/desktop/src-tauri/tauri.conf.json b/apps/desktop/src-tauri/tauri.conf.json index f6334dc17..c873befb1 100644 --- a/apps/desktop/src-tauri/tauri.conf.json +++ b/apps/desktop/src-tauri/tauri.conf.json @@ -1,5 +1,5 @@ { - "$schema": "https://github.com/tauri-apps/tauri/raw/tauri-v2.0.0-beta.17/core/tauri-config-schema/schema.json", + "$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/tauri-v2.0.0-rc.2/core/tauri-config-schema/schema.json", "productName": "Spacedrive", "identifier": "com.spacedrive.desktop", "build": { @@ -41,7 +41,7 @@ }, "bundle": { "active": true, - "targets": ["deb", "msi", "dmg", "updater"], + "targets": ["deb", "msi", "dmg"], "publisher": "Spacedrive Technology Inc.", "copyright": "Spacedrive Technology Inc.", "category": "Productivity", @@ -62,7 +62,6 @@ "depends": ["libc6", "libxdo3", "dbus"] } }, - "macOS": { "minimumSystemVersion": "10.15", "exceptionDomain": null, @@ -71,7 +70,10 @@ }, "windows": { "certificateThumbprint": null, - "webviewInstallMode": { "type": "embedBootstrapper", "silent": true }, + "webviewInstallMode": { + "type": "embedBootstrapper", + "silent": true + }, "digestAlgorithm": "sha256", "timestampUrl": "", "wix": { diff --git a/apps/desktop/src/commands.ts b/apps/desktop/src/commands.ts index e091d5aa0..bde568c77 100644 --- a/apps/desktop/src/commands.ts +++ b/apps/desktop/src/commands.ts @@ -1,11 +1,14 @@ /** tauri-specta globals **/ -import { invoke as TAURI_INVOKE } from '@tauri-apps/api/core'; +import { Channel as TAURI_CHANNEL, invoke as TAURI_INVOKE } from '@tauri-apps/api/core'; import * as TAURI_API_EVENT from '@tauri-apps/api/event'; import { type WebviewWindow as __WebviewWindow__ } from '@tauri-apps/api/webviewWindow'; +/* eslint-disable */ // This file was generated by [tauri-specta](https://github.com/oscartbeaumont/tauri-specta). Do not edit this file manually. +/** user-defined commands **/ + export const commands = { async appReady(): Promise { await TAURI_INVOKE('app_ready'); @@ -146,12 +149,16 @@ export const commands = { } }; +/** user-defined events **/ + export const events = __makeEvents__<{ dragAndDropEvent: DragAndDropEvent; }>({ dragAndDropEvent: 'drag-and-drop-event' }); +/** user-defined constants **/ + /** user-defined types **/ export type AppThemeType = 'Auto' | 'Light' | 'Dark'; diff --git a/apps/mobile/modules/sd-core/android/crate/Cargo.toml b/apps/mobile/modules/sd-core/android/crate/Cargo.toml index afdf90d3f..f727988d2 100644 --- a/apps/mobile/modules/sd-core/android/crate/Cargo.toml +++ b/apps/mobile/modules/sd-core/android/crate/Cargo.toml @@ -1,10 +1,11 @@ [package] -name = "sd-mobile-android" +name = "sd-mobile-android" version = "0.1.0" -rust-version = "1.64" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true +rust-version = "1.64" [lib] # Android can use dynamic linking since all FFI is done via JNI diff --git a/apps/mobile/modules/sd-core/core/Cargo.toml b/apps/mobile/modules/sd-core/core/Cargo.toml index d4f011dee..de8c14503 100644 --- a/apps/mobile/modules/sd-core/core/Cargo.toml +++ b/apps/mobile/modules/sd-core/core/Cargo.toml @@ -1,25 +1,24 @@ [package] -name = "sd-mobile-core" +name = "sd-mobile-core" version = "0.1.0" -rust-version = "1.64" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true +rust-version = "1.64" [dependencies] # Spacedrive Sub-crates -sd-core = { path = "../../../../../core", features = [ - "mobile", -], default-features = false } +sd-core = { path = "../../../../../core", features = ["mobile"], default-features = false } # Workspace dependencies -futures = { workspace = true } -once_cell = { workspace = true } -rspc = { workspace = true } +futures = { workspace = true } +once_cell = { workspace = true } +rspc = { workspace = true } serde_json = { workspace = true } -tokio = { workspace = true } -tracing = { workspace = true } +tokio = { workspace = true } +tracing = { workspace = true } # Specific Mobile Core dependencies futures-channel = "0.3.30" -futures-locks = "0.7.1" +futures-locks = "0.7.1" diff --git a/apps/mobile/modules/sd-core/ios/crate/Cargo.toml b/apps/mobile/modules/sd-core/ios/crate/Cargo.toml index 693263f3d..db5a25fdb 100644 --- a/apps/mobile/modules/sd-core/ios/crate/Cargo.toml +++ b/apps/mobile/modules/sd-core/ios/crate/Cargo.toml @@ -1,10 +1,11 @@ [package] -name = "sd-mobile-ios" +name = "sd-mobile-ios" version = "0.1.0" -rust-version = "1.64" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true +rust-version = "1.64" [lib] # iOS requires static linking diff --git a/apps/p2p-relay/Cargo.toml b/apps/p2p-relay/Cargo.toml index 9585b7bb7..e85208e69 100644 --- a/apps/p2p-relay/Cargo.toml +++ b/apps/p2p-relay/Cargo.toml @@ -1,20 +1,21 @@ [package] -name = "sd-p2p-relay" +name = "sd-p2p-relay" version = "0.0.1" -publish = false -license.workspace = true -edition.workspace = true + +edition.workspace = true +license.workspace = true +publish = false repository.workspace = true [dependencies] # Workspace dependencies libp2p = { version = "0.53.2", features = [ - "tokio", - "quic", - "relay", "autonat", "macros", -] } + "quic", + "relay", + "tokio" +] } # Update blocked due to custom patch reqwest = { workspace = true, features = ["json", "native-tls-vendored"] } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } diff --git a/apps/server/Cargo.toml b/apps/server/Cargo.toml index 9c98729fe..841928131 100644 --- a/apps/server/Cargo.toml +++ b/apps/server/Cargo.toml @@ -1,29 +1,30 @@ [package] -name = "sd-server" +name = "sd-server" version = "0.1.0" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true [features] -default = [] -assets = [] ai-models = ["sd-core/ai"] +assets = [] +default = [] [dependencies] # Spacedrive Sub-crates sd-core = { path = "../../core", features = ["ffmpeg", "heif"] } # Workspace dependencies -axum = { workspace = true, features = ["headers"] } -base64 = { workspace = true } -http = { workspace = true } -rspc = { workspace = true, features = ["axum"] } +axum = { workspace = true, features = ["headers"] } +base64 = { workspace = true } +http = { workspace = true } +rspc = { workspace = true, features = ["axum"] } tempfile = { workspace = true } -tokio = { workspace = true, features = ["sync", "rt-multi-thread", "signal"] } -tracing = { workspace = true } +tokio = { workspace = true, features = ["rt-multi-thread", "signal", "sync"] } +tracing = { workspace = true } # Specific Desktop dependencies include_dir = "0.7.3" -mime_guess = "2.0" -secstr = "0.5.1" +mime_guess = "2.0" +secstr = "0.5.1" diff --git a/core/Cargo.toml b/core/Cargo.toml index 27cbeda9f..4f6f4d9d0 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,54 +1,47 @@ [package] -name = "sd-core" +name = "sd-core" version = "0.4.1" -description = "Virtual distributed filesystem engine that powers Spacedrive." -authors = ["Spacedrive Technology Inc "] -rust-version = "1.78" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Spacedrive Technology Inc "] +description = "Virtual distributed filesystem engine that powers Spacedrive." +edition.workspace = true +license.workspace = true +repository.workspace = true +rust-version = "1.78" [features] default = [] # This feature allows features to be disabled when the Core is running on mobile. mobile = [] # This feature controls whether the Spacedrive Core contains functionality which requires FFmpeg. -ffmpeg = [ - "dep:sd-ffmpeg", - "sd-core-heavy-lifting/ffmpeg", - "sd-media-metadata/ffmpeg", -] -heif = ["sd-images/heif"] -ai = ["dep:sd-ai"] +ai = ["dep:sd-ai"] +ffmpeg = ["dep:sd-ffmpeg", "sd-core-heavy-lifting/ffmpeg", "sd-media-metadata/ffmpeg"] +heif = ["sd-images/heif"] [dependencies] # Inner Core Sub-crates sd-core-file-path-helper = { path = "./crates/file-path-helper" } -sd-core-heavy-lifting = { path = "./crates/heavy-lifting" } -sd-core-indexer-rules = { path = "./crates/indexer-rules" } -sd-core-prisma-helpers = { path = "./crates/prisma-helpers" } -sd-core-sync = { path = "./crates/sync" } +sd-core-heavy-lifting = { path = "./crates/heavy-lifting" } +sd-core-indexer-rules = { path = "./crates/indexer-rules" } +sd-core-prisma-helpers = { path = "./crates/prisma-helpers" } +sd-core-sync = { path = "./crates/sync" } # Spacedrive Sub-crates -sd-actors = { path = "../crates/actors" } -sd-ai = { path = "../crates/ai", optional = true } -sd-cloud-api = { path = "../crates/cloud-api" } -sd-ffmpeg = { path = "../crates/ffmpeg", optional = true } -sd-file-ext = { path = "../crates/file-ext" } -sd-images = { path = "../crates/images", features = [ - "rspc", - "serde", - "specta", -] } +sd-actors = { path = "../crates/actors" } +sd-ai = { path = "../crates/ai", optional = true } +sd-cloud-api = { path = "../crates/cloud-api" } +sd-ffmpeg = { path = "../crates/ffmpeg", optional = true } +sd-file-ext = { path = "../crates/file-ext" } +sd-images = { path = "../crates/images", features = ["rspc", "serde", "specta"] } sd-media-metadata = { path = "../crates/media-metadata" } -sd-p2p = { path = "../crates/p2p", features = ["specta"] } -sd-p2p-block = { path = "../crates/p2p/crates/block" } -sd-p2p-proto = { path = "../crates/p2p/crates/proto" } -sd-p2p-tunnel = { path = "../crates/p2p/crates/tunnel" } -sd-prisma = { path = "../crates/prisma" } -sd-sync = { path = "../crates/sync" } -sd-task-system = { path = "../crates/task-system" } -sd-utils = { path = "../crates/utils" } +sd-p2p = { path = "../crates/p2p", features = ["specta"] } +sd-p2p-block = { path = "../crates/p2p/crates/block" } +sd-p2p-proto = { path = "../crates/p2p/crates/proto" } +sd-p2p-tunnel = { path = "../crates/p2p/crates/tunnel" } +sd-prisma = { path = "../crates/prisma" } +sd-sync = { path = "../crates/sync" } +sd-task-system = { path = "../crates/task-system" } +sd-utils = { path = "../crates/utils" } # Workspace dependencies async-channel = { workspace = true } @@ -62,7 +55,7 @@ directories = { workspace = true } futures = { workspace = true } futures-concurrency = { workspace = true } gix-ignore = { workspace = true } -hyper = { workspace = true, features = ["http1", "server", "client"] } +hyper = { workspace = true, features = ["client", "http1", "server"] } image = { workspace = true } itertools = { workspace = true } libc = { workspace = true } @@ -75,14 +68,7 @@ reqwest = { workspace = true, features = ["json", "native-tls-vendored"] } rmp = { workspace = true } rmp-serde = { workspace = true } rmpv = { workspace = true } -rspc = { workspace = true, features = [ - "axum", - "uuid", - "chrono", - "tracing", - "alpha", - "unstable", -] } +rspc = { workspace = true, features = ["alpha", "axum", "chrono", "tracing", "unstable", "uuid"] } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } specta = { workspace = true } @@ -92,26 +78,26 @@ strum_macros = { workspace = true } tempfile = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = [ - "sync", - "rt-multi-thread", "io-util", "macros", - "time", "process", + "rt-multi-thread", + "sync", + "time" ] } tokio-stream = { workspace = true, features = ["fs"] } tokio-util = { workspace = true, features = ["io"] } tracing = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter"] } -uuid = { workspace = true, features = ["v4", "serde"] } +uuid = { workspace = true, features = ["serde", "v4"] } webp = { workspace = true } # Specific Core dependencies async-recursion = "1.1" async-stream = "0.3.5" -aws-sdk-s3 = { version = "1.34", features = ["behavior-version-latest"] } aws-config = "1.5" aws-credential-types = "1.2" +aws-sdk-s3 = { version = "1.34", features = ["behavior-version-latest"] } bytes = "1.6" ctor = "0.2.8" flate2 = "1.0" @@ -120,8 +106,8 @@ http-body = "0.4.6" # Update blocked by http http-range = "0.1.5" int-enum = "0.5" # Update blocked due to API breaking changes mini-moka = "0.10.3" -notify = { git = "https://github.com/notify-rs/notify.git", rev = "c3929ed114fbb0bc7457a9a498260461596b00ca", default-features = false, features = [ - "macos_fsevent", +notify = { git = "https://github.com/notify-rs/notify.git", rev = "c3929ed114", default-features = false, features = [ + "macos_fsevent" ] } serde-hashkey = "0.4.5" serde_repr = "0.1.19" @@ -134,11 +120,11 @@ tracing-appender = "0.2.3" # Override features of transitive dependencies [dependencies.openssl] -version = "=0.10.64" features = ["vendored"] +version = "0.10.66" [dependencies.openssl-sys] -version = "=0.9.102" features = ["vendored"] +version = "0.9.103" # Platform-specific dependencies [target.'cfg(target_os = "macos")'.dependencies] @@ -155,8 +141,8 @@ trash = "4.1" icrate = { version = "0.1.2", features = [ "Foundation", "Foundation_NSFileManager", - "Foundation_NSString", "Foundation_NSNumber", + "Foundation_NSString" ] } [target.'cfg(target_os = "android")'.dependencies] @@ -164,7 +150,7 @@ tracing-android = "0.2.0" [dev-dependencies] # Workspace dependencies -globset = { workspace = true } +globset = { workspace = true } tracing-test = { workspace = true } # Specific Core dependencies diff --git a/core/crates/file-path-helper/Cargo.toml b/core/crates/file-path-helper/Cargo.toml index a769102ee..f3e408e43 100644 --- a/core/crates/file-path-helper/Cargo.toml +++ b/core/crates/file-path-helper/Cargo.toml @@ -1,30 +1,31 @@ [package] -name = "sd-core-file-path-helper" +name = "sd-core-file-path-helper" version = "0.1.0" -authors = ["Ericson Soares "] -readme = "README.md" -rust-version = "1.75" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Ericson Soares "] +edition.workspace = true +license.workspace = true +readme = "README.md" +repository.workspace = true +rust-version = "1.75" [dependencies] # Inner Core Sub-crates sd-core-prisma-helpers = { path = "../prisma-helpers" } -sd-core-sync = { path = "../sync" } +sd-core-sync = { path = "../sync" } # Spacedrive Sub-crates sd-prisma = { path = "../../../crates/prisma" } -sd-utils = { path = "../../../crates/utils" } +sd-utils = { path = "../../../crates/utils" } # Workspace dependencies -chrono = { workspace = true, features = ["serde"] } +chrono = { workspace = true, features = ["serde"] } prisma-client-rust = { workspace = true } -regex = { workspace = true } -serde = { workspace = true, features = ["derive"] } -thiserror = { workspace = true } -tokio = { workspace = true, features = ["fs"] } -tracing = { workspace = true } +regex = { workspace = true } +serde = { workspace = true, features = ["derive"] } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["fs"] } +tracing = { workspace = true } [target.'cfg(windows)'.dependencies] winapi-util = "0.1.8" diff --git a/core/crates/heavy-lifting/Cargo.toml b/core/crates/heavy-lifting/Cargo.toml index 6729096d9..1dcc11bb5 100644 --- a/core/crates/heavy-lifting/Cargo.toml +++ b/core/crates/heavy-lifting/Cargo.toml @@ -1,10 +1,11 @@ [package] -name = "sd-core-heavy-lifting" +name = "sd-core-heavy-lifting" version = "0.1.0" -authors = ["Ericson Soares "] -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Ericson Soares "] +edition.workspace = true +license.workspace = true +repository.workspace = true [features] default = [] @@ -14,48 +15,48 @@ ffmpeg = ["dep:sd-ffmpeg"] [dependencies] # Inner Core Sub-crates sd-core-file-path-helper = { path = "../file-path-helper" } -sd-core-indexer-rules = { path = "../indexer-rules" } -sd-core-prisma-helpers = { path = "../prisma-helpers" } -sd-core-sync = { path = "../sync" } +sd-core-indexer-rules = { path = "../indexer-rules" } +sd-core-prisma-helpers = { path = "../prisma-helpers" } +sd-core-sync = { path = "../sync" } # Spacedrive Sub-crates -sd-ffmpeg = { path = "../../../crates/ffmpeg", optional = true } -sd-file-ext = { path = "../../../crates/file-ext" } -sd-images = { path = "../../../crates/images" } +sd-ffmpeg = { path = "../../../crates/ffmpeg", optional = true } +sd-file-ext = { path = "../../../crates/file-ext" } +sd-images = { path = "../../../crates/images" } sd-media-metadata = { path = "../../../crates/media-metadata" } -sd-prisma = { path = "../../../crates/prisma" } -sd-sync = { path = "../../../crates/sync" } -sd-task-system = { path = "../../../crates/task-system" } -sd-utils = { path = "../../../crates/utils" } +sd-prisma = { path = "../../../crates/prisma" } +sd-sync = { path = "../../../crates/sync" } +sd-task-system = { path = "../../../crates/task-system" } +sd-utils = { path = "../../../crates/utils" } # Workspace dependencies -async-channel = { workspace = true } -async-trait = { workspace = true } -blake3 = { workspace = true } -chrono = { workspace = true, features = ["serde"] } -futures = { workspace = true } +async-channel = { workspace = true } +async-trait = { workspace = true } +blake3 = { workspace = true } +chrono = { workspace = true, features = ["serde"] } +futures = { workspace = true } futures-concurrency = { workspace = true } -globset = { workspace = true } -image = { workspace = true } -itertools = { workspace = true } -lending-stream = { workspace = true } -once_cell = { workspace = true } -prisma-client-rust = { workspace = true } -rmpv = { workspace = true } -rmp-serde = { workspace = true } -rspc = { workspace = true } -serde = { workspace = true, features = ["derive"] } -serde_json = { workspace = true } -specta = { workspace = true } -static_assertions = { workspace = true } -strum = { workspace = true, features = ["derive", "phf"] } -thiserror = { workspace = true } -tokio = { workspace = true, features = ["fs", "sync", "parking_lot"] } -tokio-stream = { workspace = true, features = ["fs"] } -tracing = { workspace = true } -uuid = { workspace = true, features = ["v4", "serde"] } -webp = { workspace = true } +globset = { workspace = true } +image = { workspace = true } +itertools = { workspace = true } +lending-stream = { workspace = true } +once_cell = { workspace = true } +prisma-client-rust = { workspace = true } +rmp-serde = { workspace = true } +rmpv = { workspace = true } +rspc = { workspace = true } +serde = { workspace = true, features = ["derive"] } +serde_json = { workspace = true } +specta = { workspace = true } +static_assertions = { workspace = true } +strum = { workspace = true, features = ["derive", "phf"] } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["fs", "parking_lot", "sync"] } +tokio-stream = { workspace = true, features = ["fs"] } +tracing = { workspace = true } +uuid = { workspace = true, features = ["serde", "v4"] } +webp = { workspace = true } [dev-dependencies] -tempfile = { workspace = true } +tempfile = { workspace = true } tracing-test = { workspace = true } diff --git a/core/crates/indexer-rules/Cargo.toml b/core/crates/indexer-rules/Cargo.toml index 10f5f476b..db7a6dcb3 100644 --- a/core/crates/indexer-rules/Cargo.toml +++ b/core/crates/indexer-rules/Cargo.toml @@ -1,34 +1,32 @@ [package] -name = "sd-core-indexer-rules" +name = "sd-core-indexer-rules" version = "0.1.0" -authors = [ - "Ericson Soares ", - "Vítor Vasconcellos ", -] -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Ericson Soares ", "Vítor Vasconcellos "] +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] # Spacedrive Sub-crates sd-prisma = { path = "../../../crates/prisma" } -sd-utils = { path = "../../../crates/utils" } +sd-utils = { path = "../../../crates/utils" } # Workspace dependencies -chrono = { workspace = true } +chrono = { workspace = true } futures-concurrency = { workspace = true } -gix-ignore = { workspace = true, features = ["serde"] } -globset = { workspace = true, features = ["serde1"] } -once_cell = { workspace = true } -prisma-client-rust = { workspace = true } -rmp-serde = { workspace = true } -rspc = { workspace = true } -serde = { workspace = true, features = ["derive"] } -specta = { workspace = true } -thiserror = { workspace = true } -tokio = { workspace = true, features = ["fs"] } -tracing = { workspace = true } -uuid = { workspace = true, features = ["v4", "serde"] } +gix-ignore = { workspace = true, features = ["serde"] } +globset = { workspace = true, features = ["serde1"] } +once_cell = { workspace = true } +prisma-client-rust = { workspace = true } +rmp-serde = { workspace = true } +rspc = { workspace = true } +serde = { workspace = true, features = ["derive"] } +specta = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["fs"] } +tracing = { workspace = true } +uuid = { workspace = true, features = ["serde", "v4"] } [dev-dependencies] tempfile = { workspace = true } diff --git a/core/crates/prisma-helpers/Cargo.toml b/core/crates/prisma-helpers/Cargo.toml index 66d1be763..6a3a47a4c 100644 --- a/core/crates/prisma-helpers/Cargo.toml +++ b/core/crates/prisma-helpers/Cargo.toml @@ -1,18 +1,19 @@ [package] -name = "sd-core-prisma-helpers" +name = "sd-core-prisma-helpers" version = "0.1.0" -authors = ["Ericson Soares "] -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Ericson Soares "] +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] # Spacedrive Sub-crates sd-prisma = { path = "../../../crates/prisma" } -sd-utils = { path = "../../../crates/utils" } +sd-utils = { path = "../../../crates/utils" } # Workspace dependencies prisma-client-rust = { workspace = true } -serde = { workspace = true, features = ["derive"] } -specta = { workspace = true } -uuid = { workspace = true, features = ["v4", "serde"] } +serde = { workspace = true, features = ["derive"] } +specta = { workspace = true } +uuid = { workspace = true, features = ["serde", "v4"] } diff --git a/core/crates/sync/Cargo.toml b/core/crates/sync/Cargo.toml index 85858de5c..84ca5c3d1 100644 --- a/core/crates/sync/Cargo.toml +++ b/core/crates/sync/Cargo.toml @@ -1,6 +1,7 @@ [package] -name = "sd-core-sync" +name = "sd-core-sync" version = "0.0.0" + edition = "2021" [features] @@ -8,27 +9,27 @@ default = [] [dependencies] # Spacedrive Sub-crates -sd-prisma = { path = "../../../crates/prisma" } -sd-sync = { path = "../../../crates/sync" } -sd-utils = { path = "../../../crates/utils" } sd-actors = { path = "../../../crates/actors" } +sd-prisma = { path = "../../../crates/prisma" } +sd-sync = { path = "../../../crates/sync" } +sd-utils = { path = "../../../crates/utils" } # Workspace dependencies -async-channel = { workspace = true } -futures = { workspace = true } +async-channel = { workspace = true } +futures = { workspace = true } futures-concurrency = { workspace = true } -prisma-client-rust = { workspace = true, features = ["rspc"] } -rmpv = { workspace = true } -rmp-serde = { workspace = true } -rspc = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -tokio = { workspace = true } -thiserror = { workspace = true } -tracing = { workspace = true } -uhlc = { workspace = true } -uuid = { workspace = true } +prisma-client-rust = { workspace = true, features = ["rspc"] } +rmp-serde = { workspace = true } +rmpv = { workspace = true } +rspc = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true } +tracing = { workspace = true } +uhlc = { workspace = true } +uuid = { workspace = true } [dev-dependencies] -tracing-test = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter"] } +tracing-test = { workspace = true } diff --git a/core/prisma/migrations/migration_lock.toml b/core/prisma/migrations/migration_lock.toml index e5e5c4705..6fcf33daf 100644 --- a/core/prisma/migrations/migration_lock.toml +++ b/core/prisma/migrations/migration_lock.toml @@ -1,3 +1,3 @@ # Please do not edit this file manually # It should be added in your version-control system (i.e. Git) -provider = "sqlite" \ No newline at end of file +provider = "sqlite" diff --git a/core/src/util/unsafe_streamed_query.rs b/core/src/util/unsafe_streamed_query.rs index 1e3954512..9a316373a 100644 --- a/core/src/util/unsafe_streamed_query.rs +++ b/core/src/util/unsafe_streamed_query.rs @@ -3,7 +3,7 @@ use std::pin::pin; use async_stream::stream; use futures::{Stream, StreamExt}; use serde::Serialize; -use specta::{reference::Reference, DataType, Generics, Type, TypeMap}; +use specta::{DataType, Generics, Type, TypeMap}; #[derive(Serialize)] #[serde(untagged)] @@ -16,10 +16,6 @@ impl Type for Output { fn inline(type_map: &mut TypeMap, generics: Generics) -> DataType { T::inline(type_map, generics) } - - fn reference(type_map: &mut TypeMap, generics: &[DataType]) -> Reference { - T::reference(type_map, generics) - } } // Marked as unsafe as the types are a lie and this should always be used with `useUnsafeStreamedQuery` diff --git a/crates/actors/Cargo.toml b/crates/actors/Cargo.toml index 29fb43a88..65d33cff7 100644 --- a/crates/actors/Cargo.toml +++ b/crates/actors/Cargo.toml @@ -1,13 +1,14 @@ [package] -name = "sd-actors" +name = "sd-actors" version = "0.1.0" -license.workspace = true -edition.workspace = true + +edition.workspace = true +license.workspace = true repository.workspace = true [dependencies] -async-channel = { workspace = true } -futures = { workspace = true } +async-channel = { workspace = true } +futures = { workspace = true } pin-project-lite = { workspace = true } -tokio = { workspace = true } -tracing = { workspace = true } +tokio = { workspace = true } +tracing = { workspace = true } diff --git a/crates/ai/Cargo.toml b/crates/ai/Cargo.toml index a1cb437e6..73e188559 100644 --- a/crates/ai/Cargo.toml +++ b/crates/ai/Cargo.toml @@ -1,63 +1,64 @@ [package] -name = "sd-ai" +name = "sd-ai" version = "0.1.0" -authors = ["Ericson Soares "] -readme = "README.md" -description = "A simple library to generate video thumbnails using ffmpeg with the webp format" -rust-version = "1.75" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Ericson Soares "] +description = "A simple library to generate video thumbnails using ffmpeg with the webp format" +edition.workspace = true +license.workspace = true +readme = "README.md" +repository.workspace = true +rust-version = "1.75" [dependencies] # Inner Core Sub-crates sd-core-file-path-helper = { path = "../../core/crates/file-path-helper" } -sd-core-prisma-helpers = { path = "../../core/crates/prisma-helpers" } -sd-core-sync = { path = "../../core/crates/sync" } +sd-core-prisma-helpers = { path = "../../core/crates/prisma-helpers" } +sd-core-sync = { path = "../../core/crates/sync" } # Spacedrive Sub-crates sd-prisma = { path = "../prisma" } -sd-sync = { path = "../sync" } -sd-utils = { path = "../utils" } +sd-sync = { path = "../sync" } +sd-utils = { path = "../utils" } -async-channel = { workspace = true } -chrono = { workspace = true, features = ["serde"] } -futures = { workspace = true } +async-channel = { workspace = true } +chrono = { workspace = true, features = ["serde"] } +futures = { workspace = true } futures-concurrency = { workspace = true } -image = { workspace = true } -once_cell = { workspace = true } -prisma-client-rust = { workspace = true } -reqwest = { workspace = true, features = ["stream", "native-tls-vendored"] } -rmp-serde = { workspace = true } -rmpv = { workspace = true } -serde = { workspace = true, features = ["derive"] } -serde_json = { workspace = true } -thiserror = { workspace = true } -tokio = { workspace = true, features = ["fs"] } -tokio-stream = { workspace = true } -tracing = { workspace = true } -uuid = { workspace = true, features = ["v4", "serde"] } +image = { workspace = true } +once_cell = { workspace = true } +prisma-client-rust = { workspace = true } +reqwest = { workspace = true, features = ["native-tls-vendored", "stream"] } +rmp-serde = { workspace = true } +rmpv = { workspace = true } +serde = { workspace = true, features = ["derive"] } +serde_json = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["fs"] } +tokio-stream = { workspace = true } +tracing = { workspace = true } +uuid = { workspace = true, features = ["serde", "v4"] } # Note: half and ndarray version must be the same as used in ort -half = { version = "2.1", features = ['num-traits'] } +half = { version = "2.1", features = ['num-traits'] } ndarray = "0.15" -url = '2.5.0' +url = '2.5.0' # Microsoft does not provide a release for osx-gpu. See: https://github.com/microsoft/onnxruntime/releases # "gpu" means CUDA or TensorRT EP. Thus, the ort crate cannot download them at build time. # Ref: https://github.com/pykeio/ort/blob/d7defd1862969b4b44f7f3f4b9c72263690bd67b/build.rs#L148 [target.'cfg(target_os = "windows")'.dependencies] ort = { version = "=2.0.0-rc.0", default-features = false, features = [ - "ndarray", + "directml", "half", "load-dynamic", - "directml", + "ndarray" ] } [target.'cfg(target_os = "linux")'.dependencies] ort = { version = "=2.0.0-rc.0", default-features = false, features = [ - "ndarray", "half", - "xnnpack", + "ndarray", + "xnnpack" ] } # [target.'cfg(target_os = "android")'.dependencies] # ort = { version = "=2.0.0-rc.0", default-features = false, features = [ @@ -71,9 +72,9 @@ ort = { version = "=2.0.0-rc.0", default-features = false, features = [ # ] } [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies] ort = { version = "=2.0.0-rc.0", features = [ - "ndarray", + "coreml", "half", "load-dynamic", - "coreml", - "xnnpack", + "ndarray", + "xnnpack" ] } diff --git a/crates/cloud-api/Cargo.toml b/crates/cloud-api/Cargo.toml index 792947700..49c78576a 100644 --- a/crates/cloud-api/Cargo.toml +++ b/crates/cloud-api/Cargo.toml @@ -1,8 +1,9 @@ [package] -name = "sd-cloud-api" +name = "sd-cloud-api" version = "0.1.0" -license.workspace = true -edition.workspace = true + +edition.workspace = true +license.workspace = true repository.workspace = true [dependencies] @@ -10,13 +11,13 @@ repository.workspace = true sd-p2p = { path = "../p2p" } # Workspace dependencies -base64 = { workspace = true } -reqwest = { workspace = true, features = ["native-tls-vendored"] } -rmpv = { workspace = true } -rspc = { workspace = true } -serde = { workspace = true } +base64 = { workspace = true } +reqwest = { workspace = true, features = ["native-tls-vendored"] } +rmpv = { workspace = true } +rspc = { workspace = true } +serde = { workspace = true } serde_json = { workspace = true } -specta = { workspace = true } -thiserror = { workspace = true } -tracing = { workspace = true } -uuid = { workspace = true } +specta = { workspace = true } +thiserror = { workspace = true } +tracing = { workspace = true } +uuid = { workspace = true } diff --git a/crates/crypto/Cargo.toml b/crates/crypto/Cargo.toml index 4b570d2e2..3e8810500 100644 --- a/crates/crypto/Cargo.toml +++ b/crates/crypto/Cargo.toml @@ -1,49 +1,42 @@ [package] -name = "sd-crypto" -rust-version = "1.72" +name = "sd-crypto" version = "0.0.0" + authors = ["Jake Robinson "] description = """ A cryptographic library that provides safe and high-level encryption, hashing, and encoding interfaces. """ -readme = "README.md" +edition.workspace = true keywords = ["crypto"] -edition = { workspace = true } -license = { workspace = true } -repository = { workspace = true } +license.workspace = true +readme = "README.md" +repository.workspace = true +rust-version = "1.72" + [features] -sys = [] -serde = [ - "dep:serde", - "dep:serde_json", - "dep:serde-big-array", - "dep:serdect", - "bincode/serde", -] +experimental = [] keyring = ["dep:linux-keyutils", "dep:security-framework"] secret-service = [ - "keyring", "dep:secret-service", "dep:zbus", + "keyring" ] # explicit enabling required as the secret service api requires `zbus` and is messy -experimental = [] +serde = ["bincode/serde", "dep:serde", "dep:serde-big-array", "dep:serde_json", "dep:serdect"] +sys = [] [dependencies] # rng -rand_core = "0.9.0-alpha.0" -rand = "0.9.0-alpha.0" +rand = "0.9.0-alpha.0" rand_chacha = "0.9.0-alpha.0" +rand_core = "0.9.0-alpha.0" # hashing -argon2 = { version = "0.6.0-pre.0", default_features = false, features = [ - "alloc", - "zeroize", -] } +argon2 = { version = "0.6.0-pre.0", default_features = false, features = ["alloc", "zeroize"] } balloon-hash = { version = "0.5.0-pre.0", default_features = false, features = [ "alloc", - "zeroize", + "zeroize" ] } blake3 = { version = "1.5.0", features = ["traits-preview", "zeroize"] } @@ -51,27 +44,27 @@ blake3 = { version = "1.5.0", features = ["traits-preview", "zeroize"] } cmov = "0.3.1" # aeads -aes-gcm-siv = "0.11.1" +aead = { version = "0.5.2", default-features = false, features = ["stream"] } +aes-gcm-siv = "0.11.1" +bincode = { version = "2.0.0-rc.3", features = ["alloc", "derive"] } chacha20poly1305 = "0.10.1" -thiserror = "1.0.57" -aead = { version = "0.5.2", default-features = false, features = ["stream"] } -bincode = { version = "2.0.0-rc.3", features = ["derive", "alloc"] } +thiserror = "1.0.57" -zeroize = { version = "1.7.0", features = ["derive", "aarch64"] } +zeroize = { version = "1.7.0", features = ["aarch64", "derive"] } -serde = { version = "1.0.197", features = ["derive"], optional = true } -serde_json = { version = "1.0.114", optional = true } +serde = { version = "1.0.197", features = ["derive"], optional = true } serde-big-array = { version = "0.5.1", optional = true } -serdect = { version = "0.3.0-pre.0", optional = true } +serde_json = { version = "1.0.114", optional = true } +serdect = { version = "0.3.0-pre.0", optional = true } specta = { workspace = true, optional = true } # for asynchronous crypto tokio = { workspace = true, features = [ "io-util", - "rt-multi-thread", "macros", - "sync", + "rt-multi-thread", + "sync" ], optional = true } redb = "1.5.0" @@ -91,14 +84,14 @@ uuid = { version = "1.7.0", features = ["v4"] } linux-keyutils = { version = "0.2.4", features = ["std"], optional = true } secret-service = { version = "3.0.1", features = [ "crypto-rust", - "rt-tokio-crypto-rust", + "rt-tokio-crypto-rust" ], optional = true } # this needs to remain at versions < 4, as they made some changes and i can't get it # to compile for the time being zbus = { version = "4.0", default_features = false, features = [ - "tokio", "blocking", + "tokio" ], optional = true } [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies] @@ -106,44 +99,44 @@ security-framework = { version = "2.9.2", optional = true } [dev-dependencies] criterion = "0.5.1" -paste = "1.0.14" -tempfile = "3.10.1" +paste = "1.0.14" +tempfile = "3.10.1" [clippy] allow = ["unwrap_in_tests"] [[bench]] -path = "benches/crypto/aes-256-gcm-siv.rs" -name = "aes-256-gcm-siv" harness = false +name = "aes-256-gcm-siv" +path = "benches/crypto/aes-256-gcm-siv.rs" [[bench]] -path = "benches/crypto/xchacha20-poly1305.rs" -name = "xchacha20-poly1305" harness = false +name = "xchacha20-poly1305" +path = "benches/crypto/xchacha20-poly1305.rs" [[bench]] -path = "benches/hashing/argon2id.rs" -name = "argon2id" -bench = false +bench = false harness = false +name = "argon2id" +path = "benches/hashing/argon2id.rs" [[bench]] -path = "benches/hashing/blake3-balloon.rs" -name = "blake3-balloon" -bench = false +bench = false harness = false +name = "blake3-balloon" +path = "benches/hashing/blake3-balloon.rs" [[bench]] -path = "benches/hashing/blake3.rs" -name = "blake3" harness = false +name = "blake3" +path = "benches/hashing/blake3.rs" [[bench]] -path = "benches/hashing/blake3-kdf.rs" -name = "blake3-kdf" harness = false +name = "blake3-kdf" +path = "benches/hashing/blake3-kdf.rs" [[example]] -path = "examples/file_encryption.rs" name = "file_encryption" +path = "examples/file_encryption.rs" diff --git a/crates/fda/Cargo.toml b/crates/fda/Cargo.toml index 24f1a86e1..25c3e5507 100644 --- a/crates/fda/Cargo.toml +++ b/crates/fda/Cargo.toml @@ -1,10 +1,11 @@ [package] -name = "sd-fda" +name = "sd-fda" version = "0.1.0" -authors = ["Jake Robinson "] -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Jake Robinson "] +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] thiserror = { workspace = true } diff --git a/crates/ffmpeg/Cargo.toml b/crates/ffmpeg/Cargo.toml index 9f84182f2..ea6e3ff0c 100644 --- a/crates/ffmpeg/Cargo.toml +++ b/crates/ffmpeg/Cargo.toml @@ -1,33 +1,31 @@ [package] -name = "sd-ffmpeg" +name = "sd-ffmpeg" version = "0.1.0" -authors = [ - "Ericson Soares ", - "Vítor Vasconcellos ", -] -readme = "README.md" -description = "A simple library to generate video thumbnails using ffmpeg with the webp format" -rust-version = "1.78" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Ericson Soares ", "Vítor Vasconcellos "] +description = "A simple library to generate video thumbnails using ffmpeg with the webp format" +edition.workspace = true +license.workspace = true +readme = "README.md" +repository.workspace = true +rust-version = "1.78" [dependencies] # Spacedrive Sub-crates sd-utils = { path = "../utils" } # Workspace dependencies -chrono = { workspace = true, features = ["serde"] } -image = { workspace = true } -libc = { workspace = true } +chrono = { workspace = true, features = ["serde"] } +image = { workspace = true } +libc = { workspace = true } thiserror = { workspace = true } -tokio = { workspace = true, features = ["fs", "rt"] } -tracing = { workspace = true } -webp = { workspace = true } +tokio = { workspace = true, features = ["fs", "rt"] } +tracing = { workspace = true } +webp = { workspace = true } # Specific FFmpeg dependencies ffmpeg-sys-next = "7.0" [dev-dependencies] tempfile = { workspace = true } -tokio = { workspace = true, features = ["fs", "rt", "macros"] } +tokio = { workspace = true, features = ["fs", "macros", "rt"] } diff --git a/crates/file-ext/Cargo.toml b/crates/file-ext/Cargo.toml index 0ba69efe6..a7b357854 100644 --- a/crates/file-ext/Cargo.toml +++ b/crates/file-ext/Cargo.toml @@ -1,21 +1,19 @@ [package] -name = "sd-file-ext" +name = "sd-file-ext" version = "0.0.0" -authors = [ - "Brendan Allen ", - "Jamie Pine ", -] -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Brendan Allen ", "Jamie Pine "] +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] -serde = { workspace = true, features = ["derive"] } -serde_json = { workspace = true } -specta = { workspace = true } -strum = { workspace = true, features = ["derive"] } +serde = { workspace = true, features = ["derive"] } +serde_json = { workspace = true } +specta = { workspace = true } +strum = { workspace = true, features = ["derive"] } strum_macros = { workspace = true } -tokio = { workspace = true, features = ["fs", "rt", "io-util"] } +tokio = { workspace = true, features = ["fs", "io-util", "rt"] } [dev-dependencies] -tokio = { workspace = true, features = ["fs", "rt", "macros"] } +tokio = { workspace = true, features = ["fs", "macros", "rt"] } diff --git a/crates/images/Cargo.toml b/crates/images/Cargo.toml index 73fc9fd77..b602584da 100644 --- a/crates/images/Cargo.toml +++ b/crates/images/Cargo.toml @@ -1,38 +1,29 @@ [package] -name = "sd-images" +name = "sd-images" version = "0.1.0" -authors = [ - "Jake Robinson ", - "Vítor Vasconcellos ", -] -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Jake Robinson ", "Vítor Vasconcellos "] +edition.workspace = true +license.workspace = true +repository.workspace = true [features] heif = ["dep:libheif-rs", "dep:libheif-sys"] [dependencies] # Workspace dependencies -image = { workspace = true } +image = { workspace = true } once_cell = { workspace = true } -rspc = { workspace = true, optional = true } # error conversion -specta = { workspace = true, optional = true } -serde = { workspace = true, optional = true, features = ["derive"] } +rspc = { workspace = true, optional = true } # error conversion +serde = { workspace = true, optional = true, features = ["derive"] } +specta = { workspace = true, optional = true } thiserror = { workspace = true } -tracing = { workspace = true } +tracing = { workspace = true } # Specific Images dependencies -bincode = { version = "=2.0.0-rc.3", features = [ - "derive", - "alloc", -], optional = true } +bincode = { version = "=2.0.0-rc.3", features = ["alloc", "derive"], optional = true } # Disable defaults for libheif* to avoid bindgen and use pre-compiled headers -libheif-rs = { version = "1.0", default-features = false, optional = true } -libheif-sys = { version = "2.1", default-features = false, optional = true } -pdfium-render = { version = "0.8.15", features = [ - "sync", - "image", - "thread_safe", -] } -resvg = "0.42.0" +libheif-rs = { version = "1.0", default-features = false, optional = true } +libheif-sys = { version = "2.1", default-features = false, optional = true } +pdfium-render = { version = "0.8.15", features = ["image", "sync", "thread_safe"] } +resvg = "0.43.0" diff --git a/crates/media-metadata/Cargo.toml b/crates/media-metadata/Cargo.toml index a0ed6c83f..672f4c160 100644 --- a/crates/media-metadata/Cargo.toml +++ b/crates/media-metadata/Cargo.toml @@ -1,10 +1,11 @@ [package] -name = "sd-media-metadata" +name = "sd-media-metadata" version = "0.1.0" + authors = [ - "Jake Robinson ", - "Vítor Vasconcellos ", "Ericson Soares ", + "Jake Robinson ", + "Vítor Vasconcellos " ] edition = "2021" @@ -14,17 +15,17 @@ ffmpeg = ["dep:sd-ffmpeg"] [dependencies] # Spacedrive Sub-crates sd-ffmpeg = { path = "../ffmpeg", optional = true } -sd-utils = { path = "../utils" } +sd-utils = { path = "../utils" } # Workspace dependencies -chrono = { workspace = true, features = ["serde"] } -image = { workspace = true } -rand = { workspace = true } -serde = { workspace = true, features = ["derive"] } +chrono = { workspace = true, features = ["serde"] } +image = { workspace = true } +rand = { workspace = true } +serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } -specta = { workspace = true, features = ["chrono"] } -thiserror = { workspace = true } -tokio = { workspace = true } +specta = { workspace = true, features = ["chrono"] } +thiserror = { workspace = true } +tokio = { workspace = true } # Specific Media Metadata dependencies kamadak-exif = "0.5.5" diff --git a/crates/p2p/Cargo.toml b/crates/p2p/Cargo.toml index c670181f8..ead36f24f 100644 --- a/crates/p2p/Cargo.toml +++ b/crates/p2p/Cargo.toml @@ -1,61 +1,54 @@ [package] -name = "sd-p2p" +name = "sd-p2p" version = "0.2.0" -description = "Rust Peer to Peer Networking Library" -authors = ["Oscar Beaumont "] -readme = "README.md" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +authors = ["Oscar Beaumont "] +description = "Rust Peer to Peer Networking Library" +edition.workspace = true +license.workspace = true +readme = "README.md" +repository.workspace = true # TODO: Remove features??? and dependencies [features] default = [] -specta = [] +specta = [] [dependencies] # Workspace dependencies -base64 = { workspace = true } -base91 = { workspace = true } -ed25519-dalek = { workspace = true } -futures = { workspace = true } +base64 = { workspace = true } +base91 = { workspace = true } +ed25519-dalek = { workspace = true } +futures = { workspace = true } pin-project-lite = { workspace = true } -reqwest = { workspace = true } -rmp-serde = { workspace = true } -serde = { workspace = true, features = ["derive"] } -specta = { workspace = true } -thiserror = { workspace = true } -tokio = { workspace = true, features = [ - "macros", - "sync", - "time", - "io-util", - "fs", -] } -tokio-stream = { workspace = true, features = ["sync"] } -tokio-util = { workspace = true, features = ["compat"] } -tracing = { workspace = true } -uuid = { workspace = true, features = ["serde"] } +reqwest = { workspace = true } +rmp-serde = { workspace = true } +serde = { workspace = true, features = ["derive"] } +specta = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["fs", "io-util", "macros", "sync", "time"] } +tokio-stream = { workspace = true, features = ["sync"] } +tokio-util = { workspace = true, features = ["compat"] } +tracing = { workspace = true } +uuid = { workspace = true, features = ["serde"] } # Specific P2P dependencies dns-lookup = "2.0" flume = "=0.11.0" # Must match version used by `mdns-sd` futures-core = "0.3.30" hash_map_diff = "0.2.0" -if-watch = { version = "=3.2.0", features = [ - "tokio", -] } # Override features used by libp2p-quic +if-watch = { version = "=3.2.0", features = ["tokio"] } # Override features used by libp2p-quic libp2p = { version = "=0.53.2", features = [ - "tokio", - "serde", - "macros", - "quic", "autonat", - "relay", - "yamux", - "noise", "dcutr", + "macros", + "noise", + "quic", + "relay", + "serde", + "tokio", + "yamux" ] } # Update blocked due to custom patch libp2p-stream = "=0.1.0-alpha" # Update blocked due to custom patch mdns-sd = "0.11.1" @@ -67,6 +60,6 @@ sync_wrapper = "1.0" zeroize = { version = "1.8", features = ["derive"] } [dev-dependencies] -tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } +tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } tracing-subscriber = { workspace = true } -uuid = { workspace = true, features = ["v4"] } +uuid = { workspace = true, features = ["v4"] } diff --git a/crates/p2p/crates/block/Cargo.toml b/crates/p2p/crates/block/Cargo.toml index 033345e04..77f115035 100644 --- a/crates/p2p/crates/block/Cargo.toml +++ b/crates/p2p/crates/block/Cargo.toml @@ -1,18 +1,19 @@ [package] -name = "sd-p2p-block" +name = "sd-p2p-block" version = "0.1.0" -authors = ["Oscar Beaumont "] -license.workspace = true -edition.workspace = true + +authors = ["Oscar Beaumont "] +edition.workspace = true +license.workspace = true repository.workspace = true [dependencies] # Spacedrive Sub-crates -sd-p2p = { path = "../../" } +sd-p2p = { path = "../../" } sd-p2p-proto = { path = "../proto" } # Workspace dependencies thiserror = { workspace = true } -tokio = { workspace = true } -tracing = { workspace = true } -uuid = { workspace = true } +tokio = { workspace = true } +tracing = { workspace = true } +uuid = { workspace = true } diff --git a/crates/p2p/crates/proto/Cargo.toml b/crates/p2p/crates/proto/Cargo.toml index 51bd00b91..685aaf4ec 100644 --- a/crates/p2p/crates/proto/Cargo.toml +++ b/crates/p2p/crates/proto/Cargo.toml @@ -1,13 +1,14 @@ [package] -name = "sd-p2p-proto" +name = "sd-p2p-proto" version = "0.1.0" -authors = ["Oscar Beaumont "] -license.workspace = true -edition.workspace = true + +authors = ["Oscar Beaumont "] +edition.workspace = true +license.workspace = true repository.workspace = true [dependencies] ed25519-dalek = { workspace = true } -thiserror = { workspace = true } -tokio = { workspace = true, features = ["io-util"] } -uuid = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["io-util"] } +uuid = { workspace = true } diff --git a/crates/p2p/crates/tunnel/Cargo.toml b/crates/p2p/crates/tunnel/Cargo.toml index 816a5cef1..bbedd8b1d 100644 --- a/crates/p2p/crates/tunnel/Cargo.toml +++ b/crates/p2p/crates/tunnel/Cargo.toml @@ -1,17 +1,18 @@ [package] -name = "sd-p2p-tunnel" +name = "sd-p2p-tunnel" version = "0.1.0" -authors = ["Oscar Beaumont "] -license.workspace = true -edition.workspace = true + +authors = ["Oscar Beaumont "] +edition.workspace = true +license.workspace = true repository.workspace = true [dependencies] # Spacedrive Sub-crates -sd-p2p = { path = "../../" } +sd-p2p = { path = "../../" } sd-p2p-proto = { path = "../proto" } # Workspace dependencies -tokio = { workspace = true, features = ["io-util"] } thiserror = { workspace = true } -uuid = { workspace = true, features = ["v4"] } +tokio = { workspace = true, features = ["io-util"] } +uuid = { workspace = true, features = ["v4"] } diff --git a/crates/prisma-cli/Cargo.toml b/crates/prisma-cli/Cargo.toml index 69522f1af..b6594a407 100644 --- a/crates/prisma-cli/Cargo.toml +++ b/crates/prisma-cli/Cargo.toml @@ -1,9 +1,10 @@ [package] -name = "prisma-cli" +name = "prisma-cli" version = "0.1.0" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] # Spacedrive Sub-crates diff --git a/crates/prisma/Cargo.toml b/crates/prisma/Cargo.toml index d42d563c8..5910d57e2 100644 --- a/crates/prisma/Cargo.toml +++ b/crates/prisma/Cargo.toml @@ -1,6 +1,7 @@ [package] -name = "sd-prisma" +name = "sd-prisma" version = "0.1.0" + edition = "2021" [dependencies] @@ -9,8 +10,8 @@ sd-sync = { path = "../sync" } # Workspace dependencies prisma-client-rust = { workspace = true } -rmpv = { workspace = true } -rmp-serde = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -uuid = { workspace = true } +rmp-serde = { workspace = true } +rmpv = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +uuid = { workspace = true } diff --git a/crates/sync-generator/Cargo.toml b/crates/sync-generator/Cargo.toml index 8b07f7146..7ca3a9ae3 100644 --- a/crates/sync-generator/Cargo.toml +++ b/crates/sync-generator/Cargo.toml @@ -1,14 +1,15 @@ [package] -name = "sd-sync-generator" +name = "sd-sync-generator" version = "0.1.0" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] prisma-client-rust-sdk = { workspace = true } -serde = { workspace = true, features = ["derive"] } -thiserror = { workspace = true } +serde = { workspace = true, features = ["derive"] } +thiserror = { workspace = true } # Specific Sync Generator dependencies nom = "7.1.3" diff --git a/crates/sync/Cargo.toml b/crates/sync/Cargo.toml index 003217aaf..8b15355ca 100644 --- a/crates/sync/Cargo.toml +++ b/crates/sync/Cargo.toml @@ -1,17 +1,18 @@ [package] -name = "sd-sync" +name = "sd-sync" version = "0.1.0" -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +repository.workspace = true [dependencies] prisma-client-rust = { workspace = true } -rmp = { workspace = true } -rmp-serde = { workspace = true } -rmpv = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -specta = { workspace = true, features = ["uuid", "uhlc", "serde_json"] } -uhlc = { workspace = true } -uuid = { workspace = true, features = ["serde", "v4"] } +rmp = { workspace = true } +rmp-serde = { workspace = true } +rmpv = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +specta = { workspace = true, features = ["serde_json", "uhlc", "uuid"] } +uhlc = { workspace = true } +uuid = { workspace = true, features = ["serde", "v4"] } diff --git a/crates/sync/example/Cargo.toml b/crates/sync/example/Cargo.toml index 8bd3f690d..49521583a 100644 --- a/crates/sync/example/Cargo.toml +++ b/crates/sync/example/Cargo.toml @@ -1,26 +1,27 @@ [package] -name = "sd-sync-example" +name = "sd-sync-example" version = "0.1.0" -rust-version = "1.64" -publish = false -license = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } + +edition.workspace = true +license.workspace = true +publish = false +repository.workspace = true +rust-version = "1.64" [dependencies] # Spacedrive Sub-crates sd-sync = { path = ".." } # Workspace dependencies -axum = { workspace = true } -http = { workspace = true } +axum = { workspace = true } +http = { workspace = true } prisma-client-rust = { workspace = true } -rspc = { workspace = true, features = ["axum"] } -serde_json = { workspace = true } -serde = { workspace = true, features = ["derive"] } -tokio = { workspace = true, features = ["full"] } -uuid = { workspace = true, features = ["v4"] } +rspc = { workspace = true, features = ["axum"] } +serde = { workspace = true, features = ["derive"] } +serde_json = { workspace = true } +tokio = { workspace = true, features = ["full"] } +uuid = { workspace = true, features = ["v4"] } # Specific Core dependencies -dotenv = "0.15.0" +dotenv = "0.15.0" tower-http = { version = "0.4.4", features = ["cors"] } # Update blocked by http diff --git a/crates/task-system/Cargo.toml b/crates/task-system/Cargo.toml index fcc5b1a23..03e31ba60 100644 --- a/crates/task-system/Cargo.toml +++ b/crates/task-system/Cargo.toml @@ -1,41 +1,37 @@ [package] -name = "sd-task-system" +name = "sd-task-system" version = "0.1.0" -authors = ["Ericson Soares "] -rust-version = "1.75" -license.workspace = true -edition.workspace = true + +authors = ["Ericson Soares "] +edition.workspace = true +license.workspace = true repository.workspace = true +rust-version = "1.75" [dependencies] # Workspace deps -async-channel = { workspace = true } -async-trait = { workspace = true } -futures = { workspace = true } +async-channel = { workspace = true } +async-trait = { workspace = true } +futures = { workspace = true } futures-concurrency = { workspace = true } -pin-project-lite = { workspace = true } -thiserror = { workspace = true } -tokio = { workspace = true, features = [ - "sync", - "parking_lot", - "rt-multi-thread", - "time", -] } -tokio-stream = { workspace = true } -tracing = { workspace = true } -uuid = { workspace = true, features = ["v4"] } +pin-project-lite = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["parking_lot", "rt-multi-thread", "sync", "time"] } +tokio-stream = { workspace = true } +tracing = { workspace = true } +uuid = { workspace = true, features = ["v4"] } # Specific Task System dependencies downcast-rs = "1.2" [dev-dependencies] -lending-stream = { workspace = true } -rand = { workspace = true } -rmp-serde = { workspace = true } -serde = { workspace = true, features = ["derive"] } -tempfile = { workspace = true } -thiserror = { workspace = true } -tokio = { workspace = true, features = ["macros", "test-util", "fs"] } -tracing-test = { workspace = true, features = ["no-env-filter"] } -uuid = { workspace = true, features = ["serde"] } +lending-stream = { workspace = true } +rand = { workspace = true } +rmp-serde = { workspace = true } +serde = { workspace = true, features = ["derive"] } +tempfile = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["fs", "macros", "test-util"] } tracing-subscriber = { workspace = true, features = ["env-filter"] } +tracing-test = { workspace = true, features = ["no-env-filter"] } +uuid = { workspace = true, features = ["serde"] } diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index 1294af234..c535b0c0f 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -1,6 +1,7 @@ [package] -name = "sd-utils" +name = "sd-utils" version = "0.1.0" + edition = "2021" [dependencies] @@ -9,6 +10,6 @@ sd-prisma = { path = "../prisma" } # Workspace dependencies prisma-client-rust = { workspace = true } -rspc = { workspace = true, features = ["unstable"] } -thiserror = { workspace = true } -uuid = { workspace = true } +rspc = { workspace = true, features = ["unstable"] } +thiserror = { workspace = true } +uuid = { workspace = true } diff --git a/interface/app/$libraryId/TopBar/TopBarOptions.tsx b/interface/app/$libraryId/TopBar/TopBarOptions.tsx index 99750b435..85274a022 100644 --- a/interface/app/$libraryId/TopBar/TopBarOptions.tsx +++ b/interface/app/$libraryId/TopBar/TopBarOptions.tsx @@ -1,5 +1,5 @@ import { Cards, IconWeight, Minus, Square, X } from '@phosphor-icons/react'; -import { getCurrent, Window } from '@tauri-apps/api/window'; +import { Window } from '@tauri-apps/api/window'; import clsx from 'clsx'; import { useCallback, useEffect, useLayoutEffect, useState } from 'react'; import { ModifierKeys, Popover, Tooltip, usePopover } from '@sd/ui'; @@ -185,7 +185,7 @@ function ToolGroup({ export function WindowsControls({ windowSize }: { windowSize: number }) { const [maximized, setMaximized] = useState(false); const getWindowState = useCallback(async () => { - const isMaximized = await getCurrent().isMaximized(); + const isMaximized = await Window.getCurrent().isMaximized(); setMaximized(isMaximized); }, []); diff --git a/package.json b/package.json index 4b5454b2a..27431ca33 100644 --- a/package.json +++ b/package.json @@ -54,10 +54,11 @@ "@babel/plugin-syntax-import-assertions": "^7.24.1", "@cspell/dict-rust": "^4.0.2", "@cspell/dict-typescript": "^3.1.2", - "@ianvs/prettier-plugin-sort-imports": "^4.2.1", + "@ianvs/prettier-plugin-sort-imports": "^4.3.1", + "@taplo/cli": "^0.7.0", "cspell": "^8.6.0", - "prettier": "^3.2.5", - "prettier-plugin-tailwindcss": "^0.5.12", + "prettier": "^3.3.3", + "prettier-plugin-tailwindcss": "^0.6.6", "turbo": "^1.12.5", "turbo-ignore": "^1.12.5", "typescript": "^5.4.2", @@ -72,5 +73,5 @@ "eslintConfig": { "root": true }, - "packageManager": "pnpm@9.6.0" + "packageManager": "pnpm@9.7.0" } diff --git a/packages/client/src/core.ts b/packages/client/src/core.ts index 98019c02c..598cf8756 100644 --- a/packages/client/src/core.ts +++ b/packages/client/src/core.ts @@ -142,7 +142,7 @@ export type Procedures = { { key: "locations.quickRescan", input: LibraryArgs, result: null } | { key: "notifications.listen", input: never, result: Notification } | { key: "p2p.events", input: never, result: P2PEvent } | - { key: "search.ephemeralPaths", input: LibraryArgs, result: EphemeralPathsResultItem } | + { key: "search.ephemeralPaths", input: LibraryArgs, result: { entries: ExplorerItem[]; errors: Error[] } } | { key: "sync.active", input: LibraryArgs, result: SyncStatus } | { key: "sync.newMessage", input: LibraryArgs, result: null } }; @@ -246,8 +246,6 @@ export type EphemeralPathOrder = { field: "name"; value: SortOrder } | { field: export type EphemeralPathSearchArgs = { path: string; withHiddenFiles: boolean; order?: EphemeralPathOrder | null } -export type EphemeralPathsResultItem = { entries: ExplorerItem[]; errors: Error[] } - export type EphemeralRenameFileArgs = { kind: EphemeralRenameKind } export type EphemeralRenameKind = { One: EphemeralRenameOne } | { Many: EphemeralRenameMany } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c282f204c9313ee71b6802e60027a936f4d128ff..62197e9cf73ba2461747be1596074c28ff6741ca 100644 GIT binary patch delta 5552 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 RAHS}>V{NcqG4tw~{{;rqNYelS delta 5024 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 diff --git a/scripts/autoformat.sh b/scripts/autoformat.sh index d8aa0b87d..5a7b5270f 100755 --- a/scripts/autoformat.sh +++ b/scripts/autoformat.sh @@ -67,6 +67,9 @@ wait pnpm run format & wait +# Format toml files +git ls-tree -r HEAD --name-only | grep '.toml$' | xargs pnpm taplo format + if [ "${1:-}" != "only-frontend" ]; then # Run clippy and formatter for backend cargo clippy --fix --all --all-targets --all-features --allow-dirty --allow-staged diff --git a/turbo.json b/turbo.json index ea9c9edd6..6251e1a18 100644 --- a/turbo.json +++ b/turbo.json @@ -16,5 +16,14 @@ "cache": false } }, - "globalEnv": ["PORT", "NODE_ENV", "GENERATE_SOURCEMAP", "DEV"] + "globalEnv": [ + "PORT", + "NODE_ENV", + "GENERATE_SOURCEMAP", + "DEV", + "VITE_SDSERVER_ORIGIN", + "VITE_SD_DEMO_MODE", + "VITE_SDSERVER_ORIGIN", + "VITE_LANDING_ORIGIN" + ] }