refactor: convert to bun workspaces monorepo

- Move web app into apps/web/
- Create packages/shared/ with shared types
- Create plugins/decky-vault/ scaffold
- Root package.json manages workspaces only
This commit is contained in:
2026-06-28 05:20:28 +08:00
parent c4bede20d4
commit cd72b7a948
345 changed files with 488 additions and 126 deletions
+551
View File
@@ -0,0 +1,551 @@
{
"id": "7ddf967c-480b-4279-aae8-a9bc7cd6bc51",
"prevId": "00000000-0000-0000-0000-000000000000",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.game_platform_support": {
"name": "game_platform_support",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true
},
"game_id": {
"name": "game_id",
"type": "text",
"primaryKey": false,
"notNull": true
},
"hardware_slug": {
"name": "hardware_slug",
"type": "text",
"primaryKey": false,
"notNull": true
},
"is_supported": {
"name": "is_supported",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"proton_status": {
"name": "proton_status",
"type": "proton_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'unknown'"
},
"anti_cheat_relevant": {
"name": "anti_cheat_relevant",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"anti_cheat_name": {
"name": "anti_cheat_name",
"type": "text",
"primaryKey": false,
"notNull": false
},
"anti_cheat_version": {
"name": "anti_cheat_version",
"type": "text",
"primaryKey": false,
"notNull": false
},
"anti_cheat_status": {
"name": "anti_cheat_status",
"type": "anti_cheat_status",
"typeSchema": "public",
"primaryKey": false,
"notNull": true,
"default": "'unknown'"
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"game_platform_support_game_id_games_id_fk": {
"name": "game_platform_support_game_id_games_id_fk",
"tableFrom": "game_platform_support",
"tableTo": "games",
"columnsFrom": [
"game_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"game_platform_support_hardware_slug_hardware_slug_fk": {
"name": "game_platform_support_hardware_slug_hardware_slug_fk",
"tableFrom": "game_platform_support",
"tableTo": "hardware",
"columnsFrom": [
"hardware_slug"
],
"columnsTo": [
"slug"
],
"onDelete": "restrict",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"game_hardware_unique": {
"name": "game_hardware_unique",
"nullsNotDistinct": false,
"columns": [
"game_id",
"hardware_slug"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.game_versions": {
"name": "game_versions",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true
},
"game_id": {
"name": "game_id",
"type": "text",
"primaryKey": false,
"notNull": true
},
"build_id": {
"name": "build_id",
"type": "text",
"primaryKey": false,
"notNull": false
},
"version_string": {
"name": "version_string",
"type": "text",
"primaryKey": false,
"notNull": false
},
"is_latest": {
"name": "is_latest",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"game_versions_game_id_games_id_fk": {
"name": "game_versions_game_id_games_id_fk",
"tableFrom": "game_versions",
"tableTo": "games",
"columnsFrom": [
"game_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"game_build_unique": {
"name": "game_build_unique",
"nullsNotDistinct": false,
"columns": [
"game_id",
"build_id"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.games": {
"name": "games",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true
},
"steam_app_id": {
"name": "steam_app_id",
"type": "integer",
"primaryKey": false,
"notNull": true
},
"title": {
"name": "title",
"type": "text",
"primaryKey": false,
"notNull": true
},
"description": {
"name": "description",
"type": "text",
"primaryKey": false,
"notNull": false
},
"publisher": {
"name": "publisher",
"type": "text",
"primaryKey": false,
"notNull": false
},
"developer": {
"name": "developer",
"type": "text",
"primaryKey": false,
"notNull": false
},
"genres": {
"name": "genres",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"header_image": {
"name": "header_image",
"type": "text",
"primaryKey": false,
"notNull": false
},
"capsule_image": {
"name": "capsule_image",
"type": "text",
"primaryKey": false,
"notNull": false
},
"store_url": {
"name": "store_url",
"type": "text",
"primaryKey": false,
"notNull": false
},
"last_sync": {
"name": "last_sync",
"type": "timestamp",
"primaryKey": false,
"notNull": false
},
"sync_status": {
"name": "sync_status",
"type": "text",
"primaryKey": false,
"notNull": false,
"default": "'pending'"
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"games_steam_app_id_unique": {
"name": "games_steam_app_id_unique",
"nullsNotDistinct": false,
"columns": [
"steam_app_id"
]
}
},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.hardware": {
"name": "hardware",
"schema": "",
"columns": {
"slug": {
"name": "slug",
"type": "text",
"primaryKey": true,
"notNull": true
},
"name": {
"name": "name",
"type": "text",
"primaryKey": false,
"notNull": true
},
"device_type": {
"name": "device_type",
"type": "device_type",
"typeSchema": "public",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
},
"public.performance_entries": {
"name": "performance_entries",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "text",
"primaryKey": true,
"notNull": true
},
"version_id": {
"name": "version_id",
"type": "text",
"primaryKey": false,
"notNull": true
},
"hardware_slug": {
"name": "hardware_slug",
"type": "text",
"primaryKey": false,
"notNull": true
},
"user_id": {
"name": "user_id",
"type": "text",
"primaryKey": false,
"notNull": true
},
"fps_avg": {
"name": "fps_avg",
"type": "real",
"primaryKey": false,
"notNull": true
},
"fps_low": {
"name": "fps_low",
"type": "real",
"primaryKey": false,
"notNull": false
},
"fps_high": {
"name": "fps_high",
"type": "real",
"primaryKey": false,
"notNull": false
},
"proton_version": {
"name": "proton_version",
"type": "text",
"primaryKey": false,
"notNull": false
},
"os_version": {
"name": "os_version",
"type": "text",
"primaryKey": false,
"notNull": false
},
"is_fsr_enabled": {
"name": "is_fsr_enabled",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"is_frame_gen_enabled": {
"name": "is_frame_gen_enabled",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"load_time_ssd": {
"name": "load_time_ssd",
"type": "real",
"primaryKey": false,
"notNull": false
},
"load_time_sd": {
"name": "load_time_sd",
"type": "real",
"primaryKey": false,
"notNull": false
},
"settings_json": {
"name": "settings_json",
"type": "jsonb",
"primaryKey": false,
"notNull": false
},
"user_notes": {
"name": "user_notes",
"type": "text",
"primaryKey": false,
"notNull": false
},
"is_removed": {
"name": "is_removed",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"removed_reason": {
"name": "removed_reason",
"type": "text",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"performance_entries_version_id_game_versions_id_fk": {
"name": "performance_entries_version_id_game_versions_id_fk",
"tableFrom": "performance_entries",
"tableTo": "game_versions",
"columnsFrom": [
"version_id"
],
"columnsTo": [
"id"
],
"onDelete": "cascade",
"onUpdate": "no action"
},
"performance_entries_hardware_slug_hardware_slug_fk": {
"name": "performance_entries_hardware_slug_hardware_slug_fk",
"tableFrom": "performance_entries",
"tableTo": "hardware",
"columnsFrom": [
"hardware_slug"
],
"columnsTo": [
"slug"
],
"onDelete": "restrict",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {},
"policies": {},
"checkConstraints": {},
"isRLSEnabled": false
}
},
"enums": {
"public.anti_cheat_status": {
"name": "anti_cheat_status",
"schema": "public",
"values": [
"none",
"supported",
"unsupported",
"unknown"
]
},
"public.proton_status": {
"name": "proton_status",
"schema": "public",
"values": [
"native",
"proton",
"unsupported",
"unknown"
]
},
"public.device_type": {
"name": "device_type",
"schema": "public",
"values": [
"handled",
"console"
]
}
},
"schemas": {},
"sequences": {},
"roles": {},
"policies": {},
"views": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+195
View File
@@ -0,0 +1,195 @@
{
"version": "7",
"dialect": "postgresql",
"entries": [
{
"idx": 0,
"version": "7",
"when": 1777089104474,
"tag": "0000_crazy_nick_fury",
"breakpoints": true
},
{
"idx": 1,
"version": "7",
"when": 1777091220497,
"tag": "0001_big_smiling_tiger",
"breakpoints": true
},
{
"idx": 2,
"version": "7",
"when": 1777096891299,
"tag": "0002_square_slayback",
"breakpoints": true
},
{
"idx": 3,
"version": "7",
"when": 1777115371276,
"tag": "0004_aspiring_meggan",
"breakpoints": true
},
{
"idx": 4,
"version": "7",
"when": 1777189057323,
"tag": "0005_add_preset_performance_link",
"breakpoints": true
},
{
"idx": 5,
"version": "7",
"when": 1777217663641,
"tag": "0005_brief_marvel_zombies",
"breakpoints": true
},
{
"idx": 6,
"version": "7",
"when": 1777300000000,
"tag": "0006_upscaler_battery_custom_system",
"breakpoints": true
},
{
"idx": 7,
"version": "7",
"when": 1777267706280,
"tag": "0007_mighty_electro",
"breakpoints": true
},
{
"idx": 8,
"version": "7",
"when": 1777271387867,
"tag": "0008_slim_jubilee",
"breakpoints": true
},
{
"idx": 9,
"version": "7",
"when": 1777273845181,
"tag": "0009_flawless_meltdown",
"breakpoints": true
},
{
"idx": 10,
"version": "7",
"when": 1777386687207,
"tag": "0010_soft_wilson_fisk",
"breakpoints": true
},
{
"idx": 11,
"version": "7",
"when": 1777389114548,
"tag": "0011_talented_bloodstorm",
"breakpoints": true
},
{
"idx": 12,
"version": "7",
"when": 1777389996351,
"tag": "0012_clever_thunderbolt_ross",
"breakpoints": true
},
{
"idx": 13,
"version": "7",
"when": 1777392960312,
"tag": "0013_supreme_purple_man",
"breakpoints": true
},
{
"idx": 14,
"version": "7",
"when": 1777429918273,
"tag": "0014_purple_firebird",
"breakpoints": true
},
{
"idx": 15,
"version": "7",
"when": 1777545844610,
"tag": "0015_nappy_the_phantom",
"breakpoints": true
},
{
"idx": 16,
"version": "7",
"when": 1777546237462,
"tag": "0016_zippy_eternals",
"breakpoints": true
},
{
"idx": 17,
"version": "7",
"when": 1777546553489,
"tag": "0017_polite_speed_demon",
"breakpoints": true
},
{
"idx": 18,
"version": "7",
"when": 1777547028555,
"tag": "0018_slimy_proemial_gods",
"breakpoints": true
},
{
"idx": 19,
"version": "7",
"when": 1777547264277,
"tag": "0019_tiresome_genesis",
"breakpoints": true
},
{
"idx": 20,
"version": "7",
"when": 1777547665970,
"tag": "0020_flaky_lilith",
"breakpoints": true
},
{
"idx": 21,
"version": "7",
"when": 1777547793864,
"tag": "0021_demonic_texas_twister",
"breakpoints": true
},
{
"idx": 22,
"version": "7",
"when": 1778301841773,
"tag": "0022_married_zeigeist",
"breakpoints": true
},
{
"idx": 23,
"version": "7",
"when": 1778336095477,
"tag": "0023_married_avengers",
"breakpoints": true
},
{
"idx": 24,
"version": "7",
"when": 1778359948438,
"tag": "0024_violet_psynapse",
"breakpoints": true
},
{
"idx": 25,
"version": "7",
"when": 1778921901471,
"tag": "0025_flowery_molten_man",
"breakpoints": true
},
{
"idx": 26,
"version": "7",
"when": 1779214557250,
"tag": "0026_polite_drax",
"breakpoints": true
}
]
}