* 🔥 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
* ✨ v3 (feature): initial support for binding
* ✨ v3 (feature): initial support for binding #1981
use pointer/references instead of copies
* ✨ v3 (feature): initial support for binding
embed bind into the ctx
* ✨ v3 (feature): initial support for binding
- add URI binder.
* ✨ v3 (feature): initial support for binding
- add response header binder.
* ✨ v3 (feature): initial support for binding
- add response header binder.
* ✨ v3 (feature): initial support for binding
- add cookie binder.
* ✨ v3 (feature): initial support for binding
- custom binder support for body binding.
- test case for custom binder.
* ✨ v3 (feature): initial support for binding
- add map[string][]string & map[string]string support for binders.
* ✨ v3 (feature): initial support for binding
- fix Test_Bind_Header_Map
* ✨ v3 (feature): initial support for binding
- Functional Should/Must
* ✨ v3 (feature): initial support for binding
- custom struct validator support.
* ✨ v3 (feature): initial support for binding
- README for binding.
- Docs for binding methods.
* ✨ v3 (feature): initial support for binding
- Bind() -> BindVars(), Binding() -> Bind()
* ✨ v3 (feature): initial support for binding
- fix doc problems
* ✨ v3 (feature): initial support for binding
- fix doc problems
Co-authored-by: wernerr <rene@gofiber.io>
* 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
* 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>
Co-authored-by: RW <rene@gofiber.io>
Co-authored-by: hi019 <65871571+hi019@users.noreply.github.com>
* Restore original URL after the proxy
* Use the Immutable string to restore
* Changing deprecated ImmutableString to CopyString
Co-authored-by: Geet Manghnani <gmanghna@in.ibm.com>
* 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
Co-authored-by: RW <rene@gofiber.io>
* feat(ctx): add SessionOnly property on Cookie struct
* feat(middleware/config): add CookieSessionOnly property on middleware Config struct
* feat(csrf): link config CookieSessionOnly with fiber.Cookie in create middleware function
* fix(ctx_test): add tests for SessionOnly cookie in test_ctx_cookie
* fix(readme): update readme in csrf middleware for CookieSessionOnly property
* remove deprecated property from CookieSessionOnly explaination comments
* fiber change
* reference correct storage in SaveFile
* seperate logic to new function
* Change storage defination style, fix tests on go1.14
* Add unit test.
Co-authored-by: Alex Bakker <abakks@hotmail.com>
Co-authored-by: M. Efe Çetin <efectn@protonmail.com>
* ✨feature: Pass all locals to ctx.Render
* add test case for render using locals
* Added option PassLocalsToViews to enable pass locals to render
The option PassLocalsToViews is set to disabled by default
* Added a check to see if the ctx bind already contains the value
* Added a test for ctx render with locals and binds.
* Fix using IP ranges in config.TrustedProxies (#1607)
* Add tests
* Remove debugging var
* Remove tests
* Update test
Co-authored-by: RW <rene@gofiber.io>
* 🔥 add function to overide form decoder setting
🔥 Feature : SetBodyParserDecoder map all option to form decoder, use with BodyParserConfig, BodyParserType
🚨 Test : Test_Ctx_BodyParser_WithSetBodyParserDecoder
* 🔥 Use decoder builder function with default setting on init decoderPool
* ♻️ rename SetBodyParserDecoder to SetParserDecoder
BodyParserType > ParserType
bodyParserConfig > parserConfig
BodyParserConfig > ParserConfig
* Add Test case for QueryParser WithSetParserDecoder
* Update for Test_Ctx_QueryParser_WithSetParserDecoder
* Update Test_Ctx_QueryParser_WithSetParserDecoder remove t.Parallel()
debug unit test - may close this pull request for cleaner commit
* 🧹 Clean Up
* 🔥 add function to overide form decoder setting
🔥 Feature : SetBodyParserDecoder map all option to form decoder, use with BodyParserConfig, BodyParserType
🚨 Test : Test_Ctx_BodyParser_WithSetBodyParserDecoder
* 🔥 Use decoder builder function with default setting on init decoderPool
* ♻️ rename SetBodyParserDecoder to SetParserDecoder
BodyParserType > ParserType
bodyParserConfig > parserConfig
BodyParserConfig > ParserConfig
* 🔥 add function to overide form decoder setting
🔥 Feature : SetBodyParserDecoder map all option to form decoder, use with BodyParserConfig, BodyParserType
🚨 Test : Test_Ctx_BodyParser_WithSetBodyParserDecoder
* 🔥 Use decoder builder function with default setting on init decoderPool
* existing tests clean up
* concurrent test for UserContext Reused
* comment on Ctx.userContext field
* userContext tests edited & fixed, userContext field removed, constant of userContextKey defined