As reported in #2670, if a URL has a trailing slash and also contains
path parameters then the original logic had a bug that would drop the
trailing slash.
This implements the fix proposed by @ThenTech.
* fix rename with same name with different case
* added `_temp` to the filename to change the request name (handle case insensitivity) on Win and macOS
* chore: remove whitespaces and added path added path resolver
* refactor: wslpath check
* feat: safeToRename check added
* refactor
* refactor: code cleanup
* chore: improved error message
---------
Co-authored-by: Linhart Lukáš <Lukas.Linhart@tescosw.cz>
Co-authored-by: Anoop M D <anoop.md1421@gmail.com>
* fix: accessibility issue in Welcome page
- use button tag for collection instead of div
- hide decorative image for assistive technology
- give meaningful label to links in Links section
* enhance: accessibility over the buttons on the welcome page
* chore: fix translations
---------
Co-authored-by: Shrilakshmi Shastry <shrilakshmi.shastry@smallcase.com>
* Refactor URL construction in Postman collection processing
* Updated the constructUrl function and made it more loose. Also now when there is a param with its key as undefined we discard it.
* Handled the case when the url is an object and dosen't have a raw value.
* Added missing return.
* Removed the URL fragments
* Removed unused destructures.
* Minor changes.
* 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