Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement authenticator #198

Merged
merged 2 commits into from Feb 11, 2021
Merged

Implement authenticator #198

merged 2 commits into from Feb 11, 2021

Conversation

grahamsmith
Copy link
Contributor

@grahamsmith grahamsmith commented Jan 16, 2021

An attempt to solve #47

Inspired by OkHTTP's authenticator

The idea is to provide a reactive authentication in the event that an auth challenge is raised. It returns a nullable Request that contains a possible update to the original Request to satisfy the authentication challenge.

e.g. a request is made to a server that responses with a 401. The authenticator can be implemented however needed to update the original request, such as using a refresh token, then pass a new request back to be executed.

@grahamsmith
Copy link
Contributor Author

I can add some tests (with some help) if the general idea is accepted.

@stewemetal stewemetal added the enhancement New feature or request label Jan 16, 2021
@JEuler
Copy link
Collaborator

JEuler commented Jan 16, 2021

Hi! Cool! Could you show please the example of usage? So, for example, I have refresh_token and refreshToken endpoint, how I should implement the Authenticator?

@lejard-h
Copy link
Owner

Not sure to understand why this would allow retrying request, maybe the name Authenticator is confusing. I am not familiar with okHTTP, do you have an example ?

@grahamsmith
Copy link
Contributor Author

grahamsmith commented Jan 17, 2021

Basic example:

class MyAuthenticator extends Authenticator {
  
  @override
  FutureOr<Request> authenticate(Request request, Response<dynamic> response) async{
    
    if(response.statusCode == 401) {
      
      var newToken = await refreshToken();
      
      var updatedHeaders = Map.of(request.headers);

      updatedHeaders.update('Authorization', (value) => newToken, ifAbsent: () => newToken);
      
      return request.copyWith(headers: updatedHeaders);
    } else {
      return null;
    }
  }
  
  Future<String> refreshToken() async{
    //refresh the accessToken using refreshToken however needed....
    //this could be done either via http client or a ChopperService or a repository could be a dependency, this approach is intentionally not opinionated about how this works.
  }
}

There are strategies around handling infinite loops. Some include via headers, checking paths or counting retries and many more options. This implementation is designed to be un-opinionated as everyone's implementations will have their own nuances.

I think the name makes sense.

Plenty of tutorials for OkHttp that are relatable. I would imagine a lot of mobile devs moving to Flutter will reference it due to its popularity (over 39,000 stars on Github).

https://github.com/square/okhttp/blob/480c20e46bb1745e280e42607bbcc73b2c953d97/okhttp/src/main/kotlin/okhttp3/Authenticator.kt
https://square.github.io/okhttp/4.x/okhttp/okhttp3/-authenticator/
https://medium.com/@olempico/okhttp-authenticator-lets-be-secure-in-an-elegant-way-3bf6096752dc
https://objectpartners.com/2018/06/08/okhttp-authenticator-selectively-reauthorizing-requests/
https://blog.coinbase.com/okhttp-oauth-token-refreshes-b598f55dd3b2
https://www.lordcodes.com/articles/authorization-of-web-requests-for-okhttp-and-retrofit
https://stackoverflow.com/questions/22490057/android-okhttp-with-basic-authentication
http://sangsoonam.github.io/2019/03/06/okhttp-how-to-refresh-access-token-efficiently.html
https://medium.com/tiendeo-tech/android-refreshing-token-proactively-with-okhttp-interceptors-e7b90c47f5e7
https://medium.com/@sandeeptengale/problem-solved-2-access-token-refresh-with-okhttp-authenticator-5ccb798ede70

@grahamsmith
Copy link
Contributor Author

grahamsmith commented Jan 17, 2021

I think there is also some work to do around not invoking the interceptors again. I wanted to start simple before getting into this and see if there was buy in.

edit: I forgot to mention that this change should be non breaking so it would not cause update headaches if people do not want to update 👍

@stewemetal
Copy link
Collaborator

