anchor.diff:    }
   
     /// Performs a client credentials grant. Only use this in situations where the client is 100% trusted.
  -  Future<AuthorizationTokenResponse> clientCredentialsGrant(
  +  FutureOr<AuthorizationTokenResponse> clientCredentialsGrant(
         Client client, RequestContext req, ResponseContext res) async {
       var body = await req.parseBody().then((_) => req.bodyAsMap);
       throw new AuthorizationException(
         new ErrorResponse(
           ErrorResponse.unsupportedResponseType,
           'Client credentials grants are not supported.',
  +        body['state']?.toString() ?? '',
  +      ),
  +      statusCode: 400,
  +    );
  +  }
  +
  +  FutureOr<DeviceCodeResponse> deviceCodeGrant(Client client,
  +      Iterable<String> scopes, RequestContext req, ResponseContext res) async {
  +    var body = await req.parseBody().then((_) => req.bodyAsMap);
  +    throw new AuthorizationException(
  +      new ErrorResponse(
  +        ErrorResponse.unsupportedResponseType,
  +        'Device code grants are not supported.',
           body['state']?.toString() ?? '',
         ),
         statusCode: 400,
  
positive.code:   }
  
    /// Refresh an authorization token.
    Future<AuthorizationTokenResponse> refreshAuthorizationToken(
        Client client,
        String refreshToken,
        Iterable<String> scopes,
  
negative.code:   }
  
    /// Issue an authorization token to a user after authenticating them via [username] and [password].
    FutureOr<AuthorizationTokenResponse> resourceOwnerPasswordCredentialsGrant(
        Client client,
        String username,
        String password,
  