* feat: Added ApiKeyAuth component
* feat: Add support for API Key authentication
- Added the ApiKeyAuth component to handle API Key authentication mode.
- Updated the AuthMode component to include an option for API Key authentication.
- Updated the collections schema to include validation for API Key authentication.
- Updated the collectionsSlice to handle API Key authentication in the Redux store.
* refactor: input value handlers
- Removed the separate handleKeyChange, handlePlacementChange and handleValueChange functions and consolidated them into handleAuthChange.
* feat: Update prepare-request to handle API Key authentication in query parameters
* refactor: handling the queryparams placement api key values in the ConfigureRequest function
* refactor: added collection level api key auth
* refactor: updated collection export function
* refactor: add default placement for API key authentication in ApiKeyAuth component
* refactor: add default placement for API key authentication in ApiKeyAuth component in CollectionSettings
* refactor: update generateAuth function to handle API key authentication in postman collection exporter
* refactor: fix typo in API key placement for collection export
* Made minor changes in the logic.
* Updated the importers for postman to handle new auth type.
* Improve how the URL values are transformed.
* Made few changes and also added jsdoc comments
* Removed the querystring values that are getting appended in the host array by filtering you the the queryvalues as we already have the queryparams values inside the request.params object.
* Moved the transformUrl logic to a different file for testing. Added new tests.
* Added tests and updated sanitizeUrl function.
* Updates made in jsdocs.
* Updated function params.
* Review: Code restructure.
* Small changes made.
* Updated the return value when there is an error.
* Changes
* fix: handle case of text when invalid JSON (#3119)
* don't stringify if json is invalid, and maintain indentation if stringified
* stringify check
---------
Co-authored-by: lohit <lohxt.space@gmail.com>
* pr review changes
* collection root object in export json
* import environment updates
* tests run execution order fix for collection runs
* support for multiple preview modes of same type
* Support multiple reporters at once in the CLI
* Typos
* Better logging string after writing file
* Remove double blank line
* More double blank lines
* Switch reporter schema to one from discussion
* Typo
* Add comment
* Fix | properl calculates the request number for folder run
* Chore|formatted document
---------
Co-authored-by: Anusree Subash <anusree@usebruno.com>
* test: added test for self closing tags in xml-json parser
* fix: allows import of openapispec with empty string as tags
---------
Co-authored-by: Anusree Subash <anusree@usebruno.com>
Issue: In Postman, multiple requests in same folder can have same name. current import code is creating bruneRequestItems with same name which is causing only one of the original requests to be actaully created.
Looks like bruno doesn't allow multiple requests with same name in a given folder.
Fix:
Append _<duplicate_count> to conflicting request names within same folder.
* Now the form-url-encoded params in the body can contain multiple values with same name.
* Updated the tests and renamed the function name
* Added the inimported function
* Minor changes.
* added validations for spec and ref
* Fix | openapispec import-show proper body for arrays of objects
* removed unwanted changes
* handles body schema of array of objects
* removed logs
---------
Co-authored-by: Anusree Subash <anusree@usebruno.com>
* fix: Issue with Parameters Passed in the URL(#2124)
The '=' should be allowed within query parameter value. While first equals sign separates parameter name from its value, any subsequent occurrences are valid and should not be discarded.
The '#' in URL always indicates the start of URI Fragment component, and should not be treated as part of any parameter value.
* chore: gracefully fail when URLSearchParams throws error
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* feat(#736): Switch tabs with keyboard shortcut
1. Registered keyboard events in Hotkeys/index.js
2. Added logic for replacing `state.activeTabUid` to switch active tab as per keyboard event.
3. Maintained a stack `recentUsedTabsStack` for tab visit history and pop out on `Ctrl+Tab` keyboard event.
* feat(#736): Switch tabs with keyboard shortcut
Keeping this feature request only limited to CTRL+PGUP and CTRL_PGDN button clicks functionality. Hence removing logic for CTRL+TAB click functionality.
* feat(#736): Switch tabs with keyboard shortcut
clean up
* feate(#827): Switch tabs with keyboard shortcut
* Implimented logic of cyclic traversal of tabs array with % opreator.
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* add font-size setting for code editor
* add code font size to remaining editors
* align font-size after font-family
* changed default font size to 14
* fixed className typo
* set inherit mode if unset
* add code font size schema validation
* add font size to folder settings
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* fix: Failed to construct 'URL': Invalid URL everytime the URL is modified
A non-parsable URL should be an acceptable state while the text is being typed.
* chore: path params are returned as empty
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* Changed display: contents to display: block to fix bug with text cutoff in multipart form and form url encoded request bodies.
* Changed display: contents to display: block to fix bug with text cutoff in multipart form and form url encoded request bodies.
* chore: self-host Inter
fixes https://github.com/usebruno/bruno/issues/695
* chore: fix package-lock to include fontsource
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* Feat/electron-bump - bump node version to match electron
* Feat/electron-bump - bump node version - documentation
* Feat/electron-bump - bump node version - package-lock.json
* typofix: Loc is required
* handle empty dirpath on import collection
* fix: collection import bug fix
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* feat: added close menus on the request tab
* feat: added close to the left button
* feat: added new request and clone request buttons
* chore: fix prettier
* fix: Handle ENOSPC error from chokidar
Now listens to the error event to check if "ENOSPC" occurrs.
The watcher will then automaticly restart in polling mode, so that
the user still sees his reqeusts / collections.
Fixes: https://github.com/usebruno/bruno/issues/1877
* Add more code comments, add !forcePolling to prevent endless loops and update error message
* fix: Also listen for EMFILE for too many watched files
* fix: Handle ENOSPC error from chokidar
Now listens to the error event to check if "ENOSPC" occurrs.
The watcher will then automaticly restart in polling mode, so that
the user still sees his reqeusts / collections.
Fixes: https://github.com/usebruno/bruno/issues/1877
* Add more code comments, add !forcePolling to prevent endless loops and update error message
* fix: extract variables and headers from the provided request
* fix: handling draft headers and vars
* fix: handling draft headers and vars
---------
Co-authored-by: Vincenzo De Petris <vincenzodepetris@gmail.it>
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* mask support for SingleLineEditor
* add secret visibility toggle button
* move visibility toggle into SingleLineComponent
Co-authored-by: Liz MacLean <18120837+lizziemac@users.noreply.github.com>
* fix eye button focus state
* center enabled and secret toggle
* fix input field scales to 100% width
* Using a prvacy toggle for all sensitive auth details.
* Applied privacy toggle to Collection Auth settings.
---------
Co-authored-by: Max Bauer <krummbar@pm.me>
Co-authored-by: Liz MacLean <18120837+lizziemac@users.noreply.github.com>
- Adds a new key in the `bruno.json` under `scripts.flow`
- When concating post and tests scripts the flow will now be used
to determine to correct order
Fixes: #2648#2680#2597#2639
* pr review changes
* collection root object in export json
* import environment updates
* tests run execution order fix for collection runs
* updated validations
* accept request flag in curl string for method type
* electron version bump to v31.2.1
* pr review changes
* collection root object in export json
* import environment updates
* tests run execution order fix for collection runs
* headers schema update, export only required parts of request
* update auth in object spread
* docs not present in folder level settings
* docs not present in folder level settings
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* Removed headers key on folderRootSchema as it seems unlikely that headers are actually required here
* Removed launch.json
* Added back package-locks
* reverted package-lock
* removed only the .required
* feat(bulk-env-import): bulk import working like a charm
* feat(bulk-env-import): refresh no env dialog's styling
* feat(bulk-env-import): group create and import env within initial modal, UI improvements
* feat(bulk-env-import): minor styling fixes
* feat(bulk-env-import): handle incorrect files in env importer
---------
Co-authored-by: bpoulaindev <bpoulainpro@gmail.com>
* fix: Update CodeMirror mode to use combinedmode for SingleLineEditor. This will highlight the pathparams in the QueryUrl.
* Refactor: Updated url highlighting.
* refactor: Improved the hinting part.
* refactor: CodeEditor, MultiLineEditor, and QueryEditor to use defineCombinedCodeMirrorMode for highlighting Bruno variables instead of defineCodeMirrorBrunoVariablesMode
* refactor: Updated defineCombinedCodeMirrorMode to defineCodeMirrorCombinedVariablesMode. Now the pathparams at the end of the URL is also highlighted.
* refactor: Update CodeMirror mode to use defineCodeMirrorBrunoVariablesMode instead of defineCodeMirrorCombinedVariablesMode. Now the path params in the URL will be highlighted on application open.
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* feat: add recursive interpolate
fixes#2227
* test(bruno-common): fix test with 3 level of recursion
* fix(bruno-common): add ability to reference the same variable repeatedly
fix#2005
- display post request variable evaluation errors in a toast, each individual variable error on a new line
- display the response body (was previously replaced by the an error "Error invoking remote method 'send-http-request': ..."
This change moves informational command outputs from console.log (prints on stdout) to console.warn/console.error (prints on stderr)
to enable stdout processing in pipelines.
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* Check OAuth2 redirect URL for matching callback URL and authorization code in query parameters
In an Authorization code flow, there may be multiple intermediate redirects before reaching the final one which matches the callback URL and has a code in the query params.
We should wait until we see a redirect URI that matches both the conditions. This fixes the issue where, when a redirect contains `code` as a query param but is not the final one (i.e., is not to the callback URL) an error is thrown saying the callback URL is invalid.
Fixes#2147
* Add test cases for callback URL check
* Update check to cover URLs with same host but different endpoints
* feat: add support for state param
* chore: revert package-lock.json
* test: update tests with state param
* chore: revert package-lock.json
* chore: add state to missing places
* Adding state to PKCE toggle
---------
Co-authored-by: Kadam Dhananjay <kadamdhananjay@johndeere.com>
* feat: path parameters (#484)
* add path parameters on bruno-app
* add path parameters on bruno-cli
* fix bruno-schema testing
* fix generate request code not replace path parameter value
---------
Co-authored-by: game5413 <febryanph10@gmail.com>
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* feat: Refactor request parameter handling
- Update prepare-request.js to filter and rename 'paths' to 'params' with type 'path'
- Remove 'paths' from export.js and interpolate-vars.js
- Update bru.js to use 'params' instead of 'path'
- Update requestSchema in index.js to use 'keyValueWithTypeSchema' for 'params'
Co-authored-by: game5413 <febryanph10@gmail.com>
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* feat: Refactor request parameter handling
* refactor: changes form the review
* refactor: Refactor transformItemsInCollection handling
* refactor: Refactor improved export/import functionalities
* refactor: Remove console.log statement in bruToJson.js
---------
Co-authored-by: game5413 <37659721+game5413@users.noreply.github.com>
Co-authored-by: game5413 <febryanph10@gmail.com>
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* fix(#1003): content type for client_credentials & password grant types
* feature(#1003): added client is & secret for password credentials grant type
* fix: filter out non-printable control character and ZWNBSP character
* fix: filter out non-printable control character and ZWNBSP character
* remove ZWNBSP character from response body
---------
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>