From 6854d889c51378c0b672d00ee593b2a71b811996 Mon Sep 17 00:00:00 2001 From: Adrian Bonpin Date: Sun, 16 Aug 2026 19:31:53 +0800 Subject: [PATCH] refactor: convert to bun-workspaces monorepo (desktop/ + www/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move the Tauri app (React frontend + Rust backend) into desktop/ via git mv — configs unchanged (relative paths: tauri.conf.json, vite.config.ts) - Root package.json becomes a private bun workspace container with orchestration scripts; desktop package renamed gridline-desktop - Scaffold www/ with Astro 7 + Tailwind v4 (hand-wired vite plugin, static output, ready for Dokploy) - Update release.yml for the new layout: projectPath: desktop, desktop/src-tauri resource paths, rust-cache workspace path - Update README + AGENTS.md structure trees and dev commands - Verified: vitest (1074), cargo test (354), desktop build, tauri dev (window launches), tauri build (dmg + app bundles), Astro build --- .github/workflows/release.yml | 7 +- AGENTS.md | 138 +++-- README.md | 61 +- bun.lock | 520 +++++++++++++++++- bunfig.toml => desktop/bunfig.toml | 0 index.html => desktop/index.html | 0 desktop/package.json | 58 ++ {src-tauri => desktop/src-tauri}/.gitignore | 0 {src-tauri => desktop/src-tauri}/Cargo.lock | 0 {src-tauri => desktop/src-tauri}/Cargo.toml | 0 {src-tauri => desktop/src-tauri}/build.rs | 0 .../src-tauri}/capabilities/default.json | 0 .../src-tauri}/icons.backup/128x128.png | Bin .../src-tauri}/icons.backup/128x128@2x.png | Bin .../src-tauri}/icons.backup/32x32.png | Bin .../src-tauri}/icons.backup/64x64.png | Bin .../icons.backup/Square107x107Logo.png | Bin .../icons.backup/Square142x142Logo.png | Bin .../icons.backup/Square150x150Logo.png | Bin .../icons.backup/Square284x284Logo.png | Bin .../icons.backup/Square30x30Logo.png | Bin .../icons.backup/Square310x310Logo.png | Bin .../icons.backup/Square44x44Logo.png | Bin .../icons.backup/Square71x71Logo.png | Bin .../icons.backup/Square89x89Logo.png | Bin .../src-tauri}/icons.backup/StoreLogo.png | Bin .../src-tauri}/icons.backup/icon.icns | Bin .../src-tauri}/icons.backup/icon.ico | Bin .../src-tauri}/icons.backup/icon.png | Bin .../src-tauri}/icons.backup/icon.svg | 0 .../src-tauri}/icons/128x128.png | Bin .../src-tauri}/icons/128x128@2x.png | Bin .../src-tauri}/icons/32x32.png | Bin .../src-tauri}/icons/64x64.png | Bin .../src-tauri}/icons/Square107x107Logo.png | Bin .../src-tauri}/icons/Square142x142Logo.png | Bin .../src-tauri}/icons/Square150x150Logo.png | Bin .../src-tauri}/icons/Square284x284Logo.png | Bin .../src-tauri}/icons/Square30x30Logo.png | Bin .../src-tauri}/icons/Square310x310Logo.png | Bin .../src-tauri}/icons/Square44x44Logo.png | Bin .../src-tauri}/icons/Square71x71Logo.png | Bin .../src-tauri}/icons/Square89x89Logo.png | Bin .../src-tauri}/icons/StoreLogo.png | Bin .../src-tauri}/icons/icon.icns | Bin .../src-tauri}/icons/icon.ico | Bin .../src-tauri}/icons/icon.png | Bin .../src-tauri}/icons/icon.svg | 0 .../resources/mysql_tools/README.md | 0 .../src-tauri}/resources/pg_tools/.gitkeep | 0 .../src-tauri}/resources/pg_tools/README.md | 0 .../src-tauri}/src/cancel.rs | 0 .../src-tauri}/src/commands/backup.rs | 0 .../src-tauri}/src/commands/backup.test.rs | 0 .../src-tauri}/src/commands/connections.rs | 0 .../src-tauri}/src/commands/db_viewer.rs | 0 .../src-tauri}/src/commands/demo.rs | 0 .../src-tauri}/src/commands/demo.test.rs | 0 .../src-tauri}/src/commands/demo_schema.sql | 0 .../src-tauri}/src/commands/folders.rs | 0 .../src-tauri}/src/commands/import_export.rs | 0 .../src-tauri}/src/commands/keychain.rs | 0 .../src-tauri}/src/commands/maintenance.rs | 0 .../src/commands/maintenance.test.rs | 0 .../src-tauri}/src/commands/mod.rs | 0 .../src-tauri}/src/commands/objects.rs | 0 .../src-tauri}/src/commands/objects.test.rs | 0 .../src-tauri}/src/commands/query.rs | 0 .../src-tauri}/src/commands/schema_graph.rs | 0 .../src-tauri}/src/commands/settings.rs | 0 .../src-tauri}/src/commands/ssh.rs | 0 .../src-tauri}/src/commands/tags.rs | 0 .../src/commands/test_connection.rs | 0 .../src-tauri}/src/db/introspection.rs | 0 .../src-tauri}/src/db/mod.rs | 0 .../src-tauri}/src/db/mysql.rs | 0 .../src-tauri}/src/db/object_crud.rs | 0 .../src-tauri}/src/db/object_ddl.rs | 0 .../src-tauri}/src/db/pool.rs | 0 .../src-tauri}/src/db/tls.rs | 0 {src-tauri => desktop/src-tauri}/src/lib.rs | 0 {src-tauri => desktop/src-tauri}/src/main.rs | 0 .../src-tauri}/src/models/backup.rs | 0 .../src-tauri}/src/models/connection.rs | 0 .../src-tauri}/src/models/db_viewer.rs | 0 .../src-tauri}/src/models/folder.rs | 0 .../src-tauri}/src/models/mod.rs | 0 .../src-tauri}/src/models/recent.rs | 0 .../src-tauri}/src/models/settings.rs | 0 .../src-tauri}/src/models/ssh.rs | 0 .../src-tauri}/src/models/tag.rs | 0 .../src-tauri}/src/store/migrations.rs | 0 .../src-tauri}/src/store/mod.rs | 0 .../src-tauri}/tauri.conf.json | 0 {src => desktop/src}/App.test.tsx | 0 {src => desktop/src}/App.tsx | 0 .../connections/ConnectionCard.test.tsx | 0 .../components/connections/ConnectionCard.tsx | 0 .../connections/ConnectionCardMenu.test.tsx | 0 .../connections/ConnectionCardMenu.tsx | 0 .../connections/ConnectionFormShell.tsx | 0 .../connections/ConnectionGrid.test.tsx | 0 .../components/connections/ConnectionGrid.tsx | 0 .../ConnectionMetadataRow.test.tsx | 0 .../connections/ConnectionMetadataRow.tsx | 0 .../connections/ConnectionStringInput.tsx | 0 .../DetailedConnectionForm.test.tsx | 0 .../connections/DetailedConnectionForm.tsx | 0 .../connections/EnvironmentSelect.tsx | 0 .../components/connections/FolderSelect.tsx | 0 .../connections/GeneralTab.test.tsx | 0 .../components/connections/GeneralTab.tsx | 0 .../connections/MoveToFolderDialog.test.tsx | 0 .../connections/MoveToFolderDialog.tsx | 0 .../connections/NewConnectionScreen.test.tsx | 0 .../connections/NewConnectionScreen.tsx | 0 .../components/connections/PasswordInput.tsx | 0 .../connections/ProviderSetupGuide.test.tsx | 0 .../connections/ProviderSetupGuide.tsx | 0 .../connections/ProviderTabsGrid.test.tsx | 0 .../connections/ProviderTabsGrid.tsx | 0 .../RecentConnectionsStrip.test.tsx | 0 .../connections/RecentConnectionsStrip.tsx | 0 .../connections/SqlitePathInput.test.tsx | 0 .../connections/SqlitePathInput.tsx | 0 .../components/connections/SshFields.test.tsx | 0 .../src}/components/connections/SshFields.tsx | 0 .../components/connections/SshSslTab.test.tsx | 0 .../src}/components/connections/SshSslTab.tsx | 0 .../components/connections/SslFields.test.tsx | 0 .../src}/components/connections/SslFields.tsx | 0 .../components/connections/TagsEnvTab.tsx | 0 .../connections/connectionFormData.ts | 0 .../connections/useConnectionStatus.test.ts | 0 .../connections/useConnectionStatus.ts | 0 .../components/db-viewer/BackupDialog.tsx | 0 .../components/db-viewer/BackupPage.test.tsx | 0 .../src}/components/db-viewer/BackupPage.tsx | 0 .../components/db-viewer/BackupProgress.tsx | 0 .../db-viewer/ChangesQueuePanel.test.tsx | 0 .../db-viewer/ChangesQueuePanel.tsx | 0 .../db-viewer/ConnectionDropBanner.test.tsx | 0 .../db-viewer/ConnectionDropBanner.tsx | 0 .../components/db-viewer/CrowsFootEdge.tsx | 0 .../db-viewer/DbViewerScreen.test.tsx | 0 .../components/db-viewer/DbViewerScreen.tsx | 0 .../db-viewer/DbViewerSidebar.test.tsx | 0 .../components/db-viewer/DbViewerSidebar.tsx | 0 .../db-viewer/DbViewerToolbar.test.tsx | 0 .../components/db-viewer/DbViewerToolbar.tsx | 0 .../db-viewer/DependencyDialog.test.tsx | 0 .../components/db-viewer/DependencyDialog.tsx | 0 .../db-viewer/EditConnectionModal.test.tsx | 0 .../db-viewer/EditConnectionModal.tsx | 0 .../db-viewer/FilterBuilder.test.tsx | 0 .../components/db-viewer/FilterBuilder.tsx | 0 .../components/db-viewer/FkPreviewPopover.tsx | 0 .../db-viewer/ImportDialog.test.tsx | 0 .../components/db-viewer/ImportDialog.tsx | 0 .../components/db-viewer/JsonCellPopover.tsx | 0 .../db-viewer/ObjectExplorerPage.test.tsx | 0 .../db-viewer/ObjectExplorerPage.tsx | 0 .../db-viewer/ObjectSearchPalette.test.tsx | 0 .../db-viewer/ObjectSearchPalette.tsx | 0 .../src}/components/db-viewer/ObjectTree.tsx | 0 .../db-viewer/PasswordPromptDialog.test.tsx | 0 .../db-viewer/PasswordPromptDialog.tsx | 0 .../components/db-viewer/RestoreDialog.tsx | 0 .../components/db-viewer/RestorePage.test.tsx | 0 .../src}/components/db-viewer/RestorePage.tsx | 0 .../components/db-viewer/SchemaMenu.test.tsx | 0 .../src}/components/db-viewer/SchemaMenu.tsx | 0 .../db-viewer/SchemaVisualizerNode.test.tsx | 0 .../db-viewer/SchemaVisualizerNode.tsx | 0 .../db-viewer/SchemaVisualizerPage.test.tsx | 0 .../db-viewer/SchemaVisualizerPage.tsx | 0 .../src}/components/db-viewer/SyncDialog.tsx | 0 .../components/db-viewer/SyncPage.test.tsx | 0 .../src}/components/db-viewer/SyncPage.tsx | 0 .../src}/components/db-viewer/TabBar.test.tsx | 0 .../src}/components/db-viewer/TabBar.tsx | 0 .../db-viewer/TableControls.test.tsx | 0 .../components/db-viewer/TableControls.tsx | 0 .../db-viewer/TableOverflowMenu.test.tsx | 0 .../db-viewer/TableOverflowMenu.tsx | 0 .../components/db-viewer/TableTree.test.tsx | 0 .../src}/components/db-viewer/TableTree.tsx | 0 .../src}/components/db-viewer/ToolsPage.tsx | 0 .../db-viewer/legendHelpers.test.ts | 0 .../components/db-viewer/legendHelpers.ts | 0 .../db-viewer/objects/ColumnPicker.tsx | 0 .../db-viewer/objects/ConstraintForm.test.tsx | 0 .../db-viewer/objects/ConstraintForm.tsx | 0 .../db-viewer/objects/EnumForm.test.tsx | 0 .../components/db-viewer/objects/EnumForm.tsx | 0 .../db-viewer/objects/ExtensionForm.test.tsx | 0 .../db-viewer/objects/ExtensionForm.tsx | 0 .../db-viewer/objects/FkPanel.test.tsx | 0 .../components/db-viewer/objects/FkPanel.tsx | 0 .../db-viewer/objects/FunctionForm.test.tsx | 0 .../db-viewer/objects/FunctionForm.tsx | 0 .../db-viewer/objects/IndexForm.test.tsx | 0 .../db-viewer/objects/IndexForm.tsx | 0 .../components/db-viewer/objects/KindForm.tsx | 0 .../objects/ObjectContextMenu.test.tsx | 0 .../db-viewer/objects/ObjectContextMenu.tsx | 0 .../db-viewer/objects/ObjectDetail.test.tsx | 0 .../db-viewer/objects/ObjectDetail.tsx | 0 .../db-viewer/objects/ObjectFormTab.test.tsx | 0 .../db-viewer/objects/ObjectFormTab.tsx | 0 .../db-viewer/objects/RoleDetail.test.tsx | 0 .../db-viewer/objects/RoleDetail.tsx | 0 .../db-viewer/objects/RoleForm.test.tsx | 0 .../components/db-viewer/objects/RoleForm.tsx | 0 .../objects/RoleGrantsEditor.test.tsx | 0 .../db-viewer/objects/RoleGrantsEditor.tsx | 0 .../db-viewer/objects/SequenceForm.test.tsx | 0 .../db-viewer/objects/SequenceForm.tsx | 0 .../db-viewer/objects/TableForm.test.tsx | 0 .../db-viewer/objects/TableForm.tsx | 0 .../db-viewer/objects/TriggerForm.test.tsx | 0 .../db-viewer/objects/TriggerForm.tsx | 0 .../db-viewer/objects/ViewForm.test.tsx | 0 .../components/db-viewer/objects/ViewForm.tsx | 0 .../components/db-viewer/objects/formRow.tsx | 0 .../editor/DestructiveQueryDialog.test.tsx | 0 .../editor/DestructiveQueryDialog.tsx | 0 .../components/editor/QueryEditor.test.tsx | 0 .../src}/components/editor/QueryEditor.tsx | 0 .../editor/QueryHistoryDropdown.test.tsx | 0 .../editor/QueryHistoryDropdown.tsx | 0 .../components/editor/QueryToolbar.test.tsx | 0 .../src}/components/editor/QueryToolbar.tsx | 0 .../editor/SaveQueryDialog.test.tsx | 0 .../components/editor/SaveQueryDialog.tsx | 0 .../src}/components/editor/SqlEditorField.tsx | 0 .../folders/CreateFolderDialog.test.tsx | 0 .../components/folders/CreateFolderDialog.tsx | 0 .../folders/EditFolderDialog.test.tsx | 0 .../components/folders/EditFolderDialog.tsx | 0 .../folders/FolderBreadcrumb.test.tsx | 0 .../components/folders/FolderBreadcrumb.tsx | 0 .../components/folders/FolderTree.test.tsx | 0 .../src}/components/folders/FolderTree.tsx | 0 .../components/grid/CellContextMenu.test.tsx | 0 .../src}/components/grid/CellContextMenu.tsx | 0 .../src}/components/grid/CellEditor.test.tsx | 0 .../src}/components/grid/CellEditor.tsx | 0 .../components/grid/RowDetailDrawer.test.tsx | 0 .../src}/components/grid/RowDetailDrawer.tsx | 0 .../components/grid/VirtualDataGrid.test.tsx | 0 .../src}/components/grid/VirtualDataGrid.tsx | 0 .../components/grid/gridEditability.test.ts | 0 .../src}/components/grid/gridEditability.ts | 0 .../src}/components/grid/keyboardNav.test.ts | 0 .../src}/components/grid/keyboardNav.ts | 0 .../src}/components/layout/ActionRow.test.tsx | 0 .../src}/components/layout/ActionRow.tsx | 0 .../layout/DbTypeFilterDropdown.test.tsx | 0 .../layout/DbTypeFilterDropdown.tsx | 0 .../components/layout/HomeScreen.test.tsx | 0 .../src}/components/layout/HomeScreen.tsx | 0 .../components/layout/ImportExportMenu.tsx | 0 .../components/queries/QueriesPanel.test.tsx | 0 .../src}/components/queries/QueriesPanel.tsx | 0 .../src}/components/search/SearchBar.test.tsx | 0 .../src}/components/search/SearchBar.tsx | 0 .../settings/AdvancedSettingsTab.tsx | 0 .../settings/EditorSettingsTab.test.tsx | 0 .../components/settings/EditorSettingsTab.tsx | 0 .../settings/GeneralSettingsTab.test.tsx | 0 .../settings/GeneralSettingsTab.tsx | 0 .../components/settings/SettingsPage.test.tsx | 0 .../src}/components/settings/SettingsPage.tsx | 0 .../settings/ShortcutsSettingsTab.tsx | 0 .../components/settings/TagsSettingsTab.tsx | 0 .../tags/SearchableTagPicker.test.tsx | 0 .../components/tags/SearchableTagPicker.tsx | 0 .../src}/components/tags/TagBadge.test.tsx | 0 .../src}/components/tags/TagBadge.tsx | 0 .../tags/TagFilterDropdown.test.tsx | 0 .../components/tags/TagFilterDropdown.tsx | 0 .../src}/components/ui/AccentPicker.tsx | 0 .../src}/components/ui/AnimatedModal.test.tsx | 0 .../src}/components/ui/AnimatedModal.tsx | 0 .../src}/components/ui/Badge.test.tsx | 0 {src => desktop/src}/components/ui/Badge.tsx | 0 .../src}/components/ui/Button.test.tsx | 0 {src => desktop/src}/components/ui/Button.tsx | 0 {src => desktop/src}/components/ui/Card.tsx | 0 .../src}/components/ui/ConfirmDialog.test.tsx | 0 .../src}/components/ui/ConfirmDialog.tsx | 0 .../src}/components/ui/DataTypeIcon.test.tsx | 0 .../src}/components/ui/DataTypeIcon.tsx | 0 .../src}/components/ui/ErrorBanner.test.tsx | 0 .../src}/components/ui/ErrorBanner.tsx | 0 .../src}/components/ui/Input.test.tsx | 0 {src => desktop/src}/components/ui/Input.tsx | 0 .../src}/components/ui/Select.test.tsx | 0 {src => desktop/src}/components/ui/Select.tsx | 0 .../components/ui/SelectDropdown.test.tsx | 0 .../src}/components/ui/SelectDropdown.tsx | 0 .../src}/components/ui/SettingsRow.test.tsx | 0 .../src}/components/ui/SettingsRow.tsx | 0 .../src}/components/ui/ThemePicker.test.tsx | 0 .../src}/components/ui/ThemePicker.tsx | 0 {src => desktop/src}/components/ui/Toast.tsx | 0 .../src}/components/ui/Toggle.test.tsx | 0 {src => desktop/src}/components/ui/Toggle.tsx | 0 .../src}/components/ui/Tooltip.test.tsx | 0 .../src}/components/ui/Tooltip.tsx | 0 .../src}/hooks/useAppearance.test.ts | 0 {src => desktop/src}/hooks/useAppearance.ts | 0 .../src}/hooks/useConnections.test.ts | 0 {src => desktop/src}/hooks/useConnections.ts | 0 .../src}/hooks/useDbConnection.test.tsx | 0 {src => desktop/src}/hooks/useDbConnection.ts | 0 {src => desktop/src}/hooks/useSearch.test.ts | 0 {src => desktop/src}/hooks/useSearch.ts | 0 {src => desktop/src}/hooks/useShortcut.ts | 0 {src => desktop/src}/hooks/useSortedTags.ts | 0 {src => desktop/src}/index.css | 0 .../src}/lib/bundle-config.test.ts | 0 .../src}/lib/changePayload.test.ts | 0 {src => desktop/src}/lib/changePayload.ts | 0 {src => desktop/src}/lib/commands.test.ts | 0 {src => desktop/src}/lib/commands.ts | 0 .../src}/lib/connectionString.test.ts | 0 {src => desktop/src}/lib/connectionString.ts | 0 {src => desktop/src}/lib/csvParser.test.ts | 0 {src => desktop/src}/lib/csvParser.ts | 0 .../src}/lib/dbCapabilities.test.ts | 0 {src => desktop/src}/lib/dbCapabilities.ts | 0 {src => desktop/src}/lib/dbIcons.tsx | 0 .../src}/lib/docs-coverage.test.ts | 4 +- {src => desktop/src}/lib/environment.ts | 0 {src => desktop/src}/lib/exportData.test.ts | 0 {src => desktop/src}/lib/exportData.ts | 0 {src => desktop/src}/lib/importExport.test.ts | 0 {src => desktop/src}/lib/importExport.ts | 0 .../src}/lib/importNormalize.test.ts | 0 {src => desktop/src}/lib/importNormalize.ts | 0 {src => desktop/src}/lib/keychain.ts | 0 {src => desktop/src}/lib/monacoSetup.ts | 0 {src => desktop/src}/lib/objectCrud.test.ts | 0 {src => desktop/src}/lib/objectCrud.ts | 0 {src => desktop/src}/lib/platform.test.ts | 0 {src => desktop/src}/lib/platform.ts | 0 {src => desktop/src}/lib/providers.test.ts | 0 {src => desktop/src}/lib/providers.ts | 0 .../src}/lib/recentConnections.test.ts | 0 {src => desktop/src}/lib/recentConnections.ts | 0 .../src}/lib/settingsImport.test.ts | 0 {src => desktop/src}/lib/settingsImport.ts | 0 .../src}/lib/sqlCompletion.test.ts | 0 {src => desktop/src}/lib/sqlCompletion.ts | 0 {src => desktop/src}/lib/types.test.ts | 0 {src => desktop/src}/lib/types.ts | 0 {src => desktop/src}/lib/uiConstants.test.ts | 0 {src => desktop/src}/lib/uiConstants.ts | 0 {src => desktop/src}/lib/utils.test.ts | 0 {src => desktop/src}/lib/utils.ts | 0 {src => desktop/src}/lib/version.test.ts | 0 {src => desktop/src}/lib/xlsx.test.ts | 0 {src => desktop/src}/lib/xlsx.ts | 0 {src => desktop/src}/main.tsx | 0 {src => desktop/src}/stores/backupStore.ts | 0 .../src}/stores/connectionStore.test.ts | 0 .../src}/stores/connectionStore.ts | 0 .../src}/stores/dbViewerStore.test.ts | 0 {src => desktop/src}/stores/dbViewerStore.ts | 0 .../src}/stores/notificationStore.ts | 0 .../src}/stores/queryStore.test.ts | 0 {src => desktop/src}/stores/queryStore.ts | 0 .../src}/stores/settingsStore.test.ts | 0 {src => desktop/src}/stores/settingsStore.ts | 0 {src => desktop/src}/stores/uiStore.test.ts | 0 {src => desktop/src}/stores/uiStore.ts | 0 {src => desktop/src}/test/bun-dom.ts | 0 {src => desktop/src}/test/bun-setup.ts | 0 {src => desktop/src}/test/jsdom.d.ts | 0 {src => desktop/src}/test/setup.ts | 0 {src => desktop/src}/test/smoke.test.tsx | 0 {src => desktop/src}/vite-env.d.ts | 0 tsconfig.json => desktop/tsconfig.json | 0 .../tsconfig.node.json | 0 vite.config.ts => desktop/vite.config.ts | 0 vitest.config.ts => desktop/vitest.config.ts | 0 package.json | 66 +-- www/.gitignore | 24 + www/AGENTS.md | 22 + www/CLAUDE.md | 1 + www/README.md | 43 ++ www/astro.config.mjs | 10 + www/package.json | 20 + www/public/favicon.ico | Bin 0 -> 655 bytes www/public/favicon.svg | 9 + www/src/pages/index.astro | 17 + www/src/styles/global.css | 1 + www/tsconfig.json | 5 + 400 files changed, 857 insertions(+), 149 deletions(-) rename bunfig.toml => desktop/bunfig.toml (100%) rename index.html => desktop/index.html (100%) create mode 100644 desktop/package.json rename {src-tauri => desktop/src-tauri}/.gitignore (100%) rename {src-tauri => desktop/src-tauri}/Cargo.lock (100%) rename {src-tauri => desktop/src-tauri}/Cargo.toml (100%) rename {src-tauri => desktop/src-tauri}/build.rs (100%) rename {src-tauri => desktop/src-tauri}/capabilities/default.json (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/128x128.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/128x128@2x.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/32x32.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/64x64.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square107x107Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square142x142Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square150x150Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square284x284Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square30x30Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square310x310Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square44x44Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square71x71Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/Square89x89Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/StoreLogo.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/icon.icns (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/icon.ico (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/icon.png (100%) rename {src-tauri => desktop/src-tauri}/icons.backup/icon.svg (100%) rename {src-tauri => desktop/src-tauri}/icons/128x128.png (100%) rename {src-tauri => desktop/src-tauri}/icons/128x128@2x.png (100%) rename {src-tauri => desktop/src-tauri}/icons/32x32.png (100%) rename {src-tauri => desktop/src-tauri}/icons/64x64.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square107x107Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square142x142Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square150x150Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square284x284Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square30x30Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square310x310Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square44x44Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square71x71Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/Square89x89Logo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/StoreLogo.png (100%) rename {src-tauri => desktop/src-tauri}/icons/icon.icns (100%) rename {src-tauri => desktop/src-tauri}/icons/icon.ico (100%) rename {src-tauri => desktop/src-tauri}/icons/icon.png (100%) rename {src-tauri => desktop/src-tauri}/icons/icon.svg (100%) rename {src-tauri => desktop/src-tauri}/resources/mysql_tools/README.md (100%) rename {src-tauri => desktop/src-tauri}/resources/pg_tools/.gitkeep (100%) rename {src-tauri => desktop/src-tauri}/resources/pg_tools/README.md (100%) rename {src-tauri => desktop/src-tauri}/src/cancel.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/backup.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/backup.test.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/connections.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/db_viewer.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/demo.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/demo.test.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/demo_schema.sql (100%) rename {src-tauri => desktop/src-tauri}/src/commands/folders.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/import_export.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/keychain.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/maintenance.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/maintenance.test.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/mod.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/objects.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/objects.test.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/query.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/schema_graph.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/settings.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/ssh.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/tags.rs (100%) rename {src-tauri => desktop/src-tauri}/src/commands/test_connection.rs (100%) rename {src-tauri => desktop/src-tauri}/src/db/introspection.rs (100%) rename {src-tauri => desktop/src-tauri}/src/db/mod.rs (100%) rename {src-tauri => desktop/src-tauri}/src/db/mysql.rs (100%) rename {src-tauri => desktop/src-tauri}/src/db/object_crud.rs (100%) rename {src-tauri => desktop/src-tauri}/src/db/object_ddl.rs (100%) rename {src-tauri => desktop/src-tauri}/src/db/pool.rs (100%) rename {src-tauri => desktop/src-tauri}/src/db/tls.rs (100%) rename {src-tauri => desktop/src-tauri}/src/lib.rs (100%) rename {src-tauri => desktop/src-tauri}/src/main.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/backup.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/connection.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/db_viewer.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/folder.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/mod.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/recent.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/settings.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/ssh.rs (100%) rename {src-tauri => desktop/src-tauri}/src/models/tag.rs (100%) rename {src-tauri => desktop/src-tauri}/src/store/migrations.rs (100%) rename {src-tauri => desktop/src-tauri}/src/store/mod.rs (100%) rename {src-tauri => desktop/src-tauri}/tauri.conf.json (100%) rename {src => desktop/src}/App.test.tsx (100%) rename {src => desktop/src}/App.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionCard.test.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionCard.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionCardMenu.test.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionCardMenu.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionFormShell.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionGrid.test.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionGrid.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionMetadataRow.test.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionMetadataRow.tsx (100%) rename {src => desktop/src}/components/connections/ConnectionStringInput.tsx (100%) rename {src => desktop/src}/components/connections/DetailedConnectionForm.test.tsx (100%) rename {src => desktop/src}/components/connections/DetailedConnectionForm.tsx (100%) rename {src => desktop/src}/components/connections/EnvironmentSelect.tsx (100%) rename {src => desktop/src}/components/connections/FolderSelect.tsx (100%) rename {src => desktop/src}/components/connections/GeneralTab.test.tsx (100%) rename {src => desktop/src}/components/connections/GeneralTab.tsx (100%) rename {src => desktop/src}/components/connections/MoveToFolderDialog.test.tsx (100%) rename {src => desktop/src}/components/connections/MoveToFolderDialog.tsx (100%) rename {src => desktop/src}/components/connections/NewConnectionScreen.test.tsx (100%) rename {src => desktop/src}/components/connections/NewConnectionScreen.tsx (100%) rename {src => desktop/src}/components/connections/PasswordInput.tsx (100%) rename {src => desktop/src}/components/connections/ProviderSetupGuide.test.tsx (100%) rename {src => desktop/src}/components/connections/ProviderSetupGuide.tsx (100%) rename {src => desktop/src}/components/connections/ProviderTabsGrid.test.tsx (100%) rename {src => desktop/src}/components/connections/ProviderTabsGrid.tsx (100%) rename {src => desktop/src}/components/connections/RecentConnectionsStrip.test.tsx (100%) rename {src => desktop/src}/components/connections/RecentConnectionsStrip.tsx (100%) rename {src => desktop/src}/components/connections/SqlitePathInput.test.tsx (100%) rename {src => desktop/src}/components/connections/SqlitePathInput.tsx (100%) rename {src => desktop/src}/components/connections/SshFields.test.tsx (100%) rename {src => desktop/src}/components/connections/SshFields.tsx (100%) rename {src => desktop/src}/components/connections/SshSslTab.test.tsx (100%) rename {src => desktop/src}/components/connections/SshSslTab.tsx (100%) rename {src => desktop/src}/components/connections/SslFields.test.tsx (100%) rename {src => desktop/src}/components/connections/SslFields.tsx (100%) rename {src => desktop/src}/components/connections/TagsEnvTab.tsx (100%) rename {src => desktop/src}/components/connections/connectionFormData.ts (100%) rename {src => desktop/src}/components/connections/useConnectionStatus.test.ts (100%) rename {src => desktop/src}/components/connections/useConnectionStatus.ts (100%) rename {src => desktop/src}/components/db-viewer/BackupDialog.tsx (100%) rename {src => desktop/src}/components/db-viewer/BackupPage.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/BackupPage.tsx (100%) rename {src => desktop/src}/components/db-viewer/BackupProgress.tsx (100%) rename {src => desktop/src}/components/db-viewer/ChangesQueuePanel.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/ChangesQueuePanel.tsx (100%) rename {src => desktop/src}/components/db-viewer/ConnectionDropBanner.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/ConnectionDropBanner.tsx (100%) rename {src => desktop/src}/components/db-viewer/CrowsFootEdge.tsx (100%) rename {src => desktop/src}/components/db-viewer/DbViewerScreen.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/DbViewerScreen.tsx (100%) rename {src => desktop/src}/components/db-viewer/DbViewerSidebar.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/DbViewerSidebar.tsx (100%) rename {src => desktop/src}/components/db-viewer/DbViewerToolbar.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/DbViewerToolbar.tsx (100%) rename {src => desktop/src}/components/db-viewer/DependencyDialog.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/DependencyDialog.tsx (100%) rename {src => desktop/src}/components/db-viewer/EditConnectionModal.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/EditConnectionModal.tsx (100%) rename {src => desktop/src}/components/db-viewer/FilterBuilder.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/FilterBuilder.tsx (100%) rename {src => desktop/src}/components/db-viewer/FkPreviewPopover.tsx (100%) rename {src => desktop/src}/components/db-viewer/ImportDialog.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/ImportDialog.tsx (100%) rename {src => desktop/src}/components/db-viewer/JsonCellPopover.tsx (100%) rename {src => desktop/src}/components/db-viewer/ObjectExplorerPage.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/ObjectExplorerPage.tsx (100%) rename {src => desktop/src}/components/db-viewer/ObjectSearchPalette.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/ObjectSearchPalette.tsx (100%) rename {src => desktop/src}/components/db-viewer/ObjectTree.tsx (100%) rename {src => desktop/src}/components/db-viewer/PasswordPromptDialog.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/PasswordPromptDialog.tsx (100%) rename {src => desktop/src}/components/db-viewer/RestoreDialog.tsx (100%) rename {src => desktop/src}/components/db-viewer/RestorePage.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/RestorePage.tsx (100%) rename {src => desktop/src}/components/db-viewer/SchemaMenu.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/SchemaMenu.tsx (100%) rename {src => desktop/src}/components/db-viewer/SchemaVisualizerNode.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/SchemaVisualizerNode.tsx (100%) rename {src => desktop/src}/components/db-viewer/SchemaVisualizerPage.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/SchemaVisualizerPage.tsx (100%) rename {src => desktop/src}/components/db-viewer/SyncDialog.tsx (100%) rename {src => desktop/src}/components/db-viewer/SyncPage.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/SyncPage.tsx (100%) rename {src => desktop/src}/components/db-viewer/TabBar.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/TabBar.tsx (100%) rename {src => desktop/src}/components/db-viewer/TableControls.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/TableControls.tsx (100%) rename {src => desktop/src}/components/db-viewer/TableOverflowMenu.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/TableOverflowMenu.tsx (100%) rename {src => desktop/src}/components/db-viewer/TableTree.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/TableTree.tsx (100%) rename {src => desktop/src}/components/db-viewer/ToolsPage.tsx (100%) rename {src => desktop/src}/components/db-viewer/legendHelpers.test.ts (100%) rename {src => desktop/src}/components/db-viewer/legendHelpers.ts (100%) rename {src => desktop/src}/components/db-viewer/objects/ColumnPicker.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ConstraintForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ConstraintForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/EnumForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/EnumForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ExtensionForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ExtensionForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/FkPanel.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/FkPanel.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/FunctionForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/FunctionForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/IndexForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/IndexForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/KindForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ObjectContextMenu.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ObjectContextMenu.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ObjectDetail.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ObjectDetail.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ObjectFormTab.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ObjectFormTab.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/RoleDetail.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/RoleDetail.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/RoleForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/RoleForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/RoleGrantsEditor.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/RoleGrantsEditor.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/SequenceForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/SequenceForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/TableForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/TableForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/TriggerForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/TriggerForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ViewForm.test.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/ViewForm.tsx (100%) rename {src => desktop/src}/components/db-viewer/objects/formRow.tsx (100%) rename {src => desktop/src}/components/editor/DestructiveQueryDialog.test.tsx (100%) rename {src => desktop/src}/components/editor/DestructiveQueryDialog.tsx (100%) rename {src => desktop/src}/components/editor/QueryEditor.test.tsx (100%) rename {src => desktop/src}/components/editor/QueryEditor.tsx (100%) rename {src => desktop/src}/components/editor/QueryHistoryDropdown.test.tsx (100%) rename {src => desktop/src}/components/editor/QueryHistoryDropdown.tsx (100%) rename {src => desktop/src}/components/editor/QueryToolbar.test.tsx (100%) rename {src => desktop/src}/components/editor/QueryToolbar.tsx (100%) rename {src => desktop/src}/components/editor/SaveQueryDialog.test.tsx (100%) rename {src => desktop/src}/components/editor/SaveQueryDialog.tsx (100%) rename {src => desktop/src}/components/editor/SqlEditorField.tsx (100%) rename {src => desktop/src}/components/folders/CreateFolderDialog.test.tsx (100%) rename {src => desktop/src}/components/folders/CreateFolderDialog.tsx (100%) rename {src => desktop/src}/components/folders/EditFolderDialog.test.tsx (100%) rename {src => desktop/src}/components/folders/EditFolderDialog.tsx (100%) rename {src => desktop/src}/components/folders/FolderBreadcrumb.test.tsx (100%) rename {src => desktop/src}/components/folders/FolderBreadcrumb.tsx (100%) rename {src => desktop/src}/components/folders/FolderTree.test.tsx (100%) rename {src => desktop/src}/components/folders/FolderTree.tsx (100%) rename {src => desktop/src}/components/grid/CellContextMenu.test.tsx (100%) rename {src => desktop/src}/components/grid/CellContextMenu.tsx (100%) rename {src => desktop/src}/components/grid/CellEditor.test.tsx (100%) rename {src => desktop/src}/components/grid/CellEditor.tsx (100%) rename {src => desktop/src}/components/grid/RowDetailDrawer.test.tsx (100%) rename {src => desktop/src}/components/grid/RowDetailDrawer.tsx (100%) rename {src => desktop/src}/components/grid/VirtualDataGrid.test.tsx (100%) rename {src => desktop/src}/components/grid/VirtualDataGrid.tsx (100%) rename {src => desktop/src}/components/grid/gridEditability.test.ts (100%) rename {src => desktop/src}/components/grid/gridEditability.ts (100%) rename {src => desktop/src}/components/grid/keyboardNav.test.ts (100%) rename {src => desktop/src}/components/grid/keyboardNav.ts (100%) rename {src => desktop/src}/components/layout/ActionRow.test.tsx (100%) rename {src => desktop/src}/components/layout/ActionRow.tsx (100%) rename {src => desktop/src}/components/layout/DbTypeFilterDropdown.test.tsx (100%) rename {src => desktop/src}/components/layout/DbTypeFilterDropdown.tsx (100%) rename {src => desktop/src}/components/layout/HomeScreen.test.tsx (100%) rename {src => desktop/src}/components/layout/HomeScreen.tsx (100%) rename {src => desktop/src}/components/layout/ImportExportMenu.tsx (100%) rename {src => desktop/src}/components/queries/QueriesPanel.test.tsx (100%) rename {src => desktop/src}/components/queries/QueriesPanel.tsx (100%) rename {src => desktop/src}/components/search/SearchBar.test.tsx (100%) rename {src => desktop/src}/components/search/SearchBar.tsx (100%) rename {src => desktop/src}/components/settings/AdvancedSettingsTab.tsx (100%) rename {src => desktop/src}/components/settings/EditorSettingsTab.test.tsx (100%) rename {src => desktop/src}/components/settings/EditorSettingsTab.tsx (100%) rename {src => desktop/src}/components/settings/GeneralSettingsTab.test.tsx (100%) rename {src => desktop/src}/components/settings/GeneralSettingsTab.tsx (100%) rename {src => desktop/src}/components/settings/SettingsPage.test.tsx (100%) rename {src => desktop/src}/components/settings/SettingsPage.tsx (100%) rename {src => desktop/src}/components/settings/ShortcutsSettingsTab.tsx (100%) rename {src => desktop/src}/components/settings/TagsSettingsTab.tsx (100%) rename {src => desktop/src}/components/tags/SearchableTagPicker.test.tsx (100%) rename {src => desktop/src}/components/tags/SearchableTagPicker.tsx (100%) rename {src => desktop/src}/components/tags/TagBadge.test.tsx (100%) rename {src => desktop/src}/components/tags/TagBadge.tsx (100%) rename {src => desktop/src}/components/tags/TagFilterDropdown.test.tsx (100%) rename {src => desktop/src}/components/tags/TagFilterDropdown.tsx (100%) rename {src => desktop/src}/components/ui/AccentPicker.tsx (100%) rename {src => desktop/src}/components/ui/AnimatedModal.test.tsx (100%) rename {src => desktop/src}/components/ui/AnimatedModal.tsx (100%) rename {src => desktop/src}/components/ui/Badge.test.tsx (100%) rename {src => desktop/src}/components/ui/Badge.tsx (100%) rename {src => desktop/src}/components/ui/Button.test.tsx (100%) rename {src => desktop/src}/components/ui/Button.tsx (100%) rename {src => desktop/src}/components/ui/Card.tsx (100%) rename {src => desktop/src}/components/ui/ConfirmDialog.test.tsx (100%) rename {src => desktop/src}/components/ui/ConfirmDialog.tsx (100%) rename {src => desktop/src}/components/ui/DataTypeIcon.test.tsx (100%) rename {src => desktop/src}/components/ui/DataTypeIcon.tsx (100%) rename {src => desktop/src}/components/ui/ErrorBanner.test.tsx (100%) rename {src => desktop/src}/components/ui/ErrorBanner.tsx (100%) rename {src => desktop/src}/components/ui/Input.test.tsx (100%) rename {src => desktop/src}/components/ui/Input.tsx (100%) rename {src => desktop/src}/components/ui/Select.test.tsx (100%) rename {src => desktop/src}/components/ui/Select.tsx (100%) rename {src => desktop/src}/components/ui/SelectDropdown.test.tsx (100%) rename {src => desktop/src}/components/ui/SelectDropdown.tsx (100%) rename {src => desktop/src}/components/ui/SettingsRow.test.tsx (100%) rename {src => desktop/src}/components/ui/SettingsRow.tsx (100%) rename {src => desktop/src}/components/ui/ThemePicker.test.tsx (100%) rename {src => desktop/src}/components/ui/ThemePicker.tsx (100%) rename {src => desktop/src}/components/ui/Toast.tsx (100%) rename {src => desktop/src}/components/ui/Toggle.test.tsx (100%) rename {src => desktop/src}/components/ui/Toggle.tsx (100%) rename {src => desktop/src}/components/ui/Tooltip.test.tsx (100%) rename {src => desktop/src}/components/ui/Tooltip.tsx (100%) rename {src => desktop/src}/hooks/useAppearance.test.ts (100%) rename {src => desktop/src}/hooks/useAppearance.ts (100%) rename {src => desktop/src}/hooks/useConnections.test.ts (100%) rename {src => desktop/src}/hooks/useConnections.ts (100%) rename {src => desktop/src}/hooks/useDbConnection.test.tsx (100%) rename {src => desktop/src}/hooks/useDbConnection.ts (100%) rename {src => desktop/src}/hooks/useSearch.test.ts (100%) rename {src => desktop/src}/hooks/useSearch.ts (100%) rename {src => desktop/src}/hooks/useShortcut.ts (100%) rename {src => desktop/src}/hooks/useSortedTags.ts (100%) rename {src => desktop/src}/index.css (100%) rename {src => desktop/src}/lib/bundle-config.test.ts (100%) rename {src => desktop/src}/lib/changePayload.test.ts (100%) rename {src => desktop/src}/lib/changePayload.ts (100%) rename {src => desktop/src}/lib/commands.test.ts (100%) rename {src => desktop/src}/lib/commands.ts (100%) rename {src => desktop/src}/lib/connectionString.test.ts (100%) rename {src => desktop/src}/lib/connectionString.ts (100%) rename {src => desktop/src}/lib/csvParser.test.ts (100%) rename {src => desktop/src}/lib/csvParser.ts (100%) rename {src => desktop/src}/lib/dbCapabilities.test.ts (100%) rename {src => desktop/src}/lib/dbCapabilities.ts (100%) rename {src => desktop/src}/lib/dbIcons.tsx (100%) rename {src => desktop/src}/lib/docs-coverage.test.ts (97%) rename {src => desktop/src}/lib/environment.ts (100%) rename {src => desktop/src}/lib/exportData.test.ts (100%) rename {src => desktop/src}/lib/exportData.ts (100%) rename {src => desktop/src}/lib/importExport.test.ts (100%) rename {src => desktop/src}/lib/importExport.ts (100%) rename {src => desktop/src}/lib/importNormalize.test.ts (100%) rename {src => desktop/src}/lib/importNormalize.ts (100%) rename {src => desktop/src}/lib/keychain.ts (100%) rename {src => desktop/src}/lib/monacoSetup.ts (100%) rename {src => desktop/src}/lib/objectCrud.test.ts (100%) rename {src => desktop/src}/lib/objectCrud.ts (100%) rename {src => desktop/src}/lib/platform.test.ts (100%) rename {src => desktop/src}/lib/platform.ts (100%) rename {src => desktop/src}/lib/providers.test.ts (100%) rename {src => desktop/src}/lib/providers.ts (100%) rename {src => desktop/src}/lib/recentConnections.test.ts (100%) rename {src => desktop/src}/lib/recentConnections.ts (100%) rename {src => desktop/src}/lib/settingsImport.test.ts (100%) rename {src => desktop/src}/lib/settingsImport.ts (100%) rename {src => desktop/src}/lib/sqlCompletion.test.ts (100%) rename {src => desktop/src}/lib/sqlCompletion.ts (100%) rename {src => desktop/src}/lib/types.test.ts (100%) rename {src => desktop/src}/lib/types.ts (100%) rename {src => desktop/src}/lib/uiConstants.test.ts (100%) rename {src => desktop/src}/lib/uiConstants.ts (100%) rename {src => desktop/src}/lib/utils.test.ts (100%) rename {src => desktop/src}/lib/utils.ts (100%) rename {src => desktop/src}/lib/version.test.ts (100%) rename {src => desktop/src}/lib/xlsx.test.ts (100%) rename {src => desktop/src}/lib/xlsx.ts (100%) rename {src => desktop/src}/main.tsx (100%) rename {src => desktop/src}/stores/backupStore.ts (100%) rename {src => desktop/src}/stores/connectionStore.test.ts (100%) rename {src => desktop/src}/stores/connectionStore.ts (100%) rename {src => desktop/src}/stores/dbViewerStore.test.ts (100%) rename {src => desktop/src}/stores/dbViewerStore.ts (100%) rename {src => desktop/src}/stores/notificationStore.ts (100%) rename {src => desktop/src}/stores/queryStore.test.ts (100%) rename {src => desktop/src}/stores/queryStore.ts (100%) rename {src => desktop/src}/stores/settingsStore.test.ts (100%) rename {src => desktop/src}/stores/settingsStore.ts (100%) rename {src => desktop/src}/stores/uiStore.test.ts (100%) rename {src => desktop/src}/stores/uiStore.ts (100%) rename {src => desktop/src}/test/bun-dom.ts (100%) rename {src => desktop/src}/test/bun-setup.ts (100%) rename {src => desktop/src}/test/jsdom.d.ts (100%) rename {src => desktop/src}/test/setup.ts (100%) rename {src => desktop/src}/test/smoke.test.tsx (100%) rename {src => desktop/src}/vite-env.d.ts (100%) rename tsconfig.json => desktop/tsconfig.json (100%) rename tsconfig.node.json => desktop/tsconfig.node.json (100%) rename vite.config.ts => desktop/vite.config.ts (100%) rename vitest.config.ts => desktop/vitest.config.ts (100%) create mode 100644 www/.gitignore create mode 100644 www/AGENTS.md create mode 120000 www/CLAUDE.md create mode 100644 www/README.md create mode 100644 www/astro.config.mjs create mode 100644 www/package.json create mode 100644 www/public/favicon.ico create mode 100644 www/public/favicon.svg create mode 100644 www/src/pages/index.astro create mode 100644 www/src/styles/global.css create mode 100644 www/tsconfig.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6f80cd3..2f9f33e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -62,7 +62,7 @@ jobs: - name: Cache Rust build artifacts uses: swatinem/rust-cache@v2 with: - workspaces: './src-tauri -> target' + workspaces: './desktop/src-tauri -> target' - name: Install frontend dependencies run: bun install --frozen-lockfile @@ -72,7 +72,7 @@ jobs: run: | set -euo pipefail PG_VER="16.4" - OUT="${GITHUB_WORKSPACE}/src-tauri/resources/pg_tools" + OUT="${GITHUB_WORKSPACE}/desktop/src-tauri/resources/pg_tools" mkdir -p "$OUT" case "${{ matrix.platform }}" in ubuntu-22.04) @@ -176,7 +176,7 @@ jobs: run: | set -euo pipefail MARIADB_VER="11.4.5" - OUT="${GITHUB_WORKSPACE}/src-tauri/resources/mysql_tools" + OUT="${GITHUB_WORKSPACE}/desktop/src-tauri/resources/mysql_tools" mkdir -p "$OUT" case "${{ matrix.platform }}" in ubuntu-22.04) @@ -313,6 +313,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: + projectPath: desktop tagName: ${{ github.ref_name }} releaseName: 'Gridline ${{ github.ref_name }}' releaseDraft: true diff --git a/AGENTS.md b/AGENTS.md index 66ea2b7..498b043 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -43,55 +43,68 @@ Gridline is an **open-source, cross-platform database GUI client** for PostgreSQ ``` gridline/ -├── src/ # React frontend (TypeScript) -│ ├── components/ # Reusable UI components -│ │ ├── layout/ # App shell, sidebar, tabs -│ │ ├── editor/ # Monaco wrapper, autocomplete -│ │ ├── grid/ # Data grid, filters, export -│ │ ├── tree/ # Workspace/object explorer tree -│ │ └── ui/ # Primitives (buttons, modals, inputs) -│ ├── stores/ # Zustand/Jotai stores -│ ├── hooks/ # Custom hooks (useConnection, useQuery, etc.) -│ ├── lib/ # Utilities, types, Tauri bindings -│ │ ├── commands.ts # Typed wrappers around Tauri invoke() -│ │ ├── types.ts # Shared TypeScript interfaces -│ │ └── utils.ts # Formatting, validation helpers -│ ├── App.tsx -│ ├── main.tsx -│ └── index.css # Tailwind directives + custom theme tokens -├── src-tauri/ # Rust backend -│ ├── src/ -│ │ ├── main.rs # Binary entry point -│ │ ├── lib.rs # Tauri builder, command registration -│ │ ├── db/ # Connection pooling, query execution -│ │ │ ├── mod.rs -│ │ │ ├── pool.rs # Connection pool manager -│ │ │ └── introspection.rs # Schema/system catalog queries -│ │ ├── commands/ # Tauri #[tauri::command] handlers -│ │ │ ├── mod.rs -│ │ │ ├── connections.rs # CRUD for saved connections -│ │ │ ├── query.rs # SQL execution -│ │ │ ├── schema.rs # Object tree introspection -│ │ │ ├── schema_graph.rs # ER diagram / relationship graph -│ │ │ ├── backup.rs # pg_dump / pg_restore wrappers -│ │ │ └── workspace.rs # Workspace/folder persistence -│ │ ├── models/ # Serde structs shared across commands -│ │ │ ├── mod.rs -│ │ │ ├── connection.rs -│ │ │ ├── query.rs -│ │ │ ├── db_viewer.rs # DB viewer types (SchemaGraph, TableNode, etc.) -│ │ │ └── workspace.rs -│ │ └── store/ # SQLite local persistence layer -│ │ ├── mod.rs -│ │ └── migrations.rs -│ ├── Cargo.toml -│ ├── tauri.conf.json -│ └── capabilities/ # Tauri capability permissions -├── public/ # Static frontend assets -├── package.json -├── tsconfig.json -├── vite.config.ts -├── tailwind.config.ts +├── package.json # Workspace root: bun workspaces ["desktop", "www"], orchestration scripts +├── desktop/ # Tauri desktop app (React frontend + Rust backend) +│ ├── package.json # Frontend deps + scripts (name: gridline-desktop) +│ ├── index.html +│ ├── vite.config.ts # Vite + Tailwind v4 + Tauri dev server (port 1420) +│ ├── vitest.config.ts +│ ├── tsconfig.json +│ ├── tsconfig.node.json +│ ├── bunfig.toml # bun test preload +│ ├── src/ # React frontend (TypeScript) +│ │ ├── components/ # Reusable UI components +│ │ │ ├── layout/ # App shell, sidebar, tabs +│ │ │ ├── editor/ # Monaco wrapper, autocomplete +│ │ │ ├── grid/ # Data grid, filters, export +│ │ │ ├── tree/ # Workspace/object explorer tree +│ │ │ └── ui/ # Primitives (buttons, modals, inputs) +│ │ ├── stores/ # Zustand/Jotai stores +│ │ ├── hooks/ # Custom hooks (useConnection, useQuery, etc.) +│ │ ├── lib/ # Utilities, types, Tauri bindings +│ │ │ ├── commands.ts # Typed wrappers around Tauri invoke() +│ │ │ ├── types.ts # Shared TypeScript interfaces +│ │ │ └── utils.ts # Formatting, validation helpers +│ │ ├── App.tsx +│ │ ├── main.tsx +│ │ └── index.css # Tailwind directives + custom theme tokens +│ └── src-tauri/ # Rust backend +│ ├── src/ +│ │ ├── main.rs # Binary entry point +│ │ ├── lib.rs # Tauri builder, command registration +│ │ ├── db/ # Connection pooling, query execution +│ │ │ ├── mod.rs +│ │ │ ├── pool.rs # Connection pool manager +│ │ │ └── introspection.rs # Schema/system catalog queries +│ │ ├── commands/ # Tauri #[tauri::command] handlers +│ │ │ ├── mod.rs +│ │ │ ├── connections.rs # CRUD for saved connections +│ │ │ ├── query.rs # SQL execution +│ │ │ ├── schema.rs # Object tree introspection +│ │ │ ├── schema_graph.rs # ER diagram / relationship graph +│ │ │ ├── backup.rs # pg_dump / pg_restore wrappers +│ │ │ └── workspace.rs # Workspace/folder persistence +│ │ ├── models/ # Serde structs shared across commands +│ │ │ ├── mod.rs +│ │ │ ├── connection.rs +│ │ │ ├── query.rs +│ │ │ ├── db_viewer.rs # DB viewer types (SchemaGraph, TableNode, etc.) +│ │ │ └── workspace.rs +│ │ └── store/ # SQLite local persistence layer +│ │ ├── mod.rs +│ │ └── migrations.rs +│ ├── Cargo.toml +│ ├── tauri.conf.json +│ └── capabilities/ # Tauri capability permissions +├── www/ # Website: marketing site + docs (Astro + Tailwind) +│ ├── package.json # name: gridline-www +│ ├── astro.config.mjs +│ ├── tsconfig.json +│ └── src/ # Astro pages/components/styles +├── .github/workflows/ # release.yml (monorepo paths) + auto-assign.yml +├── docs/ # Project docs +├── screenshots/ # README marketing images +├── scripts/ # Release tooling (render-cask.sh) └── AGENTS.md # This file ``` @@ -141,12 +154,15 @@ gridline/ ### Commands ```bash -bun install # Install frontend dependencies -bun run dev # Vite dev server only (no Tauri) -bun run tauri dev # Full Tauri app with hot-reload -bun run tauri build # Production build -cargo build # Rust backend only (from src-tauri/) -cargo test # Rust tests +bun install # Install all workspace deps (repo root) +bun run dev:desktop # Vite dev server only (no Tauri) +bun run tauri:dev # Full Tauri app with hot-reload +bun run --filter gridline-desktop build # Desktop production build +bun run dev:www # Website dev server (Astro) +bun run build:www # Website static build (www/dist/) +bun run test # Desktop frontend tests (vitest) +cargo build # Rust backend only (from desktop/src-tauri/) +cargo test # Rust tests (from desktop/src-tauri/) ``` ### Branch & PR workflow @@ -164,23 +180,23 @@ Direct pushes to `prod` will be bypassed only in emergencies; prefer the PR path Cut a release by tagging the **`prod`** branch once the PR is merged — `git tag vN.M.N && git push origin vN.M.N`. GitHub Actions (`release.yml`) builds installers for macOS (Apple Silicon + Intel), Windows, and Linux and opens a **draft** release (review + publish on GitHub). **Before tagging**, keep everything in sync: -- Version number across `package.json`, `src-tauri/Cargo.toml`, and `src-tauri/tauri.conf.json` -- `src/lib/version.test.ts` and `src/lib/docs-coverage.test.ts` if they assert the version +- Version number across `desktop/package.json`, `desktop/src-tauri/Cargo.toml`, and `desktop/src-tauri/tauri.conf.json` +- `desktop/src/lib/version.test.ts` and `desktop/src/lib/docs-coverage.test.ts` if they assert the version - **README download links are static (versioned)** — both download tables (top **Download** section + **Which file should I download?**) link directly to the release-tag assets (`releases/download/v0.7.9/`). tauri-action uses default versioned asset names (`Gridline__aarch64.dmg`, `Gridline--1.x86_64.rpm`, etc.) — update BOTH tables to the new names on every release (see the MAINTENANCE comment in README.md). - **Bundled pg tools:** `tauri.conf.json` `bundle.resources` lists `resources/pg_tools/*`; the `release.yml` matrix builds/downloads + checksum-verifies the static binaries before the Tauri build step. - **Release notes must include the macOS first-launch instructions** — until a Developer ID signing certificate is secured, releases are ad-hoc signed only (not notarized), so every macOS user hits a Gatekeeper prompt. The draft release body must include: right-click → **Open** → **Open** (or System Settings → Privacy & Security → **Open Anyway**) for "developer cannot be verified", and `sudo xattr -dr com.apple.quarantine /Applications/Gridline.app` (with the re-run-after-every-upgrade note) for "damaged and can't be opened". ### Adding a Tauri Command -1. Define the command function in the appropriate `src-tauri/src/commands/` module -2. Register it in `src-tauri/src/lib.rs` via `.invoke_handler(tauri::generate_handler![...])` -3. Create a typed wrapper function in `src/lib/commands.ts` +1. Define the command function in the appropriate `desktop/src-tauri/src/commands/` module +2. Register it in `desktop/src-tauri/src/lib.rs` via `.invoke_handler(tauri::generate_handler![...])` +3. Create a typed wrapper function in `desktop/src/lib/commands.ts` 4. Call the wrapper from your React component/store ### Adding a New Dependency - **Frontend:** `bun add ` (runtime) or `bun add -d ` (dev) -- **Rust:** Add to `src-tauri/Cargo.toml` under `[dependencies]` +- **Rust:** Add to `desktop/src-tauri/Cargo.toml` under `[dependencies]` ### Testing Strategy diff --git a/README.md b/README.md index e5c18b3..e8551b5 100644 --- a/README.md +++ b/README.md @@ -351,7 +351,7 @@ git push origin v0.7.10 GitHub Actions (`.github/workflows/release.yml`) builds installers for **Apple Silicon, Intel Macs, Windows, and Linux**, then opens a **draft release** on the [Releases](https://github.com/adrianbonpin/gridline/releases) page — review it and hit **Publish release**. -Before tagging, make sure the version number is in sync across `package.json`, `src-tauri/Cargo.toml`, and `src-tauri/tauri.conf.json`, and update the **README download tables** (Download + Which file should I download?) to the new version's asset names. +Before tagging, make sure the version number is in sync across `desktop/package.json`, `desktop/src-tauri/Cargo.toml`, and `desktop/src-tauri/tauri.conf.json`, and update the **README download tables** (Download + Which file should I download?) to the new version's asset names. ### Build from source @@ -360,10 +360,11 @@ Before tagging, make sure the version number is in sync across `package.json`, ` git clone https://github.com/adrianbonpin/gridline.git cd gridline -# 2. Install frontend dependencies +# 2. Install all workspace dependencies bun install -# 3. Run in development mode with hot-reload +# 3. Run in development mode with hot-reload (from desktop/) +cd desktop bun run tauri dev # 4. Build for production @@ -383,17 +384,21 @@ bun run tauri build ## Development ```bash -# Frontend only (Vite dev server) -bun run dev +# Install all workspace dependencies (from the repo root) +bun install -# Full Tauri app with hot-reload +# Full Tauri app with hot-reload (from desktop/) +cd desktop bun run tauri dev # Production build bun run tauri build +# Frontend only (Vite dev server) +bun run dev + # Rust backend only -cd src-tauri +cd desktop/src-tauri cargo build # Run tests @@ -404,26 +409,28 @@ cargo test ``` gridline/ -├── src/ # React frontend -│ ├── components/ # Reusable UI components -│ ├── stores/ # Zustand/Jotai state stores -│ ├── hooks/ # Custom React hooks -│ ├── lib/ # Utilities, types, Tauri bindings -│ ├── App.tsx # Root component -│ └── main.tsx # Entry point -├── src-tauri/ # Rust backend -│ ├── src/ -│ │ ├── main.rs # Entry point -│ │ ├── lib.rs # Tauri command registration -│ │ ├── db/ # Database connection & pooling -│ │ ├── commands/ # Tauri IPC command handlers -│ │ └── models/ # Data structures & serde types -│ ├── Cargo.toml -│ └── tauri.conf.json -├── public/ # Static assets -├── package.json -├── tsconfig.json -└── vite.config.ts +├── package.json # Bun workspace root (desktop + www) +├── desktop/ # Tauri desktop app (React + Rust) +│ ├── src/ # React frontend +│ │ ├── components/ # Reusable UI components +│ │ ├── stores/ # Zustand/Jotai state stores +│ │ ├── hooks/ # Custom React hooks +│ │ ├── lib/ # Utilities, types, Tauri bindings +│ │ ├── App.tsx # Root component +│ │ └── main.tsx # Entry point +│ ├── src-tauri/ # Rust backend +│ │ ├── src/ +│ │ │ ├── main.rs # Entry point +│ │ │ ├── lib.rs # Tauri command registration +│ │ │ ├── db/ # Database connection & pooling +│ │ │ ├── commands/ # Tauri IPC command handlers +│ │ │ └── models/ # Data structures & serde types +│ │ ├── Cargo.toml +│ │ └── tauri.conf.json +│ ├── package.json +│ ├── tsconfig.json +│ └── vite.config.ts +└── www/ # Website (Astro + Tailwind) ``` --- diff --git a/bun.lock b/bun.lock index 1565cdf..611ea28 100644 --- a/bun.lock +++ b/bun.lock @@ -4,6 +4,10 @@ "workspaces": { "": { "name": "gridline", + }, + "desktop": { + "name": "gridline-desktop", + "version": "0.7.10", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", @@ -28,6 +32,7 @@ "react-dom": "^19.1.0", "simple-icons": "^16.27.1", "sql-formatter": "^15.8.2", + "tailwindcss": "^4.3.3", "tauri-plugin-keyring-store-api": "^0.2.0", "zustand": "^5.0.14", }, @@ -46,6 +51,15 @@ "vitest": "^4.1.10", }, }, + "www": { + "name": "gridline-www", + "version": "0.0.1", + "dependencies": { + "@tailwindcss/vite": "^4.3.3", + "astro": "^7.2.2", + "tailwindcss": "^4.3.3", + }, + }, }, "packages": { "@adobe/css-tools": ["@adobe/css-tools@4.5.0", "", {}, "sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q=="], @@ -58,6 +72,36 @@ "@asamuzakjp/nwsapi": ["@asamuzakjp/nwsapi@2.3.9", "", {}, "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q=="], + "@astrojs/compiler-binding": ["@astrojs/compiler-binding@0.3.2", "", { "optionalDependencies": { "@astrojs/compiler-binding-darwin-arm64": "0.3.2", "@astrojs/compiler-binding-darwin-x64": "0.3.2", "@astrojs/compiler-binding-linux-arm64-gnu": "0.3.2", "@astrojs/compiler-binding-linux-arm64-musl": "0.3.2", "@astrojs/compiler-binding-linux-x64-gnu": "0.3.2", "@astrojs/compiler-binding-linux-x64-musl": "0.3.2", "@astrojs/compiler-binding-wasm32-wasi": "0.3.2", "@astrojs/compiler-binding-win32-arm64-msvc": "0.3.2", "@astrojs/compiler-binding-win32-x64-msvc": "0.3.2" } }, "sha512-8w/9CWmYrAJJ8N0SY3O43ws2BgxoW6u3QsD8u2mE140lMYAlwh+tlNoUeSBq22wVheFuiBbR212l6ixZ2IIgCQ=="], + + "@astrojs/compiler-binding-darwin-arm64": ["@astrojs/compiler-binding-darwin-arm64@0.3.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-MM8tn8CSimcfytaOla4b6acN8mKWiL/rlAA1fpT3/Wl7dNGSE4y8FjTN/zJVNnb63CsLWG5zZwCt01TXtDKh9g=="], + + "@astrojs/compiler-binding-darwin-x64": ["@astrojs/compiler-binding-darwin-x64@0.3.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-2lXOlzf8xb7jLomRsf/aswh61/NnGusynB2OwFkK6k4pmOtpfXMYnG0PLfXrEvxXYj69NdCnmUYXtHDd+JOOag=="], + + "@astrojs/compiler-binding-linux-arm64-gnu": ["@astrojs/compiler-binding-linux-arm64-gnu@0.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-BmU3kWj7qnLrd4vzm49zFEPJ5oFnn1tCT4Vt9hZbqdU5Cmb8GZl7fn6VFsnNfe7B18a2gIFtVzbLINtYl5kBjQ=="], + + "@astrojs/compiler-binding-linux-arm64-musl": ["@astrojs/compiler-binding-linux-arm64-musl@0.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-f0heT9ZZEseSu5bHCeb80eL2DH07ArE6U9xi1WT/PEusNjzPmEr3GJsjG1tRLo5VYUUYX7h3ScaqGmGrMOVGmw=="], + + "@astrojs/compiler-binding-linux-x64-gnu": ["@astrojs/compiler-binding-linux-x64-gnu@0.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-M8fOUt0itRpqiGyoEA/ij184s8O+hqbCz3+YozRusOOM3osgGljpDThhbKAJjqh82wOo6FioQ4w8PBvU1XMD5Q=="], + + "@astrojs/compiler-binding-linux-x64-musl": ["@astrojs/compiler-binding-linux-x64-musl@0.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-/Kebk8sO6HnLeSd691JkaAPfN7CqR9/KEXmWvyNPkaKNGmj8rTZ/lf2uXtnPu92Lan84UrKdIKVPy1fSo2encQ=="], + + "@astrojs/compiler-binding-wasm32-wasi": ["@astrojs/compiler-binding-wasm32-wasi@0.3.2", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.2.0" }, "cpu": "none" }, "sha512-pUA6xbcOSB7DhfzIArB8BCAkFfAIqriiR7zl5zOStd6oU2G0kIKj+GUdGnyXyhfiv881Hffyk5tC0mR18sDjDw=="], + + "@astrojs/compiler-binding-win32-arm64-msvc": ["@astrojs/compiler-binding-win32-arm64-msvc@0.3.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-ESruf+6Qkl1trHUFxI6GSf6t52j8yN2kCNSzMWdzt7V/T09tFHrYzrVaJQohb2C9bJUH76pNvX6Zb51+xCQc9Q=="], + + "@astrojs/compiler-binding-win32-x64-msvc": ["@astrojs/compiler-binding-win32-x64-msvc@0.3.2", "", { "os": "win32", "cpu": "x64" }, "sha512-wzzVrEbOwbsLWOdEbocskjMRx2aZPxJ7ZbmL+jnpBamFwmigm+2M/wzuM6JWncocgYwLic1csSpalBh96kQKXA=="], + + "@astrojs/compiler-rs": ["@astrojs/compiler-rs@0.3.2", "", { "dependencies": { "@astrojs/compiler-binding": "0.3.2" } }, "sha512-xlx/T7JovIKduu4ucbTQUxQ5+Q8wxkHxhLjnZk3VlJbhbQ9RLvvuDk1p2YYFYFQ5y14dVm3FGGO4isQXa4F+Tg=="], + + "@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.10.2", "", { "dependencies": { "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "js-yaml": "^4.3.0", "picomatch": "^4.0.4", "retext-smartypants": "^6.2.0", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "unified": "^11.0.5" } }, "sha512-yt7fMgPYqSM4Tmr+taTW6Per+hjJ8Pk6lA1PAcDyqzOt8HzJ6Kje5WzCxA2Sd+9wsUW7uhkLeoTMK0cXPwH9rQ=="], + + "@astrojs/markdown-satteri": ["@astrojs/markdown-satteri@0.3.5", "", { "dependencies": { "@astrojs/internal-helpers": "0.10.2", "@astrojs/prism": "4.0.2", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "satteri": "^0.9.1" } }, "sha512-CvWVEFAbay7YO+i9SaqDJubipA5ckiVB89QWoMJ5XC0m5CtFg8JwZ7Kau6X9sYY7FZURH0w2l03ISH2jOS/RDQ=="], + + "@astrojs/prism": ["@astrojs/prism@4.0.2", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA=="], + + "@astrojs/telemetry": ["@astrojs/telemetry@3.3.3", "", { "dependencies": { "ci-info": "^4.4.0", "dset": "^3.1.4", "is-docker": "^4.0.0", "package-manager-detector": "^1.6.0" } }, "sha512-C1TLn5sPJr0x4vk56piHWKbnqlEB8BKyte5Y45V02U+D7BGO5eMqZDH5aPjnkXQWJggvmsTXxH03QMZ9NgWLzQ=="], + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], "@babel/compat-data": ["@babel/compat-data@7.29.7", "", {}, "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg=="], @@ -100,6 +144,30 @@ "@bramus/specificity": ["@bramus/specificity@2.4.2", "", { "dependencies": { "css-tree": "^3.0.0" }, "bin": { "specificity": "bin/cli.js" } }, "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw=="], + "@bruits/satteri-darwin-arm64": ["@bruits/satteri-darwin-arm64@0.9.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-iw4nZgx9v30lWo/MTngQqi1pI78KI0DnkSm+lVJGYdmPLgAyDNJigVhpG42/Iq55A6c1Ll8q66ljyyRiQUxwow=="], + + "@bruits/satteri-darwin-x64": ["@bruits/satteri-darwin-x64@0.9.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-6T26Z5Kf3cFW2PSlk9p7zT7yVxvuBSiJvYyz9u8KjYwMTqZyIDOj2wDyNpxKV4+6yUVG7rddq2QwvG/8LJA2+Q=="], + + "@bruits/satteri-linux-arm64-gnu": ["@bruits/satteri-linux-arm64-gnu@0.9.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-u51id17uJwNEMK9nBlICsq6U31c+XVqQueVBkwRIzZG+gMpS8TOJctt5h5Wz33Z8xnMdTd+adtACVz0yHgGuOA=="], + + "@bruits/satteri-linux-arm64-musl": ["@bruits/satteri-linux-arm64-musl@0.9.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-v39HxiwGC5Rqm01HksP6+5Y+xKLPlsuVFgIgpEAo+SiQ22c+mJVhS3u7Z6ePAKdhL5NJoK1xq70kLz3L13AhpQ=="], + + "@bruits/satteri-linux-x64-gnu": ["@bruits/satteri-linux-x64-gnu@0.9.5", "", { "os": "linux", "cpu": "x64" }, "sha512-F3uO8uFp3pAP5ZGXttwvh57GS7s0lL953tnNdyI2gRyP4kOOkp6pyGojNJzCjkDvWI2Cvb9iNrKok3aqQPauAw=="], + + "@bruits/satteri-linux-x64-musl": ["@bruits/satteri-linux-x64-musl@0.9.5", "", { "os": "linux", "cpu": "x64" }, "sha512-bicEqglLlz++mWyADaZoP0JY20s4vDfLjaPYgQqC+NI4zZLTOOg1T4GB8aqtc822Pqji8SQBmSrTb7CrP8i08Q=="], + + "@bruits/satteri-wasm32-wasi": ["@bruits/satteri-wasm32-wasi@0.9.5", "", { "dependencies": { "@emnapi/core": "1.11.1", "@emnapi/runtime": "1.11.1", "@napi-rs/wasm-runtime": "^1.1.6" }, "cpu": "none" }, "sha512-zauAuMwfPnKPUkd4AFixRFpXdgKwP2mKgxrIIo2gJzW0/ZneF9dbHnLkojSpaBnCCp7VUL1hIi5WWZvB1CqmAQ=="], + + "@bruits/satteri-win32-arm64-msvc": ["@bruits/satteri-win32-arm64-msvc@0.9.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-SrfE7NEsgZjBvU3c+RR6oQRu0ToXY5uVJEbieXEF0YTctIV2zAVlbaMjWLts074QCgh3a+XHWkR/lWh2VH2LUg=="], + + "@bruits/satteri-win32-x64-msvc": ["@bruits/satteri-win32-x64-msvc@0.9.5", "", { "os": "win32", "cpu": "x64" }, "sha512-5Kw9ZAtTGS8WHizyn+CJhjjfIQrw+7jcZodpmpXJjefnO15M8UexIi6JR2E5thyvsmHyhL6ZDDMUNR4bKJPd4g=="], + + "@capsizecss/unpack": ["@capsizecss/unpack@4.0.1", "", { "dependencies": { "fontkitten": "^1.0.3" } }, "sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ=="], + + "@clack/core": ["@clack/core@1.4.3", "", { "dependencies": { "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" } }, "sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ=="], + + "@clack/prompts": ["@clack/prompts@1.7.0", "", { "dependencies": { "@clack/core": "1.4.3", "fast-string-width": "^3.0.2", "fast-wrap-ansi": "^0.2.0", "sisteransi": "^1.0.5" } }, "sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A=="], + "@csstools/color-helpers": ["@csstools/color-helpers@6.1.0", "", {}, "sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg=="], "@csstools/css-calc": ["@csstools/css-calc@3.3.0", "", { "peerDependencies": { "@csstools/css-parser-algorithms": "^4.0.0", "@csstools/css-tokenizer": "^4.0.0" } }, "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ=="], @@ -120,6 +188,12 @@ "@dnd-kit/utilities": ["@dnd-kit/utilities@3.2.2", "", { "dependencies": { "tslib": "^2.0.0" }, "peerDependencies": { "react": ">=16.8.0" } }, "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg=="], + "@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], + + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="], "@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="], @@ -178,6 +252,60 @@ "@fontsource/space-mono": ["@fontsource/space-mono@5.3.0", "", {}, "sha512-FrpBMOVWn3PRdRHlrZWC55X3kZG/2BTH7SM5ZyS/bky3iKya2BturI5lk+t0RoDQL2JyHzURsVq/EisCsxpI5A=="], + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], + + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.2" }, "os": "darwin", "cpu": "arm64" }, "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg=="], + + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.3.2" }, "os": "darwin", "cpu": "x64" }, "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w=="], + + "@img/sharp-freebsd-wasm32": ["@img/sharp-freebsd-wasm32@0.35.3", "", { "dependencies": { "@img/sharp-wasm32": "0.35.3" }, "os": "freebsd" }, "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg=="], + + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.3.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg=="], + + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.3.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw=="], + + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.3.2", "", { "os": "linux", "cpu": "arm" }, "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ=="], + + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA=="], + + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.3.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw=="], + + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.3.2", "", { "os": "linux", "cpu": "none" }, "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w=="], + + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.3.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ=="], + + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w=="], + + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.3.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw=="], + + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.3.2", "", { "os": "linux", "cpu": "x64" }, "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ=="], + + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.3.2" }, "os": "linux", "cpu": "arm" }, "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA=="], + + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.3.2" }, "os": "linux", "cpu": "arm64" }, "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ=="], + + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.3.2" }, "os": "linux", "cpu": "ppc64" }, "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA=="], + + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.3.2" }, "os": "linux", "cpu": "none" }, "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ=="], + + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.3.2" }, "os": "linux", "cpu": "s390x" }, "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw=="], + + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.3.2" }, "os": "linux", "cpu": "x64" }, "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA=="], + + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" }, "os": "linux", "cpu": "arm64" }, "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w=="], + + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.35.3", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.3.2" }, "os": "linux", "cpu": "x64" }, "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg=="], + + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.35.3", "", { "dependencies": { "@emnapi/runtime": "^1.11.1" } }, "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w=="], + + "@img/sharp-webcontainers-wasm32": ["@img/sharp-webcontainers-wasm32@0.35.3", "", { "dependencies": { "@img/sharp-wasm32": "0.35.3" }, "cpu": "none" }, "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q=="], + + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.35.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w=="], + + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.35.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw=="], + + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.35.3", "", { "os": "win32", "cpu": "x64" }, "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], @@ -192,6 +320,40 @@ "@monaco-editor/react": ["@monaco-editor/react@4.7.0", "", { "dependencies": { "@monaco-editor/loader": "^1.5.0" }, "peerDependencies": { "monaco-editor": ">= 0.25.0 < 1", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.2.3", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" } }, "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q=="], + + "@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="], + + "@oxc-project/types": ["@oxc-project/types@0.144.0", "", {}, "sha512-nuhZIOLuI6TFQ32I/WnUx+SCPY7SdSKwgnFHydAuoS1+Z4BRcaP+RRJmGzl9lw+0OFF7UmaESf7KQRXaNLHypg=="], + + "@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.2.4", "", { "os": "android", "cpu": "arm64" }, "sha512-jHC2cnyKz5xU2fhECtFl8OZ83cYNt13GZQD+0uMJ/X3o+ijmd56okHhTUwxVSHPx1IRVIJEZ1/1pPzeLCU6XKA=="], + + "@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Dc5mPD8F5F/FS8i01syd7FTF6yB2fVthH/TRkjwJkzUK6EpoxHtqvZQP5Zwq80/5z19TWYHIg1KOHboCgVx/aQ=="], + + "@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-fpDm4oBo6SqLvWUYCmFhdde3U9KH2fRNNMeAnAPAIwxRL345xutL0EtEUcuoxsoazdJGv/MuDBQHlCDrtbvqOg=="], + + "@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.2.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-rSJoreDE/HoIzoaib6MTp5jQtCTdMHKIvItAKT/ImS6Y6Ww76oUaeMyp4Vc/fAgd/ehji068IxetHXAnqUwN9A=="], + + "@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-/jm8OGHgn7oGaJu3i/qZI9spUGcJ+y/lk43ttQ/iO1tOd9NissG6o97bighBCiL+BKRngmcDuR6ikfwYdJmVuQ=="], + + "@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-tIP06BeD9EqvECBrPZ+sqdPlYrT+aYaAiu1wYziVx5elRK/ftm33JxVDy2bXGbr6J0CrtirCkR87/X5a2euEng=="], + + "@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-Ql1Q0EQqVThvn9VAVlwNzsUvbSFtCMGjLpRRi4pk5i7NZZ4n5ISiLMjHYtus4VQ2PvkSw24zyaCVsiS+sXPj1w=="], + + "@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.2.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-GjbjXD4XXfN19D0LZNbmiCBUoDiRACsYHr0yaIbbn8aFsXjHZifcYqu/W5Er5X2X990WjHXFrxarn5chzItorQ=="], + + "@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-p5WR0NOwaRmJ/B1b6IjEFLLivwEsf3PrdBIhRbhTCQisbo2SvHHpG4ELB/+FgQNnB88LTOF86upmJmbvZdQ2lw=="], + + "@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-4/GyVjmhR+Tc6HLJvwc1sOhPqAZtySiSMesOZyX6JQ5XBxoTDEMKQzvo07NIK6nTon/SivlZqvhzvuVBNQhObQ=="], + + "@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-l9eeLsCNvPpmSXUej0etw/J1eqV0Jj1D5G/xG6YTijmE6dkv6E2QezgWbTfQk63v952DPqrjOCoiqxq7Bw0YUQ=="], + + "@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.2.4", "", { "os": "none", "cpu": "arm64" }, "sha512-e0F355MSTMm3+UOqtV3L24gFUp2N5m1f8L/7d56deik6va+AXdrt9F8LbzGpeWGWRbZEDq4m8NVnJDeBtf9DZg=="], + + "@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.2.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-AWLi0uBRYh6QlE7OKhiz+phZC0qwtij2QZmhmOdsLdFn64m7oMpooE9ICE3lhm9xMb4SpDo2WbHcxX1iFLFtqw=="], + + "@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.2.4", "", { "os": "win32", "cpu": "x64" }, "sha512-UwSDJOg3dqCAejWdxclJjCsh3Qq4vLYMDxmyHqo1btz3stK2VqgwNd3mm5tuIwzSlGIQ/1H9Hr+Zn09mrezNqQ=="], + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.62.2", "", { "os": "android", "cpu": "arm" }, "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg=="], @@ -244,6 +406,22 @@ "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.62.2", "", { "os": "win32", "cpu": "x64" }, "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA=="], + "@shikijs/core": ["@shikijs/core@4.4.3", "", { "dependencies": { "@shikijs/primitive": "4.4.3", "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5", "hast-util-to-html": "^9.0.5" } }, "sha512-QCR4q2ZO/ILJEuwiBMel4wdcTDb1JGwfjKTxPDF6x8ixOaluPrVqIn06C99AcRPhmYlBR56d/Fb+GN58GzExpg=="], + + "@shikijs/engine-javascript": ["@shikijs/engine-javascript@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.6" } }, "sha512-FbOjFJp9VLdo1Wevs10BBtVxiTWwNLqZh5Gkhjgda/ioL15YOgeSl9n+6XMa3qRlPQzfhFNe641SrynFHYG0nQ=="], + + "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-EcOQkxdxGQrc1Row/cC2c96/v1dbZqGnEVu1qTuT/MJmp6+cXCvQussowVmCv5Tqr3KuY3c7IbM6HTW3LJ1k9w=="], + + "@shikijs/langs": ["@shikijs/langs@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3" } }, "sha512-ePic0yfAJGOF83D5wBHK/00EjK65oahBYxFk5epgq33WRv7X9UuxLEV8PtR0szC0z8dl7INIpIodB99JRFlR+A=="], + + "@shikijs/primitive": ["@shikijs/primitive@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5" } }, "sha512-m0wBeLDQDeIxRdUmrCPdQqfuUamDwRL5isCfYbguKD6NiaKpVbsv+3J81DyIKgNW5h4WAIIr8T4EkgQrBBxvaQ=="], + + "@shikijs/themes": ["@shikijs/themes@4.4.3", "", { "dependencies": { "@shikijs/types": "4.4.3" } }, "sha512-w8UHjeUnIR965KMWJHUPXOc2mNJUnK3vpVLYLvw5IYU2mnTTJ89E24OrJDBNiJDQ0qzb0tc4l7mrIXx5cFeIyw=="], + + "@shikijs/types": ["@shikijs/types@4.4.3", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5" } }, "sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g=="], + + "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="], + "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="], "@tailwindcss/node": ["@tailwindcss/node@4.3.3", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.24.1", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.3" } }, "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg=="], @@ -320,6 +498,8 @@ "@testing-library/user-event": ["@testing-library/user-event@14.6.1", "", { "peerDependencies": { "@testing-library/dom": ">=7.21.4" } }, "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="], + "@types/aria-query": ["@types/aria-query@5.0.4", "", {}, "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw=="], "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], @@ -350,12 +530,24 @@ "@types/estree": ["@types/estree@1.0.9", "", {}, "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg=="], + "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="], + + "@types/hast": ["@types/hast@3.0.5", "", { "dependencies": { "@types/unist": "*" } }, "sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g=="], + + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + + "@types/nlcst": ["@types/nlcst@2.0.3", "", { "dependencies": { "@types/unist": "*" } }, "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA=="], + "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.3", "", {}, "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg=="], + "@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], "@vitest/expect": ["@vitest/expect@4.1.10", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.10", "@vitest/utils": "4.1.10", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA=="], @@ -376,36 +568,82 @@ "@xyflow/system": ["@xyflow/system@0.0.79", "", { "dependencies": { "@types/d3-drag": "^3.0.7", "@types/d3-interpolate": "^3.0.4", "@types/d3-selection": "^3.0.10", "@types/d3-transition": "^3.0.8", "@types/d3-zoom": "^3.0.8", "d3-drag": "^3.0.0", "d3-interpolate": "^3.0.1", "d3-selection": "^3.0.0", "d3-zoom": "^3.0.0" } }, "sha512-czLyOh91NF0hIzbNzwi8I6GlqG23BHh2435OddfI6uiaLH3xdrdygO93gqgH1Bv9mhy8XPFQJOBn1FTq4LvEWA=="], + "am-i-vibing": ["am-i-vibing@0.4.0", "", { "dependencies": { "process-ancestry": "^0.1.0" }, "bin": { "am-i-vibing": "dist/cli.mjs" } }, "sha512-MxT4XZL7pzLHpuvhDKdMaQHMGGkJDLluKBLsbstn+8wv9sWcFT6h+0ve9qkml95amVTZtZV83gQe2hY+ojgHLg=="], + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "ansi-styles": ["ansi-styles@5.2.0", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="], + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], "assertion-error": ["assertion-error@2.0.1", "", {}, "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA=="], + "astro": ["astro@7.2.2", "", { "dependencies": { "@astrojs/compiler-rs": "^0.3.2", "@astrojs/internal-helpers": "0.10.2", "@astrojs/markdown-satteri": "0.3.5", "@astrojs/telemetry": "3.3.3", "@capsizecss/unpack": "^4.0.0", "@clack/prompts": "^1.1.0", "@oslojs/encoding": "^1.1.0", "am-i-vibing": "^0.4.0", "aria-query": "^5.3.2", "axobject-query": "^4.1.0", "ci-info": "^4.4.0", "clsx": "^2.1.1", "common-ancestor-path": "^2.0.0", "cookie": "^2.0.1", "devalue": "^5.8.1", "diff": "^8.0.3", "dset": "^3.1.4", "es-module-lexer": "^2.0.0", "esbuild": "^0.28.0", "find-process": "^2.1.1", "flattie": "^1.1.1", "fontace": "~0.4.1", "get-tsconfig": "5.0.0-beta.4", "github-slugger": "^2.0.0", "html-escaper": "3.0.3", "http-cache-semantics": "^4.2.0", "js-yaml": "^4.3.0", "jsonc-parser": "^3.3.1", "magic-string": "^1.0.0", "magicast": "^0.5.2", "mrmime": "^2.0.1", "neotraverse": "^1.0.1", "obug": "^2.1.1", "p-limit": "^7.3.0", "p-queue": "^9.1.0", "package-manager-detector": "^1.6.0", "piccolore": "^0.1.3", "picomatch": "^4.0.4", "semver": "^7.7.4", "shiki": "^4.0.2", "smol-toml": "^1.6.0", "svgo": "^4.0.1", "tinyclip": "^0.1.12", "tinyexec": "^1.0.4", "tinyglobby": "^0.2.15", "ultrahtml": "^1.6.0", "unifont": "~0.7.4", "unstorage": "^1.17.5", "vite": "^8.0.13", "vitefu": "^1.1.2", "xxhash-wasm": "^1.1.0", "yargs-parser": "^22.0.0", "zod": "^4.3.6" }, "optionalDependencies": { "sharp": "^0.34.0 || ^0.35.0" }, "peerDependencies": { "@astrojs/markdown-remark": "7.2.2" }, "optionalPeers": ["@astrojs/markdown-remark"], "bin": { "astro": "./bin/astro.mjs" } }, "sha512-OvLWCpXpb43lVYcWzSBJ0sk44qcEYYRZCjadtalLfAwb2RaC3P/zT+blZykBw/o6suw6sQQkn00ugN36akD8Mw=="], + + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], + + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.11.3", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-sbT0Ui/CZwyAyy7icT1Gw5P1LKRlFaHwaF6tDCW5YHq2X5SeeZFphBuIagopSfwSSZq3sQcbmEL072yphxm7ew=="], "bidi-js": ["bidi-js@1.0.3", "", { "dependencies": { "require-from-string": "^2.0.2" } }, "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw=="], + "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], + "browserslist": ["browserslist@4.28.7", "", { "dependencies": { "baseline-browser-mapping": "^2.10.44", "caniuse-lite": "^1.0.30001806", "electron-to-chromium": "^1.5.393", "node-releases": "^2.0.51", "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw=="], "caniuse-lite": ["caniuse-lite@1.0.30001806", "", {}, "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw=="], + "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + "chai": ["chai@6.2.2", "", {}, "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg=="], + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], + + "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="], + + "chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], + + "ci-info": ["ci-info@4.4.0", "", {}, "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg=="], + "classcat": ["classcat@5.0.5", "", {}, "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w=="], + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], + "commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + "common-ancestor-path": ["common-ancestor-path@2.0.0", "", {}, "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng=="], + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + "cookie": ["cookie@2.0.1", "", {}, "sha512-yuToqVvRrj6pfDXREyQAAv8SkAEk/8GS3jQRTiUMm66TVtBYmqQeoEjL2Lmq8Rpo6271vH76InTChTitEAm65w=="], + + "cookie-es": ["cookie-es@1.2.3", "", {}, "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw=="], + + "crossws": ["crossws@0.3.5", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA=="], + + "css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="], + "css-tree": ["css-tree@3.2.1", "", { "dependencies": { "mdn-data": "2.27.1", "source-map-js": "^1.2.1" } }, "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA=="], + "css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], + "css.escape": ["css.escape@1.5.1", "", {}, "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg=="], + "csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], "d3-color": ["d3-color@3.1.0", "", {}, "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA=="], @@ -434,16 +672,36 @@ "decimal.js": ["decimal.js@10.6.0", "", {}, "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg=="], + "defu": ["defu@6.1.7", "", {}, "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ=="], + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], + "destr": ["destr@2.0.5", "", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="], + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + "devalue": ["devalue@5.9.0", "", {}, "sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A=="], + + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], + + "diff": ["diff@8.0.4", "", {}, "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw=="], + "discontinuous-range": ["discontinuous-range@1.0.0", "", {}, "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ=="], "dom-accessibility-api": ["dom-accessibility-api@0.6.3", "", {}, "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w=="], + "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="], + + "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], + + "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], + "dompurify": ["dompurify@3.4.8", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-yb1cEmaOum7wFvOCSQxyfgVlv5D47Rc30iZWoMpbDIWTnJ6grDDQyu2KFJzB2k7u0pMuJcQ1zphH//fFnw2tjQ=="], + "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], + + "dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], + "electron-to-chromium": ["electron-to-chromium@1.5.396", "", {}, "sha512-yHiw2Y3C3H9U6TMbOfoWK/BPreiOPXRfTWPBwQBoZG6/8TB6eOPnsy5oaRYuatR7Fw2SJ4kKforgufeo7fq0EQ=="], "enhanced-resolve": ["enhanced-resolve@5.24.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ=="], @@ -458,40 +716,98 @@ "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], + "eventemitter3": ["eventemitter3@5.0.4", "", {}, "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw=="], + "expect-type": ["expect-type@1.4.0", "", {}, "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA=="], + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + + "fast-string-truncated-width": ["fast-string-truncated-width@3.0.3", "", {}, "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g=="], + + "fast-string-width": ["fast-string-width@3.0.2", "", { "dependencies": { "fast-string-truncated-width": "^3.0.2" } }, "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg=="], + + "fast-wrap-ansi": ["fast-wrap-ansi@0.2.2", "", { "dependencies": { "fast-string-width": "^3.0.2" } }, "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q=="], + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], "fflate": ["fflate@0.8.3", "", {}, "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA=="], + "find-process": ["find-process@2.1.1", "", { "dependencies": { "chalk": "~4.1.2", "commander": "^14.0.3", "loglevel": "^1.9.2" }, "bin": { "find-process": "dist/cjs/bin/find-process.js" } }, "sha512-SrQDx3QhlmHM90iqn9rdjCQcw/T+WlpOkHFsjoRgB+zTpDfltNA1VSNYeYELwhUTJy12UFxqjWhmhOrJc+o4sA=="], + + "flattie": ["flattie@1.1.1", "", {}, "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ=="], + + "fontace": ["fontace@0.4.1", "", { "dependencies": { "fontkitten": "^1.0.2" } }, "sha512-lDMvbAzSnHmbYMTEld5qdtvNH2/pWpICOqpean9IgC7vUbUJc3k+k5Dokp85CegamqQpFbXf0rAVkbzpyTA8aw=="], + + "fontkitten": ["fontkitten@1.0.3", "", { "dependencies": { "tiny-inflate": "^1.0.3" } }, "sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw=="], + "framer-motion": ["framer-motion@12.42.2", "", { "dependencies": { "motion-dom": "^12.42.2", "motion-utils": "^12.39.0", "tslib": "^2.4.0" }, "peerDependencies": { "@emotion/is-prop-valid": "*", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@emotion/is-prop-valid", "react", "react-dom"] }, "sha512-5XY9luDiu0oHfHBjpDthFMh0ES+122w6p/papSJBweMkO8Sn+PW2QaEgRblQBpWFnuvZS5qvarpt/hO2pjGmnw=="], "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + "get-tsconfig": ["get-tsconfig@5.0.0-beta.4", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-7nF7C9fIPFEMHgEMEfgIlO9wDdZ8CyHw27rWciFZfHvHDReIiPhsYuzPRXsfvBCqFy1l8RRyyWV7QLM+ZhUJsQ=="], + + "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], "graphlib": ["graphlib@2.1.8", "", { "dependencies": { "lodash": "^4.17.15" } }, "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A=="], + "gridline-desktop": ["gridline-desktop@workspace:desktop"], + + "gridline-www": ["gridline-www@workspace:www"], + + "h3": ["h3@1.15.11", "", { "dependencies": { "cookie-es": "^1.2.3", "crossws": "^0.3.5", "defu": "^6.1.6", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.4", "radix3": "^1.1.2", "ufo": "^1.6.3", "uncrypto": "^0.1.3" } }, "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "hast-util-from-html": ["hast-util-from-html@2.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "devlop": "^1.1.0", "hast-util-from-parse5": "^8.0.0", "parse5": "^7.0.0", "vfile": "^6.0.0", "vfile-message": "^4.0.0" } }, "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw=="], + + "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="], + + "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], + + "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="], + + "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="], + + "hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="], + "html-encoding-sniffer": ["html-encoding-sniffer@6.0.0", "", { "dependencies": { "@exodus/bytes": "^1.6.0" } }, "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg=="], + "html-escaper": ["html-escaper@3.0.3", "", {}, "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ=="], + "html-to-image": ["html-to-image@1.11.13", "", {}, "sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg=="], + "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="], + + "http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="], + "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], + "iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="], + + "is-docker": ["is-docker@4.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-LHE+wROyG/Y/0ZnbktRCoTix2c1RhgWaZraMZ8o1Q7zCh0VSrICJQO5oqIIISrcSBtrXv0o233w1IYwsWCjTzA=="], + + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + "is-potential-custom-element-name": ["is-potential-custom-element-name@1.0.1", "", {}, "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="], "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + "js-yaml": ["js-yaml@4.3.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ=="], + "jsdom": ["jsdom@29.1.1", "", { "dependencies": { "@asamuzakjp/css-color": "^5.1.11", "@asamuzakjp/dom-selector": "^7.1.1", "@bramus/specificity": "^2.4.2", "@csstools/css-syntax-patches-for-csstree": "^1.1.3", "@exodus/bytes": "^1.15.0", "css-tree": "^3.2.1", "data-urls": "^7.0.0", "decimal.js": "^10.6.0", "html-encoding-sniffer": "^6.0.0", "is-potential-custom-element-name": "^1.0.1", "lru-cache": "^11.3.5", "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^6.0.1", "undici": "^7.25.0", "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^8.0.1", "whatwg-mimetype": "^5.0.0", "whatwg-url": "^16.0.1", "xml-name-validator": "^5.0.0" }, "peerDependencies": { "canvas": "^3.0.0" }, "optionalPeers": ["canvas"] }, "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q=="], "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + "jsonc-parser": ["jsonc-parser@3.3.1", "", {}, "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ=="], + "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], @@ -518,6 +834,8 @@ "lodash": ["lodash@4.18.1", "", {}, "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q=="], + "loglevel": ["loglevel@1.9.2", "", {}, "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg=="], + "lru-cache": ["lru-cache@11.5.2", "", {}, "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g=="], "lucide-react": ["lucide-react@1.26.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-raglYVR2+VkMfJL158krjVmE+rV5ST2lzA/KQm1FRSjMHT4MnWaegHxoVEpmc2So3nOEhp9oGejJwAPX8MoAjg=="], @@ -526,10 +844,24 @@ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "magicast": ["magicast@0.5.4", "", { "dependencies": { "@babel/parser": "^7.29.7", "@babel/types": "^7.29.7", "source-map-js": "^1.2.1" } }, "sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w=="], + "marked": ["marked@14.0.0", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ=="], + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="], + "mdn-data": ["mdn-data@2.27.1", "", {}, "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ=="], + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], + + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], + + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], + + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], + + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], + "min-indent": ["min-indent@1.0.1", "", {}, "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="], "monaco-editor": ["monaco-editor@0.56.0", "", { "dependencies": { "dompurify": "3.4.8", "marked": "14.0.0" } }, "sha512-sXboRm3BeBeLm938eaiyLMe0OxzfXIlZvbv4ir/jVgQy1zDhWjgmny0WoN45fuDKhCCQsYMbBJrv/A6jd8aCUg=="], @@ -542,20 +874,52 @@ "motion-utils": ["motion-utils@12.39.0", "", {}, "sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ=="], + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], "nanoid": ["nanoid@3.3.16", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q=="], "nearley": ["nearley@2.20.1", "", { "dependencies": { "commander": "^2.19.0", "moo": "^0.5.0", "railroad-diagrams": "^1.0.0", "randexp": "0.4.6" }, "bin": { "nearleyc": "bin/nearleyc.js", "nearley-test": "bin/nearley-test.js", "nearley-unparse": "bin/nearley-unparse.js", "nearley-railroad": "bin/nearley-railroad.js" } }, "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ=="], + "neotraverse": ["neotraverse@1.0.1", "", {}, "sha512-WmmLty1YWwJl9yZi77v2dVIV6X2kuYV8YYBI/G3LWGKdGHmHUvL1z7FW0iDvEvGAwNEoc5x1tOOOyDnf5jJw/w=="], + + "nlcst-to-string": ["nlcst-to-string@4.0.0", "", { "dependencies": { "@types/nlcst": "^2.0.0" } }, "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA=="], + + "node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], + + "node-mock-http": ["node-mock-http@1.0.5", "", {}, "sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw=="], + "node-releases": ["node-releases@2.0.51", "", {}, "sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ=="], + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], + "obug": ["obug@2.1.4", "", {}, "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA=="], + "ofetch": ["ofetch@1.5.1", "", { "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA=="], + + "ohash": ["ohash@2.0.12", "", {}, "sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw=="], + + "oniguruma-parser": ["oniguruma-parser@0.12.2", "", {}, "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw=="], + + "oniguruma-to-es": ["oniguruma-to-es@4.3.6", "", { "dependencies": { "oniguruma-parser": "^0.12.2", "regex": "^6.1.0", "regex-recursion": "^6.0.2" } }, "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA=="], + + "p-limit": ["p-limit@7.3.1", "", { "dependencies": { "yocto-queue": "^1.2.1" } }, "sha512-0trZaiG7Y7kN/Egy9a8j47t9osC0Tch4PaIWd9yGF6bvmlk7muExRvGNYb8sXBwEKMoNKsbNN9P8EefuQekE4Q=="], + + "p-queue": ["p-queue@9.3.3", "", { "dependencies": { "eventemitter3": "^5.0.4", "p-timeout": "^7.0.0" } }, "sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA=="], + + "p-timeout": ["p-timeout@7.0.1", "", {}, "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg=="], + + "package-manager-detector": ["package-manager-detector@1.8.0", "", {}, "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A=="], + "parse5": ["parse5@8.0.1", "", { "dependencies": { "entities": "^8.0.0" } }, "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw=="], "pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], + "piccolore": ["piccolore@0.1.3", "", {}, "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="], @@ -564,8 +928,16 @@ "pretty-format": ["pretty-format@27.5.1", "", { "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" } }, "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ=="], + "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], + + "process-ancestry": ["process-ancestry@0.1.0", "", {}, "sha512-tGqJW/UnclpYASFcM6Xh8D8l/BMtaQ9+CSG0vlJSJTcdMM4lDRv4c6H0Pdcsfted+bVczdYSfk2fdukg2gQkZg=="], + + "property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="], + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "radix3": ["radix3@1.1.2", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="], + "railroad-diagrams": ["railroad-diagrams@1.0.0", "", {}, "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A=="], "randexp": ["randexp@0.4.6", "", { "dependencies": { "discontinuous-range": "1.0.0", "ret": "~0.1.10" } }, "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ=="], @@ -578,26 +950,54 @@ "react-refresh": ["react-refresh@0.17.0", "", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="], + "readdirp": ["readdirp@5.1.1", "", {}, "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA=="], + "redent": ["redent@3.0.0", "", { "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" } }, "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg=="], + "regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="], + + "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], + + "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="], + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + "ret": ["ret@0.1.15", "", {}, "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="], + "retext-smartypants": ["retext-smartypants@6.2.0", "", { "dependencies": { "@types/nlcst": "^2.0.0", "nlcst-to-string": "^4.0.0", "unist-util-visit": "^5.0.0" } }, "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ=="], + + "rolldown": ["rolldown@1.2.4", "", { "dependencies": { "@oxc-project/types": "=0.144.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.2.4", "@rolldown/binding-darwin-arm64": "1.2.4", "@rolldown/binding-darwin-x64": "1.2.4", "@rolldown/binding-freebsd-x64": "1.2.4", "@rolldown/binding-linux-arm-gnueabihf": "1.2.4", "@rolldown/binding-linux-arm64-gnu": "1.2.4", "@rolldown/binding-linux-arm64-musl": "1.2.4", "@rolldown/binding-linux-ppc64-gnu": "1.2.4", "@rolldown/binding-linux-s390x-gnu": "1.2.4", "@rolldown/binding-linux-x64-gnu": "1.2.4", "@rolldown/binding-linux-x64-musl": "1.2.4", "@rolldown/binding-openharmony-arm64": "1.2.4", "@rolldown/binding-win32-arm64-msvc": "1.2.4", "@rolldown/binding-win32-x64-msvc": "1.2.4" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-rSr7irW0K7QRWzjdJXqZowkcRdDtjRduh43rBltnVKd0VFq839l1lJoDvGJb6gl7+4rTTCrPWu+YfujUL8Ug7w=="], + "rollup": ["rollup@4.62.2", "", { "dependencies": { "@types/estree": "1.0.9" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.62.2", "@rollup/rollup-android-arm64": "4.62.2", "@rollup/rollup-darwin-arm64": "4.62.2", "@rollup/rollup-darwin-x64": "4.62.2", "@rollup/rollup-freebsd-arm64": "4.62.2", "@rollup/rollup-freebsd-x64": "4.62.2", "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", "@rollup/rollup-linux-arm-musleabihf": "4.62.2", "@rollup/rollup-linux-arm64-gnu": "4.62.2", "@rollup/rollup-linux-arm64-musl": "4.62.2", "@rollup/rollup-linux-loong64-gnu": "4.62.2", "@rollup/rollup-linux-loong64-musl": "4.62.2", "@rollup/rollup-linux-ppc64-gnu": "4.62.2", "@rollup/rollup-linux-ppc64-musl": "4.62.2", "@rollup/rollup-linux-riscv64-gnu": "4.62.2", "@rollup/rollup-linux-riscv64-musl": "4.62.2", "@rollup/rollup-linux-s390x-gnu": "4.62.2", "@rollup/rollup-linux-x64-gnu": "4.62.2", "@rollup/rollup-linux-x64-musl": "4.62.2", "@rollup/rollup-openbsd-x64": "4.62.2", "@rollup/rollup-openharmony-arm64": "4.62.2", "@rollup/rollup-win32-arm64-msvc": "4.62.2", "@rollup/rollup-win32-ia32-msvc": "4.62.2", "@rollup/rollup-win32-x64-gnu": "4.62.2", "@rollup/rollup-win32-x64-msvc": "4.62.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA=="], + "satteri": ["satteri@0.9.5", "", { "dependencies": { "@types/estree-jsx": "^1.0.5", "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", "@types/unist": "^3.0.3" }, "optionalDependencies": { "@bruits/satteri-darwin-arm64": "0.9.5", "@bruits/satteri-darwin-x64": "0.9.5", "@bruits/satteri-linux-arm64-gnu": "0.9.5", "@bruits/satteri-linux-arm64-musl": "0.9.5", "@bruits/satteri-linux-x64-gnu": "0.9.5", "@bruits/satteri-linux-x64-musl": "0.9.5", "@bruits/satteri-wasm32-wasi": "0.9.5", "@bruits/satteri-win32-arm64-msvc": "0.9.5", "@bruits/satteri-win32-x64-msvc": "0.9.5" } }, "sha512-ZuWVl+vnM64y+/TtX8Kosv2c00W+hLQiiwnEL6H0UKVVrxFqMw4D2CJHHQaouVd89OAhtBBfjWLqhKi3TVUV4w=="], + + "sax": ["sax@1.6.1", "", {}, "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q=="], + "saxes": ["saxes@6.0.0", "", { "dependencies": { "xmlchars": "^2.2.0" } }, "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA=="], "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], - "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "semver": ["semver@7.8.5", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="], + + "sharp": ["sharp@0.35.3", "", { "dependencies": { "@img/colour": "^1.1.0", "detect-libc": "^2.1.2", "semver": "^7.8.5" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.35.3", "@img/sharp-darwin-x64": "0.35.3", "@img/sharp-freebsd-wasm32": "0.35.3", "@img/sharp-libvips-darwin-arm64": "1.3.2", "@img/sharp-libvips-darwin-x64": "1.3.2", "@img/sharp-libvips-linux-arm": "1.3.2", "@img/sharp-libvips-linux-arm64": "1.3.2", "@img/sharp-libvips-linux-ppc64": "1.3.2", "@img/sharp-libvips-linux-riscv64": "1.3.2", "@img/sharp-libvips-linux-s390x": "1.3.2", "@img/sharp-libvips-linux-x64": "1.3.2", "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", "@img/sharp-libvips-linuxmusl-x64": "1.3.2", "@img/sharp-linux-arm": "0.35.3", "@img/sharp-linux-arm64": "0.35.3", "@img/sharp-linux-ppc64": "0.35.3", "@img/sharp-linux-riscv64": "0.35.3", "@img/sharp-linux-s390x": "0.35.3", "@img/sharp-linux-x64": "0.35.3", "@img/sharp-linuxmusl-arm64": "0.35.3", "@img/sharp-linuxmusl-x64": "0.35.3", "@img/sharp-webcontainers-wasm32": "0.35.3", "@img/sharp-win32-arm64": "0.35.3", "@img/sharp-win32-ia32": "0.35.3", "@img/sharp-win32-x64": "0.35.3" }, "peerDependencies": { "@types/node": "*" }, "optionalPeers": ["@types/node"] }, "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q=="], + + "shiki": ["shiki@4.4.3", "", { "dependencies": { "@shikijs/core": "4.4.3", "@shikijs/engine-javascript": "4.4.3", "@shikijs/engine-oniguruma": "4.4.3", "@shikijs/langs": "4.4.3", "@shikijs/themes": "4.4.3", "@shikijs/types": "4.4.3", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.5" } }, "sha512-Mb/GvXPHBAXdgGIcnfU5L3ldpn1XcxrGkPHwqgRx17/I2XRfqlFKk2vGkHWINn1kdXvzJZeuO3is6I9KLPFm0g=="], "siginfo": ["siginfo@2.0.0", "", {}, "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g=="], "simple-icons": ["simple-icons@16.27.1", "", {}, "sha512-slZF8iKxkv7Lb9SF3L1AcIl5iYLNvDrKKm8yV69cG66XvxJ12SX+bYTgxRwCY4bXSmklGXoXaKEyVmEypOCeqw=="], + "sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="], + + "smol-toml": ["smol-toml@1.8.0", "", {}, "sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ=="], + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], + "sql-formatter": ["sql-formatter@15.8.2", "", { "dependencies": { "argparse": "^2.0.1", "nearley": "^2.20.1" }, "bin": { "sql-formatter": "bin/sql-formatter-cli.cjs" } }, "sha512-kTYRg5FIcvsDtYUG2Qn9pYT6xKwiLJN5TTIvc5Mur6hIg4pSfdpHu8Yyu5bqESLHnVM3mXzD446cb2+uEaKZXg=="], "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="], @@ -606,8 +1006,14 @@ "std-env": ["std-env@4.2.0", "", {}, "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw=="], + "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="], + "strip-indent": ["strip-indent@3.0.0", "", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="], + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "svgo": ["svgo@4.0.2", "", { "dependencies": { "commander": "^11.1.0", "css-select": "^5.1.0", "css-tree": "^3.0.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", "sax": "^1.5.0" }, "bin": "./bin/svgo.js" }, "sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng=="], + "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="], "tailwindcss": ["tailwindcss@4.3.3", "", {}, "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ=="], @@ -616,8 +1022,12 @@ "tauri-plugin-keyring-store-api": ["tauri-plugin-keyring-store-api@0.2.0", "", { "dependencies": { "@tauri-apps/api": "2.11.0" } }, "sha512-ZQYb6Xj75AD+YFBNDr4Zjc751TlVCQqvcB3GXx9Q85dRkss2FKrfU1Bu3kATQAzMQcvPYT3Ww+Fi+3I+OlMVZA=="], + "tiny-inflate": ["tiny-inflate@1.0.3", "", {}, "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="], + "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], + "tinyclip": ["tinyclip@0.1.15", "", {}, "sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A=="], + "tinyexec": ["tinyexec@1.2.4", "", {}, "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg=="], "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], @@ -632,22 +1042,58 @@ "tr46": ["tr46@6.0.0", "", { "dependencies": { "punycode": "^2.3.1" } }, "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw=="], + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], + + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], + + "ultrahtml": ["ultrahtml@1.7.0", "", {}, "sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g=="], + + "uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], + "undici": ["undici@7.29.0", "", {}, "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw=="], + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], + + "unifont": ["unifont@0.7.5", "", { "dependencies": { "css-tree": "^3.1.0", "ohash": "^2.0.11", "undici": "^8.0.0" } }, "sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg=="], + + "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], + + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], + + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], + + "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="], + + "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], + + "unstorage": ["unstorage@1.17.5", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^5.0.0", "destr": "^2.0.5", "h3": "^1.15.10", "lru-cache": "^11.2.7", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.1", "ufo": "^1.6.3" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6 || ^7 || ^8", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1 || ^2 || ^3", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg=="], + "update-browserslist-db": ["update-browserslist-db@1.2.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w=="], "use-sync-external-store": ["use-sync-external-store@1.6.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w=="], + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], + + "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="], + + "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], + "vite": ["vite@7.3.6", "", { "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg=="], + "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], + "vitest": ["vitest@4.1.10", "", { "dependencies": { "@vitest/expect": "4.1.10", "@vitest/mocker": "4.1.10", "@vitest/pretty-format": "4.1.10", "@vitest/runner": "4.1.10", "@vitest/snapshot": "4.1.10", "@vitest/spy": "4.1.10", "@vitest/utils": "4.1.10", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.10", "@vitest/browser-preview": "4.1.10", "@vitest/browser-webdriverio": "4.1.10", "@vitest/coverage-istanbul": "4.1.10", "@vitest/coverage-v8": "4.1.10", "@vitest/ui": "4.1.10", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "./vitest.mjs" } }, "sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw=="], "w3c-xmlserializer": ["w3c-xmlserializer@5.0.0", "", { "dependencies": { "xml-name-validator": "^5.0.0" } }, "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA=="], + "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="], + "webidl-conversions": ["webidl-conversions@8.0.1", "", {}, "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ=="], "whatwg-mimetype": ["whatwg-mimetype@5.0.0", "", {}, "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw=="], @@ -660,12 +1106,30 @@ "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="], + "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="], + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + "yargs-parser": ["yargs-parser@22.0.0", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="], + + "yocto-queue": ["yocto-queue@1.2.2", "", {}, "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ=="], + + "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="], + "zustand": ["zustand@5.0.14", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g=="], + "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="], + + "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "@bruits/satteri-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], + + "@bruits/satteri-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], + "@tailwindcss/node/jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.11.3", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.3", "tslib": "^2.4.0" }, "bundled": true }, "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg=="], @@ -686,6 +1150,60 @@ "@xyflow/react/zustand": ["zustand@4.5.7", "", { "dependencies": { "use-sync-external-store": "^1.2.2" }, "peerDependencies": { "@types/react": ">=16.8", "immer": ">=9.0.6", "react": ">=16.8" }, "optionalPeers": ["@types/react", "immer", "react"] }, "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw=="], + "anymatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "astro/magic-string": ["magic-string@1.2.0", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-ptco+HFxTLgjafSLim2LojBSwfg5feBjd+SqyiwdGkzC38UPdZy3zgrHMI2CoTf5fJL38tbHMYWVzIH8BxGqJw=="], + + "astro/vite": ["vite@8.2.1", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.5", "postcss": "^8.5.25", "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw=="], + + "chalk/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="], + + "dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "find-process/commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="], + + "hast-util-from-html/parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], + + "rolldown/@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="], + + "svgo/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="], + "tauri-plugin-keyring-store-api/@tauri-apps/api": ["@tauri-apps/api@2.11.0", "", {}, "sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA=="], + + "unifont/undici": ["undici@8.10.0", "", {}, "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ=="], + + "astro/vite/lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.33.0", "lightningcss-darwin-arm64": "1.33.0", "lightningcss-darwin-x64": "1.33.0", "lightningcss-freebsd-x64": "1.33.0", "lightningcss-linux-arm-gnueabihf": "1.33.0", "lightningcss-linux-arm64-gnu": "1.33.0", "lightningcss-linux-arm64-musl": "1.33.0", "lightningcss-linux-x64-gnu": "1.33.0", "lightningcss-linux-x64-musl": "1.33.0", "lightningcss-win32-arm64-msvc": "1.33.0", "lightningcss-win32-x64-msvc": "1.33.0" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="], + + "astro/vite/postcss": ["postcss@8.5.26", "", { "dependencies": { "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ=="], + + "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="], + + "hast-util-from-html/parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], + + "astro/vite/lightningcss/lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="], + + "astro/vite/lightningcss/lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.33.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg=="], + + "astro/vite/lightningcss/lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.33.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ=="], + + "astro/vite/lightningcss/lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.33.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg=="], + + "astro/vite/lightningcss/lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.33.0", "", { "os": "linux", "cpu": "arm" }, "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ=="], + + "astro/vite/lightningcss/lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg=="], + + "astro/vite/lightningcss/lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ=="], + + "astro/vite/lightningcss/lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg=="], + + "astro/vite/lightningcss/lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw=="], + + "astro/vite/lightningcss/lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.33.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA=="], + + "astro/vite/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="], + + "astro/vite/postcss/nanoid": ["nanoid@3.3.18", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w=="], } } diff --git a/bunfig.toml b/desktop/bunfig.toml similarity index 100% rename from bunfig.toml rename to desktop/bunfig.toml diff --git a/index.html b/desktop/index.html similarity index 100% rename from index.html rename to desktop/index.html diff --git a/desktop/package.json b/desktop/package.json new file mode 100644 index 0000000..6d82fda --- /dev/null +++ b/desktop/package.json @@ -0,0 +1,58 @@ +{ + "name": "gridline-desktop", + "private": true, + "version": "0.7.10", + "description": "An open-source, high-performance database GUI client for PostgreSQL and beyond", + "type": "module", + "scripts": { + "test": "vitest run", + "test:watch": "vitest", + "dev": "vite", + "tauri:dev": "tauri dev", + "build": "tsc && vite build", + "preview": "vite preview", + "tauri": "tauri" + }, + "dependencies": { + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/sortable": "^10.0.0", + "@dnd-kit/utilities": "^3.2.2", + "@fontsource/outfit": "^5.3.0", + "@fontsource/space-mono": "^5.3.0", + "@monaco-editor/react": "^4.7.0", + "@tailwindcss/vite": "^4.3.3", + "tailwindcss": "^4.3.3", + "@tanstack/react-virtual": "^3.14.8", + "@tauri-apps/api": "^2", + "@tauri-apps/plugin-dialog": "^2.7.2", + "@tauri-apps/plugin-fs": "^2.5.1", + "@tauri-apps/plugin-opener": "^2", + "@xyflow/react": "^12.11.2", + "dagre": "^0.8.5", + "fflate": "^0.8.3", + "html-to-image": "^1.11.13", + "lucide-react": "^1.26.0", + "monaco-editor": "^0.56.0", + "motion": "^12.42.2", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "simple-icons": "^16.27.1", + "sql-formatter": "^15.8.2", + "tauri-plugin-keyring-store-api": "^0.2.0", + "zustand": "^5.0.14" + }, + "devDependencies": { + "@tauri-apps/cli": "^2", + "@testing-library/jest-dom": "^7.0.0", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.6.1", + "@types/dagre": "^0.7.54", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "jsdom": "^29.1.1", + "typescript": "~5.8.3", + "vite": "^7.0.4", + "vitest": "^4.1.10" + } +} diff --git a/src-tauri/.gitignore b/desktop/src-tauri/.gitignore similarity index 100% rename from src-tauri/.gitignore rename to desktop/src-tauri/.gitignore diff --git a/src-tauri/Cargo.lock b/desktop/src-tauri/Cargo.lock similarity index 100% rename from src-tauri/Cargo.lock rename to desktop/src-tauri/Cargo.lock diff --git a/src-tauri/Cargo.toml b/desktop/src-tauri/Cargo.toml similarity index 100% rename from src-tauri/Cargo.toml rename to desktop/src-tauri/Cargo.toml diff --git a/src-tauri/build.rs b/desktop/src-tauri/build.rs similarity index 100% rename from src-tauri/build.rs rename to desktop/src-tauri/build.rs diff --git a/src-tauri/capabilities/default.json b/desktop/src-tauri/capabilities/default.json similarity index 100% rename from src-tauri/capabilities/default.json rename to desktop/src-tauri/capabilities/default.json diff --git a/src-tauri/icons.backup/128x128.png b/desktop/src-tauri/icons.backup/128x128.png similarity index 100% rename from src-tauri/icons.backup/128x128.png rename to desktop/src-tauri/icons.backup/128x128.png diff --git a/src-tauri/icons.backup/128x128@2x.png b/desktop/src-tauri/icons.backup/128x128@2x.png similarity index 100% rename from src-tauri/icons.backup/128x128@2x.png rename to desktop/src-tauri/icons.backup/128x128@2x.png diff --git a/src-tauri/icons.backup/32x32.png b/desktop/src-tauri/icons.backup/32x32.png similarity index 100% rename from src-tauri/icons.backup/32x32.png rename to desktop/src-tauri/icons.backup/32x32.png diff --git a/src-tauri/icons.backup/64x64.png b/desktop/src-tauri/icons.backup/64x64.png similarity index 100% rename from src-tauri/icons.backup/64x64.png rename to desktop/src-tauri/icons.backup/64x64.png diff --git a/src-tauri/icons.backup/Square107x107Logo.png b/desktop/src-tauri/icons.backup/Square107x107Logo.png similarity index 100% rename from src-tauri/icons.backup/Square107x107Logo.png rename to desktop/src-tauri/icons.backup/Square107x107Logo.png diff --git a/src-tauri/icons.backup/Square142x142Logo.png b/desktop/src-tauri/icons.backup/Square142x142Logo.png similarity index 100% rename from src-tauri/icons.backup/Square142x142Logo.png rename to desktop/src-tauri/icons.backup/Square142x142Logo.png diff --git a/src-tauri/icons.backup/Square150x150Logo.png b/desktop/src-tauri/icons.backup/Square150x150Logo.png similarity index 100% rename from src-tauri/icons.backup/Square150x150Logo.png rename to desktop/src-tauri/icons.backup/Square150x150Logo.png diff --git a/src-tauri/icons.backup/Square284x284Logo.png b/desktop/src-tauri/icons.backup/Square284x284Logo.png similarity index 100% rename from src-tauri/icons.backup/Square284x284Logo.png rename to desktop/src-tauri/icons.backup/Square284x284Logo.png diff --git a/src-tauri/icons.backup/Square30x30Logo.png b/desktop/src-tauri/icons.backup/Square30x30Logo.png similarity index 100% rename from src-tauri/icons.backup/Square30x30Logo.png rename to desktop/src-tauri/icons.backup/Square30x30Logo.png diff --git a/src-tauri/icons.backup/Square310x310Logo.png b/desktop/src-tauri/icons.backup/Square310x310Logo.png similarity index 100% rename from src-tauri/icons.backup/Square310x310Logo.png rename to desktop/src-tauri/icons.backup/Square310x310Logo.png diff --git a/src-tauri/icons.backup/Square44x44Logo.png b/desktop/src-tauri/icons.backup/Square44x44Logo.png similarity index 100% rename from src-tauri/icons.backup/Square44x44Logo.png rename to desktop/src-tauri/icons.backup/Square44x44Logo.png diff --git a/src-tauri/icons.backup/Square71x71Logo.png b/desktop/src-tauri/icons.backup/Square71x71Logo.png similarity index 100% rename from src-tauri/icons.backup/Square71x71Logo.png rename to desktop/src-tauri/icons.backup/Square71x71Logo.png diff --git a/src-tauri/icons.backup/Square89x89Logo.png b/desktop/src-tauri/icons.backup/Square89x89Logo.png similarity index 100% rename from src-tauri/icons.backup/Square89x89Logo.png rename to desktop/src-tauri/icons.backup/Square89x89Logo.png diff --git a/src-tauri/icons.backup/StoreLogo.png b/desktop/src-tauri/icons.backup/StoreLogo.png similarity index 100% rename from src-tauri/icons.backup/StoreLogo.png rename to desktop/src-tauri/icons.backup/StoreLogo.png diff --git a/src-tauri/icons.backup/icon.icns b/desktop/src-tauri/icons.backup/icon.icns similarity index 100% rename from src-tauri/icons.backup/icon.icns rename to desktop/src-tauri/icons.backup/icon.icns diff --git a/src-tauri/icons.backup/icon.ico b/desktop/src-tauri/icons.backup/icon.ico similarity index 100% rename from src-tauri/icons.backup/icon.ico rename to desktop/src-tauri/icons.backup/icon.ico diff --git a/src-tauri/icons.backup/icon.png b/desktop/src-tauri/icons.backup/icon.png similarity index 100% rename from src-tauri/icons.backup/icon.png rename to desktop/src-tauri/icons.backup/icon.png diff --git a/src-tauri/icons.backup/icon.svg b/desktop/src-tauri/icons.backup/icon.svg similarity index 100% rename from src-tauri/icons.backup/icon.svg rename to desktop/src-tauri/icons.backup/icon.svg diff --git a/src-tauri/icons/128x128.png b/desktop/src-tauri/icons/128x128.png similarity index 100% rename from src-tauri/icons/128x128.png rename to desktop/src-tauri/icons/128x128.png diff --git a/src-tauri/icons/128x128@2x.png b/desktop/src-tauri/icons/128x128@2x.png similarity index 100% rename from src-tauri/icons/128x128@2x.png rename to desktop/src-tauri/icons/128x128@2x.png diff --git a/src-tauri/icons/32x32.png b/desktop/src-tauri/icons/32x32.png similarity index 100% rename from src-tauri/icons/32x32.png rename to desktop/src-tauri/icons/32x32.png diff --git a/src-tauri/icons/64x64.png b/desktop/src-tauri/icons/64x64.png similarity index 100% rename from src-tauri/icons/64x64.png rename to desktop/src-tauri/icons/64x64.png diff --git a/src-tauri/icons/Square107x107Logo.png b/desktop/src-tauri/icons/Square107x107Logo.png similarity index 100% rename from src-tauri/icons/Square107x107Logo.png rename to desktop/src-tauri/icons/Square107x107Logo.png diff --git a/src-tauri/icons/Square142x142Logo.png b/desktop/src-tauri/icons/Square142x142Logo.png similarity index 100% rename from src-tauri/icons/Square142x142Logo.png rename to desktop/src-tauri/icons/Square142x142Logo.png diff --git a/src-tauri/icons/Square150x150Logo.png b/desktop/src-tauri/icons/Square150x150Logo.png similarity index 100% rename from src-tauri/icons/Square150x150Logo.png rename to desktop/src-tauri/icons/Square150x150Logo.png diff --git a/src-tauri/icons/Square284x284Logo.png b/desktop/src-tauri/icons/Square284x284Logo.png similarity index 100% rename from src-tauri/icons/Square284x284Logo.png rename to desktop/src-tauri/icons/Square284x284Logo.png diff --git a/src-tauri/icons/Square30x30Logo.png b/desktop/src-tauri/icons/Square30x30Logo.png similarity index 100% rename from src-tauri/icons/Square30x30Logo.png rename to desktop/src-tauri/icons/Square30x30Logo.png diff --git a/src-tauri/icons/Square310x310Logo.png b/desktop/src-tauri/icons/Square310x310Logo.png similarity index 100% rename from src-tauri/icons/Square310x310Logo.png rename to desktop/src-tauri/icons/Square310x310Logo.png diff --git a/src-tauri/icons/Square44x44Logo.png b/desktop/src-tauri/icons/Square44x44Logo.png similarity index 100% rename from src-tauri/icons/Square44x44Logo.png rename to desktop/src-tauri/icons/Square44x44Logo.png diff --git a/src-tauri/icons/Square71x71Logo.png b/desktop/src-tauri/icons/Square71x71Logo.png similarity index 100% rename from src-tauri/icons/Square71x71Logo.png rename to desktop/src-tauri/icons/Square71x71Logo.png diff --git a/src-tauri/icons/Square89x89Logo.png b/desktop/src-tauri/icons/Square89x89Logo.png similarity index 100% rename from src-tauri/icons/Square89x89Logo.png rename to desktop/src-tauri/icons/Square89x89Logo.png diff --git a/src-tauri/icons/StoreLogo.png b/desktop/src-tauri/icons/StoreLogo.png similarity index 100% rename from src-tauri/icons/StoreLogo.png rename to desktop/src-tauri/icons/StoreLogo.png diff --git a/src-tauri/icons/icon.icns b/desktop/src-tauri/icons/icon.icns similarity index 100% rename from src-tauri/icons/icon.icns rename to desktop/src-tauri/icons/icon.icns diff --git a/src-tauri/icons/icon.ico b/desktop/src-tauri/icons/icon.ico similarity index 100% rename from src-tauri/icons/icon.ico rename to desktop/src-tauri/icons/icon.ico diff --git a/src-tauri/icons/icon.png b/desktop/src-tauri/icons/icon.png similarity index 100% rename from src-tauri/icons/icon.png rename to desktop/src-tauri/icons/icon.png diff --git a/src-tauri/icons/icon.svg b/desktop/src-tauri/icons/icon.svg similarity index 100% rename from src-tauri/icons/icon.svg rename to desktop/src-tauri/icons/icon.svg diff --git a/src-tauri/resources/mysql_tools/README.md b/desktop/src-tauri/resources/mysql_tools/README.md similarity index 100% rename from src-tauri/resources/mysql_tools/README.md rename to desktop/src-tauri/resources/mysql_tools/README.md diff --git a/src-tauri/resources/pg_tools/.gitkeep b/desktop/src-tauri/resources/pg_tools/.gitkeep similarity index 100% rename from src-tauri/resources/pg_tools/.gitkeep rename to desktop/src-tauri/resources/pg_tools/.gitkeep diff --git a/src-tauri/resources/pg_tools/README.md b/desktop/src-tauri/resources/pg_tools/README.md similarity index 100% rename from src-tauri/resources/pg_tools/README.md rename to desktop/src-tauri/resources/pg_tools/README.md diff --git a/src-tauri/src/cancel.rs b/desktop/src-tauri/src/cancel.rs similarity index 100% rename from src-tauri/src/cancel.rs rename to desktop/src-tauri/src/cancel.rs diff --git a/src-tauri/src/commands/backup.rs b/desktop/src-tauri/src/commands/backup.rs similarity index 100% rename from src-tauri/src/commands/backup.rs rename to desktop/src-tauri/src/commands/backup.rs diff --git a/src-tauri/src/commands/backup.test.rs b/desktop/src-tauri/src/commands/backup.test.rs similarity index 100% rename from src-tauri/src/commands/backup.test.rs rename to desktop/src-tauri/src/commands/backup.test.rs diff --git a/src-tauri/src/commands/connections.rs b/desktop/src-tauri/src/commands/connections.rs similarity index 100% rename from src-tauri/src/commands/connections.rs rename to desktop/src-tauri/src/commands/connections.rs diff --git a/src-tauri/src/commands/db_viewer.rs b/desktop/src-tauri/src/commands/db_viewer.rs similarity index 100% rename from src-tauri/src/commands/db_viewer.rs rename to desktop/src-tauri/src/commands/db_viewer.rs diff --git a/src-tauri/src/commands/demo.rs b/desktop/src-tauri/src/commands/demo.rs similarity index 100% rename from src-tauri/src/commands/demo.rs rename to desktop/src-tauri/src/commands/demo.rs diff --git a/src-tauri/src/commands/demo.test.rs b/desktop/src-tauri/src/commands/demo.test.rs similarity index 100% rename from src-tauri/src/commands/demo.test.rs rename to desktop/src-tauri/src/commands/demo.test.rs diff --git a/src-tauri/src/commands/demo_schema.sql b/desktop/src-tauri/src/commands/demo_schema.sql similarity index 100% rename from src-tauri/src/commands/demo_schema.sql rename to desktop/src-tauri/src/commands/demo_schema.sql diff --git a/src-tauri/src/commands/folders.rs b/desktop/src-tauri/src/commands/folders.rs similarity index 100% rename from src-tauri/src/commands/folders.rs rename to desktop/src-tauri/src/commands/folders.rs diff --git a/src-tauri/src/commands/import_export.rs b/desktop/src-tauri/src/commands/import_export.rs similarity index 100% rename from src-tauri/src/commands/import_export.rs rename to desktop/src-tauri/src/commands/import_export.rs diff --git a/src-tauri/src/commands/keychain.rs b/desktop/src-tauri/src/commands/keychain.rs similarity index 100% rename from src-tauri/src/commands/keychain.rs rename to desktop/src-tauri/src/commands/keychain.rs diff --git a/src-tauri/src/commands/maintenance.rs b/desktop/src-tauri/src/commands/maintenance.rs similarity index 100% rename from src-tauri/src/commands/maintenance.rs rename to desktop/src-tauri/src/commands/maintenance.rs diff --git a/src-tauri/src/commands/maintenance.test.rs b/desktop/src-tauri/src/commands/maintenance.test.rs similarity index 100% rename from src-tauri/src/commands/maintenance.test.rs rename to desktop/src-tauri/src/commands/maintenance.test.rs diff --git a/src-tauri/src/commands/mod.rs b/desktop/src-tauri/src/commands/mod.rs similarity index 100% rename from src-tauri/src/commands/mod.rs rename to desktop/src-tauri/src/commands/mod.rs diff --git a/src-tauri/src/commands/objects.rs b/desktop/src-tauri/src/commands/objects.rs similarity index 100% rename from src-tauri/src/commands/objects.rs rename to desktop/src-tauri/src/commands/objects.rs diff --git a/src-tauri/src/commands/objects.test.rs b/desktop/src-tauri/src/commands/objects.test.rs similarity index 100% rename from src-tauri/src/commands/objects.test.rs rename to desktop/src-tauri/src/commands/objects.test.rs diff --git a/src-tauri/src/commands/query.rs b/desktop/src-tauri/src/commands/query.rs similarity index 100% rename from src-tauri/src/commands/query.rs rename to desktop/src-tauri/src/commands/query.rs diff --git a/src-tauri/src/commands/schema_graph.rs b/desktop/src-tauri/src/commands/schema_graph.rs similarity index 100% rename from src-tauri/src/commands/schema_graph.rs rename to desktop/src-tauri/src/commands/schema_graph.rs diff --git a/src-tauri/src/commands/settings.rs b/desktop/src-tauri/src/commands/settings.rs similarity index 100% rename from src-tauri/src/commands/settings.rs rename to desktop/src-tauri/src/commands/settings.rs diff --git a/src-tauri/src/commands/ssh.rs b/desktop/src-tauri/src/commands/ssh.rs similarity index 100% rename from src-tauri/src/commands/ssh.rs rename to desktop/src-tauri/src/commands/ssh.rs diff --git a/src-tauri/src/commands/tags.rs b/desktop/src-tauri/src/commands/tags.rs similarity index 100% rename from src-tauri/src/commands/tags.rs rename to desktop/src-tauri/src/commands/tags.rs diff --git a/src-tauri/src/commands/test_connection.rs b/desktop/src-tauri/src/commands/test_connection.rs similarity index 100% rename from src-tauri/src/commands/test_connection.rs rename to desktop/src-tauri/src/commands/test_connection.rs diff --git a/src-tauri/src/db/introspection.rs b/desktop/src-tauri/src/db/introspection.rs similarity index 100% rename from src-tauri/src/db/introspection.rs rename to desktop/src-tauri/src/db/introspection.rs diff --git a/src-tauri/src/db/mod.rs b/desktop/src-tauri/src/db/mod.rs similarity index 100% rename from src-tauri/src/db/mod.rs rename to desktop/src-tauri/src/db/mod.rs diff --git a/src-tauri/src/db/mysql.rs b/desktop/src-tauri/src/db/mysql.rs similarity index 100% rename from src-tauri/src/db/mysql.rs rename to desktop/src-tauri/src/db/mysql.rs diff --git a/src-tauri/src/db/object_crud.rs b/desktop/src-tauri/src/db/object_crud.rs similarity index 100% rename from src-tauri/src/db/object_crud.rs rename to desktop/src-tauri/src/db/object_crud.rs diff --git a/src-tauri/src/db/object_ddl.rs b/desktop/src-tauri/src/db/object_ddl.rs similarity index 100% rename from src-tauri/src/db/object_ddl.rs rename to desktop/src-tauri/src/db/object_ddl.rs diff --git a/src-tauri/src/db/pool.rs b/desktop/src-tauri/src/db/pool.rs similarity index 100% rename from src-tauri/src/db/pool.rs rename to desktop/src-tauri/src/db/pool.rs diff --git a/src-tauri/src/db/tls.rs b/desktop/src-tauri/src/db/tls.rs similarity index 100% rename from src-tauri/src/db/tls.rs rename to desktop/src-tauri/src/db/tls.rs diff --git a/src-tauri/src/lib.rs b/desktop/src-tauri/src/lib.rs similarity index 100% rename from src-tauri/src/lib.rs rename to desktop/src-tauri/src/lib.rs diff --git a/src-tauri/src/main.rs b/desktop/src-tauri/src/main.rs similarity index 100% rename from src-tauri/src/main.rs rename to desktop/src-tauri/src/main.rs diff --git a/src-tauri/src/models/backup.rs b/desktop/src-tauri/src/models/backup.rs similarity index 100% rename from src-tauri/src/models/backup.rs rename to desktop/src-tauri/src/models/backup.rs diff --git a/src-tauri/src/models/connection.rs b/desktop/src-tauri/src/models/connection.rs similarity index 100% rename from src-tauri/src/models/connection.rs rename to desktop/src-tauri/src/models/connection.rs diff --git a/src-tauri/src/models/db_viewer.rs b/desktop/src-tauri/src/models/db_viewer.rs similarity index 100% rename from src-tauri/src/models/db_viewer.rs rename to desktop/src-tauri/src/models/db_viewer.rs diff --git a/src-tauri/src/models/folder.rs b/desktop/src-tauri/src/models/folder.rs similarity index 100% rename from src-tauri/src/models/folder.rs rename to desktop/src-tauri/src/models/folder.rs diff --git a/src-tauri/src/models/mod.rs b/desktop/src-tauri/src/models/mod.rs similarity index 100% rename from src-tauri/src/models/mod.rs rename to desktop/src-tauri/src/models/mod.rs diff --git a/src-tauri/src/models/recent.rs b/desktop/src-tauri/src/models/recent.rs similarity index 100% rename from src-tauri/src/models/recent.rs rename to desktop/src-tauri/src/models/recent.rs diff --git a/src-tauri/src/models/settings.rs b/desktop/src-tauri/src/models/settings.rs similarity index 100% rename from src-tauri/src/models/settings.rs rename to desktop/src-tauri/src/models/settings.rs diff --git a/src-tauri/src/models/ssh.rs b/desktop/src-tauri/src/models/ssh.rs similarity index 100% rename from src-tauri/src/models/ssh.rs rename to desktop/src-tauri/src/models/ssh.rs diff --git a/src-tauri/src/models/tag.rs b/desktop/src-tauri/src/models/tag.rs similarity index 100% rename from src-tauri/src/models/tag.rs rename to desktop/src-tauri/src/models/tag.rs diff --git a/src-tauri/src/store/migrations.rs b/desktop/src-tauri/src/store/migrations.rs similarity index 100% rename from src-tauri/src/store/migrations.rs rename to desktop/src-tauri/src/store/migrations.rs diff --git a/src-tauri/src/store/mod.rs b/desktop/src-tauri/src/store/mod.rs similarity index 100% rename from src-tauri/src/store/mod.rs rename to desktop/src-tauri/src/store/mod.rs diff --git a/src-tauri/tauri.conf.json b/desktop/src-tauri/tauri.conf.json similarity index 100% rename from src-tauri/tauri.conf.json rename to desktop/src-tauri/tauri.conf.json diff --git a/src/App.test.tsx b/desktop/src/App.test.tsx similarity index 100% rename from src/App.test.tsx rename to desktop/src/App.test.tsx diff --git a/src/App.tsx b/desktop/src/App.tsx similarity index 100% rename from src/App.tsx rename to desktop/src/App.tsx diff --git a/src/components/connections/ConnectionCard.test.tsx b/desktop/src/components/connections/ConnectionCard.test.tsx similarity index 100% rename from src/components/connections/ConnectionCard.test.tsx rename to desktop/src/components/connections/ConnectionCard.test.tsx diff --git a/src/components/connections/ConnectionCard.tsx b/desktop/src/components/connections/ConnectionCard.tsx similarity index 100% rename from src/components/connections/ConnectionCard.tsx rename to desktop/src/components/connections/ConnectionCard.tsx diff --git a/src/components/connections/ConnectionCardMenu.test.tsx b/desktop/src/components/connections/ConnectionCardMenu.test.tsx similarity index 100% rename from src/components/connections/ConnectionCardMenu.test.tsx rename to desktop/src/components/connections/ConnectionCardMenu.test.tsx diff --git a/src/components/connections/ConnectionCardMenu.tsx b/desktop/src/components/connections/ConnectionCardMenu.tsx similarity index 100% rename from src/components/connections/ConnectionCardMenu.tsx rename to desktop/src/components/connections/ConnectionCardMenu.tsx diff --git a/src/components/connections/ConnectionFormShell.tsx b/desktop/src/components/connections/ConnectionFormShell.tsx similarity index 100% rename from src/components/connections/ConnectionFormShell.tsx rename to desktop/src/components/connections/ConnectionFormShell.tsx diff --git a/src/components/connections/ConnectionGrid.test.tsx b/desktop/src/components/connections/ConnectionGrid.test.tsx similarity index 100% rename from src/components/connections/ConnectionGrid.test.tsx rename to desktop/src/components/connections/ConnectionGrid.test.tsx diff --git a/src/components/connections/ConnectionGrid.tsx b/desktop/src/components/connections/ConnectionGrid.tsx similarity index 100% rename from src/components/connections/ConnectionGrid.tsx rename to desktop/src/components/connections/ConnectionGrid.tsx diff --git a/src/components/connections/ConnectionMetadataRow.test.tsx b/desktop/src/components/connections/ConnectionMetadataRow.test.tsx similarity index 100% rename from src/components/connections/ConnectionMetadataRow.test.tsx rename to desktop/src/components/connections/ConnectionMetadataRow.test.tsx diff --git a/src/components/connections/ConnectionMetadataRow.tsx b/desktop/src/components/connections/ConnectionMetadataRow.tsx similarity index 100% rename from src/components/connections/ConnectionMetadataRow.tsx rename to desktop/src/components/connections/ConnectionMetadataRow.tsx diff --git a/src/components/connections/ConnectionStringInput.tsx b/desktop/src/components/connections/ConnectionStringInput.tsx similarity index 100% rename from src/components/connections/ConnectionStringInput.tsx rename to desktop/src/components/connections/ConnectionStringInput.tsx diff --git a/src/components/connections/DetailedConnectionForm.test.tsx b/desktop/src/components/connections/DetailedConnectionForm.test.tsx similarity index 100% rename from src/components/connections/DetailedConnectionForm.test.tsx rename to desktop/src/components/connections/DetailedConnectionForm.test.tsx diff --git a/src/components/connections/DetailedConnectionForm.tsx b/desktop/src/components/connections/DetailedConnectionForm.tsx similarity index 100% rename from src/components/connections/DetailedConnectionForm.tsx rename to desktop/src/components/connections/DetailedConnectionForm.tsx diff --git a/src/components/connections/EnvironmentSelect.tsx b/desktop/src/components/connections/EnvironmentSelect.tsx similarity index 100% rename from src/components/connections/EnvironmentSelect.tsx rename to desktop/src/components/connections/EnvironmentSelect.tsx diff --git a/src/components/connections/FolderSelect.tsx b/desktop/src/components/connections/FolderSelect.tsx similarity index 100% rename from src/components/connections/FolderSelect.tsx rename to desktop/src/components/connections/FolderSelect.tsx diff --git a/src/components/connections/GeneralTab.test.tsx b/desktop/src/components/connections/GeneralTab.test.tsx similarity index 100% rename from src/components/connections/GeneralTab.test.tsx rename to desktop/src/components/connections/GeneralTab.test.tsx diff --git a/src/components/connections/GeneralTab.tsx b/desktop/src/components/connections/GeneralTab.tsx similarity index 100% rename from src/components/connections/GeneralTab.tsx rename to desktop/src/components/connections/GeneralTab.tsx diff --git a/src/components/connections/MoveToFolderDialog.test.tsx b/desktop/src/components/connections/MoveToFolderDialog.test.tsx similarity index 100% rename from src/components/connections/MoveToFolderDialog.test.tsx rename to desktop/src/components/connections/MoveToFolderDialog.test.tsx diff --git a/src/components/connections/MoveToFolderDialog.tsx b/desktop/src/components/connections/MoveToFolderDialog.tsx similarity index 100% rename from src/components/connections/MoveToFolderDialog.tsx rename to desktop/src/components/connections/MoveToFolderDialog.tsx diff --git a/src/components/connections/NewConnectionScreen.test.tsx b/desktop/src/components/connections/NewConnectionScreen.test.tsx similarity index 100% rename from src/components/connections/NewConnectionScreen.test.tsx rename to desktop/src/components/connections/NewConnectionScreen.test.tsx diff --git a/src/components/connections/NewConnectionScreen.tsx b/desktop/src/components/connections/NewConnectionScreen.tsx similarity index 100% rename from src/components/connections/NewConnectionScreen.tsx rename to desktop/src/components/connections/NewConnectionScreen.tsx diff --git a/src/components/connections/PasswordInput.tsx b/desktop/src/components/connections/PasswordInput.tsx similarity index 100% rename from src/components/connections/PasswordInput.tsx rename to desktop/src/components/connections/PasswordInput.tsx diff --git a/src/components/connections/ProviderSetupGuide.test.tsx b/desktop/src/components/connections/ProviderSetupGuide.test.tsx similarity index 100% rename from src/components/connections/ProviderSetupGuide.test.tsx rename to desktop/src/components/connections/ProviderSetupGuide.test.tsx diff --git a/src/components/connections/ProviderSetupGuide.tsx b/desktop/src/components/connections/ProviderSetupGuide.tsx similarity index 100% rename from src/components/connections/ProviderSetupGuide.tsx rename to desktop/src/components/connections/ProviderSetupGuide.tsx diff --git a/src/components/connections/ProviderTabsGrid.test.tsx b/desktop/src/components/connections/ProviderTabsGrid.test.tsx similarity index 100% rename from src/components/connections/ProviderTabsGrid.test.tsx rename to desktop/src/components/connections/ProviderTabsGrid.test.tsx diff --git a/src/components/connections/ProviderTabsGrid.tsx b/desktop/src/components/connections/ProviderTabsGrid.tsx similarity index 100% rename from src/components/connections/ProviderTabsGrid.tsx rename to desktop/src/components/connections/ProviderTabsGrid.tsx diff --git a/src/components/connections/RecentConnectionsStrip.test.tsx b/desktop/src/components/connections/RecentConnectionsStrip.test.tsx similarity index 100% rename from src/components/connections/RecentConnectionsStrip.test.tsx rename to desktop/src/components/connections/RecentConnectionsStrip.test.tsx diff --git a/src/components/connections/RecentConnectionsStrip.tsx b/desktop/src/components/connections/RecentConnectionsStrip.tsx similarity index 100% rename from src/components/connections/RecentConnectionsStrip.tsx rename to desktop/src/components/connections/RecentConnectionsStrip.tsx diff --git a/src/components/connections/SqlitePathInput.test.tsx b/desktop/src/components/connections/SqlitePathInput.test.tsx similarity index 100% rename from src/components/connections/SqlitePathInput.test.tsx rename to desktop/src/components/connections/SqlitePathInput.test.tsx diff --git a/src/components/connections/SqlitePathInput.tsx b/desktop/src/components/connections/SqlitePathInput.tsx similarity index 100% rename from src/components/connections/SqlitePathInput.tsx rename to desktop/src/components/connections/SqlitePathInput.tsx diff --git a/src/components/connections/SshFields.test.tsx b/desktop/src/components/connections/SshFields.test.tsx similarity index 100% rename from src/components/connections/SshFields.test.tsx rename to desktop/src/components/connections/SshFields.test.tsx diff --git a/src/components/connections/SshFields.tsx b/desktop/src/components/connections/SshFields.tsx similarity index 100% rename from src/components/connections/SshFields.tsx rename to desktop/src/components/connections/SshFields.tsx diff --git a/src/components/connections/SshSslTab.test.tsx b/desktop/src/components/connections/SshSslTab.test.tsx similarity index 100% rename from src/components/connections/SshSslTab.test.tsx rename to desktop/src/components/connections/SshSslTab.test.tsx diff --git a/src/components/connections/SshSslTab.tsx b/desktop/src/components/connections/SshSslTab.tsx similarity index 100% rename from src/components/connections/SshSslTab.tsx rename to desktop/src/components/connections/SshSslTab.tsx diff --git a/src/components/connections/SslFields.test.tsx b/desktop/src/components/connections/SslFields.test.tsx similarity index 100% rename from src/components/connections/SslFields.test.tsx rename to desktop/src/components/connections/SslFields.test.tsx diff --git a/src/components/connections/SslFields.tsx b/desktop/src/components/connections/SslFields.tsx similarity index 100% rename from src/components/connections/SslFields.tsx rename to desktop/src/components/connections/SslFields.tsx diff --git a/src/components/connections/TagsEnvTab.tsx b/desktop/src/components/connections/TagsEnvTab.tsx similarity index 100% rename from src/components/connections/TagsEnvTab.tsx rename to desktop/src/components/connections/TagsEnvTab.tsx diff --git a/src/components/connections/connectionFormData.ts b/desktop/src/components/connections/connectionFormData.ts similarity index 100% rename from src/components/connections/connectionFormData.ts rename to desktop/src/components/connections/connectionFormData.ts diff --git a/src/components/connections/useConnectionStatus.test.ts b/desktop/src/components/connections/useConnectionStatus.test.ts similarity index 100% rename from src/components/connections/useConnectionStatus.test.ts rename to desktop/src/components/connections/useConnectionStatus.test.ts diff --git a/src/components/connections/useConnectionStatus.ts b/desktop/src/components/connections/useConnectionStatus.ts similarity index 100% rename from src/components/connections/useConnectionStatus.ts rename to desktop/src/components/connections/useConnectionStatus.ts diff --git a/src/components/db-viewer/BackupDialog.tsx b/desktop/src/components/db-viewer/BackupDialog.tsx similarity index 100% rename from src/components/db-viewer/BackupDialog.tsx rename to desktop/src/components/db-viewer/BackupDialog.tsx diff --git a/src/components/db-viewer/BackupPage.test.tsx b/desktop/src/components/db-viewer/BackupPage.test.tsx similarity index 100% rename from src/components/db-viewer/BackupPage.test.tsx rename to desktop/src/components/db-viewer/BackupPage.test.tsx diff --git a/src/components/db-viewer/BackupPage.tsx b/desktop/src/components/db-viewer/BackupPage.tsx similarity index 100% rename from src/components/db-viewer/BackupPage.tsx rename to desktop/src/components/db-viewer/BackupPage.tsx diff --git a/src/components/db-viewer/BackupProgress.tsx b/desktop/src/components/db-viewer/BackupProgress.tsx similarity index 100% rename from src/components/db-viewer/BackupProgress.tsx rename to desktop/src/components/db-viewer/BackupProgress.tsx diff --git a/src/components/db-viewer/ChangesQueuePanel.test.tsx b/desktop/src/components/db-viewer/ChangesQueuePanel.test.tsx similarity index 100% rename from src/components/db-viewer/ChangesQueuePanel.test.tsx rename to desktop/src/components/db-viewer/ChangesQueuePanel.test.tsx diff --git a/src/components/db-viewer/ChangesQueuePanel.tsx b/desktop/src/components/db-viewer/ChangesQueuePanel.tsx similarity index 100% rename from src/components/db-viewer/ChangesQueuePanel.tsx rename to desktop/src/components/db-viewer/ChangesQueuePanel.tsx diff --git a/src/components/db-viewer/ConnectionDropBanner.test.tsx b/desktop/src/components/db-viewer/ConnectionDropBanner.test.tsx similarity index 100% rename from src/components/db-viewer/ConnectionDropBanner.test.tsx rename to desktop/src/components/db-viewer/ConnectionDropBanner.test.tsx diff --git a/src/components/db-viewer/ConnectionDropBanner.tsx b/desktop/src/components/db-viewer/ConnectionDropBanner.tsx similarity index 100% rename from src/components/db-viewer/ConnectionDropBanner.tsx rename to desktop/src/components/db-viewer/ConnectionDropBanner.tsx diff --git a/src/components/db-viewer/CrowsFootEdge.tsx b/desktop/src/components/db-viewer/CrowsFootEdge.tsx similarity index 100% rename from src/components/db-viewer/CrowsFootEdge.tsx rename to desktop/src/components/db-viewer/CrowsFootEdge.tsx diff --git a/src/components/db-viewer/DbViewerScreen.test.tsx b/desktop/src/components/db-viewer/DbViewerScreen.test.tsx similarity index 100% rename from src/components/db-viewer/DbViewerScreen.test.tsx rename to desktop/src/components/db-viewer/DbViewerScreen.test.tsx diff --git a/src/components/db-viewer/DbViewerScreen.tsx b/desktop/src/components/db-viewer/DbViewerScreen.tsx similarity index 100% rename from src/components/db-viewer/DbViewerScreen.tsx rename to desktop/src/components/db-viewer/DbViewerScreen.tsx diff --git a/src/components/db-viewer/DbViewerSidebar.test.tsx b/desktop/src/components/db-viewer/DbViewerSidebar.test.tsx similarity index 100% rename from src/components/db-viewer/DbViewerSidebar.test.tsx rename to desktop/src/components/db-viewer/DbViewerSidebar.test.tsx diff --git a/src/components/db-viewer/DbViewerSidebar.tsx b/desktop/src/components/db-viewer/DbViewerSidebar.tsx similarity index 100% rename from src/components/db-viewer/DbViewerSidebar.tsx rename to desktop/src/components/db-viewer/DbViewerSidebar.tsx diff --git a/src/components/db-viewer/DbViewerToolbar.test.tsx b/desktop/src/components/db-viewer/DbViewerToolbar.test.tsx similarity index 100% rename from src/components/db-viewer/DbViewerToolbar.test.tsx rename to desktop/src/components/db-viewer/DbViewerToolbar.test.tsx diff --git a/src/components/db-viewer/DbViewerToolbar.tsx b/desktop/src/components/db-viewer/DbViewerToolbar.tsx similarity index 100% rename from src/components/db-viewer/DbViewerToolbar.tsx rename to desktop/src/components/db-viewer/DbViewerToolbar.tsx diff --git a/src/components/db-viewer/DependencyDialog.test.tsx b/desktop/src/components/db-viewer/DependencyDialog.test.tsx similarity index 100% rename from src/components/db-viewer/DependencyDialog.test.tsx rename to desktop/src/components/db-viewer/DependencyDialog.test.tsx diff --git a/src/components/db-viewer/DependencyDialog.tsx b/desktop/src/components/db-viewer/DependencyDialog.tsx similarity index 100% rename from src/components/db-viewer/DependencyDialog.tsx rename to desktop/src/components/db-viewer/DependencyDialog.tsx diff --git a/src/components/db-viewer/EditConnectionModal.test.tsx b/desktop/src/components/db-viewer/EditConnectionModal.test.tsx similarity index 100% rename from src/components/db-viewer/EditConnectionModal.test.tsx rename to desktop/src/components/db-viewer/EditConnectionModal.test.tsx diff --git a/src/components/db-viewer/EditConnectionModal.tsx b/desktop/src/components/db-viewer/EditConnectionModal.tsx similarity index 100% rename from src/components/db-viewer/EditConnectionModal.tsx rename to desktop/src/components/db-viewer/EditConnectionModal.tsx diff --git a/src/components/db-viewer/FilterBuilder.test.tsx b/desktop/src/components/db-viewer/FilterBuilder.test.tsx similarity index 100% rename from src/components/db-viewer/FilterBuilder.test.tsx rename to desktop/src/components/db-viewer/FilterBuilder.test.tsx diff --git a/src/components/db-viewer/FilterBuilder.tsx b/desktop/src/components/db-viewer/FilterBuilder.tsx similarity index 100% rename from src/components/db-viewer/FilterBuilder.tsx rename to desktop/src/components/db-viewer/FilterBuilder.tsx diff --git a/src/components/db-viewer/FkPreviewPopover.tsx b/desktop/src/components/db-viewer/FkPreviewPopover.tsx similarity index 100% rename from src/components/db-viewer/FkPreviewPopover.tsx rename to desktop/src/components/db-viewer/FkPreviewPopover.tsx diff --git a/src/components/db-viewer/ImportDialog.test.tsx b/desktop/src/components/db-viewer/ImportDialog.test.tsx similarity index 100% rename from src/components/db-viewer/ImportDialog.test.tsx rename to desktop/src/components/db-viewer/ImportDialog.test.tsx diff --git a/src/components/db-viewer/ImportDialog.tsx b/desktop/src/components/db-viewer/ImportDialog.tsx similarity index 100% rename from src/components/db-viewer/ImportDialog.tsx rename to desktop/src/components/db-viewer/ImportDialog.tsx diff --git a/src/components/db-viewer/JsonCellPopover.tsx b/desktop/src/components/db-viewer/JsonCellPopover.tsx similarity index 100% rename from src/components/db-viewer/JsonCellPopover.tsx rename to desktop/src/components/db-viewer/JsonCellPopover.tsx diff --git a/src/components/db-viewer/ObjectExplorerPage.test.tsx b/desktop/src/components/db-viewer/ObjectExplorerPage.test.tsx similarity index 100% rename from src/components/db-viewer/ObjectExplorerPage.test.tsx rename to desktop/src/components/db-viewer/ObjectExplorerPage.test.tsx diff --git a/src/components/db-viewer/ObjectExplorerPage.tsx b/desktop/src/components/db-viewer/ObjectExplorerPage.tsx similarity index 100% rename from src/components/db-viewer/ObjectExplorerPage.tsx rename to desktop/src/components/db-viewer/ObjectExplorerPage.tsx diff --git a/src/components/db-viewer/ObjectSearchPalette.test.tsx b/desktop/src/components/db-viewer/ObjectSearchPalette.test.tsx similarity index 100% rename from src/components/db-viewer/ObjectSearchPalette.test.tsx rename to desktop/src/components/db-viewer/ObjectSearchPalette.test.tsx diff --git a/src/components/db-viewer/ObjectSearchPalette.tsx b/desktop/src/components/db-viewer/ObjectSearchPalette.tsx similarity index 100% rename from src/components/db-viewer/ObjectSearchPalette.tsx rename to desktop/src/components/db-viewer/ObjectSearchPalette.tsx diff --git a/src/components/db-viewer/ObjectTree.tsx b/desktop/src/components/db-viewer/ObjectTree.tsx similarity index 100% rename from src/components/db-viewer/ObjectTree.tsx rename to desktop/src/components/db-viewer/ObjectTree.tsx diff --git a/src/components/db-viewer/PasswordPromptDialog.test.tsx b/desktop/src/components/db-viewer/PasswordPromptDialog.test.tsx similarity index 100% rename from src/components/db-viewer/PasswordPromptDialog.test.tsx rename to desktop/src/components/db-viewer/PasswordPromptDialog.test.tsx diff --git a/src/components/db-viewer/PasswordPromptDialog.tsx b/desktop/src/components/db-viewer/PasswordPromptDialog.tsx similarity index 100% rename from src/components/db-viewer/PasswordPromptDialog.tsx rename to desktop/src/components/db-viewer/PasswordPromptDialog.tsx diff --git a/src/components/db-viewer/RestoreDialog.tsx b/desktop/src/components/db-viewer/RestoreDialog.tsx similarity index 100% rename from src/components/db-viewer/RestoreDialog.tsx rename to desktop/src/components/db-viewer/RestoreDialog.tsx diff --git a/src/components/db-viewer/RestorePage.test.tsx b/desktop/src/components/db-viewer/RestorePage.test.tsx similarity index 100% rename from src/components/db-viewer/RestorePage.test.tsx rename to desktop/src/components/db-viewer/RestorePage.test.tsx diff --git a/src/components/db-viewer/RestorePage.tsx b/desktop/src/components/db-viewer/RestorePage.tsx similarity index 100% rename from src/components/db-viewer/RestorePage.tsx rename to desktop/src/components/db-viewer/RestorePage.tsx diff --git a/src/components/db-viewer/SchemaMenu.test.tsx b/desktop/src/components/db-viewer/SchemaMenu.test.tsx similarity index 100% rename from src/components/db-viewer/SchemaMenu.test.tsx rename to desktop/src/components/db-viewer/SchemaMenu.test.tsx diff --git a/src/components/db-viewer/SchemaMenu.tsx b/desktop/src/components/db-viewer/SchemaMenu.tsx similarity index 100% rename from src/components/db-viewer/SchemaMenu.tsx rename to desktop/src/components/db-viewer/SchemaMenu.tsx diff --git a/src/components/db-viewer/SchemaVisualizerNode.test.tsx b/desktop/src/components/db-viewer/SchemaVisualizerNode.test.tsx similarity index 100% rename from src/components/db-viewer/SchemaVisualizerNode.test.tsx rename to desktop/src/components/db-viewer/SchemaVisualizerNode.test.tsx diff --git a/src/components/db-viewer/SchemaVisualizerNode.tsx b/desktop/src/components/db-viewer/SchemaVisualizerNode.tsx similarity index 100% rename from src/components/db-viewer/SchemaVisualizerNode.tsx rename to desktop/src/components/db-viewer/SchemaVisualizerNode.tsx diff --git a/src/components/db-viewer/SchemaVisualizerPage.test.tsx b/desktop/src/components/db-viewer/SchemaVisualizerPage.test.tsx similarity index 100% rename from src/components/db-viewer/SchemaVisualizerPage.test.tsx rename to desktop/src/components/db-viewer/SchemaVisualizerPage.test.tsx diff --git a/src/components/db-viewer/SchemaVisualizerPage.tsx b/desktop/src/components/db-viewer/SchemaVisualizerPage.tsx similarity index 100% rename from src/components/db-viewer/SchemaVisualizerPage.tsx rename to desktop/src/components/db-viewer/SchemaVisualizerPage.tsx diff --git a/src/components/db-viewer/SyncDialog.tsx b/desktop/src/components/db-viewer/SyncDialog.tsx similarity index 100% rename from src/components/db-viewer/SyncDialog.tsx rename to desktop/src/components/db-viewer/SyncDialog.tsx diff --git a/src/components/db-viewer/SyncPage.test.tsx b/desktop/src/components/db-viewer/SyncPage.test.tsx similarity index 100% rename from src/components/db-viewer/SyncPage.test.tsx rename to desktop/src/components/db-viewer/SyncPage.test.tsx diff --git a/src/components/db-viewer/SyncPage.tsx b/desktop/src/components/db-viewer/SyncPage.tsx similarity index 100% rename from src/components/db-viewer/SyncPage.tsx rename to desktop/src/components/db-viewer/SyncPage.tsx diff --git a/src/components/db-viewer/TabBar.test.tsx b/desktop/src/components/db-viewer/TabBar.test.tsx similarity index 100% rename from src/components/db-viewer/TabBar.test.tsx rename to desktop/src/components/db-viewer/TabBar.test.tsx diff --git a/src/components/db-viewer/TabBar.tsx b/desktop/src/components/db-viewer/TabBar.tsx similarity index 100% rename from src/components/db-viewer/TabBar.tsx rename to desktop/src/components/db-viewer/TabBar.tsx diff --git a/src/components/db-viewer/TableControls.test.tsx b/desktop/src/components/db-viewer/TableControls.test.tsx similarity index 100% rename from src/components/db-viewer/TableControls.test.tsx rename to desktop/src/components/db-viewer/TableControls.test.tsx diff --git a/src/components/db-viewer/TableControls.tsx b/desktop/src/components/db-viewer/TableControls.tsx similarity index 100% rename from src/components/db-viewer/TableControls.tsx rename to desktop/src/components/db-viewer/TableControls.tsx diff --git a/src/components/db-viewer/TableOverflowMenu.test.tsx b/desktop/src/components/db-viewer/TableOverflowMenu.test.tsx similarity index 100% rename from src/components/db-viewer/TableOverflowMenu.test.tsx rename to desktop/src/components/db-viewer/TableOverflowMenu.test.tsx diff --git a/src/components/db-viewer/TableOverflowMenu.tsx b/desktop/src/components/db-viewer/TableOverflowMenu.tsx similarity index 100% rename from src/components/db-viewer/TableOverflowMenu.tsx rename to desktop/src/components/db-viewer/TableOverflowMenu.tsx diff --git a/src/components/db-viewer/TableTree.test.tsx b/desktop/src/components/db-viewer/TableTree.test.tsx similarity index 100% rename from src/components/db-viewer/TableTree.test.tsx rename to desktop/src/components/db-viewer/TableTree.test.tsx diff --git a/src/components/db-viewer/TableTree.tsx b/desktop/src/components/db-viewer/TableTree.tsx similarity index 100% rename from src/components/db-viewer/TableTree.tsx rename to desktop/src/components/db-viewer/TableTree.tsx diff --git a/src/components/db-viewer/ToolsPage.tsx b/desktop/src/components/db-viewer/ToolsPage.tsx similarity index 100% rename from src/components/db-viewer/ToolsPage.tsx rename to desktop/src/components/db-viewer/ToolsPage.tsx diff --git a/src/components/db-viewer/legendHelpers.test.ts b/desktop/src/components/db-viewer/legendHelpers.test.ts similarity index 100% rename from src/components/db-viewer/legendHelpers.test.ts rename to desktop/src/components/db-viewer/legendHelpers.test.ts diff --git a/src/components/db-viewer/legendHelpers.ts b/desktop/src/components/db-viewer/legendHelpers.ts similarity index 100% rename from src/components/db-viewer/legendHelpers.ts rename to desktop/src/components/db-viewer/legendHelpers.ts diff --git a/src/components/db-viewer/objects/ColumnPicker.tsx b/desktop/src/components/db-viewer/objects/ColumnPicker.tsx similarity index 100% rename from src/components/db-viewer/objects/ColumnPicker.tsx rename to desktop/src/components/db-viewer/objects/ColumnPicker.tsx diff --git a/src/components/db-viewer/objects/ConstraintForm.test.tsx b/desktop/src/components/db-viewer/objects/ConstraintForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/ConstraintForm.test.tsx rename to desktop/src/components/db-viewer/objects/ConstraintForm.test.tsx diff --git a/src/components/db-viewer/objects/ConstraintForm.tsx b/desktop/src/components/db-viewer/objects/ConstraintForm.tsx similarity index 100% rename from src/components/db-viewer/objects/ConstraintForm.tsx rename to desktop/src/components/db-viewer/objects/ConstraintForm.tsx diff --git a/src/components/db-viewer/objects/EnumForm.test.tsx b/desktop/src/components/db-viewer/objects/EnumForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/EnumForm.test.tsx rename to desktop/src/components/db-viewer/objects/EnumForm.test.tsx diff --git a/src/components/db-viewer/objects/EnumForm.tsx b/desktop/src/components/db-viewer/objects/EnumForm.tsx similarity index 100% rename from src/components/db-viewer/objects/EnumForm.tsx rename to desktop/src/components/db-viewer/objects/EnumForm.tsx diff --git a/src/components/db-viewer/objects/ExtensionForm.test.tsx b/desktop/src/components/db-viewer/objects/ExtensionForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/ExtensionForm.test.tsx rename to desktop/src/components/db-viewer/objects/ExtensionForm.test.tsx diff --git a/src/components/db-viewer/objects/ExtensionForm.tsx b/desktop/src/components/db-viewer/objects/ExtensionForm.tsx similarity index 100% rename from src/components/db-viewer/objects/ExtensionForm.tsx rename to desktop/src/components/db-viewer/objects/ExtensionForm.tsx diff --git a/src/components/db-viewer/objects/FkPanel.test.tsx b/desktop/src/components/db-viewer/objects/FkPanel.test.tsx similarity index 100% rename from src/components/db-viewer/objects/FkPanel.test.tsx rename to desktop/src/components/db-viewer/objects/FkPanel.test.tsx diff --git a/src/components/db-viewer/objects/FkPanel.tsx b/desktop/src/components/db-viewer/objects/FkPanel.tsx similarity index 100% rename from src/components/db-viewer/objects/FkPanel.tsx rename to desktop/src/components/db-viewer/objects/FkPanel.tsx diff --git a/src/components/db-viewer/objects/FunctionForm.test.tsx b/desktop/src/components/db-viewer/objects/FunctionForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/FunctionForm.test.tsx rename to desktop/src/components/db-viewer/objects/FunctionForm.test.tsx diff --git a/src/components/db-viewer/objects/FunctionForm.tsx b/desktop/src/components/db-viewer/objects/FunctionForm.tsx similarity index 100% rename from src/components/db-viewer/objects/FunctionForm.tsx rename to desktop/src/components/db-viewer/objects/FunctionForm.tsx diff --git a/src/components/db-viewer/objects/IndexForm.test.tsx b/desktop/src/components/db-viewer/objects/IndexForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/IndexForm.test.tsx rename to desktop/src/components/db-viewer/objects/IndexForm.test.tsx diff --git a/src/components/db-viewer/objects/IndexForm.tsx b/desktop/src/components/db-viewer/objects/IndexForm.tsx similarity index 100% rename from src/components/db-viewer/objects/IndexForm.tsx rename to desktop/src/components/db-viewer/objects/IndexForm.tsx diff --git a/src/components/db-viewer/objects/KindForm.tsx b/desktop/src/components/db-viewer/objects/KindForm.tsx similarity index 100% rename from src/components/db-viewer/objects/KindForm.tsx rename to desktop/src/components/db-viewer/objects/KindForm.tsx diff --git a/src/components/db-viewer/objects/ObjectContextMenu.test.tsx b/desktop/src/components/db-viewer/objects/ObjectContextMenu.test.tsx similarity index 100% rename from src/components/db-viewer/objects/ObjectContextMenu.test.tsx rename to desktop/src/components/db-viewer/objects/ObjectContextMenu.test.tsx diff --git a/src/components/db-viewer/objects/ObjectContextMenu.tsx b/desktop/src/components/db-viewer/objects/ObjectContextMenu.tsx similarity index 100% rename from src/components/db-viewer/objects/ObjectContextMenu.tsx rename to desktop/src/components/db-viewer/objects/ObjectContextMenu.tsx diff --git a/src/components/db-viewer/objects/ObjectDetail.test.tsx b/desktop/src/components/db-viewer/objects/ObjectDetail.test.tsx similarity index 100% rename from src/components/db-viewer/objects/ObjectDetail.test.tsx rename to desktop/src/components/db-viewer/objects/ObjectDetail.test.tsx diff --git a/src/components/db-viewer/objects/ObjectDetail.tsx b/desktop/src/components/db-viewer/objects/ObjectDetail.tsx similarity index 100% rename from src/components/db-viewer/objects/ObjectDetail.tsx rename to desktop/src/components/db-viewer/objects/ObjectDetail.tsx diff --git a/src/components/db-viewer/objects/ObjectFormTab.test.tsx b/desktop/src/components/db-viewer/objects/ObjectFormTab.test.tsx similarity index 100% rename from src/components/db-viewer/objects/ObjectFormTab.test.tsx rename to desktop/src/components/db-viewer/objects/ObjectFormTab.test.tsx diff --git a/src/components/db-viewer/objects/ObjectFormTab.tsx b/desktop/src/components/db-viewer/objects/ObjectFormTab.tsx similarity index 100% rename from src/components/db-viewer/objects/ObjectFormTab.tsx rename to desktop/src/components/db-viewer/objects/ObjectFormTab.tsx diff --git a/src/components/db-viewer/objects/RoleDetail.test.tsx b/desktop/src/components/db-viewer/objects/RoleDetail.test.tsx similarity index 100% rename from src/components/db-viewer/objects/RoleDetail.test.tsx rename to desktop/src/components/db-viewer/objects/RoleDetail.test.tsx diff --git a/src/components/db-viewer/objects/RoleDetail.tsx b/desktop/src/components/db-viewer/objects/RoleDetail.tsx similarity index 100% rename from src/components/db-viewer/objects/RoleDetail.tsx rename to desktop/src/components/db-viewer/objects/RoleDetail.tsx diff --git a/src/components/db-viewer/objects/RoleForm.test.tsx b/desktop/src/components/db-viewer/objects/RoleForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/RoleForm.test.tsx rename to desktop/src/components/db-viewer/objects/RoleForm.test.tsx diff --git a/src/components/db-viewer/objects/RoleForm.tsx b/desktop/src/components/db-viewer/objects/RoleForm.tsx similarity index 100% rename from src/components/db-viewer/objects/RoleForm.tsx rename to desktop/src/components/db-viewer/objects/RoleForm.tsx diff --git a/src/components/db-viewer/objects/RoleGrantsEditor.test.tsx b/desktop/src/components/db-viewer/objects/RoleGrantsEditor.test.tsx similarity index 100% rename from src/components/db-viewer/objects/RoleGrantsEditor.test.tsx rename to desktop/src/components/db-viewer/objects/RoleGrantsEditor.test.tsx diff --git a/src/components/db-viewer/objects/RoleGrantsEditor.tsx b/desktop/src/components/db-viewer/objects/RoleGrantsEditor.tsx similarity index 100% rename from src/components/db-viewer/objects/RoleGrantsEditor.tsx rename to desktop/src/components/db-viewer/objects/RoleGrantsEditor.tsx diff --git a/src/components/db-viewer/objects/SequenceForm.test.tsx b/desktop/src/components/db-viewer/objects/SequenceForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/SequenceForm.test.tsx rename to desktop/src/components/db-viewer/objects/SequenceForm.test.tsx diff --git a/src/components/db-viewer/objects/SequenceForm.tsx b/desktop/src/components/db-viewer/objects/SequenceForm.tsx similarity index 100% rename from src/components/db-viewer/objects/SequenceForm.tsx rename to desktop/src/components/db-viewer/objects/SequenceForm.tsx diff --git a/src/components/db-viewer/objects/TableForm.test.tsx b/desktop/src/components/db-viewer/objects/TableForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/TableForm.test.tsx rename to desktop/src/components/db-viewer/objects/TableForm.test.tsx diff --git a/src/components/db-viewer/objects/TableForm.tsx b/desktop/src/components/db-viewer/objects/TableForm.tsx similarity index 100% rename from src/components/db-viewer/objects/TableForm.tsx rename to desktop/src/components/db-viewer/objects/TableForm.tsx diff --git a/src/components/db-viewer/objects/TriggerForm.test.tsx b/desktop/src/components/db-viewer/objects/TriggerForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/TriggerForm.test.tsx rename to desktop/src/components/db-viewer/objects/TriggerForm.test.tsx diff --git a/src/components/db-viewer/objects/TriggerForm.tsx b/desktop/src/components/db-viewer/objects/TriggerForm.tsx similarity index 100% rename from src/components/db-viewer/objects/TriggerForm.tsx rename to desktop/src/components/db-viewer/objects/TriggerForm.tsx diff --git a/src/components/db-viewer/objects/ViewForm.test.tsx b/desktop/src/components/db-viewer/objects/ViewForm.test.tsx similarity index 100% rename from src/components/db-viewer/objects/ViewForm.test.tsx rename to desktop/src/components/db-viewer/objects/ViewForm.test.tsx diff --git a/src/components/db-viewer/objects/ViewForm.tsx b/desktop/src/components/db-viewer/objects/ViewForm.tsx similarity index 100% rename from src/components/db-viewer/objects/ViewForm.tsx rename to desktop/src/components/db-viewer/objects/ViewForm.tsx diff --git a/src/components/db-viewer/objects/formRow.tsx b/desktop/src/components/db-viewer/objects/formRow.tsx similarity index 100% rename from src/components/db-viewer/objects/formRow.tsx rename to desktop/src/components/db-viewer/objects/formRow.tsx diff --git a/src/components/editor/DestructiveQueryDialog.test.tsx b/desktop/src/components/editor/DestructiveQueryDialog.test.tsx similarity index 100% rename from src/components/editor/DestructiveQueryDialog.test.tsx rename to desktop/src/components/editor/DestructiveQueryDialog.test.tsx diff --git a/src/components/editor/DestructiveQueryDialog.tsx b/desktop/src/components/editor/DestructiveQueryDialog.tsx similarity index 100% rename from src/components/editor/DestructiveQueryDialog.tsx rename to desktop/src/components/editor/DestructiveQueryDialog.tsx diff --git a/src/components/editor/QueryEditor.test.tsx b/desktop/src/components/editor/QueryEditor.test.tsx similarity index 100% rename from src/components/editor/QueryEditor.test.tsx rename to desktop/src/components/editor/QueryEditor.test.tsx diff --git a/src/components/editor/QueryEditor.tsx b/desktop/src/components/editor/QueryEditor.tsx similarity index 100% rename from src/components/editor/QueryEditor.tsx rename to desktop/src/components/editor/QueryEditor.tsx diff --git a/src/components/editor/QueryHistoryDropdown.test.tsx b/desktop/src/components/editor/QueryHistoryDropdown.test.tsx similarity index 100% rename from src/components/editor/QueryHistoryDropdown.test.tsx rename to desktop/src/components/editor/QueryHistoryDropdown.test.tsx diff --git a/src/components/editor/QueryHistoryDropdown.tsx b/desktop/src/components/editor/QueryHistoryDropdown.tsx similarity index 100% rename from src/components/editor/QueryHistoryDropdown.tsx rename to desktop/src/components/editor/QueryHistoryDropdown.tsx diff --git a/src/components/editor/QueryToolbar.test.tsx b/desktop/src/components/editor/QueryToolbar.test.tsx similarity index 100% rename from src/components/editor/QueryToolbar.test.tsx rename to desktop/src/components/editor/QueryToolbar.test.tsx diff --git a/src/components/editor/QueryToolbar.tsx b/desktop/src/components/editor/QueryToolbar.tsx similarity index 100% rename from src/components/editor/QueryToolbar.tsx rename to desktop/src/components/editor/QueryToolbar.tsx diff --git a/src/components/editor/SaveQueryDialog.test.tsx b/desktop/src/components/editor/SaveQueryDialog.test.tsx similarity index 100% rename from src/components/editor/SaveQueryDialog.test.tsx rename to desktop/src/components/editor/SaveQueryDialog.test.tsx diff --git a/src/components/editor/SaveQueryDialog.tsx b/desktop/src/components/editor/SaveQueryDialog.tsx similarity index 100% rename from src/components/editor/SaveQueryDialog.tsx rename to desktop/src/components/editor/SaveQueryDialog.tsx diff --git a/src/components/editor/SqlEditorField.tsx b/desktop/src/components/editor/SqlEditorField.tsx similarity index 100% rename from src/components/editor/SqlEditorField.tsx rename to desktop/src/components/editor/SqlEditorField.tsx diff --git a/src/components/folders/CreateFolderDialog.test.tsx b/desktop/src/components/folders/CreateFolderDialog.test.tsx similarity index 100% rename from src/components/folders/CreateFolderDialog.test.tsx rename to desktop/src/components/folders/CreateFolderDialog.test.tsx diff --git a/src/components/folders/CreateFolderDialog.tsx b/desktop/src/components/folders/CreateFolderDialog.tsx similarity index 100% rename from src/components/folders/CreateFolderDialog.tsx rename to desktop/src/components/folders/CreateFolderDialog.tsx diff --git a/src/components/folders/EditFolderDialog.test.tsx b/desktop/src/components/folders/EditFolderDialog.test.tsx similarity index 100% rename from src/components/folders/EditFolderDialog.test.tsx rename to desktop/src/components/folders/EditFolderDialog.test.tsx diff --git a/src/components/folders/EditFolderDialog.tsx b/desktop/src/components/folders/EditFolderDialog.tsx similarity index 100% rename from src/components/folders/EditFolderDialog.tsx rename to desktop/src/components/folders/EditFolderDialog.tsx diff --git a/src/components/folders/FolderBreadcrumb.test.tsx b/desktop/src/components/folders/FolderBreadcrumb.test.tsx similarity index 100% rename from src/components/folders/FolderBreadcrumb.test.tsx rename to desktop/src/components/folders/FolderBreadcrumb.test.tsx diff --git a/src/components/folders/FolderBreadcrumb.tsx b/desktop/src/components/folders/FolderBreadcrumb.tsx similarity index 100% rename from src/components/folders/FolderBreadcrumb.tsx rename to desktop/src/components/folders/FolderBreadcrumb.tsx diff --git a/src/components/folders/FolderTree.test.tsx b/desktop/src/components/folders/FolderTree.test.tsx similarity index 100% rename from src/components/folders/FolderTree.test.tsx rename to desktop/src/components/folders/FolderTree.test.tsx diff --git a/src/components/folders/FolderTree.tsx b/desktop/src/components/folders/FolderTree.tsx similarity index 100% rename from src/components/folders/FolderTree.tsx rename to desktop/src/components/folders/FolderTree.tsx diff --git a/src/components/grid/CellContextMenu.test.tsx b/desktop/src/components/grid/CellContextMenu.test.tsx similarity index 100% rename from src/components/grid/CellContextMenu.test.tsx rename to desktop/src/components/grid/CellContextMenu.test.tsx diff --git a/src/components/grid/CellContextMenu.tsx b/desktop/src/components/grid/CellContextMenu.tsx similarity index 100% rename from src/components/grid/CellContextMenu.tsx rename to desktop/src/components/grid/CellContextMenu.tsx diff --git a/src/components/grid/CellEditor.test.tsx b/desktop/src/components/grid/CellEditor.test.tsx similarity index 100% rename from src/components/grid/CellEditor.test.tsx rename to desktop/src/components/grid/CellEditor.test.tsx diff --git a/src/components/grid/CellEditor.tsx b/desktop/src/components/grid/CellEditor.tsx similarity index 100% rename from src/components/grid/CellEditor.tsx rename to desktop/src/components/grid/CellEditor.tsx diff --git a/src/components/grid/RowDetailDrawer.test.tsx b/desktop/src/components/grid/RowDetailDrawer.test.tsx similarity index 100% rename from src/components/grid/RowDetailDrawer.test.tsx rename to desktop/src/components/grid/RowDetailDrawer.test.tsx diff --git a/src/components/grid/RowDetailDrawer.tsx b/desktop/src/components/grid/RowDetailDrawer.tsx similarity index 100% rename from src/components/grid/RowDetailDrawer.tsx rename to desktop/src/components/grid/RowDetailDrawer.tsx diff --git a/src/components/grid/VirtualDataGrid.test.tsx b/desktop/src/components/grid/VirtualDataGrid.test.tsx similarity index 100% rename from src/components/grid/VirtualDataGrid.test.tsx rename to desktop/src/components/grid/VirtualDataGrid.test.tsx diff --git a/src/components/grid/VirtualDataGrid.tsx b/desktop/src/components/grid/VirtualDataGrid.tsx similarity index 100% rename from src/components/grid/VirtualDataGrid.tsx rename to desktop/src/components/grid/VirtualDataGrid.tsx diff --git a/src/components/grid/gridEditability.test.ts b/desktop/src/components/grid/gridEditability.test.ts similarity index 100% rename from src/components/grid/gridEditability.test.ts rename to desktop/src/components/grid/gridEditability.test.ts diff --git a/src/components/grid/gridEditability.ts b/desktop/src/components/grid/gridEditability.ts similarity index 100% rename from src/components/grid/gridEditability.ts rename to desktop/src/components/grid/gridEditability.ts diff --git a/src/components/grid/keyboardNav.test.ts b/desktop/src/components/grid/keyboardNav.test.ts similarity index 100% rename from src/components/grid/keyboardNav.test.ts rename to desktop/src/components/grid/keyboardNav.test.ts diff --git a/src/components/grid/keyboardNav.ts b/desktop/src/components/grid/keyboardNav.ts similarity index 100% rename from src/components/grid/keyboardNav.ts rename to desktop/src/components/grid/keyboardNav.ts diff --git a/src/components/layout/ActionRow.test.tsx b/desktop/src/components/layout/ActionRow.test.tsx similarity index 100% rename from src/components/layout/ActionRow.test.tsx rename to desktop/src/components/layout/ActionRow.test.tsx diff --git a/src/components/layout/ActionRow.tsx b/desktop/src/components/layout/ActionRow.tsx similarity index 100% rename from src/components/layout/ActionRow.tsx rename to desktop/src/components/layout/ActionRow.tsx diff --git a/src/components/layout/DbTypeFilterDropdown.test.tsx b/desktop/src/components/layout/DbTypeFilterDropdown.test.tsx similarity index 100% rename from src/components/layout/DbTypeFilterDropdown.test.tsx rename to desktop/src/components/layout/DbTypeFilterDropdown.test.tsx diff --git a/src/components/layout/DbTypeFilterDropdown.tsx b/desktop/src/components/layout/DbTypeFilterDropdown.tsx similarity index 100% rename from src/components/layout/DbTypeFilterDropdown.tsx rename to desktop/src/components/layout/DbTypeFilterDropdown.tsx diff --git a/src/components/layout/HomeScreen.test.tsx b/desktop/src/components/layout/HomeScreen.test.tsx similarity index 100% rename from src/components/layout/HomeScreen.test.tsx rename to desktop/src/components/layout/HomeScreen.test.tsx diff --git a/src/components/layout/HomeScreen.tsx b/desktop/src/components/layout/HomeScreen.tsx similarity index 100% rename from src/components/layout/HomeScreen.tsx rename to desktop/src/components/layout/HomeScreen.tsx diff --git a/src/components/layout/ImportExportMenu.tsx b/desktop/src/components/layout/ImportExportMenu.tsx similarity index 100% rename from src/components/layout/ImportExportMenu.tsx rename to desktop/src/components/layout/ImportExportMenu.tsx diff --git a/src/components/queries/QueriesPanel.test.tsx b/desktop/src/components/queries/QueriesPanel.test.tsx similarity index 100% rename from src/components/queries/QueriesPanel.test.tsx rename to desktop/src/components/queries/QueriesPanel.test.tsx diff --git a/src/components/queries/QueriesPanel.tsx b/desktop/src/components/queries/QueriesPanel.tsx similarity index 100% rename from src/components/queries/QueriesPanel.tsx rename to desktop/src/components/queries/QueriesPanel.tsx diff --git a/src/components/search/SearchBar.test.tsx b/desktop/src/components/search/SearchBar.test.tsx similarity index 100% rename from src/components/search/SearchBar.test.tsx rename to desktop/src/components/search/SearchBar.test.tsx diff --git a/src/components/search/SearchBar.tsx b/desktop/src/components/search/SearchBar.tsx similarity index 100% rename from src/components/search/SearchBar.tsx rename to desktop/src/components/search/SearchBar.tsx diff --git a/src/components/settings/AdvancedSettingsTab.tsx b/desktop/src/components/settings/AdvancedSettingsTab.tsx similarity index 100% rename from src/components/settings/AdvancedSettingsTab.tsx rename to desktop/src/components/settings/AdvancedSettingsTab.tsx diff --git a/src/components/settings/EditorSettingsTab.test.tsx b/desktop/src/components/settings/EditorSettingsTab.test.tsx similarity index 100% rename from src/components/settings/EditorSettingsTab.test.tsx rename to desktop/src/components/settings/EditorSettingsTab.test.tsx diff --git a/src/components/settings/EditorSettingsTab.tsx b/desktop/src/components/settings/EditorSettingsTab.tsx similarity index 100% rename from src/components/settings/EditorSettingsTab.tsx rename to desktop/src/components/settings/EditorSettingsTab.tsx diff --git a/src/components/settings/GeneralSettingsTab.test.tsx b/desktop/src/components/settings/GeneralSettingsTab.test.tsx similarity index 100% rename from src/components/settings/GeneralSettingsTab.test.tsx rename to desktop/src/components/settings/GeneralSettingsTab.test.tsx diff --git a/src/components/settings/GeneralSettingsTab.tsx b/desktop/src/components/settings/GeneralSettingsTab.tsx similarity index 100% rename from src/components/settings/GeneralSettingsTab.tsx rename to desktop/src/components/settings/GeneralSettingsTab.tsx diff --git a/src/components/settings/SettingsPage.test.tsx b/desktop/src/components/settings/SettingsPage.test.tsx similarity index 100% rename from src/components/settings/SettingsPage.test.tsx rename to desktop/src/components/settings/SettingsPage.test.tsx diff --git a/src/components/settings/SettingsPage.tsx b/desktop/src/components/settings/SettingsPage.tsx similarity index 100% rename from src/components/settings/SettingsPage.tsx rename to desktop/src/components/settings/SettingsPage.tsx diff --git a/src/components/settings/ShortcutsSettingsTab.tsx b/desktop/src/components/settings/ShortcutsSettingsTab.tsx similarity index 100% rename from src/components/settings/ShortcutsSettingsTab.tsx rename to desktop/src/components/settings/ShortcutsSettingsTab.tsx diff --git a/src/components/settings/TagsSettingsTab.tsx b/desktop/src/components/settings/TagsSettingsTab.tsx similarity index 100% rename from src/components/settings/TagsSettingsTab.tsx rename to desktop/src/components/settings/TagsSettingsTab.tsx diff --git a/src/components/tags/SearchableTagPicker.test.tsx b/desktop/src/components/tags/SearchableTagPicker.test.tsx similarity index 100% rename from src/components/tags/SearchableTagPicker.test.tsx rename to desktop/src/components/tags/SearchableTagPicker.test.tsx diff --git a/src/components/tags/SearchableTagPicker.tsx b/desktop/src/components/tags/SearchableTagPicker.tsx similarity index 100% rename from src/components/tags/SearchableTagPicker.tsx rename to desktop/src/components/tags/SearchableTagPicker.tsx diff --git a/src/components/tags/TagBadge.test.tsx b/desktop/src/components/tags/TagBadge.test.tsx similarity index 100% rename from src/components/tags/TagBadge.test.tsx rename to desktop/src/components/tags/TagBadge.test.tsx diff --git a/src/components/tags/TagBadge.tsx b/desktop/src/components/tags/TagBadge.tsx similarity index 100% rename from src/components/tags/TagBadge.tsx rename to desktop/src/components/tags/TagBadge.tsx diff --git a/src/components/tags/TagFilterDropdown.test.tsx b/desktop/src/components/tags/TagFilterDropdown.test.tsx similarity index 100% rename from src/components/tags/TagFilterDropdown.test.tsx rename to desktop/src/components/tags/TagFilterDropdown.test.tsx diff --git a/src/components/tags/TagFilterDropdown.tsx b/desktop/src/components/tags/TagFilterDropdown.tsx similarity index 100% rename from src/components/tags/TagFilterDropdown.tsx rename to desktop/src/components/tags/TagFilterDropdown.tsx diff --git a/src/components/ui/AccentPicker.tsx b/desktop/src/components/ui/AccentPicker.tsx similarity index 100% rename from src/components/ui/AccentPicker.tsx rename to desktop/src/components/ui/AccentPicker.tsx diff --git a/src/components/ui/AnimatedModal.test.tsx b/desktop/src/components/ui/AnimatedModal.test.tsx similarity index 100% rename from src/components/ui/AnimatedModal.test.tsx rename to desktop/src/components/ui/AnimatedModal.test.tsx diff --git a/src/components/ui/AnimatedModal.tsx b/desktop/src/components/ui/AnimatedModal.tsx similarity index 100% rename from src/components/ui/AnimatedModal.tsx rename to desktop/src/components/ui/AnimatedModal.tsx diff --git a/src/components/ui/Badge.test.tsx b/desktop/src/components/ui/Badge.test.tsx similarity index 100% rename from src/components/ui/Badge.test.tsx rename to desktop/src/components/ui/Badge.test.tsx diff --git a/src/components/ui/Badge.tsx b/desktop/src/components/ui/Badge.tsx similarity index 100% rename from src/components/ui/Badge.tsx rename to desktop/src/components/ui/Badge.tsx diff --git a/src/components/ui/Button.test.tsx b/desktop/src/components/ui/Button.test.tsx similarity index 100% rename from src/components/ui/Button.test.tsx rename to desktop/src/components/ui/Button.test.tsx diff --git a/src/components/ui/Button.tsx b/desktop/src/components/ui/Button.tsx similarity index 100% rename from src/components/ui/Button.tsx rename to desktop/src/components/ui/Button.tsx diff --git a/src/components/ui/Card.tsx b/desktop/src/components/ui/Card.tsx similarity index 100% rename from src/components/ui/Card.tsx rename to desktop/src/components/ui/Card.tsx diff --git a/src/components/ui/ConfirmDialog.test.tsx b/desktop/src/components/ui/ConfirmDialog.test.tsx similarity index 100% rename from src/components/ui/ConfirmDialog.test.tsx rename to desktop/src/components/ui/ConfirmDialog.test.tsx diff --git a/src/components/ui/ConfirmDialog.tsx b/desktop/src/components/ui/ConfirmDialog.tsx similarity index 100% rename from src/components/ui/ConfirmDialog.tsx rename to desktop/src/components/ui/ConfirmDialog.tsx diff --git a/src/components/ui/DataTypeIcon.test.tsx b/desktop/src/components/ui/DataTypeIcon.test.tsx similarity index 100% rename from src/components/ui/DataTypeIcon.test.tsx rename to desktop/src/components/ui/DataTypeIcon.test.tsx diff --git a/src/components/ui/DataTypeIcon.tsx b/desktop/src/components/ui/DataTypeIcon.tsx similarity index 100% rename from src/components/ui/DataTypeIcon.tsx rename to desktop/src/components/ui/DataTypeIcon.tsx diff --git a/src/components/ui/ErrorBanner.test.tsx b/desktop/src/components/ui/ErrorBanner.test.tsx similarity index 100% rename from src/components/ui/ErrorBanner.test.tsx rename to desktop/src/components/ui/ErrorBanner.test.tsx diff --git a/src/components/ui/ErrorBanner.tsx b/desktop/src/components/ui/ErrorBanner.tsx similarity index 100% rename from src/components/ui/ErrorBanner.tsx rename to desktop/src/components/ui/ErrorBanner.tsx diff --git a/src/components/ui/Input.test.tsx b/desktop/src/components/ui/Input.test.tsx similarity index 100% rename from src/components/ui/Input.test.tsx rename to desktop/src/components/ui/Input.test.tsx diff --git a/src/components/ui/Input.tsx b/desktop/src/components/ui/Input.tsx similarity index 100% rename from src/components/ui/Input.tsx rename to desktop/src/components/ui/Input.tsx diff --git a/src/components/ui/Select.test.tsx b/desktop/src/components/ui/Select.test.tsx similarity index 100% rename from src/components/ui/Select.test.tsx rename to desktop/src/components/ui/Select.test.tsx diff --git a/src/components/ui/Select.tsx b/desktop/src/components/ui/Select.tsx similarity index 100% rename from src/components/ui/Select.tsx rename to desktop/src/components/ui/Select.tsx diff --git a/src/components/ui/SelectDropdown.test.tsx b/desktop/src/components/ui/SelectDropdown.test.tsx similarity index 100% rename from src/components/ui/SelectDropdown.test.tsx rename to desktop/src/components/ui/SelectDropdown.test.tsx diff --git a/src/components/ui/SelectDropdown.tsx b/desktop/src/components/ui/SelectDropdown.tsx similarity index 100% rename from src/components/ui/SelectDropdown.tsx rename to desktop/src/components/ui/SelectDropdown.tsx diff --git a/src/components/ui/SettingsRow.test.tsx b/desktop/src/components/ui/SettingsRow.test.tsx similarity index 100% rename from src/components/ui/SettingsRow.test.tsx rename to desktop/src/components/ui/SettingsRow.test.tsx diff --git a/src/components/ui/SettingsRow.tsx b/desktop/src/components/ui/SettingsRow.tsx similarity index 100% rename from src/components/ui/SettingsRow.tsx rename to desktop/src/components/ui/SettingsRow.tsx diff --git a/src/components/ui/ThemePicker.test.tsx b/desktop/src/components/ui/ThemePicker.test.tsx similarity index 100% rename from src/components/ui/ThemePicker.test.tsx rename to desktop/src/components/ui/ThemePicker.test.tsx diff --git a/src/components/ui/ThemePicker.tsx b/desktop/src/components/ui/ThemePicker.tsx similarity index 100% rename from src/components/ui/ThemePicker.tsx rename to desktop/src/components/ui/ThemePicker.tsx diff --git a/src/components/ui/Toast.tsx b/desktop/src/components/ui/Toast.tsx similarity index 100% rename from src/components/ui/Toast.tsx rename to desktop/src/components/ui/Toast.tsx diff --git a/src/components/ui/Toggle.test.tsx b/desktop/src/components/ui/Toggle.test.tsx similarity index 100% rename from src/components/ui/Toggle.test.tsx rename to desktop/src/components/ui/Toggle.test.tsx diff --git a/src/components/ui/Toggle.tsx b/desktop/src/components/ui/Toggle.tsx similarity index 100% rename from src/components/ui/Toggle.tsx rename to desktop/src/components/ui/Toggle.tsx diff --git a/src/components/ui/Tooltip.test.tsx b/desktop/src/components/ui/Tooltip.test.tsx similarity index 100% rename from src/components/ui/Tooltip.test.tsx rename to desktop/src/components/ui/Tooltip.test.tsx diff --git a/src/components/ui/Tooltip.tsx b/desktop/src/components/ui/Tooltip.tsx similarity index 100% rename from src/components/ui/Tooltip.tsx rename to desktop/src/components/ui/Tooltip.tsx diff --git a/src/hooks/useAppearance.test.ts b/desktop/src/hooks/useAppearance.test.ts similarity index 100% rename from src/hooks/useAppearance.test.ts rename to desktop/src/hooks/useAppearance.test.ts diff --git a/src/hooks/useAppearance.ts b/desktop/src/hooks/useAppearance.ts similarity index 100% rename from src/hooks/useAppearance.ts rename to desktop/src/hooks/useAppearance.ts diff --git a/src/hooks/useConnections.test.ts b/desktop/src/hooks/useConnections.test.ts similarity index 100% rename from src/hooks/useConnections.test.ts rename to desktop/src/hooks/useConnections.test.ts diff --git a/src/hooks/useConnections.ts b/desktop/src/hooks/useConnections.ts similarity index 100% rename from src/hooks/useConnections.ts rename to desktop/src/hooks/useConnections.ts diff --git a/src/hooks/useDbConnection.test.tsx b/desktop/src/hooks/useDbConnection.test.tsx similarity index 100% rename from src/hooks/useDbConnection.test.tsx rename to desktop/src/hooks/useDbConnection.test.tsx diff --git a/src/hooks/useDbConnection.ts b/desktop/src/hooks/useDbConnection.ts similarity index 100% rename from src/hooks/useDbConnection.ts rename to desktop/src/hooks/useDbConnection.ts diff --git a/src/hooks/useSearch.test.ts b/desktop/src/hooks/useSearch.test.ts similarity index 100% rename from src/hooks/useSearch.test.ts rename to desktop/src/hooks/useSearch.test.ts diff --git a/src/hooks/useSearch.ts b/desktop/src/hooks/useSearch.ts similarity index 100% rename from src/hooks/useSearch.ts rename to desktop/src/hooks/useSearch.ts diff --git a/src/hooks/useShortcut.ts b/desktop/src/hooks/useShortcut.ts similarity index 100% rename from src/hooks/useShortcut.ts rename to desktop/src/hooks/useShortcut.ts diff --git a/src/hooks/useSortedTags.ts b/desktop/src/hooks/useSortedTags.ts similarity index 100% rename from src/hooks/useSortedTags.ts rename to desktop/src/hooks/useSortedTags.ts diff --git a/src/index.css b/desktop/src/index.css similarity index 100% rename from src/index.css rename to desktop/src/index.css diff --git a/src/lib/bundle-config.test.ts b/desktop/src/lib/bundle-config.test.ts similarity index 100% rename from src/lib/bundle-config.test.ts rename to desktop/src/lib/bundle-config.test.ts diff --git a/src/lib/changePayload.test.ts b/desktop/src/lib/changePayload.test.ts similarity index 100% rename from src/lib/changePayload.test.ts rename to desktop/src/lib/changePayload.test.ts diff --git a/src/lib/changePayload.ts b/desktop/src/lib/changePayload.ts similarity index 100% rename from src/lib/changePayload.ts rename to desktop/src/lib/changePayload.ts diff --git a/src/lib/commands.test.ts b/desktop/src/lib/commands.test.ts similarity index 100% rename from src/lib/commands.test.ts rename to desktop/src/lib/commands.test.ts diff --git a/src/lib/commands.ts b/desktop/src/lib/commands.ts similarity index 100% rename from src/lib/commands.ts rename to desktop/src/lib/commands.ts diff --git a/src/lib/connectionString.test.ts b/desktop/src/lib/connectionString.test.ts similarity index 100% rename from src/lib/connectionString.test.ts rename to desktop/src/lib/connectionString.test.ts diff --git a/src/lib/connectionString.ts b/desktop/src/lib/connectionString.ts similarity index 100% rename from src/lib/connectionString.ts rename to desktop/src/lib/connectionString.ts diff --git a/src/lib/csvParser.test.ts b/desktop/src/lib/csvParser.test.ts similarity index 100% rename from src/lib/csvParser.test.ts rename to desktop/src/lib/csvParser.test.ts diff --git a/src/lib/csvParser.ts b/desktop/src/lib/csvParser.ts similarity index 100% rename from src/lib/csvParser.ts rename to desktop/src/lib/csvParser.ts diff --git a/src/lib/dbCapabilities.test.ts b/desktop/src/lib/dbCapabilities.test.ts similarity index 100% rename from src/lib/dbCapabilities.test.ts rename to desktop/src/lib/dbCapabilities.test.ts diff --git a/src/lib/dbCapabilities.ts b/desktop/src/lib/dbCapabilities.ts similarity index 100% rename from src/lib/dbCapabilities.ts rename to desktop/src/lib/dbCapabilities.ts diff --git a/src/lib/dbIcons.tsx b/desktop/src/lib/dbIcons.tsx similarity index 100% rename from src/lib/dbIcons.tsx rename to desktop/src/lib/dbIcons.tsx diff --git a/src/lib/docs-coverage.test.ts b/desktop/src/lib/docs-coverage.test.ts similarity index 97% rename from src/lib/docs-coverage.test.ts rename to desktop/src/lib/docs-coverage.test.ts index bfc70ac..e9f4cf3 100644 --- a/src/lib/docs-coverage.test.ts +++ b/desktop/src/lib/docs-coverage.test.ts @@ -1,8 +1,8 @@ import { describe, it, expect } from "vitest"; // Import the docs as raw strings (vite/client declares `*?raw`); this keeps the // test free of a `node:fs` dependency so `tsc` (bun run build) stays clean. -import agents from "../../AGENTS.md?raw"; -import readme from "../../README.md?raw"; +import agents from "../../../AGENTS.md?raw"; +import readme from "../../../README.md?raw"; describe("v0.7.10 docs coverage", () => { it("AGENTS.md marks inline cell editing complete", () => { diff --git a/src/lib/environment.ts b/desktop/src/lib/environment.ts similarity index 100% rename from src/lib/environment.ts rename to desktop/src/lib/environment.ts diff --git a/src/lib/exportData.test.ts b/desktop/src/lib/exportData.test.ts similarity index 100% rename from src/lib/exportData.test.ts rename to desktop/src/lib/exportData.test.ts diff --git a/src/lib/exportData.ts b/desktop/src/lib/exportData.ts similarity index 100% rename from src/lib/exportData.ts rename to desktop/src/lib/exportData.ts diff --git a/src/lib/importExport.test.ts b/desktop/src/lib/importExport.test.ts similarity index 100% rename from src/lib/importExport.test.ts rename to desktop/src/lib/importExport.test.ts diff --git a/src/lib/importExport.ts b/desktop/src/lib/importExport.ts similarity index 100% rename from src/lib/importExport.ts rename to desktop/src/lib/importExport.ts diff --git a/src/lib/importNormalize.test.ts b/desktop/src/lib/importNormalize.test.ts similarity index 100% rename from src/lib/importNormalize.test.ts rename to desktop/src/lib/importNormalize.test.ts diff --git a/src/lib/importNormalize.ts b/desktop/src/lib/importNormalize.ts similarity index 100% rename from src/lib/importNormalize.ts rename to desktop/src/lib/importNormalize.ts diff --git a/src/lib/keychain.ts b/desktop/src/lib/keychain.ts similarity index 100% rename from src/lib/keychain.ts rename to desktop/src/lib/keychain.ts diff --git a/src/lib/monacoSetup.ts b/desktop/src/lib/monacoSetup.ts similarity index 100% rename from src/lib/monacoSetup.ts rename to desktop/src/lib/monacoSetup.ts diff --git a/src/lib/objectCrud.test.ts b/desktop/src/lib/objectCrud.test.ts similarity index 100% rename from src/lib/objectCrud.test.ts rename to desktop/src/lib/objectCrud.test.ts diff --git a/src/lib/objectCrud.ts b/desktop/src/lib/objectCrud.ts similarity index 100% rename from src/lib/objectCrud.ts rename to desktop/src/lib/objectCrud.ts diff --git a/src/lib/platform.test.ts b/desktop/src/lib/platform.test.ts similarity index 100% rename from src/lib/platform.test.ts rename to desktop/src/lib/platform.test.ts diff --git a/src/lib/platform.ts b/desktop/src/lib/platform.ts similarity index 100% rename from src/lib/platform.ts rename to desktop/src/lib/platform.ts diff --git a/src/lib/providers.test.ts b/desktop/src/lib/providers.test.ts similarity index 100% rename from src/lib/providers.test.ts rename to desktop/src/lib/providers.test.ts diff --git a/src/lib/providers.ts b/desktop/src/lib/providers.ts similarity index 100% rename from src/lib/providers.ts rename to desktop/src/lib/providers.ts diff --git a/src/lib/recentConnections.test.ts b/desktop/src/lib/recentConnections.test.ts similarity index 100% rename from src/lib/recentConnections.test.ts rename to desktop/src/lib/recentConnections.test.ts diff --git a/src/lib/recentConnections.ts b/desktop/src/lib/recentConnections.ts similarity index 100% rename from src/lib/recentConnections.ts rename to desktop/src/lib/recentConnections.ts diff --git a/src/lib/settingsImport.test.ts b/desktop/src/lib/settingsImport.test.ts similarity index 100% rename from src/lib/settingsImport.test.ts rename to desktop/src/lib/settingsImport.test.ts diff --git a/src/lib/settingsImport.ts b/desktop/src/lib/settingsImport.ts similarity index 100% rename from src/lib/settingsImport.ts rename to desktop/src/lib/settingsImport.ts diff --git a/src/lib/sqlCompletion.test.ts b/desktop/src/lib/sqlCompletion.test.ts similarity index 100% rename from src/lib/sqlCompletion.test.ts rename to desktop/src/lib/sqlCompletion.test.ts diff --git a/src/lib/sqlCompletion.ts b/desktop/src/lib/sqlCompletion.ts similarity index 100% rename from src/lib/sqlCompletion.ts rename to desktop/src/lib/sqlCompletion.ts diff --git a/src/lib/types.test.ts b/desktop/src/lib/types.test.ts similarity index 100% rename from src/lib/types.test.ts rename to desktop/src/lib/types.test.ts diff --git a/src/lib/types.ts b/desktop/src/lib/types.ts similarity index 100% rename from src/lib/types.ts rename to desktop/src/lib/types.ts diff --git a/src/lib/uiConstants.test.ts b/desktop/src/lib/uiConstants.test.ts similarity index 100% rename from src/lib/uiConstants.test.ts rename to desktop/src/lib/uiConstants.test.ts diff --git a/src/lib/uiConstants.ts b/desktop/src/lib/uiConstants.ts similarity index 100% rename from src/lib/uiConstants.ts rename to desktop/src/lib/uiConstants.ts diff --git a/src/lib/utils.test.ts b/desktop/src/lib/utils.test.ts similarity index 100% rename from src/lib/utils.test.ts rename to desktop/src/lib/utils.test.ts diff --git a/src/lib/utils.ts b/desktop/src/lib/utils.ts similarity index 100% rename from src/lib/utils.ts rename to desktop/src/lib/utils.ts diff --git a/src/lib/version.test.ts b/desktop/src/lib/version.test.ts similarity index 100% rename from src/lib/version.test.ts rename to desktop/src/lib/version.test.ts diff --git a/src/lib/xlsx.test.ts b/desktop/src/lib/xlsx.test.ts similarity index 100% rename from src/lib/xlsx.test.ts rename to desktop/src/lib/xlsx.test.ts diff --git a/src/lib/xlsx.ts b/desktop/src/lib/xlsx.ts similarity index 100% rename from src/lib/xlsx.ts rename to desktop/src/lib/xlsx.ts diff --git a/src/main.tsx b/desktop/src/main.tsx similarity index 100% rename from src/main.tsx rename to desktop/src/main.tsx diff --git a/src/stores/backupStore.ts b/desktop/src/stores/backupStore.ts similarity index 100% rename from src/stores/backupStore.ts rename to desktop/src/stores/backupStore.ts diff --git a/src/stores/connectionStore.test.ts b/desktop/src/stores/connectionStore.test.ts similarity index 100% rename from src/stores/connectionStore.test.ts rename to desktop/src/stores/connectionStore.test.ts diff --git a/src/stores/connectionStore.ts b/desktop/src/stores/connectionStore.ts similarity index 100% rename from src/stores/connectionStore.ts rename to desktop/src/stores/connectionStore.ts diff --git a/src/stores/dbViewerStore.test.ts b/desktop/src/stores/dbViewerStore.test.ts similarity index 100% rename from src/stores/dbViewerStore.test.ts rename to desktop/src/stores/dbViewerStore.test.ts diff --git a/src/stores/dbViewerStore.ts b/desktop/src/stores/dbViewerStore.ts similarity index 100% rename from src/stores/dbViewerStore.ts rename to desktop/src/stores/dbViewerStore.ts diff --git a/src/stores/notificationStore.ts b/desktop/src/stores/notificationStore.ts similarity index 100% rename from src/stores/notificationStore.ts rename to desktop/src/stores/notificationStore.ts diff --git a/src/stores/queryStore.test.ts b/desktop/src/stores/queryStore.test.ts similarity index 100% rename from src/stores/queryStore.test.ts rename to desktop/src/stores/queryStore.test.ts diff --git a/src/stores/queryStore.ts b/desktop/src/stores/queryStore.ts similarity index 100% rename from src/stores/queryStore.ts rename to desktop/src/stores/queryStore.ts diff --git a/src/stores/settingsStore.test.ts b/desktop/src/stores/settingsStore.test.ts similarity index 100% rename from src/stores/settingsStore.test.ts rename to desktop/src/stores/settingsStore.test.ts diff --git a/src/stores/settingsStore.ts b/desktop/src/stores/settingsStore.ts similarity index 100% rename from src/stores/settingsStore.ts rename to desktop/src/stores/settingsStore.ts diff --git a/src/stores/uiStore.test.ts b/desktop/src/stores/uiStore.test.ts similarity index 100% rename from src/stores/uiStore.test.ts rename to desktop/src/stores/uiStore.test.ts diff --git a/src/stores/uiStore.ts b/desktop/src/stores/uiStore.ts similarity index 100% rename from src/stores/uiStore.ts rename to desktop/src/stores/uiStore.ts diff --git a/src/test/bun-dom.ts b/desktop/src/test/bun-dom.ts similarity index 100% rename from src/test/bun-dom.ts rename to desktop/src/test/bun-dom.ts diff --git a/src/test/bun-setup.ts b/desktop/src/test/bun-setup.ts similarity index 100% rename from src/test/bun-setup.ts rename to desktop/src/test/bun-setup.ts diff --git a/src/test/jsdom.d.ts b/desktop/src/test/jsdom.d.ts similarity index 100% rename from src/test/jsdom.d.ts rename to desktop/src/test/jsdom.d.ts diff --git a/src/test/setup.ts b/desktop/src/test/setup.ts similarity index 100% rename from src/test/setup.ts rename to desktop/src/test/setup.ts diff --git a/src/test/smoke.test.tsx b/desktop/src/test/smoke.test.tsx similarity index 100% rename from src/test/smoke.test.tsx rename to desktop/src/test/smoke.test.tsx diff --git a/src/vite-env.d.ts b/desktop/src/vite-env.d.ts similarity index 100% rename from src/vite-env.d.ts rename to desktop/src/vite-env.d.ts diff --git a/tsconfig.json b/desktop/tsconfig.json similarity index 100% rename from tsconfig.json rename to desktop/tsconfig.json diff --git a/tsconfig.node.json b/desktop/tsconfig.node.json similarity index 100% rename from tsconfig.node.json rename to desktop/tsconfig.node.json diff --git a/vite.config.ts b/desktop/vite.config.ts similarity index 100% rename from vite.config.ts rename to desktop/vite.config.ts diff --git a/vitest.config.ts b/desktop/vitest.config.ts similarity index 100% rename from vitest.config.ts rename to desktop/vitest.config.ts diff --git a/package.json b/package.json index a3c9f71..6ff9c54 100644 --- a/package.json +++ b/package.json @@ -1,57 +1,13 @@ { - "name": "gridline", - "private": true, - "version": "0.7.10", - "description": "An open-source, high-performance database GUI client for PostgreSQL and beyond", - "type": "module", - "scripts": { - "test": "vitest run", - "test:watch": "vitest", - "dev": "vite", - "tauri:dev": "tauri dev", - "build": "tsc && vite build", - "preview": "vite preview", - "tauri": "tauri" - }, - "dependencies": { - "@dnd-kit/core": "^6.3.1", - "@dnd-kit/sortable": "^10.0.0", - "@dnd-kit/utilities": "^3.2.2", - "@fontsource/outfit": "^5.3.0", - "@fontsource/space-mono": "^5.3.0", - "@monaco-editor/react": "^4.7.0", - "@tailwindcss/vite": "^4.3.3", - "@tanstack/react-virtual": "^3.14.8", - "@tauri-apps/api": "^2", - "@tauri-apps/plugin-dialog": "^2.7.2", - "@tauri-apps/plugin-fs": "^2.5.1", - "@tauri-apps/plugin-opener": "^2", - "@xyflow/react": "^12.11.2", - "dagre": "^0.8.5", - "fflate": "^0.8.3", - "html-to-image": "^1.11.13", - "lucide-react": "^1.26.0", - "monaco-editor": "^0.56.0", - "motion": "^12.42.2", - "react": "^19.1.0", - "react-dom": "^19.1.0", - "simple-icons": "^16.27.1", - "sql-formatter": "^15.8.2", - "tauri-plugin-keyring-store-api": "^0.2.0", - "zustand": "^5.0.14" - }, - "devDependencies": { - "@tauri-apps/cli": "^2", - "@testing-library/jest-dom": "^7.0.0", - "@testing-library/react": "^16.3.2", - "@testing-library/user-event": "^14.6.1", - "@types/dagre": "^0.7.54", - "@types/react": "^19.1.8", - "@types/react-dom": "^19.1.6", - "@vitejs/plugin-react": "^4.6.0", - "jsdom": "^29.1.1", - "typescript": "~5.8.3", - "vite": "^7.0.4", - "vitest": "^4.1.10" - } + "name": "gridline", + "private": true, + "version": "0.7.10", + "workspaces": ["desktop", "www"], + "scripts": { + "dev:desktop": "bun run --filter gridline-desktop dev", + "tauri:dev": "bun run --filter gridline-desktop tauri:dev", + "dev:www": "bun run --filter gridline-www dev", + "build:www": "bun run --filter gridline-www build", + "test": "bun run --filter gridline-desktop test" + } } diff --git a/www/.gitignore b/www/.gitignore new file mode 100644 index 0000000..16d54bb --- /dev/null +++ b/www/.gitignore @@ -0,0 +1,24 @@ +# build output +dist/ +# generated types +.astro/ + +# dependencies +node_modules/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store + +# jetbrains setting folder +.idea/ diff --git a/www/AGENTS.md b/www/AGENTS.md new file mode 100644 index 0000000..c5ff429 --- /dev/null +++ b/www/AGENTS.md @@ -0,0 +1,22 @@ +## Development + +When starting the dev server, use background mode: + +``` +astro dev --background +``` + +Manage the background server with `astro dev stop`, `astro dev status`, and `astro dev logs`. + +## Documentation + +Full documentation: https://docs.astro.build + +Consult these guides before working on related tasks: + +- [Adding pages, dynamic routes, or middleware](https://docs.astro.build/en/guides/routing/) +- [Working with Astro components](https://docs.astro.build/en/basics/astro-components/) +- [Using React, Vue, Svelte, or other framework components](https://docs.astro.build/en/guides/framework-components/) +- [Adding or managing content](https://docs.astro.build/en/guides/content-collections/) +- [Adding styles or using Tailwind](https://docs.astro.build/en/guides/styling/) +- [Supporting multiple languages](https://docs.astro.build/en/guides/internationalization/) diff --git a/www/CLAUDE.md b/www/CLAUDE.md new file mode 120000 index 0000000..47dc3e3 --- /dev/null +++ b/www/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file diff --git a/www/README.md b/www/README.md new file mode 100644 index 0000000..4ced80a --- /dev/null +++ b/www/README.md @@ -0,0 +1,43 @@ +# Astro Starter Kit: Minimal + +```sh +bun create astro@latest -- --template minimal +``` + +> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! + +## 🚀 Project Structure + +Inside of your Astro project, you'll see the following folders and files: + +```text +/ +├── public/ +├── src/ +│ └── pages/ +│ └── index.astro +└── package.json +``` + +Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. + +There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. + +Any static assets, like images, can be placed in the `public/` directory. + +## 🧞 Commands + +All commands are run from the root of the project, from a terminal: + +| Command | Action | +| :------------------------ | :----------------------------------------------- | +| `bun install` | Installs dependencies | +| `bun dev` | Starts local dev server at `localhost:4321` | +| `bun build` | Build your production site to `./dist/` | +| `bun preview` | Preview your build locally, before deploying | +| `bun astro ...` | Run CLI commands like `astro add`, `astro check` | +| `bun astro -- --help` | Get help using the Astro CLI | + +## 👀 Want to learn more? + +Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). diff --git a/www/astro.config.mjs b/www/astro.config.mjs new file mode 100644 index 0000000..e5876dd --- /dev/null +++ b/www/astro.config.mjs @@ -0,0 +1,10 @@ +// @ts-check +import { defineConfig } from 'astro/config'; +import tailwindcss from '@tailwindcss/vite'; + +// https://astro.build/config +export default defineConfig({ + vite: { + plugins: [tailwindcss()], + }, +}); diff --git a/www/package.json b/www/package.json new file mode 100644 index 0000000..3bc6ce6 --- /dev/null +++ b/www/package.json @@ -0,0 +1,20 @@ +{ + "name": "gridline-www", + "private": true, + "type": "module", + "version": "0.0.1", + "engines": { + "node": ">=22.12.0" + }, + "scripts": { + "dev": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "astro": "^7.2.2", + "@tailwindcss/vite": "^4.3.3", + "tailwindcss": "^4.3.3" + } +} \ No newline at end of file diff --git a/www/public/favicon.ico b/www/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7f48a94d16071d6c8d06478c7458ab12e675019c GIT binary patch literal 655 zcmV;A0&x9_P)Rl-XF(A`bsas&GH{e7U1}Ri zJr5jR8B2*Jd6$=$AqgTM2o2FV$WZ9|#jJ3mmpEs{jB0ps@*Kxv}=RB|IJih8Z&fqwCG`%bN0000#bW%=J zQ=IH#a_&L{B{_6Lu_3m>0bMN%+@aOmN_3G~H^8EGi>+bXO=;-|Z`uFnf==AdP z{Oj-S=ltmI=<4`LcLE*&009F@L_t(|+I`d4ZUZ3@1<*Uo7H^LoCw6-8z4wsbd;b4l zA}zMFtOw2mLX6O5Mgl}(5P=uOM4%=tnuHiuAp%(G<c=npm$Fz%eL + + + diff --git a/www/src/pages/index.astro b/www/src/pages/index.astro new file mode 100644 index 0000000..3617998 --- /dev/null +++ b/www/src/pages/index.astro @@ -0,0 +1,17 @@ +--- +import "../styles/global.css"; +--- + + + + + + + + + Astro + + +

Astro

+ + diff --git a/www/src/styles/global.css b/www/src/styles/global.css new file mode 100644 index 0000000..f1d8c73 --- /dev/null +++ b/www/src/styles/global.css @@ -0,0 +1 @@ +@import "tailwindcss"; diff --git a/www/tsconfig.json b/www/tsconfig.json new file mode 100644 index 0000000..8bf91d3 --- /dev/null +++ b/www/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "astro/tsconfigs/strict", + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"] +}