clean(packages): apply dart fix (close #106)
continuous-integration/drone/push Build is passing

This commit was merged in pull request #107.
This commit is contained in:
AN12345
2022-12-13 13:52:49 -05:00
parent 3c8ff373a1
commit 17ff0f8ba1
74 changed files with 222 additions and 287 deletions
@@ -115,7 +115,7 @@ Future<void> server() async {
final server = await HttpServer.bind(InternetAddress.anyIPv6, 8080);
var error = 0;
var token = 0;
await server.forEach((HttpRequest request) {
await server.forEach((request) {
print('[${request.method}] ${request.uri}');
switch (request.uri.path) {
case '/test/basic-test':
@@ -196,7 +196,7 @@ Future<void> server() async {
Future<void> main() async {
unawaited(server());
final base = 'localhost:8080';
const base = 'localhost:8080';
final uriPrefix = UriPrefixMiddleware(
protocol: Protocols.http,
authority: base,
@@ -31,19 +31,15 @@ enum EmailVerificationAction {
resetPassword,
changeEmail;
String toSnakeCase() {
return name.splitMapJoin(
String toSnakeCase() => name.splitMapJoin(
RegExp('[A-Z]'),
onMatch: (m) => '_${m[0]?.toLowerCase()}',
onNonMatch: (n) => n,
);
}
factory EmailVerificationAction.fromString(String str) {
return EmailVerificationAction.values.firstWhere(
(EmailVerificationAction element) => element.toSnakeCase() == str,
factory EmailVerificationAction.fromString(String str) => EmailVerificationAction.values.firstWhere(
(element) => element.toSnakeCase() == str,
);
}
}
class VerifyCode {
@@ -60,29 +56,23 @@ class VerifyCode {
String? email,
String? verificationCode,
EmailVerificationAction? action,
}) {
return VerifyCode(
}) => VerifyCode(
email: email ?? this.email,
verificationCode: verificationCode ?? this.verificationCode,
action: action ?? this.action,
);
}
Map<String, dynamic> toMap() {
return <String, dynamic>{
Map<String, dynamic> toMap() => <String, dynamic>{
'email': email,
'verification_code': verificationCode,
'action': action.toSnakeCase(),
};
}
factory VerifyCode.fromMap(Map<String, dynamic> map) {
return VerifyCode(
factory VerifyCode.fromMap(Map<String, dynamic> map) => VerifyCode(
email: map['email'] as String,
verificationCode: map['verification_code'] as String,
action: EmailVerificationAction.fromString(map['action'] as String),
);
}
String toJson() => json.encode(toMap());
@@ -105,26 +95,20 @@ class Account {
Account copyWith({
String? email,
String? sessionId,
}) {
return Account(
}) => Account(
email: email ?? this.email,
sessionId: sessionId ?? this.sessionId,
);
}
Map<String, dynamic> toMap() {
return <String, dynamic>{
Map<String, dynamic> toMap() => <String, dynamic>{
'email': email,
'session_id': sessionId,
};
}
factory Account.fromMap(Map<String, dynamic> map) {
return Account(
factory Account.fromMap(Map<String, dynamic> map) => Account(
email: map['email'] as String,
sessionId: map['session_id'] != null ? map['session_id'] as String : null,
);
}
String toJson() => json.encode(toMap());
@@ -146,26 +130,20 @@ class SignUp {
SignUp copyWith({
String? sessionId,
String? password,
}) {
return SignUp(
}) => SignUp(
sessionId: sessionId ?? this.sessionId,
password: password ?? this.password,
);
}
Map<String, dynamic> toMap() {
return <String, dynamic>{
Map<String, dynamic> toMap() => <String, dynamic>{
'session_id': sessionId,
'password': password,
};
}
factory SignUp.fromMap(Map<String, dynamic> map) {
return SignUp(
factory SignUp.fromMap(Map<String, dynamic> map) => SignUp(
sessionId: map['session_id'] as String,
password: map['password'] as String,
);
}
String toJson() => json.encode(toMap());
@@ -190,29 +168,23 @@ class TokenSuccess {
String? accessToken,
String? refreshToken,
Account? account,
}) {
return TokenSuccess(
}) => TokenSuccess(
accessToken: accessToken ?? this.accessToken,
refreshToken: refreshToken ?? this.refreshToken,
account: account ?? this.account,
);
}
Map<String, dynamic> toMap() {
return <String, dynamic>{
Map<String, dynamic> toMap() => <String, dynamic>{
'access_token': accessToken,
'refresh_token': refreshToken,
'account': account.toMap(),
};
}
factory TokenSuccess.fromMap(Map<String, dynamic> map) {
return TokenSuccess(
factory TokenSuccess.fromMap(Map<String, dynamic> map) => TokenSuccess(
accessToken: map['access_token'] as String,
refreshToken: map['refresh_token'] as String,
account: Account.fromMap(map['account'] as Map<String, dynamic>),
);
}
String toJson() => json.encode(toMap());
@@ -235,26 +207,20 @@ class Login {
Login copyWith({
String? email,
String? password,
}) {
return Login(
}) => Login(
email: email ?? this.email,
password: password ?? this.password,
);
}
Map<String, dynamic> toMap() {
return <String, dynamic>{
Map<String, dynamic> toMap() => <String, dynamic>{
'email': email,
'password': password,
};
}
factory Login.fromMap(Map<String, dynamic> map) {
return Login(
factory Login.fromMap(Map<String, dynamic> map) => Login(
email: map['email'] as String,
password: map['password'] as String,
);
}
String toJson() => json.encode(toMap());
@@ -25,8 +25,6 @@ import 'package:wyatt_http_client/src/pipeline.dart';
import 'package:wyatt_http_client/src/utils/http_methods.dart';
class MiddlewareClient extends BaseClient {
final Client inner;
final Pipeline pipeline;
MiddlewareClient({
Pipeline? pipeline,
@@ -35,6 +33,8 @@ class MiddlewareClient extends BaseClient {
inner = inner ?? Client() {
print('Using Pipeline:\n$pipeline');
}
final Client inner;
final Pipeline pipeline;
@override
Future<Response> head(Uri url, {Map<String, String>? headers}) =>
@@ -81,9 +81,7 @@ class MiddlewareClient extends BaseClient {
_sendUnstreamed(HttpMethods.delete.method, url, headers, body, encoding);
@override
Future<StreamedResponse> send(BaseRequest request) {
return inner.send(request);
}
Future<StreamedResponse> send(BaseRequest request) => inner.send(request);
Future<Response> _sendUnstreamed(
String method,
@@ -23,15 +23,15 @@ import 'package:wyatt_http_client/src/utils/authentication_methods.dart';
import 'package:wyatt_http_client/src/utils/header_keys.dart';
class BasicAuthMiddleware with OnRequestMiddleware implements Middleware {
String? username;
String? password;
final String authenticationHeader;
BasicAuthMiddleware({
this.username,
this.password,
this.authenticationHeader = HeaderKeys.authorization,
});
String? username;
String? password;
final String authenticationHeader;
@override
String getName() => 'BasicAuth';
@@ -25,12 +25,6 @@ import 'package:wyatt_http_client/src/utils/http_status.dart';
class DigestAuthMiddleware
with OnRequestMiddleware, OnResponseMiddleware
implements Middleware {
final String username;
final String password;
final DigestAuth _digestAuth;
final String authenticationHeader;
final String wwwAuthenticateHeader;
final HttpStatus unauthorized;
DigestAuthMiddleware({
required this.username,
@@ -39,6 +33,12 @@ class DigestAuthMiddleware
this.wwwAuthenticateHeader = HeaderKeys.wwwAuthenticate,
this.unauthorized = HttpStatus.unauthorized,
}) : _digestAuth = DigestAuth(username, password);
final String username;
final String password;
final DigestAuth _digestAuth;
final String authenticationHeader;
final String wwwAuthenticateHeader;
final HttpStatus unauthorized;
@override
String getName() => 'DigestAuth';
@@ -31,6 +31,17 @@ typedef TokenParser = String Function(Map<String, dynamic>);
class RefreshTokenAuthMiddleware
with OnRequestMiddleware, OnResponseMiddleware
implements Middleware {
RefreshTokenAuthMiddleware({
required this.authorizationEndpoint,
required this.tokenEndpoint,
required this.accessTokenParser,
required this.refreshTokenParser,
this.authenticationHeader = HeaderKeys.authorization,
this.authenticationMethod = AuthenticationMethods.bearer,
this.unauthorized = HttpStatus.unauthorized,
this.maxAttempts = 8,
});
final String authorizationEndpoint;
final String tokenEndpoint;
@@ -44,17 +55,6 @@ class RefreshTokenAuthMiddleware
final HttpStatus unauthorized;
final int maxAttempts;
RefreshTokenAuthMiddleware({
required this.authorizationEndpoint,
required this.tokenEndpoint,
required this.accessTokenParser,
required this.refreshTokenParser,
this.authenticationHeader = HeaderKeys.authorization,
this.authenticationMethod = AuthenticationMethods.bearer,
this.unauthorized = HttpStatus.unauthorized,
this.maxAttempts = 8,
});
@override
String getName() => 'RefreshToken';
@@ -20,11 +20,6 @@ import 'package:wyatt_http_client/src/models/middleware_request.dart';
import 'package:wyatt_http_client/src/utils/convert.dart';
class UnsafeAuthMiddleware with OnRequestMiddleware implements Middleware {
String? username;
String? password;
final String usernameField;
final String passwordField;
UnsafeAuthMiddleware({
this.username,
@@ -32,6 +27,11 @@ class UnsafeAuthMiddleware with OnRequestMiddleware implements Middleware {
this.usernameField = 'username',
this.passwordField = 'password',
});
String? username;
String? password;
final String usernameField;
final String passwordField;
@override
String getName() => 'UnsafeAuth';
@@ -20,13 +20,13 @@ import 'package:wyatt_http_client/src/models/middleware_request.dart';
import 'package:wyatt_http_client/src/utils/protocols.dart';
class UriPrefixMiddleware with OnRequestMiddleware implements Middleware {
final Protocols protocol;
final String? authority;
UriPrefixMiddleware({
required this.protocol,
required this.authority,
});
final Protocols protocol;
final String? authority;
@override
String getName() => 'UriPrefix';
@@ -44,8 +44,7 @@ class MiddlewareContext {
MiddlewareRequest? lastRequest,
MiddlewareResponse? originalResponse,
MiddlewareResponse? lastResponse,
}) {
return MiddlewareContext(
}) => MiddlewareContext(
pipeline: pipeline ?? this.pipeline,
client: client ?? this.client,
originalRequest: originalRequest ?? this.originalRequest,
@@ -53,10 +52,7 @@ class MiddlewareContext {
originalResponse: originalResponse ?? this.originalResponse,
lastResponse: lastResponse ?? this.lastResponse,
);
}
@override
String toString() {
return 'MiddlewareContext(pipeline: $pipeline, client: $client, originalRequest: $originalRequest, lastRequest: $lastRequest, originalResponse: $originalResponse, lastResponse: $lastResponse)';
}
String toString() => 'MiddlewareContext(pipeline: $pipeline, client: $client, originalRequest: $originalRequest, lastRequest: $lastRequest, originalResponse: $originalResponse, lastResponse: $lastResponse)';
}
@@ -42,22 +42,21 @@ class MiddlewareRequest {
MiddlewareRequest copyWith({
UnfreezedRequest? unfreezedRequest,
}) {
return MiddlewareRequest(
unfreezedRequest: unfreezedRequest ?? this.unfreezedRequest,
);
}
}) =>
MiddlewareRequest(
unfreezedRequest: unfreezedRequest ?? this.unfreezedRequest,
);
void modifyRequest(UnfreezedRequest unfreezedRequest) {
String? _body;
String? body;
if (unfreezedRequest.body != null) {
final body = unfreezedRequest.body;
var body = unfreezedRequest.body;
if (body is String) {
_body = body;
body = body;
} else if (body is List) {
_body = String.fromCharCodes(body.cast<int>());
body = String.fromCharCodes(body.cast<int>());
} else if (body is Map) {
_body = Convert.mapToQuery(body.cast<String, String>());
body = Convert.mapToQuery(body.cast<String, String>());
}
}
_httpRequest = RequestUtils.copyRequestWith(
@@ -65,7 +64,7 @@ class MiddlewareRequest {
method: unfreezedRequest.method,
url: unfreezedRequest.url,
headers: unfreezedRequest.headers,
body: _body,
body: body,
) as Request;
if (unfreezedRequest.encoding != null) {
_httpRequest.encoding = unfreezedRequest.encoding!;
@@ -40,11 +40,9 @@ class MiddlewareResponse {
MiddlewareResponse copyWith({
BaseResponse? httpResponse,
}) {
return MiddlewareResponse(
}) => MiddlewareResponse(
httpResponse: httpResponse ?? this.httpResponse,
);
}
@override
String toString() =>
@@ -17,11 +17,6 @@
import 'dart:convert';
class UnfreezedRequest {
final String method;
final Uri url;
final Map<String, String>? headers;
final Object? body;
final Encoding? encoding;
UnfreezedRequest({
required this.method,
@@ -30,6 +25,11 @@ class UnfreezedRequest {
this.body,
this.encoding,
});
final String method;
final Uri url;
final Map<String, String>? headers;
final Object? body;
final Encoding? encoding;
UnfreezedRequest copyWith({
String? method,
@@ -37,19 +37,15 @@ class UnfreezedRequest {
Map<String, String>? headers,
Object? body,
Encoding? encoding,
}) {
return UnfreezedRequest(
}) => UnfreezedRequest(
method: method ?? this.method,
url: url ?? this.url,
headers: headers ?? this.headers,
body: body ?? this.body,
encoding: encoding ?? this.encoding,
);
}
@override
String toString() {
return 'UnfreezedRequest(method: $method, url: $url, headers: '
String toString() => 'UnfreezedRequest(method: $method, url: $url, headers: '
'$headers, body: $body, encoding: $encoding)';
}
}
@@ -20,13 +20,13 @@ import 'package:wyatt_http_client/src/models/middleware_request.dart';
import 'package:wyatt_http_client/src/models/middleware_response.dart';
class Pipeline {
final List<Middleware> _middlewares;
int get length => _middlewares.length;
Pipeline() : _middlewares = <Middleware>[];
Pipeline.fromIterable(Iterable<Middleware> middlewares)
: _middlewares = middlewares.toList();
final List<Middleware> _middlewares;
int get length => _middlewares.length;
/// Add a [Middleware] to this [Pipeline]
Pipeline addMiddleware(Middleware middleware) {
@@ -21,7 +21,7 @@ class Convert {
final buffer = StringBuffer();
for (final int part in bytes) {
if (part & 0xff != part) {
throw FormatException('Non-byte integer detected');
throw const FormatException('Non-byte integer detected');
}
buffer.write('${part < 16 ? '0' : ''}${part.toRadixString(16)}');
}
@@ -21,8 +21,8 @@ import 'package:crypto/crypto.dart';
class Crypto {
/// Hash a string using MD5
static String md5Hash(String data) {
final content = Utf8Encoder().convert(data);
final md5Crypto = md5;
final content = const Utf8Encoder().convert(data);
const md5Crypto = md5;
final digest = md5Crypto.convert(content).toString();
return digest;
}
@@ -24,9 +24,9 @@ abstract class Delay {
return Duration.zero;
}
final rand = Random();
final Duration delayFactor = const Duration(milliseconds: 200);
final double randomizationFactor = 0.25;
final Duration maxDelay = const Duration(seconds: 30);
const Duration delayFactor = Duration(milliseconds: 200);
const double randomizationFactor = 0.25;
const Duration maxDelay = Duration(seconds: 30);
final rf = randomizationFactor * (rand.nextDouble() * 2 - 1) + 1;
final exp = min(attempt, 31); // prevent overflows.
@@ -19,7 +19,9 @@ import 'dart:math';
import 'package:wyatt_http_client/src/utils/convert.dart';
import 'package:wyatt_http_client/src/utils/crypto.dart';
class DigestAuth {
class DigestAuth { // request counter
DigestAuth(this.username, this.password);
String username;
String password;
@@ -30,9 +32,7 @@ class DigestAuth {
String? _nonce;
String? _opaque;
int _nc = 0; // request counter
DigestAuth(this.username, this.password);
int _nc = 0;
/// Splits WWW-Authenticate header into a map.
Map<String, String>? splitWWWAuthenticateHeader(String header) {
@@ -61,9 +61,7 @@ class DigestAuth {
return Convert.toHex(values);
}
String _formatNonceCount(int nc) {
return nc.toRadixString(16).padLeft(8, '0');
}
String _formatNonceCount(int nc) => nc.toRadixString(16).padLeft(8, '0');
String _computeHA1(
String realm,
@@ -148,7 +146,7 @@ class DigestAuth {
}
String getAuthString(String method, Uri url) {
final _cnonce = _computeNonce();
final cnonce = _computeNonce();
_nc += 1;
// if url has query parameters, append query to path
final path = url.hasQuery ? '${url.path}?${url.query}' : url.path;
@@ -162,7 +160,7 @@ class DigestAuth {
_qop,
_opaque,
_realm!,
_cnonce,
cnonce,
_nonce,
_nc,
username,
@@ -192,7 +190,5 @@ class DigestAuth {
}
}
bool isReady() {
return _nonce != null && (_nc == 0 || _qop != null);
}
bool isReady() => _nonce != null && (_nc == 0 || _qop != null);
}
@@ -95,29 +95,17 @@ enum HttpStatus {
return false;
}
bool isInfo() {
return statusCode >= 100 && statusCode < 200;
}
bool isInfo() => statusCode >= 100 && statusCode < 200;
bool isSuccess() {
return statusCode >= 200 && statusCode < 300;
}
bool isSuccess() => statusCode >= 200 && statusCode < 300;
bool isRedirection() {
return statusCode >= 300 && statusCode < 400;
}
bool isRedirection() => statusCode >= 300 && statusCode < 400;
bool isClientError() {
return statusCode >= 400 && statusCode < 500;
}
bool isClientError() => statusCode >= 400 && statusCode < 500;
bool isServerError() {
return statusCode >= 500 && statusCode < 600;
}
bool isServerError() => statusCode >= 500 && statusCode < 600;
factory HttpStatus.from(int status) {
return HttpStatus.values
factory HttpStatus.from(int status) => HttpStatus.values
.firstWhere((element) => element.statusCode == status);
}
}