Skip to content

Commit

Permalink
Backmerge 31 03 2022 (#1171)
Browse files Browse the repository at this point in the history
* Doc: Add outline (#815)

* doc: add categories

* refactor: doc structure refactored

* fix: package-lock.json removed

* refactor: create outline sub-directories

* refactor: rename test to testing

* Update netty-all to 4.1.73.Final (#811)

* Disable benchmarks comment on fork pull request (#820)

* Disable benchmarks on fork PR

* run benchmarks on fork PR but disbable PR comment

* Feature: API to modify headers (#824)

* feat(Headers):added new api to update headers

* renamed api

* Feature: Signed Cookie (#751)

* feat(cookie): added secret in cookie

* feat(cookie): added signcookie middleware

* feat(cookie): scalafmt

* fix(cookie): sign cookie while encoding

* scalafmt

* fix(Cookie): added unsign method for cookie

* fix(cookie): minor changes

* fix(signCookieMiddleware: simplified signCookies

* fix(cookie): removed try catch from signContent

* cookie: throw error in verify

* cookie: throw error in verify

* verify method changes

* fixed test cases

* fix: removed decodeResponseSignedCookie

* fix: middlewareSpec

* added modifyheaders in middleware

* removed unwanted changes

* scalafmt

* refactoring

* refactoring

* build fix

* build fix

* fix: decodeResponseCookie

* added modify

* Update sbt-scalafix to 0.9.34 (#805)

* Fix: Echo streaming (#828)

* Failing test

* Fix echo streaming

* Pr Comments

* Docs: Update Basic Examples (#814)

* doc(Getting started): updated examples

* docs: updated basic examples

* docs: update advanced examples (#816)

* maintenance: semanticdb revision usage (#832)

* maintenance: workflow scala version (#833)

* Fix: HasHeader bug (#835)

* #834 - fix and test for the bug.

* applied suggested change

* refactor: fix naming for Http operators (#839)

* Update sbt-bloop to 1.4.12 (#810)

* Update sbt-bloop to 1.4.12

* Update sbt-bloop to 1.4.12

* Update scala-library to 2.13.8 (#801)

* Update scala-library to 2.13.8

* Regenerate workflow with sbt-github-actions

* Add configuration builder methods to zhttp.service.Server (#768)

* Add configuration builder methods to zhttp.service.Server

* Update zio-http/src/main/scala/zhttp/service/Server.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Update zio-http/src/main/scala/zhttp/service/Server.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Update zio-http/src/main/scala/zhttp/service/Server.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Change some server with* builder methods (enable parameter)

* Server withAcceptContinue(enabled)

Co-authored-by: Tushar Mathur <[email protected]>

* maintenance: html template for internal server error string (#851)

Closes #842

* Performance: Improve benchmarking code (#731)

* wip: try server codec without validation

* wip: remove flush consolidator

* wip: use wrapped buffer

* wip: add flush consolidator

* perf: make response encoding checks faster

* use encoder and decoder (#733)

* wip: remove Request creation

* use encoder and decoder

Co-authored-by: Tushar Mathur <[email protected]>

* disable object aggregator

* disable object aggregator

* revert disable object aggregator

* doc: update scala doc

* perf: freeze the HttpResponse

Co-authored-by: Amit Kumar Singh <[email protected]>
Co-authored-by: amitsingh <[email protected]>

* Refactor: Support middlewares on Http (#773)

* refactor: remove type-params from Response

* chore: self review

* refactor: rename Middleware to HttpMiddleware

* refactor: add `@@@` to Http as an alternative to `@@`.

* feature: add new Middleware API

* feature: add `flatten` and `ifThenElse`

* feature: add `ifThenElseZIO`

* refactor: fix type params for `identity`

* feature: add `when`

* feature: add `make` constructor

* refactor: make middleware methods final

* refactor: git remains

* refactor: implement HttpMiddleware as Middleware

* scala3 fix

* Refactor CORS middleware (#788)

* Refactor/merge middleware and http middleware (#790)

* Refactor move cors and timeout

* move some httpMiddlewares to Middleware

* move some AuthMiddleware to Middleware

* move remaining AuthMiddleware to Middleware

* move Middlewares to middleware package

* scaladoc

* codec example

* move Middleware to http package

* named alias for `@@`

* rename Auth to AuthMiddlewares

* rename CORSMiddleware to CorsMiddlewares

* rename CSRF to CsrfMiddlewares

* make primitives private

* rename MiddlewareExtensions to HttpMiddlewares

* rename operators in HttpMiddlewares

* scalaDoc

* arg rename

* doc update and general refactor

* simplify cors middleware

* rename CorsConfig

* renames

* Make middlewares package private MiddlewareRequest

* Introduce MiddlewareRequest (#798)

* Introduce MiddlewareRequest

* PR review comments

* Refactor move runAfter to Middleware

* refactor: add `UMiddleware`

* feature: add `contramapZIO`

* refactor: move cors config to Cors file

* refactor: rename files

* refactor: remove AuthSpec from WebSpec

* refactor: fix naming for Http operators

* refactor: add partial type suport for contraMapZIO

* Refactor: Codec (#841)

* Add Run Before (#840)

* Add Run Before

* Add Run Before and After

* use renamed operator

* refactor: add partial type suport for contraMap

* Implement missing operators in Middleware (#807)

* Implement missing operators in Middleware

* fix as operator

* headers Middleware changes

* sign cookie

* extend with HeaderExtensions

* rename suite

* PR comments

* refactor: use `Request` instead of `MiddlewareRequest`

* refactor: rename methods

* refactor: resolve fix me issue

Co-authored-by: amitsingh <[email protected]>
Co-authored-by: Amit Kumar Singh <[email protected]>

* refactor: rename ClientParams to ClientRequest (#856)

* refactor: use declarative encoding for http.middleware (#869)

* Move docs to v1.x directory (#861)

* Bug Add host in client from absolute URL (#847)

* feat(Client): Add host in client from absolute URL

* feat(Client): Refactor and add spec for host value

* feat(Client): fmt formatting

* feat(Client): fmt formatting

* feat(Client): use setHeaders from netty

* feat(Client): Add spec for host

* feat(Client): Add spec for host

* feat(Client): Rename clientParams to clientRequest

* Doc website fix (#871)

* Update scala3-library to 3.1.1 (#873)

* Update scala3-library to 3.1.1

* Regenerate workflow with sbt-github-actions

* Doc: Fix getting started link (#874)

* Update scalafmt-core to 3.3.2 (#864)

* Doc: `Headers` documentation (#817)

* doc: add categories

* refactor: doc structure refactored

* fix: package-lock.json removed

* refactor: create outline sub-directories

* initial draft on Headers documentaiton

* refactor: rename test to testing

* migrated Headers doc in the right structure

* re-organized the section. added more examples on the service, client and middleware side.

* updated documentation

* updated based on review

* more updates

* more updates

* minor changes

* minor changes

* Update docs/website/docs/v1.x/dsl/headers/index.md

* Update docs/website/docs/v1.x/dsl/headers/index.md

Co-authored-by: Shubham Girdhar <[email protected]>
Co-authored-by: amitsingh <[email protected]>
Co-authored-by: Amit Kumar Singh <[email protected]>

* Fix collapsible Headers Doc (#876)

* Test: Added Integration tests for `HExit.Success` (#852)

* feat: added validation app for HExit without zio

* feat: removed type from validationAppSpec

* test: Iterating using HttpGen.Method

* test: rearranged status method params

* test: name fixes

* Update scalafmt-core to 3.3.3 (#881)

* Update scalafmt-core to 3.3.3 (#884)

* Fix: EncodeClientParams (#868)

* fix: encodeClientParams

* test(client): added test for req url string

* test(client): variable name changed

* test: added test in encodeClientSpec

* simplifies test case

* doc: add comment on why relative path needs to be used.

Co-authored-by: Tushar Mathur <[email protected]>

* Refactor: HttpRunnableSpec clean up (#857)

* refactor: reduce HttpRunnableSpec boilerplate

* refactor: remove all helpers from HttpRunnableSpec and inline the method

* doc: update documentation for test module

* refactor: add type-constraints to Http for specialized methods

* refactor: use IsResponse type constraint

* style(*): apply scala fmt

* doc: update documentation

* update doc (#897)

* Docs: Getting started (#887)

* fix: added more content

* fixed comments

* fix: getting started

* modifications

* added more

* minor changes

* minor changes

* changes

* refactor: rename asString to encode in URI (#898)

* refactor: rename asString to encode in Scheme (#904)

* fix: example links (#906)

* Update getting-started.md (#907)

* refactor: rename asString to encode in Scheme (#905)

* Doc: setup (#886)

* doc: setup

* resolve: PR comments

* Update netty-incubator-transport-native-io_uring to 0.0.12.Final (#908)

* Documentation for Server (#885)

* removed config.md and make configurations part of Server page

* added server configurations

* markdwon appearing fine in docusaurus generated page

* added one missing configuration

* Server documentation changed according to PR comments

* change note to tip

Co-authored-by: Sumant Awasthi <[email protected]>
Co-authored-by: amitsingh <[email protected]>

* Performance: Improve performance of `collectM` (#882)

* Use ZIO response

* fix: improve cancellation performance

* refactor: use sticky server

* refactor: reduce allocations

* revert example

* Doc: Added <> operator in getting started (#910)

* fix: ++ operator doc

* fix: composition

* feature: Add `collectManaged` to Http (#909)

* Add collectManaged

* comment typo

* feature: add `echo` operator to `Socket` (#900)

* feature: add `Socket.empty` (#901)

* feature: add `Socket.empty`

* test: add unit test case for Socket#empty

Co-authored-by: Shubham Girdhar <[email protected]>

* feature: add `toHttp` to Socket.scala (#902)

* feature: add `toHttp` to Socket.scala

* test: add unit test for `toApp` to Socket.scala

Co-authored-by: Shubham Girdhar <[email protected]>

* refactor: merge Request for Client and Server (#894)

* Revert "refactor: merge Request for Client and Server (#894)" (#915)

This reverts commit fc8b9b5.

* Feature: add `toHttp` to Response (#903)

* feature: add `wrapHttp` to Response

* test: add unit test for wrapHttp in Response.scala

* refactor: operator name changed to `toHttp`

Co-authored-by: Shubham Girdhar <[email protected]>

* Update scalafmt-core to 3.4.0 (#920)

* Update sbt to 1.6.2 (#931)

* Remove outdated benchmark.md (#940)

* removed benchmark file

* removed benchmark hyperlink from readme

* refactor: rename `getHeaders` to `headers` in `ClientRequest` (#928)

* refactor: rename `getHeaders` to `headers` in `ClientRequest`

* fix: compiler errors

* fix: compiler errors

* Refactor: rename `asString` to `encode` in `Path` (#927)

* refactor: rename `asString` to `encode` in Path

* fix: compiler errors

* Disable flow Control (#854)

* Add builder pattern for URL (#930)

* Add builder pattern for URL

* Compare encoded value to string literal

* Documentation: Http (#888)

* initial commit for http documentation

* refactor: adding bold formatting for HTTP and resolving review comments

* refactor: Chnage app to application in http documentation

* refactor:fixed review comments

* added combinators section

* style: formatting the code blocks

* added getBodyAsString to http documentation

* added HttpApp section

* fixing typos

* added mapZIO and contamapZIO documentation for http

* provide layer documentation for http

* doc: added a secion- Running an HttpApp

Co-authored-by: Dino John <[email protected]>

* feature: add `Http.apply` (#949)

* Refactor: Drop `toZIO` and `wrapZIO` APIs  (#950)

* feature: add `Http.apply`

* refactor: remove ZIO wrapping APIs

* Fix: Server KeepAlive true by default and enable client to set Http version on requests (#792)

* IT cases for KeepAlive included in ServerConfigSpec

* Allow possibility of modifying server conf in HttpRunnableSpec

* reverted Header.scala

* reverted Header.scala

* reverted Header.scala

* struggling with fmt

* pull latest from main

* reverting changes in ci files

* included review recommendations

* Concise test description

* removed extra comments

* readjusted ServerConfigSpec

* enable keep alive by default; added more test cases for Http 1.0; tweaked test cases and description

* removed configurableServe

* removed unnecessary lines; shorter tests

* reverted Server disabled and some spec changes

* Test/keepalive httpversion (#800)

* make httpVersion first param in request methods

* tweaked test cases even further using requestHeaderValueByName

* changed names

* resolved comments, and more tweaking of test

* deleted extra line

Co-authored-by: Sumant Awasthi <[email protected]>

* Renamed ServerConfigSpec to KeepAliveSpec

* made httpVersion first param in ClientParams, made relevant changes

* in EncodeClientParams use http version from ClientParams

* a minor change

* changed server keepAlive = true by default, also rebased with main

Co-authored-by: Sumant Awasthi <[email protected]>

* feat: url add `isAbsolute` and `isRelative` operators (#946)

* refactor: add type-params

* feat: url add `isAbsolute` and `isRelative` operators

# Conflicts:
#	zio-http/src/main/scala/zhttp/http/URL.scala

* WebSocket Client Support (#933)

* wip: websocket client support

* test: add unit test for WebSocket using native websocket client

* fix: fromZIO in websocket client spec

* refactor: queue usage simplified

* feat: websocket client support

* refactor: imports optimized

* doc: for ClientSocketHandler

* refactor: bootstrap method

* websocket client with response support

* feat: wss support

* refactor: SocketProtocol

* refactor: add SocketClient
example: add WebSocketSimpleClient

* refactor: SocketProtocol with type evidence
refactor: general clean up

* test: for Scheme

* refactor: rename asString to encode in URI

* refactor: remove example of SecureClient

* refactor: url doesn't need to be part of the protocol. Url can be passed as an additional parameter for now. This simplifies the overall design.

* refactor: socket client for now will take the complete url

* refactor: update client example

* refactor: add `connect` operator to SocketApp

* refactor: use `url` as a string instead of URL type

* refactor: re-order methods

* style(*): apply scala fmt

* revert: unnecessary changes

* feature: add `echo` operator to `Socket`

* refactor: update type info

* feature: add `Socket.empty`

* feature: add `wrapHttp` to Response

* feature: add `toHttp` to Socket.scala

* style(*): apply scala fmt

* refactor: rename asString to encode in Scheme

* refactor: cleanup Scheme changes

* test: update test assertion

* refactor: combine server and client handlers

* refactor: add hint in touch for ClientSocketUpgradeHandler

* refactor: change package for SocketAppHandler

* refactor: rename methods  in SocketProtocol

* fix: add host header and port in Request automatically

* fix: example links (#906)

* Update getting-started.md (#907)

* refactor: rename asString to encode in Scheme (#905)

* Doc: setup (#886)

* doc: setup

* resolve: PR comments

* Update netty-incubator-transport-native-io_uring to 0.0.12.Final (#908)

* Documentation for Server (#885)

* removed config.md and make configurations part of Server page

* added server configurations

* markdwon appearing fine in docusaurus generated page

* added one missing configuration

* Server documentation changed according to PR comments

* change note to tip

Co-authored-by: Sumant Awasthi <[email protected]>
Co-authored-by: amitsingh <[email protected]>

* Performance: Improve performance of `collectM` (#882)

* Use ZIO response

* fix: improve cancellation performance

* refactor: use sticky server

* refactor: reduce allocations

* revert example

* Doc: Added <> operator in getting started (#910)

* fix: ++ operator doc

* fix: composition

* feature: Add `collectManaged` to Http (#909)

* Add collectManaged

* comment typo

* feature: add `echo` operator to `Socket` (#900)

* feature: add `Socket.empty` (#901)

* feature: add `Socket.empty`

* test: add unit test case for Socket#empty

Co-authored-by: Shubham Girdhar <[email protected]>

* refactor: add attribute to Request created by Handler

* refactor: remove "case" from ClientInboundHandler

* refactor: rename to WebSocketAppHandler

* feature: add `toHttp` to Socket.scala (#902)

* feature: add `toHttp` to Socket.scala

* test: add unit test for `toApp` to Socket.scala

Co-authored-by: Shubham Girdhar <[email protected]>

* cleaning up residue files

* refactor: rename `asString` to `encode` in Path

* refactor: rename `getHeaders` to `headers` in `ClientRequest`

* refactor: simplify client API

* refactor: update client params encoder

* style: ordering methods in URL.scala

* refactor: ClientRequest will throw if the url is invalid

* refactor: pass URL instead of String in ClientRequest

* test: fix `GetBodyAsStringSpec`

* style(*): apply scala fmt

* refactor: fix invalid url being passed in HttpRunnableSpec

* refactor: Move SSL requirements to ClientAttirbute

* feature: add `scheme` operator on URL

* feature: add `IsWebSocket` and `isSecure` operators on Scheme

* refactor: use named imports in WebSocketAppHandler

* test: fix base url for websockets

* refactor: update how flags are set inside client

* test: add non-zio spec to the spec list

* refactor: fix client test

* style: scalafmt error and remove TODO

* refactor: remove unused handler

* refactor: remove host header changes and RequestSpec (#945)

* refactor: move java scheme generators to SchemeSpec (#944)

* refactor: move java scheme generators to SchemeSpec

* refactor: resolve PR comments

* feat: url add `isAbsolute` and `isRelative` operators

* refactor: rename EncodeClientParams.scala to EncodeClientRequest

* fix: handle errors on client connection

* style(*): apply scala fmt

* refactor: simplify multiple websocket upgrades test (#948)

* refactor: resolve PR comments
style: fmt fix

* refactor: general refactor and style changes

Co-authored-by: Shubham Girdhar <[email protected]>
Co-authored-by: Shruti Verma <[email protected]>
Co-authored-by: Amit Kumar Singh <[email protected]>
Co-authored-by: Scala Steward <[email protected]>
Co-authored-by: sumawa <[email protected]>
Co-authored-by: Sumant Awasthi <[email protected]>
Co-authored-by: amitsingh <[email protected]>
Co-authored-by: James Beem <[email protected]>

* Documentation: Request (#926)

* docs: request

* doc: added client request docs

* added query param section

* doc: refactoring

* WIP

* fix: doc

* fix: doc

* request

* request

* example fixed

* Fix ssl issue due to missing peer host port hint (#952)

* feature: add connect operator on Socket (#955)

* Style: Update scala doc wrapping (#959)

* chore: update scalafmt config

* style(*): apply scala fmt

* remove get prefix (#958)

* Update scalafmt-core to 3.4.1 (#960)

* Update scalafmt-core to 3.4.2 (#962)

* Update scalafmt-core to 3.4.2 (#961)

* remove declarative API (#957)

* Update sbt-updates to 0.6.2 (#966)

* Doc: Readme (#970)

* fix: readme

* changed note

* style: rearrange methods in files (#963)

* Doc: Cookie (#974)

* doc: cookie

* doc: cookie

* cookie: changes

* refactor: drop `CanBeSilent` type-constraint from Http (#964)

* refactor: drop `CanBeSilent` type-constraint from Http

* update usage of `silent` operator

* Feature: add `Version` (#965)

* refactor: rename `asHttpMethod` to `toJava`

* refactor: add `Version` domain

* style(*): apply scala fmt

* Fix: Fire response instead of error in HExit.Failure() (#980)

* Bug fix: fixes #979

* Made changes to nonZIOSpec in ServerSpec to include tests for HExit.Failure()

* fix: typo in bug_report.md (#981)

* Update netty-all to 4.1.74.Final (#982)

* refactor: remove sealed modifier from Middleware trait (#984)

* refactor: rename method on Client (#985)

* fix: request doc (#989)

* Use a Gen of methods without HEAD for Responses with content (#992)

* doc: setup g8 (#988)

* doc: setup g8

* refactor: bump zhttp version

* Doc: for WebSocketFrame (#953)

* doc: for WebSocketFrame

* resolve: PR comments

* resolve: PR comments

* Documentation for HttpData (#987)

* Documentation for HttpData

* added server and client side usage of HttpData

* Update docs/website/docs/v1.x/dsl/http-data/index.md

Co-authored-by: Amit Kumar Singh <[email protected]>

* refactor: rename `provide` and `provideSome` (#996)

* Fix: `Content-Type` header gets incorrect values.  (#899)

* initial work

* Fix tests

* Perf enhancements

* compilation error fix

* rename getContentType

* Update zio-http/src/main/scala/zhttp/http/MediaType.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Make MediaType private, and final.

Co-authored-by: Tushar Mathur <[email protected]>

* Feat: Http from HExit (#986)

* added 2 operators to create http from HExit

* added tests for collectHExit and fromFunctionHExit

* rewrote nonZIO app in serverSpec using collectHExit

* Refactor: Remove Collect and FromFunctionZIO (#1002)

* Refactor: Implemented FromFunctionZIO using FromFunctionHExit

* Refactor: Implement Collect using FromFunctionHExit

* Fix: Binary WebSocketFrame (#1005)

* fix: change binary websocket frame arg to Chunk[Byte] from ByteBuf
Closes #1004

* test: add unit test for binary websocketframe

* style: fix formatting

* feature: add `fromFileZIO` (#1010)

* refactor: `fromFile` uses `fromFileZIO`

* feature: add `Http.fromResource` (#1009)

* Refactor: Content Type Fixes (#1008)

* style: scalafmt fixes

* style: sorting alphabetically

* fix: set conten-type only if not set already

* refactor: make internal fields private

* doc: add todo

* refactor: make caching optional

* refactor: use `Http.fromResource` in test

* refactor: fix test

* doc: fix binary constructor usage (#1014)

* Add data in `Request` trait (#1017)

* maintenance: run scalafmt once (#1027)

* Build(deps): Bump follow-redirects in /docs/website (#1029)

Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update scalafmt-core to 3.4.3 (#1022)

* Remove tuple from ResponseHandler (#1033)

* Remove tuple from ResponseHandler

* cleanup

* restructuring (#1040)

* added more examples (#1038)

* Doc: Response (#967)

* updated with main

* added operators

* revert

* setstatus change

* renaming (#1047)

* Fix: Releasing request twice (#1046)

* refactor: not releasing request

* Added failing test

* optimize path encode method (#1035)

* Feature: Static Server (#1024)

* WIP : static server from file path

* fix CI errrors

* format

* Basic functionalities work without options

* Fix errors on java8

* Fix errors on java8

* Fix refactoring error

* clean up

* Fixig tests

* working around file type detection bug

* Method not allowed.

* Better comments.

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Refactor

* More tests.

* Fix PR comments

* Moved headers to fromPath

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Fixes.

* Fixing tests

* Update zio-http/src/main/scala/zhttp/http/HttpData.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Update zio-http/src/main/scala/zhttp/http/HttpData.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* PR is closed

* Used Http.fromFile in implementation

* Remove unwanted commits

* Fixing compile issues.

* feature: add `withMediaType` operator in HeaderModifier

* refactor: drop `setMediaType` from Response

* refactor: inline file creation

* refactor: simplify implementation for fromFile and fromFileZIO

* doc: add todo comments

* refactor: update listFilesHtml implementation

* refactor: update scaladoc

* test: fix refactored misses

* test: use `+` instead of `,`

* style: scalafmt

* feature: add `mediaType` to HeaderGetters

* feature: add Http.attempt` operator

* refactor: MediaType works on extensions directly

* refactor: add tests for fromResource

* test: StaticFileServerSpec add tests for directory

* refactor: make `fromPath` use `fromFile` internally

* refactor: simplify `fromPath`

* refactor: update scala docs for Http operators

* refactor: fix type info of `Http.response`

* feature: add `listDirectory` operator

* feature: add StyledContainerHtml

* refactor: drop `Util`

* refactor: inline util HTML constructors

* test: add test for invalid file size

* doc: update comments

* style: reorder methods in Http

Co-authored-by: ashprakasan <[email protected]>

* Revert "Feature: Static Server (#1024)" (#1060)

This reverts commit 33ac08d.

* Performance: Use `CharSequence` for ServerTime (#1064)

* feature: use CharSequence in for ServerTime

* style: scalafmt

* Feature: add `dropLast` to Path (#1065)

* feature: add `dropLast` to Path

* style: scalafmt

* feature: Response.html now supports taking in Status also (#1067)

* feature: add `code` method on Status (#1068)

* refactor: fix type info of `Http.response` (#1073)

* feature: add `foldCause` to HttpError (#1066)

* feature: add `withMediaType` operator in HeaderModifier (#1071)

* Feature: add `Http.attempt` operator (#1070)

* feature: add Http.attempt` operator

* test: add tests for Http.attempt

* feature: add `getResource` and `getResourceAsFile` operators on Http (#1074)

* Update jwt-core to 9.0.4 (#1056)

* Update sbt-bloop to 1.4.13 (#1055)

* Build(deps): Bump url-parse from 1.5.4 to 1.5.7 in /docs/website (#1062)

Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.4 to 1.5.7.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](unshiftio/url-parse@1.5.4...1.5.7)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feature: add `ifModifiedSinceDecoded` (#1075)

* Feature: Static Server (#1061)

* WIP : static server from file path

* fix CI errrors

* format

* Basic functionalities work without options

* Fix errors on java8

* Fix errors on java8

* Fix refactoring error

* clean up

* Fixig tests

* working around file type detection bug

* Method not allowed.

* Better comments.

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Refactor

* More tests.

* Fix PR comments

* Moved headers to fromPath

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Fixes.

* Fixing tests

* Update zio-http/src/main/scala/zhttp/http/HttpData.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Update zio-http/src/main/scala/zhttp/http/HttpData.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* PR is closed

* Used Http.fromFile in implementation

* Remove unwanted commits

* Fixing compile issues.

* feature: add `withMediaType` operator in HeaderModifier

* refactor: drop `setMediaType` from Response

* refactor: inline file creation

* refactor: simplify implementation for fromFile and fromFileZIO

* doc: add todo comments

* refactor: update listFilesHtml implementation

* refactor: update scaladoc

* test: fix refactored misses

* test: use `+` instead of `,`

* style: scalafmt

* feature: add `mediaType` to HeaderGetters

* feature: add Http.attempt` operator

* refactor: MediaType works on extensions directly

* refactor: add tests for fromResource

* test: StaticFileServerSpec add tests for directory

* refactor: make `fromPath` use `fromFile` internally

* refactor: simplify `fromPath`

* refactor: update scala docs for Http operators

* refactor: fix type info of `Http.response`

* feature: add `listDirectory` operator

* feature: add StyledContainerHtml

* refactor: drop `Util`

* refactor: inline util HTML constructors

* test: add test for invalid file size

* doc: update comments

* style: reorder methods in Http

* refactor: improve style of StyledContainerHtml

* refactor: drop directory support

* refactor: drop directory listing

* refactor: add a color to background

* feature: add `getResource` and `getResourceAsFile` operators on Http

* feature: add `foldCause` to HttpError

* feature: add `code` method on Status

* feature: StyleContainerHtml max-width updated

* feature: Handler uses `HttpError` for empty responses

* feature: Response.html now supports taking in Status also

* feature: beautify Response.fromHttpError

* refactor: rename file to Template

* feature: add `dropLast` to Path

* feature: add `Http.template` operator

* example: update static server example

* style: scalafmt updates

* feature: use CharSequence in for ServerTime

* feature: add `ifModifiedSinceDecoded`

* feature: add `ifModifiedSinceDecoded`

* feature: add `ifModifiedSinceDecoded`

Co-authored-by: ashprakasan <[email protected]>

* issue 715 Support custom ChannelInitializer (#932)

* doc: socket (#1036)

* doc: socket

* refactor: clean up

* refactor: resolve PR comment

* fix: resolve PR comment and fix typo in `merge`

* feat: added new constructor in http (#1077)

* Feature: Add `when` operator in `Http` (#1078)

* perf: added when operator in http

* build fix

* removed jrequest from constructor

* fmt

* unsafeEncode: HttpRequest

* added when primitive

* refactor: rename `whenPath` to `whenPathEq`

Co-authored-by: Tushar Mathur <[email protected]>

* Feature: Effectful Auth Middleware (#1079)

* added effectful athu middlewares

* added tests

* refactor: stopped calling tuple of credentials as Header

* added credentials

* Test: Server Settings Support in `HttpRunnableSpec#serve` (#1053)

* feat: server settings support in HttpRunnableSpec#serve

* resolve: PR comments

* refactor: website docs sidebar pages repositioned (#1049)

* Feat: Server Request Decompression (#1095)

* feat: server request decompression

* test: add test for deflate

* Feature: Added helper checkers to `Status` class (#1058)

* Added helper checkers to Status class

* For status, formatted, removed  and made them def

Co-authored-by: Roberto Leibman <[email protected]>

* Build(deps): Bump prismjs from 1.26.0 to 1.27.0 in /docs/website (#1100)

Bumps [prismjs](https://github.com/PrismJS/prism) from 1.26.0 to 1.27.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](PrismJS/prism@v1.26.0...v1.27.0)

---
updated-dependencies:
- dependency-name: prismjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): Bump url-parse from 1.5.7 to 1.5.10 in /docs/website (#1103)

Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.7 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](unshiftio/url-parse@1.5.7...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* added try catch in handler to catch throwable apps (#1099)

* removed flatten from test (#1109)

* Feature: Request Streaming (#1048)

* introduce `Incoming` and `Outgoing` inHttpData

* streaming support

* benchmark disable objectAggregator

* cleanup

* refactor

* cleanup + PR comments

* cleanup + PR comments

* cleanup + PR comments

* refactor: rename variable

* memory leak

* refactor: Handler now extends ChannelInboundHandlerAdapter

* refactor: remove unused methods from UnsafeChannel

* remove bodyAsCharSequenceStream operator

* refactor: remove unnecessary methods on HttpData

* refactor: re-implement `bodyAsStream`

* refactor: remove unsafe modification of pipeline from HttpData

* refactor: rename HttpData types

* fix 2.12 build

* refactor: remove type param

* PR comment

* PR comment

* refaector: simplify releaseRequest

* refactor: reorder methods in ServerResponseHandler

* refactor: make methods final

* refactor: rename HttpData traits

* add `bodyAsByteArray` and derive `body` and `bodyAsString` from it.

* add test: should throw error for HttpData.Incoming

* Introduce `useAggregator` method on settings and use it everywhere

* remove sharable from `ServerResponseHandler`

* Update zio-http/src/main/scala/zhttp/http/Request.scala

* refactor: remove unnecessary pattern matching

* throw exception on unknown message type

* simplify test

* refactor: change order of ContentHandler. Move it before the RequestHandler

* test: update test structure

* refactor: move pattern match logic to WebSocketUpgrade

* revert addBefore Change because of degrade in performance (#1089)

* fix static server issue with streaming

* take case of auto read if body is not used

* autoRead when needed

* Update zio-http/src/main/scala/zhttp/service/RequestBodyHandler.scala

* Update zio-http/src/main/scala/zhttp/http/Response.scala

* Update zio-http/src/main/scala/zhttp/http/Response.scala

* remove test which is not used

* Update zio-http/src/main/scala/zhttp/service/Handler.scala

Co-authored-by: Shrey Mehta <[email protected]>

* Update zio-http/src/main/scala/zhttp/service/Handler.scala

Co-authored-by: Shrey Mehta <[email protected]>

* style: fmt

* exclude Head in 404 check

Co-authored-by: Tushar Mathur <[email protected]>
Co-authored-by: Shrey Mehta <[email protected]>

* Fix toByteBuf for streamed HttpData (#1118)

* Fix toByteBuf for streamed HttpData

* example: more secure string compare for login (#1120)

* Feature: Introduced defect channel for `Http` (#1083)

* Introduced defect channel for Http and added helpful combinators for error handling

* Reformat code

* Removed doubtful combinator Http.run

* Simplified implementation of catchNonFatalOrDie

* Simplified implementation of catchSome

* Guarded Http.execute() with try-catch block in order to convert unexpectable exceptions to defects

* Added test to check Http.catchSomeDefect catches throws defects

* Fixed warnings about shadowing type parameters

* Fix: fold over defect cause

* Formatted HttpSpec.scala

* Perf: catch defects only where they may occur

* Fmt

Co-authored-by: Nikolay Artamonov <[email protected]>

* Enhancement: Merge server and client Responses (#1111)

* Merge client and server Request

* Remove IsResponse

* rename getBodyAsString => bodyAsString in doc (#1124)

* removed links from scaladoc (#1127)

* Feature: Add `version` to `Request` (#1094)

* introduce `Incoming` and `Outgoing` inHttpData

* streaming support

* benchmark disable objectAggregator

* cleanup

* refactor

* cleanup + PR comments

* cleanup + PR comments

* cleanup + PR comments

* refactor: rename variable

* memory leak

* refactor: Handler now extends ChannelInboundHandlerAdapter

* refactor: remove unused methods from UnsafeChannel

* remove bodyAsCharSequenceStream operator

* refactor: remove unnecessary methods on HttpData

* refactor: re-implement `bodyAsStream`

* refactor: remove unsafe modification of pipeline from HttpData

* refactor: rename HttpData types

* fix 2.12 build

* refactor: remove type param

* PR comment

* PR comment

* refaector: simplify releaseRequest

* refactor: reorder methods in ServerResponseHandler

* refactor: make methods final

* refactor: rename HttpData traits

* add `bodyAsByteArray` and derive `body` and `bodyAsString` from it.

* add test: should throw error for HttpData.Incoming

* Introduce `useAggregator` method on settings and use it everywhere

* remove sharable from `ServerResponseHandler`

* Update zio-http/src/main/scala/zhttp/http/Request.scala

* refactor: remove unnecessary pattern matching

* throw exception on unknown message type

* simplify test

* refactor: change order of ContentHandler. Move it before the RequestHandler

* test: update test structure

* refactor: move pattern match logic to WebSocketUpgrade

* revert addBefore Change because of degrade in performance (#1089)

* fix static server issue with streaming

* Introduce version in Request

* Delete `Request.make`

* add missing scaladoc

Co-authored-by: Tushar Mathur <[email protected]>

* Refactor: Merge client and server `Request` (#1125)

* introduce `Incoming` and `Outgoing` inHttpData

* streaming support

* benchmark disable objectAggregator

* cleanup

* refactor

* cleanup + PR comments

* cleanup + PR comments

* cleanup + PR comments

* refactor: rename variable

* memory leak

* refactor: Handler now extends ChannelInboundHandlerAdapter

* refactor: remove unused methods from UnsafeChannel

* remove bodyAsCharSequenceStream operator

* refactor: remove unnecessary methods on HttpData

* refactor: re-implement `bodyAsStream`

* refactor: remove unsafe modification of pipeline from HttpData

* refactor: rename HttpData types

* fix 2.12 build

* refactor: remove type param

* PR comment

* PR comment

* refaector: simplify releaseRequest

* refactor: reorder methods in ServerResponseHandler

* refactor: make methods final

* refactor: rename HttpData traits

* add `bodyAsByteArray` and derive `body` and `bodyAsString` from it.

* add test: should throw error for HttpData.Incoming

* Introduce `useAggregator` method on settings and use it everywhere

* remove sharable from `ServerResponseHandler`

* Update zio-http/src/main/scala/zhttp/http/Request.scala

* refactor: remove unnecessary pattern matching

* throw exception on unknown message type

* simplify test

* refactor: change order of ContentHandler. Move it before the RequestHandler

* test: update test structure

* refactor: move pattern match logic to WebSocketUpgrade

* revert addBefore Change because of degrade in performance (#1089)

* fix static server issue with streaming

* Introduce version in Request

* Merge Client and Server Request

* Delete `Request.make`

* Gen refactor

* rename files

* make function private

* rename attribute

* rename attribute

Co-authored-by: Tushar Mathur <[email protected]>

* Refactor: Http.Status names to Camel Case (#1129)

* support custom Status for HtppError

* support custom Status for HttpError

* updated code based on review.

* fixed tests

* changed from Capitalized Status names to Camel Case

* proper camel case usage

Co-authored-by: Gabriel Ciuloaica <[email protected]>

* Feature: Support Custom statuses code (#1121)

* support custom Status for HtppError

* support custom Status for HttpError

* updated code based on review.

* fixed tests

* Refactor: Http.Status names to Camel Case (#1128)

* changed from Capitalized Status names to Camel Case

* proper camel case usage

* Update zio-http/src/main/scala/zhttp/http/HttpError.scala

Co-authored-by: Tushar Mathur <[email protected]>

* fixed after conflict

* updated tests

Co-authored-by: Tushar Mathur <[email protected]>

* Enhancement: Added combine operator (#1106)

* enhancement: added combine operator

* added test cases with three apps

* refactor: plaintextBenchmarkServer

* test case updated

* removed flatten from test

* test case updated

* added test for collectHttp

* simplified tests

* added failing test

* fixed test

* refactor: cleaning up the execute method in Http

Co-authored-by: Tushar Mathur <[email protected]>

* Refactor: Added lift in PartialCollect (#1105)

* refactor: added lift in partialCollect

* added text in path

* refactor: reduce iterations of benchmarks

Co-authored-by: Tushar Mathur <[email protected]>

* Feature: Bearer auth middleware (#1097)

* added header constructor for bearer authorization

* added jwt auth middlewares

* updated the Auth examples

* added tests

* renamed the auth middleware from jwt to barer

* refactor: example AuthenticationClient

* added scala doc for examples, renamed variables in tests

Co-authored-by: Shubham Girdhar <[email protected]>
Co-authored-by: amitsingh <[email protected]>

* Update netty-all to 4.1.75.Final (#1130)

* Refactor: `Request` and `Response` to extend `HttpDataExtension` (#1112)

* Request Streaming Example

* refactor: add HttpDataExtension

* doc: add documentation

* fix: compiler errors

Co-authored-by: Tushar Mathur <[email protected]>

* Refactor: Make `Http.getResource` consistent with `ZStream.fromResource` (#1113)

* Fix `Http.getResource`

Code based on https://github.com/zio/zio/blob/v1.0.13/streams/jvm/src/main/scala/zio/stream/platform.scala#L385-L398

* Improve `File` creation lazyness: The `File` instance will be created much later in the pipe

* Fix tests

* Fix tests

* Update zio-http/src/main/scala/zhttp/http/Http.scala

Co-authored-by: Tushar Mathur <[email protected]>

* Remove `Blocking` from the type signature as requested

Co-authored-by: Tushar Mathur <[email protected]>

* Update netty-incubator-transport-native-io_uring to 0.0.13.Final (#1133)

* Add more useful toString method for Request (#995)

* Add more useful toString method for Request

* Fmt

* Moved toString to Request trait

* Added a few tests of Request.toString

* Fmt

* Improved tests for Request.toString

* Added Scala doc for Request.toString

* Added protocol version to a string representation of Request

* Fmt

* fix(request): fix scala doc (#1138)

* Performance: Improve HttpData toByteBuf (#1137)

* refactor: add blocking layer for file based constructors

* refactor: use JavaFile instead of RandomAccessFile

* doc: fix StaticServer example

* style: scalafmt

* refactor: clean up HttpData

* refactor: remove blocking

* refactor: remove unnecessary overload in ResponseHandler

* test: add timeout and use ByteBufConfig to control encoding

* refactor: add ByteBufConfig

* refactor: rename types internally

* style: fmt

Co-authored-by: amitsingh <[email protected]>

* Fix: Handle HttpClient Interruption on connection close (#1039)

* the promise has to be uninteruptible to avoid loosing the response message in case the netty chanel is getting closed due to a unhandled exception

* added a note about reasons why the promise is made uninterruptible.

* New chapter: efficient development process (#1145)

The dream11 gitter template already contains the most important sbt plugins to setup an efficient development process. To guide newcomers to zio-http, the newely added chapter gives an introduction on their purpose and how to use them.

* do not watch reStop (#1146)

Removed the tilde (~)  before reStop, as it is not helpful to run this in watch-mode

* Feature: add `Middleware.codecHttp` (#1141)

* feature: add codecHttp

* feature: add `codecMiddleware` to Http

* added tests

Co-authored-by: shrutiverma97 <[email protected]>

* Performance: Use `CharSequence` internally wherever possible (#1142)

* refactor: add blocking layer for file based constructors

* refactor: use JavaFile instead of RandomAccessFile

* doc: fix StaticServer example

* style: scalafmt

* refactor: clean up HttpData

* refactor: remove blocking

* refactor: remove unnecessary overload in ResponseHandler

* test: add timeout and use ByteBufConfig to control encoding

* refactor: add ByteBufConfig

* performance: use `AsciiString` inside of HttpData

* performance: use CharSequence in `Http.template` and `Http.text`

* performance: use `CharSequence` in Response.json, Response.text and Response.redirect

* performance: use `CharSequence` in Html templates

* refactor: add `bodyAsCharSequence` to HttpDataExtension

* Update scala-collection-compat to 2.7.0 (#1154)

* Update jwt-core to 9.0.5 (#1150)

* feature: add `narrow` operator to Http (#1161)

* feature: add `toHttp` method to `Response` (#1160)

* refactor: DynamicServer is not bound to HttpEnv only (#1159)

* fix: Socket.end implementation (#1158)

* Update sbt-scala3-migrate to 0.5.1 (#1163)

Co-authored-by: Shubham Girdhar <[email protected]>
Co-authored-by: Shruti Verma <[email protected]>
Co-authored-by: Gabriel Ciuloaica <[email protected]>
Co-authored-by: Tushar Mathur <[email protected]>
Co-authored-by: Javier Goday <[email protected]>
Co-authored-by: Tushar Mathur <[email protected]>
Co-authored-by: Brendan McKee <[email protected]>
Co-authored-by: kaushik143 <[email protected]>
Co-authored-by: zsfVishnu-d11 <[email protected]>
Co-authored-by: Scala Steward <[email protected]>
Co-authored-by: sumawa <[email protected]>
Co-authored-by: Sumant Awasthi <[email protected]>
Co-authored-by: James Beem <[email protected]>
Co-authored-by: Dino Babu John <[email protected]>
Co-authored-by: Dino John <[email protected]>
Co-authored-by: AshPrakasan <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: RAJKUMAR NATARAJAN <[email protected]>
Co-authored-by: Roberto Leibman <[email protected]>
Co-authored-by: Roberto Leibman <[email protected]>
Co-authored-by: Shrey Mehta <[email protected]>
Co-authored-by: ex0ns <[email protected]>
Co-authored-by: Guillaume Massé <[email protected]>
Co-authored-by: Nikolay Artamonov <[email protected]>
Co-authored-by: Nikolay Artamonov <[email protected]>
Co-authored-by: Gabriel Ciuloaica <[email protected]>
Co-authored-by: Jules Ivanic <[email protected]>
Co-authored-by: Dani Rey <[email protected]>
Co-authored-by: shrutiverma97 <[email protected]>
  • Loading branch information
1 parent 093b1e8 commit f3c0db5
Show file tree
Hide file tree
Showing 33 changed files with 715 additions and 470 deletions.
133 changes: 0 additions & 133 deletions docs/website/docs/getting-started.md

This file was deleted.

2 changes: 1 addition & 1 deletion docs/website/docs/v1.x/dsl/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ The below snippet tests an app that takes `Int` as input and responds by adding
object Spec extends DefaultRunnableSpec {

def spec = suite("http")(
test("1 + 1 = 2") {
testM("1 + 1 = 2") {
val app: Http[Any, Nothing, Int, Int] = Http.fromFunction[Int](_ + 1)
assertM(app(1))(equalTo(2))
}
Expand Down
4 changes: 2 additions & 2 deletions docs/website/docs/v1.x/dsl/server.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ This section describes, ZIO HTTP Server and different configurations you can pro
override def run(args: List[String]): URIO[zio.ZEnv, ExitCode] = {
server.make
.use(start =>
Console.printLine(s"Server started on port ${start.port}")
console.putStrLn(s"Server started on port ${start.port}")
*> ZIO.never,
).provideCustomLayer(ServerChannelFactory.auto ++ EventLoopGroup.auto(2))
.exitCode
Expand Down Expand Up @@ -84,7 +84,7 @@ object HelloWorldAdvanced extends App {
server.make
.use(_ =>
// Waiting for the server to start
Console.printLine(s"Server started on port $PORT")
console.putStrLn(s"Server started on port $PORT")

// Ensures the server doesn't die after printing
*> ZIO.never,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ object HelloWorldAdvanced extends App {
server.make
.use(start =>
// Waiting for the server to start
Console.printLine(s"Server started on port ${start.port}")
console.putStrLn(s"Server started on port ${start.port}")

// Ensures the server doesn't die after printing
*> ZIO.never,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ object HttpsClient extends App {
val program = for {
res <- Client.request(url, headers, sslOption)
data <- res.bodyAsString
_ <- Console.printLine { data }
_ <- console.putStrLn { data }
} yield ()

override def run(args: List[String]): URIO[zio.ZEnv, ExitCode]
Expand Down
2 changes: 1 addition & 1 deletion docs/website/docs/v1.x/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ import zhttp.http._
object Spec extends DefaultRunnableSpec {

def spec = suite("http")(
test("should be ok") {
testM("should be ok") {
val app = Http.ok
val req = Request()
assertM(app(req))(equalTo(Response.ok))
Expand Down
33 changes: 33 additions & 0 deletions docs/website/docs/v1.x/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,36 @@ sbt new dream11/zio-http.g8
* [scalafix-organize-imports](https://github.com/liancheng/scalafix-organize-imports)
* [sbt-revolver](https://github.com/spray/sbt-revolver)

## Efficient development process

The dependencies in the Dream11 g8 template were added to enable an efficient development process.

### sbt-revolver "hot-reload" changes

Sbt-revolver can watch application resources for change and automatically re-compile and then re-start the application under development. This provides a fast development-turnaround, the closest you can get to real hot-reloading.

Start your application from _sbt_ with the following command

```shell
~reStart
```

Pressing enter will stop watching for changes, but not stop the application. Use the following command to stop the application (shutdown hooks will not be executed).

```
reStop
```

In case you already have an _sbt_ server running, i.e. to provide your IDE with BSP information, use _sbtn_ instead of _sbt_ to run `~reStart`, this let's both _sbt_ sessions share one server.

### scalafmt automatically format source code

scalafmt will automatically format all source code and assert that all team members use consistent formatting.

### scalafix refactoring and linting

scalafix will mainly be used as a linting tool during everyday development, for example by removing unused dependencies or reporting errors for disabled features. Additionally it can simplify upgrades of Scala versions and dependencies, by executing predefined migration paths.

### sbt-native-packager

sbt-native-packager can package the application in the most popular formats, for example Docker images, rpm packages or graalVM native images.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package example

import io.netty.util.AsciiString
import zhttp.http._
import zhttp.http.{Http, _}
import zhttp.service.server.ServerChannelFactory
import zhttp.service.{EventLoopGroup, Server}
import zio.{ExitCode, UIO, URIO, ZIOAppDefault}
Expand Down
2 changes: 1 addition & 1 deletion project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ object Dependencies {
val JwtCoreVersion = "9.0.4"
val NettyVersion = "4.1.75.Final"
val NettyIncubatorVersion = "0.0.13.Final"
val ScalaCompactCollectionVersion = "2.6.0"
val ScalaCompactCollectionVersion = "2.7.0"
val ZioVersion = "2.0.0-RC2"
val SttpVersion = "3.3.18"

Expand Down
2 changes: 1 addition & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.3")
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.6.2")
addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1")
addSbtPlugin("com.codecommit" % "sbt-github-actions" % "0.14.2")
addSbtPlugin("ch.epfl.scala" % "sbt-scala3-migrate" % "0.5.0")
addSbtPlugin("ch.epfl.scala" % "sbt-scala3-migrate" % "0.5.1")
addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.10")
14 changes: 7 additions & 7 deletions zio-http/src/main/scala/zhttp/html/Dom.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ package zhttp.html
* elements.
*/
sealed trait Dom { self =>
def encode: String = self match {
def encode: CharSequence = self match {
case Dom.Element(name, children) =>
val attributes = children.collect { case self: Dom.Attribute => self.encode }

Expand All @@ -35,19 +35,19 @@ sealed trait Dom { self =>
}

object Dom {
def attr(name: String, value: String): Dom = Dom.Attribute(name, value)
def attr(name: CharSequence, value: CharSequence): Dom = Dom.Attribute(name, value)

def element(name: String, children: Dom*): Dom = Dom.Element(name, children)
def element(name: CharSequence, children: Dom*): Dom = Dom.Element(name, children)

def empty: Dom = Empty

def text(data: String): Dom = Dom.Text(data)
def text(data: CharSequence): Dom = Dom.Text(data)

private[zhttp] final case class Element(name: String, children: Seq[Dom]) extends Dom
private[zhttp] final case class Element(name: CharSequence, children: Seq[Dom]) extends Dom

private[zhttp] final case class Text(data: String) extends Dom
private[zhttp] final case class Text(data: CharSequence) extends Dom

private[zhttp] final case class Attribute(name: String, value: String) extends Dom
private[zhttp] final case class Attribute(name: CharSequence, value: CharSequence) extends Dom

private[zhttp] object Empty extends Dom
}
6 changes: 3 additions & 3 deletions zio-http/src/main/scala/zhttp/html/Elements.scala
Original file line number Diff line number Diff line change
Expand Up @@ -250,12 +250,12 @@ trait Elements {
}

object Element {
private[zhttp] val voidElementNames: Set[String] =
private[zhttp] val voidElementNames: Set[CharSequence] =
Set(area, base, br, col, embed, hr, img, input, link, meta, param, source, track, wbr).map(_.name)

private[zhttp] def isVoid(name: String): Boolean = voidElementNames.contains(name)
private[zhttp] def isVoid(name: CharSequence): Boolean = voidElementNames.contains(name)

case class PartialElement(name: String) {
case class PartialElement(name: CharSequence) {
def apply(children: Html*): Dom = Dom.element(
name,
children.collect {
Expand Down
4 changes: 2 additions & 2 deletions zio-http/src/main/scala/zhttp/html/Html.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import scala.language.implicitConversions
* A view is a domain that used generate HTML.
*/
sealed trait Html { self =>
def encode: String = {
def encode: CharSequence = {
self match {
case Html.Empty => ""
case Html.Single(element) => element.encode
Expand All @@ -16,7 +16,7 @@ sealed trait Html { self =>
}

object Html {
implicit def fromString(string: String): Html = Html.Single(Dom.text(string))
implicit def fromString(string: CharSequence): Html = Html.Single(Dom.text(string))

implicit def fromSeq(elements: Seq[Dom]): Html = Html.Multiple(elements)

Expand Down
2 changes: 1 addition & 1 deletion zio-http/src/main/scala/zhttp/html/Template.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package zhttp.html
*/
object Template {

def container(heading: String)(element: Html): Html = {
def container(heading: CharSequence)(element: Html): Html = {
html(
head(
title(s"ZIO Http - ${heading}"),
Expand Down
Loading

0 comments on commit f3c0db5

Please sign in to comment.