2023-11-29 17:10:26 +00:00
/* eslint-disable no-restricted-globals, no-restricted-syntax */
import {
translateToNewGQLCollection ,
translateToNewRESTCollection ,
} from "@hoppscotch/data"
import { watchDebounced } from "@vueuse/core"
import { TestContainer } from "dioc/testing"
import { cloneDeep } from "lodash-es"
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
import superjson from "superjson"
import { afterAll , beforeEach , describe , expect , it , vi } from "vitest"
2023-11-29 17:10:26 +00:00
import { MQTTRequest $ , setMQTTRequest } from "~/newstore/MQTTSession"
import { SSERequest $ , setSSERequest } from "~/newstore/SSESession"
import { SIORequest $ , setSIORequest } from "~/newstore/SocketIOSession"
import { WSRequest $ , setWSRequest } from "~/newstore/WebSocketSession"
import {
graphqlCollectionStore ,
restCollectionStore ,
setGraphqlCollections ,
setRESTCollections ,
} from "~/newstore/collections"
import {
addGlobalEnvVariable ,
environments $ ,
globalEnv $ ,
replaceEnvironments ,
selectedEnvironmentIndex $ ,
setGlobalEnvVariables ,
setSelectedEnvironmentIndex ,
} from "~/newstore/environments"
import {
graphqlHistoryStore ,
restHistoryStore ,
setGraphqlHistoryEntries ,
setRESTHistoryEntries ,
translateToNewGQLHistory ,
translateToNewRESTHistory ,
} from "~/newstore/history"
import { bulkApplyLocalState , localStateStore } from "~/newstore/localstate"
import {
applySetting ,
bulkApplySettings ,
performSettingsDataMigrations ,
settingsStore ,
} from "~/newstore/settings"
import { GQLTabService } from "~/services/tab/graphql"
import { RESTTabService } from "~/services/tab/rest"
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
import {
PersistenceService ,
STORE_KEYS ,
STORE_NAMESPACE ,
} from "../../persistence"
2023-11-29 17:10:26 +00:00
import {
ENVIRONMENTS_MOCK ,
GLOBAL_ENV_MOCK ,
GQL_COLLECTIONS_MOCK ,
GQL_HISTORY_MOCK ,
GQL_TAB_STATE_MOCK ,
MQTT_REQUEST_MOCK ,
REST_COLLECTIONS_MOCK ,
REST_HISTORY_MOCK ,
REST_TAB_STATE_MOCK ,
2024-02-08 16:28:42 +00:00
SECRET_ENVIRONMENTS_MOCK ,
2023-11-29 17:10:26 +00:00
SELECTED_ENV_INDEX_MOCK ,
SOCKET_IO_REQUEST_MOCK ,
SSE_REQUEST_MOCK ,
VUEX_DATA_MOCK ,
WEBSOCKET_REQUEST_MOCK ,
} from "./__mocks__"
2024-02-08 16:28:42 +00:00
import { SecretEnvironmentService } from "~/services/secret-environment.service"
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
import { getKernelMode , initKernel } from "@hoppscotch/kernel"
import { Store } from "~/kernel"
initKernel ( getKernelMode ( ) )
2023-11-29 17:10:26 +00:00
vi . mock ( "~/modules/i18n" , ( ) = > {
return {
__esModule : true ,
getI18n : vi.fn ( ) . mockImplementation ( ( ) = > ( ) = > "test" ) ,
}
} )
// Define modules that are shared across methods here
vi . mock ( "@vueuse/core" , async ( importOriginal ) = > {
const actualModule : Record < string , unknown > = await importOriginal ( )
return {
. . . actualModule ,
watchDebounced : vi.fn ( ) ,
}
} )
vi . mock ( "~/newstore/environments" , ( ) = > {
return {
addGlobalEnvVariable : vi.fn ( ) ,
setGlobalEnvVariables : vi.fn ( ) ,
replaceEnvironments : vi.fn ( ) ,
setSelectedEnvironmentIndex : vi.fn ( ) ,
environments $ : {
subscribe : vi.fn ( ) ,
} ,
globalEnv $ : {
subscribe : vi.fn ( ) ,
} ,
selectedEnvironmentIndex $ : {
subscribe : vi.fn ( ) ,
} ,
}
} )
vi . mock ( "~/newstore/settings" , ( ) = > {
return {
applySetting : vi.fn ( ) ,
}
} )
const toastErrorFn = vi . fn ( )
vi . mock ( "~/composables/toast" , ( ) = > {
return {
useToast : ( ) = > ( { error : toastErrorFn } ) ,
}
} )
/ * *
* Helper functions
* /
const spyOnGetItem = ( ) = > vi . spyOn ( Storage . prototype , "getItem" )
const spyOnRemoveItem = ( ) = > vi . spyOn ( Storage . prototype , "removeItem" )
const spyOnSetItem = ( ) = > vi . spyOn ( Storage . prototype , "setItem" )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const schemaVersionKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . SCHEMA_VERSION } `
const getStoreItem = async ( key : string ) = > {
const storedData = window . localStorage . getItem ( key )
if ( ! storedData ) return
const parsedData = superjson . parse < { data : string } > ( storedData )
return JSON . stringify ( parsedData . data )
}
const setStoreItem = async < T > ( key : string , value : T ) = > {
const storedData = {
schemaVersion : 1 ,
metadata : {
createdAt : new Date ( ) . toISOString ( ) ,
updatedAt : new Date ( ) . toISOString ( ) ,
namespace : STORE_NAMESPACE ,
encrypted : false ,
compressed : false ,
} ,
data : value ,
}
window . localStorage . setItem ( key , superjson . stringify ( storedData ) )
}
2023-11-29 17:10:26 +00:00
const bindPersistenceService = ( {
mockGQLTabService = false ,
mockRESTTabService = false ,
2024-02-08 16:28:42 +00:00
mockSecretEnvironmentsService = false ,
2023-11-29 17:10:26 +00:00
mock = { } ,
} : {
mockGQLTabService? : boolean
mockRESTTabService? : boolean
2024-02-08 16:28:42 +00:00
mockSecretEnvironmentsService? : boolean
2023-11-29 17:10:26 +00:00
mock? : Record < string , unknown >
} = { } ) = > {
const container = new TestContainer ( )
if ( mockGQLTabService ) {
container . bindMock ( GQLTabService , mock )
}
if ( mockRESTTabService ) {
container . bindMock ( RESTTabService , mock )
}
2024-02-08 16:28:42 +00:00
if ( mockSecretEnvironmentsService ) {
container . bindMock ( SecretEnvironmentService , mock )
}
2023-11-29 17:10:26 +00:00
container . bind ( PersistenceService )
const service = container . bind ( PersistenceService )
return service
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const invokeSetupLocalPersistence = async (
2023-11-29 17:10:26 +00:00
serviceBindMock? : Record < string , unknown >
) = > {
const service = bindPersistenceService ( serviceBindMock )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await service . setupFirst ( )
await service . setupLater ( )
2023-11-29 17:10:26 +00:00
}
describe ( "PersistenceService" , ( ) = > {
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
beforeEach ( ( ) = > {
window . localStorage . clear ( )
} )
beforeEach ( async ( ) = > {
await Store . remove ( STORE_NAMESPACE , STORE_KEYS . SCHEMA_VERSION )
} )
2023-11-29 17:10:26 +00:00
afterAll ( ( ) = > {
// Clear all mocks
vi . clearAllMocks ( )
// Restore the original implementation for any spied functions
vi . restoreAllMocks ( )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup" , ( ) = > {
2023-11-29 17:10:26 +00:00
describe ( "Check and migrate old settings" , ( ) = > {
// Set of keys read from localStorage across test cases
const bgColorKey = "BG_COLOR"
const nuxtColorModeKey = "nuxt-color-mode"
const selectedEnvIndexKey = "selectedEnvIndex"
const themeColorKey = "THEME_COLOR"
const vuexKey = "vuex"
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const storagePrefix = "persistence.v1:"
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
beforeEach ( ( ) = > {
window . localStorage . clear ( )
} )
beforeEach ( async ( ) = > {
await Store . remove ( STORE_NAMESPACE , STORE_KEYS . SCHEMA_VERSION )
} )
it ( ` sets the selected environment index type as "NO_ENV" in localStorage if the value retrieved for ${ selectedEnvIndexKey } is "-1" ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . setItem ( selectedEnvIndexKey , "-1" )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( selectedEnvIndexKey )
expect ( setItemSpy ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` ${ storagePrefix } selectedEnv ` ,
expect . stringContaining (
JSON . stringify ( {
type : "NO_ENV_SELECTED" ,
} )
)
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` sets the selected environment index type as "MY_ENV" in localStorage if the value retrieved for " ${ selectedEnvIndexKey } " is greater than "0" ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . setItem ( selectedEnvIndexKey , "1" )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( selectedEnvIndexKey )
expect ( setItemSpy ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` ${ storagePrefix } selectedEnv ` ,
expect . stringContaining (
JSON . stringify ( {
type : "MY_ENV" ,
index : 1 ,
} )
)
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` skips schema parsing and setting other properties if ${ vuexKey } read from localStorage is an empty entity ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . setItem ( vuexKey , JSON . stringify ( { } ) )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( vuexKey )
expect ( toastErrorFn ) . not . toHaveBeenCalled ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ storagePrefix } schema_version ` ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ vuexKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `vuex`
// `postwoman.settings.CURRENT_INTERCEPTOR_ID` -> `string`
const vuexData = {
. . . VUEX_DATA_MOCK ,
postwoman : {
. . . VUEX_DATA_MOCK . postwoman ,
settings : {
. . . VUEX_DATA_MOCK . postwoman . settings ,
CURRENT_INTERCEPTOR_ID : 1234 ,
} ,
} ,
}
window . localStorage . setItem ( vuexKey , JSON . stringify ( vuexData ) )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( vuexKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( vuexKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ vuexKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( vuexData ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ themeColorKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
const vuexData = cloneDeep ( VUEX_DATA_MOCK )
window . localStorage . setItem ( vuexKey , JSON . stringify ( vuexData ) )
const themeColorValue = "invalid-color"
window . localStorage . setItem ( themeColorKey , themeColorValue )
const getItemSpy = spyOnGetItem ( )
const removeItemSpy = spyOnRemoveItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( vuexKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( themeColorKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ themeColorKey } -backup ` ,
themeColorValue
)
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( applySetting ) . not . toHaveBeenCalledWith (
2023-11-29 17:10:26 +00:00
themeColorKey ,
themeColorValue
)
expect ( removeItemSpy ) . toHaveBeenCalledWith ( themeColorKey )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ nuxtColorModeKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
const vuexData = cloneDeep ( VUEX_DATA_MOCK )
window . localStorage . setItem ( vuexKey , JSON . stringify ( vuexData ) )
const nuxtColorModeValue = "invalid-color"
window . localStorage . setItem ( nuxtColorModeKey , nuxtColorModeValue )
const getItemSpy = spyOnGetItem ( )
const removeItemSpy = spyOnRemoveItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( vuexKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( nuxtColorModeKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ nuxtColorModeKey } -backup ` ,
nuxtColorModeValue
)
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( applySetting ) . not . toHaveBeenCalledWith (
2023-11-29 17:10:26 +00:00
bgColorKey ,
nuxtColorModeValue
)
expect ( removeItemSpy ) . toHaveBeenCalledWith ( nuxtColorModeKey )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` extracts individual properties from the key " ${ vuexKey } " and sets them in localStorage ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
const vuexData = cloneDeep ( VUEX_DATA_MOCK )
window . localStorage . setItem ( vuexKey , JSON . stringify ( vuexData ) )
const themeColor = "red"
const nuxtColorMode = "dark"
window . localStorage . setItem ( themeColorKey , themeColor )
window . localStorage . setItem ( nuxtColorModeKey , nuxtColorMode )
const getItemSpy = spyOnGetItem ( )
const removeItemSpy = spyOnRemoveItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( vuexKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( nuxtColorModeKey )
expect ( setItemSpy ) . not . toHaveBeenCalledWith (
` ${ nuxtColorModeKey } -backup `
)
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
// Check settings is saved with new format
2023-11-29 17:10:26 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` ${ storagePrefix } settings ` ,
expect . stringContaining ( JSON . stringify ( vuexData . postwoman . settings ) )
2023-11-29 17:10:26 +00:00
)
const { postwoman } = vuexData
delete postwoman . settings
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
// Check collections is saved with new format
2023-11-29 17:10:26 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` ${ storagePrefix } restCollections ` ,
expect . stringContaining ( JSON . stringify ( postwoman . collections ) )
2023-11-29 17:10:26 +00:00
)
delete postwoman . collections
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
// Check graphql collections is saved with new format
2023-11-29 17:10:26 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` ${ storagePrefix } gqlCollections ` ,
expect . stringContaining ( JSON . stringify ( postwoman . collectionsGraphql ) )
2023-11-29 17:10:26 +00:00
)
delete postwoman . collectionsGraphql
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
// Check environments is saved with new format
2023-11-29 17:10:26 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` ${ storagePrefix } environments ` ,
expect . stringContaining ( JSON . stringify ( postwoman . environments ) )
2023-11-29 17:10:26 +00:00
)
delete postwoman . environments
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
// Check theme color handling
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( themeColorKey )
expect ( applySetting ) . toHaveBeenCalledWith ( themeColorKey , themeColor )
expect ( removeItemSpy ) . toHaveBeenCalledWith ( themeColorKey )
expect ( window . localStorage . getItem ( themeColorKey ) ) . toBe ( null )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
// Check color mode handling
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( nuxtColorModeKey )
expect ( applySetting ) . toHaveBeenCalledWith ( bgColorKey , nuxtColorMode )
expect ( removeItemSpy ) . toHaveBeenCalledWith ( nuxtColorModeKey )
expect ( window . localStorage . getItem ( nuxtColorModeKey ) ) . toBe ( null )
} )
} )
describe ( "Setup local state persistence" , ( ) = > {
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const localStateKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . LOCAL_STATE } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ localStateKey } " read from localStorage has a value which is not a "string" or "undefined" ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
const localStateData = {
REMEMBERED_TEAM_ID : null ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( localStateKey , localStateData )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( localStateKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( localStateKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ localStateKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( localStateData ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ localStateKey } " read from localStorage has an invalid key ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
const localStateData = {
INVALID_KEY : null ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( localStateKey , localStateData )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( localStateKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( localStateKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ localStateKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( localStateData ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` schema parsing succeeds if there is no " ${ localStateKey } " key present in localStorage where the fallback of "{}" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( localStateKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( localStateKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( localStateKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` reads the value for " ${ localStateKey } " key from localStorage, invokes "bulkApplyLocalState" function if a value is yielded and subscribes to "localStateStore" updates ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
vi . mock ( "~/newstore/localstate" , ( ) = > {
return {
bulkApplyLocalState : vi.fn ( ) ,
localStateStore : {
subject $ : {
subscribe : vi.fn ( ) ,
} ,
} ,
}
} )
const localStateData = {
REMEMBERED_TEAM_ID : "test-id" ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( localStateKey , localStateData )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( localStateKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( localStateKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
expect ( bulkApplyLocalState ) . toHaveBeenCalledWith ( localStateData )
expect ( localStateStore . subject $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup settings persistence" , ( ) = > {
2023-11-29 17:10:26 +00:00
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const settingsKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . SETTINGS } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ settingsKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `settings`
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
// Expected values are booleans
2023-11-29 17:10:26 +00:00
const settings = {
EXTENSIONS_ENABLED : "true" ,
PROXY_ENABLED : "true" ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( settingsKey , settings )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( settingsKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( settingsKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ settingsKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( settings ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` schema parsing succeeds if there is no " ${ settingsKey } " key present in localStorage where the fallback of "{}" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( settingsKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( settingsKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( settingsKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` reads the value for " ${ settingsKey } " from localStorage, invokes "performSettingsDataMigrations" and "bulkApplySettings" functions as required and subscribes to "settingsStore" updates ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
vi . mock ( "~/newstore/settings" , async ( importOriginal ) = > {
const actualModule : Record < string , unknown > = await importOriginal ( )
return {
. . . actualModule ,
applySetting : vi.fn ( ) ,
bulkApplySettings : vi.fn ( ) ,
performSettingsDataMigrations : vi
. fn ( )
. mockImplementation ( ( data : any ) = > data ) ,
settingsStore : {
subject $ : {
subscribe : vi.fn ( ) ,
} ,
} ,
}
} )
const { settings } = VUEX_DATA_MOCK . postwoman
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( settingsKey , settings )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( settingsKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( settingsKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
expect ( performSettingsDataMigrations ) . toHaveBeenCalledWith ( settings )
expect ( bulkApplySettings ) . toHaveBeenCalledWith ( settings )
expect ( settingsStore . subject $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup history persistence" , ( ) = > {
2023-11-29 17:10:26 +00:00
// Keys read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const historyKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . REST_HISTORY } `
const graphqlHistoryKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . GQL_HISTORY } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ historyKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `history`
// `v` -> `number`
const restHistoryData = [ { . . . REST_HISTORY_MOCK , v : "1" } ]
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( historyKey , restHistoryData )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( historyKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( historyKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ historyKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( restHistoryData ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` REST history schema parsing succeeds if there is no " ${ historyKey } " key present in localStorage where the fallback of "[]" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( historyKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( historyKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( historyKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ graphqlHistoryKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `graphqlHistory`
// `v` -> `number`
const graphqlHistoryData = [ { . . . GQL_HISTORY_MOCK , v : "1" } ]
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( graphqlHistoryKey , graphqlHistoryData )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( graphqlHistoryKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( graphqlHistoryKey )
)
2023-11-29 17:10:26 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ graphqlHistoryKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( graphqlHistoryData ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` GQL history schema parsing succeeds if there is no " ${ graphqlHistoryKey } " key present in localStorage where the fallback of "[]" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( graphqlHistoryKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( graphqlHistoryKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( graphqlHistoryKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "reads REST and GQL history entries from localStorage, translates them to the new format, writes back the updates and subscribes to the respective store for updates" , async ( ) = > {
2023-11-29 17:10:26 +00:00
vi . mock ( "~/newstore/history" , ( ) = > {
return {
setGraphqlHistoryEntries : vi.fn ( ) ,
setRESTHistoryEntries : vi.fn ( ) ,
translateToNewGQLHistory : vi
. fn ( )
. mockImplementation ( ( data : any ) = > data ) ,
translateToNewRESTHistory : vi
. fn ( )
. mockImplementation ( ( data : any ) = > data ) ,
graphqlHistoryStore : {
subject $ : {
subscribe : vi.fn ( ) ,
} ,
} ,
restHistoryStore : {
subject $ : {
subscribe : vi.fn ( ) ,
} ,
} ,
}
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const restHistory = REST_HISTORY_MOCK
const gqlHistory = GQL_HISTORY_MOCK
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( historyKey , restHistory )
await setStoreItem ( graphqlHistoryKey , gqlHistory )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( historyKey )
expect ( getItemSpy ) . toHaveBeenCalledWith ( graphqlHistoryKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith (
historyKey ,
graphqlHistoryKey
)
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
expect ( translateToNewRESTHistory ) . toHaveBeenCalled ( )
expect ( translateToNewGQLHistory ) . toHaveBeenCalled ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setRESTHistoryEntries ) . toHaveBeenCalledWith ( restHistory )
expect ( setGraphqlHistoryEntries ) . toHaveBeenCalledWith ( gqlHistory )
2023-11-29 17:10:26 +00:00
expect ( restHistoryStore . subject $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
expect ( graphqlHistoryStore . subject $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup collections persistence" , ( ) = > {
2023-11-29 17:10:26 +00:00
// Keys read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const collectionsRESTKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . REST_COLLECTIONS } `
const collectionsGraphqlKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . GQL_COLLECTIONS } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ collectionsRESTKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `collections`
// `v` -> `number`
const restCollectionsData = [ { . . . REST_COLLECTIONS_MOCK , v : "1" } ]
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( collectionsRESTKey , restCollectionsData )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( collectionsRESTKey )
2023-11-29 17:10:26 +00:00
expect ( toastErrorFn ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( collectionsRESTKey )
2023-11-29 17:10:26 +00:00
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` ${ collectionsRESTKey } -backup ` ,
expect . stringContaining ( JSON . stringify ( restCollectionsData ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` REST collections schema parsing succeeds if there is no " ${ collectionsRESTKey } " key present in localStorage where the fallback of "[]" is chosen ` , async ( ) = > {
window . localStorage . removeItem ( collectionsRESTKey )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( collectionsRESTKey )
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( collectionsRESTKey )
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ collectionsGraphqlKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `collectionsGraphql`
// `v` -> `number`
const graphqlCollectionsData = [ { . . . GQL_COLLECTIONS_MOCK , v : "1" } ]
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( collectionsGraphqlKey , graphqlCollectionsData )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( collectionsGraphqlKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( collectionsGraphqlKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ collectionsGraphqlKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( graphqlCollectionsData ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` GQL collections schema parsing succeeds if there is no " ${ collectionsGraphqlKey } " key present in localStorage where the fallback of "[]" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( collectionsGraphqlKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( collectionsGraphqlKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( collectionsGraphqlKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "reads REST and GQL collection entries from localStorage, translates them to the new format, writes back the updates and subscribes to the respective store for updates" , async ( ) = > {
2023-11-29 17:10:26 +00:00
vi . mock ( "@hoppscotch/data" , async ( importOriginal ) = > {
const actualModule : Record < string , unknown > = await importOriginal ( )
return {
. . . actualModule ,
translateToNewGQLCollection : vi
. fn ( )
. mockImplementation ( ( data : any ) = > data ) ,
translateToNewRESTCollection : vi
. fn ( )
. mockImplementation ( ( data : any ) = > data ) ,
}
} )
vi . mock ( "~/newstore/collections" , ( ) = > {
return {
setGraphqlCollections : vi.fn ( ) ,
setRESTCollections : vi.fn ( ) ,
graphqlCollectionStore : {
subject $ : {
subscribe : vi.fn ( ) ,
} ,
} ,
restCollectionStore : {
subject $ : {
subscribe : vi.fn ( ) ,
} ,
} ,
}
} )
const restCollections = REST_COLLECTIONS_MOCK
const gqlCollections = GQL_COLLECTIONS_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( collectionsRESTKey , restCollections )
await setStoreItem ( collectionsGraphqlKey , gqlCollections )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( collectionsRESTKey )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( collectionsGraphqlKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
collectionsRESTKey ,
2023-11-29 17:10:26 +00:00
collectionsGraphqlKey
)
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
expect ( translateToNewGQLCollection ) . toHaveBeenCalled ( )
expect ( translateToNewRESTCollection ) . toHaveBeenCalled ( )
expect ( setRESTCollections ) . toHaveBeenCalledWith ( restCollections )
expect ( setGraphqlCollections ) . toHaveBeenCalledWith ( gqlCollections )
expect ( graphqlCollectionStore . subject $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
expect ( restCollectionStore . subject $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup environments persistence" , ( ) = > {
2023-11-29 17:10:26 +00:00
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const environmentsKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . ENVIRONMENTS } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ environmentsKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `environments`
const environments = [
// `entries` -> `variables`
2024-02-08 16:28:42 +00:00
{
v : 1 ,
id : "ENV_1" ,
name : "Test" ,
entries : [ { key : "test-key" , value : "test-value" , secret : false } ] ,
} ,
2023-11-29 17:10:26 +00:00
]
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( environmentsKey , environments )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( environmentsKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( environmentsKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ environmentsKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( environments ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` separates "globals" entries from " ${ environmentsKey } ", subscribes to the "environmentStore" and updates localStorage entries ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
const environments = cloneDeep ( ENVIRONMENTS_MOCK )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( environmentsKey , environments )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( environmentsKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( environmentsKey )
expect ( setItemSpy ) . not . toHaveBeenCalledWith ( ` ${ environmentsKey } -backup ` )
expect ( addGlobalEnvVariable ) . toHaveBeenCalledWith (
environments [ 0 ] . variables [ 0 ]
)
// Removes `globals` from environments
environments . splice ( 0 , 1 )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
2023-11-29 17:10:26 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
2023-11-29 17:10:26 +00:00
)
expect ( replaceEnvironments ) . toBeCalledWith ( environments )
expect ( environments $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup selected environment persistence" , ( ) = > {
2023-11-29 17:10:26 +00:00
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const selectedEnvIndexKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . SELECTED_ENV } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ selectedEnvIndexKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `selectedEnvIndex`
// `index` -> `number`
const selectedEnvIndex = { . . . SELECTED_ENV_INDEX_MOCK , index : "1" }
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( selectedEnvIndexKey , selectedEnvIndex )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( selectedEnvIndexKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( selectedEnvIndexKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ selectedEnvIndexKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( selectedEnvIndex ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` schema parsing succeeds if there is no " ${ selectedEnvIndexKey } " key present in localStorage where the fallback of "null" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( selectedEnvIndexKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( selectedEnvIndexKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( selectedEnvIndexKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` sets it to the store if there is a value associated with the " ${ selectedEnvIndexKey } " key in localStorage ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
const selectedEnvIndex = SELECTED_ENV_INDEX_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( selectedEnvIndexKey , selectedEnvIndex )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( selectedEnvIndexKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( selectedEnvIndexKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
expect ( setSelectedEnvironmentIndex ) . toHaveBeenCalledWith (
selectedEnvIndex
)
expect ( selectedEnvironmentIndex $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` sets it to "NO_ENV_SELECTED" if there is no value associated with the " ${ selectedEnvIndexKey } " in localStorage ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( selectedEnvIndexKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( selectedEnvIndexKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( selectedEnvIndexKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
expect ( setSelectedEnvironmentIndex ) . toHaveBeenCalledWith ( {
type : "NO_ENV_SELECTED" ,
} )
expect ( selectedEnvironmentIndex $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup secret Environments persistence" , ( ) = > {
2024-02-08 16:28:42 +00:00
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const secretEnvironmentsKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . SECRET_ENVIRONMENTS } `
2024-02-08 16:28:42 +00:00
const loadSecretEnvironmentsFromPersistedStateFn = vi . fn ( )
const mock = {
loadSecretEnvironmentsFromPersistedState :
loadSecretEnvironmentsFromPersistedStateFn ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ secretEnvironmentsKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2024-02-08 16:28:42 +00:00
// Invalid shape for `secretEnvironments`
const secretEnvironments = {
clryz7ir7002al4162bsj0azg : {
key : "ENV_KEY" ,
value : "ENV_VALUE" ,
} ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( secretEnvironmentsKey , secretEnvironments )
2024-02-08 16:28:42 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2024-02-08 16:28:42 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( secretEnvironmentsKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( secretEnvironmentsKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ secretEnvironmentsKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( secretEnvironments ) )
2024-02-08 16:28:42 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "loads secret environments from the state persisted in localStorage and sets watcher for `persistableSecretEnvironment`" , async ( ) = > {
2024-02-08 16:28:42 +00:00
const secretEnvironment = SECRET_ENVIRONMENTS_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( secretEnvironmentsKey , secretEnvironment )
2024-02-08 16:28:42 +00:00
const getItemSpy = spyOnGetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const setItemSpy = spyOnSetItem ( )
2024-02-08 16:28:42 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( {
2024-02-08 16:28:42 +00:00
mockSecretEnvironmentsService : true ,
mock ,
} )
expect ( getItemSpy ) . toHaveBeenCalledWith ( secretEnvironmentsKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( secretEnvironmentsKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2024-02-08 16:28:42 +00:00
expect ( loadSecretEnvironmentsFromPersistedStateFn ) . toHaveBeenCalledWith (
secretEnvironment
)
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( watchDebounced ) . toHaveBeenCalled ( )
2024-02-08 16:28:42 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` skips schema parsing and the loading of persisted secret environments if there is no " ${ secretEnvironmentsKey } " key present in localStorage ` , async ( ) = > {
2024-02-08 16:28:42 +00:00
window . localStorage . removeItem ( secretEnvironmentsKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( {
2024-02-08 16:28:42 +00:00
mockSecretEnvironmentsService : true ,
mock ,
} )
expect ( getItemSpy ) . toHaveBeenCalledWith ( secretEnvironmentsKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( secretEnvironmentsKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2024-02-08 16:28:42 +00:00
expect ( watchDebounced ) . toHaveBeenCalled ( )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "logs an error to the console on failing to parse persisted secret environments" , async ( ) = > {
await setStoreItem ( secretEnvironmentsKey , "invalid-json" )
2024-02-08 16:28:42 +00:00
console . error = vi . fn ( )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2024-02-08 16:28:42 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( secretEnvironmentsKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( secretEnvironmentsKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2024-02-08 16:28:42 +00:00
expect ( console . error ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` Failed parsing persisted SECRET_ENVIRONMENTS: ` ,
await getStoreItem ( secretEnvironmentsKey )
2024-02-08 16:28:42 +00:00
)
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
2024-02-08 16:28:42 +00:00
expect ( watchDebounced ) . toHaveBeenCalledWith (
expect . any ( Object ) ,
expect . any ( Function ) ,
{ debounce : 500 }
)
} )
} )
2023-11-29 17:10:26 +00:00
describe ( "setup WebSocket persistence" , ( ) = > {
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const wsRequestKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . WEBSOCKET } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ wsRequestKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `WebsocketRequest`
const request = {
. . . WEBSOCKET_REQUEST_MOCK ,
// `protocols` -> `[]`
protocols : { } ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( wsRequestKey , request )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( wsRequestKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( wsRequestKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ wsRequestKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( request ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` schema parsing succeeds if there is no " ${ wsRequestKey } " key present in localStorage where the fallback of "null" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( wsRequestKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( wsRequestKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( wsRequestKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` reads the " ${ wsRequestKey } " entry from localStorage, sets it as the new request, subscribes to the "WSSessionStore" and updates localStorage entries ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
vi . mock ( "~/newstore/WebSocketSession" , ( ) = > {
return {
setWSRequest : vi.fn ( ) ,
WSRequest $ : {
subscribe : vi.fn ( ) ,
} ,
}
} )
const request = WEBSOCKET_REQUEST_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( wsRequestKey , request )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( wsRequestKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( wsRequestKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
expect ( setWSRequest ) . toHaveBeenCalledWith ( request )
expect ( WSRequest $ . subscribe ) . toHaveBeenCalledWith ( expect . any ( Function ) )
} )
} )
describe ( "setup Socket.IO persistence" , ( ) = > {
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const sioRequestKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . SOCKETIO } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ sioRequestKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `SocketIORequest`
const request = {
. . . SOCKET_IO_REQUEST_MOCK ,
// `v` -> `version: v4`
v : "4" ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( sioRequestKey , request )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( sioRequestKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( sioRequestKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ sioRequestKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( request ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` schema parsing succeeds if there is no " ${ sioRequestKey } " key present in localStorage where the fallback of "null" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( sioRequestKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( sioRequestKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( sioRequestKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` reads the " ${ sioRequestKey } " entry from localStorage, sets it as the new request, subscribes to the "SIOSessionStore" and updates localStorage entries ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
vi . mock ( "~/newstore/SocketIOSession" , ( ) = > {
return {
setSIORequest : vi.fn ( ) ,
SIORequest $ : {
subscribe : vi.fn ( ) ,
} ,
}
} )
const request = SOCKET_IO_REQUEST_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( sioRequestKey , request )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( sioRequestKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( sioRequestKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
expect ( setSIORequest ) . toHaveBeenCalledWith ( request )
expect ( SIORequest $ . subscribe ) . toHaveBeenCalledWith ( expect . any ( Function ) )
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup SSE persistence" , ( ) = > {
2023-11-29 17:10:26 +00:00
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const sseRequestKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . SSE } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ sseRequestKey } " read from localStorage doesn't match the versioned schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `SSERequest`
const request = {
. . . SSE_REQUEST_MOCK ,
// `url` -> `endpoint`
url : "https://express-eventsource.herokuapp.com/events" ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( sseRequestKey , request )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( sseRequestKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( sseRequestKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ sseRequestKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( request ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` schema parsing succeeds if there is no " ${ sseRequestKey } " key present in localStorage where the fallback of "null" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( sseRequestKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( sseRequestKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( sseRequestKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` reads the " ${ sseRequestKey } " entry from localStorage, sets it as the new request, subscribes to the "SSESessionStore" and updates localStorage entries ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
vi . mock ( "~/newstore/SSESession" , ( ) = > {
return {
setSSERequest : vi.fn ( ) ,
SSERequest $ : {
subscribe : vi.fn ( ) ,
} ,
}
} )
const request = SSE_REQUEST_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( sseRequestKey , request )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( sseRequestKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( sseRequestKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
expect ( setSSERequest ) . toHaveBeenCalledWith ( request )
expect ( SSERequest $ . subscribe ) . toHaveBeenCalledWith ( expect . any ( Function ) )
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
describe ( "setup MQTT persistence" , ( ) = > {
2023-11-29 17:10:26 +00:00
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const mqttRequestKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . MQTT } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ mqttRequestKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `MQTTRequest`
const request = {
. . . MQTT_REQUEST_MOCK ,
// `url` -> `endpoint`
url : "wss://test.mosquitto.org:8081" ,
}
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( mqttRequestKey , request )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( mqttRequestKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( mqttRequestKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ mqttRequestKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( request ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` schema parsing succeeds if there is no " ${ mqttRequestKey } " key present in localStorage where the fallback of "null" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( mqttRequestKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( mqttRequestKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( mqttRequestKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` reads the ${ mqttRequestKey } " entry from localStorage, sets it as the new request, subscribes to the "MQTTSessionStore" and updates localStorage entries ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
vi . mock ( "~/newstore/MQTTSession" , ( ) = > {
return {
setMQTTRequest : vi.fn ( ) ,
MQTTRequest $ : {
subscribe : vi.fn ( ) ,
} ,
}
} )
const request = MQTT_REQUEST_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( mqttRequestKey , request )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( mqttRequestKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( mqttRequestKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
expect ( setMQTTRequest ) . toHaveBeenCalledWith ( request )
expect ( MQTTRequest $ . subscribe ) . toHaveBeenCalledWith (
expect . any ( Function )
)
} )
} )
describe ( "setup global environments persistence" , ( ) = > {
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const globalEnvKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . GLOBAL_ENV } `
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ globalEnvKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `globalEnv`
const globalEnv = [
{
// `key` -> `string`
key : 1 ,
2024-09-23 11:31:14 +00:00
value : "test-value" ,
2023-11-29 17:10:26 +00:00
} ,
]
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( globalEnvKey , globalEnv )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( globalEnvKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( globalEnvKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ globalEnvKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( globalEnv ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` schema parsing succeeds if there is no " ${ globalEnvKey } " key present in localStorage where the fallback of "[]" is chosen ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( globalEnvKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( globalEnvKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( globalEnvKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` reads the "globalEnv" entry from localStorage, dispatches the new value, subscribes to the "environmentsStore" and updates localStorage entries ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
const globalEnv = GLOBAL_ENV_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( globalEnvKey , globalEnv )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( globalEnvKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( globalEnvKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringContaining ( '"schemaVersion":1' )
)
2023-11-29 17:10:26 +00:00
expect ( setGlobalEnvVariables ) . toHaveBeenCalledWith ( globalEnv )
expect ( globalEnv $ . subscribe ) . toHaveBeenCalledWith ( expect . any ( Function ) )
} )
} )
describe ( "setup GQL tabs persistence" , ( ) = > {
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const gqlTabStateKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . GQL_TABS } `
2023-11-29 17:10:26 +00:00
const loadTabsFromPersistedStateFn = vi . fn ( )
const mock = { loadTabsFromPersistedState : loadTabsFromPersistedStateFn }
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ gqlTabStateKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `gqlTabState`
// `lastActiveTabID` -> `string`
const gqlTabState = { . . . GQL_TAB_STATE_MOCK , lastActiveTabID : 1234 }
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( gqlTabStateKey , gqlTabState )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( gqlTabStateKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( gqlTabStateKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ gqlTabStateKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( gqlTabState ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` skips schema parsing and the loading of persisted tabs if there is no " ${ gqlTabStateKey } " key present in localStorage ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( gqlTabStateKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( { mockGQLTabService : true , mock } )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( gqlTabStateKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( gqlTabStateKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
expect ( loadTabsFromPersistedStateFn ) . not . toHaveBeenCalled ( )
expect ( watchDebounced ) . toHaveBeenCalled ( )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "loads tabs from the state persisted in localStorage and sets watcher for `persistableTabState`" , async ( ) = > {
2023-11-29 17:10:26 +00:00
const tabState = GQL_TAB_STATE_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( gqlTabStateKey , tabState )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( { mockGQLTabService : true , mock } )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( gqlTabStateKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( gqlTabStateKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
expect ( loadTabsFromPersistedStateFn ) . toHaveBeenCalledWith ( tabState )
expect ( watchDebounced ) . toHaveBeenCalledWith (
expect . any ( Object ) ,
expect . any ( Function ) ,
{ debounce : 500 , deep : true }
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "logs an error to the console on failing to parse persisted gql tab state" , async ( ) = > {
await setStoreItem ( gqlTabStateKey , "invalid-json" )
2023-11-29 17:10:26 +00:00
console . error = vi . fn ( )
const getItemSpy = spyOnGetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( gqlTabStateKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( gqlTabStateKey )
expect ( console . error ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` Failed parsing persisted GQL_TABS: ` ,
await getStoreItem ( gqlTabStateKey )
2023-11-29 17:10:26 +00:00
)
expect ( watchDebounced ) . toHaveBeenCalledWith (
expect . any ( Object ) ,
expect . any ( Function ) ,
{ debounce : 500 , deep : true }
)
} )
} )
describe ( "setup REST tabs persistence" , ( ) = > {
// Key read from localStorage across test cases
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
const restTabStateKey = ` ${ STORE_NAMESPACE } : ${ STORE_KEYS . REST_TABS } `
2023-11-29 17:10:26 +00:00
const loadTabsFromPersistedStateFn = vi . fn ( )
const mock = { loadTabsFromPersistedState : loadTabsFromPersistedStateFn }
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` shows an error and sets the entry as a backup in localStorage if " ${ restTabStateKey } " read from localStorage doesn't match the schema ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
// Invalid shape for `restTabState`
// `lastActiveTabID` -> `string`
const restTabState = { . . . REST_TAB_STATE_MOCK , lastActiveTabID : 1234 }
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( restTabStateKey , restTabState )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( restTabStateKey )
expect ( toastErrorFn ) . toHaveBeenCalledWith (
expect . stringContaining ( restTabStateKey )
)
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ restTabStateKey } -backup ` ,
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect . stringContaining ( JSON . stringify ( restTabState ) )
2023-11-29 17:10:26 +00:00
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( ` skips schema parsing and the loading of persisted tabs if there is no " ${ restTabStateKey } " key present in localStorage ` , async ( ) = > {
2023-11-29 17:10:26 +00:00
window . localStorage . removeItem ( restTabStateKey )
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( { mockRESTTabService : true , mock } )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( restTabStateKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( restTabStateKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
expect ( loadTabsFromPersistedStateFn ) . not . toHaveBeenCalled ( )
expect ( watchDebounced ) . toHaveBeenCalled ( )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "loads tabs from the state persisted in localStorage and sets watcher for `persistableTabState`" , async ( ) = > {
2023-11-29 17:10:26 +00:00
const tabState = REST_TAB_STATE_MOCK
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await setStoreItem ( restTabStateKey , tabState )
2023-11-29 17:10:26 +00:00
const getItemSpy = spyOnGetItem ( )
const setItemSpy = spyOnSetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( { mockRESTTabService : true , mock } )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( restTabStateKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( restTabStateKey )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledTimes ( 1 )
expect ( setItemSpy ) . toHaveBeenCalledWith (
schemaVersionKey ,
expect . stringMatching ( /"schemaVersion":1/ )
)
2023-11-29 17:10:26 +00:00
expect ( loadTabsFromPersistedStateFn ) . toHaveBeenCalledWith ( tabState )
expect ( watchDebounced ) . toHaveBeenCalledWith (
expect . any ( Object ) ,
expect . any ( Function ) ,
{ debounce : 500 , deep : true }
)
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "logs an error to the console on failing to parse persisted rest tab state" , async ( ) = > {
await setStoreItem ( restTabStateKey , "invalid-json" )
2023-11-29 17:10:26 +00:00
console . error = vi . fn ( )
const getItemSpy = spyOnGetItem ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await invokeSetupLocalPersistence ( )
2023-11-29 17:10:26 +00:00
expect ( getItemSpy ) . toHaveBeenCalledWith ( restTabStateKey )
expect ( toastErrorFn ) . not . toHaveBeenCalledWith ( restTabStateKey )
expect ( console . error ) . toHaveBeenCalledWith (
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
` Failed parsing persisted REST_TABS: ` ,
await getStoreItem ( restTabStateKey )
2023-11-29 17:10:26 +00:00
)
expect ( watchDebounced ) . toHaveBeenCalledWith (
expect . any ( Object ) ,
expect . any ( Function ) ,
{ debounce : 500 , deep : true }
)
} )
} )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "`setLocalConfig` method sets a value in localStorage" , async ( ) = > {
2023-11-29 17:10:26 +00:00
const testKey = "test-key"
const testValue = "test-value"
const setItemSpy = spyOnSetItem ( )
const service = bindPersistenceService ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await service . setLocalConfig ( testKey , testValue )
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ STORE_NAMESPACE } : ${ testKey } ` ,
expect . stringContaining ( testValue )
)
2023-11-29 17:10:26 +00:00
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "`getLocalConfig` method gets a value from localStorage" , async ( ) = > {
2023-11-29 17:10:26 +00:00
const testKey = "test-key"
const testValue = "test-value"
const setItemSpy = spyOnSetItem ( )
const getItemSpy = spyOnGetItem ( )
const service = bindPersistenceService ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await service . setLocalConfig ( testKey , testValue )
const retrievedValue = await service . getLocalConfig ( testKey )
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ STORE_NAMESPACE } : ${ testKey } ` ,
expect . stringContaining ( testValue )
)
expect ( getItemSpy ) . toHaveBeenCalledWith ( ` ${ STORE_NAMESPACE } : ${ testKey } ` )
2023-11-29 17:10:26 +00:00
expect ( retrievedValue ) . toBe ( testValue )
} )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
it ( "`removeLocalConfig` method clears a value in localStorage" , async ( ) = > {
2023-11-29 17:10:26 +00:00
const testKey = "test-key"
const testValue = "test-value"
const setItemSpy = spyOnSetItem ( )
const removeItemSpy = spyOnRemoveItem ( )
const service = bindPersistenceService ( )
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
await service . setLocalConfig ( testKey , testValue )
await service . removeLocalConfig ( testKey )
2023-11-29 17:10:26 +00:00
feat: platform independent core and the new desktop app (#4684)
* feat(desktop): init
* feat(desktop): external app download and setup
* feat(desktop): offload app load to plugin system
* perf(desktop): add rdbms facade and caching layer
* feat: parallelize signing, shared trust, lru cache
* feat: webapp encoder + compressor + hasher server
* feat(desktop): app autoupdate with hashed loader
* feat(kernel): init `hoppscotch-kernel`
* feat(kernel): `io`
* feat(kernel): `network`
* feat(kernel): `network` - native interceptor
* feat(kernel): `network` - interceptor - rest
* feat(kernel): `network` - interceptor - graphql
* feat(kernel): `network` - interceptor - capabilities
* feat(kernel): `network` - interceptor - `FormData`
* feat(kernel): `network` - interceptor - `oauth2.0`
* feat(kernel): `store`
* feat(desktop): dragging, traffic light, plugin workspaces
* feat(kernel|wip): `store`
* feat(kernel): `network` - capabilities - with active
* feat(kernel|wip): `network` - interceptor - `proxy`
* feat(kernel|wip): `network` - relay ext
* feat(kernel): `network` - interceptor - `proxy`
* feat(kernel): `network` - interceptor - decoding
* feat(kernel): `network` - interceptor - Kernel Err
* feat(kernel): `network` - flow transformation
* feat(kernel): `network` - request status
* fix(desktop): repositioning traffic lights on fullscreen exit
* feat(kernel): `network` - interceptor - `agent`
* feat(kernel): `store` - track updates
* feat(kernel): `network` - interceptor - extension
* feat(kernel): `network` - updates as overrides
* feat(interceptor): pre-process request encoding
* fix(ui): mismatched extension button size/position
* feat(kernel): `network` - interceptor - `browser`
* feat(native): common certs componsable
* fix(kernel): interceptor selection store and json parse
* feat(kernel): `network` - consistent multipart encoding
* feat(kernel): `network` - interceptor - `OAuth2.0`
* feat(kernel): `network` - interceptor - cookie support
* feat(agent): registration list, log-sink, relay
* feat(kernel): `network` - interceptor subtitles
* feat(kernel): `store` - persist network settings
* fix(agent): encrypted ser/de certificate requests
* feat(kernel): `kernelInterceptor` spotlight service
* fix(kernel): gql introspection edge-case schema
* ref: conditionals for migrated components
* feat(kernel): `localaccess` capability via relay
* feat(kernel): `network` - explicit types and lint
* feat(kernel): `store` - isolate host and platform
* feat(kernel): `store` - persistence service
* fix(infra): whitelisted origins, non-std engines
* feat(desktop): impl deep-link callbacks
* feat(kernel): `auth`
* feat(kernel): `io` - event listeners
* feat(kernel): platform migration
* fix: dep `vue` import on Win 11
Fixes `error TS2305: Module '"vue"' has no exported member
'VueConstructor'.` arising from `splitpane` dependency.
* fix(webapp-server): platform independent res paths
* feat(desktop): auth and emit via embedded server
* feat(platform): host, csp and bundle compatibility
- Bundle name format for using as host
- Windows UI handler HWND casting and version detection
- CSP headers type handling in URI protocol
- Protocol whitelist in env config
* feat(desktop|wip): login flow with `auth-tokens`
feat(desktop|wip): typesafe auth
* feat(backend): `auth` token flow, gql/websocket
feat(desktop): working auth for gql
feat: gql client with refresh token
* feat(backend): `auth` token flow, authorization bearer
* fix(gen): qualifier clash when invalidating cache
* feat(common): coordinated initialization service
* fix(desktop): appload persistence in data json
* feat(desktop|wip): desktop icons and updater
* fix: typos in readme docs
* fix: docker ignore copying on windows
* fix: update `.lock` file after rebase
* fix: `persistenceService` setup in tests
* fix: remove old console logs
* fix: console error on invalid schema
Show console error if default value is used when loading invalid data from
local storage
* fix(test): `PersistenceService` methods
* fix(test): `PersistenceService` rest tab state
* fix(test): `PersistenceService` gql tab state
* fix(test): `PersistenceService` global env
* fix(test): `PersistenceService` mqtt request
* fix(test): `PersistenceService` sse request
* fix(test): `PersistenceService` socketio request
* fix(test): `PersistenceService` websocket request
* fix(test): `PersistenceService` secret environment
* fix(test): `PersistenceService` selected env
* fix(test): `PersistenceService` collections
* fix(test): `PersistenceService` environments
* fix(test): `PersistenceService` history
* fix(test): `PersistenceService` settings
* fix(test): `PersistenceService` migrations
* fix(test): `InspectionService` request inspector
* feat(desktop): button to clear bundle/key cache
This is useful when there are partial updates to the web app or bundle gen server
which haven't been correctly propagated when the app bundle was downloaded.
If the user were to change the self host instance without updating the
desktop app; which is possible albeit rarely under very certain circumstances,
desktop app will refuse to load the bundle, this is because the desktop app
cannot differentiate between partial updates vs incorrect bundle being hosted
since both will fail verification.
The button lets the user decide what should be the appropriate action,
clear the bundle and trust the hosted app
or make sure the app is built and hosted correctly.
* fix(desktop): enforce one version per instance
This was part of a leftover scaffolding from development.
* fix(desktop): bundle url not stored after download
* fix(desktop): stalling progress on updates
* fix(backend): helper to parse cookie into kv-pairs
* feat(desktop): launch session on working endpoints
* fix(common): preserve `auth` structure and default
* fix: loading native networking with kernel mode
* fix: fallback for unhandled response error
* fix: `urlencoded` content request processing
* feat: `interceptor` - error mapping for `browser`
* fix: backwards compatibility for `digest` auth
* fix: platform check for `initializationService`
* fix: `interceptor` - analytics `strategy` resolution
* fix: `interceptor` - check for `cookies` component
* fix: enable digest auth support for `native`
* test: `interceptor` - kernel interceptor
* fix(relay): `grantType` casing for OAuth2.0
* test(wip): kernel transformers
* fix(relay): auth headers discarding others
* fix(desktop): http version deserialization
* fix(common): `grantType` extractor, auth processor
* fix: `PersistenceService` - parsing edge cases
* fix(infra): post rebase fixup
* fix(web): component structure and lint
* fix(desktop): cohesive splash opener, scroll url section
* fix: explicit auto auth and docs on url auth
* fix(relay): special chars failing proxy auth
* fix: finer cert control setting option
* fix: post-rebase fixup
* feat(appload): ability to vendor pre-built bytes
* fix: avoid copying over `target` dir in containers
* fix: auth key missing in capability set
* fix(desktop): relax `refresh_token` requirement
This is to support Firebase token
* fix(desktop): normalization for Windows WebView
* feat(desktop): instance switcher and vendored app
* fix(desktop): merge artifacts and conflicts
* feat(desktop): instance switcher improvements
* fix: derive instance name from normalized name
* fix: pkg links, lints and UI edge cases
* feat(desktop): restore window state after relaunch
* fix(desktop): distinguish header for cloud/default
* fix: instance switcher in web mode
* fix: close dropdown on new instance modal
* fix: whitelist vendored app origin
* feat(desktop): platform parity - `collections`
* fix: history entries population desync
* fix(desktop): check for history storage status
* fix(desktop): safe parse `globalEnv`
* feat(desktop): platform parity - `environment`
* fix: use settings store for proxy url
* fix: lint, unused imports
* fix: proxy input enabled for other interceptors
* feat: reverse proxy for desktop app server
* fix: duplicate entries after connecting to sh
* fix: specify instance org qualified
* fix: remove debugging logs
* feat(desktop): enable `devtools` in release builds
* fix(desktop): prepend protocol validation edgecase
* feat(desktop): clear cache on removing instance
* fix: better response toast message
* fix: avoid reverse proxy for webapp server
* fix(desktop): ignore subpath in instance name
* feat: switcher ui/ux improvements
* feat: more switcher ui/ux improvements
* feat(server): specify bundle version at build time
* fix(desktop): missing migration as rebase artifact
* fix: minor switcher ui/ux improvement
* fix: rebase artifacts
* fix: consolidated toast on success
* fix: missing i18n strings
* fix(desktop): handle drag and drop fe side
* feat: confirmation modal on instance removal
* chore: minor UI update
* chore: minor UI changes
* fix: gql connection partial refactor
* fix: resolve merge artifacts
* chore: prod lint
* feat(desktop): better desktop app update ux
* fix: broken gql connection.ts
---------
Co-authored-by: nivedin <nivedinp@gmail.com>
Co-authored-by: Andrew Bastin <andrewbastin.k@gmail.com>
2025-02-27 18:31:25 +00:00
expect ( setItemSpy ) . toHaveBeenCalledWith (
` ${ STORE_NAMESPACE } : ${ testKey } ` ,
expect . stringContaining ( testValue )
)
expect ( removeItemSpy ) . toHaveBeenCalledWith ( ` ${ STORE_NAMESPACE } : ${ testKey } ` )
2023-11-29 17:10:26 +00:00
} )
} )