From f834cc87d3fc8aba7e7aba0580a910be4505df40 Mon Sep 17 00:00:00 2001 From: Shreyas Date: Tue, 25 Nov 2025 18:09:18 +0530 Subject: [PATCH] feat(desktop): portable phase-3: instance manager (#5421) Co-authored-by: James George <25279263+jamesgeorge007@users.noreply.github.com> --- devenv.lock | 46 +- devenv.nix | 11 +- devenv.yaml | 23 +- packages/hoppscotch-common/.eslintrc.js | 8 +- packages/hoppscotch-common/locales/en.json | 23 +- .../src/components/app/Header.vue | 53 +- .../src/components/instance/Switcher.vue | 756 ++- .../hoppscotch-common/src/kernel/store.ts | 59 +- .../hoppscotch-common/src/platform/index.ts | 1 + .../src/platform/instance.ts | 226 +- .../src/services/instance-switcher.service.ts | 508 -- packages/hoppscotch-desktop/.gitignore | 4 + .../tauri-plugin-appload/dist-js/index.js | 13 +- .../examples/tauri-app/src/main.js | 8 +- .../examples/tauri-app/vite.config.js | 18 +- .../tauri-plugin-appload/guest-js/index.ts | 16 +- .../permissions/schemas/schema.json | 10 + .../tauri-plugin-appload/rollup.config.js | 26 +- .../tauri-plugin-appload/src/kernel.js | 8 +- .../tauri-plugin-relay/dist-js/index.js | 36 +- .../tauri-plugin-relay/guest-js/index.ts | 315 +- .../tauri-plugin-relay/rollup.config.js | 26 +- .../hoppscotch-desktop/src-tauri/src/lib.rs | 5 + .../src-tauri/src/updater.rs | 323 +- .../src/composables/useAppInitialization.ts | 286 + packages/hoppscotch-desktop/src/main.ts | 4 + packages/hoppscotch-desktop/src/router.ts | 21 +- .../instance-store-migration.service.ts | 431 ++ .../src/services/persistence.service.ts | 262 + .../src/services/updater.client.ts | 73 + .../hoppscotch-desktop/src/types/index.ts | 5 + .../src/views/PortableHome.vue | 281 + .../src/views/StandardHome.vue | 179 + .../src/views/shared/AppHeader.vue | 21 + .../src/views/shared/ErrorState.vue | 30 + .../src/views/shared/LoadingState.vue | 14 + .../src/views/shared/UpdateFlow.vue | 111 + .../src/views/shared/VersionInfo.vue | 15 + packages/hoppscotch-selfhost-desktop/.envrc | 3 - .../hoppscotch-selfhost-desktop/.gitignore | 39 - .../.vscode/extensions.json | 7 - .../hoppscotch-selfhost-desktop/README.md | 16 - .../hoppscotch-selfhost-desktop/devenv.lock | 153 - .../hoppscotch-selfhost-desktop/devenv.nix | 92 - .../hoppscotch-selfhost-desktop/devenv.yaml | 23 - .../gql-codegen.yml | 18 - .../hoppscotch-selfhost-desktop/index.html | 26 - packages/hoppscotch-selfhost-desktop/meta.ts | 118 - .../hoppscotch-selfhost-desktop/package.json | 86 - .../postcss.config.cjs | 8 - .../public/tauri.svg | 6 - .../public/vite.svg | 1 - .../src-tauri/.gitignore | 4 - .../src-tauri/Cargo.lock | 4752 ----------------- .../src-tauri/Cargo.toml | 58 - .../src-tauri/Info.plist | 19 - .../src-tauri/build.rs | 3 - .../src-tauri/icons/128x128.png | Bin 11476 -> 0 bytes .../src-tauri/icons/128x128@2x.png | Bin 31362 -> 0 bytes .../src-tauri/icons/32x32.png | Bin 1805 -> 0 bytes .../src-tauri/icons/Square107x107Logo.png | Bin 8935 -> 0 bytes .../src-tauri/icons/Square142x142Logo.png | Bin 13201 -> 0 bytes .../src-tauri/icons/Square150x150Logo.png | Bin 14097 -> 0 bytes .../src-tauri/icons/Square284x284Logo.png | Bin 37488 -> 0 bytes .../src-tauri/icons/Square30x30Logo.png | Bin 1635 -> 0 bytes .../src-tauri/icons/Square310x310Logo.png | Bin 44310 -> 0 bytes .../src-tauri/icons/Square44x44Logo.png | Bin 2836 -> 0 bytes .../src-tauri/icons/Square71x71Logo.png | Bin 5197 -> 0 bytes .../src-tauri/icons/Square89x89Logo.png | Bin 6990 -> 0 bytes .../src-tauri/icons/StoreLogo.png | Bin 3280 -> 0 bytes .../src-tauri/icons/icon.icns | Bin 871155 -> 0 bytes .../src-tauri/icons/icon.ico | Bin 45084 -> 0 bytes .../src-tauri/icons/icon.png | Bin 121349 -> 0 bytes .../src-tauri/src/interceptor.rs | 90 - .../src-tauri/src/interop/mod.rs | 1 - .../src-tauri/src/interop/startup/error.rs | 53 - .../src-tauri/src/interop/startup/init.rs | 186 - .../src-tauri/src/interop/startup/mod.rs | 7 - .../src-tauri/src/mac/mod.rs | 1 - .../src-tauri/src/mac/window.rs | 390 -- .../src-tauri/src/main.rs | 80 - .../src-tauri/src/win/mod.rs | 1 - .../src-tauri/src/win/window.rs | 95 - .../src-tauri/tauri.conf.json | 70 - .../mutations/ClearGlobalEnvironments.graphql | 5 - .../CreateGQLChildUserCollection.graphql | 14 - .../CreateGQLRootUserCollection.graphql | 6 - .../mutations/CreateGQLUserRequest.graphql | 13 - .../CreateRESTChildUserCollection.graphql | 14 - .../CreateRESTRootUserCollection.graphql | 6 - .../mutations/CreateRESTUserRequest.graphql | 13 - .../mutations/CreateUserEnvironment.graphql | 9 - .../CreateUserGlobalEnvironment.graphql | 5 - .../api/mutations/CreateUserHistory.graphql | 13 - .../api/mutations/CreateUserSettings.graphql | 5 - .../mutations/DeleteAllUserHistory.graphql | 6 - .../mutations/DeleteUserCollection.graphql | 3 - .../mutations/DeleteUserEnvironments.graphql | 3 - .../api/mutations/DeleteUserRequest.graphql | 3 - .../mutations/DuplicateUserCollection.graphql | 3 - .../ImportUserCollectionsFromJSON.graphql | 11 - .../api/mutations/MoveUserCollection.graphql | 8 - .../src/api/mutations/MoveUserRequest.graphql | 15 - .../RemoveRequestFromHistory.graphql | 5 - .../mutations/RenameUserCollection.graphql | 8 - .../api/mutations/SortUserCollections.graphql | 9 - .../mutations/ToggleHistoryStarStatus.graphql | 5 - .../mutations/UpdateGQLUserRequest.graphql | 5 - .../mutations/UpdateRESTUserRequest.graphql | 7 - .../mutations/UpdateUserCollection.graphql | 15 - .../UpdateUserCollectionOrder.graphql | 6 - .../mutations/UpdateUserEnvironment.graphql | 9 - .../api/mutations/UpdateUserSettings.graphql | 5 - .../api/queries/CreateUserEnvironment.graphql | 9 - .../ExportUserCollectionsToJSON.graphql | 12 - .../api/queries/GetGlobalEnvironments.graphql | 11 - .../api/queries/GetRestUserHistory.graphql | 23 - .../queries/GetRootGQLUserCollections.graphql | 13 - .../api/queries/GetUserEnvironments.graphql | 11 - .../queries/GetUserRootCollections.graphql | 13 - .../src/api/queries/GetUserSettings.graphql | 8 - .../api/queries/IsUserHistoryEnabled.graphql | 6 - .../UserChildCollectionSorted.graphql | 6 - .../UserCollectionCreated.graphql | 11 - .../UserCollectionDuplicated.graphql | 15 - .../subscriptions/UserCollectionMoved.graphql | 9 - .../UserCollectionOrderUpdated.graphql | 17 - .../UserCollectionRemoved.graphql | 6 - .../UserCollectionUpdated.graphql | 10 - .../UserEnvironmentCreated.graphql | 9 - .../UserEnvironmentDeleted.graphql | 5 - .../UserEnvironmentUpdated.graphql | 9 - .../UserHistoryAllDeleted.graphql | 3 - .../subscriptions/UserHistoryCreated.graphql | 10 - .../subscriptions/UserHistoryDeleted.graphql | 6 - .../UserHistoryDeletedMany.graphql | 6 - .../UserHistoryStoreStatusChanged.graphql | 3 - .../subscriptions/UserHistoryUpdated.graphql | 10 - .../subscriptions/UserRequestCreated.graphql | 9 - .../subscriptions/UserRequestDeleted.graphql | 9 - .../subscriptions/UserRequestMoved.graphql | 13 - .../subscriptions/UserRequestUpdated.graphql | 9 - .../UserRootCollectionsSorted.graphql | 6 - .../subscriptions/UserSettingsUpdated.graphql | 6 - .../modals/NativeCACertificates.vue | 167 - .../modals/NativeClientCertificates.vue | 153 - .../modals/NativeClientCertsAdd.vue | 281 - .../components/settings/NativeInterceptor.vue | 100 - .../src/interop.ts | 41 - .../src/lib/sync/index.ts | 102 - .../src/lib/sync/mapper.ts | 42 - .../hoppscotch-selfhost-desktop/src/main.ts | 130 - .../src/platform/auth.ts | 428 -- .../platform/collections/collections.api.ts | 397 -- .../collections/collections.platform.ts | 1147 ---- .../platform/collections/collections.sync.ts | 701 --- .../collections/gqlCollections.sync.ts | 380 -- .../platform/environments/environments.api.ts | 117 - .../environments/environments.platform.ts | 240 - .../environments/environments.sync.ts | 121 - .../src/platform/history/history.api.ts | 127 - .../src/platform/history/history.platform.ts | 337 -- .../src/platform/history/history.sync.ts | 100 - .../src/platform/interceptors/native/index.ts | 499 -- .../interceptors/native/persisted-data.ts | 85 - .../src/platform/io.ts | 28 - .../src/platform/settings/settings.api.ts | 51 - .../platform/settings/settings.platform.ts | 88 - .../src/platform/settings/settings.sync.ts | 27 - .../src/vite-env.d.ts | 7 - .../tailwind.config.ts | 30 - .../hoppscotch-selfhost-desktop/tsconfig.json | 25 - .../tsconfig.node.json | 9 - .../vite.config.ts | 204 - .../hoppscotch-selfhost-web/.eslintrc.cjs | 8 +- packages/hoppscotch-selfhost-web/package.json | 1 + .../postcss.config.cjs | 4 +- .../src/components/Login.vue | 2 +- .../src/kernel/index.ts | 13 + .../hoppscotch-selfhost-web/src/kernel/io.ts | 34 + .../src/kernel/relay.ts | 26 + .../src/kernel/store.ts | 114 + packages/hoppscotch-selfhost-web/src/main.ts | 242 +- .../src/platform/auth/desktop/api.ts | 4 +- .../src/platform/auth/desktop/index.ts | 2 +- .../src/platform/auth/web/api.ts | 4 +- .../src/platform/collections/desktop/api.ts | 4 +- .../desktop/gqlCollections.sync.ts | 7 +- .../src/platform/collections/desktop/index.ts | 6 +- .../src/platform/collections/desktop/sync.ts | 6 +- .../src/platform/collections/web/api.ts | 4 +- .../collections/web/gqlCollections.sync.ts | 7 +- .../src/platform/collections/web/index.ts | 6 +- .../src/platform/collections/web/sync.ts | 6 +- .../src/platform/environments/desktop/api.ts | 4 +- .../platform/environments/desktop/index.ts | 6 +- .../src/platform/environments/desktop/sync.ts | 5 +- .../src/platform/environments/web/api.ts | 4 +- .../src/platform/environments/web/index.ts | 6 +- .../src/platform/environments/web/sync.ts | 6 +- .../src/platform/history/desktop/api.ts | 4 +- .../src/platform/history/desktop/index.ts | 6 +- .../src/platform/history/desktop/sync.ts | 6 +- .../src/platform/history/web/api.ts | 4 +- .../src/platform/history/web/index.ts | 13 +- .../src/platform/history/web/sync.ts | 4 +- .../src/platform/infra/infra.platform.ts | 2 +- .../src/platform/instance/desktop/index.ts | 1311 +++++ .../src/platform/instance/web/index.ts | 120 + .../src/platform/settings/desktop/api.ts | 4 +- .../src/platform/settings/desktop/index.ts | 4 +- .../src/platform/settings/desktop/sync.ts | 2 +- .../src/platform/settings/web/api.ts | 4 +- .../src/platform/settings/web/index.ts | 4 +- .../src/platform/settings/web/sync.ts | 2 +- .../hoppscotch-selfhost-web/tsconfig.json | 11 +- .../hoppscotch-selfhost-web/vite.config.ts | 24 +- pnpm-lock.yaml | 2482 +-------- 218 files changed, 5101 insertions(+), 16784 deletions(-) delete mode 100644 packages/hoppscotch-common/src/services/instance-switcher.service.ts create mode 100644 packages/hoppscotch-desktop/src/composables/useAppInitialization.ts create mode 100644 packages/hoppscotch-desktop/src/services/instance-store-migration.service.ts create mode 100644 packages/hoppscotch-desktop/src/services/persistence.service.ts create mode 100644 packages/hoppscotch-desktop/src/services/updater.client.ts create mode 100644 packages/hoppscotch-desktop/src/views/PortableHome.vue create mode 100644 packages/hoppscotch-desktop/src/views/StandardHome.vue create mode 100644 packages/hoppscotch-desktop/src/views/shared/AppHeader.vue create mode 100644 packages/hoppscotch-desktop/src/views/shared/ErrorState.vue create mode 100644 packages/hoppscotch-desktop/src/views/shared/LoadingState.vue create mode 100644 packages/hoppscotch-desktop/src/views/shared/UpdateFlow.vue create mode 100644 packages/hoppscotch-desktop/src/views/shared/VersionInfo.vue delete mode 100644 packages/hoppscotch-selfhost-desktop/.envrc delete mode 100644 packages/hoppscotch-selfhost-desktop/.gitignore delete mode 100644 packages/hoppscotch-selfhost-desktop/.vscode/extensions.json delete mode 100644 packages/hoppscotch-selfhost-desktop/README.md delete mode 100644 packages/hoppscotch-selfhost-desktop/devenv.lock delete mode 100644 packages/hoppscotch-selfhost-desktop/devenv.nix delete mode 100644 packages/hoppscotch-selfhost-desktop/devenv.yaml delete mode 100644 packages/hoppscotch-selfhost-desktop/gql-codegen.yml delete mode 100644 packages/hoppscotch-selfhost-desktop/index.html delete mode 100644 packages/hoppscotch-selfhost-desktop/meta.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/package.json delete mode 100644 packages/hoppscotch-selfhost-desktop/postcss.config.cjs delete mode 100644 packages/hoppscotch-selfhost-desktop/public/tauri.svg delete mode 100644 packages/hoppscotch-selfhost-desktop/public/vite.svg delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/.gitignore delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/Cargo.lock delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/Cargo.toml delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/Info.plist delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/build.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/128x128.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/128x128@2x.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/32x32.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square107x107Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square142x142Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square150x150Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square284x284Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square30x30Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square310x310Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square44x44Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square71x71Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/Square89x89Logo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/StoreLogo.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/icon.icns delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/icon.ico delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/icons/icon.png delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/interceptor.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/interop/mod.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/interop/startup/error.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/interop/startup/init.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/interop/startup/mod.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/mac/mod.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/mac/window.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/main.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/win/mod.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/src/win/window.rs delete mode 100644 packages/hoppscotch-selfhost-desktop/src-tauri/tauri.conf.json delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/ClearGlobalEnvironments.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateGQLChildUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateGQLRootUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateGQLUserRequest.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateRESTChildUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateRESTRootUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateRESTUserRequest.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateUserEnvironment.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateUserGlobalEnvironment.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateUserHistory.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/CreateUserSettings.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/DeleteAllUserHistory.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/DeleteUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/DeleteUserEnvironments.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/DeleteUserRequest.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/DuplicateUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/ImportUserCollectionsFromJSON.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/MoveUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/MoveUserRequest.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/RemoveRequestFromHistory.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/RenameUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/SortUserCollections.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/ToggleHistoryStarStatus.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/UpdateGQLUserRequest.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/UpdateRESTUserRequest.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/UpdateUserCollection.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/UpdateUserCollectionOrder.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/UpdateUserEnvironment.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/mutations/UpdateUserSettings.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/CreateUserEnvironment.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/ExportUserCollectionsToJSON.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/GetGlobalEnvironments.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/GetRestUserHistory.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/GetRootGQLUserCollections.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/GetUserEnvironments.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/GetUserRootCollections.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/GetUserSettings.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/queries/IsUserHistoryEnabled.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserChildCollectionSorted.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserCollectionCreated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserCollectionDuplicated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserCollectionMoved.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserCollectionOrderUpdated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserCollectionRemoved.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserCollectionUpdated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserEnvironmentCreated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserEnvironmentDeleted.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserEnvironmentUpdated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserHistoryAllDeleted.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserHistoryCreated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserHistoryDeleted.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserHistoryDeletedMany.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserHistoryStoreStatusChanged.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserHistoryUpdated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserRequestCreated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserRequestDeleted.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserRequestMoved.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserRequestUpdated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserRootCollectionsSorted.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/api/subscriptions/UserSettingsUpdated.graphql delete mode 100644 packages/hoppscotch-selfhost-desktop/src/components/modals/NativeCACertificates.vue delete mode 100644 packages/hoppscotch-selfhost-desktop/src/components/modals/NativeClientCertificates.vue delete mode 100644 packages/hoppscotch-selfhost-desktop/src/components/modals/NativeClientCertsAdd.vue delete mode 100644 packages/hoppscotch-selfhost-desktop/src/components/settings/NativeInterceptor.vue delete mode 100644 packages/hoppscotch-selfhost-desktop/src/interop.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/lib/sync/index.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/lib/sync/mapper.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/main.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/auth.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.api.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.sync.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/collections/gqlCollections.sync.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/environments/environments.api.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/environments/environments.platform.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/environments/environments.sync.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/history/history.api.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/history/history.platform.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/history/history.sync.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/interceptors/native/index.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/interceptors/native/persisted-data.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/io.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/settings/settings.api.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/settings/settings.platform.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/platform/settings/settings.sync.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/src/vite-env.d.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/tailwind.config.ts delete mode 100644 packages/hoppscotch-selfhost-desktop/tsconfig.json delete mode 100644 packages/hoppscotch-selfhost-desktop/tsconfig.node.json delete mode 100644 packages/hoppscotch-selfhost-desktop/vite.config.ts create mode 100644 packages/hoppscotch-selfhost-web/src/kernel/index.ts create mode 100644 packages/hoppscotch-selfhost-web/src/kernel/io.ts create mode 100644 packages/hoppscotch-selfhost-web/src/kernel/relay.ts create mode 100644 packages/hoppscotch-selfhost-web/src/kernel/store.ts create mode 100644 packages/hoppscotch-selfhost-web/src/platform/instance/desktop/index.ts create mode 100644 packages/hoppscotch-selfhost-web/src/platform/instance/web/index.ts diff --git a/devenv.lock b/devenv.lock index b22ef4ed..1307a977 100644 --- a/devenv.lock +++ b/devenv.lock @@ -3,10 +3,10 @@ "devenv": { "locked": { "dir": "src/modules", - "lastModified": 1738772960, + "lastModified": 1761922975, "owner": "cachix", "repo": "devenv", - "rev": "7f756cdf3fbb01cab243dcec4de0ca94e6aaa2af", + "rev": "c9f0b47815a4895fadac87812de8a4de27e0ace1", "type": "github" }, "original": { @@ -24,10 +24,10 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1738737274, + "lastModified": 1762238689, "owner": "nix-community", "repo": "fenix", - "rev": "f82de9980822f3b1efcf54944939b1d514386827", + "rev": "0f94d1e67ea9ef983a9b5caf9c14bc52ae2eac44", "type": "github" }, "original": { @@ -39,10 +39,10 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1733328505, + "lastModified": 1761588595, "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "type": "github" }, "original": { @@ -60,10 +60,10 @@ ] }, "locked": { - "lastModified": 1737465171, + "lastModified": 1760663237, "owner": "cachix", "repo": "git-hooks.nix", - "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", "type": "github" }, "original": { @@ -94,10 +94,10 @@ }, "nixpkgs": { "locked": { - "lastModified": 1738734093, + "lastModified": 1762156382, "owner": "NixOS", "repo": "nixpkgs", - "rev": "5b2753b0356d1c951d7a3ef1d086ba5a71fff43c", + "rev": "7241bcbb4f099a66aafca120d37c65e8dda32717", "type": "github" }, "original": { @@ -115,16 +115,17 @@ "nixpkgs": "nixpkgs", "pre-commit-hooks": [ "git-hooks" - ] + ], + "rust-overlay": "rust-overlay" } }, "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1738754241, + "lastModified": 1762201112, "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "ca47cddc31ae76a05e8709ed4aec805c5ef741d3", + "rev": "132d3338f4526b5c71046e5dc7ddf800e279daf4", "type": "github" }, "original": { @@ -133,6 +134,25 @@ "repo": "rust-analyzer", "type": "github" } + }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1762223900, + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "cfe1598d69a42a5edb204770e71b8df77efef2c3", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } } }, "root": "root", diff --git a/devenv.nix b/devenv.nix index 5b0b64ba..f9ff690b 100644 --- a/devenv.nix +++ b/devenv.nix @@ -7,12 +7,7 @@ let else pkgs; darwinPackages = with pkgs; [ - darwin.apple_sdk.frameworks.Security - darwin.apple_sdk.frameworks.CoreServices - darwin.apple_sdk.frameworks.CoreFoundation - darwin.apple_sdk.frameworks.Foundation - darwin.apple_sdk.frameworks.AppKit - darwin.apple_sdk.frameworks.WebKit + apple-sdk ]; linuxPackages = with pkgs; [ @@ -172,6 +167,10 @@ in { npm.enable = true; pnpm.enable = true; }; + go = { + enable = true; + package = pkgs.go_1_24; + }; rust = { enable = true; channel = "nightly"; diff --git a/devenv.yaml b/devenv.yaml index 9ee9ba34..d0169201 100644 --- a/devenv.yaml +++ b/devenv.yaml @@ -1,23 +1,14 @@ -# yaml-language-server: $schema=https://devenv.sh/devenv.schema.json inputs: - # For NodeJS-22 and above - nixpkgs: - url: github:NixOS/nixpkgs/nixpkgs-unstable - # nixpkgs: - # url: github:cachix/devenv-nixpkgs/rolling fenix: url: github:nix-community/fenix inputs: nixpkgs: follows: nixpkgs - -# If you're using non-OSS software, you can set allowUnfree to true. + nixpkgs: + url: github:NixOS/nixpkgs/nixpkgs-unstable + rust-overlay: + url: github:oxalica/rust-overlay + inputs: + nixpkgs: + follows: nixpkgs allowUnfree: true - -# If you're willing to use a package that's vulnerable -# permittedInsecurePackages: -# - "openssl-1.1.1w" - -# If you have more than one devenv you can merge them -#imports: -# - ./backend diff --git a/packages/hoppscotch-common/.eslintrc.js b/packages/hoppscotch-common/.eslintrc.js index f69f0f80..63fdd568 100644 --- a/packages/hoppscotch-common/.eslintrc.js +++ b/packages/hoppscotch-common/.eslintrc.js @@ -47,8 +47,14 @@ module.exports = { "vue/no-side-effects-in-computed-properties": "off", "import/no-named-as-default": "off", "import/no-named-as-default-member": "off", - "@typescript-eslint/no-unused-vars": + "@typescript-eslint/no-unused-vars": [ process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn", + { + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + caughtErrorsIgnorePattern: "^_", + }, + ], "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-explicit-any": "off", "import/default": "off", diff --git a/packages/hoppscotch-common/locales/en.json b/packages/hoppscotch-common/locales/en.json index 22a6bf95..c14f3b4d 100644 --- a/packages/hoppscotch-common/locales/en.json +++ b/packages/hoppscotch-common/locales/en.json @@ -877,7 +877,28 @@ "add_new": "Add a new instance", "confirm_remove": "Confirm Removal", "remove_warning": "Are you sure you want to remove this instance?", - "clear_cached_bundles": "Clear cached bundles" + "clear_cached_bundles": "Clear cached bundles", + "opening_add_modal": "Opening add instance dialog", + "closed_add_modal": "Add instance dialog closed", + "cancelled_removal": "Instance removal cancelled", + "connection_cancelled": "Connection cancelled by pre-connect validation", + "post_connect_completed": "Post-connection setup completed", + "connecting": "Connecting to instance...", + "confirm_removal": "Confirm removal of instance", + "removal_cancelled": "Instance removal cancelled by pre-removal validation", + "post_remove_completed": "Post-removal cleanup completed", + "removing": "Removing instance...", + "clearing_cache": "Clearing cache...", + "initialized": "Instance switcher initialized", + "connecting_state": "Establishing connection...", + "connected_state": "Successfully connected to instance", + "disconnected_state": "Disconnected from instance", + "stream_error": "Connection state monitoring failed", + "recent_instances_error": "Failed to load recent instances", + "instance_changed": "Switched to instance", + "current_instance_error": "Failed to track current instance", + "not_available": "Instance switching is not available", + "cleanup_completed": "Instance switcher cleanup completed" }, "inspections": { "description": "Inspect possible errors", diff --git a/packages/hoppscotch-common/src/components/app/Header.vue b/packages/hoppscotch-common/src/components/app/Header.vue index 11ac0b69..a1766f20 100644 --- a/packages/hoppscotch-common/src/components/app/Header.vue +++ b/packages/hoppscotch-common/src/components/app/Header.vue @@ -15,30 +15,21 @@ >
-
- - {{ instanceDisplayName }} - - - {{ platform.instance.displayConfig.description }} - -
+ + {{ + platform.instance.getCurrentInstance?.()?.displayName || + "Hoppscotch" + }} +