feat: instances v2 (#6431)

* feat: base of instances v2

* feat: use old profiles with compat layer

* prototype: instances v2

* fix: install_from using profile

* fix: skins migration fix

* fix: frontend still using profile path

* fix: add update proj multiselect guard

* fix: cargo fmt

* fix: content missing fields

* feat: break up app-lib/api/instance.rs

* fix: check_content_updates mismatch

* fix: updater modal cleanup w/new structure

* feat: better update all handling

* fix: remove preview_update_all

* fix: feedback on bulk update + lint

* fix: rem transitions

* fix: change to jsonb

* feat: app db backup after update

* fix: lint

* fix: sqlx prepare + use sqlx macros

* fix: lint

* fix: bugs

* feat: defuck the installing process up

* fix: bug of hell

* fix: shear

* fix: fmt

* fix: install progress spacing + change mc/content/overrides to bytes

* fix: lint

* fix: prepr

* fix: navtabs anim not working in app

* fix: worlds.vue improvements + browse page fixes

* feat: optimise queries + adapter fns

* fix: lint

* fix: lint

* feat: shared modrinth-content-management crate (#6469)

* feat: disable warnings setting

* feat: add instances shortcuts (#6329)

* Add modrinth://launch deep link to start a profile

Support external profile launching via modrinth://launch/{profile_path} for integrations such as Stream Deck.

* Change route to /launch/profile/{id} for future extensibility

* fix: ensure profile path is url decoded

* fix: URL-decode profile path from deep link

* fix: use urlencoding crate for URL decoding

* feat: implement app instance shortcuts

* feat: change windows shortcut creation to use windows api instead

* feat: implement creating a shortcut launching world/server

* format

* fmt

* fix multiline inline tables

* pnpm prepr

* feat: move create shortcut to last item

* refactor: split up shortcuts.rs for individual platforms

* refactor: turn profile launch url into url type

* use string literal and add safety comment

* pt2

* refactor: rename anything that's profile into instance

* update mac shortcut

---------

Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com>

---------

Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com>
This commit is contained in:
Calum H.
2026-06-25 21:19:29 +00:00
committed by GitHub
co-authored by DJCheesusReal Truman Gao
parent ef4044534f
commit 734720e11e
353 changed files with 24745 additions and 9771 deletions
+2
View File
@@ -26,6 +26,7 @@ import { LabrinthAuthV2Module } from './labrinth/auth/v2'
import { LabrinthBillingInternalModule } from './labrinth/billing/internal'
import { LabrinthCampaignInternalModule } from './labrinth/campaign/internal'
import { LabrinthCollectionsModule } from './labrinth/collections'
import { LabrinthContentV3Module } from './labrinth/content/v3'
import { LabrinthExternalProjectsInternalModule } from './labrinth/external-projects/internal'
import { LabrinthFriendsV3Module } from './labrinth/friends/v3'
import { LabrinthGlobalsInternalModule } from './labrinth/globals/internal'
@@ -97,6 +98,7 @@ export const MODULE_REGISTRY = {
labrinth_billing_internal: LabrinthBillingInternalModule,
labrinth_campaign_internal: LabrinthCampaignInternalModule,
labrinth_collections: LabrinthCollectionsModule,
labrinth_content_v3: LabrinthContentV3Module,
labrinth_external_projects_internal: LabrinthExternalProjectsInternalModule,
labrinth_friends_v3: LabrinthFriendsV3Module,
labrinth_globals_internal: LabrinthGlobalsInternalModule,
@@ -0,0 +1,19 @@
import { AbstractModule } from '../../../core/abstract-module'
import type { Labrinth } from '../types'
export class LabrinthContentV3Module extends AbstractModule {
public getModuleID(): string {
return 'labrinth_content_v3'
}
public async resolve(
request: Labrinth.Content.v3.ResolveContentRequest,
): Promise<Labrinth.Content.v3.ResolveContentPlan> {
return this.client.request<Labrinth.Content.v3.ResolveContentPlan>('/content/resolve', {
api: 'labrinth',
version: 3,
method: 'POST',
body: request,
})
}
}
@@ -4,6 +4,7 @@ export * from './auth/internal'
export * from './auth/v2'
export * from './billing/internal'
export * from './collections'
export * from './content/v3'
export * from './external-projects/internal'
export * from './friends/v3'
export * from './globals/internal'
@@ -2,6 +2,57 @@ import type { RawDecimal } from '../../utils/types'
import type { ISO3166 } from '../iso3166/types'
export namespace Labrinth {
export namespace Content {
export namespace v3 {
export type ContentType =
| 'mod'
| 'plugin'
| 'datapack'
| 'resourcepack'
| 'shader'
| 'modpack'
export type ResolutionPreferences = {
game_versions?: string[]
loaders?: string[]
}
export type ResolveContentRequest = {
project_id: string
version_id?: string | null
content_type: ContentType
selected?: ResolutionPreferences
target?: ResolutionPreferences
existing_project_ids?: string[]
}
export type ResolveContentPlan = {
primary: ResolvedContent
dependencies: ResolvedContent[]
skipped: SkippedContent[]
}
export type ResolvedContent = {
project_id: string
version_id: string
dependent_on_version_id?: string | null
}
export type SkippedContent = {
project_id: string
version_id?: string | null
dependent_on_version_id?: string | null
reason:
| 'already_installed'
| 'duplicate_project'
| 'conflicting_dependency'
| 'no_compatible_version'
| 'missing_version'
| 'quilt_fabric_api'
}
}
}
export namespace Campaign {
export namespace Internal {
export type CampaignInfo = {
@@ -1,26 +1,21 @@
{
"db_name": "SQLite",
"query": "\n SELECT profile_path, host, port, join_time\n FROM join_log\n WHERE profile_path = $1\n ",
"query": "\n\t\tSELECT host, port, join_time\n\t\tFROM join_log\n\t\tWHERE instance_id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "profile_path",
"name": "host",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "host",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "port",
"ordinal": 2,
"ordinal": 1,
"type_info": "Integer"
},
{
"name": "join_time",
"ordinal": 3,
"ordinal": 2,
"type_info": "Integer"
}
],
@@ -28,11 +23,10 @@
"Right": 1
},
"nullable": [
false,
false,
false,
false
]
},
"hash": "54a8629d3d660bfeed582b08aee4a8f1543f6b962e54ecab491a006d28c9a18c"
"hash": "04f5865f385587a5549968435989a86ebcae5a03e52e90d9b0f08f1c4263b4c8"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tDELETE FROM instance_groups\n\t\tWHERE instance_id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 1
},
"nullable": []
},
"hash": "073e4c6fbf434f94c8015076b50c099d57f217b4c1f4a63761b5e07129eb1f84"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT group_name\n\t\tFROM instance_groups\n\t\tWHERE instance_id = ?\n\t\tORDER BY group_name\n\t\t",
"describe": {
"columns": [
{
"name": "group_name",
"ordinal": 0,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false
]
},
"hash": "0812e019f53d81d527ea15cbf7a6416ad15182131cfb6de3f2dab153c74a553c"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE install_jobs\n\t\tSET instance_id = ?, state = ?, modified = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "15b4f72d367d329690f5daddafbdf0e51a285e35404053d62492e8df5fc7132f"
}
@@ -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"
}
@@ -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"
}
@@ -0,0 +1,68 @@
{
"db_name": "SQLite",
"query": "\n\t\t\tSELECT\n\t\t\t\tid AS \"id!: String\",\n\t\t\t\tinstance_id,\n\t\t\t\tkind AS \"kind!: String\",\n\t\t\t\tstatus AS \"status!: String\",\n\t\t\t\tstate AS \"state!: String\",\n\t\t\t\tcreated AS \"created!: i64\",\n\t\t\t\tmodified AS \"modified!: i64\",\n\t\t\t\tfinished,\n\t\t\t\tdismissed AS \"dismissed!: i64\"\n\t\t\tFROM install_jobs\n\t\t\tWHERE dismissed = 0\n\t\t\tORDER BY created ASC\n\t\t\t",
"describe": {
"columns": [
{
"name": "id!: String",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "kind!: String",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "status!: String",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "state!: String",
"ordinal": 4,
"type_info": "Null"
},
{
"name": "created!: i64",
"ordinal": 5,
"type_info": "Integer"
},
{
"name": "modified!: i64",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "finished",
"ordinal": 7,
"type_info": "Integer"
},
{
"name": "dismissed!: i64",
"ordinal": 8,
"type_info": "Integer"
}
],
"parameters": {
"Right": 0
},
"nullable": [
false,
true,
false,
false,
false,
false,
false,
true,
false
]
},
"hash": "1dd81b3ad9385bee89722711f41056178bd088841064a4b3086cdcf2458632ad"
}
@@ -0,0 +1,92 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_content_entries\n\t\tWHERE content_set_id = ?\n\t\tORDER BY added_at ASC, id ASC\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "content_set_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "file_id",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "project_type",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "project_id",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "version_id",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "source_kind",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "server_requirement",
"ordinal": 8,
"type_info": "Text"
},
{
"name": "client_requirement",
"ordinal": 9,
"type_info": "Text"
},
{
"name": "enabled",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "added_at",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "modified_at",
"ordinal": 12,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
true,
false,
true,
true,
false,
false,
false,
false,
false,
false
]
},
"hash": "1f0fe2b4a4c39b3083cd34f4816d2d2c7babd876d979d275ad62cf70cde678fe"
}
@@ -0,0 +1,74 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_files\n\t\tWHERE instance_id = ?\n\t\tORDER BY relative_path ASC\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "relative_path",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "file_name",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "enabled",
"ordinal": 4,
"type_info": "Integer"
},
{
"name": "sha1",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "size",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "missing",
"ordinal": 7,
"type_info": "Integer"
},
{
"name": "added_at",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified_at",
"ordinal": 9,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
]
},
"hash": "215fd59e6532ee2994dc78ef187c33a60a17a64e75b3ae0e27ef8a7b441af710"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\t\tDELETE FROM attached_world_data\n\t\t\tWHERE instance_id = ? and world_type = ? and world_id = ?\n\t\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 3
},
"nullable": []
},
"hash": "218a58ccb9108a8b89100181ecc05d57a0ef65a7b6fad6cbb1954576f018b6e9"
}
@@ -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, preferred_update_channel,\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, $12,\n $13, $14, $15,\n $16, $17,\n $18, jsonb($19), jsonb($20),\n $21, $22, $23, $24,\n $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 preferred_update_channel = $12,\n\n created = $13,\n modified = $14,\n last_played = $15,\n\n submitted_time_played = $16,\n recent_time_played = $17,\n\n override_java_path = $18,\n override_extra_launch_args = jsonb($19),\n override_custom_env_vars = jsonb($20),\n override_mc_memory_max = $21,\n override_mc_force_fullscreen = $22,\n override_mc_game_resolution_x = $23,\n override_mc_game_resolution_y = $24,\n\n override_hook_pre_launch = $25,\n override_hook_wrapper = $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": "22202dacf6b5bade90c909cb4a663a1388ef538e4b80680bce4b668b182b4f42"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO attached_world_data (instance_id, world_type, world_id, project_id)\n\t\tVALUES (?, ?, ?, ?)\n\t\tON CONFLICT (instance_id, world_type, world_id) DO UPDATE\n\t\t\tSET project_id = excluded.project_id\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "248b8cdecd8e735816eeefc62018dc72c5c529f1e15e164c48207cb5a30781d7"
}
@@ -0,0 +1,92 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instances\n\t\tWHERE path = ?\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "path",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "applied_content_set_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "install_stage",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "launcher_feature_version",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "update_channel",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "icon_path",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "created",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "last_played",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "submitted_time_played",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "recent_time_played",
"ordinal": 12,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
true,
false,
false
]
},
"hash": "24f680696234c38dc297af9bff2c0b4c77337cfe53e39de37cc0201e2d973533"
}
@@ -0,0 +1,98 @@
{
"db_name": "SQLite",
"query": "\n SELECT\n instance_id,\n link_kind,\n modrinth_project_id,\n modrinth_version_id,\n server_project_id,\n content_project_id,\n content_version_id,\n hosting_server_id,\n json(hosting_instance_ids) AS \"hosting_instance_ids?: String\",\n hosting_active_instance_id,\n shared_instance_id,\n imported_name,\n imported_version_number,\n imported_filename\n FROM instance_links\n WHERE instance_id = ?\n ",
"describe": {
"columns": [
{
"name": "instance_id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "link_kind",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "modrinth_project_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "modrinth_version_id",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "server_project_id",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "content_project_id",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "content_version_id",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "hosting_server_id",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "hosting_instance_ids?: String",
"ordinal": 8,
"type_info": "Null"
},
{
"name": "hosting_active_instance_id",
"ordinal": 9,
"type_info": "Text"
},
{
"name": "shared_instance_id",
"ordinal": 10,
"type_info": "Text"
},
{
"name": "imported_name",
"ordinal": 11,
"type_info": "Text"
},
{
"name": "imported_version_number",
"ordinal": 12,
"type_info": "Text"
},
{
"name": "imported_filename",
"ordinal": 13,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
true,
true,
true,
true,
true,
null,
true,
true,
true,
true,
true
]
},
"hash": "26d23094e9d76e5595d5e5a0cd6bc631c45e6090bf40b26e25024de434fe0281"
}
@@ -0,0 +1,68 @@
{
"db_name": "SQLite",
"query": "\n\t\t\tSELECT\n\t\t\t\tid AS \"id!: String\",\n\t\t\t\tinstance_id,\n\t\t\t\tkind AS \"kind!: String\",\n\t\t\t\tstatus AS \"status!: String\",\n\t\t\t\tstate AS \"state!: String\",\n\t\t\t\tcreated AS \"created!: i64\",\n\t\t\t\tmodified AS \"modified!: i64\",\n\t\t\t\tfinished,\n\t\t\t\tdismissed AS \"dismissed!: i64\"\n\t\t\tFROM install_jobs\n\t\t\tWHERE dismissed = 0 AND status IN ('queued', 'running', 'failed', 'interrupted')\n\t\t\tORDER BY created ASC\n\t\t\t",
"describe": {
"columns": [
{
"name": "id!: String",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "kind!: String",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "status!: String",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "state!: String",
"ordinal": 4,
"type_info": "Null"
},
{
"name": "created!: i64",
"ordinal": 5,
"type_info": "Integer"
},
{
"name": "modified!: i64",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "finished",
"ordinal": 7,
"type_info": "Integer"
},
{
"name": "dismissed!: i64",
"ordinal": 8,
"type_info": "Integer"
}
],
"parameters": {
"Right": 0
},
"nullable": [
false,
true,
false,
false,
false,
false,
false,
true,
false
]
},
"hash": "292785598cdf815a69bed6f31d2159d689861c0fa57571e727ac9602c4e05a6d"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n INSERT OR REPLACE INTO instance_launch_overrides (\n instance_id,\n overrides\n )\n VALUES (?, jsonb(?))\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "2c5df36906b6e5e37e45698a5ca4aa7e2b627f5f6af4e3467c91b341bec274a3"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO app_metadata (key, value, updated_at)\n\t\tVALUES ('app_version', ?, unixepoch())\n\t\tON CONFLICT(key) DO UPDATE SET\n\t\t\tvalue = excluded.value,\n\t\t\tupdated_at = excluded.updated_at\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 1
},
"nullable": []
},
"hash": "30584f38b7833c2b772a644dfcf2832810a9599e6bb655f775df7d0cdb25dd30"
}
@@ -0,0 +1,80 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT cs.*\n\t\tFROM instances i\n\t\tINNER JOIN instance_content_sets cs\n\t\t\tON cs.id = i.applied_content_set_id\n\t\tWHERE i.id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "source_kind",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "status",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "game_version",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "protocol_version",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "loader",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "loader_version",
"ordinal": 8,
"type_info": "Text"
},
{
"name": "created",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "modified",
"ordinal": 10,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
true,
false,
false
]
},
"hash": "322be8068c58f2d22a3f3513f4fc1eb59ef1f4ea6f15de754a22cfbc3e316bce"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO install_jobs (\n\t\t\tid, instance_id, kind, status, state, created, modified, finished, dismissed\n\t\t)\n\t\tVALUES (?, ?, ?, ?, ?, ?, ?, NULL, 0)\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 7
},
"nullable": []
},
"hash": "33c45b23edced4d38208ecf1e4abb5ec1b66d75a94176c6b602bbc132aa71c4b"
}
@@ -0,0 +1,92 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instances\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "path",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "applied_content_set_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "install_stage",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "launcher_feature_version",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "update_channel",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "icon_path",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "created",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "last_played",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "submitted_time_played",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "recent_time_played",
"ordinal": 12,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
true,
false,
false
]
},
"hash": "399142056f8a1325d885c37ca8f2e593c961d09a3933066aaed01e27ef5bd283"
}
@@ -0,0 +1,92 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instances\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "path",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "applied_content_set_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "install_stage",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "launcher_feature_version",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "update_channel",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "icon_path",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "created",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "last_played",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "submitted_time_played",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "recent_time_played",
"ordinal": 12,
"type_info": "Integer"
}
],
"parameters": {
"Right": 0
},
"nullable": [
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
true,
false,
false
]
},
"hash": "3a37cede69531f9efc2bbfc4adc92700c486467dd187f16bf22b34289fccff98"
}
@@ -0,0 +1,74 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_files\n\t\tWHERE instance_id = ? AND relative_path = ?\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "relative_path",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "file_name",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "enabled",
"ordinal": 4,
"type_info": "Integer"
},
{
"name": "sha1",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "size",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "missing",
"ordinal": 7,
"type_info": "Integer"
},
{
"name": "added_at",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified_at",
"ordinal": 9,
"type_info": "Integer"
}
],
"parameters": {
"Right": 2
},
"nullable": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
]
},
"hash": "3a6a810f35329133faf35bec48d55230904ec66d400171e94e9d36af24c458f3"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tDELETE FROM instance_files\n\t\tWHERE instance_id = ? AND relative_path = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "407ffa80ed6ab4cae027543e2d99fadbea51f57a4bb5407751e6f47febdbd08e"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instances\n\t\tSET\n\t\t\tsubmitted_time_played = submitted_time_played + ?,\n\t\t\trecent_time_played = 0,\n\t\t\tmodified = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 3
},
"nullable": []
},
"hash": "44f82d6bbf66f685e20bee5c9c58587c035eb94098831c690739393870d4e814"
}
@@ -0,0 +1,248 @@
{
"db_name": "SQLite",
"query": "\n SELECT\n i.id AS \"id!: String\",\n i.path AS \"path!: String\",\n i.applied_content_set_id AS \"applied_content_set_id?: String\",\n i.install_stage AS \"install_stage!: String\",\n i.launcher_feature_version AS \"launcher_feature_version!: String\",\n i.update_channel AS \"update_channel!: String\",\n i.name AS \"name!: String\",\n i.icon_path AS \"icon_path?: String\",\n i.created AS \"created!: i64\",\n i.modified AS \"modified!: i64\",\n i.last_played AS \"last_played?: i64\",\n i.submitted_time_played AS \"submitted_time_played!: i64\",\n i.recent_time_played AS \"recent_time_played!: i64\",\n cs.id AS \"content_set_id?: String\",\n cs.instance_id AS \"content_set_instance_id?: String\",\n cs.name AS \"content_set_name?: String\",\n cs.source_kind AS \"content_set_source_kind?: String\",\n cs.status AS \"content_set_status?: String\",\n cs.game_version AS \"content_set_game_version?: String\",\n cs.protocol_version AS \"content_set_protocol_version?: i64\",\n cs.loader AS \"content_set_loader?: String\",\n cs.loader_version AS \"content_set_loader_version?: String\",\n cs.created AS \"content_set_created?: i64\",\n cs.modified AS \"content_set_modified?: i64\",\n COALESCE(link.link_kind, 'unmanaged') AS \"link_kind!: String\",\n link.modrinth_project_id AS \"modrinth_project_id?: String\",\n link.modrinth_version_id AS \"modrinth_version_id?: String\",\n link.server_project_id AS \"server_project_id?: String\",\n link.content_project_id AS \"content_project_id?: String\",\n link.content_version_id AS \"content_version_id?: String\",\n link.hosting_server_id AS \"hosting_server_id?: String\",\n json(link.hosting_instance_ids) AS \"hosting_instance_ids?: String\",\n link.hosting_active_instance_id AS \"hosting_active_instance_id?: String\",\n link.shared_instance_id AS \"shared_instance_id?: String\",\n link.imported_name AS \"imported_name?: String\",\n link.imported_version_number AS \"imported_version_number?: String\",\n link.imported_filename AS \"imported_filename?: String\",\n '[]' AS \"groups!: String\",\n json(overrides.overrides) AS \"launch_overrides?: String\"\n FROM instances i\n LEFT JOIN instance_content_sets cs\n ON cs.id = i.applied_content_set_id\n AND cs.instance_id = i.id\n LEFT JOIN instance_links link\n ON link.instance_id = i.id\n LEFT JOIN instance_launch_overrides overrides\n ON overrides.instance_id = i.id\n WHERE i.id = ?\n ",
"describe": {
"columns": [
{
"name": "id!: String",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "path!: String",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "applied_content_set_id?: String",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "install_stage!: String",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "launcher_feature_version!: String",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "update_channel!: String",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "name!: String",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "icon_path?: String",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "created!: i64",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified!: i64",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "last_played?: i64",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "submitted_time_played!: i64",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "recent_time_played!: i64",
"ordinal": 12,
"type_info": "Integer"
},
{
"name": "content_set_id?: String",
"ordinal": 13,
"type_info": "Text"
},
{
"name": "content_set_instance_id?: String",
"ordinal": 14,
"type_info": "Text"
},
{
"name": "content_set_name?: String",
"ordinal": 15,
"type_info": "Text"
},
{
"name": "content_set_source_kind?: String",
"ordinal": 16,
"type_info": "Text"
},
{
"name": "content_set_status?: String",
"ordinal": 17,
"type_info": "Text"
},
{
"name": "content_set_game_version?: String",
"ordinal": 18,
"type_info": "Text"
},
{
"name": "content_set_protocol_version?: i64",
"ordinal": 19,
"type_info": "Integer"
},
{
"name": "content_set_loader?: String",
"ordinal": 20,
"type_info": "Text"
},
{
"name": "content_set_loader_version?: String",
"ordinal": 21,
"type_info": "Text"
},
{
"name": "content_set_created?: i64",
"ordinal": 22,
"type_info": "Integer"
},
{
"name": "content_set_modified?: i64",
"ordinal": 23,
"type_info": "Integer"
},
{
"name": "link_kind!: String",
"ordinal": 24,
"type_info": "Null"
},
{
"name": "modrinth_project_id?: String",
"ordinal": 25,
"type_info": "Text"
},
{
"name": "modrinth_version_id?: String",
"ordinal": 26,
"type_info": "Text"
},
{
"name": "server_project_id?: String",
"ordinal": 27,
"type_info": "Text"
},
{
"name": "content_project_id?: String",
"ordinal": 28,
"type_info": "Text"
},
{
"name": "content_version_id?: String",
"ordinal": 29,
"type_info": "Text"
},
{
"name": "hosting_server_id?: String",
"ordinal": 30,
"type_info": "Text"
},
{
"name": "hosting_instance_ids?: String",
"ordinal": 31,
"type_info": "Null"
},
{
"name": "hosting_active_instance_id?: String",
"ordinal": 32,
"type_info": "Text"
},
{
"name": "shared_instance_id?: String",
"ordinal": 33,
"type_info": "Text"
},
{
"name": "imported_name?: String",
"ordinal": 34,
"type_info": "Text"
},
{
"name": "imported_version_number?: String",
"ordinal": 35,
"type_info": "Text"
},
{
"name": "imported_filename?: String",
"ordinal": 36,
"type_info": "Text"
},
{
"name": "groups!: String",
"ordinal": 37,
"type_info": "Null"
},
{
"name": "launch_overrides?: String",
"ordinal": 38,
"type_info": "Null"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
true,
false,
false,
null,
true,
true,
true,
true,
true,
true,
null,
true,
true,
true,
true,
true,
null,
null
]
},
"hash": "474496fe9b4f0ae920ceef97176dac61544130300cdf2cfc8deb7fbf2efaf8c7"
}
@@ -0,0 +1,26 @@
{
"db_name": "SQLite",
"query": "\n SELECT id, name\n FROM instances\n WHERE id = ?\n ",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 1,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false
]
},
"hash": "4f77cf56fe22238aab41807ff8bce90b723db3f93d7f94c257275407294f25cc"
}
@@ -0,0 +1,32 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_content_set_remote_refs\n\t\tWHERE content_set_id = ?\n\t\tORDER BY ref_type ASC\n\t\t",
"describe": {
"columns": [
{
"name": "content_set_id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "ref_type",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "ref_id",
"ordinal": 2,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false
]
},
"hash": "4fcbab7d62067af3837c3028f947810ee5086d4dcd194d32d2636d9970461d86"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT id\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM instances\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE path = ?\n\t\t\t\t\t\t\t\t\t\t\t\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false
]
},
"hash": "5363aa346fdead6a331a5a209d0505315b9cbb5b842216db5585cc2f7f739180"
}
@@ -1,12 +0,0 @@
{
"db_name": "SQLite",
"query": "INSERT INTO attached_world_data (profile_path, world_type, world_id, project_id)\nVALUES ($1, $2, $3, $4)\nON CONFLICT (profile_path, world_type, world_id) DO UPDATE\n SET project_id = $4",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "53c45c036387a8dc8d978a6e4d28524a852b8dec409891cf2165876fb7ff0314"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n UPDATE instance_launch_overrides\n SET overrides = jsonb(json_set(\n overrides,\n '$.java_path',\n replace(json_extract(overrides, '$.java_path'), ?, ?)\n ))\n WHERE json_type(overrides, '$.java_path') = 'text'\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "555d8a24feefe6c53c26a7f72a2920654cf998c84bfdf2ae9e10fb82c4acbc03"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n SELECT path\n FROM instances\n WHERE id = ? OR path = ?\n ORDER BY CASE WHEN id = ? THEN 0 ELSE 1 END\n LIMIT 1\n ",
"describe": {
"columns": [
{
"name": "path",
"ordinal": 0,
"type_info": "Text"
}
],
"parameters": {
"Right": 3
},
"nullable": [
false
]
},
"hash": "564af6c2d3b0cb03700982c3940564cf07b1172d338cb974bcb73f23cb2a084c"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instance_content_sets\n\t\tSET protocol_version = ?, modified = ?\n\t\tWHERE id = (\n\t\t\tSELECT applied_content_set_id\n\t\t\tFROM instances\n\t\t\tWHERE id = ?\n\t\t)\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 3
},
"nullable": []
},
"hash": "5ad6333dd8cf97560ec5a60c1a4d9b6ab71407aefb316f6607bacaceb037486d"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n\t\t\tSELECT id\n\t\t\tFROM instance_content_entries\n\t\t\tWHERE content_set_id = ?\n\t\t\t\tAND project_id = ?\n\t\t\t\tAND version_id = ?\n\t\t\tORDER BY modified_at DESC\n\t\t\tLIMIT 1\n\t\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
}
],
"parameters": {
"Right": 3
},
"nullable": [
false
]
},
"hash": "636bb0c426ac275d64f7c84b3349894d10faf920d56814c0c2336e4cd5002743"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO attached_world_data (instance_id, world_type, world_id, display_status)\n\t\tVALUES (?, ?, ?, ?)\n\t\tON CONFLICT (instance_id, world_type, world_id) DO UPDATE\n\t\t\tSET display_status = excluded.display_status\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "64b207e105966bc65fbc4b740cdeeed88b6fe8ee2f12cbef566880a75fb9f8d1"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO instance_content_update_checks (\n\t\t\tcontent_entry_id,\n\t\t\tupdate_channel,\n\t\t\tupdate_version_id,\n\t\t\tchecked_at\n\t\t)\n\t\tVALUES (?, ?, ?, ?)\n\t\tON CONFLICT(content_entry_id) DO UPDATE SET\n\t\t\tupdate_channel = excluded.update_channel,\n\t\t\tupdate_version_id = excluded.update_version_id,\n\t\t\tchecked_at = excluded.checked_at\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "67935a2a4eaab1ce103812521c8f9425ca11559f0bceccbc3be57314272be532"
}
@@ -0,0 +1,26 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT id, path\n\t\tFROM instances\n\t\tWHERE id = ? OR path = ?\n\t\tORDER BY CASE WHEN id = ? THEN 0 ELSE 1 END\n\t\tLIMIT 1\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "path",
"ordinal": 1,
"type_info": "Text"
}
],
"parameters": {
"Right": 3
},
"nullable": [
false,
false
]
},
"hash": "6a50d8ad0da3a935f81b1d82a20b92871f6c9ad14b05460eaaf028221773d147"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n\t\t\tSELECT id\n\t\t\tFROM instance_content_entries\n\t\t\tWHERE content_set_id = ? AND file_id = ?\n\t\t\tORDER BY modified_at DESC\n\t\t\tLIMIT 1\n\t\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
}
],
"parameters": {
"Right": 2
},
"nullable": [
false
]
},
"hash": "6a6e05b5c64a7061046383f69e07bc3f24cbde279858f3f440a78089b696a718"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instance_content_entries\n\t\tSET enabled = ?, modified_at = ?\n\t\tWHERE content_set_id = ? AND file_id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "703d0e5ab1c7625b733c4c1ffc0af38a767597b62d49e810d716316752ffb1a1"
}
@@ -0,0 +1,38 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_content_update_checks\n\t\tWHERE content_entry_id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "content_entry_id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "update_channel",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "update_version_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "checked_at",
"ordinal": 3,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
false
]
},
"hash": "70f0b9c833e36fecb9c13496149cad79c4cab21a58fbd0614cce668f96b391ef"
}
@@ -0,0 +1,50 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_content_set_sync_state\n\t\tWHERE content_set_id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "content_set_id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "provider",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "applied_update_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "latest_available_update_id",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "checked_at",
"ordinal": 4,
"type_info": "Integer"
},
{
"name": "status",
"ordinal": 5,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
true,
true,
false
]
},
"hash": "7143099dcf9257477a4bc399cf33d250db42b88bdc02129733a3741893b1a501"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n INSERT OR IGNORE INTO instance_groups (instance_id, group_name)\n VALUES (?, ?)\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "7790039c6bfeba24c9a0f515b12d06e8ca910f05a73f2b31fe80eef9033873d7"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instance_content_sets\n\t\tSET\n\t\t\tname = ?,\n\t\t\tsource_kind = ?,\n\t\t\tstatus = ?,\n\t\t\tgame_version = ?,\n\t\t\tprotocol_version = ?,\n\t\t\tloader = ?,\n\t\t\tloader_version = ?,\n\t\t\tmodified = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 9
},
"nullable": []
},
"hash": "7850bba9ec3995f5093fae5282a387e98ef5c2bbecd92a3195a2a09515f2a7f8"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT COUNT(*)\n\t\tFROM sqlite_master\n\t\tWHERE type = 'table'\n\t\t\tAND name NOT LIKE 'sqlite_%'\n\t\t\tAND name NOT IN ('_sqlx_migrations', 'app_metadata')\n\t\t",
"describe": {
"columns": [
{
"name": "COUNT(*)",
"ordinal": 0,
"type_info": "Integer"
}
],
"parameters": {
"Right": 0
},
"nullable": [
false
]
},
"hash": "78fd8df6a933492c0f25392882138044e60e674e46fa0a39e3802aab8c10d699"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n SELECT path\n FROM instances\n WHERE id = ?\n ",
"describe": {
"columns": [
{
"name": "path",
"ordinal": 0,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false
]
},
"hash": "7a08aa0638cd0f7f5293a943a3e5e5bc10910e66d3cf80caa80aa435214a3349"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n UPDATE instances\n SET icon_path = replace(icon_path, ?, ?)\n WHERE icon_path IS NOT NULL\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "7e9c462de7ec39041c16b03f77f4b05fc3fcedb07edac8b3e888c062cf1d3184"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO instance_content_entries (\n\t\t\tid,\n\t\t\tinstance_id,\n\t\t\tcontent_set_id,\n\t\t\tfile_id,\n\t\t\tproject_type,\n\t\t\tproject_id,\n\t\t\tversion_id,\n\t\t\tsource_kind,\n\t\t\tserver_requirement,\n\t\t\tclient_requirement,\n\t\t\tenabled,\n\t\t\tadded_at,\n\t\t\tmodified_at\n\t\t)\n\t\tVALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n\t\tON CONFLICT(id) DO UPDATE SET\n\t\t\tfile_id = excluded.file_id,\n\t\t\tproject_type = excluded.project_type,\n\t\t\tproject_id = excluded.project_id,\n\t\t\tversion_id = excluded.version_id,\n\t\t\tsource_kind = excluded.source_kind,\n\t\t\tserver_requirement = excluded.server_requirement,\n\t\t\tclient_requirement = excluded.client_requirement,\n\t\t\tenabled = excluded.enabled,\n\t\t\tmodified_at = excluded.modified_at\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 13
},
"nullable": []
},
"hash": "81e6135eeba87a5f2084e0747b4675ff87456469e98c07520023981e3b3d121a"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tDELETE FROM instance_content_entries\n\t\tWHERE content_set_id = ? AND file_id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "89ef03bfb97a63ad97b25eb6afca93021226015e72a79d742fab8aa2dcb033a8"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instances\n\t\tSET recent_time_played = recent_time_played + ?, modified = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 3
},
"nullable": []
},
"hash": "8c0ef949dc78aa5d58b8fcd3e04c9c425cfac0520785d4e25d687c2d9ea82088"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instance_files\n\t\tSET\n\t\t\tmissing = 1,\n\t\t\tmodified_at = ?\n\t\tWHERE instance_id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "8c54b73c00cfc43b47ca08cca4dbdc381afa80c2f493d04c8a54875619386caf"
}
@@ -0,0 +1,68 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT\n\t\t\tid AS \"id!: String\",\n\t\t\tinstance_id,\n\t\t\tkind AS \"kind!: String\",\n\t\t\tstatus AS \"status!: String\",\n\t\t\tstate AS \"state!: String\",\n\t\t\tcreated AS \"created!: i64\",\n\t\t\tmodified AS \"modified!: i64\",\n\t\t\tfinished,\n\t\t\tdismissed AS \"dismissed!: i64\"\n\t\tFROM install_jobs\n\t\tWHERE status IN ('queued', 'running')\n\t\tORDER BY created ASC\n\t\t",
"describe": {
"columns": [
{
"name": "id!: String",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "kind!: String",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "status!: String",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "state!: String",
"ordinal": 4,
"type_info": "Null"
},
{
"name": "created!: i64",
"ordinal": 5,
"type_info": "Integer"
},
{
"name": "modified!: i64",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "finished",
"ordinal": 7,
"type_info": "Integer"
},
{
"name": "dismissed!: i64",
"ordinal": 8,
"type_info": "Integer"
}
],
"parameters": {
"Right": 0
},
"nullable": [
false,
true,
false,
false,
false,
false,
false,
true,
false
]
},
"hash": "8ed032e3cddd751ae19257c08a549774ad7aefdfb98d9e5cacad1d9d5be4cb78"
}
@@ -1,6 +1,6 @@
{
"db_name": "SQLite",
"query": "\n SELECT display_status, project_id, content_kind\n FROM attached_world_data\n WHERE profile_path = $1 and world_type = $2 and world_id = $3\n ",
"query": "\n\t\t\tSELECT display_status, project_id, content_kind\n\t\t\tFROM attached_world_data\n\t\t\tWHERE instance_id = ? and world_type = ? and world_id = ?\n\t\t\t",
"describe": {
"columns": [
{
@@ -28,5 +28,5 @@
true
]
},
"hash": "613192379e1fb8fd1becf2f6330365bb5bc2a8f0be01f6e4eef708474f38a3d0"
"hash": "90c4007e0beb32aeae2eec5ffdc88c39385d404b09ceedc015db58fe60032893"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE install_jobs\n\t\tSET instance_id = ?, status = ?, state = ?, modified = ?, finished = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 6
},
"nullable": []
},
"hash": "91cc73d90f102ee5492f564a1318dd0897d60eee5f2ff6135b264d5dc01acec9"
}
@@ -0,0 +1,26 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT\n\t\t\tinstance_id,\n\t\t\tjson(overrides) AS \"overrides!: String\"\n\t\tFROM instance_launch_overrides\n\t\tWHERE instance_id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "instance_id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "overrides!: String",
"ordinal": 1,
"type_info": "Null"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
null
]
},
"hash": "93d1d3abcac942e8232c198d1c2243c660b9e13a334300f54eeb5b2ef27a9cef"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT COUNT(*)\n\t\tFROM sqlite_master\n\t\tWHERE type = 'table' AND name = ?\n\t\t",
"describe": {
"columns": [
{
"name": "COUNT(*)",
"ordinal": 0,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false
]
},
"hash": "9433a97666449f9b61ebf67ebb6be43dea27ba9dfad89edf843a7de257b025bf"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tDELETE FROM instances\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 1
},
"nullable": []
},
"hash": "96984759495e0694e4c4f7126d25810b7b0fc773c3b9cb3a010d23b9bd5937b1"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT id\n\t\tFROM instances\n\t\tWHERE id = ? OR path = ?\n\t\tORDER BY CASE WHEN id = ? THEN 0 ELSE 1 END\n\t\tLIMIT 1\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
}
],
"parameters": {
"Right": 3
},
"nullable": [
false
]
},
"hash": "96f3122c81934c811e6be5941d201cd51654a2e2a87925b62767762792fa82f0"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO attached_world_data (instance_id, world_type, world_id, content_kind)\n\t\tVALUES (?, ?, ?, ?)\n\t\tON CONFLICT (instance_id, world_type, world_id) DO UPDATE\n\t\t\tSET content_kind = excluded.content_kind\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "984187e5399a37e49b158f2b85d07b8427f955204b757699b7ceab24f174ee4b"
}
@@ -0,0 +1,80 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_content_sets\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "source_kind",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "status",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "game_version",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "protocol_version",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "loader",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "loader_version",
"ordinal": 8,
"type_info": "Text"
},
{
"name": "created",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "modified",
"ordinal": 10,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
true,
false,
false
]
},
"hash": "9a37a9970c1857440830a20a6a6c1136beee1d9bcafaa10e512c8c0ab77952a2"
}
@@ -0,0 +1,92 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_content_entries\n\t\tWHERE content_set_id = ? AND file_id = ?\n\t\tORDER BY modified_at DESC\n\t\tLIMIT 1\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "content_set_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "file_id",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "project_type",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "project_id",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "version_id",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "source_kind",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "server_requirement",
"ordinal": 8,
"type_info": "Text"
},
{
"name": "client_requirement",
"ordinal": 9,
"type_info": "Text"
},
{
"name": "enabled",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "added_at",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "modified_at",
"ordinal": 12,
"type_info": "Integer"
}
],
"parameters": {
"Right": 2
},
"nullable": [
false,
false,
false,
true,
false,
true,
true,
false,
false,
false,
false,
false,
false
]
},
"hash": "a1681a1932f01490c3282aa45a3dccdc7bb14128f797b2e3b64c43c86ee4cba8"
}
@@ -0,0 +1,80 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_content_sets\n\t\tWHERE instance_id = ?\n\t\tORDER BY created ASC, id ASC\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "source_kind",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "status",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "game_version",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "protocol_version",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "loader",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "loader_version",
"ordinal": 8,
"type_info": "Text"
},
{
"name": "created",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "modified",
"ordinal": 10,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false,
false,
false,
true,
false,
true,
false,
false
]
},
"hash": "a61fb2065d009f6a70e8eba96666fe45c7b986988ed5f6536b694108166b3803"
}
@@ -0,0 +1,20 @@
{
"db_name": "SQLite",
"query": "SELECT value FROM app_metadata WHERE key = 'app_version'",
"describe": {
"columns": [
{
"name": "value",
"ordinal": 0,
"type_info": "Text"
}
],
"parameters": {
"Right": 0
},
"nullable": [
false
]
},
"hash": "a8a13794b27397460b37b03a3d86f7f8d869e21537a24f9c62b0fce892b0aac3"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO instance_files (\n\t\t\tid,\n\t\t\tinstance_id,\n\t\t\trelative_path,\n\t\t\tfile_name,\n\t\t\tenabled,\n\t\t\tsha1,\n\t\t\tsize,\n\t\t\tmissing,\n\t\t\tadded_at,\n\t\t\tmodified_at\n\t\t)\n\t\tVALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n\t\tON CONFLICT (instance_id, relative_path) DO UPDATE SET\n\t\t\tfile_name = excluded.file_name,\n\t\t\tenabled = excluded.enabled,\n\t\t\tsha1 = excluded.sha1,\n\t\t\tsize = excluded.size,\n\t\t\tmissing = excluded.missing,\n\t\t\tmodified_at = excluded.modified_at\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 10
},
"nullable": []
},
"hash": "aabe81dce68b38d0e5a9748da0df4f0f982f22861d13a848b09538b3ef594847"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO instances (\n\t\t\tid,\n\t\t\tpath,\n\t\t\tapplied_content_set_id,\n\t\t\tinstall_stage,\n\t\t\tlauncher_feature_version,\n\t\t\tupdate_channel,\n\t\t\tname,\n\t\t\ticon_path,\n\t\t\tcreated,\n\t\t\tmodified,\n\t\t\tlast_played,\n\t\t\tsubmitted_time_played,\n\t\t\trecent_time_played\n\t\t)\n\t\tVALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 13
},
"nullable": []
},
"hash": "b2659872378fafca1b57c5bb6b25e4becbc9f729abd754ee4193865c7205a728"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instances\n\t\tSET last_played = ?, modified = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 3
},
"nullable": []
},
"hash": "b81a5859854e0fa1d6bb83ec251580f417bcdb1e5964f424a42113ab019df838"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\t\tINSERT INTO join_log (instance_id, host, port, join_time)\n\t\t\tVALUES (?, ?, ?, ?)\n\t\t\tON CONFLICT (instance_id, host, port) DO UPDATE SET\n\t\t\t\tjoin_time = excluded.join_time\n\t\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "b8faac1d33ccd730a2175da962d60569b8f74b9b730d9aedbc050498377907dc"
}
@@ -1,6 +1,6 @@
{
"db_name": "SQLite",
"query": "\n SELECT world_type, world_id, display_status, project_id, content_kind\n FROM attached_world_data\n WHERE profile_path = $1\n ",
"query": "\n\t\t\tSELECT world_type, world_id, display_status, project_id, content_kind\n\t\t\tFROM attached_world_data\n\t\t\tWHERE instance_id = ?\n\t\t\t",
"describe": {
"columns": [
{
@@ -40,5 +40,5 @@
true
]
},
"hash": "4735f82db7b281e1380ea7c08ed715d25e0ca23a6c190c4bf14332033f4583db"
"hash": "bc1aeb495ae53607e0e74e000af911bd93f57ba4a57d847d585c6189779409c7"
}
@@ -0,0 +1,248 @@
{
"db_name": "SQLite",
"query": "\n SELECT\n i.id AS \"id!: String\",\n i.path AS \"path!: String\",\n i.applied_content_set_id AS \"applied_content_set_id?: String\",\n i.install_stage AS \"install_stage!: String\",\n i.launcher_feature_version AS \"launcher_feature_version!: String\",\n i.update_channel AS \"update_channel!: String\",\n i.name AS \"name!: String\",\n i.icon_path AS \"icon_path?: String\",\n i.created AS \"created!: i64\",\n i.modified AS \"modified!: i64\",\n i.last_played AS \"last_played?: i64\",\n i.submitted_time_played AS \"submitted_time_played!: i64\",\n i.recent_time_played AS \"recent_time_played!: i64\",\n cs.id AS \"content_set_id?: String\",\n cs.instance_id AS \"content_set_instance_id?: String\",\n cs.name AS \"content_set_name?: String\",\n cs.source_kind AS \"content_set_source_kind?: String\",\n cs.status AS \"content_set_status?: String\",\n cs.game_version AS \"content_set_game_version?: String\",\n cs.protocol_version AS \"content_set_protocol_version?: i64\",\n cs.loader AS \"content_set_loader?: String\",\n cs.loader_version AS \"content_set_loader_version?: String\",\n cs.created AS \"content_set_created?: i64\",\n cs.modified AS \"content_set_modified?: i64\",\n COALESCE(link.link_kind, 'unmanaged') AS \"link_kind!: String\",\n link.modrinth_project_id AS \"modrinth_project_id?: String\",\n link.modrinth_version_id AS \"modrinth_version_id?: String\",\n link.server_project_id AS \"server_project_id?: String\",\n link.content_project_id AS \"content_project_id?: String\",\n link.content_version_id AS \"content_version_id?: String\",\n link.hosting_server_id AS \"hosting_server_id?: String\",\n json(link.hosting_instance_ids) AS \"hosting_instance_ids?: String\",\n link.hosting_active_instance_id AS \"hosting_active_instance_id?: String\",\n link.shared_instance_id AS \"shared_instance_id?: String\",\n link.imported_name AS \"imported_name?: String\",\n link.imported_version_number AS \"imported_version_number?: String\",\n link.imported_filename AS \"imported_filename?: String\",\n COALESCE((\n SELECT json_group_array(group_name)\n FROM (\n SELECT group_name\n FROM instance_groups\n WHERE instance_id = i.id\n ORDER BY group_name\n )\n ), '[]') AS \"groups!: String\",\n json(overrides.overrides) AS \"launch_overrides?: String\"\n FROM instances i\n LEFT JOIN instance_content_sets cs\n ON cs.id = i.applied_content_set_id\n AND cs.instance_id = i.id\n LEFT JOIN instance_links link\n ON link.instance_id = i.id\n LEFT JOIN instance_launch_overrides overrides\n ON overrides.instance_id = i.id\n WHERE i.id = ?\n ",
"describe": {
"columns": [
{
"name": "id!: String",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "path!: String",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "applied_content_set_id?: String",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "install_stage!: String",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "launcher_feature_version!: String",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "update_channel!: String",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "name!: String",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "icon_path?: String",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "created!: i64",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified!: i64",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "last_played?: i64",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "submitted_time_played!: i64",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "recent_time_played!: i64",
"ordinal": 12,
"type_info": "Integer"
},
{
"name": "content_set_id?: String",
"ordinal": 13,
"type_info": "Text"
},
{
"name": "content_set_instance_id?: String",
"ordinal": 14,
"type_info": "Text"
},
{
"name": "content_set_name?: String",
"ordinal": 15,
"type_info": "Text"
},
{
"name": "content_set_source_kind?: String",
"ordinal": 16,
"type_info": "Text"
},
{
"name": "content_set_status?: String",
"ordinal": 17,
"type_info": "Text"
},
{
"name": "content_set_game_version?: String",
"ordinal": 18,
"type_info": "Text"
},
{
"name": "content_set_protocol_version?: i64",
"ordinal": 19,
"type_info": "Integer"
},
{
"name": "content_set_loader?: String",
"ordinal": 20,
"type_info": "Text"
},
{
"name": "content_set_loader_version?: String",
"ordinal": 21,
"type_info": "Text"
},
{
"name": "content_set_created?: i64",
"ordinal": 22,
"type_info": "Integer"
},
{
"name": "content_set_modified?: i64",
"ordinal": 23,
"type_info": "Integer"
},
{
"name": "link_kind!: String",
"ordinal": 24,
"type_info": "Null"
},
{
"name": "modrinth_project_id?: String",
"ordinal": 25,
"type_info": "Text"
},
{
"name": "modrinth_version_id?: String",
"ordinal": 26,
"type_info": "Text"
},
{
"name": "server_project_id?: String",
"ordinal": 27,
"type_info": "Text"
},
{
"name": "content_project_id?: String",
"ordinal": 28,
"type_info": "Text"
},
{
"name": "content_version_id?: String",
"ordinal": 29,
"type_info": "Text"
},
{
"name": "hosting_server_id?: String",
"ordinal": 30,
"type_info": "Text"
},
{
"name": "hosting_instance_ids?: String",
"ordinal": 31,
"type_info": "Null"
},
{
"name": "hosting_active_instance_id?: String",
"ordinal": 32,
"type_info": "Text"
},
{
"name": "shared_instance_id?: String",
"ordinal": 33,
"type_info": "Text"
},
{
"name": "imported_name?: String",
"ordinal": 34,
"type_info": "Text"
},
{
"name": "imported_version_number?: String",
"ordinal": 35,
"type_info": "Text"
},
{
"name": "imported_filename?: String",
"ordinal": 36,
"type_info": "Text"
},
{
"name": "groups!: String",
"ordinal": 37,
"type_info": "Null"
},
{
"name": "launch_overrides?: String",
"ordinal": 38,
"type_info": "Null"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
true,
false,
false,
null,
true,
true,
true,
true,
true,
true,
null,
true,
true,
true,
true,
true,
null,
null
]
},
"hash": "bcc93c48dd3c9ccbe196cfbe27e36b774d1b506e6cf5f2ab38469e9e3e6c9b6d"
}
@@ -1,188 +0,0 @@
{
"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, preferred_update_channel,\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": [
{
"name": "path",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "install_stage",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "launcher_feature_version",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "icon_path",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "game_version",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "protocol_version",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "mod_loader",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "mod_loader_version",
"ordinal": 8,
"type_info": "Text"
},
{
"name": "groups!: serde_json::Value",
"ordinal": 9,
"type_info": "Null"
},
{
"name": "linked_project_id",
"ordinal": 10,
"type_info": "Text"
},
{
"name": "linked_version_id",
"ordinal": 11,
"type_info": "Text"
},
{
"name": "locked",
"ordinal": 12,
"type_info": "Integer"
},
{
"name": "preferred_update_channel",
"ordinal": 13,
"type_info": "Text"
},
{
"name": "created",
"ordinal": 14,
"type_info": "Integer"
},
{
"name": "modified",
"ordinal": 15,
"type_info": "Integer"
},
{
"name": "last_played",
"ordinal": 16,
"type_info": "Integer"
},
{
"name": "submitted_time_played",
"ordinal": 17,
"type_info": "Integer"
},
{
"name": "recent_time_played",
"ordinal": 18,
"type_info": "Integer"
},
{
"name": "override_java_path",
"ordinal": 19,
"type_info": "Text"
},
{
"name": "override_extra_launch_args!: serde_json::Value",
"ordinal": 20,
"type_info": "Null"
},
{
"name": "override_custom_env_vars!: serde_json::Value",
"ordinal": 21,
"type_info": "Null"
},
{
"name": "override_mc_memory_max",
"ordinal": 22,
"type_info": "Integer"
},
{
"name": "override_mc_force_fullscreen",
"ordinal": 23,
"type_info": "Integer"
},
{
"name": "override_mc_game_resolution_x",
"ordinal": 24,
"type_info": "Integer"
},
{
"name": "override_mc_game_resolution_y",
"ordinal": 25,
"type_info": "Integer"
},
{
"name": "override_hook_pre_launch",
"ordinal": 26,
"type_info": "Text"
},
{
"name": "override_hook_wrapper",
"ordinal": 27,
"type_info": "Text"
},
{
"name": "override_hook_post_exit",
"ordinal": 28,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false,
true,
false,
true,
false,
true,
null,
true,
true,
true,
false,
false,
false,
true,
false,
false,
true,
null,
null,
true,
true,
true,
true,
true,
true,
true
]
},
"hash": "be21bfd7c36fd8c69dfffe0299eeb7e57590dc75b721dd823d00572f428d0bc5"
}
@@ -0,0 +1,50 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT\n\t\t\ti.id,\n\t\t\ti.name,\n\t\t\ti.icon_path,\n\t\t\tcs.game_version,\n\t\t\tcs.loader,\n\t\t\tCASE\n\t\t\t\tWHEN EXISTS (\n\t\t\t\t\tSELECT 1\n\t\t\t\t\tFROM instance_content_entries entry\n\t\t\t\t\tINNER JOIN instance_files file\n\t\t\t\t\t\tON file.id = entry.file_id\n\t\t\t\t\tWHERE entry.content_set_id = cs.id\n\t\t\t\t\t\tAND entry.project_id = ?\n\t\t\t\t\t\tAND file.missing = 0\n\t\t\t\t)\n\t\t\t\t\tTHEN 1\n\t\t\t\tELSE 0\n\t\t\tEND AS \"installed!: i64\"\n\t\tFROM instances i\n\t\tINNER JOIN instance_content_sets cs\n\t\t\tON cs.id = i.applied_content_set_id\n\t\tLEFT JOIN instance_links link\n\t\t\tON link.instance_id = i.id\n\t\tWHERE COALESCE(link.link_kind, 'unmanaged') NOT IN (\n\t\t\t'server_project',\n\t\t\t'server_project_modpack'\n\t\t)\n\t\tORDER BY i.name ASC\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "icon_path",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "game_version",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "loader",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "installed!: i64",
"ordinal": 5,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
false,
false,
false
]
},
"hash": "c19f53f6791bb289c870ba2607e012d20fc3b1eae65da64f22eb4aa7ac722d8a"
}
@@ -0,0 +1,68 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT\n\t\t\tid AS \"id!: String\",\n\t\t\tinstance_id,\n\t\t\tkind AS \"kind!: String\",\n\t\t\tstatus AS \"status!: String\",\n\t\t\tstate AS \"state!: String\",\n\t\t\tcreated AS \"created!: i64\",\n\t\t\tmodified AS \"modified!: i64\",\n\t\t\tfinished,\n\t\t\tdismissed AS \"dismissed!: i64\"\n\t\tFROM install_jobs\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "id!: String",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "kind!: String",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "status!: String",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "state!: String",
"ordinal": 4,
"type_info": "Null"
},
{
"name": "created!: i64",
"ordinal": 5,
"type_info": "Integer"
},
{
"name": "modified!: i64",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "finished",
"ordinal": 7,
"type_info": "Integer"
},
{
"name": "dismissed!: i64",
"ordinal": 8,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
true,
false,
false,
false,
false,
false,
true,
false
]
},
"hash": "c280b9abf116b5a66f143930fac11009b7f280931fead45a761f89f7b3fdea8b"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "VACUUM INTO ?",
"describe": {
"columns": [],
"parameters": {
"Right": 1
},
"nullable": []
},
"hash": "cce0505cb6c852083cb455f17a35f8e4071253955002ad68a12cc6663eeb4ed0"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instances\n\t\tSET install_stage = ?, modified = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 3
},
"nullable": []
},
"hash": "d45cecdee145138a252edc3aa78da920fcb783c1d05085a2d470f77376b6a21c"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE install_jobs\n\t\tSET dismissed = 1, modified = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "d6aa46bd4521b2760322e0e20256ea8f77febeb85a23050d3c42c61ff61c0d94"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instance_content_sets\n\t\tSET loader_version = ?, modified = ?\n\t\tWHERE id = (\n\t\t\tSELECT applied_content_set_id\n\t\t\tFROM instances\n\t\t\tWHERE id = ?\n\t\t)\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 3
},
"nullable": []
},
"hash": "d7a671f78ed6fcef39f7e6c0076f17e7f6ac469744e2c3df3a421f9d8a40115f"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n INSERT OR REPLACE INTO instances (\n id,\n path,\n applied_content_set_id,\n install_stage,\n launcher_feature_version,\n update_channel,\n name,\n icon_path,\n created,\n modified,\n last_played,\n submitted_time_played,\n recent_time_played\n )\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 13
},
"nullable": []
},
"hash": "d8317776a2c31351b54750a30fe8ef34923aa8a030285c34ea5536bb48bed6ab"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instances\n\t\tSET\n\t\t\tpath = ?,\n\t\t\tapplied_content_set_id = ?,\n\t\t\tinstall_stage = ?,\n\t\t\tlauncher_feature_version = ?,\n\t\t\tupdate_channel = ?,\n\t\t\tname = ?,\n\t\t\ticon_path = ?,\n\t\t\tmodified = ?,\n\t\t\tlast_played = ?,\n\t\t\tsubmitted_time_played = ?,\n\t\t\trecent_time_played = ?\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 12
},
"nullable": []
},
"hash": "d9f69f5c7fa294dd9e5fdc8ff881138a2dcdba20daa9ad8bd55fcda472f913e0"
}
@@ -1,12 +0,0 @@
{
"db_name": "SQLite",
"query": "INSERT INTO attached_world_data (profile_path, world_type, world_id, content_kind)\nVALUES ($1, $2, $3, $4)\nON CONFLICT (profile_path, world_type, world_id) DO UPDATE\n SET content_kind = $4",
"describe": {
"columns": [],
"parameters": {
"Right": 4
},
"nullable": []
},
"hash": "dcf7340800c1d6ca82de2092b477a41a9622ce891732300f029f34545954128e"
}
@@ -1,188 +0,0 @@
{
"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, preferred_update_channel,\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": [
{
"name": "path",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "install_stage",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "launcher_feature_version",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "name",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "icon_path",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "game_version",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "protocol_version",
"ordinal": 6,
"type_info": "Integer"
},
{
"name": "mod_loader",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "mod_loader_version",
"ordinal": 8,
"type_info": "Text"
},
{
"name": "groups!: serde_json::Value",
"ordinal": 9,
"type_info": "Null"
},
{
"name": "linked_project_id",
"ordinal": 10,
"type_info": "Text"
},
{
"name": "linked_version_id",
"ordinal": 11,
"type_info": "Text"
},
{
"name": "locked",
"ordinal": 12,
"type_info": "Integer"
},
{
"name": "preferred_update_channel",
"ordinal": 13,
"type_info": "Text"
},
{
"name": "created",
"ordinal": 14,
"type_info": "Integer"
},
{
"name": "modified",
"ordinal": 15,
"type_info": "Integer"
},
{
"name": "last_played",
"ordinal": 16,
"type_info": "Integer"
},
{
"name": "submitted_time_played",
"ordinal": 17,
"type_info": "Integer"
},
{
"name": "recent_time_played",
"ordinal": 18,
"type_info": "Integer"
},
{
"name": "override_java_path",
"ordinal": 19,
"type_info": "Text"
},
{
"name": "override_extra_launch_args!: serde_json::Value",
"ordinal": 20,
"type_info": "Null"
},
{
"name": "override_custom_env_vars!: serde_json::Value",
"ordinal": 21,
"type_info": "Null"
},
{
"name": "override_mc_memory_max",
"ordinal": 22,
"type_info": "Integer"
},
{
"name": "override_mc_force_fullscreen",
"ordinal": 23,
"type_info": "Integer"
},
{
"name": "override_mc_game_resolution_x",
"ordinal": 24,
"type_info": "Integer"
},
{
"name": "override_mc_game_resolution_y",
"ordinal": 25,
"type_info": "Integer"
},
{
"name": "override_hook_pre_launch",
"ordinal": 26,
"type_info": "Text"
},
{
"name": "override_hook_wrapper",
"ordinal": 27,
"type_info": "Text"
},
{
"name": "override_hook_post_exit",
"ordinal": 28,
"type_info": "Text"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
false,
true,
false,
true,
false,
true,
null,
true,
true,
true,
false,
false,
false,
true,
false,
false,
true,
null,
null,
true,
true,
true,
true,
true,
true,
true
]
},
"hash": "de1887a95766303d16ddcad7fe7f34e0a64101ead329bcc88e55e31b32578a97"
}
@@ -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"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n INSERT OR REPLACE INTO instance_links (\n instance_id,\n link_kind,\n modrinth_project_id,\n modrinth_version_id,\n server_project_id,\n content_project_id,\n content_version_id,\n hosting_server_id,\n hosting_instance_ids,\n hosting_active_instance_id,\n shared_instance_id\n )\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, jsonb(?), ?, ?)\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 11
},
"nullable": []
},
"hash": "df7f10fcaf7051927d64f802b489d866c691b6f2dc4e4c85dc0f42cc32d659b9"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\t\tINSERT OR IGNORE INTO instance_groups (instance_id, group_name)\n\t\t\tVALUES (?, ?)\n\t\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "e26d2ce1fdaaef4ef4648b57faf0ea2940ba9ada7b39f3c2fa973a36ee4cba2a"
}
@@ -0,0 +1,248 @@
{
"db_name": "SQLite",
"query": "\n WITH requested AS (\n SELECT value AS id, key AS ord\n FROM json_each(?)\n )\n SELECT\n i.id AS \"id!: String\",\n i.path AS \"path!: String\",\n i.applied_content_set_id AS \"applied_content_set_id?: String\",\n i.install_stage AS \"install_stage!: String\",\n i.launcher_feature_version AS \"launcher_feature_version!: String\",\n i.update_channel AS \"update_channel!: String\",\n i.name AS \"name!: String\",\n i.icon_path AS \"icon_path?: String\",\n i.created AS \"created!: i64\",\n i.modified AS \"modified!: i64\",\n i.last_played AS \"last_played?: i64\",\n i.submitted_time_played AS \"submitted_time_played!: i64\",\n i.recent_time_played AS \"recent_time_played!: i64\",\n cs.id AS \"content_set_id?: String\",\n cs.instance_id AS \"content_set_instance_id?: String\",\n cs.name AS \"content_set_name?: String\",\n cs.source_kind AS \"content_set_source_kind?: String\",\n cs.status AS \"content_set_status?: String\",\n cs.game_version AS \"content_set_game_version?: String\",\n cs.protocol_version AS \"content_set_protocol_version?: i64\",\n cs.loader AS \"content_set_loader?: String\",\n cs.loader_version AS \"content_set_loader_version?: String\",\n cs.created AS \"content_set_created?: i64\",\n cs.modified AS \"content_set_modified?: i64\",\n COALESCE(link.link_kind, 'unmanaged') AS \"link_kind!: String\",\n link.modrinth_project_id AS \"modrinth_project_id?: String\",\n link.modrinth_version_id AS \"modrinth_version_id?: String\",\n link.server_project_id AS \"server_project_id?: String\",\n link.content_project_id AS \"content_project_id?: String\",\n link.content_version_id AS \"content_version_id?: String\",\n link.hosting_server_id AS \"hosting_server_id?: String\",\n json(link.hosting_instance_ids) AS \"hosting_instance_ids?: String\",\n link.hosting_active_instance_id AS \"hosting_active_instance_id?: String\",\n link.shared_instance_id AS \"shared_instance_id?: String\",\n link.imported_name AS \"imported_name?: String\",\n link.imported_version_number AS \"imported_version_number?: String\",\n link.imported_filename AS \"imported_filename?: String\",\n COALESCE((\n SELECT json_group_array(group_name)\n FROM (\n SELECT group_name\n FROM instance_groups\n WHERE instance_id = i.id\n ORDER BY group_name\n )\n ), '[]') AS \"groups!: String\",\n json(overrides.overrides) AS \"launch_overrides?: String\"\n FROM requested\n INNER JOIN instances i\n ON i.id = requested.id\n LEFT JOIN instance_content_sets cs\n ON cs.id = i.applied_content_set_id\n AND cs.instance_id = i.id\n LEFT JOIN instance_links link\n ON link.instance_id = i.id\n LEFT JOIN instance_launch_overrides overrides\n ON overrides.instance_id = i.id\n ORDER BY requested.ord\n ",
"describe": {
"columns": [
{
"name": "id!: String",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "path!: String",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "applied_content_set_id?: String",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "install_stage!: String",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "launcher_feature_version!: String",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "update_channel!: String",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "name!: String",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "icon_path?: String",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "created!: i64",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified!: i64",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "last_played?: i64",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "submitted_time_played!: i64",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "recent_time_played!: i64",
"ordinal": 12,
"type_info": "Integer"
},
{
"name": "content_set_id?: String",
"ordinal": 13,
"type_info": "Text"
},
{
"name": "content_set_instance_id?: String",
"ordinal": 14,
"type_info": "Text"
},
{
"name": "content_set_name?: String",
"ordinal": 15,
"type_info": "Text"
},
{
"name": "content_set_source_kind?: String",
"ordinal": 16,
"type_info": "Text"
},
{
"name": "content_set_status?: String",
"ordinal": 17,
"type_info": "Text"
},
{
"name": "content_set_game_version?: String",
"ordinal": 18,
"type_info": "Text"
},
{
"name": "content_set_protocol_version?: i64",
"ordinal": 19,
"type_info": "Integer"
},
{
"name": "content_set_loader?: String",
"ordinal": 20,
"type_info": "Text"
},
{
"name": "content_set_loader_version?: String",
"ordinal": 21,
"type_info": "Text"
},
{
"name": "content_set_created?: i64",
"ordinal": 22,
"type_info": "Integer"
},
{
"name": "content_set_modified?: i64",
"ordinal": 23,
"type_info": "Integer"
},
{
"name": "link_kind!: String",
"ordinal": 24,
"type_info": "Null"
},
{
"name": "modrinth_project_id?: String",
"ordinal": 25,
"type_info": "Text"
},
{
"name": "modrinth_version_id?: String",
"ordinal": 26,
"type_info": "Text"
},
{
"name": "server_project_id?: String",
"ordinal": 27,
"type_info": "Text"
},
{
"name": "content_project_id?: String",
"ordinal": 28,
"type_info": "Text"
},
{
"name": "content_version_id?: String",
"ordinal": 29,
"type_info": "Text"
},
{
"name": "hosting_server_id?: String",
"ordinal": 30,
"type_info": "Text"
},
{
"name": "hosting_instance_ids?: String",
"ordinal": 31,
"type_info": "Null"
},
{
"name": "hosting_active_instance_id?: String",
"ordinal": 32,
"type_info": "Text"
},
{
"name": "shared_instance_id?: String",
"ordinal": 33,
"type_info": "Text"
},
{
"name": "imported_name?: String",
"ordinal": 34,
"type_info": "Text"
},
{
"name": "imported_version_number?: String",
"ordinal": 35,
"type_info": "Text"
},
{
"name": "imported_filename?: String",
"ordinal": 36,
"type_info": "Text"
},
{
"name": "groups!: String",
"ordinal": 37,
"type_info": "Null"
},
{
"name": "launch_overrides?: String",
"ordinal": 38,
"type_info": "Null"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
true,
false,
false,
null,
true,
true,
true,
true,
true,
true,
null,
true,
true,
true,
true,
true,
null,
null
]
},
"hash": "e53cd252e1e9eebcb3fb9714d7b5ee588e751fdc3f18c48bc4cfd94504c37306"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO instance_content_sets (\n\t\t\tid,\n\t\t\tinstance_id,\n\t\t\tname,\n\t\t\tsource_kind,\n\t\t\tstatus,\n\t\t\tgame_version,\n\t\t\tprotocol_version,\n\t\t\tloader,\n\t\t\tloader_version,\n\t\t\tcreated,\n\t\t\tmodified\n\t\t)\n\t\tVALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 11
},
"nullable": []
},
"hash": "e96981ff14598b77f079aad6f00f4b80e7a73e79eb6fe153b36000cafa5ea059"
}
@@ -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"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO instance_links (\n\t\t\tinstance_id,\n\t\t\tlink_kind,\n\t\t\tmodrinth_project_id,\n\t\t\tmodrinth_version_id,\n\t\t\tserver_project_id,\n\t\t\tcontent_project_id,\n\t\t\tcontent_version_id,\n\t\t\thosting_server_id,\n\t\t\thosting_instance_ids,\n\t\t\thosting_active_instance_id,\n\t\t\tshared_instance_id,\n\t\t\timported_name,\n\t\t\timported_version_number,\n\t\t\timported_filename\n\t\t)\n\t\tVALUES (?, ?, ?, ?, ?, ?, ?, ?, jsonb(?), ?, ?, ?, ?, ?)\n\t\tON CONFLICT (instance_id) DO UPDATE SET\n\t\t\tlink_kind = excluded.link_kind,\n\t\t\tmodrinth_project_id = excluded.modrinth_project_id,\n\t\t\tmodrinth_version_id = excluded.modrinth_version_id,\n\t\t\tserver_project_id = excluded.server_project_id,\n\t\t\tcontent_project_id = excluded.content_project_id,\n\t\t\tcontent_version_id = excluded.content_version_id,\n\t\t\thosting_server_id = excluded.hosting_server_id,\n\t\t\thosting_instance_ids = excluded.hosting_instance_ids,\n\t\t\thosting_active_instance_id = excluded.hosting_active_instance_id,\n\t\t\tshared_instance_id = excluded.shared_instance_id,\n\t\t\timported_name = excluded.imported_name,\n\t\t\timported_version_number = excluded.imported_version_number,\n\t\t\timported_filename = excluded.imported_filename\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 14
},
"nullable": []
},
"hash": "eca3e44d4ba62e218289fa058dd563cebedb6b8add6c936c551a857783645ff8"
}
@@ -0,0 +1,92 @@
{
"db_name": "SQLite",
"query": "\n\t\tSELECT *\n\t\tFROM instance_content_entries\n\t\tWHERE id = ?\n\t\t",
"describe": {
"columns": [
{
"name": "id",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "instance_id",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "content_set_id",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "file_id",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "project_type",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "project_id",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "version_id",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "source_kind",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "server_requirement",
"ordinal": 8,
"type_info": "Text"
},
{
"name": "client_requirement",
"ordinal": 9,
"type_info": "Text"
},
{
"name": "enabled",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "added_at",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "modified_at",
"ordinal": 12,
"type_info": "Integer"
}
],
"parameters": {
"Right": 1
},
"nullable": [
false,
false,
false,
true,
false,
true,
true,
false,
false,
false,
false,
false,
false
]
},
"hash": "eff7928f6ef38c2fa7d59897814a157bbe19a6f443e34c1452119f2bb6a3e1e1"
}
@@ -0,0 +1,248 @@
{
"db_name": "SQLite",
"query": "\n SELECT\n i.id AS \"id!: String\",\n i.path AS \"path!: String\",\n i.applied_content_set_id AS \"applied_content_set_id?: String\",\n i.install_stage AS \"install_stage!: String\",\n i.launcher_feature_version AS \"launcher_feature_version!: String\",\n i.update_channel AS \"update_channel!: String\",\n i.name AS \"name!: String\",\n i.icon_path AS \"icon_path?: String\",\n i.created AS \"created!: i64\",\n i.modified AS \"modified!: i64\",\n i.last_played AS \"last_played?: i64\",\n i.submitted_time_played AS \"submitted_time_played!: i64\",\n i.recent_time_played AS \"recent_time_played!: i64\",\n cs.id AS \"content_set_id?: String\",\n cs.instance_id AS \"content_set_instance_id?: String\",\n cs.name AS \"content_set_name?: String\",\n cs.source_kind AS \"content_set_source_kind?: String\",\n cs.status AS \"content_set_status?: String\",\n cs.game_version AS \"content_set_game_version?: String\",\n cs.protocol_version AS \"content_set_protocol_version?: i64\",\n cs.loader AS \"content_set_loader?: String\",\n cs.loader_version AS \"content_set_loader_version?: String\",\n cs.created AS \"content_set_created?: i64\",\n cs.modified AS \"content_set_modified?: i64\",\n COALESCE(link.link_kind, 'unmanaged') AS \"link_kind!: String\",\n link.modrinth_project_id AS \"modrinth_project_id?: String\",\n link.modrinth_version_id AS \"modrinth_version_id?: String\",\n link.server_project_id AS \"server_project_id?: String\",\n link.content_project_id AS \"content_project_id?: String\",\n link.content_version_id AS \"content_version_id?: String\",\n link.hosting_server_id AS \"hosting_server_id?: String\",\n json(link.hosting_instance_ids) AS \"hosting_instance_ids?: String\",\n link.hosting_active_instance_id AS \"hosting_active_instance_id?: String\",\n link.shared_instance_id AS \"shared_instance_id?: String\",\n link.imported_name AS \"imported_name?: String\",\n link.imported_version_number AS \"imported_version_number?: String\",\n link.imported_filename AS \"imported_filename?: String\",\n COALESCE((\n SELECT json_group_array(group_name)\n FROM (\n SELECT group_name\n FROM instance_groups\n WHERE instance_id = i.id\n ORDER BY group_name\n )\n ), '[]') AS \"groups!: String\",\n json(overrides.overrides) AS \"launch_overrides?: String\"\n FROM instances i\n LEFT JOIN instance_content_sets cs\n ON cs.id = i.applied_content_set_id\n AND cs.instance_id = i.id\n LEFT JOIN instance_links link\n ON link.instance_id = i.id\n LEFT JOIN instance_launch_overrides overrides\n ON overrides.instance_id = i.id\n ",
"describe": {
"columns": [
{
"name": "id!: String",
"ordinal": 0,
"type_info": "Text"
},
{
"name": "path!: String",
"ordinal": 1,
"type_info": "Text"
},
{
"name": "applied_content_set_id?: String",
"ordinal": 2,
"type_info": "Text"
},
{
"name": "install_stage!: String",
"ordinal": 3,
"type_info": "Text"
},
{
"name": "launcher_feature_version!: String",
"ordinal": 4,
"type_info": "Text"
},
{
"name": "update_channel!: String",
"ordinal": 5,
"type_info": "Text"
},
{
"name": "name!: String",
"ordinal": 6,
"type_info": "Text"
},
{
"name": "icon_path?: String",
"ordinal": 7,
"type_info": "Text"
},
{
"name": "created!: i64",
"ordinal": 8,
"type_info": "Integer"
},
{
"name": "modified!: i64",
"ordinal": 9,
"type_info": "Integer"
},
{
"name": "last_played?: i64",
"ordinal": 10,
"type_info": "Integer"
},
{
"name": "submitted_time_played!: i64",
"ordinal": 11,
"type_info": "Integer"
},
{
"name": "recent_time_played!: i64",
"ordinal": 12,
"type_info": "Integer"
},
{
"name": "content_set_id?: String",
"ordinal": 13,
"type_info": "Text"
},
{
"name": "content_set_instance_id?: String",
"ordinal": 14,
"type_info": "Text"
},
{
"name": "content_set_name?: String",
"ordinal": 15,
"type_info": "Text"
},
{
"name": "content_set_source_kind?: String",
"ordinal": 16,
"type_info": "Text"
},
{
"name": "content_set_status?: String",
"ordinal": 17,
"type_info": "Text"
},
{
"name": "content_set_game_version?: String",
"ordinal": 18,
"type_info": "Text"
},
{
"name": "content_set_protocol_version?: i64",
"ordinal": 19,
"type_info": "Integer"
},
{
"name": "content_set_loader?: String",
"ordinal": 20,
"type_info": "Text"
},
{
"name": "content_set_loader_version?: String",
"ordinal": 21,
"type_info": "Text"
},
{
"name": "content_set_created?: i64",
"ordinal": 22,
"type_info": "Integer"
},
{
"name": "content_set_modified?: i64",
"ordinal": 23,
"type_info": "Integer"
},
{
"name": "link_kind!: String",
"ordinal": 24,
"type_info": "Text"
},
{
"name": "modrinth_project_id?: String",
"ordinal": 25,
"type_info": "Text"
},
{
"name": "modrinth_version_id?: String",
"ordinal": 26,
"type_info": "Text"
},
{
"name": "server_project_id?: String",
"ordinal": 27,
"type_info": "Text"
},
{
"name": "content_project_id?: String",
"ordinal": 28,
"type_info": "Text"
},
{
"name": "content_version_id?: String",
"ordinal": 29,
"type_info": "Text"
},
{
"name": "hosting_server_id?: String",
"ordinal": 30,
"type_info": "Text"
},
{
"name": "hosting_instance_ids?: String",
"ordinal": 31,
"type_info": "Null"
},
{
"name": "hosting_active_instance_id?: String",
"ordinal": 32,
"type_info": "Text"
},
{
"name": "shared_instance_id?: String",
"ordinal": 33,
"type_info": "Text"
},
{
"name": "imported_name?: String",
"ordinal": 34,
"type_info": "Text"
},
{
"name": "imported_version_number?: String",
"ordinal": 35,
"type_info": "Text"
},
{
"name": "imported_filename?: String",
"ordinal": 36,
"type_info": "Text"
},
{
"name": "groups!: String",
"ordinal": 37,
"type_info": "Text"
},
{
"name": "launch_overrides?: String",
"ordinal": 38,
"type_info": "Null"
}
],
"parameters": {
"Right": 0
},
"nullable": [
false,
false,
true,
false,
false,
false,
false,
true,
false,
false,
true,
false,
false,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
false,
true,
true,
true,
true,
true,
true,
null,
true,
true,
true,
true,
true,
false,
null
]
},
"hash": "f0d8d4f98f7fdf3d656a7811f232d429a2cc73bc2c752594fcad7da19967ff7b"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tINSERT INTO instance_launch_overrides (\n\t\t\tinstance_id,\n\t\t\toverrides\n\t\t)\n\t\tVALUES (?, jsonb(?))\n\t\tON CONFLICT (instance_id) DO UPDATE SET\n\t\t\toverrides = excluded.overrides\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "f6bf3569c27401fb85c286f243902eb4831689391d34f1470db0e4c246525e49"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n\t\tUPDATE instance_files\n\t\tSET\n\t\t\trelative_path = ?,\n\t\t\tfile_name = ?,\n\t\t\tenabled = ?,\n\t\t\tmodified_at = ?\n\t\tWHERE instance_id = ? AND relative_path = ?\n\t\t",
"describe": {
"columns": [],
"parameters": {
"Right": 6
},
"nullable": []
},
"hash": "f93f5fca4f004dc70cab05f879993eb92fa6199c7356bbc2c5ca36468f916380"
}
@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n INSERT OR REPLACE INTO instance_content_sets (\n id,\n instance_id,\n name,\n source_kind,\n status,\n game_version,\n protocol_version,\n loader,\n loader_version,\n created,\n modified\n )\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 11
},
"nullable": []
},
"hash": "fffdd9acffd9d2fdcfc9e67196817a12d6b35e12233496c879efa002fffcc6dc"
}
+3 -1
View File
@@ -6,9 +6,9 @@ edition.workspace = true
[dependencies]
ariadne = { workspace = true }
async-compression = { workspace = true, features = ["gzip", "tokio"] }
async-minecraft-ping = { workspace = true, features = ["srv"] }
async-recursion = { workspace = true }
async-trait = { workspace = true }
async-tungstenite = { workspace = true, features = [
"tokio-runtime",
"tokio-rustls-webpki-roots"
@@ -46,6 +46,7 @@ heck = { workspace = true }
hickory-resolver = { workspace = true }
indicatif = { workspace = true, optional = true }
itertools = { workspace = true }
modrinth-content-management = { workspace = true }
notify = { workspace = true }
notify-debouncer-mini = { workspace = true }
p256 = { workspace = true, features = ["ecdsa"] }
@@ -104,6 +105,7 @@ tracing = { workspace = true }
tracing-error = { workspace = true }
tracing-subscriber = { workspace = true, features = ["chrono", "env-filter"] }
url = { workspace = true, features = ["serde"] }
urlencoding = { workspace = true }
uuid = { workspace = true, features = ["serde", "v4"] }
whoami = { workspace = true }
zbus = { workspace = true }
@@ -0,0 +1,3 @@
DROP TRIGGER IF EXISTS default_minecraft_capes_user_uuid_insert_check;
DROP TRIGGER IF EXISTS default_minecraft_capes_user_uuid_update_check;
DROP TRIGGER IF EXISTS default_minecraft_capes_user_uuid_update_cascade;
@@ -0,0 +1,376 @@
CREATE TABLE instances (
id TEXT NOT NULL,
path TEXT NOT NULL,
applied_content_set_id TEXT NULL,
install_stage TEXT NOT NULL,
launcher_feature_version TEXT NOT NULL,
update_channel TEXT NOT NULL DEFAULT 'release',
name TEXT NOT NULL,
icon_path TEXT NULL,
created INTEGER NOT NULL,
modified INTEGER NOT NULL,
last_played INTEGER NULL,
submitted_time_played INTEGER NOT NULL DEFAULT 0,
recent_time_played INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY (id),
UNIQUE (path)
);
CREATE INDEX instances_path ON instances(path);
CREATE INDEX instances_applied_content_set_id
ON instances(applied_content_set_id);
CREATE TABLE instance_links (
instance_id TEXT NOT NULL,
link_kind TEXT NOT NULL,
modrinth_project_id TEXT NULL,
modrinth_version_id TEXT NULL,
server_project_id TEXT NULL,
content_project_id TEXT NULL,
content_version_id TEXT NULL,
hosting_server_id TEXT NULL,
hosting_instance_ids JSONB NULL,
hosting_active_instance_id TEXT NULL,
shared_instance_id TEXT NULL,
PRIMARY KEY (instance_id),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
CREATE INDEX instance_links_link_kind ON instance_links(link_kind);
CREATE INDEX instance_links_modrinth_project_id
ON instance_links(modrinth_project_id);
CREATE INDEX instance_links_server_project_id
ON instance_links(server_project_id);
CREATE INDEX instance_links_hosting_server_id
ON instance_links(hosting_server_id);
CREATE INDEX instance_links_hosting_active_instance_id
ON instance_links(hosting_active_instance_id);
CREATE INDEX instance_links_shared_instance_id
ON instance_links(shared_instance_id);
CREATE TABLE instance_groups (
instance_id TEXT NOT NULL,
group_name TEXT NOT NULL,
PRIMARY KEY (instance_id, group_name),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
CREATE INDEX instance_groups_group_name ON instance_groups(group_name);
CREATE TABLE instance_launch_overrides (
instance_id TEXT NOT NULL,
overrides JSONB NOT NULL,
PRIMARY KEY (instance_id),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
CREATE TABLE instance_content_sets (
id TEXT NOT NULL,
instance_id TEXT NOT NULL,
name TEXT NOT NULL,
source_kind TEXT NOT NULL,
status TEXT NOT NULL,
game_version TEXT NOT NULL,
protocol_version INTEGER NULL,
loader TEXT NOT NULL,
loader_version TEXT NULL,
created INTEGER NOT NULL,
modified INTEGER NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
CREATE INDEX instance_content_sets_instance_id
ON instance_content_sets(instance_id);
CREATE TABLE instance_content_set_remote_refs (
content_set_id TEXT NOT NULL,
ref_type TEXT NOT NULL,
ref_id TEXT NOT NULL,
PRIMARY KEY (content_set_id, ref_type),
FOREIGN KEY (content_set_id)
REFERENCES instance_content_sets(id)
ON DELETE CASCADE
);
CREATE INDEX instance_content_set_remote_refs_ref
ON instance_content_set_remote_refs(ref_type, ref_id);
CREATE TABLE instance_content_set_sync_state (
content_set_id TEXT NOT NULL,
provider TEXT NOT NULL,
applied_update_id TEXT NULL,
latest_available_update_id TEXT NULL,
checked_at INTEGER NULL,
status TEXT NOT NULL,
PRIMARY KEY (content_set_id),
FOREIGN KEY (content_set_id)
REFERENCES instance_content_sets(id)
ON DELETE CASCADE
);
CREATE INDEX instance_content_set_sync_state_provider
ON instance_content_set_sync_state(provider);
CREATE INDEX instance_content_set_sync_state_latest_available_update_id
ON instance_content_set_sync_state(latest_available_update_id);
CREATE TABLE instance_files (
id TEXT NOT NULL,
instance_id TEXT NOT NULL,
relative_path TEXT NOT NULL,
file_name TEXT NOT NULL,
enabled INTEGER NOT NULL,
sha1 TEXT NOT NULL,
size INTEGER NOT NULL,
missing INTEGER NOT NULL DEFAULT 0,
added_at INTEGER NOT NULL,
modified_at INTEGER NOT NULL,
PRIMARY KEY (id),
UNIQUE (instance_id, relative_path),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
CREATE INDEX instance_files_instance_id ON instance_files(instance_id);
CREATE INDEX instance_files_sha1 ON instance_files(sha1);
CREATE INDEX instance_files_missing ON instance_files(missing);
CREATE TABLE instance_content_entries (
id TEXT NOT NULL,
instance_id TEXT NOT NULL,
content_set_id TEXT NOT NULL,
file_id TEXT NULL,
project_type TEXT NOT NULL,
project_id TEXT NULL,
version_id TEXT NULL,
source_kind TEXT NOT NULL,
server_requirement TEXT NOT NULL,
client_requirement TEXT NOT NULL,
enabled INTEGER NOT NULL DEFAULT 1,
added_at INTEGER NOT NULL,
modified_at INTEGER NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE,
FOREIGN KEY (content_set_id)
REFERENCES instance_content_sets(id)
ON DELETE CASCADE,
FOREIGN KEY (file_id) REFERENCES instance_files(id) ON DELETE SET NULL
);
CREATE INDEX instance_content_entries_instance_id
ON instance_content_entries(instance_id);
CREATE INDEX instance_content_entries_content_set_id
ON instance_content_entries(content_set_id);
CREATE INDEX instance_content_entries_file_id
ON instance_content_entries(file_id);
CREATE INDEX instance_content_entries_project_id
ON instance_content_entries(project_id);
CREATE INDEX instance_content_entries_version_id
ON instance_content_entries(version_id);
CREATE INDEX instance_content_entries_source_kind
ON instance_content_entries(source_kind);
CREATE TABLE instance_content_update_checks (
content_entry_id TEXT NOT NULL,
update_channel TEXT NOT NULL,
update_version_id TEXT NULL,
checked_at INTEGER NOT NULL,
PRIMARY KEY (content_entry_id),
FOREIGN KEY (content_entry_id)
REFERENCES instance_content_entries(id)
ON DELETE CASCADE
);
CREATE INDEX instance_content_update_checks_update_version_id
ON instance_content_update_checks(update_version_id);
INSERT INTO instances (
id,
path,
applied_content_set_id,
install_stage,
launcher_feature_version,
update_channel,
name,
icon_path,
created,
modified,
last_played,
submitted_time_played,
recent_time_played
)
SELECT
'legacy:' || path,
path,
'legacy:' || path || ':default',
install_stage,
launcher_feature_version,
preferred_update_channel,
name,
icon_path,
created,
modified,
last_played,
submitted_time_played,
recent_time_played
FROM profiles;
INSERT INTO instance_content_sets (
id,
instance_id,
name,
source_kind,
status,
game_version,
protocol_version,
loader,
loader_version,
created,
modified
)
SELECT
'legacy:' || path || ':default',
'legacy:' || path,
'Default',
CASE
WHEN linked_project_id IS NOT NULL
AND linked_version_id IS NOT NULL
AND linked_version_id != ''
THEN 'modrinth_modpack'
WHEN linked_project_id IS NOT NULL
AND (linked_version_id IS NULL OR linked_version_id = '')
THEN 'server_project'
ELSE 'local'
END,
'available',
game_version,
protocol_version,
mod_loader,
mod_loader_version,
created,
modified
FROM profiles;
INSERT INTO instance_links (
instance_id,
link_kind,
modrinth_project_id,
modrinth_version_id,
server_project_id,
content_project_id,
content_version_id,
hosting_server_id,
hosting_instance_ids,
hosting_active_instance_id,
shared_instance_id
)
SELECT
'legacy:' || path,
CASE
WHEN linked_project_id IS NULL
THEN 'unmanaged'
WHEN linked_version_id IS NULL OR linked_version_id = ''
THEN 'server_project'
ELSE 'modrinth_modpack'
END,
CASE
WHEN linked_version_id IS NOT NULL AND linked_version_id != ''
THEN linked_project_id
ELSE NULL
END,
CASE
WHEN linked_version_id IS NOT NULL AND linked_version_id != ''
THEN linked_version_id
ELSE NULL
END,
CASE
WHEN linked_project_id IS NOT NULL
AND (linked_version_id IS NULL OR linked_version_id = '')
THEN linked_project_id
ELSE NULL
END,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
FROM profiles;
INSERT OR IGNORE INTO instance_groups (instance_id, group_name)
SELECT
'legacy:' || profiles.path,
json_each.value
FROM profiles, json_each(profiles.groups);
INSERT INTO instance_launch_overrides (
instance_id,
overrides
)
SELECT
'legacy:' || path,
jsonb(json_object(
'java_path', override_java_path,
'extra_launch_args', json(CASE
WHEN json_type(override_extra_launch_args) = 'null' THEN 'null'
ELSE json(override_extra_launch_args)
END),
'custom_env_vars', json(CASE
WHEN json_type(override_custom_env_vars) = 'null' THEN 'null'
ELSE json(override_custom_env_vars)
END),
'memory', json(CASE
WHEN override_mc_memory_max IS NULL THEN 'null'
ELSE json_object('maximum', override_mc_memory_max)
END),
'force_fullscreen', json(CASE
WHEN override_mc_force_fullscreen IS NULL THEN 'null'
WHEN override_mc_force_fullscreen = 0 THEN 'false'
ELSE 'true'
END),
'game_resolution', json(CASE
WHEN override_mc_game_resolution_x IS NULL
OR override_mc_game_resolution_y IS NULL
THEN 'null'
ELSE json_array(
override_mc_game_resolution_x,
override_mc_game_resolution_y
)
END),
'hooks', json_object(
'pre_launch', COALESCE(override_hook_pre_launch, ''),
'wrapper', COALESCE(override_hook_wrapper, ''),
'post_exit', COALESCE(override_hook_post_exit, '')
)
))
FROM profiles;
@@ -0,0 +1,129 @@
CREATE TEMP TABLE finish_instance_profile_migration_validation (
error_count INTEGER NOT NULL CHECK (error_count = 0)
);
INSERT INTO finish_instance_profile_migration_validation (error_count)
SELECT COUNT(*)
FROM profiles
LEFT JOIN instances ON instances.path = profiles.path
WHERE instances.id IS NULL;
INSERT INTO finish_instance_profile_migration_validation (error_count)
SELECT COUNT(*)
FROM instances
LEFT JOIN instance_content_sets
ON instance_content_sets.id = instances.applied_content_set_id
AND instance_content_sets.instance_id = instances.id
WHERE instances.applied_content_set_id IS NULL
OR instance_content_sets.id IS NULL;
DROP TABLE finish_instance_profile_migration_validation;
DROP INDEX processes_profile_path;
ALTER TABLE processes RENAME TO processes_old;
CREATE TABLE processes (
pid INTEGER NOT NULL,
start_time INTEGER NOT NULL,
name TEXT NOT NULL,
executable TEXT NOT NULL,
instance_id TEXT NOT NULL,
post_exit_command TEXT NULL,
UNIQUE (pid),
PRIMARY KEY (pid),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
INSERT INTO processes (
pid,
start_time,
name,
executable,
instance_id,
post_exit_command
)
SELECT
processes_old.pid,
processes_old.start_time,
processes_old.name,
processes_old.executable,
instances.id,
processes_old.post_exit_command
FROM processes_old
JOIN instances ON instances.path = processes_old.profile_path;
DROP TABLE processes_old;
CREATE INDEX processes_instance_id ON processes(instance_id);
DROP INDEX join_log_profile_path;
ALTER TABLE join_log RENAME TO join_log_old;
CREATE TABLE join_log (
instance_id TEXT NOT NULL,
host TEXT NOT NULL,
port INTEGER NOT NULL,
join_time INTEGER NOT NULL,
PRIMARY KEY (instance_id, host, port),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
INSERT INTO join_log (
instance_id,
host,
port,
join_time
)
SELECT
instances.id,
join_log_old.host,
join_log_old.port,
join_log_old.join_time
FROM join_log_old
JOIN instances ON instances.path = join_log_old.profile_path;
DROP TABLE join_log_old;
CREATE INDEX join_log_instance_id ON join_log(instance_id);
DROP INDEX attached_world_data_profile_path;
ALTER TABLE attached_world_data RENAME TO attached_world_data_old;
CREATE TABLE attached_world_data (
instance_id TEXT NOT NULL,
world_type TEXT CHECK ( world_type in ('singleplayer', 'server') ) NOT NULL,
world_id TEXT NOT NULL,
display_status TEXT NOT NULL DEFAULT 'normal',
project_id TEXT NULL,
content_kind TEXT NULL,
PRIMARY KEY (instance_id, world_type, world_id),
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE CASCADE
);
INSERT INTO attached_world_data (
instance_id,
world_type,
world_id,
display_status,
project_id,
content_kind
)
SELECT
instances.id,
attached_world_data_old.world_type,
attached_world_data_old.world_id,
attached_world_data_old.display_status,
attached_world_data_old.project_id,
attached_world_data_old.content_kind
FROM attached_world_data_old
JOIN instances ON instances.path = attached_world_data_old.profile_path;
DROP TABLE attached_world_data_old;
CREATE INDEX attached_world_data_instance_id
ON attached_world_data(instance_id);
DROP TABLE profiles;
@@ -0,0 +1,7 @@
CREATE TABLE app_metadata (
key TEXT NOT NULL,
value TEXT NOT NULL,
updated_at INTEGER NOT NULL DEFAULT (unixepoch()),
PRIMARY KEY (key)
);
@@ -0,0 +1,19 @@
CREATE TABLE install_jobs (
id TEXT NOT NULL PRIMARY KEY,
instance_id TEXT NULL,
kind TEXT NOT NULL,
status TEXT NOT NULL,
state JSONB NOT NULL,
created INTEGER NOT NULL,
modified INTEGER NOT NULL,
finished INTEGER NULL,
dismissed INTEGER NOT NULL DEFAULT 0,
FOREIGN KEY (instance_id) REFERENCES instances(id) ON DELETE SET NULL
);
CREATE INDEX install_jobs_instance_id ON install_jobs(instance_id);
CREATE INDEX install_jobs_status ON install_jobs(status);
CREATE INDEX install_jobs_finished ON install_jobs(finished);

Some files were not shown because too many files have changed in this diff Show More