* first pass
* package lock
* provided ruleset is not an object
* works
* support multiple extensions
* fix test
* lower coverage threshold
* remove unused test
* remove only
* test to rename a request
* added Delete Request test
* added filter by folder test
* added Pin a request test
* minor improvements
Co-authored-by: Filipe Freire <livrofubia@gmail.com>
* WIP to open properties of a folder
* FIx Open properties of a folder test
* fix open propertites of a collection
Co-authored-by: Filipe Freire <livrofubia@gmail.com>
* Create a wrapper Tab component
* Used the new Tabs component and remove the button from children from grpc-tabbed-messages
* Used the new Tabs component and remove the button from children from grpc-request-pane
* Used the new Tabs component and remove the button from children from response-pane
* Used the new Tabs component and remove the button from children from request-pane
* Used the new Tabs component and remove the button from children from git-repository-settings-modal
* Used the new Tabs component and remove the button from children from settings-modal
* Used the new Tabs component and remove the button from children from workspace-settings-modal
* Used the new Tabs component and remove the button from children from generate-config-modal
* Used the new Tabs component and remove the button from children from cookie-modify-modal
* Used the new Tabs component and remove the button from children from markdown-editor
* Use react-aria tabs instead of react-tabs
* Delete react-tabs dependency
* Use new tabs component and replace markdown-editor with styled-component instead of using less css
* Created query editor component with styled-components instead of using less css
* Update index.css
* Use new tabs component into cookie-modify-modal
* Use new tabs in general-config-modal
* Use new tabs in settings-modal
* Use new tabs in workspace-settings-modal
* Use new tabs in git-repository-settings-modal
* Use new tabs in request-pane
* Use new tabs in response-pane
* Use new tabs in grpc-request-pane
* Use new tabs in grpc-tabbed-messages
* Use new geury editor component and new tab implementation in websocket-request-pane
* Use new tabs in websockets-response-pane
* Change the package-lock.json file
* Remove className props from TabItemProps
* Fix rendering issue with tabs children and move action buttons above the nested tabs
* Added nested tabs option
* Added nested styling
* Made the grpc-tabbed-messages to be nested tabs
* Fix issue with styles into tablist
* Move less styles to styles component
* Fixed style issue with borders when tab is selected
* Fix styling issues with nested tabs
* Added aria labels for all tabs
* Fixed tab tests
* Fix issue with plugings test
* Remove the outline from selected tab
* Fix scrolling issue with some tab panels
* Remove outline from activity toggle
* Add failing test for the Declarative config and kong kubernetes
* Fixed issue with generate config modal into the panel
* docs and ws request body styling
Co-authored-by: Filipe Freire <livrofubia@gmail.com>
Co-authored-by: gatzjames <jamesgatzos@gmail.com>
* [INS-2077] Dashboard PreRelease tests
* Add create,rename,delete project test
* Add test for filter in the dashboard
* Rename/duplicate/delete collection & design tests
* Initial exploration multiple test projects
* Replace duplicate scenario with one to be filled in
* Simplify number of playwright project configs
* Fix testMatch setting on playwright config
* Edit github actions to distinguish between CI and Release runs
* [INS-1697] Create WebSocket Request (#5041)
* add fail safe
Co-authored-by: Mark Kim <mark.kim@konghq.com>
* Websockets IPC API (#5044)
* add url to ws-request model
* fix webSocketRequest typo and add url
* add websocket api and expose it through preload ipc
* add typings
Co-authored-by: Mark Kim <mark.kim@konghq.com>
* [INS-1701] Create/Close Websocket Connection (#5046)
* add websocket action bar and its components
* remove comments
* clean up
* reflect on the electron api
* remove unused files
* import name change
* add styling
* remove commet
* add suggested changes
* remove default value
* Add WebSocketRequest to sidebar and update types (#5048)
* [INS-1700] Delete Websocket Request (#5055)
* add websocket actions dropdown
* add actions to websocket request in sidebar
* [INS-1703] Display WebSocket messages - first pass (#5054)
* Update event types to improve inference
* Update websocket response pane to fetch/subscribe and display the events
* [INS-1693] Add WS echo server for smoke tests (#5050)
Co-authored-by: Dimitri Mitropoulos <dimitrimitropoulos@gmail.com>
* fix sidebar unit tests (#5064)
* [INS-1776] adds `ws` dependency explicitly (#5066)
* [INS-1702] WebSocket Send Message (#5052)
* add initial changes for websocket message
* add abstraction for db operation and websocket operation
* remove console
* add rename
* add basic testing
* add basic testing
* add unit tests
* add form event type
* add comments
* disallow exporting context directly
* add suggested changes
* refresh the query
* using useDeepCompareEffect
* rename variable
* add mock
* clean up
* clean up
* correct the file name
* add some changes
* removing nedb-context and its hooks
* remove database changes for event sending
* [INS-1778] Fix Global Module Typing Issue (#5065)
* fix typings
* add jest import
* [INS-1703] View WebSocket Messages (#5074)
* save changes
* add styles and move files around
* remove unused code
* clean up some components
* add clean up
* add timestamp component
* add unit tests
* add case
* add style changes
* [INS-1786] WebSocket headers tab (#5080)
* first ui pass
* extract and wire up bulk editor
* raise ready state, move send
* add upgrade header debug logs
* can pass header to websocket upgrade
* implement readOnly headers
* add upgrade event and sent headers
* clean up
* fill out http upgrade into the event
* change upgrade message
* read only headers while connected
* remove upgrade event
* revert bulk editor change
* fix header editable toggle
* add nunjucks todos
* improve readOnly implementation
* disable codemirror/nunjucks for websocket headers
* take calculated headers out of the data model
* move hardcoded default headers down the tree
* fix request url rendering issue
* removed spammy warning
* clarify prop name
* refine pair typing
* change placeholder
* remove readOnly header property
* fix readOnly header layout
* Update packages/insomnia/src/ui/components/dropdowns/websocket-request-actions-dropdown.tsx
* Show HTTP->WS upgrade (handshake) (#5091)
* first pass as event
* add handshake ui
* add timeline tab
* simplify ResponseTimelineViewer
* transform res debug modal to change timeline props
* decouple timeline fetching from timeline component
* timeline ui pass
* record headers in request and response models
* can view timeline history
* write timeline to file
* some timeline
* can persist event logs
* put interface beside usage
* add note
* add event log history
* remove table event row
* tidying up
* make ws colors match
* enable multiple open connections
* close open connections at app exit
* remove old test
* Update packages/insomnia/src/models/request-version.ts
* fix type
* default readystate
* fix preview css scroll
Co-authored-by: James Gatz <jamesgatzos@gmail.com>
* INS-1788: Add control flow to improve responsiveness. (#5094)
* INS-1788: Add control flow for responsiveness.
This prevents events from flooding the UI thread entirely.
* Add additional code comments.
* fixup: webSocketEvent -> webSocketEvents
* display response headers (#5102)
* Show errors in timeline (#5100)
* remove unused context provider
* show errors in event tab
* updates timeline with message and close
* clean up
* show errors in timeline
* fix WebSocket capitalisation
* make timeline reader specific to ws
* write outbound messages to the timeline
* fix type
* Make the head row sticky in the events table (#5103)
* Add client certificate support to websocket connections (#5112)
* [INS-1810] close connection on response change (#5104)
* close ws connection when response is changed
* add delete logic for the queue mapg
* set error response to active response
* useRef for CodeEditor
* extract closeRequest
* use requestId to eliminate inconsistencies
* refactor extract clean up methods
* timeline feedback
* change type annotation
* fix type
* Revert "use requestId to eliminate inconsistencies"
This reverts commit 98335a927e.
* [INS-1803] show cookie tab in response pane (#5105)
* hard code sending and storing to true
* make tab naming consistent
* hard code cookie settings to false
* fix headers isDisabled bug
* [INS-1805] Add Auth Header Tab (#5115)
* add minimal change to the auth flow
* add disable state
* adding dropdown disable
* simplify reducer
* fix lint
* [INS-1839] Rename tab Header everywhere (#5119)
* can import/export websocket requests (#5122)
* use responseId for timeline name (#5124)
* add react-virtual to virtualize the event log view (#5126)
* [INS-1833] Include Auth Header in Headers mapping for WebSocket Connection (#5120)
* add auth to the header
* remove console log
* remove unneeded async
* add success redirect logic to websocket server
* add unexpected-response handler
* remove digest auth (#5129)
* remove auth header and outbound message timeline (#5130)
* [INS-1840] Add Connected Status Label and Extras (#5131)
* add status related changes
* text label change
* WebSocket ipc typing proposal (#5125)
* make consistent with main bridge
* rename webSocket
* remove deviated mock
* use consistent arrow function defintions
* Update packages/insomnia/src/main/network/websocket.ts
* Set the environment for websocket responses (#5132)
* first pass (#5123)
* [INS-1843] Add more checks to WS smoke test (#5138)
* Fix failing websocket smoke test
* Add remaining websocket smoke server endopints to fixtures
* Add checks for basic-auth, bearer and redirect
* Rm assertion
* can select payload type (#5133)
* Implement nunjucks rendering for websocket urls, authentication, headers and urls (#5134)
* fix websocket->webSocket (#5142)
* bug fix (#5144)
* INS-1844: Implement basic event view functionality. (#5146)
* INS-1844: Implement basic event view functionality
* CSS fix to align Preview button with tab buttons.
* Reverse the order of WebSocket events (#5148)
* Reverse the event log order in the view and subscribe to messages after the latest
* WebSocket response model (#5147)
* init websocket-response model
* add websocket response model
* remove unused timeline getter
* remove unused functionality from the ws-response model
* can select and save payload message and preview mode (#5143)
* [INS-1838] Add Empty State (#5140)
* add empty state
* use the empty state pane
Co-authored-by: gatzjames <jamesgatzos@gmail.com>
* Bug/stabilise-ws-fetch-method (#5152)
* just poll
* remove cts and eventlog channel
* Fix/nitpicks (#5156)
* remove unused names
* fix copypasta icon
* ensure all subcompnent drop state on request change
* move empty state to response pane
* add websockets to quick switch (#5159)
* [INS-1800] Remove value validity check in the WebSocket headers (#5154)
* remove valid value check in the headers
* add header name filtering
Co-authored-by: Dimitri Mitropoulos <dimitrimitropoulos@gmail.com>
Co-authored-by: Mark Kim <mark.kim@konghq.com>
Co-authored-by: Filipe Freire <livrofubia@gmail.com>
Co-authored-by: Jack Kavanagh <jackkav@gmail.com>
Co-authored-by: John Chadwick <86682572+johnwchadwick@users.noreply.github.com>
Co-authored-by: David Marby <david@dmarby.se>
* Enable noImplicitAny.
* extracts PreviewMode
* Update packages/insomnia/src/network/certificate-url-parse.ts
* Add missing type.
* un-any-ifies some of the modal onDone callbacks
easy enough.
* few more onDone, but the async ones this time
* Get rid of jsonlint any.
* adds noImplicitAny support for insomnia-smoke-test
* fixes playwright type error
* avoid full @ts-ignore in playwright
Co-authored-by: Dimitri Mitropoulos <dimitrimitropoulos@gmail.com>
* add gitlab oauth provider and ui
* add gitlab remaining
* add graphql field in query
* add gitlab oauth provider and ui
* add gitlab remaining
* add graphql field in query
* add some changes for testing
* add gitlab oauth provider and ui
* add gitlab remaining
* add graphql field in query
* add some changes for testing
* add some changes
* modify test
* try to refresh the token on git auth failure
* use localStorage to retrieve the session token
* simplify e2e tests for gitlab
* read the gitlab config from the api
* refresh the token if unauthorised
* use the rest api to fetch the user's data
* add loading state for config and handle 4xx errors in the ui
Co-authored-by: jackkav <jackkav@gmail.com>
* improve config fetching
* fix(e2e): add mock route for config
* Fix fetching gitlab config from the API
* add src as dep to avatar component hook
Co-authored-by: Mark Kim <yowmark613@gmail.com>
Co-authored-by: jackkav <jackkav@gmail.com>
Co-authored-by: David Marby <david@dmarby.se>
* add sign in with github
* fix authentication url not being reset
* Add error handling for graphql query results
* move desctructuring to function arguments
* remove unused input prop
* Respect INSOMNIA_DATA_PATH for electron data regardless of environment
* fix lint error and update uuid usage
Co-authored-by: David Marby <david@dmarby.se>
* bump node, electron, libcurl
* bump electron-builder
* stub performance, because inso imports react
* bump @types/node
* match up builder versions
* Disable consent prompts for oidc server
* bump electron and libcurl to latest
* waitForCookies for oauth tests
* Bump NodeJS to 16.13.0
* removes node 14 hack for BufferEncoding
* Replace oidc-provider html interaction pages with a simple html form
* make document cookie wait explicit
Co-authored-by: David Marby <david@dmarby.se>
* now with 100% fat free cancellation
Co-authored-by: James Gatz <jamesgatzos@gmail.com>
* unblock electron 15
* fix cookielist and temp fix curl types
* fix types
* fix inso
* default to verbose inso test
* implement readdata function
* fix test
* revert test changes
* isomorphic cancel
* reduce typing issues
* curl types
* turns out the tests were wrong
* handle errors
* remove unused inso mock
* remove request delay
* fix lint and add logs
* Revert "remove request delay"
This reverts commit f07d8c90a7a7279ca10f8a8de1ea0c82caa06390.
* simplify and add cancel fallback
* skip cancel test
* playwright is fast and insomnia is slow
* trailing spaces are serious yo
* cancel is flake town
* hmm
* unblock nunjucks and storeTimeline
* fix nunjucks tests
* preload writeFile
* oops forgot to remove the reload
* debugging CI takes all day, log stuff and pray
* also warn if nunjucks is being lame
* Stop using environment variables
* revert debugging logs
Co-authored-by: James Gatz <jamesgatzos@gmail.com>
Co-authored-by: David Marby <david@dmarby.se>
* Move basic auth routes to a separate file
* Stop slowing requests down artificially
* Add initial oauth routes
* Mount oidc routes under /oidc
* Enable all forms of oauth that Insomnia supports
* Add oauth request collection fixture
* Update playwright config
* Use 127.0.0.1 instead of localhost
* simple oauth2 test
* Make the playwright extension work
* Move oauth tests to a separate file
* Test all oauth flows
* Mark test as slow
* Wait for load state for new pages
* Use locators consistently
* Add playwright to recommended extensions
* Add instructions for how to use the playwright extension
* update selectors and use fill
* Fix markdown lint
Co-authored-by: jackkav <jackkav@gmail.com>
Co-authored-by: gatzjames <jamesgatzos@gmail.com>
* Enable playwright parallelism
Plus, move the cancel request test into its own separate test to reduce flakiness.
* Change num of playwright workers on GH actions back to 1
* Change 200 OK assertion
+ Add assertions to PDF canvas
+ Add assertion to Raw Data preview.
* Add assertions to response body elements
* Undo parallel suite for app.test.ts
* Remove parallelism workers from playwright.config.ts
* Code review improvements
Co-Authored-By: Jack Kavanagh <3679927+jackkav@users.noreply.github.com>
Co-Authored-By: James Gatz <jamesgatzos@gmail.com>
* Code review improvements
Co-Authored-By: Jack Kavanagh <3679927+jackkav@users.noreply.github.com>
Co-Authored-By: James Gatz <jamesgatzos@gmail.com>
Co-authored-by: Jack Kavanagh <3679927+jackkav@users.noreply.github.com>
Co-authored-by: James Gatz <jamesgatzos@gmail.com>
* add /cookies endpoint to smoke test mock server
* add smoke test steps for /cookies endpoint
* Update packages/insomnia-smoke-test/tests/app.test.ts
Co-authored-by: James Gatz <jamesgatzos@gmail.com>
* Create a base playwright test with fixtures
* Remove waiting for 'window' event
It blocks debugging and is not adding extra confidence since .firstWindow allready works like that.
* Remove unused type and manual page close fn
* Update path checks for dev
* Only close the electron app in darwin
* add smoke test fixture
* respect INSOMNIA_DATA_PATH override in CI
* add playwright
* remove spectron
* move CLI tests after app smoke tests in CI
* remove onboarding skip
* random path feedback
* npx feedback
* remove DATA_PATH override
* remove step from import process
* cleanup
* restore readme
* move specs to tests
* feedback on DESIGNER_DATA_PATH
* remove skipLibCheck
* last mention of spectron
* fix windows npm run test:smoke:build
* DATA_PATH override is required
* github CI is slow sometimes
* Upgrade Electron from 9.3.5 to 11.2.3.
* bump version
* update preid to alpha
* version packages lib@2.3.1-alpha.0
* Downgrade electron-builder to 22.11.3.
We tried to upgrade electron-builder to 22.11.7, but this fails
because electron-builder 22.11.4 introduces imports into fs/promises.
This module is only available in Node 14+, so we have to stick to
22.11.3 until we update to Electron 12.
* Revert npm script changes from alpha release.
Co-authored-by: Opender Singh <opender.singh@konghq.com>
* no default export (prepping for hooks)
* makes logic match other implementation
note that above in `componentDidUpdate` it uses `<= 0`, whereas here it uses `> 0` but then only checks for false.
Also, logically, there's no way to ever get `aria-hidden="true"` since it returns early so that entire attribute can just be removed.
* removes fake private class member syntax
this is moving to hooks anyway, but in the meantime...
* undoes calling identical code twice in a row...
* condenses class methods to prepare for hooks
* hooks refactor
fairly faithful to the original, this attempts to just refactor to hooks. this exposes, again, the fact that we're setting state within useEffect.
* removes 200 ms offset for response time
so that, now, you know, the time reported is the actual time.
* adds logging for response timer lage
* removes timer logging and `responseTime` prop after PR discussion
it's definitely fruitful, but the fix for the callstack exceeded is what needs to be the focus.
* removes shadowed variable per PR feedback
* reinstates and documents 200ms compensation
* add delay endpoint to example server
* Update packages/insomnia-app/app/ui/components/response-timer.tsx
Co-authored-by: Opender Singh <opender.singh@konghq.com>
* chore: refactor
* chore: fix one test
* chore: fix all tests
* chore: fix all existing tests
* chore: add prompting tests
* chore: ignore flaky test for now
* chore: smoke testing documentation
* chore: unit testing documentation
* chore: address comments and add a section on element selection
* chore: replace screenshot with code block
* Add test
* WIP
* Passes
* Update
* Done
* Update
* Fix
* Remove id
* Works
* Run more tests
* Hmm
* await
* mostly works
* i sure hope this works in CI because it worked 40 times on my computer...
* add comments
* feat: replace tinyhttp with express and add basic auth route
* fix: response content-type header
* feat: works
* feat: this should work
* fix: slow down all requests
* fix: force refresh
* test: wait for timeline viewer to contain text after clicking it
* remove: delete oas3.yaml spec as it is redundant for now