Updated auth, client and validate packages
This commit is contained in:
parent
6db69d0fb1
commit
48a441cf77
17 changed files with 113 additions and 68 deletions
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 6.0.0
|
||||
|
||||
* Updated to min SDK 2.15.x
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* No release. Skipped
|
||||
|
||||
## 4.1.2
|
||||
|
||||
* Fixed `requireAuthentication` to work correctly with null-safety type
|
||||
|
|
|
@ -107,13 +107,14 @@ class AngelAuth<User> {
|
|||
throw StateError(
|
||||
'An `AngelAuth` plug-in was called without its `deserializer` being set. All authentication will fail.');
|
||||
}
|
||||
*/
|
||||
|
||||
if (app.container == null) {
|
||||
_log.severe('Angel3 container is null');
|
||||
throw StateError(
|
||||
'Angel.container is null. All authentication will fail.');
|
||||
}
|
||||
var appContainer = app.container!;
|
||||
*/
|
||||
var appContainer = app.container;
|
||||
|
||||
appContainer.registerSingleton(this);
|
||||
if (runtimeType != AngelAuth) {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
name: angel3_auth
|
||||
description: A complete authentication plugin for Angel3. Includes support for stateless JWT tokens, Basic Auth, and more.
|
||||
version: 4.1.2
|
||||
version: 6.0.0
|
||||
homepage: https://angel3-framework.web.app/
|
||||
repository: https://github.com/dukefirehawk/angel/tree/master/packages/auth
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
sdk: '>=2.15.0 <3.0.0'
|
||||
dependencies:
|
||||
angel3_framework: ^4.2.0
|
||||
angel3_framework: ^6.0.0
|
||||
charcode: ^1.2.0
|
||||
collection: ^1.15.0
|
||||
crypto: ^3.0.0
|
||||
|
@ -15,8 +15,21 @@ dependencies:
|
|||
quiver: ^3.0.0
|
||||
logging: ^1.0.0
|
||||
dev_dependencies:
|
||||
angel3_container: ^3.1.0
|
||||
angel3_container: ^6.0.0
|
||||
http: ^0.13.1
|
||||
io: ^1.0.0
|
||||
test: ^1.17.4
|
||||
lints: ^1.0.0
|
||||
dependency_overrides:
|
||||
angel3_container:
|
||||
path: ../container/angel_container
|
||||
angel3_framework:
|
||||
path: ../framework
|
||||
angel3_http_exception:
|
||||
path: ../http_exception
|
||||
angel3_model:
|
||||
path: ../model
|
||||
angel3_route:
|
||||
path: ../route
|
||||
angel3_mock_request:
|
||||
path: ../mock_request
|
|
@ -50,7 +50,7 @@ void main() {
|
|||
|
||||
var oldErrorHandler = app.errorHandler;
|
||||
app.errorHandler = (e, req, res) {
|
||||
app.logger?.severe(e.message, e, e.stackTrace ?? StackTrace.current);
|
||||
app.logger.severe(e.message, e, e.stackTrace ?? StackTrace.current);
|
||||
return oldErrorHandler(e, req, res);
|
||||
};
|
||||
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 6.0.0
|
||||
|
||||
* Updated to min SDK 2.15.x
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* No release. Skipped
|
||||
|
||||
## 4.2.0
|
||||
|
||||
* Updated `package:build_runner`
|
||||
|
|
|
@ -33,10 +33,6 @@ abstract class Angel extends http.BaseClient {
|
|||
Angel(baseUrl)
|
||||
: baseUrl = baseUrl is Uri ? baseUrl : Uri.parse(baseUrl.toString());
|
||||
|
||||
/// Prefer to use [baseUrl] instead.
|
||||
@deprecated
|
||||
String get basePath => baseUrl.toString();
|
||||
|
||||
/// Fired whenever a WebSocket is successfully authenticated.
|
||||
Stream<AngelAuthResult> get onAuthenticated;
|
||||
|
||||
|
@ -48,10 +44,7 @@ abstract class Angel extends http.BaseClient {
|
|||
///
|
||||
/// The given [credentials] are sent to server as-is; the request body is sent as JSON.
|
||||
Future<AngelAuthResult> authenticate(
|
||||
{required String type,
|
||||
credentials,
|
||||
String authEndpoint = '/auth',
|
||||
@deprecated String reviveEndpoint = '/auth/token'});
|
||||
{required String type, credentials, String authEndpoint = '/auth'});
|
||||
|
||||
/// Shorthand for authenticating via a JWT string.
|
||||
Future<AngelAuthResult> reviveJwt(String token,
|
||||
|
@ -87,7 +80,7 @@ abstract class Angel extends http.BaseClient {
|
|||
/// You can pass a custom [deserializer], which is typically necessary in cases where
|
||||
/// `dart:mirrors` does not exist.
|
||||
Service<Id, Data> service<Id, Data>(String path,
|
||||
{@deprecated Type? type, AngelDeserializer<Data>? deserializer});
|
||||
{AngelDeserializer<Data>? deserializer});
|
||||
|
||||
//@override
|
||||
//Future<http.Response> delete(url, {Map<String, String> headers});
|
||||
|
|
|
@ -1,4 +1 @@
|
|||
@deprecated
|
||||
library auth_types;
|
||||
|
||||
const String local = 'local', token = 'token';
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import 'dart:async';
|
||||
import 'dart:convert' show Encoding;
|
||||
import 'package:angel3_http_exception/angel3_http_exception.dart';
|
||||
import 'dart:convert';
|
||||
import 'package:http/src/base_client.dart' as http;
|
||||
import 'package:http/src/base_request.dart' as http;
|
||||
|
@ -32,14 +30,14 @@ AngelHttpException failure(http.Response response,
|
|||
if (v is Map && (v['is_error'] == true) || v['isError'] == true) {
|
||||
return AngelHttpException.fromMap(v as Map);
|
||||
} else {
|
||||
return AngelHttpException(error,
|
||||
return AngelHttpException(
|
||||
message: message ??
|
||||
'Unhandled exception while connecting to Angel backend.',
|
||||
statusCode: response.statusCode,
|
||||
stackTrace: stack);
|
||||
}
|
||||
} catch (e, st) {
|
||||
return AngelHttpException(error ?? e,
|
||||
return AngelHttpException(
|
||||
message: message ??
|
||||
'Angel backend did not return JSON - an error likely occurred.',
|
||||
statusCode: response.statusCode,
|
||||
|
@ -63,10 +61,7 @@ abstract class BaseAngelClient extends Angel {
|
|||
|
||||
@override
|
||||
Future<AngelAuthResult> authenticate(
|
||||
{String? type,
|
||||
credentials,
|
||||
String authEndpoint = '/auth',
|
||||
@deprecated String reviveEndpoint = '/auth/token'}) async {
|
||||
{String? type, credentials, String authEndpoint = '/auth'}) async {
|
||||
type ??= 'token';
|
||||
|
||||
var segments = baseUrl.pathSegments
|
||||
|
@ -258,10 +253,6 @@ class BaseAngelService<Id, Data> extends Service<Id, Data?> {
|
|||
BaseAngelService(this.client, this.app, baseUrl, {this.deserializer})
|
||||
: baseUrl = baseUrl is Uri ? baseUrl : Uri.parse(baseUrl.toString());
|
||||
|
||||
/// Use [baseUrl] instead.
|
||||
@deprecated
|
||||
String get basePath => baseUrl.toString();
|
||||
|
||||
Data? deserialize(x) {
|
||||
return deserializer != null ? deserializer!(x) : x as Data?;
|
||||
}
|
||||
|
@ -296,12 +287,12 @@ class BaseAngelService<Id, Data> extends Service<Id, Data?> {
|
|||
var v = json.decode(response.body) as List;
|
||||
//var r = v.map(deserialize).toList();
|
||||
var r = <Data>[];
|
||||
v.forEach((element) {
|
||||
for (var element in v) {
|
||||
var a = deserialize(element);
|
||||
if (a != null) {
|
||||
r.add(a);
|
||||
}
|
||||
});
|
||||
}
|
||||
_onIndexed.add(r);
|
||||
return r;
|
||||
} catch (e, st) {
|
||||
|
|
|
@ -17,10 +17,7 @@ class Rest extends BaseAngelClient {
|
|||
|
||||
@override
|
||||
Future<AngelAuthResult> authenticate(
|
||||
{String? type,
|
||||
credentials,
|
||||
String authEndpoint = '/auth',
|
||||
@deprecated String reviveEndpoint = '/auth/token'}) async {
|
||||
{String? type, credentials, String authEndpoint = '/auth'}) async {
|
||||
if (type == null || type == 'token') {
|
||||
if (!window.localStorage.containsKey('token')) {
|
||||
throw Exception(
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
name: angel3_client
|
||||
version: 4.2.0
|
||||
version: 6.0.0
|
||||
description: A browser, mobile and command line based client that supports querying Angel3 servers
|
||||
homepage: https://angel3-framework.web.app/
|
||||
repository: https://github.com/dukefirehawk/angel/tree/master/packages/client
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
sdk: '>=2.15.0 <3.0.0'
|
||||
dependencies:
|
||||
angel3_http_exception: ^3.0.0
|
||||
angel3_http_exception: ^6.0.0
|
||||
belatuk_json_serializer: ^5.0.0
|
||||
collection: ^1.15.0
|
||||
http: ^0.13.1
|
||||
|
@ -14,13 +14,28 @@ dependencies:
|
|||
path: ^1.8.0
|
||||
logging: ^1.0.0
|
||||
dev_dependencies:
|
||||
angel3_framework: ^4.2.0
|
||||
angel3_model: ^3.1.0
|
||||
angel3_mock_request: ^2.0.0
|
||||
angel3_container: ^3.1.0
|
||||
angel3_auth: ^4.1.0
|
||||
angel3_framework: ^6.0.0
|
||||
angel3_model: ^6.0.0
|
||||
angel3_mock_request: ^6.0.0
|
||||
angel3_container: ^6.0.0
|
||||
angel3_auth: ^6.0.0
|
||||
async: ^2.6.1
|
||||
build_runner: ^2.1.2
|
||||
build_web_compilers: ^3.2.1
|
||||
test: ^1.17.5
|
||||
lints: ^1.0.0
|
||||
dependency_overrides:
|
||||
angel3_container:
|
||||
path: ../container/angel_container
|
||||
angel3_framework:
|
||||
path: ../framework
|
||||
angel3_http_exception:
|
||||
path: ../http_exception
|
||||
angel3_model:
|
||||
path: ../model
|
||||
angel3_route:
|
||||
path: ../route
|
||||
angel3_mock_request:
|
||||
path: ../mock_request
|
||||
angel3_auth:
|
||||
path: ../auth
|
|
@ -1,10 +1,10 @@
|
|||
name: angel3_static
|
||||
version: 4.1.0
|
||||
version: 6.0.0
|
||||
description: This library provides a virtual directory to serve static files for Angel3 framework.
|
||||
homepage: https://angel3-framework.web.app/
|
||||
repository: https://github.com/dukefirehawk/angel/tree/angel3/packages/static
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
sdk: '>=2.15.0 <3.0.0'
|
||||
dependencies:
|
||||
angel3_framework: ^4.1.0
|
||||
belatuk_range_header: ^4.0.0
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
name: angel3_test
|
||||
version: 4.1.1
|
||||
version: 6.0.0
|
||||
description: Testing utility library for the Angel3 framework. Use with package:test.
|
||||
homepage: https://angel3-framework.web.app/
|
||||
repository: https://github.com/dukefirehawk/angel/tree/master/packages/test
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
sdk: '>=2.15.0 <3.0.0'
|
||||
dependencies:
|
||||
angel3_client: ^4.1.0
|
||||
angel3_framework: ^4.2.0
|
||||
|
|
|
@ -1,5 +1,13 @@
|
|||
# Change Log
|
||||
|
||||
## 6.0.0
|
||||
|
||||
* Updated to min SDK 2.15.x
|
||||
|
||||
## 5.0.0
|
||||
|
||||
* No release. Skipped
|
||||
|
||||
## 4.1.0
|
||||
|
||||
* Updated linter to `package:lints`
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import 'dart:async';
|
||||
import 'package:angel3_framework/angel3_framework.dart';
|
||||
import 'package:angel3_http_exception/angel3_http_exception.dart';
|
||||
import 'package:matcher/matcher.dart';
|
||||
import 'context_aware.dart';
|
||||
|
||||
|
|
|
@ -69,10 +69,6 @@ final Matcher isUrl = predicate(
|
|||
(dynamic value) => value is String && _url.hasMatch(value),
|
||||
'a valid url, starting with http:// or https://');
|
||||
|
||||
/// Use [isUrl] instead.
|
||||
@deprecated
|
||||
final Matcher isurl = isUrl;
|
||||
|
||||
/// Enforces a minimum length on a string.
|
||||
Matcher minLength(int length) => predicate(
|
||||
(dynamic value) => value is String && value.length >= length,
|
||||
|
|
|
@ -325,7 +325,9 @@ class Validator extends Matcher {
|
|||
|
||||
/// Adds all given [rules].
|
||||
void addRules(String key, Iterable<Matcher> rules) {
|
||||
rules.forEach((rule) => addRule(key, rule));
|
||||
for (var rule in rules) {
|
||||
addRule(key, rule);
|
||||
}
|
||||
}
|
||||
|
||||
/// Removes a [rule].
|
||||
|
@ -337,7 +339,9 @@ class Validator extends Matcher {
|
|||
|
||||
/// Removes all given [rules].
|
||||
void removeRules(String key, Iterable<Matcher> rules) {
|
||||
rules.forEach((rule) => removeRule(key, rule));
|
||||
for (var rule in rules) {
|
||||
removeRule(key, rule);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -367,11 +371,13 @@ class ValidationResult {
|
|||
/// This is empty if validation was successful.
|
||||
List<String> get errors => List<String>.unmodifiable(_errors);
|
||||
|
||||
ValidationResult withData(Map<String, dynamic> data) =>
|
||||
ValidationResult().._data.addAll(data).._errors.addAll(_errors);
|
||||
ValidationResult withData(Map<String, dynamic> data) => ValidationResult()
|
||||
.._data.addAll(data)
|
||||
.._errors.addAll(_errors);
|
||||
|
||||
ValidationResult withErrors(Iterable<String> errors) =>
|
||||
ValidationResult().._data.addAll(_data).._errors.addAll(errors);
|
||||
ValidationResult withErrors(Iterable<String> errors) => ValidationResult()
|
||||
.._data.addAll(_data)
|
||||
.._errors.addAll(errors);
|
||||
}
|
||||
|
||||
/// Occurs when user-provided data is invalid.
|
||||
|
@ -385,7 +391,8 @@ class ValidationException extends AngelHttpException {
|
|||
final String message;
|
||||
|
||||
ValidationException(this.message, {Iterable<String> errors = const []})
|
||||
: super(FormatException(message),
|
||||
: super(
|
||||
message: message,
|
||||
statusCode: 400,
|
||||
errors: (errors).toSet().toList(),
|
||||
stackTrace: StackTrace.current) {
|
||||
|
|
|
@ -1,19 +1,31 @@
|
|||
name: angel3_validate
|
||||
description: Cross-platform request body validation library based on `matcher`.
|
||||
version: 4.1.0
|
||||
version: 6.0.0
|
||||
homepage: https://angel3-framework.web.app/
|
||||
repository: https://github.com/dukefirehawk/angel/tree/master/packages/validate
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
sdk: '>=2.15.0 <3.0.0'
|
||||
dependencies:
|
||||
angel3_framework: ^4.2.0
|
||||
angel3_http_exception: ^3.0.0
|
||||
angel3_framework: ^6.0.0
|
||||
angel3_http_exception: ^6.0.0
|
||||
matcher: ^0.12.0
|
||||
dev_dependencies:
|
||||
#angel3_test:
|
||||
angel3_mock_request: ^2.0.0
|
||||
angel3_mock_request: ^6.0.0
|
||||
build_runner: ^2.1.0
|
||||
build_web_compilers: ^3.2.0
|
||||
logging: ^1.0.1
|
||||
lints: ^1.0.0
|
||||
test: ^1.17.4
|
||||
dependency_overrides:
|
||||
angel3_container:
|
||||
path: ../container/angel_container
|
||||
angel3_framework:
|
||||
path: ../framework
|
||||
angel3_http_exception:
|
||||
path: ../http_exception
|
||||
angel3_model:
|
||||
path: ../model
|
||||
angel3_route:
|
||||
path: ../route
|
||||
angel3_mock_request:
|
||||
path: ../mock_request
|
Loading…
Reference in a new issue