* Feature Request: Support Square Bracket Notation in Multipart Form Data #3224
* Feature Request: Support Square Bracket Notation in Multipart Form Data #3224
Tests that call SetParserDecoder were causing a race condition with
other tests that read from decoderPoolMap. Fix by making the offending
tests not run in parallel.
* perf(ctx.Range): reduce allocations
strings.Split was causing extra allocations where using
strings.IndexByte can suffice. ALso switch from strconv.Atoi because it
causes an allocation when parsing a non-integer, which is common for
Ranges.
* chore: fix lint
* 🔥 add config to enable splitting by comma in parsers
🔥 add config to enable splitting by comma in parsers
* optimize if statements, remove escape char support
optimize if statements, remove escape char support
* update
* 🔧 feat: Decode body in order when sent a list on content-encoding
* 🚀 perf: Change `getSplicedStrList` to have 0 allocations
* 🍵 test: Add tests for the new features
* 🍵 test: Ensure session test will not raise an error unexpectedly
* 🐗 feat: Replace strings.TrimLeft by utils.TrimLeft
Add docs to functions to inform correctly what the change is
* 🌷 refactor: Apply linter rules
* 🍵 test: Add test cases to the new body method change
* 🔧 feat: Remove return problems to be able to reach original body
* 🌷 refactor: Split Body method into two to make it more maintainable
Also, with the previous fix to problems detected by tests, it becomes really hard to make the linter happy, so this change also helps in it
* 🚀 perf: Came back with Header.VisitAll, to improve speed
* 📃 docs: Update Context docs
* 🚀 FEATURE: add queries method
* 📚 DOCS: add documents for queries method.
* 🩹 Fix: fix wrap error returned from Queries function
* 🚨 tests: add url encoded tests
* 🔥 feature: add url encoded support for queries
* 🩹 Fix: fix wrap error returned from Queries function
* ♻️ Refactor: change error message of url.QueryUnescape
* ♻️ Refactor: refactor of mapping key and value queries
* 🚨 Test: Validate to fail parse queries
* 🚨 Test: Add benchmark test for Queries
* 🩹 Fix: remove parsing for encoded urls
* ♻️ Refactor: change string function to c.app.getString fucntion
Co-authored-by: cmd777 <83428931+cmd777@users.noreply.github.com>
* ♻️ Refactor: change name of benchamark function ctx queries
Co-authored-by: leonklingele <git@leonklingele.de>
* ♻️ Refactor: remove empty lines
Co-authored-by: leonklingele <git@leonklingele.de>
* Revert "♻️ Refactor: change string function to c.app.getString fucntion"
This reverts commit 28febf9e60.
* 📚 Docs: add documents for queries method
* 🚨 Tests: add more tests for queries function
* ♻️ Refactor: change string function to c.app.getString function
* 🚨 Tests: add more test for queries function
* 📚 Docs: add more documents to queries function
---------
Co-authored-by: cmd777 <83428931+cmd777@users.noreply.github.com>
Co-authored-by: leonklingele <git@leonklingele.de>
* feature: session only for zero expire cookie #2145
* refactor condition to set MaxAge and Expire on cookie
* move checking zero maxage and expire in session middleware
Signed-off-by: Yves Tumushimire <yvestumushimire@gmail.com>
* feature: session only for zero expire cookie #2145
* refactor condition to set MaxAge and Expire on cookie
* move checking zero maxage and expire in session middleware
Signed-off-by: Yves Tumushimire <yvestumushimire@gmail.com>
* CR changes
* some updates
---------
Signed-off-by: Yves Tumushimire <yvestumushimire@gmail.com>
Co-authored-by: Muhammed Efe Çetin <efectn@protonmail.com>
Co-authored-by: René Werner <rene.werner@verivox.com>
* golangci-lint: add and apply more stricter linting rules
* github: drop security workflow now that we use gosec linter inside golangci-lint
* github: use official golangci-lint CI linter
* Add editorconfig and gitattributes file
* app: do not use empty *net.IPNet in case of an error of "net.ParseCIDR"
* app: expose error returned by "net.ParseCIDR"
* ctx: do not repeatedly call method in loop
* ctx: add test for "IsProxyTrusted" func
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
* 🐛 bug: fix mounting doesn't work if when to declare it before routes
* 🐛 bug: fix mounting doesn't work if when to declare it before routes
* 🐛 bug: fix mounting doesn't work if when to declare it before routes
* 🐛 bug: fix mounting doesn't work if when to declare it before routes
* 🐛 bug: fix mounting doesn't work if when to declare it before routes
* add onMount hooks, mountPath like express.js, better behavior for onName, onRoute, onGroup, onGroupName hooks on mounted apps
* add comment
* use once
* fix views when both app and sub-app have view engine, better behavior for mount path
* fix tests
* fix tests
* make some tasks
* make some tasks
* 🚀 Make IP vallidation 2x faster
* Add tests for IP validation
* phrasing & linter fix
* change test assert function
That was a surprise that testing style in gofiber/utils and in gofiber/fiber/utils are different 😳
* 🐛 bug: ClientHelloInfo support for app.Listener
* 🐛 bug: ClientHelloInfo support for app.Listener
* fix
* make tlshandler public
* update
* 🐛 bug: make tlsHandler public to use it with Listener #2034
Co-authored-by: wernerr <rene@gofiber.io>
* fixes#2016 - make IP() and IPs() more reliable
* improve the performance of IP validation functionality
* refactor IP validation and make it a configuration option
* Add Global Layout for view render
* Add test case for Views Layout
* Update ctx_test.go
* Add App Name function to pass custom app name
* Remove json tag for function
* Change func to string
* Add test for AppName
* Add RedirectToRoute and RedirectBack with fallback if referer in header not found
* replace errors.New with fmt.Errorf
* simplified code
* Add tests for different formats
* Add method to get route location and add benchmarks
* Add ToString function
* Fix error
* rearrange case for fmt.Stringer
* Fix bug for error return
* Lock latest route for app.Name(namee string)
* decreasing timeout for client test with timeout
* remove println and adjust condition to > 0
* Change name to get route url
* Change name to get route url
* Update ctx.go
Co-authored-by: hi019 <65871571+hi019@users.noreply.github.com>
* Fix bug on getting url for optional and greedy params
* Fix greedy pattern
* This PR will fix#1921 (comment).
The optional and greedy params were not fetched correctly
* This PR will fix#1921 (comment).
The optional and greedy params were not fetched correctly
* This PR will fix#1921 (comment).
The optional and greedy params were not fetched correctly
Co-authored-by: RW <rene@gofiber.io>
Co-authored-by: hi019 <65871571+hi019@users.noreply.github.com>
* Renamed parseQuery to parseParamSquareBrackets
* Added square brackets processing for `application/x-www-form-urlencoded`
* Added test cases for Array of form values