This is a good approach IMHO. Users of Chopper can utilize the Request/Response API to implement retry with authentication logic without depending on http directly.

It seems to be in line with OkHttp's solution linked above.

I'll do a review on the current implementation.

If this is merged, documentation should be updated with explanation on how the Authenticator should be used with example(s).

@stewemetal stewemetal added this to the 3.0.7 release milestone Jan 23, 2021
@grahamsmith
Copy link
Contributor Author

@stewemetal - Is there anything I can do to help push this along? I really could do with this functionality in my own project. Noticed it was added to the milestone which is cool 👍

@JEuler
Copy link
Collaborator

JEuler commented Jan 31, 2021

I think this can be approved, as I saw your example. "Infinite" retries is a local problem, that can be solved per project. Looking cool.

But, @stewemetal, please also have a look! :)

import 'package:chopper/chopper.dart';

/// Returns a request that includes a credential to satisfy an authentication challenge in
/// [response]. Returns null if the challenge cannot be satisfied.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This description fits the authenticate method rather than the whole class. Also, I would rephrase it like this:

/// This method should return a [Request] that includes credentials to satisfy an authentication challenge received in
/// [response]. It should return `null` if the challenge cannot be satisfied.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the class needs a proper, more generic description too. I'd even go as far as putting a link to OkHttp's similar mechanic (like you did in the PR).

