mirror of
https://github.com/modrinth/code.git
synced 2026-08-25 17:14:50 +00:00
* refactor: remove unused legacy onboarded flag * sqlx prepare * feat: add onboarding checklist app db and add vue provider * feat: add welcome page * feat: add onboarding checklist component * feat: move checklist visibility source of truth in app db * feat: split up import modpack button * feat-small: style tweak * feat: remove discover section from homepage and add library * refactor: move welcome screen to component * refactor: move grid display into /library * refactor: rename existing components * refactor: split up the current library page files * feat: add create group modal * feat: add instance group definitions * feat: update accordian for instance groups * feat: add delete group * feat: implement rename instance groups * refactor: move instance group api out * feat: add context menu for groups * feat: style instance items in library * feat: add selected instance item state * feat: implement action bar for selection * feat: drag and drop to move between groups * feat: show ungrouped with header * feat: improve edit group name * small fix * small style fixes * feat: improve selection behaviour * fix: dont toggle group when context menu open * feat: drag and drop multiple selected * small * feat: add remove from group in action bar * feat: add delay on icon hiding in inline input * feat: improve icon hiding delay * fix: bad routes.js * feat: implement sort and filter options * refactor: dont prefix filenames * feat: change open/collapse group target * feat: improve ungrouped behaviour * feat: add shift to select multiple instances * fix: icon disappear transition * feat: add esc while dragging to cancel * feat: update sorting and moved label * feat: update context menu * fix: multiple context menus can be opened * refactor: instance groups to be identified by ID instead of name, names become display data * feat: creating new group always adds instance * feat: create group button, fix instance selection, and increase group name max length * feat: strokes * fix: show getting started checklist in all sidebar * feat: set size on microsoft login screen * fix: use ButtonStyled in Chips component * feat: creating groups with selected instances and fix some moving selection and duplication bugs * pnpm prepr * feat: add tooltip for instance already in group * feat: create instance with content in creation flow modal - search modpack becomes search projects - creation flow modal context receives prepareProjectInstall and createProjectInstall callbacks, from content-install.ts (shared with ContentInstallModal) * feat: update instance card styles * refactor: separate out instance card content * update styles * refactor: instance card * fix: width of instance * feat: update empty state * feat: update sort and grouping dropdowns * feat: better context menu options * feat: add group action buttons * feat: add/remove favourites group * remove manual sort * feat: improve the "New group" jank * feat: add group by instance type and change group sorting * feat: welcome screen styles match figma * feat: not signed in skins demo * feat: new hosting empty state * feat: new instance card style * feat: add tooltip and spice up animation more * feat: improve the transitions for groups after dropping many instances * feat: set instance group membership for bulk moving * feat: remove fade out * fix: allow dragging from buttons inside instance card * fix: library page load in behaviour * small fix * feat: add group ordering and reordering * feat: add drag to reorder groups * fix: switching page not clearing selected instances * style fixes * style fix * fix spacing * feat: jump in changes * feat: add styled newly created instances * feat: improve jump in cards styles * fix: welcome screen style * fix: empty state styles * feat: max 5 jump in items * feat: max new instances to 3 * fix: search icon * feat: clear selection after move * feat: skins list use check icon styles * feat: list will be deleted instances and default sort last played * fix: stroke * remove: no more group settings in instance general settings * fix: resolving modpack server install * feat: icon editor * feat: add three hue shifted variants * fix: surprise me doesnt pick symbol * feat: add customize icon to create instance modal * feat: skins loading state style * fix: welcome logo * fix: copy * fix: left over usage of ButtonStyled from main's refactor * feat: some leaked merge stuff * feat: server empty state styles * remove: instance helper text * remove: auto link in set up stage * feat: auto focus on search when modal open * fix: delete instance modal style * remove: modpack meta repeating * fix: icon * fix: font weight * fix: dropdown filter preview heights * pnpm prepr * fix: sign into modrinth flashing change in position * feat: add avatar transparent corner gets padding * feat: drag and hold over group opens group * feat: add random icon for custom instance * feat: update loading icon * polish: empty state for search * polish: jump in cards * fix: avatar could skip checking for image if tauri loads it first * feat: add icon customize and randomizer in content install modal for add to new instances * fix: avatar cannot read image pixels due to cors * refactor: popup notifications toast type for instance sharing notifications * feat: apply random icons modal and add popup notification for it * polish: style * fix: set_webview_visible * QA * qa * feat: add inner white 15 opacity stroke around avatar * add to catalog * pnpm prepr * fix: app event import * feat: add new icons and backgrounds for icon editor * feat: recents list generate from randomized icons and save icon in editor + icon editor modal fixes * qa * refactor: recipe -> config * fix: event bus * polish * feat: add safe guard against randomizing empty icons * feat: navigate to instance after creation * fix: icon file names * i18n on welcome screen * i18n pass on PR * fix: inconsistent max group name length * refactor: use sqlx macro * feat: add instance icon background selection drag * feat: update catalog order * fix: remove gradient for welcome screen * remove: frog * fix: min width * feat: update corner size * fix: context menu styles * prepr * fix: instance name trimming * reorder * fix: instance card loading state stayed until hovering * feat: add icon randomizer blacklist * blog * prepr --------- Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
406 lines
16 KiB
Rust
406 lines
16 KiB
Rust
use tauri_build::{DefaultPermissionRule, InlinedPlugin};
|
|
|
|
fn main() {
|
|
// Sadly, there is no better way to do it right now
|
|
// You could try parsing source code here and detecting #[tauri::command]
|
|
// But I think it's not worth it
|
|
// https://github.com/tauri-apps/tauri/issues/10075
|
|
tauri_build::try_build(
|
|
tauri_build::Attributes::new()
|
|
.codegen(tauri_build::CodegenContext::new())
|
|
.plugin(
|
|
"auth",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"check_reachable",
|
|
"login",
|
|
"remove_user",
|
|
"get_default_user",
|
|
"set_default_user",
|
|
"get_users",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"cache",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"get_project",
|
|
"get_project_many",
|
|
"get_project_v3",
|
|
"get_project_v3_many",
|
|
"get_version",
|
|
"get_version_many",
|
|
"get_user",
|
|
"get_user_many",
|
|
"get_team",
|
|
"get_team_many",
|
|
"get_organization",
|
|
"get_organization_many",
|
|
"get_search_results",
|
|
"get_search_results_many",
|
|
"get_search_results_v3",
|
|
"get_search_results_v3_many",
|
|
"purge_cache_types",
|
|
"get_project_versions",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"import",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"get_importable_instances",
|
|
"is_valid_importable_instance",
|
|
"get_default_launcher_path",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"jre",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"get_java_versions",
|
|
"set_java_version",
|
|
"jre_find_filtered_jres",
|
|
"jre_get_jre",
|
|
"jre_test_jre",
|
|
"jre_auto_install_java",
|
|
"jre_get_max_memory",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"logs",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"logs_get_logs",
|
|
"logs_get_logs_by_filename",
|
|
"logs_get_output_by_filename",
|
|
"logs_delete_logs",
|
|
"logs_delete_logs_by_filename",
|
|
"logs_get_latest_log_cursor",
|
|
"logs_get_live_log_buffer",
|
|
"logs_clear_live_log_buffer",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"metadata",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"metadata_get_game_versions",
|
|
"metadata_get_loader_versions",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"minecraft-skins",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"get_available_capes",
|
|
"get_available_skins",
|
|
"add_and_equip_custom_skin",
|
|
"equip_skin",
|
|
"remove_custom_skin",
|
|
"save_custom_skin",
|
|
"set_custom_skin_order",
|
|
"unequip_skin",
|
|
"flush_pending_skin_change",
|
|
"flush_pending_skin_change_for_profile",
|
|
"normalize_skin_texture",
|
|
"get_dragged_skin_data",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"mr-auth",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"modrinth_login",
|
|
"logout",
|
|
"get",
|
|
"cancel_modrinth_login",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"onboarding-checklist",
|
|
InlinedPlugin::new()
|
|
.commands(&["get_onboarding_checklist"])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"install",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"install_get_modpack_preview",
|
|
"install_create_instance",
|
|
"install_create_modpack_instance",
|
|
"install_get_shared_instance_preview",
|
|
"install_accept_shared_instance_invite",
|
|
"install_get_shared_instance_update_preview",
|
|
"install_shared_instance",
|
|
"install_update_shared_instance",
|
|
"install_import_instance",
|
|
"install_duplicate_instance",
|
|
"install_existing_instance",
|
|
"install_pack_to_existing_instance",
|
|
"install_job_list",
|
|
"install_job_get",
|
|
"install_job_retry",
|
|
"install_job_cancel",
|
|
"install_job_dismiss",
|
|
"install_job_support_details",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"process",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"process_get_all",
|
|
"process_get_by_instance_id",
|
|
"process_kill",
|
|
"process_wait_for",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"reports",
|
|
InlinedPlugin::new()
|
|
.commands(&["reports_create"])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"instance",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"instance_remove",
|
|
"instance_get",
|
|
"instance_get_many",
|
|
"instance_get_projects",
|
|
"instance_get_installed_project_ids",
|
|
"instance_get_install_candidates",
|
|
"instance_content",
|
|
"instance_get_content_items",
|
|
"instance_refresh_content_updates",
|
|
"instance_get_dependencies_as_content_items",
|
|
"instance_get_linked_modpack_info",
|
|
"instance_get_linked_modpack_content",
|
|
"instance_get_optimal_jre_key",
|
|
"instance_get_full_path",
|
|
"instance_get_mod_full_path",
|
|
"instance_list",
|
|
"instance_list_groups",
|
|
"instance_create_group",
|
|
"instance_rename_group",
|
|
"instance_delete_group",
|
|
"instance_set_group_order",
|
|
"instance_set_group_memberships",
|
|
"instance_check_installed",
|
|
"instance_update_all",
|
|
"instance_update_project",
|
|
"instance_add_project_from_version",
|
|
"instance_install_project_with_dependencies",
|
|
"instance_switch_project_version_with_dependencies",
|
|
"instance_add_project_from_path",
|
|
"instance_is_file_on_modrinth",
|
|
"instance_toggle_disable_project",
|
|
"instance_set_project_locked",
|
|
"instance_remove_project",
|
|
"instance_update_managed_modrinth_version",
|
|
"instance_repair_managed_modrinth",
|
|
"instance_run",
|
|
"instance_kill",
|
|
"instance_edit",
|
|
"instance_edit_icon",
|
|
"instance_edit_generated_icon",
|
|
"instance_cache_generated_icon",
|
|
"instance_get_recent_icon_configs",
|
|
"instance_share_can_current_user_use",
|
|
"instance_share_get_users",
|
|
"instance_share_invite_users",
|
|
"instance_share_create_invite_link",
|
|
"instance_share_get_invites",
|
|
"instance_share_revoke_invite",
|
|
"instance_share_remove_users",
|
|
"instance_share_get_publish_preview",
|
|
"instance_share_publish",
|
|
"instance_share_unlink",
|
|
"instance_share_unpublish",
|
|
"instance_export_mrpack",
|
|
"instance_get_pack_export_candidates",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"settings",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"settings_get",
|
|
"settings_set",
|
|
"cancel_directory_change",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"tags",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"tags_get_categories",
|
|
"tags_get_report_types",
|
|
"tags_get_loaders",
|
|
"tags_get_game_versions",
|
|
"tags_get_donation_platforms",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"shortcuts",
|
|
InlinedPlugin::new()
|
|
.commands(&["create_instance_shortcut"])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"users",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"search_user",
|
|
"get_user_profile",
|
|
"get_user_projects",
|
|
"get_user_organizations",
|
|
"get_user_collections",
|
|
"patch_user",
|
|
"block_user",
|
|
"unblock_user",
|
|
"get_blocked_users",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"utils",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"get_os",
|
|
"is_network_metered",
|
|
"should_disable_mouseover",
|
|
"highlight_in_folder",
|
|
"open_path",
|
|
"show_launcher_logs_folder",
|
|
"show_app_db_backups_folder",
|
|
"progress_bars_list",
|
|
"get_opening_command",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"ads",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"init_ads_window",
|
|
"hide_ads_window",
|
|
"update_ads_window_hold",
|
|
"show_ads_consent_ui",
|
|
"expand_ads_consent_webview",
|
|
"open_ads_consent_preferences",
|
|
"finish_ads_consent_flow",
|
|
"should_show_ads_consent_popup",
|
|
"perform_ads_consent_action",
|
|
"record_ads_click",
|
|
"open_link",
|
|
"get_ads_personalization",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"files",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"file_extract_zip",
|
|
"file_save_as",
|
|
"file_read_dragged_file",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"friends",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"friends",
|
|
"friend_statuses",
|
|
"add_friend",
|
|
"remove_friend",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
)
|
|
.plugin(
|
|
"worlds",
|
|
InlinedPlugin::new()
|
|
.commands(&[
|
|
"get_recent_worlds",
|
|
"get_instance_worlds",
|
|
"get_singleplayer_world",
|
|
"set_world_display_status",
|
|
"rename_world",
|
|
"reset_world_icon",
|
|
"backup_world",
|
|
"delete_world",
|
|
"add_server_to_instance",
|
|
"edit_server_in_instance",
|
|
"remove_server_from_instance",
|
|
"get_instance_protocol_version",
|
|
"get_server_status",
|
|
"start_join_singleplayer_world",
|
|
"start_join_server",
|
|
])
|
|
.default_permission(
|
|
DefaultPermissionRule::AllowAllCommands,
|
|
),
|
|
),
|
|
)
|
|
.expect("Failed to run tauri-build");
|
|
}
|