From 9e9318a596e9f29317526ebfb398c98c519c4092 Mon Sep 17 00:00:00 2001 From: Garrett Webb Date: Fri, 4 Jul 2025 23:28:22 -0400 Subject: [PATCH 1/7] split wrapper into separate args --- packages/app-lib/src/launcher/mod.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/app-lib/src/launcher/mod.rs b/packages/app-lib/src/launcher/mod.rs index 63912b5b95..ace1c8b1e6 100644 --- a/packages/app-lib/src/launcher/mod.rs +++ b/packages/app-lib/src/launcher/mod.rs @@ -563,7 +563,18 @@ pub async fn launch_minecraft( let args = version_info.arguments.clone().unwrap_or_default(); let mut command = match wrapper { Some(hook) => { - let mut command = Command::new(hook); + // Treat first as command and all after as args + let mut hook = hook.split_whitespace(); + let cmd = hook.next().ok_or_else(|| { + crate::ErrorKind::LauncherError( + "Empty wrapper string".to_string(), + ) + })?; + + let mut command = Command::new(cmd); + hook.for_each(|arg| { + command.arg(arg); + }); command.arg(&java_version.path); command } From c7b3c2fd0a0afd73c185d5146cd65dd15eab53a7 Mon Sep 17 00:00:00 2001 From: Garrett Webb Date: Sat, 5 Jul 2025 18:04:08 -0400 Subject: [PATCH 2/7] use shlex to split hooks --- Cargo.lock | 1 + Cargo.toml | 1 + packages/app-lib/Cargo.toml | 1 + packages/app-lib/src/api/profile/mod.rs | 6 +++++- packages/app-lib/src/launcher/mod.rs | 15 ++++++++------- packages/app-lib/src/state/process.rs | 6 +++++- 6 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ee5d851832..d978d28c07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9045,6 +9045,7 @@ dependencies = [ "serde_with", "sha1_smol", "sha2", + "shlex", "sqlx", "sysinfo", "tauri", diff --git a/Cargo.toml b/Cargo.toml index 040e12d0bf..ab92123060 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -133,6 +133,7 @@ serde-xml-rs = "0.8.1" # Also an XML (de)serializer, consider dropping yaserde sha1 = "0.10.6" sha1_smol = { version = "1.0.1", features = ["std"] } sha2 = "0.10.9" +shlex = "1.3.0" spdx = "0.10.8" sqlx = { version = "0.8.6", default-features = false } sysinfo = { version = "0.35.2", default-features = false } diff --git a/packages/app-lib/Cargo.toml b/packages/app-lib/Cargo.toml index c279f0689e..cbaff576ab 100644 --- a/packages/app-lib/Cargo.toml +++ b/packages/app-lib/Cargo.toml @@ -27,6 +27,7 @@ hashlink.workspace = true png.workspace = true bytemuck.workspace = true rgb.workspace = true +shlex.workspace = true chrono = { workspace = true, features = ["serde"] } daedalus.workspace = true diff --git a/packages/app-lib/src/api/profile/mod.rs b/packages/app-lib/src/api/profile/mod.rs index da12fe309b..0f5dec855d 100644 --- a/packages/app-lib/src/api/profile/mod.rs +++ b/packages/app-lib/src/api/profile/mod.rs @@ -664,7 +664,11 @@ async fn run_credentials( .filter(|hook_command| !hook_command.is_empty()); if let Some(hook) = pre_launch_hooks { // TODO: hook parameters - let mut cmd = hook.split(' '); + let mut cmd = shlex::split(hook) + .ok_or(crate::ErrorKind::LauncherError( + "Unable to parse pre-launch hook".to_string(), + ))? + .into_iter(); if let Some(command) = cmd.next() { let full_path = get_full_path(&profile.path).await?; let result = Command::new(command) diff --git a/packages/app-lib/src/launcher/mod.rs b/packages/app-lib/src/launcher/mod.rs index ace1c8b1e6..39e464b940 100644 --- a/packages/app-lib/src/launcher/mod.rs +++ b/packages/app-lib/src/launcher/mod.rs @@ -563,13 +563,14 @@ pub async fn launch_minecraft( let args = version_info.arguments.clone().unwrap_or_default(); let mut command = match wrapper { Some(hook) => { - // Treat first as command and all after as args - let mut hook = hook.split_whitespace(); - let cmd = hook.next().ok_or_else(|| { - crate::ErrorKind::LauncherError( - "Empty wrapper string".to_string(), - ) - })?; + let mut hook = shlex::split(hook) + .ok_or(crate::ErrorKind::LauncherError( + "Unable to parse wrapper hook".to_string(), + ))? + .into_iter(); + let cmd = hook.next().ok_or(crate::ErrorKind::LauncherError( + "Empty wrapper hook".to_string(), + ))?; let mut command = Command::new(cmd); hook.for_each(|arg| { diff --git a/packages/app-lib/src/state/process.rs b/packages/app-lib/src/state/process.rs index a4727468c1..45ce995b70 100644 --- a/packages/app-lib/src/state/process.rs +++ b/packages/app-lib/src/state/process.rs @@ -711,7 +711,11 @@ impl Process { // We do not wait on the post exist command to finish running! We let it spawn + run on its own. // This behaviour may be changed in the future if let Some(hook) = post_exit_command { - let mut cmd = hook.split(' '); + let mut cmd = shlex::split(&hook) + .ok_or(crate::ErrorKind::LauncherError( + "Unable to parse post-exit hook".to_string(), + ))? + .into_iter(); if let Some(command) = cmd.next() { let mut command = Command::new(command); command.args(cmd).current_dir( From c6841b810a8d9137a10a724b323d077c0a3b9c83 Mon Sep 17 00:00:00 2001 From: Garrett Webb Date: Sun, 6 Jul 2025 17:44:20 -0400 Subject: [PATCH 3/7] add wrapper type flag + migration --- ...f27acd240bb2ff3e07dee962bf67e20f81f36.json | 12 ++++ ...6b2b27efc6a0433bab1d4bbe10c69fd417494.json | 12 ++++ ...cd3910b1719f433a0c34d40415dd7681ab272.json | 32 ++++++++++ ...24ed28df292a063d615514c67a38301d71806.json | 12 ++++ ...2dfc577061b92479ce96ffb30a457939b5ffe.json | 38 ++++++++++++ ...cf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json | 12 ++++ ...7b54a186b98796ec549c9d891089ea33cf3fc.json | 38 ++++++++++++ ...6dd3eed86ba421c83e74fe284609a8020bd22.json | 12 ++++ ...e36adca581f8ad1b90f85d3ec3d92ec61e65e.json | 44 +++++++++++++ ...78c4e5c108c62462f16e8f3a84f4efabd529c.json | 12 ++++ ...fbdbd066d51f88cd2bcfed613f756edbd2944.json | 12 ++++ ...22546583aa19ea7088682d718c64ed5d5f1c5.json | 20 ++++++ ...f5bd5aeacec7d0a8abd640a7365902e57a2fd.json | 12 ++++ ...1055fe47287d7f99be41215c25c1019d439b9.json | 12 ++++ ...b712aba58908a66dd7bbd64c293b9ee7a1523.json | 12 ++++ ...4a8f1543f6b962e54ecab491a006d28c9a18c.json | 38 ++++++++++++ ...33e6dc5b1d46f9c2454075eefe8df9a38f582.json | 12 ++++ ...7c51c77946643b8f912fe265207da275a280f.json | 12 ++++ ...21065f5e35f321954a9d5ae9cde907d5ce823.json | 38 ++++++++++++ ...cdcf73da199ea6ac05ee3ee798ece80d877cf.json | 62 +++++++++++++++++++ ...b8cea926ac6c65d613904eff1d740df30acda.json | 50 +++++++++++++++ ...9c3ae945bc499b4229906c487533d1dcb280c.json | 12 ++++ ...ae58e2d7a414e76906700518806e494cd0246.json | 20 ++++++ ...28a597e90c2bf7ce5dc1b39edb6977e2f6da6.json | 20 ++++++ ...68169cfd8226b57bacd8c270d7777fc6883ac.json | 32 ++++++++++ ...131168e87bb37aa65c2156ad2cb6198426d8c.json | 50 +++++++++++++++ ...d8217f8c46b816a2f4e60c11dfcd173120e7e.json | 12 ++++ ...2899303d9b82b1ecd2e30dc71b411ee538f54.json | 12 ++++ ...1828ee58a724f06a91633b8a40b4e04d0b9a0.json | 12 ++++ ...dd18a4900021ee6ccfc165c9a6dad41046cba.json | 12 ++++ ...b878b6789927df5adf50986fe642c8afcb681.json | 12 ++++ ...64f627ae744a20acf5affaa729e68e3eb6641.json | 12 ++++ ...7674be5035f385e0d85e759d4bbf9bca54f20.json | 12 ++++ ...d1821b46d60f5cb79685c489aaebf13b35d24.json | 12 ++++ ...f07f736c5772045b973dcc10573b399111344.json | 32 ++++++++++ ...8f4ec2e248f751f98140f77bea4f9d5971ef1.json | 12 ---- ...c24bb959a1281e19389ee5336c5e92affcbff.json | 12 ++++ ...8b057f10c4901bb39165a5108633a1117b93.json} | 6 +- ...9cdd6a9c539f473f4391d8dca4339c45cb81.json} | 12 +++- ...cdcf73da199ea6ac05ee3ee798ece80d877cf.json | 2 +- ...cf48e157e24811cef6837e41ba10902d6ea8.json} | 12 +++- ...972c7085cacc3f4da5edfb6fcda6c68ea14a.json} | 22 ++++--- .../20250705153720_wrapper_args.sql | 2 + packages/app-lib/src/api/profile/create.rs | 5 +- .../app-lib/src/state/legacy_converter.rs | 3 +- packages/app-lib/src/state/profiles.rs | 24 ++++--- packages/app-lib/src/state/settings.rs | 46 +++++++++++--- 47 files changed, 876 insertions(+), 48 deletions(-) create mode 100644 .sqlx/query-0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36.json create mode 100644 .sqlx/query-12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494.json create mode 100644 .sqlx/query-1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272.json create mode 100644 .sqlx/query-169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806.json create mode 100644 .sqlx/query-18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe.json create mode 100644 .sqlx/query-1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json create mode 100644 .sqlx/query-265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc.json create mode 100644 .sqlx/query-27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22.json create mode 100644 .sqlx/query-28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e.json create mode 100644 .sqlx/query-31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c.json create mode 100644 .sqlx/query-3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944.json create mode 100644 .sqlx/query-3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5.json create mode 100644 .sqlx/query-45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd.json create mode 100644 .sqlx/query-4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9.json create mode 100644 .sqlx/query-545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523.json create mode 100644 .sqlx/query-54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c.json create mode 100644 .sqlx/query-554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582.json create mode 100644 .sqlx/query-55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f.json create mode 100644 .sqlx/query-6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823.json create mode 100644 .sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json create mode 100644 .sqlx/query-727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda.json create mode 100644 .sqlx/query-81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c.json create mode 100644 .sqlx/query-957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246.json create mode 100644 .sqlx/query-a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6.json create mode 100644 .sqlx/query-aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac.json create mode 100644 .sqlx/query-bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c.json create mode 100644 .sqlx/query-d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e.json create mode 100644 .sqlx/query-d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54.json create mode 100644 .sqlx/query-d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0.json create mode 100644 .sqlx/query-df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba.json create mode 100644 .sqlx/query-e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681.json create mode 100644 .sqlx/query-e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641.json create mode 100644 .sqlx/query-faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20.json create mode 100644 .sqlx/query-fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24.json create mode 100644 .sqlx/query-fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344.json delete mode 100644 packages/app-lib/.sqlx/query-27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1.json create mode 100644 packages/app-lib/.sqlx/query-326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff.json rename packages/app-lib/.sqlx/{query-3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c.json => query-3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93.json} (68%) rename packages/app-lib/.sqlx/{query-c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9.json => query-59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81.json} (92%) rename packages/app-lib/.sqlx/{query-6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929.json => query-8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8.json} (92%) rename packages/app-lib/.sqlx/{query-5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca.json => query-dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a.json} (90%) create mode 100644 packages/app-lib/migrations/20250705153720_wrapper_args.sql diff --git a/.sqlx/query-0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36.json b/.sqlx/query-0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36.json new file mode 100644 index 0000000000..8ea80ee3bd --- /dev/null +++ b/.sqlx/query-0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO minecraft_device_tokens (id, uuid, private_key, x, y, issue_instant, not_after, token, display_claims)\n VALUES (0, $1, $2, $3, $4, $5, $6, $7, $8)\n ON CONFLICT (id) DO UPDATE SET\n uuid = $1,\n private_key = $2,\n x = $3,\n y = $4,\n issue_instant = $5,\n not_after = $6,\n token = $7,\n display_claims = jsonb($8)\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 8 + }, + "nullable": [] + }, + "hash": "0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36" +} diff --git a/.sqlx/query-12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494.json b/.sqlx/query-12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494.json new file mode 100644 index 0000000000..318328de4c --- /dev/null +++ b/.sqlx/query-12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n UPDATE minecraft_users\n SET active = FALSE\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 0 + }, + "nullable": [] + }, + "hash": "12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494" +} diff --git a/.sqlx/query-1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272.json b/.sqlx/query-1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272.json new file mode 100644 index 0000000000..ead9ab9ae7 --- /dev/null +++ b/.sqlx/query-1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272.json @@ -0,0 +1,32 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT\n full_version, architecture, path\n FROM java_versions\n WHERE major_version = $1\n ", + "describe": { + "columns": [ + { + "name": "full_version", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "architecture", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "path", + "ordinal": 2, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false + ] + }, + "hash": "1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272" +} diff --git a/.sqlx/query-169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806.json b/.sqlx/query-169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806.json new file mode 100644 index 0000000000..6390c904a6 --- /dev/null +++ b/.sqlx/query-169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n DELETE FROM profiles\n WHERE path = $1\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806" +} diff --git a/.sqlx/query-18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe.json b/.sqlx/query-18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe.json new file mode 100644 index 0000000000..d3a1024c10 --- /dev/null +++ b/.sqlx/query-18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe.json @@ -0,0 +1,38 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT\n id, active, session_id, expires\n FROM modrinth_users\n WHERE active = TRUE\n ", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "active", + "ordinal": 1, + "type_info": "Integer" + }, + { + "name": "session_id", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "expires", + "ordinal": 3, + "type_info": "Integer" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe" +} diff --git a/.sqlx/query-1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json b/.sqlx/query-1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json new file mode 100644 index 0000000000..01e5e90d4c --- /dev/null +++ b/.sqlx/query-1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n DELETE FROM attached_world_data\n WHERE profile_path = $1 and world_type = $2 and world_id = $3\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 3 + }, + "nullable": [] + }, + "hash": "1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82" +} diff --git a/.sqlx/query-265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc.json b/.sqlx/query-265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc.json new file mode 100644 index 0000000000..c5c27d5d31 --- /dev/null +++ b/.sqlx/query-265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc.json @@ -0,0 +1,38 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT\n major_version, full_version, architecture, path\n FROM java_versions\n ", + "describe": { + "columns": [ + { + "name": "major_version", + "ordinal": 0, + "type_info": "Integer" + }, + { + "name": "full_version", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "architecture", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "path", + "ordinal": 3, + "type_info": "Text" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc" +} diff --git a/.sqlx/query-27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22.json b/.sqlx/query-27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22.json new file mode 100644 index 0000000000..26c250c785 --- /dev/null +++ b/.sqlx/query-27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "DELETE FROM default_minecraft_capes WHERE minecraft_user_uuid = ?", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22" +} diff --git a/.sqlx/query-28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e.json b/.sqlx/query-28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e.json new file mode 100644 index 0000000000..f2386dfbaf --- /dev/null +++ b/.sqlx/query-28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e.json @@ -0,0 +1,44 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT id, data_type, json(data) as \"data?: serde_json::Value\", alias, expires\n FROM cache\n WHERE data_type = $1 AND (\n id IN (SELECT value FROM json_each($2))\n OR\n alias IN (SELECT value FROM json_each($3))\n )\n ", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "data_type", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "data?: serde_json::Value", + "ordinal": 2, + "type_info": "Null" + }, + { + "name": "alias", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "expires", + "ordinal": 4, + "type_info": "Integer" + } + ], + "parameters": { + "Right": 3 + }, + "nullable": [ + false, + false, + null, + true, + false + ] + }, + "hash": "28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e" +} diff --git a/.sqlx/query-31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c.json b/.sqlx/query-31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c.json new file mode 100644 index 0000000000..90e1b19378 --- /dev/null +++ b/.sqlx/query-31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n DELETE FROM cache\n WHERE data_type IN (SELECT value FROM json_each($1))\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c" +} diff --git a/.sqlx/query-3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944.json b/.sqlx/query-3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944.json new file mode 100644 index 0000000000..cf3645df13 --- /dev/null +++ b/.sqlx/query-3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "INSERT OR REPLACE INTO default_minecraft_capes (minecraft_user_uuid, id) VALUES (?, ?)", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944" +} diff --git a/.sqlx/query-3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5.json b/.sqlx/query-3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5.json new file mode 100644 index 0000000000..f34447870a --- /dev/null +++ b/.sqlx/query-3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5.json @@ -0,0 +1,20 @@ +{ + "db_name": "SQLite", + "query": "SELECT texture FROM custom_minecraft_skin_textures WHERE texture_key = ?", + "describe": { + "columns": [ + { + "name": "texture", + "ordinal": 0, + "type_info": "Blob" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false + ] + }, + "hash": "3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5" +} diff --git a/.sqlx/query-45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd.json b/.sqlx/query-45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd.json new file mode 100644 index 0000000000..f39791c80f --- /dev/null +++ b/.sqlx/query-45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n UPDATE modrinth_users\n SET active = FALSE\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 0 + }, + "nullable": [] + }, + "hash": "45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd" +} diff --git a/.sqlx/query-4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9.json b/.sqlx/query-4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9.json new file mode 100644 index 0000000000..4b7932bbec --- /dev/null +++ b/.sqlx/query-4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "INSERT OR REPLACE INTO custom_minecraft_skins (minecraft_user_uuid, texture_key, variant, cape_id) VALUES (?, ?, ?, ?)", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9" +} diff --git a/.sqlx/query-545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523.json b/.sqlx/query-545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523.json new file mode 100644 index 0000000000..ee92d633c4 --- /dev/null +++ b/.sqlx/query-545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "INSERT OR REPLACE INTO custom_minecraft_skin_textures (texture_key, texture) VALUES (?, ?)", + "describe": { + "columns": [], + "parameters": { + "Right": 2 + }, + "nullable": [] + }, + "hash": "545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523" +} diff --git a/.sqlx/query-54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c.json b/.sqlx/query-54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c.json new file mode 100644 index 0000000000..aaea116c7f --- /dev/null +++ b/.sqlx/query-54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c.json @@ -0,0 +1,38 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT profile_path, host, port, join_time\n FROM join_log\n WHERE profile_path = $1\n ", + "describe": { + "columns": [ + { + "name": "profile_path", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "host", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "port", + "ordinal": 2, + "type_info": "Integer" + }, + { + "name": "join_time", + "ordinal": 3, + "type_info": "Integer" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c" +} diff --git a/.sqlx/query-554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582.json b/.sqlx/query-554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582.json new file mode 100644 index 0000000000..40eb2923d9 --- /dev/null +++ b/.sqlx/query-554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n DELETE FROM modrinth_users WHERE id = $1\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582" +} diff --git a/.sqlx/query-55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f.json b/.sqlx/query-55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f.json new file mode 100644 index 0000000000..94bfffeddd --- /dev/null +++ b/.sqlx/query-55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO java_versions (major_version, full_version, architecture, path)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (major_version) DO UPDATE SET\n full_version = $2,\n architecture = $3,\n path = $4\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f" +} diff --git a/.sqlx/query-6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823.json b/.sqlx/query-6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823.json new file mode 100644 index 0000000000..2826fb40ac --- /dev/null +++ b/.sqlx/query-6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823.json @@ -0,0 +1,38 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT\n id, active, session_id, expires\n FROM modrinth_users\n ", + "describe": { + "columns": [ + { + "name": "id", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "active", + "ordinal": 1, + "type_info": "Integer" + }, + { + "name": "session_id", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "expires", + "ordinal": 3, + "type_info": "Integer" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false + ] + }, + "hash": "6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823" +} diff --git a/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json b/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json new file mode 100644 index 0000000000..22e39e75b8 --- /dev/null +++ b/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json @@ -0,0 +1,62 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT\n uuid, private_key, x, y, issue_instant, not_after, token, json(display_claims) as \"display_claims!: serde_json::Value\"\n FROM minecraft_device_tokens\n ", + "describe": { + "columns": [ + { + "name": "uuid", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "private_key", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "x", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "y", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "issue_instant", + "ordinal": 4, + "type_info": "Integer" + }, + { + "name": "not_after", + "ordinal": 5, + "type_info": "Integer" + }, + { + "name": "token", + "ordinal": 6, + "type_info": "Text" + }, + { + "name": "display_claims!: serde_json::Value", + "ordinal": 7, + "type_info": "Text" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + false, + false, + null + ] + }, + "hash": "6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf" +} diff --git a/.sqlx/query-727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda.json b/.sqlx/query-727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda.json new file mode 100644 index 0000000000..6bea4035d0 --- /dev/null +++ b/.sqlx/query-727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda.json @@ -0,0 +1,50 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT\n uuid, active, username, access_token, refresh_token, expires\n FROM minecraft_users\n ", + "describe": { + "columns": [ + { + "name": "uuid", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "active", + "ordinal": 1, + "type_info": "Integer" + }, + { + "name": "username", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "access_token", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "refresh_token", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "expires", + "ordinal": 5, + "type_info": "Integer" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + false + ] + }, + "hash": "727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda" +} diff --git a/.sqlx/query-81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c.json b/.sqlx/query-81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c.json new file mode 100644 index 0000000000..2d514c0613 --- /dev/null +++ b/.sqlx/query-81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO modrinth_users (id, active, session_id, expires)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (id) DO UPDATE SET\n active = $2,\n session_id = $3,\n expires = $4\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c" +} diff --git a/.sqlx/query-957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246.json b/.sqlx/query-957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246.json new file mode 100644 index 0000000000..2c946cb4ec --- /dev/null +++ b/.sqlx/query-957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246.json @@ -0,0 +1,20 @@ +{ + "db_name": "SQLite", + "query": "SELECT id AS 'id: Hyphenated' FROM default_minecraft_capes WHERE minecraft_user_uuid = ?", + "describe": { + "columns": [ + { + "name": "id: Hyphenated", + "ordinal": 0, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false + ] + }, + "hash": "957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246" +} diff --git a/.sqlx/query-a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6.json b/.sqlx/query-a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6.json new file mode 100644 index 0000000000..355af23d3e --- /dev/null +++ b/.sqlx/query-a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6.json @@ -0,0 +1,20 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT display_status\n FROM attached_world_data\n WHERE profile_path = $1 and world_type = $2 and world_id = $3\n ", + "describe": { + "columns": [ + { + "name": "display_status", + "ordinal": 0, + "type_info": "Text" + } + ], + "parameters": { + "Right": 3 + }, + "nullable": [ + false + ] + }, + "hash": "a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6" +} diff --git a/.sqlx/query-aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac.json b/.sqlx/query-aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac.json new file mode 100644 index 0000000000..4d0c3892f3 --- /dev/null +++ b/.sqlx/query-aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac.json @@ -0,0 +1,32 @@ +{ + "db_name": "SQLite", + "query": "SELECT texture_key, variant AS 'variant: MinecraftSkinVariant', cape_id AS 'cape_id: Hyphenated' FROM custom_minecraft_skins WHERE minecraft_user_uuid = ? ORDER BY rowid ASC LIMIT ? OFFSET ?", + "describe": { + "columns": [ + { + "name": "texture_key", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "variant: MinecraftSkinVariant", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "cape_id: Hyphenated", + "ordinal": 2, + "type_info": "Text" + } + ], + "parameters": { + "Right": 3 + }, + "nullable": [ + false, + false, + true + ] + }, + "hash": "aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac" +} diff --git a/.sqlx/query-bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c.json b/.sqlx/query-bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c.json new file mode 100644 index 0000000000..754b62c990 --- /dev/null +++ b/.sqlx/query-bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c.json @@ -0,0 +1,50 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT\n uuid, active, username, access_token, refresh_token, expires\n FROM minecraft_users\n WHERE active = TRUE\n ", + "describe": { + "columns": [ + { + "name": "uuid", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "active", + "ordinal": 1, + "type_info": "Integer" + }, + { + "name": "username", + "ordinal": 2, + "type_info": "Text" + }, + { + "name": "access_token", + "ordinal": 3, + "type_info": "Text" + }, + { + "name": "refresh_token", + "ordinal": 4, + "type_info": "Text" + }, + { + "name": "expires", + "ordinal": 5, + "type_info": "Integer" + } + ], + "parameters": { + "Right": 0 + }, + "nullable": [ + false, + false, + false, + false, + false, + false + ] + }, + "hash": "bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c" +} diff --git a/.sqlx/query-d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e.json b/.sqlx/query-d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e.json new file mode 100644 index 0000000000..51980a60ce --- /dev/null +++ b/.sqlx/query-d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n DELETE FROM minecraft_users WHERE uuid = $1\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e" +} diff --git a/.sqlx/query-d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54.json b/.sqlx/query-d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54.json new file mode 100644 index 0000000000..93cb5c0523 --- /dev/null +++ b/.sqlx/query-d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO cache (id, data_type, alias, data, expires)\n SELECT\n json_extract(value, '$.id') AS id,\n json_extract(value, '$.data_type') AS data_type,\n json_extract(value, '$.alias') AS alias,\n json_extract(value, '$.data') AS data,\n json_extract(value, '$.expires') AS expires\n FROM\n json_each($1)\n WHERE TRUE\n ON CONFLICT (id, data_type) DO UPDATE SET\n alias = excluded.alias,\n data = excluded.data,\n expires = excluded.expires\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 1 + }, + "nullable": [] + }, + "hash": "d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54" +} diff --git a/.sqlx/query-d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0.json b/.sqlx/query-d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0.json new file mode 100644 index 0000000000..4c8f4f8e3d --- /dev/null +++ b/.sqlx/query-d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO minecraft_users (uuid, active, username, access_token, refresh_token, expires)\n VALUES ($1, $2, $3, $4, $5, $6)\n ON CONFLICT (uuid) DO UPDATE SET\n active = $2,\n username = $3,\n access_token = $4,\n refresh_token = $5,\n expires = $6\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 6 + }, + "nullable": [] + }, + "hash": "d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0" +} diff --git a/.sqlx/query-df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba.json b/.sqlx/query-df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba.json new file mode 100644 index 0000000000..03dcf69e97 --- /dev/null +++ b/.sqlx/query-df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "INSERT INTO attached_world_data (profile_path, world_type, world_id, display_status)\nVALUES ($1, $2, $3, $4)\nON CONFLICT (profile_path, world_type, world_id) DO UPDATE\n SET display_status = $4", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba" +} diff --git a/.sqlx/query-e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681.json b/.sqlx/query-e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681.json new file mode 100644 index 0000000000..a09ac2ff77 --- /dev/null +++ b/.sqlx/query-e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "DELETE FROM default_minecraft_capes WHERE minecraft_user_uuid NOT IN (SELECT uuid FROM minecraft_users)", + "describe": { + "columns": [], + "parameters": { + "Right": 0 + }, + "nullable": [] + }, + "hash": "e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681" +} diff --git a/.sqlx/query-e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641.json b/.sqlx/query-e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641.json new file mode 100644 index 0000000000..017a851664 --- /dev/null +++ b/.sqlx/query-e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO join_log (profile_path, host, port, join_time)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (profile_path, host, port) DO UPDATE SET\n join_time = $4\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641" +} diff --git a/.sqlx/query-faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20.json b/.sqlx/query-faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20.json new file mode 100644 index 0000000000..ad85646245 --- /dev/null +++ b/.sqlx/query-faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "DELETE FROM custom_minecraft_skins WHERE minecraft_user_uuid = ? AND texture_key = ? AND variant = ? AND cape_id IS ?", + "describe": { + "columns": [], + "parameters": { + "Right": 4 + }, + "nullable": [] + }, + "hash": "faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20" +} diff --git a/.sqlx/query-fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24.json b/.sqlx/query-fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24.json new file mode 100644 index 0000000000..ee41aad88b --- /dev/null +++ b/.sqlx/query-fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "DELETE FROM custom_minecraft_skins WHERE minecraft_user_uuid NOT IN (SELECT uuid FROM minecraft_users)", + "describe": { + "columns": [], + "parameters": { + "Right": 0 + }, + "nullable": [] + }, + "hash": "fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24" +} diff --git a/.sqlx/query-fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344.json b/.sqlx/query-fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344.json new file mode 100644 index 0000000000..9c963789c9 --- /dev/null +++ b/.sqlx/query-fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344.json @@ -0,0 +1,32 @@ +{ + "db_name": "SQLite", + "query": "\n SELECT world_type, world_id, display_status\n FROM attached_world_data\n WHERE profile_path = $1\n ", + "describe": { + "columns": [ + { + "name": "world_type", + "ordinal": 0, + "type_info": "Text" + }, + { + "name": "world_id", + "ordinal": 1, + "type_info": "Text" + }, + { + "name": "display_status", + "ordinal": 2, + "type_info": "Text" + } + ], + "parameters": { + "Right": 1 + }, + "nullable": [ + false, + false, + false + ] + }, + "hash": "fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344" +} diff --git a/packages/app-lib/.sqlx/query-27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1.json b/packages/app-lib/.sqlx/query-27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1.json deleted file mode 100644 index 9c98034023..0000000000 --- a/packages/app-lib/.sqlx/query-27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO profiles (\n path, install_stage, name, icon_path,\n game_version, mod_loader, mod_loader_version,\n groups,\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path, override_extra_launch_args, override_custom_env_vars,\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit,\n protocol_version, launcher_feature_version\n )\n VALUES (\n $1, $2, $3, $4,\n $5, $6, $7,\n jsonb($8),\n $9, $10, $11,\n $12, $13, $14,\n $15, $16,\n $17, jsonb($18), jsonb($19),\n $20, $21, $22, $23,\n $24, $25, $26,\n $27, $28\n )\n ON CONFLICT (path) DO UPDATE SET\n install_stage = $2,\n name = $3,\n icon_path = $4,\n\n game_version = $5,\n mod_loader = $6,\n mod_loader_version = $7,\n\n groups = jsonb($8),\n\n linked_project_id = $9,\n linked_version_id = $10,\n locked = $11,\n\n created = $12,\n modified = $13,\n last_played = $14,\n\n submitted_time_played = $15,\n recent_time_played = $16,\n\n override_java_path = $17,\n override_extra_launch_args = jsonb($18),\n override_custom_env_vars = jsonb($19),\n override_mc_memory_max = $20,\n override_mc_force_fullscreen = $21,\n override_mc_game_resolution_x = $22,\n override_mc_game_resolution_y = $23,\n\n override_hook_pre_launch = $24,\n override_hook_wrapper = $25,\n override_hook_post_exit = $26,\n\n protocol_version = $27,\n launcher_feature_version = $28\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 28 - }, - "nullable": [] - }, - "hash": "27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1" -} diff --git a/packages/app-lib/.sqlx/query-326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff.json b/packages/app-lib/.sqlx/query-326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff.json new file mode 100644 index 0000000000..18d3a891b0 --- /dev/null +++ b/packages/app-lib/.sqlx/query-326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO profiles (\n path, install_stage, name, icon_path,\n game_version, mod_loader, mod_loader_version,\n groups,\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path, override_extra_launch_args, override_custom_env_vars,\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit,\n protocol_version, launcher_feature_version\n )\n VALUES (\n $1, $2, $3, $4,\n $5, $6, $7,\n jsonb($8),\n $9, $10, $11,\n $12, $13, $14,\n $15, $16,\n $17, jsonb($18), jsonb($19),\n $20, $21, $22, $23,\n $24, $25, $26, $27,\n $28, $29\n )\n ON CONFLICT (path) DO UPDATE SET\n install_stage = $2,\n name = $3,\n icon_path = $4,\n\n game_version = $5,\n mod_loader = $6,\n mod_loader_version = $7,\n\n groups = jsonb($8),\n\n linked_project_id = $9,\n linked_version_id = $10,\n locked = $11,\n\n created = $12,\n modified = $13,\n last_played = $14,\n\n submitted_time_played = $15,\n recent_time_played = $16,\n\n override_java_path = $17,\n override_extra_launch_args = jsonb($18),\n override_custom_env_vars = jsonb($19),\n override_mc_memory_max = $20,\n override_mc_force_fullscreen = $21,\n override_mc_game_resolution_x = $22,\n override_mc_game_resolution_y = $23,\n\n override_hook_pre_launch = $24,\n override_hook_wrapper = $25,\n override_hook_wrapper_type = $26,\n override_hook_post_exit = $27,\n\n protocol_version = $28,\n launcher_feature_version = $29\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 29 + }, + "nullable": [] + }, + "hash": "326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff" +} diff --git a/packages/app-lib/.sqlx/query-3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c.json b/packages/app-lib/.sqlx/query-3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93.json similarity index 68% rename from packages/app-lib/.sqlx/query-3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c.json rename to packages/app-lib/.sqlx/query-3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93.json index 2fce764bca..559c93de62 100644 --- a/packages/app-lib/.sqlx/query-3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c.json +++ b/packages/app-lib/.sqlx/query-3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93.json @@ -1,12 +1,12 @@ { "db_name": "SQLite", - "query": "\n UPDATE settings\n SET\n max_concurrent_writes = $1,\n max_concurrent_downloads = $2,\n\n theme = $3,\n default_page = $4,\n collapsed_navigation = $5,\n advanced_rendering = $6,\n native_decorations = $7,\n\n discord_rpc = $8,\n developer_mode = $9,\n telemetry = $10,\n personalized_ads = $11,\n\n onboarded = $12,\n\n extra_launch_args = jsonb($13),\n custom_env_vars = jsonb($14),\n mc_memory_max = $15,\n mc_force_fullscreen = $16,\n mc_game_resolution_x = $17,\n mc_game_resolution_y = $18,\n hide_on_process_start = $19,\n\n hook_pre_launch = $20,\n hook_wrapper = $21,\n hook_post_exit = $22,\n\n custom_dir = $23,\n prev_custom_dir = $24,\n migrated = $25,\n\n toggle_sidebar = $26,\n feature_flags = $27,\n hide_nametag_skins_page = $28\n ", + "query": "\n UPDATE settings\n SET\n max_concurrent_writes = $1,\n max_concurrent_downloads = $2,\n\n theme = $3,\n default_page = $4,\n collapsed_navigation = $5,\n advanced_rendering = $6,\n native_decorations = $7,\n\n discord_rpc = $8,\n developer_mode = $9,\n telemetry = $10,\n personalized_ads = $11,\n\n onboarded = $12,\n\n extra_launch_args = jsonb($13),\n custom_env_vars = jsonb($14),\n mc_memory_max = $15,\n mc_force_fullscreen = $16,\n mc_game_resolution_x = $17,\n mc_game_resolution_y = $18,\n hide_on_process_start = $19,\n\n hook_pre_launch = $20,\n hook_wrapper = $21,\n hook_wrapper_type = $22,\n hook_post_exit = $23,\n\n custom_dir = $24,\n prev_custom_dir = $25,\n migrated = $26,\n\n toggle_sidebar = $27,\n feature_flags = $28,\n hide_nametag_skins_page = $29\n ", "describe": { "columns": [], "parameters": { - "Right": 28 + "Right": 29 }, "nullable": [] }, - "hash": "3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c" + "hash": "3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93" } diff --git a/packages/app-lib/.sqlx/query-c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9.json b/packages/app-lib/.sqlx/query-59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81.json similarity index 92% rename from packages/app-lib/.sqlx/query-c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9.json rename to packages/app-lib/.sqlx/query-59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81.json index 75b44104e7..becf037fe6 100644 --- a/packages/app-lib/.sqlx/query-c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9.json +++ b/packages/app-lib/.sqlx/query-59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n SELECT\n path, install_stage, launcher_feature_version, name, icon_path,\n game_version, protocol_version, mod_loader, mod_loader_version,\n json(groups) as \"groups!: serde_json::Value\",\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path,\n json(override_extra_launch_args) as \"override_extra_launch_args!: serde_json::Value\", json(override_custom_env_vars) as \"override_custom_env_vars!: serde_json::Value\",\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit\n FROM profiles\n WHERE 1=$1", + "query": "\n SELECT\n path, install_stage, launcher_feature_version, name, icon_path,\n game_version, protocol_version, mod_loader, mod_loader_version,\n json(groups) as \"groups!: serde_json::Value\",\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path,\n json(override_extra_launch_args) as \"override_extra_launch_args!: serde_json::Value\", json(override_custom_env_vars) as \"override_custom_env_vars!: serde_json::Value\",\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit\n FROM profiles\n WHERE 1=$1", "describe": { "columns": [ { @@ -139,9 +139,14 @@ "type_info": "Text" }, { - "name": "override_hook_post_exit", + "name": "override_hook_wrapper_type", "ordinal": 27, "type_info": "Text" + }, + { + "name": "override_hook_post_exit", + "ordinal": 28, + "type_info": "Text" } ], "parameters": { @@ -175,8 +180,9 @@ true, true, true, + false, true ] }, - "hash": "c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9" + "hash": "59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81" } diff --git a/packages/app-lib/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json b/packages/app-lib/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json index 9742cb7b47..22e39e75b8 100644 --- a/packages/app-lib/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json +++ b/packages/app-lib/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json @@ -41,7 +41,7 @@ { "name": "display_claims!: serde_json::Value", "ordinal": 7, - "type_info": "Null" + "type_info": "Text" } ], "parameters": { diff --git a/packages/app-lib/.sqlx/query-6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929.json b/packages/app-lib/.sqlx/query-8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8.json similarity index 92% rename from packages/app-lib/.sqlx/query-6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929.json rename to packages/app-lib/.sqlx/query-8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8.json index 03d8aeca6b..ce837f5136 100644 --- a/packages/app-lib/.sqlx/query-6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929.json +++ b/packages/app-lib/.sqlx/query-8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n SELECT\n path, install_stage, launcher_feature_version, name, icon_path,\n game_version, protocol_version, mod_loader, mod_loader_version,\n json(groups) as \"groups!: serde_json::Value\",\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path,\n json(override_extra_launch_args) as \"override_extra_launch_args!: serde_json::Value\", json(override_custom_env_vars) as \"override_custom_env_vars!: serde_json::Value\",\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit\n FROM profiles\n WHERE path IN (SELECT value FROM json_each($1))", + "query": "\n SELECT\n path, install_stage, launcher_feature_version, name, icon_path,\n game_version, protocol_version, mod_loader, mod_loader_version,\n json(groups) as \"groups!: serde_json::Value\",\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path,\n json(override_extra_launch_args) as \"override_extra_launch_args!: serde_json::Value\", json(override_custom_env_vars) as \"override_custom_env_vars!: serde_json::Value\",\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit\n FROM profiles\n WHERE path IN (SELECT value FROM json_each($1))", "describe": { "columns": [ { @@ -139,9 +139,14 @@ "type_info": "Text" }, { - "name": "override_hook_post_exit", + "name": "override_hook_wrapper_type", "ordinal": 27, "type_info": "Text" + }, + { + "name": "override_hook_post_exit", + "ordinal": 28, + "type_info": "Text" } ], "parameters": { @@ -175,8 +180,9 @@ true, true, true, + false, true ] }, - "hash": "6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929" + "hash": "8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8" } diff --git a/packages/app-lib/.sqlx/query-5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca.json b/packages/app-lib/.sqlx/query-dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a.json similarity index 90% rename from packages/app-lib/.sqlx/query-5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca.json rename to packages/app-lib/.sqlx/query-dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a.json index 5dc714e293..a3dd744ea3 100644 --- a/packages/app-lib/.sqlx/query-5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca.json +++ b/packages/app-lib/.sqlx/query-dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n SELECT\n max_concurrent_writes, max_concurrent_downloads,\n theme, default_page, collapsed_navigation, hide_nametag_skins_page, advanced_rendering, native_decorations,\n discord_rpc, developer_mode, telemetry, personalized_ads,\n onboarded,\n json(extra_launch_args) extra_launch_args, json(custom_env_vars) custom_env_vars,\n mc_memory_max, mc_force_fullscreen, mc_game_resolution_x, mc_game_resolution_y, hide_on_process_start,\n hook_pre_launch, hook_wrapper, hook_post_exit,\n custom_dir, prev_custom_dir, migrated, json(feature_flags) feature_flags, toggle_sidebar\n FROM settings\n ", + "query": "\n SELECT\n max_concurrent_writes, max_concurrent_downloads,\n theme, default_page, collapsed_navigation, hide_nametag_skins_page, advanced_rendering, native_decorations,\n discord_rpc, developer_mode, telemetry, personalized_ads,\n onboarded,\n json(extra_launch_args) extra_launch_args, json(custom_env_vars) custom_env_vars,\n mc_memory_max, mc_force_fullscreen, mc_game_resolution_x, mc_game_resolution_y, hide_on_process_start,\n hook_pre_launch, hook_wrapper, hook_wrapper_type, hook_post_exit,\n custom_dir, prev_custom_dir, migrated, json(feature_flags) feature_flags, toggle_sidebar\n FROM settings\n ", "describe": { "columns": [ { @@ -114,33 +114,38 @@ "type_info": "Text" }, { - "name": "hook_post_exit", + "name": "hook_wrapper_type", "ordinal": 22, "type_info": "Text" }, { - "name": "custom_dir", + "name": "hook_post_exit", "ordinal": 23, "type_info": "Text" }, { - "name": "prev_custom_dir", + "name": "custom_dir", "ordinal": 24, "type_info": "Text" }, { - "name": "migrated", + "name": "prev_custom_dir", "ordinal": 25, + "type_info": "Text" + }, + { + "name": "migrated", + "ordinal": 26, "type_info": "Integer" }, { "name": "feature_flags", - "ordinal": 26, + "ordinal": 27, "type_info": "Text" }, { "name": "toggle_sidebar", - "ordinal": 27, + "ordinal": 28, "type_info": "Integer" } ], @@ -170,6 +175,7 @@ false, true, true, + false, true, true, true, @@ -178,5 +184,5 @@ false ] }, - "hash": "5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca" + "hash": "dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a" } diff --git a/packages/app-lib/migrations/20250705153720_wrapper_args.sql b/packages/app-lib/migrations/20250705153720_wrapper_args.sql new file mode 100644 index 0000000000..dabda80f41 --- /dev/null +++ b/packages/app-lib/migrations/20250705153720_wrapper_args.sql @@ -0,0 +1,2 @@ +ALTER TABLE profiles ADD COLUMN override_hook_wrapper_type TEXT NOT NULL DEFAULT 'path'; +ALTER TABLE settings ADD COLUMN hook_wrapper_type TEXT NOT NULL DEFAULT 'path'; diff --git a/packages/app-lib/src/api/profile/create.rs b/packages/app-lib/src/api/profile/create.rs index 20ec874a0b..4eddb17fab 100644 --- a/packages/app-lib/src/api/profile/create.rs +++ b/packages/app-lib/src/api/profile/create.rs @@ -1,7 +1,9 @@ //! Theseus profile management interface use crate::launcher::get_loader_version_from_profile; use crate::settings::Hooks; -use crate::state::{LauncherFeatureVersion, LinkedData, ProfileInstallStage}; +use crate::state::{ + LauncherFeatureVersion, LinkedData, ProfileInstallStage, WrapperType, +}; use crate::util::io::{self, canonicalize}; use crate::{ErrorKind, pack, profile}; pub use crate::{State, state::Profile}; @@ -97,6 +99,7 @@ pub async fn profile_create( hooks: Hooks { pre_launch: None, wrapper: None, + wrapper_type: WrapperType::Path, post_exit: None, }, }; diff --git a/packages/app-lib/src/state/legacy_converter.rs b/packages/app-lib/src/state/legacy_converter.rs index 7a04defde6..a2786e8341 100644 --- a/packages/app-lib/src/state/legacy_converter.rs +++ b/packages/app-lib/src/state/legacy_converter.rs @@ -1,7 +1,7 @@ use crate::data::{Dependency, ProjectType, User, Version}; use crate::jre::check_jre; use crate::prelude::ModLoader; -use crate::state; +use crate::state::{self, WrapperType}; use crate::state::{ CacheValue, CachedEntry, CachedFile, CachedFileHash, CachedFileUpdate, Credentials, DefaultPage, DependencyType, DeviceToken, DeviceTokenKey, @@ -379,6 +379,7 @@ where .hooks .as_ref() .and_then(|x| x.wrapper.clone()), + wrapper_type: WrapperType::Path, post_exit: profile.hooks.and_then(|x| x.post_exit), }, } diff --git a/packages/app-lib/src/state/profiles.rs b/packages/app-lib/src/state/profiles.rs index 7cf70a2850..7a380bd954 100644 --- a/packages/app-lib/src/state/profiles.rs +++ b/packages/app-lib/src/state/profiles.rs @@ -2,7 +2,7 @@ use super::settings::{Hooks, MemorySettings, WindowSize}; use crate::profile::get_full_path; use crate::state::server_join_log::JoinLogEntry; use crate::state::{ - CacheBehaviour, CachedEntry, CachedFileHash, cache_file_hash, + CacheBehaviour, CachedEntry, CachedFileHash, WrapperType, cache_file_hash, }; use crate::util; use crate::util::fetch::{FetchSemaphore, IoSemaphore, write_cached_icon}; @@ -302,6 +302,7 @@ struct ProfileQueryResult { override_mc_game_resolution_y: Option, override_hook_pre_launch: Option, override_hook_wrapper: Option, + override_hook_wrapper_type: String, override_hook_post_exit: Option, protocol_version: Option, launcher_feature_version: String, @@ -372,6 +373,9 @@ impl TryFrom for Profile { hooks: Hooks { pre_launch: x.override_hook_pre_launch, wrapper: x.override_hook_wrapper, + wrapper_type: WrapperType::from_string( + &x.override_hook_wrapper_type, + ), post_exit: x.override_hook_post_exit, }, }) @@ -393,7 +397,7 @@ macro_rules! select_profiles_with_predicate { override_java_path, json(override_extra_launch_args) as "override_extra_launch_args!: serde_json::Value", json(override_custom_env_vars) as "override_custom_env_vars!: serde_json::Value", override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y, - override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit + override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit FROM profiles "# + $predicate, @@ -474,6 +478,8 @@ impl Profile { let extra_launch_args = serde_json::to_string(&self.extra_launch_args)?; let custom_env_vars = serde_json::to_string(&self.custom_env_vars)?; + let override_hook_wrapper_type = self.hooks.wrapper_type.as_str(); + sqlx::query!( " INSERT INTO profiles ( @@ -485,7 +491,7 @@ impl Profile { submitted_time_played, recent_time_played, override_java_path, override_extra_launch_args, override_custom_env_vars, override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y, - override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit, + override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit, protocol_version, launcher_feature_version ) VALUES ( @@ -497,8 +503,8 @@ impl Profile { $15, $16, $17, jsonb($18), jsonb($19), $20, $21, $22, $23, - $24, $25, $26, - $27, $28 + $24, $25, $26, $27, + $28, $29 ) ON CONFLICT (path) DO UPDATE SET install_stage = $2, @@ -532,10 +538,11 @@ impl Profile { override_hook_pre_launch = $24, override_hook_wrapper = $25, - override_hook_post_exit = $26, + override_hook_wrapper_type = $26, + override_hook_post_exit = $27, - protocol_version = $27, - launcher_feature_version = $28 + protocol_version = $28, + launcher_feature_version = $29 ", self.path, install_stage, @@ -562,6 +569,7 @@ impl Profile { game_resolution_y, self.hooks.pre_launch, self.hooks.wrapper, + override_hook_wrapper_type, self.hooks.post_exit, self.protocol_version, launcher_feature_version diff --git a/packages/app-lib/src/state/settings.rs b/packages/app-lib/src/state/settings.rs index 2615e150ef..ff423b124f 100644 --- a/packages/app-lib/src/state/settings.rs +++ b/packages/app-lib/src/state/settings.rs @@ -62,7 +62,7 @@ impl Settings { onboarded, json(extra_launch_args) extra_launch_args, json(custom_env_vars) custom_env_vars, mc_memory_max, mc_force_fullscreen, mc_game_resolution_x, mc_game_resolution_y, hide_on_process_start, - hook_pre_launch, hook_wrapper, hook_post_exit, + hook_pre_launch, hook_wrapper, hook_wrapper_type, hook_post_exit, custom_dir, prev_custom_dir, migrated, json(feature_flags) feature_flags, toggle_sidebar FROM settings " @@ -107,6 +107,7 @@ impl Settings { hooks: Hooks { pre_launch: res.hook_pre_launch, wrapper: res.hook_wrapper, + wrapper_type: WrapperType::from_string(&res.hook_wrapper_type), post_exit: res.hook_post_exit, }, custom_dir: res.custom_dir, @@ -130,6 +131,7 @@ impl Settings { let default_page = self.default_page.as_str(); let extra_launch_args = serde_json::to_string(&self.extra_launch_args)?; let custom_env_vars = serde_json::to_string(&self.custom_env_vars)?; + let hook_wrapper_type = self.hooks.wrapper_type.as_str(); let feature_flags = serde_json::to_string(&self.feature_flags)?; sqlx::query!( @@ -162,15 +164,16 @@ impl Settings { hook_pre_launch = $20, hook_wrapper = $21, - hook_post_exit = $22, + hook_wrapper_type = $22, + hook_post_exit = $23, - custom_dir = $23, - prev_custom_dir = $24, - migrated = $25, + custom_dir = $24, + prev_custom_dir = $25, + migrated = $26, - toggle_sidebar = $26, - feature_flags = $27, - hide_nametag_skins_page = $28 + toggle_sidebar = $27, + feature_flags = $28, + hide_nametag_skins_page = $29 ", max_concurrent_writes, max_concurrent_downloads, @@ -193,6 +196,7 @@ impl Settings { self.hide_on_process_start, self.hooks.pre_launch, self.hooks.wrapper, + hook_wrapper_type, self.hooks.post_exit, self.custom_dir, self.prev_custom_dir, @@ -249,6 +253,31 @@ pub struct MemorySettings { #[derive(Serialize, Deserialize, Debug, Clone, Copy)] pub struct WindowSize(pub u16, pub u16); +/// Should wrapper string be interpreted as a full command or direct path to executable +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(rename_all = "snake_case")] +pub enum WrapperType { + Path, + Command, +} + +impl WrapperType { + pub fn as_str(&self) -> &'static str { + match self { + WrapperType::Path => "path", + WrapperType::Command => "command", + } + } + + pub fn from_string(string: &str) -> Self { + match string { + "path" => Self::Path, + "command" => Self::Command, + _ => Self::Path, + } + } +} + /// Game initialization hooks #[derive(Serialize, Deserialize, Debug, Clone)] #[serde_with::serde_as] @@ -257,6 +286,7 @@ pub struct Hooks { pub pre_launch: Option, #[serde_as(as = "serde_with::NoneAsEmptyString")] pub wrapper: Option, + pub wrapper_type: WrapperType, #[serde_as(as = "serde_with::NoneAsEmptyString")] pub post_exit: Option, } From a786267b0802e3d7c2da6d66c2c578d670046bd3 Mon Sep 17 00:00:00 2001 From: Garrett Webb Date: Sat, 12 Jul 2025 15:15:45 -0400 Subject: [PATCH 4/7] Revert "add wrapper type flag + migration" This reverts commit c6841b810a8d9137a10a724b323d077c0a3b9c83. --- ...f27acd240bb2ff3e07dee962bf67e20f81f36.json | 12 ---- ...6b2b27efc6a0433bab1d4bbe10c69fd417494.json | 12 ---- ...cd3910b1719f433a0c34d40415dd7681ab272.json | 32 ---------- ...24ed28df292a063d615514c67a38301d71806.json | 12 ---- ...2dfc577061b92479ce96ffb30a457939b5ffe.json | 38 ------------ ...cf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json | 12 ---- ...7b54a186b98796ec549c9d891089ea33cf3fc.json | 38 ------------ ...6dd3eed86ba421c83e74fe284609a8020bd22.json | 12 ---- ...e36adca581f8ad1b90f85d3ec3d92ec61e65e.json | 44 ------------- ...78c4e5c108c62462f16e8f3a84f4efabd529c.json | 12 ---- ...fbdbd066d51f88cd2bcfed613f756edbd2944.json | 12 ---- ...22546583aa19ea7088682d718c64ed5d5f1c5.json | 20 ------ ...f5bd5aeacec7d0a8abd640a7365902e57a2fd.json | 12 ---- ...1055fe47287d7f99be41215c25c1019d439b9.json | 12 ---- ...b712aba58908a66dd7bbd64c293b9ee7a1523.json | 12 ---- ...4a8f1543f6b962e54ecab491a006d28c9a18c.json | 38 ------------ ...33e6dc5b1d46f9c2454075eefe8df9a38f582.json | 12 ---- ...7c51c77946643b8f912fe265207da275a280f.json | 12 ---- ...21065f5e35f321954a9d5ae9cde907d5ce823.json | 38 ------------ ...cdcf73da199ea6ac05ee3ee798ece80d877cf.json | 62 ------------------- ...b8cea926ac6c65d613904eff1d740df30acda.json | 50 --------------- ...9c3ae945bc499b4229906c487533d1dcb280c.json | 12 ---- ...ae58e2d7a414e76906700518806e494cd0246.json | 20 ------ ...28a597e90c2bf7ce5dc1b39edb6977e2f6da6.json | 20 ------ ...68169cfd8226b57bacd8c270d7777fc6883ac.json | 32 ---------- ...131168e87bb37aa65c2156ad2cb6198426d8c.json | 50 --------------- ...d8217f8c46b816a2f4e60c11dfcd173120e7e.json | 12 ---- ...2899303d9b82b1ecd2e30dc71b411ee538f54.json | 12 ---- ...1828ee58a724f06a91633b8a40b4e04d0b9a0.json | 12 ---- ...dd18a4900021ee6ccfc165c9a6dad41046cba.json | 12 ---- ...b878b6789927df5adf50986fe642c8afcb681.json | 12 ---- ...64f627ae744a20acf5affaa729e68e3eb6641.json | 12 ---- ...7674be5035f385e0d85e759d4bbf9bca54f20.json | 12 ---- ...d1821b46d60f5cb79685c489aaebf13b35d24.json | 12 ---- ...f07f736c5772045b973dcc10573b399111344.json | 32 ---------- ...8f4ec2e248f751f98140f77bea4f9d5971ef1.json | 12 ++++ ...c24bb959a1281e19389ee5336c5e92affcbff.json | 12 ---- ...5e50912064c29ebf1a1e5ead79c44c37e64c.json} | 6 +- ...a31ae4bd7532d02f8b00b43d5645351941ca.json} | 22 +++---- ...b787af281db4402c8ff45fe6a77b5be6c929.json} | 12 +--- ...cdcf73da199ea6ac05ee3ee798ece80d877cf.json | 2 +- ...4938c41283e6091a1301fc3ca0b355ffcfa9.json} | 12 +--- .../20250705153720_wrapper_args.sql | 2 - packages/app-lib/src/api/profile/create.rs | 5 +- .../app-lib/src/state/legacy_converter.rs | 3 +- packages/app-lib/src/state/profiles.rs | 24 +++---- packages/app-lib/src/state/settings.rs | 46 +++----------- 47 files changed, 48 insertions(+), 876 deletions(-) delete mode 100644 .sqlx/query-0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36.json delete mode 100644 .sqlx/query-12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494.json delete mode 100644 .sqlx/query-1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272.json delete mode 100644 .sqlx/query-169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806.json delete mode 100644 .sqlx/query-18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe.json delete mode 100644 .sqlx/query-1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json delete mode 100644 .sqlx/query-265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc.json delete mode 100644 .sqlx/query-27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22.json delete mode 100644 .sqlx/query-28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e.json delete mode 100644 .sqlx/query-31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c.json delete mode 100644 .sqlx/query-3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944.json delete mode 100644 .sqlx/query-3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5.json delete mode 100644 .sqlx/query-45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd.json delete mode 100644 .sqlx/query-4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9.json delete mode 100644 .sqlx/query-545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523.json delete mode 100644 .sqlx/query-54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c.json delete mode 100644 .sqlx/query-554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582.json delete mode 100644 .sqlx/query-55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f.json delete mode 100644 .sqlx/query-6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823.json delete mode 100644 .sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json delete mode 100644 .sqlx/query-727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda.json delete mode 100644 .sqlx/query-81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c.json delete mode 100644 .sqlx/query-957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246.json delete mode 100644 .sqlx/query-a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6.json delete mode 100644 .sqlx/query-aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac.json delete mode 100644 .sqlx/query-bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c.json delete mode 100644 .sqlx/query-d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e.json delete mode 100644 .sqlx/query-d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54.json delete mode 100644 .sqlx/query-d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0.json delete mode 100644 .sqlx/query-df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba.json delete mode 100644 .sqlx/query-e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681.json delete mode 100644 .sqlx/query-e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641.json delete mode 100644 .sqlx/query-faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20.json delete mode 100644 .sqlx/query-fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24.json delete mode 100644 .sqlx/query-fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344.json create mode 100644 packages/app-lib/.sqlx/query-27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1.json delete mode 100644 packages/app-lib/.sqlx/query-326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff.json rename packages/app-lib/.sqlx/{query-3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93.json => query-3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c.json} (68%) rename packages/app-lib/.sqlx/{query-dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a.json => query-5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca.json} (90%) rename packages/app-lib/.sqlx/{query-59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81.json => query-6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929.json} (92%) rename packages/app-lib/.sqlx/{query-8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8.json => query-c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9.json} (92%) delete mode 100644 packages/app-lib/migrations/20250705153720_wrapper_args.sql diff --git a/.sqlx/query-0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36.json b/.sqlx/query-0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36.json deleted file mode 100644 index 8ea80ee3bd..0000000000 --- a/.sqlx/query-0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO minecraft_device_tokens (id, uuid, private_key, x, y, issue_instant, not_after, token, display_claims)\n VALUES (0, $1, $2, $3, $4, $5, $6, $7, $8)\n ON CONFLICT (id) DO UPDATE SET\n uuid = $1,\n private_key = $2,\n x = $3,\n y = $4,\n issue_instant = $5,\n not_after = $6,\n token = $7,\n display_claims = jsonb($8)\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 8 - }, - "nullable": [] - }, - "hash": "0cfb12e0553411b01b721d1c38ef27acd240bb2ff3e07dee962bf67e20f81f36" -} diff --git a/.sqlx/query-12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494.json b/.sqlx/query-12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494.json deleted file mode 100644 index 318328de4c..0000000000 --- a/.sqlx/query-12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n UPDATE minecraft_users\n SET active = FALSE\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 0 - }, - "nullable": [] - }, - "hash": "12f8b2b9f0acca2ea29aa6a77266b2b27efc6a0433bab1d4bbe10c69fd417494" -} diff --git a/.sqlx/query-1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272.json b/.sqlx/query-1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272.json deleted file mode 100644 index ead9ab9ae7..0000000000 --- a/.sqlx/query-1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT\n full_version, architecture, path\n FROM java_versions\n WHERE major_version = $1\n ", - "describe": { - "columns": [ - { - "name": "full_version", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "architecture", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "path", - "ordinal": 2, - "type_info": "Text" - } - ], - "parameters": { - "Right": 1 - }, - "nullable": [ - false, - false, - false - ] - }, - "hash": "1397c1825096fb402cdd3b5dae8cd3910b1719f433a0c34d40415dd7681ab272" -} diff --git a/.sqlx/query-169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806.json b/.sqlx/query-169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806.json deleted file mode 100644 index 6390c904a6..0000000000 --- a/.sqlx/query-169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n DELETE FROM profiles\n WHERE path = $1\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 1 - }, - "nullable": [] - }, - "hash": "169ce6afb8e9739dacff3f4bea024ed28df292a063d615514c67a38301d71806" -} diff --git a/.sqlx/query-18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe.json b/.sqlx/query-18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe.json deleted file mode 100644 index d3a1024c10..0000000000 --- a/.sqlx/query-18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT\n id, active, session_id, expires\n FROM modrinth_users\n WHERE active = TRUE\n ", - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "active", - "ordinal": 1, - "type_info": "Integer" - }, - { - "name": "session_id", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "expires", - "ordinal": 3, - "type_info": "Integer" - } - ], - "parameters": { - "Right": 0 - }, - "nullable": [ - false, - false, - false, - false - ] - }, - "hash": "18881c0c2ec1b0cc73fa13b4c242dfc577061b92479ce96ffb30a457939b5ffe" -} diff --git a/.sqlx/query-1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json b/.sqlx/query-1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json deleted file mode 100644 index 01e5e90d4c..0000000000 --- a/.sqlx/query-1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n DELETE FROM attached_world_data\n WHERE profile_path = $1 and world_type = $2 and world_id = $3\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 3 - }, - "nullable": [] - }, - "hash": "1a979fbc58be7dde562b6f7c8fdcf9a4fc5a9817f4831c66bd56f2f4d0a00f82" -} diff --git a/.sqlx/query-265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc.json b/.sqlx/query-265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc.json deleted file mode 100644 index c5c27d5d31..0000000000 --- a/.sqlx/query-265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT\n major_version, full_version, architecture, path\n FROM java_versions\n ", - "describe": { - "columns": [ - { - "name": "major_version", - "ordinal": 0, - "type_info": "Integer" - }, - { - "name": "full_version", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "architecture", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "path", - "ordinal": 3, - "type_info": "Text" - } - ], - "parameters": { - "Right": 0 - }, - "nullable": [ - false, - false, - false, - false - ] - }, - "hash": "265f9c9ad992da0aeaf69c3f0077b54a186b98796ec549c9d891089ea33cf3fc" -} diff --git a/.sqlx/query-27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22.json b/.sqlx/query-27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22.json deleted file mode 100644 index 26c250c785..0000000000 --- a/.sqlx/query-27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "DELETE FROM default_minecraft_capes WHERE minecraft_user_uuid = ?", - "describe": { - "columns": [], - "parameters": { - "Right": 1 - }, - "nullable": [] - }, - "hash": "27a4ca00ab9d1647bf63287169f6dd3eed86ba421c83e74fe284609a8020bd22" -} diff --git a/.sqlx/query-28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e.json b/.sqlx/query-28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e.json deleted file mode 100644 index f2386dfbaf..0000000000 --- a/.sqlx/query-28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT id, data_type, json(data) as \"data?: serde_json::Value\", alias, expires\n FROM cache\n WHERE data_type = $1 AND (\n id IN (SELECT value FROM json_each($2))\n OR\n alias IN (SELECT value FROM json_each($3))\n )\n ", - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "data_type", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "data?: serde_json::Value", - "ordinal": 2, - "type_info": "Null" - }, - { - "name": "alias", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "expires", - "ordinal": 4, - "type_info": "Integer" - } - ], - "parameters": { - "Right": 3 - }, - "nullable": [ - false, - false, - null, - true, - false - ] - }, - "hash": "28b3e3132d75e551c1fa14b8d3be36adca581f8ad1b90f85d3ec3d92ec61e65e" -} diff --git a/.sqlx/query-31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c.json b/.sqlx/query-31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c.json deleted file mode 100644 index 90e1b19378..0000000000 --- a/.sqlx/query-31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n DELETE FROM cache\n WHERE data_type IN (SELECT value FROM json_each($1))\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 1 - }, - "nullable": [] - }, - "hash": "31938d27442f1f628fdcb81d16678c4e5c108c62462f16e8f3a84f4efabd529c" -} diff --git a/.sqlx/query-3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944.json b/.sqlx/query-3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944.json deleted file mode 100644 index cf3645df13..0000000000 --- a/.sqlx/query-3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "INSERT OR REPLACE INTO default_minecraft_capes (minecraft_user_uuid, id) VALUES (?, ?)", - "describe": { - "columns": [], - "parameters": { - "Right": 2 - }, - "nullable": [] - }, - "hash": "3d15e7eb66971e70500e8718236fbdbd066d51f88cd2bcfed613f756edbd2944" -} diff --git a/.sqlx/query-3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5.json b/.sqlx/query-3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5.json deleted file mode 100644 index f34447870a..0000000000 --- a/.sqlx/query-3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "db_name": "SQLite", - "query": "SELECT texture FROM custom_minecraft_skin_textures WHERE texture_key = ?", - "describe": { - "columns": [ - { - "name": "texture", - "ordinal": 0, - "type_info": "Blob" - } - ], - "parameters": { - "Right": 1 - }, - "nullable": [ - false - ] - }, - "hash": "3f3d3c2d77c1bcaf4044b612c3822546583aa19ea7088682d718c64ed5d5f1c5" -} diff --git a/.sqlx/query-45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd.json b/.sqlx/query-45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd.json deleted file mode 100644 index f39791c80f..0000000000 --- a/.sqlx/query-45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n UPDATE modrinth_users\n SET active = FALSE\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 0 - }, - "nullable": [] - }, - "hash": "45c692b305b36540139b5956dcff5bd5aeacec7d0a8abd640a7365902e57a2fd" -} diff --git a/.sqlx/query-4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9.json b/.sqlx/query-4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9.json deleted file mode 100644 index 4b7932bbec..0000000000 --- a/.sqlx/query-4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "INSERT OR REPLACE INTO custom_minecraft_skins (minecraft_user_uuid, texture_key, variant, cape_id) VALUES (?, ?, ?, ?)", - "describe": { - "columns": [], - "parameters": { - "Right": 4 - }, - "nullable": [] - }, - "hash": "4c8063f9ce2fd7deec9b69e0b2c1055fe47287d7f99be41215c25c1019d439b9" -} diff --git a/.sqlx/query-545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523.json b/.sqlx/query-545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523.json deleted file mode 100644 index ee92d633c4..0000000000 --- a/.sqlx/query-545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "INSERT OR REPLACE INTO custom_minecraft_skin_textures (texture_key, texture) VALUES (?, ?)", - "describe": { - "columns": [], - "parameters": { - "Right": 2 - }, - "nullable": [] - }, - "hash": "545b01d8cc1e79ff5d4136887fbb712aba58908a66dd7bbd64c293b9ee7a1523" -} diff --git a/.sqlx/query-54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c.json b/.sqlx/query-54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c.json deleted file mode 100644 index aaea116c7f..0000000000 --- a/.sqlx/query-54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT profile_path, host, port, join_time\n FROM join_log\n WHERE profile_path = $1\n ", - "describe": { - "columns": [ - { - "name": "profile_path", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "host", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "port", - "ordinal": 2, - "type_info": "Integer" - }, - { - "name": "join_time", - "ordinal": 3, - "type_info": "Integer" - } - ], - "parameters": { - "Right": 1 - }, - "nullable": [ - false, - false, - false, - false - ] - }, - "hash": "54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c" -} diff --git a/.sqlx/query-554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582.json b/.sqlx/query-554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582.json deleted file mode 100644 index 40eb2923d9..0000000000 --- a/.sqlx/query-554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n DELETE FROM modrinth_users WHERE id = $1\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 1 - }, - "nullable": [] - }, - "hash": "554805c9902e5a1cc4c0f03b4a633e6dc5b1d46f9c2454075eefe8df9a38f582" -} diff --git a/.sqlx/query-55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f.json b/.sqlx/query-55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f.json deleted file mode 100644 index 94bfffeddd..0000000000 --- a/.sqlx/query-55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO java_versions (major_version, full_version, architecture, path)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (major_version) DO UPDATE SET\n full_version = $2,\n architecture = $3,\n path = $4\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 4 - }, - "nullable": [] - }, - "hash": "55ad9c6b0b3172f0528e7ccd60f7c51c77946643b8f912fe265207da275a280f" -} diff --git a/.sqlx/query-6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823.json b/.sqlx/query-6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823.json deleted file mode 100644 index 2826fb40ac..0000000000 --- a/.sqlx/query-6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT\n id, active, session_id, expires\n FROM modrinth_users\n ", - "describe": { - "columns": [ - { - "name": "id", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "active", - "ordinal": 1, - "type_info": "Integer" - }, - { - "name": "session_id", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "expires", - "ordinal": 3, - "type_info": "Integer" - } - ], - "parameters": { - "Right": 0 - }, - "nullable": [ - false, - false, - false, - false - ] - }, - "hash": "6d7ebc0f233dc730fa8c99c750421065f5e35f321954a9d5ae9cde907d5ce823" -} diff --git a/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json b/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json deleted file mode 100644 index 22e39e75b8..0000000000 --- a/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT\n uuid, private_key, x, y, issue_instant, not_after, token, json(display_claims) as \"display_claims!: serde_json::Value\"\n FROM minecraft_device_tokens\n ", - "describe": { - "columns": [ - { - "name": "uuid", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "private_key", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "x", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "y", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "issue_instant", - "ordinal": 4, - "type_info": "Integer" - }, - { - "name": "not_after", - "ordinal": 5, - "type_info": "Integer" - }, - { - "name": "token", - "ordinal": 6, - "type_info": "Text" - }, - { - "name": "display_claims!: serde_json::Value", - "ordinal": 7, - "type_info": "Text" - } - ], - "parameters": { - "Right": 0 - }, - "nullable": [ - false, - false, - false, - false, - false, - false, - false, - null - ] - }, - "hash": "6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf" -} diff --git a/.sqlx/query-727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda.json b/.sqlx/query-727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda.json deleted file mode 100644 index 6bea4035d0..0000000000 --- a/.sqlx/query-727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT\n uuid, active, username, access_token, refresh_token, expires\n FROM minecraft_users\n ", - "describe": { - "columns": [ - { - "name": "uuid", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "active", - "ordinal": 1, - "type_info": "Integer" - }, - { - "name": "username", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "access_token", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "refresh_token", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "expires", - "ordinal": 5, - "type_info": "Integer" - } - ], - "parameters": { - "Right": 0 - }, - "nullable": [ - false, - false, - false, - false, - false, - false - ] - }, - "hash": "727e3e1bc8625bbcb833920059bb8cea926ac6c65d613904eff1d740df30acda" -} diff --git a/.sqlx/query-81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c.json b/.sqlx/query-81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c.json deleted file mode 100644 index 2d514c0613..0000000000 --- a/.sqlx/query-81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO modrinth_users (id, active, session_id, expires)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (id) DO UPDATE SET\n active = $2,\n session_id = $3,\n expires = $4\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 4 - }, - "nullable": [] - }, - "hash": "81a80df2f3fdbbb78d45e7420609c3ae945bc499b4229906c487533d1dcb280c" -} diff --git a/.sqlx/query-957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246.json b/.sqlx/query-957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246.json deleted file mode 100644 index 2c946cb4ec..0000000000 --- a/.sqlx/query-957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "db_name": "SQLite", - "query": "SELECT id AS 'id: Hyphenated' FROM default_minecraft_capes WHERE minecraft_user_uuid = ?", - "describe": { - "columns": [ - { - "name": "id: Hyphenated", - "ordinal": 0, - "type_info": "Text" - } - ], - "parameters": { - "Right": 1 - }, - "nullable": [ - false - ] - }, - "hash": "957f184e28e4921ff3922f3e74aae58e2d7a414e76906700518806e494cd0246" -} diff --git a/.sqlx/query-a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6.json b/.sqlx/query-a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6.json deleted file mode 100644 index 355af23d3e..0000000000 --- a/.sqlx/query-a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT display_status\n FROM attached_world_data\n WHERE profile_path = $1 and world_type = $2 and world_id = $3\n ", - "describe": { - "columns": [ - { - "name": "display_status", - "ordinal": 0, - "type_info": "Text" - } - ], - "parameters": { - "Right": 3 - }, - "nullable": [ - false - ] - }, - "hash": "a2184fc5d62570aec0a15c0a8d628a597e90c2bf7ce5dc1b39edb6977e2f6da6" -} diff --git a/.sqlx/query-aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac.json b/.sqlx/query-aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac.json deleted file mode 100644 index 4d0c3892f3..0000000000 --- a/.sqlx/query-aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "db_name": "SQLite", - "query": "SELECT texture_key, variant AS 'variant: MinecraftSkinVariant', cape_id AS 'cape_id: Hyphenated' FROM custom_minecraft_skins WHERE minecraft_user_uuid = ? ORDER BY rowid ASC LIMIT ? OFFSET ?", - "describe": { - "columns": [ - { - "name": "texture_key", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "variant: MinecraftSkinVariant", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "cape_id: Hyphenated", - "ordinal": 2, - "type_info": "Text" - } - ], - "parameters": { - "Right": 3 - }, - "nullable": [ - false, - false, - true - ] - }, - "hash": "aae88809ada53e13441352e315f68169cfd8226b57bacd8c270d7777fc6883ac" -} diff --git a/.sqlx/query-bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c.json b/.sqlx/query-bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c.json deleted file mode 100644 index 754b62c990..0000000000 --- a/.sqlx/query-bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT\n uuid, active, username, access_token, refresh_token, expires\n FROM minecraft_users\n WHERE active = TRUE\n ", - "describe": { - "columns": [ - { - "name": "uuid", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "active", - "ordinal": 1, - "type_info": "Integer" - }, - { - "name": "username", - "ordinal": 2, - "type_info": "Text" - }, - { - "name": "access_token", - "ordinal": 3, - "type_info": "Text" - }, - { - "name": "refresh_token", - "ordinal": 4, - "type_info": "Text" - }, - { - "name": "expires", - "ordinal": 5, - "type_info": "Integer" - } - ], - "parameters": { - "Right": 0 - }, - "nullable": [ - false, - false, - false, - false, - false, - false - ] - }, - "hash": "bf7d47350092d87c478009adaab131168e87bb37aa65c2156ad2cb6198426d8c" -} diff --git a/.sqlx/query-d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e.json b/.sqlx/query-d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e.json deleted file mode 100644 index 51980a60ce..0000000000 --- a/.sqlx/query-d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n DELETE FROM minecraft_users WHERE uuid = $1\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 1 - }, - "nullable": [] - }, - "hash": "d21e8a5116c43a3b511321a2655d8217f8c46b816a2f4e60c11dfcd173120e7e" -} diff --git a/.sqlx/query-d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54.json b/.sqlx/query-d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54.json deleted file mode 100644 index 93cb5c0523..0000000000 --- a/.sqlx/query-d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO cache (id, data_type, alias, data, expires)\n SELECT\n json_extract(value, '$.id') AS id,\n json_extract(value, '$.data_type') AS data_type,\n json_extract(value, '$.alias') AS alias,\n json_extract(value, '$.data') AS data,\n json_extract(value, '$.expires') AS expires\n FROM\n json_each($1)\n WHERE TRUE\n ON CONFLICT (id, data_type) DO UPDATE SET\n alias = excluded.alias,\n data = excluded.data,\n expires = excluded.expires\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 1 - }, - "nullable": [] - }, - "hash": "d63935a6e411b5ea145dfa1d4772899303d9b82b1ecd2e30dc71b411ee538f54" -} diff --git a/.sqlx/query-d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0.json b/.sqlx/query-d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0.json deleted file mode 100644 index 4c8f4f8e3d..0000000000 --- a/.sqlx/query-d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO minecraft_users (uuid, active, username, access_token, refresh_token, expires)\n VALUES ($1, $2, $3, $4, $5, $6)\n ON CONFLICT (uuid) DO UPDATE SET\n active = $2,\n username = $3,\n access_token = $4,\n refresh_token = $5,\n expires = $6\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 6 - }, - "nullable": [] - }, - "hash": "d719cf2f6f87c5ea7ea6ace2d6a1828ee58a724f06a91633b8a40b4e04d0b9a0" -} diff --git a/.sqlx/query-df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba.json b/.sqlx/query-df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba.json deleted file mode 100644 index 03dcf69e97..0000000000 --- a/.sqlx/query-df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "INSERT INTO attached_world_data (profile_path, world_type, world_id, display_status)\nVALUES ($1, $2, $3, $4)\nON CONFLICT (profile_path, world_type, world_id) DO UPDATE\n SET display_status = $4", - "describe": { - "columns": [], - "parameters": { - "Right": 4 - }, - "nullable": [] - }, - "hash": "df600f2615979ab61bfe235a04add18a4900021ee6ccfc165c9a6dad41046cba" -} diff --git a/.sqlx/query-e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681.json b/.sqlx/query-e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681.json deleted file mode 100644 index a09ac2ff77..0000000000 --- a/.sqlx/query-e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "DELETE FROM default_minecraft_capes WHERE minecraft_user_uuid NOT IN (SELECT uuid FROM minecraft_users)", - "describe": { - "columns": [], - "parameters": { - "Right": 0 - }, - "nullable": [] - }, - "hash": "e9449930a74c6a6151c3d868042b878b6789927df5adf50986fe642c8afcb681" -} diff --git a/.sqlx/query-e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641.json b/.sqlx/query-e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641.json deleted file mode 100644 index 017a851664..0000000000 --- a/.sqlx/query-e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO join_log (profile_path, host, port, join_time)\n VALUES ($1, $2, $3, $4)\n ON CONFLICT (profile_path, host, port) DO UPDATE SET\n join_time = $4\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 4 - }, - "nullable": [] - }, - "hash": "e9f3d57ac9055575366d5ebd40b64f627ae744a20acf5affaa729e68e3eb6641" -} diff --git a/.sqlx/query-faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20.json b/.sqlx/query-faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20.json deleted file mode 100644 index ad85646245..0000000000 --- a/.sqlx/query-faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "DELETE FROM custom_minecraft_skins WHERE minecraft_user_uuid = ? AND texture_key = ? AND variant = ? AND cape_id IS ?", - "describe": { - "columns": [], - "parameters": { - "Right": 4 - }, - "nullable": [] - }, - "hash": "faa8437519571b147b0135054847674be5035f385e0d85e759d4bbf9bca54f20" -} diff --git a/.sqlx/query-fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24.json b/.sqlx/query-fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24.json deleted file mode 100644 index ee41aad88b..0000000000 --- a/.sqlx/query-fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "DELETE FROM custom_minecraft_skins WHERE minecraft_user_uuid NOT IN (SELECT uuid FROM minecraft_users)", - "describe": { - "columns": [], - "parameters": { - "Right": 0 - }, - "nullable": [] - }, - "hash": "fd494269d944b179ade61876669d1821b46d60f5cb79685c489aaebf13b35d24" -} diff --git a/.sqlx/query-fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344.json b/.sqlx/query-fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344.json deleted file mode 100644 index 9c963789c9..0000000000 --- a/.sqlx/query-fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n SELECT world_type, world_id, display_status\n FROM attached_world_data\n WHERE profile_path = $1\n ", - "describe": { - "columns": [ - { - "name": "world_type", - "ordinal": 0, - "type_info": "Text" - }, - { - "name": "world_id", - "ordinal": 1, - "type_info": "Text" - }, - { - "name": "display_status", - "ordinal": 2, - "type_info": "Text" - } - ], - "parameters": { - "Right": 1 - }, - "nullable": [ - false, - false, - false - ] - }, - "hash": "fd834e256e142820f25305ccffaf07f736c5772045b973dcc10573b399111344" -} diff --git a/packages/app-lib/.sqlx/query-27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1.json b/packages/app-lib/.sqlx/query-27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1.json new file mode 100644 index 0000000000..9c98034023 --- /dev/null +++ b/packages/app-lib/.sqlx/query-27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO profiles (\n path, install_stage, name, icon_path,\n game_version, mod_loader, mod_loader_version,\n groups,\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path, override_extra_launch_args, override_custom_env_vars,\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit,\n protocol_version, launcher_feature_version\n )\n VALUES (\n $1, $2, $3, $4,\n $5, $6, $7,\n jsonb($8),\n $9, $10, $11,\n $12, $13, $14,\n $15, $16,\n $17, jsonb($18), jsonb($19),\n $20, $21, $22, $23,\n $24, $25, $26,\n $27, $28\n )\n ON CONFLICT (path) DO UPDATE SET\n install_stage = $2,\n name = $3,\n icon_path = $4,\n\n game_version = $5,\n mod_loader = $6,\n mod_loader_version = $7,\n\n groups = jsonb($8),\n\n linked_project_id = $9,\n linked_version_id = $10,\n locked = $11,\n\n created = $12,\n modified = $13,\n last_played = $14,\n\n submitted_time_played = $15,\n recent_time_played = $16,\n\n override_java_path = $17,\n override_extra_launch_args = jsonb($18),\n override_custom_env_vars = jsonb($19),\n override_mc_memory_max = $20,\n override_mc_force_fullscreen = $21,\n override_mc_game_resolution_x = $22,\n override_mc_game_resolution_y = $23,\n\n override_hook_pre_launch = $24,\n override_hook_wrapper = $25,\n override_hook_post_exit = $26,\n\n protocol_version = $27,\n launcher_feature_version = $28\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 28 + }, + "nullable": [] + }, + "hash": "27283e20fc86c941c7d6d09259d8f4ec2e248f751f98140f77bea4f9d5971ef1" +} diff --git a/packages/app-lib/.sqlx/query-326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff.json b/packages/app-lib/.sqlx/query-326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff.json deleted file mode 100644 index 18d3a891b0..0000000000 --- a/packages/app-lib/.sqlx/query-326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "db_name": "SQLite", - "query": "\n INSERT INTO profiles (\n path, install_stage, name, icon_path,\n game_version, mod_loader, mod_loader_version,\n groups,\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path, override_extra_launch_args, override_custom_env_vars,\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit,\n protocol_version, launcher_feature_version\n )\n VALUES (\n $1, $2, $3, $4,\n $5, $6, $7,\n jsonb($8),\n $9, $10, $11,\n $12, $13, $14,\n $15, $16,\n $17, jsonb($18), jsonb($19),\n $20, $21, $22, $23,\n $24, $25, $26, $27,\n $28, $29\n )\n ON CONFLICT (path) DO UPDATE SET\n install_stage = $2,\n name = $3,\n icon_path = $4,\n\n game_version = $5,\n mod_loader = $6,\n mod_loader_version = $7,\n\n groups = jsonb($8),\n\n linked_project_id = $9,\n linked_version_id = $10,\n locked = $11,\n\n created = $12,\n modified = $13,\n last_played = $14,\n\n submitted_time_played = $15,\n recent_time_played = $16,\n\n override_java_path = $17,\n override_extra_launch_args = jsonb($18),\n override_custom_env_vars = jsonb($19),\n override_mc_memory_max = $20,\n override_mc_force_fullscreen = $21,\n override_mc_game_resolution_x = $22,\n override_mc_game_resolution_y = $23,\n\n override_hook_pre_launch = $24,\n override_hook_wrapper = $25,\n override_hook_wrapper_type = $26,\n override_hook_post_exit = $27,\n\n protocol_version = $28,\n launcher_feature_version = $29\n ", - "describe": { - "columns": [], - "parameters": { - "Right": 29 - }, - "nullable": [] - }, - "hash": "326db4e86a96d3cef8162d8fc93c24bb959a1281e19389ee5336c5e92affcbff" -} diff --git a/packages/app-lib/.sqlx/query-3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93.json b/packages/app-lib/.sqlx/query-3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c.json similarity index 68% rename from packages/app-lib/.sqlx/query-3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93.json rename to packages/app-lib/.sqlx/query-3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c.json index 559c93de62..2fce764bca 100644 --- a/packages/app-lib/.sqlx/query-3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93.json +++ b/packages/app-lib/.sqlx/query-3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c.json @@ -1,12 +1,12 @@ { "db_name": "SQLite", - "query": "\n UPDATE settings\n SET\n max_concurrent_writes = $1,\n max_concurrent_downloads = $2,\n\n theme = $3,\n default_page = $4,\n collapsed_navigation = $5,\n advanced_rendering = $6,\n native_decorations = $7,\n\n discord_rpc = $8,\n developer_mode = $9,\n telemetry = $10,\n personalized_ads = $11,\n\n onboarded = $12,\n\n extra_launch_args = jsonb($13),\n custom_env_vars = jsonb($14),\n mc_memory_max = $15,\n mc_force_fullscreen = $16,\n mc_game_resolution_x = $17,\n mc_game_resolution_y = $18,\n hide_on_process_start = $19,\n\n hook_pre_launch = $20,\n hook_wrapper = $21,\n hook_wrapper_type = $22,\n hook_post_exit = $23,\n\n custom_dir = $24,\n prev_custom_dir = $25,\n migrated = $26,\n\n toggle_sidebar = $27,\n feature_flags = $28,\n hide_nametag_skins_page = $29\n ", + "query": "\n UPDATE settings\n SET\n max_concurrent_writes = $1,\n max_concurrent_downloads = $2,\n\n theme = $3,\n default_page = $4,\n collapsed_navigation = $5,\n advanced_rendering = $6,\n native_decorations = $7,\n\n discord_rpc = $8,\n developer_mode = $9,\n telemetry = $10,\n personalized_ads = $11,\n\n onboarded = $12,\n\n extra_launch_args = jsonb($13),\n custom_env_vars = jsonb($14),\n mc_memory_max = $15,\n mc_force_fullscreen = $16,\n mc_game_resolution_x = $17,\n mc_game_resolution_y = $18,\n hide_on_process_start = $19,\n\n hook_pre_launch = $20,\n hook_wrapper = $21,\n hook_post_exit = $22,\n\n custom_dir = $23,\n prev_custom_dir = $24,\n migrated = $25,\n\n toggle_sidebar = $26,\n feature_flags = $27,\n hide_nametag_skins_page = $28\n ", "describe": { "columns": [], "parameters": { - "Right": 29 + "Right": 28 }, "nullable": [] }, - "hash": "3b67d287c8b58c3085055fd148fe8b057f10c4901bb39165a5108633a1117b93" + "hash": "3613473fb4d836ee0fb3c292e6bf5e50912064c29ebf1a1e5ead79c44c37e64c" } diff --git a/packages/app-lib/.sqlx/query-dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a.json b/packages/app-lib/.sqlx/query-5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca.json similarity index 90% rename from packages/app-lib/.sqlx/query-dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a.json rename to packages/app-lib/.sqlx/query-5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca.json index a3dd744ea3..5dc714e293 100644 --- a/packages/app-lib/.sqlx/query-dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a.json +++ b/packages/app-lib/.sqlx/query-5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n SELECT\n max_concurrent_writes, max_concurrent_downloads,\n theme, default_page, collapsed_navigation, hide_nametag_skins_page, advanced_rendering, native_decorations,\n discord_rpc, developer_mode, telemetry, personalized_ads,\n onboarded,\n json(extra_launch_args) extra_launch_args, json(custom_env_vars) custom_env_vars,\n mc_memory_max, mc_force_fullscreen, mc_game_resolution_x, mc_game_resolution_y, hide_on_process_start,\n hook_pre_launch, hook_wrapper, hook_wrapper_type, hook_post_exit,\n custom_dir, prev_custom_dir, migrated, json(feature_flags) feature_flags, toggle_sidebar\n FROM settings\n ", + "query": "\n SELECT\n max_concurrent_writes, max_concurrent_downloads,\n theme, default_page, collapsed_navigation, hide_nametag_skins_page, advanced_rendering, native_decorations,\n discord_rpc, developer_mode, telemetry, personalized_ads,\n onboarded,\n json(extra_launch_args) extra_launch_args, json(custom_env_vars) custom_env_vars,\n mc_memory_max, mc_force_fullscreen, mc_game_resolution_x, mc_game_resolution_y, hide_on_process_start,\n hook_pre_launch, hook_wrapper, hook_post_exit,\n custom_dir, prev_custom_dir, migrated, json(feature_flags) feature_flags, toggle_sidebar\n FROM settings\n ", "describe": { "columns": [ { @@ -113,39 +113,34 @@ "ordinal": 21, "type_info": "Text" }, - { - "name": "hook_wrapper_type", - "ordinal": 22, - "type_info": "Text" - }, { "name": "hook_post_exit", - "ordinal": 23, + "ordinal": 22, "type_info": "Text" }, { "name": "custom_dir", - "ordinal": 24, + "ordinal": 23, "type_info": "Text" }, { "name": "prev_custom_dir", - "ordinal": 25, + "ordinal": 24, "type_info": "Text" }, { "name": "migrated", - "ordinal": 26, + "ordinal": 25, "type_info": "Integer" }, { "name": "feature_flags", - "ordinal": 27, + "ordinal": 26, "type_info": "Text" }, { "name": "toggle_sidebar", - "ordinal": 28, + "ordinal": 27, "type_info": "Integer" } ], @@ -175,7 +170,6 @@ false, true, true, - false, true, true, true, @@ -184,5 +178,5 @@ false ] }, - "hash": "dc30d239cd7856920b7bcbdfa317972c7085cacc3f4da5edfb6fcda6c68ea14a" + "hash": "5193f519f021b2e7013cdb67a6e1a31ae4bd7532d02f8b00b43d5645351941ca" } diff --git a/packages/app-lib/.sqlx/query-59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81.json b/packages/app-lib/.sqlx/query-6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929.json similarity index 92% rename from packages/app-lib/.sqlx/query-59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81.json rename to packages/app-lib/.sqlx/query-6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929.json index becf037fe6..03d8aeca6b 100644 --- a/packages/app-lib/.sqlx/query-59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81.json +++ b/packages/app-lib/.sqlx/query-6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n SELECT\n path, install_stage, launcher_feature_version, name, icon_path,\n game_version, protocol_version, mod_loader, mod_loader_version,\n json(groups) as \"groups!: serde_json::Value\",\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path,\n json(override_extra_launch_args) as \"override_extra_launch_args!: serde_json::Value\", json(override_custom_env_vars) as \"override_custom_env_vars!: serde_json::Value\",\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit\n FROM profiles\n WHERE 1=$1", + "query": "\n SELECT\n path, install_stage, launcher_feature_version, name, icon_path,\n game_version, protocol_version, mod_loader, mod_loader_version,\n json(groups) as \"groups!: serde_json::Value\",\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path,\n json(override_extra_launch_args) as \"override_extra_launch_args!: serde_json::Value\", json(override_custom_env_vars) as \"override_custom_env_vars!: serde_json::Value\",\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit\n FROM profiles\n WHERE path IN (SELECT value FROM json_each($1))", "describe": { "columns": [ { @@ -138,14 +138,9 @@ "ordinal": 26, "type_info": "Text" }, - { - "name": "override_hook_wrapper_type", - "ordinal": 27, - "type_info": "Text" - }, { "name": "override_hook_post_exit", - "ordinal": 28, + "ordinal": 27, "type_info": "Text" } ], @@ -180,9 +175,8 @@ true, true, true, - false, true ] }, - "hash": "59a3cf1f46cb2e6f6c7deb2063729cdd6a9c539f473f4391d8dca4339c45cb81" + "hash": "6a434cc55635b6e325e9e5f06d21b787af281db4402c8ff45fe6a77b5be6c929" } diff --git a/packages/app-lib/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json b/packages/app-lib/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json index 22e39e75b8..9742cb7b47 100644 --- a/packages/app-lib/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json +++ b/packages/app-lib/.sqlx/query-6e3fa492c085ebb8e7280dd4d55cdcf73da199ea6ac05ee3ee798ece80d877cf.json @@ -41,7 +41,7 @@ { "name": "display_claims!: serde_json::Value", "ordinal": 7, - "type_info": "Text" + "type_info": "Null" } ], "parameters": { diff --git a/packages/app-lib/.sqlx/query-8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8.json b/packages/app-lib/.sqlx/query-c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9.json similarity index 92% rename from packages/app-lib/.sqlx/query-8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8.json rename to packages/app-lib/.sqlx/query-c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9.json index ce837f5136..75b44104e7 100644 --- a/packages/app-lib/.sqlx/query-8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8.json +++ b/packages/app-lib/.sqlx/query-c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9.json @@ -1,6 +1,6 @@ { "db_name": "SQLite", - "query": "\n SELECT\n path, install_stage, launcher_feature_version, name, icon_path,\n game_version, protocol_version, mod_loader, mod_loader_version,\n json(groups) as \"groups!: serde_json::Value\",\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path,\n json(override_extra_launch_args) as \"override_extra_launch_args!: serde_json::Value\", json(override_custom_env_vars) as \"override_custom_env_vars!: serde_json::Value\",\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit\n FROM profiles\n WHERE path IN (SELECT value FROM json_each($1))", + "query": "\n SELECT\n path, install_stage, launcher_feature_version, name, icon_path,\n game_version, protocol_version, mod_loader, mod_loader_version,\n json(groups) as \"groups!: serde_json::Value\",\n linked_project_id, linked_version_id, locked,\n created, modified, last_played,\n submitted_time_played, recent_time_played,\n override_java_path,\n json(override_extra_launch_args) as \"override_extra_launch_args!: serde_json::Value\", json(override_custom_env_vars) as \"override_custom_env_vars!: serde_json::Value\",\n override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y,\n override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit\n FROM profiles\n WHERE 1=$1", "describe": { "columns": [ { @@ -138,14 +138,9 @@ "ordinal": 26, "type_info": "Text" }, - { - "name": "override_hook_wrapper_type", - "ordinal": 27, - "type_info": "Text" - }, { "name": "override_hook_post_exit", - "ordinal": 28, + "ordinal": 27, "type_info": "Text" } ], @@ -180,9 +175,8 @@ true, true, true, - false, true ] }, - "hash": "8e6ad0d63943c44a2931a2e4210bcf48e157e24811cef6837e41ba10902d6ea8" + "hash": "c108849d77c7627d6a11d5be34984938c41283e6091a1301fc3ca0b355ffcfa9" } diff --git a/packages/app-lib/migrations/20250705153720_wrapper_args.sql b/packages/app-lib/migrations/20250705153720_wrapper_args.sql deleted file mode 100644 index dabda80f41..0000000000 --- a/packages/app-lib/migrations/20250705153720_wrapper_args.sql +++ /dev/null @@ -1,2 +0,0 @@ -ALTER TABLE profiles ADD COLUMN override_hook_wrapper_type TEXT NOT NULL DEFAULT 'path'; -ALTER TABLE settings ADD COLUMN hook_wrapper_type TEXT NOT NULL DEFAULT 'path'; diff --git a/packages/app-lib/src/api/profile/create.rs b/packages/app-lib/src/api/profile/create.rs index 4eddb17fab..20ec874a0b 100644 --- a/packages/app-lib/src/api/profile/create.rs +++ b/packages/app-lib/src/api/profile/create.rs @@ -1,9 +1,7 @@ //! Theseus profile management interface use crate::launcher::get_loader_version_from_profile; use crate::settings::Hooks; -use crate::state::{ - LauncherFeatureVersion, LinkedData, ProfileInstallStage, WrapperType, -}; +use crate::state::{LauncherFeatureVersion, LinkedData, ProfileInstallStage}; use crate::util::io::{self, canonicalize}; use crate::{ErrorKind, pack, profile}; pub use crate::{State, state::Profile}; @@ -99,7 +97,6 @@ pub async fn profile_create( hooks: Hooks { pre_launch: None, wrapper: None, - wrapper_type: WrapperType::Path, post_exit: None, }, }; diff --git a/packages/app-lib/src/state/legacy_converter.rs b/packages/app-lib/src/state/legacy_converter.rs index a2786e8341..7a04defde6 100644 --- a/packages/app-lib/src/state/legacy_converter.rs +++ b/packages/app-lib/src/state/legacy_converter.rs @@ -1,7 +1,7 @@ use crate::data::{Dependency, ProjectType, User, Version}; use crate::jre::check_jre; use crate::prelude::ModLoader; -use crate::state::{self, WrapperType}; +use crate::state; use crate::state::{ CacheValue, CachedEntry, CachedFile, CachedFileHash, CachedFileUpdate, Credentials, DefaultPage, DependencyType, DeviceToken, DeviceTokenKey, @@ -379,7 +379,6 @@ where .hooks .as_ref() .and_then(|x| x.wrapper.clone()), - wrapper_type: WrapperType::Path, post_exit: profile.hooks.and_then(|x| x.post_exit), }, } diff --git a/packages/app-lib/src/state/profiles.rs b/packages/app-lib/src/state/profiles.rs index 7a380bd954..7cf70a2850 100644 --- a/packages/app-lib/src/state/profiles.rs +++ b/packages/app-lib/src/state/profiles.rs @@ -2,7 +2,7 @@ use super::settings::{Hooks, MemorySettings, WindowSize}; use crate::profile::get_full_path; use crate::state::server_join_log::JoinLogEntry; use crate::state::{ - CacheBehaviour, CachedEntry, CachedFileHash, WrapperType, cache_file_hash, + CacheBehaviour, CachedEntry, CachedFileHash, cache_file_hash, }; use crate::util; use crate::util::fetch::{FetchSemaphore, IoSemaphore, write_cached_icon}; @@ -302,7 +302,6 @@ struct ProfileQueryResult { override_mc_game_resolution_y: Option, override_hook_pre_launch: Option, override_hook_wrapper: Option, - override_hook_wrapper_type: String, override_hook_post_exit: Option, protocol_version: Option, launcher_feature_version: String, @@ -373,9 +372,6 @@ impl TryFrom for Profile { hooks: Hooks { pre_launch: x.override_hook_pre_launch, wrapper: x.override_hook_wrapper, - wrapper_type: WrapperType::from_string( - &x.override_hook_wrapper_type, - ), post_exit: x.override_hook_post_exit, }, }) @@ -397,7 +393,7 @@ macro_rules! select_profiles_with_predicate { override_java_path, json(override_extra_launch_args) as "override_extra_launch_args!: serde_json::Value", json(override_custom_env_vars) as "override_custom_env_vars!: serde_json::Value", override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y, - override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit + override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit FROM profiles "# + $predicate, @@ -478,8 +474,6 @@ impl Profile { let extra_launch_args = serde_json::to_string(&self.extra_launch_args)?; let custom_env_vars = serde_json::to_string(&self.custom_env_vars)?; - let override_hook_wrapper_type = self.hooks.wrapper_type.as_str(); - sqlx::query!( " INSERT INTO profiles ( @@ -491,7 +485,7 @@ impl Profile { submitted_time_played, recent_time_played, override_java_path, override_extra_launch_args, override_custom_env_vars, override_mc_memory_max, override_mc_force_fullscreen, override_mc_game_resolution_x, override_mc_game_resolution_y, - override_hook_pre_launch, override_hook_wrapper, override_hook_wrapper_type, override_hook_post_exit, + override_hook_pre_launch, override_hook_wrapper, override_hook_post_exit, protocol_version, launcher_feature_version ) VALUES ( @@ -503,8 +497,8 @@ impl Profile { $15, $16, $17, jsonb($18), jsonb($19), $20, $21, $22, $23, - $24, $25, $26, $27, - $28, $29 + $24, $25, $26, + $27, $28 ) ON CONFLICT (path) DO UPDATE SET install_stage = $2, @@ -538,11 +532,10 @@ impl Profile { override_hook_pre_launch = $24, override_hook_wrapper = $25, - override_hook_wrapper_type = $26, - override_hook_post_exit = $27, + override_hook_post_exit = $26, - protocol_version = $28, - launcher_feature_version = $29 + protocol_version = $27, + launcher_feature_version = $28 ", self.path, install_stage, @@ -569,7 +562,6 @@ impl Profile { game_resolution_y, self.hooks.pre_launch, self.hooks.wrapper, - override_hook_wrapper_type, self.hooks.post_exit, self.protocol_version, launcher_feature_version diff --git a/packages/app-lib/src/state/settings.rs b/packages/app-lib/src/state/settings.rs index ff423b124f..2615e150ef 100644 --- a/packages/app-lib/src/state/settings.rs +++ b/packages/app-lib/src/state/settings.rs @@ -62,7 +62,7 @@ impl Settings { onboarded, json(extra_launch_args) extra_launch_args, json(custom_env_vars) custom_env_vars, mc_memory_max, mc_force_fullscreen, mc_game_resolution_x, mc_game_resolution_y, hide_on_process_start, - hook_pre_launch, hook_wrapper, hook_wrapper_type, hook_post_exit, + hook_pre_launch, hook_wrapper, hook_post_exit, custom_dir, prev_custom_dir, migrated, json(feature_flags) feature_flags, toggle_sidebar FROM settings " @@ -107,7 +107,6 @@ impl Settings { hooks: Hooks { pre_launch: res.hook_pre_launch, wrapper: res.hook_wrapper, - wrapper_type: WrapperType::from_string(&res.hook_wrapper_type), post_exit: res.hook_post_exit, }, custom_dir: res.custom_dir, @@ -131,7 +130,6 @@ impl Settings { let default_page = self.default_page.as_str(); let extra_launch_args = serde_json::to_string(&self.extra_launch_args)?; let custom_env_vars = serde_json::to_string(&self.custom_env_vars)?; - let hook_wrapper_type = self.hooks.wrapper_type.as_str(); let feature_flags = serde_json::to_string(&self.feature_flags)?; sqlx::query!( @@ -164,16 +162,15 @@ impl Settings { hook_pre_launch = $20, hook_wrapper = $21, - hook_wrapper_type = $22, - hook_post_exit = $23, + hook_post_exit = $22, - custom_dir = $24, - prev_custom_dir = $25, - migrated = $26, + custom_dir = $23, + prev_custom_dir = $24, + migrated = $25, - toggle_sidebar = $27, - feature_flags = $28, - hide_nametag_skins_page = $29 + toggle_sidebar = $26, + feature_flags = $27, + hide_nametag_skins_page = $28 ", max_concurrent_writes, max_concurrent_downloads, @@ -196,7 +193,6 @@ impl Settings { self.hide_on_process_start, self.hooks.pre_launch, self.hooks.wrapper, - hook_wrapper_type, self.hooks.post_exit, self.custom_dir, self.prev_custom_dir, @@ -253,31 +249,6 @@ pub struct MemorySettings { #[derive(Serialize, Deserialize, Debug, Clone, Copy)] pub struct WindowSize(pub u16, pub u16); -/// Should wrapper string be interpreted as a full command or direct path to executable -#[derive(Serialize, Deserialize, Debug, Clone)] -#[serde(rename_all = "snake_case")] -pub enum WrapperType { - Path, - Command, -} - -impl WrapperType { - pub fn as_str(&self) -> &'static str { - match self { - WrapperType::Path => "path", - WrapperType::Command => "command", - } - } - - pub fn from_string(string: &str) -> Self { - match string { - "path" => Self::Path, - "command" => Self::Command, - _ => Self::Path, - } - } -} - /// Game initialization hooks #[derive(Serialize, Deserialize, Debug, Clone)] #[serde_with::serde_as] @@ -286,7 +257,6 @@ pub struct Hooks { pub pre_launch: Option, #[serde_as(as = "serde_with::NoneAsEmptyString")] pub wrapper: Option, - pub wrapper_type: WrapperType, #[serde_as(as = "serde_with::NoneAsEmptyString")] pub post_exit: Option, } From 1a43add7a77107f7dccdb2cf3128357ccf7d8496 Mon Sep 17 00:00:00 2001 From: Garrett Webb Date: Sat, 12 Jul 2025 15:42:17 -0400 Subject: [PATCH 5/7] handle wrapper migration --- packages/app-lib/src/state/profiles.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/app-lib/src/state/profiles.rs b/packages/app-lib/src/state/profiles.rs index 7cf70a2850..3f5f011eda 100644 --- a/packages/app-lib/src/state/profiles.rs +++ b/packages/app-lib/src/state/profiles.rs @@ -103,10 +103,11 @@ impl ProfileInstallStage { pub enum LauncherFeatureVersion { None, MigratedServerLastPlayTime, + MigratedWrapperHook, } impl LauncherFeatureVersion { - pub const MOST_RECENT: Self = Self::MigratedServerLastPlayTime; + pub const MOST_RECENT: Self = Self::MigratedWrapperHook; pub fn as_str(&self) -> &'static str { match *self { @@ -114,6 +115,7 @@ impl LauncherFeatureVersion { Self::MigratedServerLastPlayTime => { "migrated_server_last_play_time" } + Self::MigratedWrapperHook => "migrated_wrapper_hook", } } @@ -123,6 +125,7 @@ impl LauncherFeatureVersion { "migrated_server_last_play_time" => { Self::MigratedServerLastPlayTime } + "migrated_wrapper_hook" => Self::MigratedWrapperHook, _ => Self::None, } } @@ -782,6 +785,20 @@ impl Profile { self.launcher_feature_version = LauncherFeatureVersion::MigratedServerLastPlayTime; } + LauncherFeatureVersion::MigratedServerLastPlayTime => { + if let Some(wrapper) = self.hooks.wrapper.as_ref() { + self.hooks.wrapper = Some( + shlex::Quoter::new() + .allow_nul(true) + .quote(wrapper) + .unwrap() + .to_string(), + ) + } + + self.launcher_feature_version = + LauncherFeatureVersion::MigratedWrapperHook; + } LauncherFeatureVersion::MOST_RECENT => unreachable!( "LauncherFeatureVersion::MOST_RECENT was not updated" ), From 32a48f466042a464bc14e709ccecd084ed157a4c Mon Sep 17 00:00:00 2001 From: Garrett Webb Date: Mon, 14 Jul 2025 01:58:51 -0400 Subject: [PATCH 6/7] Update packages/app-lib/src/launcher/mod.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com> Signed-off-by: Garrett Webb --- packages/app-lib/src/launcher/mod.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/app-lib/src/launcher/mod.rs b/packages/app-lib/src/launcher/mod.rs index d72ef26653..6e3c9cc4c6 100644 --- a/packages/app-lib/src/launcher/mod.rs +++ b/packages/app-lib/src/launcher/mod.rs @@ -573,9 +573,7 @@ pub async fn launch_minecraft( ))?; let mut command = Command::new(cmd); - hook.for_each(|arg| { - command.arg(arg); - }); + command.args(hook); command.arg(&java_version.path); command } From d0dcc4c44a9c335cacb9ee001aef5eb9d317432a Mon Sep 17 00:00:00 2001 From: Garrett Webb Date: Mon, 14 Jul 2025 12:43:40 -0400 Subject: [PATCH 7/7] migrate pre-launch and post-exit --- packages/app-lib/src/state/profiles.rs | 34 +++++++++++++++++--------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/packages/app-lib/src/state/profiles.rs b/packages/app-lib/src/state/profiles.rs index 3f5f011eda..6a523c036d 100644 --- a/packages/app-lib/src/state/profiles.rs +++ b/packages/app-lib/src/state/profiles.rs @@ -103,11 +103,11 @@ impl ProfileInstallStage { pub enum LauncherFeatureVersion { None, MigratedServerLastPlayTime, - MigratedWrapperHook, + MigratedLaunchHooks, } impl LauncherFeatureVersion { - pub const MOST_RECENT: Self = Self::MigratedWrapperHook; + pub const MOST_RECENT: Self = Self::MigratedLaunchHooks; pub fn as_str(&self) -> &'static str { match *self { @@ -115,7 +115,7 @@ impl LauncherFeatureVersion { Self::MigratedServerLastPlayTime => { "migrated_server_last_play_time" } - Self::MigratedWrapperHook => "migrated_wrapper_hook", + Self::MigratedLaunchHooks => "migrated_launch_hooks", } } @@ -125,7 +125,7 @@ impl LauncherFeatureVersion { "migrated_server_last_play_time" => { Self::MigratedServerLastPlayTime } - "migrated_wrapper_hook" => Self::MigratedWrapperHook, + "migrated_launch_hooks" => Self::MigratedLaunchHooks, _ => Self::None, } } @@ -786,18 +786,28 @@ impl Profile { LauncherFeatureVersion::MigratedServerLastPlayTime; } LauncherFeatureVersion::MigratedServerLastPlayTime => { + let q = shlex::Quoter::new().allow_nul(true); + + // Previously split by spaces + if let Some(pre_launch) = self.hooks.pre_launch.as_ref() { + self.hooks.pre_launch = + Some(q.join(pre_launch.split(' ')).unwrap()) + } + + // Previously treated as complete path to command if let Some(wrapper) = self.hooks.wrapper.as_ref() { - self.hooks.wrapper = Some( - shlex::Quoter::new() - .allow_nul(true) - .quote(wrapper) - .unwrap() - .to_string(), - ) + self.hooks.wrapper = + Some(q.quote(wrapper).unwrap().to_string()) + } + + // Previously split by spaces + if let Some(post_exit) = self.hooks.post_exit.as_ref() { + self.hooks.post_exit = + Some(q.join(post_exit.split(' ')).unwrap()) } self.launcher_feature_version = - LauncherFeatureVersion::MigratedWrapperHook; + LauncherFeatureVersion::MigratedLaunchHooks; } LauncherFeatureVersion::MOST_RECENT => unreachable!( "LauncherFeatureVersion::MOST_RECENT was not updated"