@@ -37,6 +38,10 @@ class ChopperClient {
/// the request and response interceptors are called respectively.
final Converter converter;

/// The [Authenticator] that handles provides reactive authentication for a
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"handles provides" -> "can provide"

@@ -316,6 +322,15 @@ class ChopperClient {
final response = await http.Response.fromStream(streamRes);
dynamic res = Response(response, response.body);

if(authenticator != null) {

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This empty line is unnecessary.

@stewemetal
Copy link
Collaborator

stewemetal commented Jan 31, 2021

I've done a quick review on the PR.

@grahamsmith Please fix the mentioned things. 😉

@stewemetal
Copy link
Collaborator

Also, I'll find a place for the example implementation in the updated docs, it looks good. 😄

@stewemetal
Copy link
Collaborator

@stewemetal - Is there anything I can do to help push this along? I really could do with this functionality in my own project. Noticed it was added to the milestone which is cool 👍

I'd like to consult with @lejard-h and @JEuler soon on the topic of release management and releasing 3.0.7 with revamped docs and guides. As the Authenticator mechanic is a non-breaking change, it can indeed be part of 3.0.7 (hence the inclusion to the milestone).

@JEuler
Copy link
Collaborator

JEuler commented Jan 31, 2021

As I said, I feel like it is a cool, non-breaking, additional mechanic, so, no problem with adding it to the upcoming release 👍

@grahamsmith
Copy link
Contributor Author

@stewemetal happy to make the changes. For future PRs I think it would be quicker to just make the changes (I believe maintainers are allowed to contribute back to my fork) rather than me copy paste them in.

@JEuler
Copy link
Collaborator

JEuler commented Feb 6, 2021

@grahamsmith I've added changes requested from @stewemetal :) Without the description.

@grahamsmith
Copy link
Contributor Author

Amazing thanks! I've been having a tough week so that's very much appreciated 🎉😄

@JEuler
Copy link
Collaborator

JEuler commented Feb 8, 2021

@stewemetal Do you want us to make this change with the description? Or we are okay to merge it as it is? :)

@stewemetal
Copy link
Collaborator

I think it's OK, I'll approve it. 😄
I'll add the extra description in another docs update PR.

@stewemetal stewemetal merged commit bbddf16 into lejard-h:develop Feb 11, 2021
lejard-h added a commit that referenced this pull request Mar 27, 2021
* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
lejard-h added a commit that referenced this pull request Apr 3, 2021
* coverage

* coverage test

* push

* regenerate

* regenerate

* token

* fix

* fix

* fix fix fix

* dart action

* cleanup

* Null safety (non stable version) (#219)

* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* cleanup

* regenerate

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
@Aqluse
Copy link

Aqluse commented Apr 9, 2021

image
You guys sure that this authenticator != null check won't let us fall into an endless recursion? Because I seem to get the one

@grahamsmith
Copy link
Contributor Author

@Aqluse yes someone has broken the implementation I wrote.

It was originally

var updatedRequest = authenticator.authenticate(request, res);

      if(updatedRequest != null) {
        res = await send(updatedRequest);
      }

@stewemetal and friends this will now result in an infinite loop with current implementation.

@JEuler
Copy link
Collaborator

JEuler commented Apr 9, 2021

Let's fix it then :)

@grahamsmith
Copy link
Contributor Author

I'm on holiday at the moment so will leave to those with Dev laptops and reliable internet.

@stewemetal
Copy link
Collaborator

Thanks for pointing this out! This implementation has gone awkward at some point during the null safety migration.

Would this change fix your use-case? It breaks the current Authenticator implementations, but it's just a first try on a quick fix:

abstract class Authenticator {
  FutureOr<Request?> authenticate(Request request, Response response);
}


// send()
...
if (authenticator != null) {
  var updatedRequest = await authenticator!.authenticate(request, res);

  if (updatedRequest != null) {
    res = await send(updatedRequest);
  }
}
...

@grahamsmith
Copy link
Contributor Author

Looks good

@stewemetal
Copy link
Collaborator

Fixed in #241

lejard-h added a commit that referenced this pull request Apr 10, 2021
* Null safety (non stable version) (#219)

* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* fix params and headers

* fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
lejard-h added a commit that referenced this pull request Apr 13, 2021
* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

* flutter fav badge

* Fix Flutter favorites badge (#234)

* chopper_built_value - null safety support (#231)

* Fix typo in converters.md (#236)

* Cleanup deprecated (#228)

* remove deprecated filefield

* Request.replace

* PartValue.replace

* Response.replace

* cleanup

* add chopper_built_value to github actions (#232)

* Cleanup nullable hashmap APIs (#233)

* GIthub actions - code coverage (#229)

* coverage

* coverage test

* push

* regenerate

* regenerate

* token

* fix

* fix

* fix fix fix

* dart action

* cleanup

* Null safety (non stable version) (#219)

* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* cleanup

* regenerate

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix infinite loop when using Authenticators (#241)

* Generator - fix headers and required parameters (#239)

* Null safety (non stable version) (#219)

* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* fix params and headers

* fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* 4.0.0-nullsafety.1

* chopper_built_value 1.0.0-nullsafety.0

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
lejard-h added a commit that referenced this pull request May 17, 2021
* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

* flutter fav badge

* Fix Flutter favorites badge (#234)

* chopper_built_value - null safety support (#231)

* Fix typo in converters.md (#236)

* Cleanup deprecated (#228)

* remove deprecated filefield

* Request.replace

* PartValue.replace

* Response.replace

* cleanup

* add chopper_built_value to github actions (#232)

* Cleanup nullable hashmap APIs (#233)

* GIthub actions - code coverage (#229)

* coverage

* coverage test

* push

* regenerate

* regenerate

* token

* fix

* fix

* fix fix fix

* dart action

* cleanup

* Null safety (non stable version) (#219)

* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* cleanup

* regenerate

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* Fix infinite loop when using Authenticators (#241)

* Generator - fix headers and required parameters (#239)

* Null safety (non stable version) (#219)

* GZip note

* Update faq.md

* CR fixes

* Moved to the faq.md

* HTTP Auth example

* CR fix

* CR fix

* Base url note

Runtime base url note update

Update faq.md

* Packages upgraded (#142)

* Release 3.0.3

* add develop branch to travis

* fix travis badge

* Make code quality improvements in generator.dart (#147)

* Add optionalBody parameter to suppress warnings (#151)

* Add optionalBody parameter to suppress warnings

Fixes #149

* Improve formatting

* Remove redundant _methodWithBody function

Use a single source of truth (the method's optionalBody property)

* Show optional body hint in warning message

* Make optionalBody configurable for all methods

Explicitly set the default value for every method

* Specify type for optionalBody argument

Co-authored-by: Wilko Manger <wilko@pattle.org>

* Fix typo and invalid code sample in documentation (#156)

* Preserve uri current query params in buildUri (#166)

* This allows chopper API methods with generic attributes (#170)

@post(path: URL.DOCUMENT_PRIOR_INFO)
  Future<Response<T>> getPriorInfo<T>(@Body() Params params);

Which is usefull when single API method may respond differently
depending on request parameter values.

Co-authored-by: Aleksandr Malkov <radied@gmail.com>

* Make conversion helpers can be `async` (#175)

#174 
- locally tested

* Dependency update (#178)

Version bumped

Removed Angular / Web examples

With nullability added

Update generator.dart

Dependency cleanup

Update pubspec.yaml

Update pubspec.yaml

* Re-add Angular example and fix travis (#181)

Re add example removed here (https://github.com/lejard-h/chopper/pull/178/files)

Upgrade to Angular 6, but I had to remove jaguar_serializer which is not maintain anymore (last update 1 year ago).

Then use new Dart command to run pub, analyzer and formatter

* Publish package from travis (#182)

* fix

* fix scopes

* allow_failure

* comment override

* Add suport for JsonApi utf8 serialization (#185)

* Add suport for JsonApi utf8 serialization

* Move json api header into a constant

* The Big Public API Documentation update, volume 1. (#189)

* Update converters.md with wording and formatting fixes

* Update the documentation of classes and functions in interceptor.dart

* Update the documentation of classes and functions in base.dart

* Update the documentation of public functions in utils.dart

* Update the documentation of public classes and functions in request.dart

* Update the documentation of public classes and functions in response.dart

* Update the documentation of ConvertRequest, ConvertResponse, and FactoryConverter in annotations.dart

* Fix typos in the documentation in annotations.dart

* Remove TODO from ChopperService.definitionType's documentation

* Add example usage to FactoryConverter's documentation

* Fix accidental typo in ChopperService's class name

* The Big Public API Documentation update, volume 2. (#193)

* Update the documentation of BuiltValueConverter

* Update the documentation and usage guide of BuiltValueConverter

* Update description texts in pubspec.yaml files

* Change homepage tag to documentation in chopper/pubspec.yaml

* Change homepage tag to documentation in chopper_built_value/pubspec.yaml and make it point to its actual documentation page

* Change homepage tag to documentation in chopper_generator/pubspec.yaml

* Change homepage tag to documentation in chopper/example/pubspec.yaml and make it point to the actual documentation

* Fix wording in chopper_generator/README.md

* Fix wording in chopper_built_value/README.md

* Fix HTML escape sequences escaping into markdown and inline docs; Fix code sample syntax errors in some docs

Those pesky escapists.

* Add dynamic version tag to built-value-converter.md

* Fix typo in the package name in the installation section of built-value-converter.md

* Fix typo in built-value-converter.md

* Reorganize and update chopper/README.md

* The Big Public API Documentation Update, volume 3. (#196)

* Rework and update getting-started.md

* Reword parts of the API docs in annotations.dart

* Add description of path resolution behavior in requests.md
This commit addresses issue #195

* Reword parts of the documentations in requests.md

* Reword the error handling description in getting-started.md

* Reword and update most of the documentation in requests.md

* Add missing @s to annotation mentions in getting-started.md

* Remove an unnecessary new line from getting-started.md

* Add further explanation to an example service's create method in getting-started.md

* Update the README of chopper_built_value

* Update the README of chopper_generator

* Update and reword top level README.md and chopper/README.md

* Try to fix text formatting in requests.md

* Fix wording requests.md's form URL encoded section

* Remove unsafe hint on build_runner from getting-started.md

* Implement authenticator (#198)

* Implement authenticator

* Changes for PR

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add Flutter Favorite badge (#206)

* feature/updated doc (#214)

* updated doc

* fixed typo

Co-authored-by: dafinrs <dafi@jojonomic.com>

* Feature/support body get (#201)

* Feature/null safety migration (#212)

* Pubspec for ChopperBuiltValue

* Begin resolving null safety dependencies

* Initial change

* Implement null safety on chopper_generator

* Fix comments on PR

* Fixed some comments

* version updates

* fixed issues with versions

* fix comments on chopperClient nullability

* fixed tests

* Fixed issues with nullable client

* Bumped build version to 2.0.0

* updated libs

* made parts not nullable

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper/README.md

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Update chopper_generator/pubspec.yaml

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Fix for null safety in applyHeaders

* More deps upgrade

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: István Juhos <stewemetal@gmail.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: uladzimir_paliukhovich <>

* Add double quotes to Curl print String (#218)

Prints the Curl URL wrapped with double-quotes.
It fixes issues when pasting the resulting log to the command line, where the curl request in some cases would not be closed by the terminal or fail to execute.

* Enable GitHub action (#216)

* github acions with mono_repo

* fail test

* cleanup

* badge

* regenerate

* regenerate

* format

* fix analyzer

* fix analyzer

* fix test

* regenerate

* cleanup badge

* Naming fix

* remove dev chanel

* ignore vscode

* revert readme change

* remove travis

* format

* fix

* fix

* format

* fix tests

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* Add an OPTIONS request type (#215)

* Add an OPTIONS request type

* Null safety fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>

* changelog

* docs: add lejard-h as a contributor (#221)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

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

* docs: add stewemetal as a contributor (#222)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add JEuler as a contributor (#223)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add fryette as a contributor (#224)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* docs: add Vovanella95 as a contributor (#225)

* docs: update README.md [skip ci]

* docs: create .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Hadrien Lejard <hadrien.lejard@gmail.com>

* update Changelog for 4.0.0 release (#220)

* update Changelog

* contributors

* cleanup

* changelog

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* fix params and headers

* fix

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* 4.0.0-nullsafety.1

* chopper_built_value 1.0.0-nullsafety.0

* Authenticator exported in chopper.dart (#247)

* Generator upgrade (#248)

* Update pubspec.yaml

* More packages upgraded

* Generator null safety fix

* Null safety stable (#253)

* github actions publish workflow

* rename

* comment before publish

* comment overrides

Co-authored-by: Ivan Terekhin <i.terhin@gmail.com>
Co-authored-by: Juhos István <stewemetal@gmail.com>
Co-authored-by: Louis Matthijssen <louis@u5r.nl>
Co-authored-by: Wilko Manger <wilko@pattle.org>
Co-authored-by: Tamas Balogh <tamas.balogh@bata.dev>
Co-authored-by: Mohammad Omidvar Tehrani <mohammad.omt99@yahoo.com>
Co-authored-by: cpthooch <cpthooch@gmail.com>
Co-authored-by: Aleksandr Malkov <radied@gmail.com>
Co-authored-by: Study-Log <58581613+Study-Log@users.noreply.github.com>
Co-authored-by: Daniel Gomez <danielgomezrico@gmail.com>
Co-authored-by: Graham Smith <graham@wiseman-designs.com>
Co-authored-by: Eugeny Sampir <ysampir@gmail.com>
Co-authored-by: dafi <dafidzeko@gmail.com>
Co-authored-by: dafinrs <dafi@jojonomic.com>
Co-authored-by: Alfredo Bautista <71638694+alfredo-handcash@users.noreply.github.com>
Co-authored-by: Uladzimir Paliukhovich <Uladzimir_Paliukhovich@epam.com>
Co-authored-by: Uladzimir_Paliukhovich <Vovanella95@mail.ru>
Co-authored-by: Alex Queudot <Alqueraf@gmail.com>
Co-authored-by: Shane Farmer <shane@thatch.co>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants