From 6556f1c1720625582504ed8142c09709bafdcdbf Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 15 Oct 2023 15:20:22 +0500 Subject: [PATCH 01/66] Make ansi color to hex overriding --- packages/talker/example/talker_example.dart | 10 +++++++++- .../talker/lib/src/extensions/extensions.dart | 18 ++++++++++++++++++ packages/talker/pubspec.yaml | 1 - packages/talker/pubspec_overrides.yaml | 5 ++++- .../talker_flutter/example/macos/Podfile.lock | 2 +- .../macos/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- packages/talker_flutter/example/pubspec.lock | 11 +++++------ packages/talker_flutter/example/pubspec.yaml | 1 + .../example/pubspec_overrides.yaml | 4 ++++ .../lib/src/extensions/color.dart | 10 ++++++++++ .../lib/src/extensions/extensions.dart | 2 ++ .../lib/src/ui/widgets/data_card.dart | 7 +++++++ packages/talker_flutter/pubspec.yaml | 3 +++ .../talker_flutter/pubspec_overrides.yaml | 5 ++++- packages/talker_logger/pubspec_overrides.yaml | 4 ++++ utils/pub_clean_all.sh | 17 +++++++++++++---- utils/pub_get_all_offline.sh | 19 ++++++++++++------- 18 files changed, 99 insertions(+), 24 deletions(-) create mode 100644 packages/talker_flutter/example/pubspec_overrides.yaml create mode 100644 packages/talker_flutter/lib/src/extensions/color.dart create mode 100644 packages/talker_logger/pubspec_overrides.yaml diff --git a/packages/talker/example/talker_example.dart b/packages/talker/example/talker_example.dart index 23c75da0..ea138de0 100644 --- a/packages/talker/example/talker_example.dart +++ b/packages/talker/example/talker_example.dart @@ -1,7 +1,15 @@ import 'package:talker/talker.dart'; Future main() async { - final talker = Talker(); + final talker = Talker( + logger: TalkerLogger( + settings: TalkerLoggerSettings( + colors: { + LogLevel.warning: AnsiPen()..xterm(204), + }, + ), + ), + ); /// Logs with LogLevel talker.warning('The pizza is over πŸ˜₯'); diff --git a/packages/talker/lib/src/extensions/extensions.dart b/packages/talker/lib/src/extensions/extensions.dart index 611e35b7..e424fe98 100644 --- a/packages/talker/lib/src/extensions/extensions.dart +++ b/packages/talker/lib/src/extensions/extensions.dart @@ -11,3 +11,21 @@ extension TalkerDataInterfaceListExt on List { return sb.toString(); } } + +extension AnsiExtension on AnsiPen { + /// Make ansi to hex f + String toHexColor() { + final ansiColor = fcolor != -1 ? fcolor : bcolor; + + // Extract RGB components from the ANSI color code + int r = (((ansiColor - 16) ~/ 36) / 5 * 255).toInt(); + int g = (((ansiColor - 16) ~/ 6 % 6) / 5 * 255).toInt(); + int b = ((ansiColor - 16) % 6 / 5 * 255).toInt(); + + // Convert RGB components to HEX format + String hexColor = + '#${r.toRadixString(16).padLeft(2, '0')}${g.toRadixString(16).padLeft(2, '0')}${b.toRadixString(16).padLeft(2, '0')}'; + + return hexColor; + } +} diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index 8bcf1c9b..f6cb5654 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -19,6 +19,5 @@ dependencies: talker_logger: ^3.1.0 dev_dependencies: - dart_code_metrics: ^5.7.4 lints: ^2.0.0 test: ^1.22.1 diff --git a/packages/talker/pubspec_overrides.yaml b/packages/talker/pubspec_overrides.yaml index d5e85ac0..a0162df4 100644 --- a/packages/talker/pubspec_overrides.yaml +++ b/packages/talker/pubspec_overrides.yaml @@ -1,4 +1,7 @@ dependency_overrides: talker_logger: path: - ../talker_logger \ No newline at end of file + ../talker_logger + ansicolor: + path: + /Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart \ No newline at end of file diff --git a/packages/talker_flutter/example/macos/Podfile.lock b/packages/talker_flutter/example/macos/Podfile.lock index a6492824..61c6cb76 100644 --- a/packages/talker_flutter/example/macos/Podfile.lock +++ b/packages/talker_flutter/example/macos/Podfile.lock @@ -21,7 +21,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852 + path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 share_plus: 76dd39142738f7a68dd57b05093b5e8193f220f7 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 diff --git a/packages/talker_flutter/example/macos/Runner.xcodeproj/project.pbxproj b/packages/talker_flutter/example/macos/Runner.xcodeproj/project.pbxproj index 3be6a6e4..8acc37a1 100644 --- a/packages/talker_flutter/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/talker_flutter/example/macos/Runner.xcodeproj/project.pbxproj @@ -203,7 +203,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { diff --git a/packages/talker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/talker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index fb7259e1..83d88728 100644 --- a/packages/talker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/talker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ Date: Sun, 15 Oct 2023 15:52:33 +0500 Subject: [PATCH 02/66] Move default colors in theme constants, upgrade console color ijection --- .../products/view/products_screen.dart | 7 +++--- packages/talker/lib/src/talker.dart | 11 +++++--- .../talker_dio_logger/example/pubspec.lock | 4 +-- packages/talker_flutter/example/pubspec.lock | 9 +++---- .../example/pubspec_overrides.yaml | 5 +++- .../lib/src/extensions/extensions.dart | 1 - .../lib/src/extensions/log_level.dart | 25 ------------------- .../src/ui/talker_monitor/talker_monitor.dart | 9 ++++--- .../lib/src/ui/theme/default_theme.dart | 8 ++++++ .../lib/src/ui/widgets/data_card.dart | 23 +++++++++++------ 10 files changed, 48 insertions(+), 54 deletions(-) delete mode 100644 packages/talker_flutter/lib/src/extensions/log_level.dart diff --git a/examples/shop_app_example/lib/features/products/view/products_screen.dart b/examples/shop_app_example/lib/features/products/view/products_screen.dart index 8189b3f3..c339692e 100644 --- a/examples/shop_app_example/lib/features/products/view/products_screen.dart +++ b/examples/shop_app_example/lib/features/products/view/products_screen.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:get_it/get_it.dart'; -import 'package:talker_flutter/talker_flutter.dart'; import 'package:talker_shop_app_example/features/products/bloc/products/products_bloc.dart'; import 'package:talker_shop_app_example/features/products/widgets/widgets.dart'; import 'package:talker_shop_app_example/repositories/products/products.dart'; @@ -156,20 +155,20 @@ class ExampleWarning extends StatelessWidget { margin: const EdgeInsets.all(8), padding: const EdgeInsets.all(8), decoration: BoxDecoration( - border: Border.all(color: LogLevel.warning.color), + border: Border.all(color: Colors.orange[800]!), borderRadius: BorderRadius.circular(10), ), child: Row( children: [ Icon( Icons.warning_amber_rounded, - color: LogLevel.warning.color, + color: Colors.orange[800]!, ), const SizedBox(width: 10), Expanded( child: Text( text, - style: TextStyle(color: LogLevel.warning.color), + style: TextStyle(color: Colors.orange[800]!), ), ), ], diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 19fa504d..cbf907c6 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -359,8 +359,12 @@ class Talker { return; } - data = TalkerLog(message?.toString() ?? '', logLevel: logLevel); - _handleLogData(data as TalkerLog, pen: pen); + data = TalkerLog( + message?.toString() ?? '', + logLevel: logLevel, + pen: pen ?? logLevel.consoleColor, + ); + _handleLogData(data as TalkerLog); } void _handleErrorData(TalkerDataInterface data) { @@ -383,7 +387,6 @@ class Talker { void _handleLogData( TalkerLog data, { - AnsiPen? pen, LogLevel? logLevel, }) { if (!settings.enabled) { @@ -400,7 +403,7 @@ class Talker { _logger.log( data.generateTextMessage(), level: logLevel ?? data.logLevel, - pen: data.pen ?? pen, + pen: data.pen, ); } } diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index 500dc732..15e50e7a 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -337,10 +337,10 @@ packages: dependency: "direct main" description: name: talker_flutter - sha256: f627b29b96782e73a5eefdf906e716bfe3da7f8b21fd87955794884bf02d2d40 + sha256: f0e1fde9221dc393ad67aa02fc03f1c1f6ceeded9728e76b382ef94d4156bccf url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.5.1" talker_logger: dependency: transitive description: diff --git a/packages/talker_flutter/example/pubspec.lock b/packages/talker_flutter/example/pubspec.lock index 45a8a903..eff28a57 100644 --- a/packages/talker_flutter/example/pubspec.lock +++ b/packages/talker_flutter/example/pubspec.lock @@ -309,12 +309,11 @@ packages: source: hosted version: "1.2.0" talker: - dependency: transitive + dependency: "direct overridden" description: - name: talker - sha256: e0cb07e0bcab6045b86761593ff6f1878b335bfc1978ba48415d0968af68d81e - url: "https://pub.dev" - source: hosted + path: "../../talker" + relative: true + source: path version: "3.1.3" talker_flutter: dependency: "direct main" diff --git a/packages/talker_flutter/example/pubspec_overrides.yaml b/packages/talker_flutter/example/pubspec_overrides.yaml index 53e9840a..a1aeb877 100644 --- a/packages/talker_flutter/example/pubspec_overrides.yaml +++ b/packages/talker_flutter/example/pubspec_overrides.yaml @@ -1,4 +1,7 @@ dependency_overrides: ansicolor: path: - /Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart \ No newline at end of file + /Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart + talker: + path: + ../../talker \ No newline at end of file diff --git a/packages/talker_flutter/lib/src/extensions/extensions.dart b/packages/talker_flutter/lib/src/extensions/extensions.dart index 7a4a3724..919ac63a 100644 --- a/packages/talker_flutter/lib/src/extensions/extensions.dart +++ b/packages/talker_flutter/lib/src/extensions/extensions.dart @@ -1,5 +1,4 @@ export 'color.dart'; export 'history.dart'; export 'iterable.dart'; -export 'log_level.dart'; export 'talker_flutter.dart'; diff --git a/packages/talker_flutter/lib/src/extensions/log_level.dart b/packages/talker_flutter/lib/src/extensions/log_level.dart deleted file mode 100644 index a7cf5d8e..00000000 --- a/packages/talker_flutter/lib/src/extensions/log_level.dart +++ /dev/null @@ -1,25 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:talker_flutter/talker_flutter.dart'; - -/// Extension to map [LogLevel] into Flutter [Color] -extension LogLevelExtensions on LogLevel? { - Color get color { - switch (this) { - case LogLevel.critical: - return Colors.red[800]!; - case LogLevel.error: - return Colors.red[400]!; - case LogLevel.warning: - return Colors.orange[800]!; - case LogLevel.verbose: - return Colors.grey[400]!; - case LogLevel.info: - return Colors.blue[400]!; - case LogLevel.good: - return Colors.green[400]!; - case LogLevel.debug: - default: - return Colors.grey; - } - } -} diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart index ec132bbb..0c522dbc 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:talker_flutter/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart'; import 'package:talker_flutter/src/ui/talker_monitor/widgets/widgets.dart'; +import 'package:talker_flutter/src/ui/theme/default_theme.dart'; import 'package:talker_flutter/talker_flutter.dart'; class TalkerMonitor extends StatelessWidget { @@ -125,7 +126,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: exceptions, title: 'Exceptions', - color: LogLevel.error.color, + color: errorColor, icon: Icons.error_outline_rounded, subtitle: 'Application has ${exceptions.length} unresolved exceptions', @@ -140,7 +141,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: warnings, title: 'Warnings', - color: LogLevel.warning.color, + color: waringinColor, icon: Icons.warning_amber_rounded, subtitle: 'Application has ${warnings.length} warnings', onTap: () => @@ -154,7 +155,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: infos, title: 'Infos', - color: LogLevel.info.color, + color: infoColor, icon: Icons.info_outline_rounded, subtitle: 'Info logs count: ${infos.length}', onTap: () => _openTypedLogsScreen(context, infos, 'Infos'), @@ -167,7 +168,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: verboseDebug, title: 'Verbose & debug', - color: LogLevel.verbose.color, + color: verboseColor, icon: Icons.remove_red_eye_outlined, subtitle: 'Verbose and debug logs count: ${verboseDebug.length}', diff --git a/packages/talker_flutter/lib/src/ui/theme/default_theme.dart b/packages/talker_flutter/lib/src/ui/theme/default_theme.dart index 901ec81b..166b4166 100644 --- a/packages/talker_flutter/lib/src/ui/theme/default_theme.dart +++ b/packages/talker_flutter/lib/src/ui/theme/default_theme.dart @@ -7,3 +7,11 @@ const httpRequestLogColor = Color(0xFFF602C1); const blocTransitionColor = Color(0xFF56FEA8); const blocEventColor = Color(0xFF63FAFE); const routeLogColor = Color(0xFFAF5FFF); + +final critcalErrorColor = Colors.red[800]!; +final errorColor = Colors.red[400]!; +final waringinColor = Colors.orange[800]!; +final verboseColor = Colors.grey[400]!; +final infoColor = Colors.blue[400]!; +final goodColor = Colors.green[400]!; +const debugColor = Colors.grey; diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index 0a2f8999..c0bd1ff6 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -142,15 +142,11 @@ class TalkerDataCard extends StatelessWidget { } Color get _color { - if (data is TalkerLog) { - final hexColor = (data as TalkerLog).pen?.toHexColor(); - if (hexColor != null) { - return ColorExt.fromHEX(hexColor); - } - } + final colorFromAnsi = _getColorFromAnsi(); + if (colorFromAnsi != null) return colorFromAnsi; if (data.title == WellKnownTitles.httpError.title) { - return LogLevel.error.color; + return errorColor; } if (data.title == WellKnownTitles.httpResponse.title) { return httpResponseLogColor; @@ -167,7 +163,18 @@ class TalkerDataCard extends StatelessWidget { if (data.title == WellKnownTitles.blocEvent.title) { return blocEventColor; } - return data.logLevel.color; + return debugColor; + } + + Color? _getColorFromAnsi() { + final logData = data; + if (logData is TalkerLog) { + final hexColor = logData.pen?.toHexColor(); + if (hexColor != null) { + return ColorExt.fromHEX(hexColor); + } + } + return null; } String? get _message { From 160a04a3c3bee383ee0aa21f9245c04a030da354 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 17 Oct 2023 03:35:15 +0500 Subject: [PATCH 03/66] Remove ansicolor fork --- examples/shop_app_example/pubspec.lock | 28 +++++++++---------- packages/talker/pubspec_overrides.yaml | 5 +--- packages/talker_flutter/example/pubspec.lock | 20 +++++++------ packages/talker_flutter/example/pubspec.yaml | 1 - .../example/pubspec_overrides.yaml | 7 ----- packages/talker_flutter/pubspec.yaml | 3 -- .../talker_flutter/pubspec_overrides.yaml | 5 +--- packages/talker_logger/pubspec.yaml | 2 +- packages/talker_logger/pubspec_overrides.yaml | 4 --- 9 files changed, 28 insertions(+), 47 deletions(-) delete mode 100644 packages/talker_flutter/example/pubspec_overrides.yaml delete mode 100644 packages/talker_logger/pubspec_overrides.yaml diff --git a/examples/shop_app_example/pubspec.lock b/examples/shop_app_example/pubspec.lock index 7bb26903..b040a0a5 100644 --- a/examples/shop_app_example/pubspec.lock +++ b/examples/shop_app_example/pubspec.lock @@ -292,50 +292,50 @@ packages: dependency: transitive description: name: path_provider - sha256: "3087813781ab814e4157b172f1a11c46be20179fcc9bea043e0fba36bc0acaa2" + sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa url: "https://pub.dev" source: hosted - version: "2.0.15" + version: "2.1.1" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e + sha256: "6b8b19bd80da4f11ce91b2d1fb931f3006911477cec227cce23d3253d80df3f1" url: "https://pub.dev" source: hosted - version: "2.0.22" + version: "2.2.0" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74" + sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.3.1" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.2.1" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76 + sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.1.1" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6 + sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.2.1" platform: dependency: transitive description: @@ -449,7 +449,7 @@ packages: path: "../../packages/talker_flutter" relative: true source: path - version: "3.4.0" + version: "3.5.1" talker_logger: dependency: transitive description: @@ -588,4 +588,4 @@ packages: version: "0.2.0+3" sdks: dart: ">=3.1.0-185.0.dev <4.0.0" - flutter: ">=3.3.0" + flutter: ">=3.7.0" diff --git a/packages/talker/pubspec_overrides.yaml b/packages/talker/pubspec_overrides.yaml index a0162df4..d5e85ac0 100644 --- a/packages/talker/pubspec_overrides.yaml +++ b/packages/talker/pubspec_overrides.yaml @@ -1,7 +1,4 @@ dependency_overrides: talker_logger: path: - ../talker_logger - ansicolor: - path: - /Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart \ No newline at end of file + ../talker_logger \ No newline at end of file diff --git a/packages/talker_flutter/example/pubspec.lock b/packages/talker_flutter/example/pubspec.lock index eff28a57..8c66b6b9 100644 --- a/packages/talker_flutter/example/pubspec.lock +++ b/packages/talker_flutter/example/pubspec.lock @@ -2,12 +2,13 @@ # See https://dart.dev/tools/pub/glossary#lockfile packages: ansicolor: - dependency: "direct main" + dependency: transitive description: - path: "/Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart" - relative: false - source: path - version: "2.0.2-dev" + name: ansicolor + sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880" + url: "https://pub.dev" + source: hosted + version: "2.0.2" async: dependency: transitive description: @@ -309,11 +310,12 @@ packages: source: hosted version: "1.2.0" talker: - dependency: "direct overridden" + dependency: transitive description: - path: "../../talker" - relative: true - source: path + name: talker + sha256: e0cb07e0bcab6045b86761593ff6f1878b335bfc1978ba48415d0968af68d81e + url: "https://pub.dev" + source: hosted version: "3.1.3" talker_flutter: dependency: "direct main" diff --git a/packages/talker_flutter/example/pubspec.yaml b/packages/talker_flutter/example/pubspec.yaml index 7dd3cb4f..963c77a5 100644 --- a/packages/talker_flutter/example/pubspec.yaml +++ b/packages/talker_flutter/example/pubspec.yaml @@ -32,7 +32,6 @@ dependencies: talker_flutter: path: ../ - ansicolor: ^2.0.1 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. diff --git a/packages/talker_flutter/example/pubspec_overrides.yaml b/packages/talker_flutter/example/pubspec_overrides.yaml deleted file mode 100644 index a1aeb877..00000000 --- a/packages/talker_flutter/example/pubspec_overrides.yaml +++ /dev/null @@ -1,7 +0,0 @@ -dependency_overrides: - ansicolor: - path: - /Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart - talker: - path: - ../../talker \ No newline at end of file diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 84051744..098fcc18 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -24,9 +24,6 @@ dependencies: group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.1.0 - ansicolor: #^2.0.1 - path: - /Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart dev_dependencies: diff --git a/packages/talker_flutter/pubspec_overrides.yaml b/packages/talker_flutter/pubspec_overrides.yaml index 697e7df9..cb8ebb9f 100644 --- a/packages/talker_flutter/pubspec_overrides.yaml +++ b/packages/talker_flutter/pubspec_overrides.yaml @@ -1,7 +1,4 @@ dependency_overrides: talker: path: - ../talker - ansicolor: - path: - /Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart \ No newline at end of file + ../talker \ No newline at end of file diff --git a/packages/talker_logger/pubspec.yaml b/packages/talker_logger/pubspec.yaml index 677d7ae0..8a6d110f 100644 --- a/packages/talker_logger/pubspec.yaml +++ b/packages/talker_logger/pubspec.yaml @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - ansicolor: ^2.0.1 + ansicolor: ^2.0.2 dev_dependencies: lint: ^2.0.1 diff --git a/packages/talker_logger/pubspec_overrides.yaml b/packages/talker_logger/pubspec_overrides.yaml deleted file mode 100644 index 53e9840a..00000000 --- a/packages/talker_logger/pubspec_overrides.yaml +++ /dev/null @@ -1,4 +0,0 @@ -dependency_overrides: - ansicolor: - path: - /Users/stanislavilin/Documents/dev/flutter/packages/other/ansicolor-dart \ No newline at end of file From bde24e665836fb1171cb7287b2f3b3bc4038f002 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 17 Oct 2023 03:52:48 +0500 Subject: [PATCH 04/66] Update examples packages and fmt hex method --- examples/shop_app_example/ios/Podfile.lock | 6 +- .../ios/Runner.xcodeproj/project.pbxproj | 3 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- examples/shop_app_example/pubspec.lock | 22 +++--- examples/shop_app_example/pubspec.yaml | 13 ++-- .../shop_app_example/pubspec_overrides.yaml | 16 +++++ .../talker/lib/src/extensions/extensions.dart | 18 ----- packages/talker_flutter/example/pubspec.yaml | 67 ------------------- .../lib/src/ui/widgets/data_card.dart | 9 +++ utils/pub_get_all.sh | 5 ++ 10 files changed, 50 insertions(+), 111 deletions(-) create mode 100644 examples/shop_app_example/pubspec_overrides.yaml diff --git a/examples/shop_app_example/ios/Podfile.lock b/examples/shop_app_example/ios/Podfile.lock index 3b8998d9..32d22f91 100644 --- a/examples/shop_app_example/ios/Podfile.lock +++ b/examples/shop_app_example/ios/Podfile.lock @@ -100,7 +100,7 @@ DEPENDENCIES: - firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - Flutter (from `Flutter`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) @@ -124,7 +124,7 @@ EXTERNAL SOURCES: Flutter: :path: Flutter path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/ios" + :path: ".symlinks/plugins/path_provider_foundation/darwin" share_plus: :path: ".symlinks/plugins/share_plus/ios" url_launcher_ios: @@ -142,7 +142,7 @@ SPEC CHECKSUMS: GoogleAppMeasurement: 373bcbead1bb6a85be7a64d5d8f96284b762ea9c GoogleUtilities: 9aa0ad5a7bc171f8bae016300bfcfa3fb8425749 nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 - path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852 + path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef share_plus: 599aa54e4ea31d4b4c0e9c911bcc26c55e791028 url_launcher_ios: ae1517e5e344f5544fb090b079e11f399dfbe4d2 diff --git a/examples/shop_app_example/ios/Runner.xcodeproj/project.pbxproj b/examples/shop_app_example/ios/Runner.xcodeproj/project.pbxproj index 50c2859e..70f44170 100644 --- a/examples/shop_app_example/ios/Runner.xcodeproj/project.pbxproj +++ b/examples/shop_app_example/ios/Runner.xcodeproj/project.pbxproj @@ -156,7 +156,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -222,6 +222,7 @@ files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( diff --git a/examples/shop_app_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/shop_app_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index c87d15a3..a6b826db 100644 --- a/examples/shop_app_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/examples/shop_app_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ { return sb.toString(); } } - -extension AnsiExtension on AnsiPen { - /// Make ansi to hex f - String toHexColor() { - final ansiColor = fcolor != -1 ? fcolor : bcolor; - - // Extract RGB components from the ANSI color code - int r = (((ansiColor - 16) ~/ 36) / 5 * 255).toInt(); - int g = (((ansiColor - 16) ~/ 6 % 6) / 5 * 255).toInt(); - int b = ((ansiColor - 16) % 6 / 5 * 255).toInt(); - - // Convert RGB components to HEX format - String hexColor = - '#${r.toRadixString(16).padLeft(2, '0')}${g.toRadixString(16).padLeft(2, '0')}${b.toRadixString(16).padLeft(2, '0')}'; - - return hexColor; - } -} diff --git a/packages/talker_flutter/example/pubspec.yaml b/packages/talker_flutter/example/pubspec.yaml index 963c77a5..5f2aa137 100644 --- a/packages/talker_flutter/example/pubspec.yaml +++ b/packages/talker_flutter/example/pubspec.yaml @@ -1,31 +1,11 @@ name: talker_example description: A new Flutter project. - -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev - -# The following defines the version and build number for your application. -# A version number is three numbers separated by dots, like 1.2.43 -# followed by an optional build number separated by a +. -# Both the version and the builder number may be overridden in flutter -# build by specifying --build-name and --build-number, respectively. -# In Android, build-name is used as versionName while build-number used as versionCode. -# Read more about Android versioning at https://developer.android.com/studio/publish/versioning -# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. -# Read more about iOS versioning at -# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html version: 1.0.0+1 environment: sdk: ">=2.15.0 <3.0.0" -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter @@ -33,59 +13,12 @@ dependencies: path: ../ - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 dev_dependencies: flutter_test: sdk: flutter - - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. flutter_lints: ^1.0.0 -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec - -# The following section is specific to Flutter. flutter: - - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. uses-material-design: true - - # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/assets-and-images/#resolution-aware. - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/assets-and-images/#from-packages - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/custom-fonts/#from-packages diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index c0bd1ff6..a3452034 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -208,3 +208,12 @@ class TalkerDataCard extends StatelessWidget { return 'Type: ${data.exception?.runtimeType.toString() ?? data.error?.runtimeType.toString() ?? ''}'; } } + +extension AnsiExtension on AnsiPen { + /// Make ansi to hex format + String toHexColor() { + final ansiColor = fcolor != -1 ? fcolor : bcolor; + final hexColor = '#${ansiColor.toRadixString(16)}'; + return hexColor; + } +} diff --git a/utils/pub_get_all.sh b/utils/pub_get_all.sh index ad911efa..d2772080 100644 --- a/utils/pub_get_all.sh +++ b/utils/pub_get_all.sh @@ -8,6 +8,11 @@ echo "talker_flutter" cd ../talker_flutter flutter pub get +echo "talker_flutter_example" +cd example +flutter pub get +cd .. + echo "talker_logger" cd ../talker_logger flutter pub get From dffd1c1c5586cbb1b3d50af2a063a464f46bb303 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 17 Oct 2023 16:02:58 +0500 Subject: [PATCH 05/66] Add talker_logger titles customization --- .../talker/lib/src/models/talker_log.dart | 6 +-- packages/talker/lib/src/talker.dart | 22 ++--------- .../talker/lib/src/utils/error_handler.dart | 6 ++- .../talker/lib/src/well_known_titles.dart | 30 ++++++--------- packages/talker_dio_logger/lib/dio_logs.dart | 8 ++-- .../lib/src/ui/widgets/data_card.dart | 2 +- packages/talker_logger/lib/src/logger.dart | 15 +++++--- .../lib/src/models/log_level.dart | 25 ------------ packages/talker_logger/lib/src/settings.dart | 30 +++++++++++++++ .../test/talker_logger_log_level_test.dart | 38 +++++++++---------- .../test/talker_logger_test.dart | 4 +- 11 files changed, 88 insertions(+), 98 deletions(-) diff --git a/packages/talker/lib/src/models/talker_log.dart b/packages/talker/lib/src/models/talker_log.dart index 649fb659..92c3b243 100644 --- a/packages/talker/lib/src/models/talker_log.dart +++ b/packages/talker/lib/src/models/talker_log.dart @@ -9,16 +9,14 @@ class TalkerLog implements TalkerDataInterface { this.exception, this.error, this.stackTrace, - String? title, + this.title = 'Log', DateTime? time, this.pen, }) { - _title = title ?? logLevel.title; _time = time ?? DateTime.now(); } late DateTime _time; - late String _title; /// {@macro talker_data_message} @override @@ -37,7 +35,7 @@ class TalkerLog implements TalkerDataInterface { /// {@macro talker_data_title} @override - String get title => _title; + final String title; /// {@macro talker_data_loglevel} @override diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index cbf907c6..2633d1e6 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -96,14 +96,12 @@ class Talker { /// You can connect a listener to it and catch the received errors /// /// Or you can add your observer [TalkerObserver] in the settings - Stream get stream => _talkerStreamController.stream.asBroadcastStream(); /// The history stores all information about all events like /// occurred errors [TalkerError]s, exceptions [TalkerException]s /// and logs [TalkerLog]s that have been sent - List get history => _history; /// Handle common exceptions in your code @@ -120,7 +118,6 @@ class Talker { /// ``` /// /// {@macro errorLevel} - void handle( Object exception, [ StackTrace? stackTrace, @@ -163,7 +160,6 @@ class Talker { /// pen: AnsiPen()..red(), /// ); /// ``` - void log( dynamic message, { LogLevel logLevel = LogLevel.debug, @@ -196,7 +192,6 @@ class Talker { /// final httpLog = HttpTalkerLog('Http status: 200'); /// talker.logTyped(httpLog); /// ``` - void logTyped(TalkerLog log, {LogLevel logLevel = LogLevel.debug}) { _handleLogData(log, logLevel: logLevel); } @@ -209,7 +204,6 @@ class Talker { /// ```dart /// talker.critical('Log critical'); /// ``` - void critical( dynamic msg, [ Object? exception, @@ -226,7 +220,6 @@ class Talker { /// ```dart /// talker.debug('Log debug'); /// ``` - void debug( dynamic msg, [ Object? exception, @@ -243,7 +236,6 @@ class Talker { /// ```dart /// talker.error('Log error'); /// ``` - void error( dynamic msg, [ Object? exception, @@ -260,7 +252,6 @@ class Talker { /// ```dart /// talker.good('Log good'); /// ``` - void good( dynamic msg, [ Object? exception, @@ -277,7 +268,6 @@ class Talker { /// ```dart /// talker.info('Log info'); /// ``` - void info( dynamic msg, [ Object? exception, @@ -294,7 +284,6 @@ class Talker { /// ```dart /// talker.verbose('Log verbose'); /// ``` - void verbose( dynamic msg, [ Object? exception, @@ -311,7 +300,6 @@ class Talker { /// ```dart /// talker.warning('Log warning'); /// ``` - void warning( dynamic msg, [ Object? exception, @@ -321,7 +309,6 @@ class Talker { } /// Clear log history - void cleanHistory() { if (settings.useHistory) { _history.clear(); @@ -332,7 +319,6 @@ class Talker { /// /// If you config package to handle errors or making logs, /// this method stop these processes - void disable() { settings.enabled = false; } @@ -341,7 +327,6 @@ class Talker { /// /// The method will return everything back /// if the package was suspended by the [disable] method - void enable() { settings.enabled = true; } @@ -353,18 +338,17 @@ class Talker { LogLevel logLevel, { AnsiPen? pen, }) { - TalkerDataInterface? data; if (exception != null) { handle(exception, stackTrace, message); return; } - - data = TalkerLog( + final data = TalkerLog( message?.toString() ?? '', + title: _logger.getTitleByLogLevel(logLevel), logLevel: logLevel, pen: pen ?? logLevel.consoleColor, ); - _handleLogData(data as TalkerLog); + _handleLogData(data); } void _handleErrorData(TalkerDataInterface data) { diff --git a/packages/talker/lib/src/utils/error_handler.dart b/packages/talker/lib/src/utils/error_handler.dart index 9e7b348a..6edf5a2e 100644 --- a/packages/talker/lib/src/utils/error_handler.dart +++ b/packages/talker/lib/src/utils/error_handler.dart @@ -13,13 +13,16 @@ class TalkerErrorHandler { if (exception is Error) { return TalkerError( exception, + title: WellKnownTitles.exception.title, stackTrace: stackTrace, message: msg, logLevel: LogLevel.error, ); - } else if (exception is Exception) { + } + if (exception is Exception) { return TalkerException( exception, + title: WellKnownTitles.error.title, stackTrace: stackTrace, message: msg, logLevel: LogLevel.error, @@ -27,6 +30,7 @@ class TalkerErrorHandler { } return TalkerLog( exception.toString(), + title: WellKnownTitles.exception.title, logLevel: LogLevel.error, stackTrace: stackTrace, ); diff --git a/packages/talker/lib/src/well_known_titles.dart b/packages/talker/lib/src/well_known_titles.dart index e2e9a1c2..19e0ee3d 100644 --- a/packages/talker/lib/src/well_known_titles.dart +++ b/packages/talker/lib/src/well_known_titles.dart @@ -10,24 +10,18 @@ enum WellKnownTitles { } extension WellKnownTitlesExt on WellKnownTitles { + //TODO: customization from Talker constructor String get title { - switch (this) { - case WellKnownTitles.error: - return 'ERROR'; - case WellKnownTitles.exception: - return 'EXCEPTION'; - case WellKnownTitles.httpError: - return 'http-error'; - case WellKnownTitles.httpRequest: - return 'http-request'; - case WellKnownTitles.httpResponse: - return 'http-response'; - case WellKnownTitles.blocEvent: - return 'bloc-event'; - case WellKnownTitles.blocTransition: - return 'bloc-transition'; - case WellKnownTitles.route: - return 'ROUTE'; - } + final titles = { + WellKnownTitles.error: 'ERROR', + WellKnownTitles.exception: 'EXCEPTION', + WellKnownTitles.httpError: 'http-error', + WellKnownTitles.httpRequest: 'http-request', + WellKnownTitles.httpResponse: 'http-response', + WellKnownTitles.blocEvent: 'bloc-event', + WellKnownTitles.blocTransition: 'bloc-transition', + WellKnownTitles.route: 'ROUTE', + }; + return titles[this] ?? 'log'; } } diff --git a/packages/talker_dio_logger/lib/dio_logs.dart b/packages/talker_dio_logger/lib/dio_logs.dart index 844fbbbf..a95ab6c1 100644 --- a/packages/talker_dio_logger/lib/dio_logs.dart +++ b/packages/talker_dio_logger/lib/dio_logs.dart @@ -8,10 +8,10 @@ const encoder = JsonEncoder.withIndent(' '); class DioRequestLog extends TalkerLog { DioRequestLog( - String title, { + String message, { required this.requestOptions, required this.settings, - }) : super(title); + }) : super(message); final RequestOptions requestOptions; final TalkerDioLoggerSettings settings; @@ -47,10 +47,10 @@ class DioRequestLog extends TalkerLog { class DioResponseLog extends TalkerLog { DioResponseLog( - String title, { + String message, { required this.response, required this.settings, - }) : super(title); + }) : super(message); final Response response; final TalkerDioLoggerSettings settings; diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index a3452034..ec1722ef 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -213,7 +213,7 @@ extension AnsiExtension on AnsiPen { /// Make ansi to hex format String toHexColor() { final ansiColor = fcolor != -1 ? fcolor : bcolor; - final hexColor = '#${ansiColor.toRadixString(16)}'; + final hexColor = '#${ansiColor.toRadixString(16).padLeft(2, '0')}'; return hexColor; } } diff --git a/packages/talker_logger/lib/src/logger.dart b/packages/talker_logger/lib/src/logger.dart index 5b4a9592..4bafa761 100644 --- a/packages/talker_logger/lib/src/logger.dart +++ b/packages/talker_logger/lib/src/logger.dart @@ -16,7 +16,8 @@ class TalkerLogger { /// Logger settings final TalkerLoggerSettings settings; - /// Logs formatter + /// You can setup differen formatter [ExtendedLoggerFormatter, ColoredLoggerFormatter] + /// Or your own fuly customized formatter with extends [LoggerFormatter] final LoggerFormatter formatter; late final void Function(String message) _output; @@ -33,7 +34,6 @@ class TalkerLogger { /// logger.log('Log custom message', level: LogLevel.error, pen: AnsiPen()..red()); /// ``` /// {@endtemplate} - void log(dynamic msg, {LogLevel? level, AnsiPen? pen}) { final selectedPen = pen ?? settings.colors[level] ?? level.consoleColor; final selectedLevel = level ?? LogLevel.debug; @@ -55,7 +55,6 @@ class TalkerLogger { /// logger.critical('Log critical message'); /// ``` /// {@endtemplate} - void critical(dynamic msg) => log(msg, level: LogLevel.critical); /// {@template talker_logger_error_log} @@ -67,7 +66,6 @@ class TalkerLogger { /// logger.error('Log error message'); /// ``` /// {@endtemplate} - void error(dynamic msg) => log(msg, level: LogLevel.error); /// {@template talker_logger_warning_log} @@ -79,7 +77,6 @@ class TalkerLogger { /// logger.warning('Log warning message'); /// ``` /// {@endtemplate} - void warning(dynamic msg) => log(msg, level: LogLevel.warning); /// {@template talker_logger_debug_log} @@ -143,4 +140,12 @@ class TalkerLogger { output: output ?? _output, ); } + + String getTitleByLogLevel(LogLevel logLevel) { + final levelTitle = settings.titles[logLevel]; + if (levelTitle != null) { + return levelTitle; + } + return settings.defaultTitle; + } } diff --git a/packages/talker_logger/lib/src/models/log_level.dart b/packages/talker_logger/lib/src/models/log_level.dart index dc1d7680..f041c84c 100644 --- a/packages/talker_logger/lib/src/models/log_level.dart +++ b/packages/talker_logger/lib/src/models/log_level.dart @@ -25,31 +25,6 @@ final logLevelPriorityList = [ LogLevel.verbose, ]; -/// Extension to get console log title of log level -extension LogLevelTitle on LogLevel? { - /// Console log title of log level - String get title { - switch (this) { - case LogLevel.critical: - return 'CRITICAL'; - case LogLevel.error: - return 'ERROR'; - case LogLevel.warning: - return 'WARNING'; - case LogLevel.verbose: - return 'VERBOSE'; - case LogLevel.info: - return 'INFO'; - case LogLevel.good: - return 'GOOD'; - case LogLevel.debug: - return 'DEBUG'; - default: - return 'LOG'; - } - } -} - /// Extension to get console log [AnsiPen] of log level /// to make colored message extension ToConsoleColor on LogLevel? { diff --git a/packages/talker_logger/lib/src/settings.dart b/packages/talker_logger/lib/src/settings.dart index 8457a86f..d0a4da18 100644 --- a/packages/talker_logger/lib/src/settings.dart +++ b/packages/talker_logger/lib/src/settings.dart @@ -1,9 +1,21 @@ import 'package:talker_logger/talker_logger.dart'; +const _defaultLogTitles = { + LogLevel.critical: 'CRITICAL', + LogLevel.error: 'ERROR', + LogLevel.warning: 'WARNING', + LogLevel.verbose: 'VERBOSE', + LogLevel.info: 'INFO', + LogLevel.good: 'GOOD', + LogLevel.debug: 'DEBUG', +}; + /// Logger customization settings class TalkerLoggerSettings { const TalkerLoggerSettings({ this.colors = const {}, + this.titles = _defaultLogTitles, + this.defaultTitle = 'LOG', this.level = LogLevel.verbose, this.lineSymbol = '─', this.maxLineWidth = 110, @@ -25,6 +37,24 @@ class TalkerLoggerSettings { /// ``` final Map colors; + /// Field to setup custom log titles + ///```dart + /// final logger = TalkerLogger( + /// settings: TalkerLoggerSettings( + /// colors: { + /// LogLevel.critical: 'OH nooo! ☠️☠️☠️', + /// LogLevel.error: 'πŸ†˜ Lock at me! πŸ†˜', + /// LogLevel.info: 'i', + /// }, + /// enableColors: true, + /// ), + /// ); + /// ``` + final Map titles; + + /// Title of default log without [LogLevel] + final String defaultTitle; + /// Current log level /// All messages with a priority below this will be ignored final LogLevel level; diff --git a/packages/talker_logger/test/talker_logger_log_level_test.dart b/packages/talker_logger/test/talker_logger_log_level_test.dart index 951207fd..3b72f8df 100644 --- a/packages/talker_logger/test/talker_logger_log_level_test.dart +++ b/packages/talker_logger/test/talker_logger_log_level_test.dart @@ -13,15 +13,15 @@ void main() { LogLevel.good: AnsiPen()..green(), }; - final textCases = { - LogLevel.critical: 'CRITICAL', - LogLevel.error: 'ERROR', - LogLevel.warning: 'WARNING', - LogLevel.verbose: 'VERBOSE', - LogLevel.info: 'INFO', - LogLevel.good: 'GOOD', - LogLevel.debug: 'DEBUG', - }; + // final textCases = { + // LogLevel.critical: 'CRITICAL', + // LogLevel.error: 'ERROR', + // LogLevel.warning: 'WARNING', + // LogLevel.verbose: 'VERBOSE', + // LogLevel.info: 'INFO', + // LogLevel.good: 'GOOD', + // LogLevel.debug: 'DEBUG', + // }; setUp(() { ansiColorDisabled = false; @@ -37,18 +37,18 @@ void main() { } }); - group('LogLevel_To_Text', () { - for (final lvl in textCases.entries) { - _testLogLevelToTitle(lvl.key, lvl.value); - } - }); + // group('LogLevel_To_Text', () { + // for (final lvl in textCases.entries) { + // _testLogLevelToTitle(lvl.key, lvl.value); + // } + // }); } -void _testLogLevelToTitle(LogLevel logLvl, String title) { - test('LVL: $logLvl', () { - expect(logLvl.title, title); - }); -} +// void _testLogLevelToTitle(LogLevel logLvl, String title) { +// test('LVL: $logLvl', () { +// expect(logLvl.title, title); +// }); +// } void _testLogLevelToAnsi(LogLevel logLvl, AnsiPen pen) { test('LVL: $logLvl', () { diff --git a/packages/talker_logger/test/talker_logger_test.dart b/packages/talker_logger/test/talker_logger_test.dart index d8625e5e..5fe1d019 100644 --- a/packages/talker_logger/test/talker_logger_test.dart +++ b/packages/talker_logger/test/talker_logger_test.dart @@ -4,7 +4,7 @@ import 'package:test/test.dart'; class LogLevelLoggerFormater implements LoggerFormatter { @override String fmt(LogDetails details, TalkerLoggerSettings settings) { - return details.level.title; + return details.level.toString(); } } @@ -157,7 +157,7 @@ void _testLog(LogLevel level) { void _expectMessageType(LogLevel level) { expect(_messages, isNotEmpty); expect(_messages.length, 1); - expect(_messages, contains(level.title)); + expect(_messages, contains(level.toString())); } void _expectInstance(TalkerLogger logger) { From 96544cacc916ef26cd6cfeb968b71c2b4af81e1c Mon Sep 17 00:00:00 2001 From: kanade Date: Mon, 23 Oct 2023 15:45:12 +0800 Subject: [PATCH 06/66] Fix the overflow issue of 'Talker Monitor'. --- .../widgets/talker_monitor_card.dart | 56 ++++++++++--------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/widgets/talker_monitor_card.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/widgets/talker_monitor_card.dart index 4a762c96..dac50e53 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/widgets/talker_monitor_card.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/widgets/talker_monitor_card.dart @@ -31,33 +31,37 @@ class TalkerMonitorCard extends StatelessWidget { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Row( - children: [ - Icon(icon, color: color), - const SizedBox(width: 10), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - title, - style: TextStyle( - color: color, - fontSize: 16, - fontWeight: FontWeight.w700, - ), - ), - if (subtitle != null) - Text( - subtitle!, - style: const TextStyle( - color: Colors.white, - fontSize: 14, + Flexible( + child: Row( + children: [ + Icon(icon, color: color), + const SizedBox(width: 10), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: TextStyle( + color: color, + fontSize: 16, + fontWeight: FontWeight.w700, + ), ), - ), - if (subtitleWidget != null) subtitleWidget! - ], - ), - ], + if (subtitle != null) + Text( + subtitle!, + style: const TextStyle( + color: Colors.white, + fontSize: 14, + ), + ), + if (subtitleWidget != null) subtitleWidget! + ], + ), + ), + ], + ), ), if (onTap != null) Icon(Icons.arrow_forward_ios_rounded, color: color), From f317e5503d961208a0e5d19b98ef493971e4f30e Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 24 Oct 2023 16:12:57 +0500 Subject: [PATCH 07/66] Publish talker_flutter: 3.5.3 --- README.md | 2 +- packages/talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_flutter/CHANGELOG.md | 5 +++++ packages/talker_flutter/example/pubspec.lock | 6 +++--- packages/talker_flutter/pubspec.yaml | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0647c7d3..366ea97e 100644 --- a/README.md +++ b/README.md @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^3.5.2 + talker_flutter: ^3.5.3 ``` ### Setup diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index ec3daf83..69f590c1 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter dio: ^5.0.0 talker_dio_logger: ^2.3.1 - talker_flutter: ^3.5.2 + talker_flutter: ^3.5.3 dev_dependencies: flutter_test: diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index 6f9fce29..f9c56c01 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,8 @@ +# 3.5.3 +- Fix the overflow issue of Talker Monitor + +Thanks to [Kabak-Siarhei](https://github.com/Kabak-Siarhei) + # 3.5.2 - Bump talker version to 3.1.4 - Pad minutes and seconds for DateTime formatter diff --git a/packages/talker_flutter/example/pubspec.lock b/packages/talker_flutter/example/pubspec.lock index 723d2651..bdc3b3b3 100644 --- a/packages/talker_flutter/example/pubspec.lock +++ b/packages/talker_flutter/example/pubspec.lock @@ -313,17 +313,17 @@ packages: dependency: transitive description: name: talker - sha256: e0cb07e0bcab6045b86761593ff6f1878b335bfc1978ba48415d0968af68d81e + sha256: "9c587c0269e194ea5c161b01fa5c4e4120926f4b8fedcf9b3bd2466cb500b880" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.4" talker_flutter: dependency: "direct main" description: path: ".." relative: true source: path - version: "3.5.1" + version: "3.5.3" talker_logger: dependency: transitive description: diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 76339858..042b1b8d 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.5.2 +version: 3.5.3 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues From 99df9ab1a7d900e42d1df51eef241560caf3cdca Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Mon, 30 Oct 2023 01:53:07 +0500 Subject: [PATCH 08/66] Publihs talker_flutter v3.5.4 --- README.md | 2 +- packages/talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_flutter/CHANGELOG.md | 3 +++ packages/talker_flutter/example/pubspec.lock | 10 +++++----- packages/talker_flutter/pubspec.yaml | 4 ++-- 5 files changed, 12 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 366ea97e..2a9e4653 100644 --- a/README.md +++ b/README.md @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^3.5.3 + talker_flutter: ^3.5.4 ``` ### Setup diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 69f590c1..6da13021 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter dio: ^5.0.0 talker_dio_logger: ^2.3.1 - talker_flutter: ^3.5.3 + talker_flutter: ^3.5.4 dev_dependencies: flutter_test: diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index f9c56c01..2c324a37 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,6 @@ +# 3.5.4 +- Bump share_plus package to 7.2.1 + # 3.5.3 - Fix the overflow issue of Talker Monitor diff --git a/packages/talker_flutter/example/pubspec.lock b/packages/talker_flutter/example/pubspec.lock index bdc3b3b3..3f287fea 100644 --- a/packages/talker_flutter/example/pubspec.lock +++ b/packages/talker_flutter/example/pubspec.lock @@ -260,18 +260,18 @@ packages: dependency: transitive description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" sky_engine: dependency: transitive description: flutter @@ -323,7 +323,7 @@ packages: path: ".." relative: true source: path - version: "3.5.3" + version: "3.5.4" talker_logger: dependency: transitive description: diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 042b1b8d..05befeee 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.5.3 +version: 3.5.4 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -23,7 +23,7 @@ dependencies: talker: ^3.1.4 group_button: ^5.3.3 path_provider: ^2.1.1 - share_plus: ^7.1.0 + share_plus: ^7.2.1 dev_dependencies: From d2f3ca9a1473a8361239ddbfc0aea4a61d8fbbc7 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Mon, 6 Nov 2023 14:01:56 +0500 Subject: [PATCH 09/66] Update lock files --- examples/shop_app_example/pubspec.lock | 16 ++++++++-------- packages/talker_flutter/.flutter-plugins | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/shop_app_example/pubspec.lock b/examples/shop_app_example/pubspec.lock index 0bf62d19..773502cd 100644 --- a/examples/shop_app_example/pubspec.lock +++ b/examples/shop_app_example/pubspec.lock @@ -372,18 +372,18 @@ packages: dependency: transitive description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" sky_engine: dependency: transitive description: flutter @@ -427,28 +427,28 @@ packages: path: "../../packages/talker" relative: true source: path - version: "3.1.3" + version: "3.1.4" talker_bloc_logger: dependency: "direct main" description: path: "../../packages/talker_bloc_logger" relative: true source: path - version: "2.2.0" + version: "2.2.1" talker_dio_logger: dependency: "direct main" description: path: "../../packages/talker_dio_logger" relative: true source: path - version: "2.3.0" + version: "2.3.1" talker_flutter: dependency: "direct main" description: path: "../../packages/talker_flutter" relative: true source: path - version: "3.5.1" + version: "3.5.4" talker_logger: dependency: "direct overridden" description: diff --git a/packages/talker_flutter/.flutter-plugins b/packages/talker_flutter/.flutter-plugins index b35c584d..a9a4c268 100644 --- a/packages/talker_flutter/.flutter-plugins +++ b/packages/talker_flutter/.flutter-plugins @@ -4,7 +4,7 @@ path_provider_android=/Users/stanislavilin/.pub-cache/hosted/pub.dev/path_provid path_provider_foundation=/Users/stanislavilin/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.1/ path_provider_linux=/Users/stanislavilin/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ path_provider_windows=/Users/stanislavilin/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/ -share_plus=/Users/stanislavilin/.pub-cache/hosted/pub.dev/share_plus-7.1.0/ +share_plus=/Users/stanislavilin/.pub-cache/hosted/pub.dev/share_plus-7.2.1/ url_launcher_linux=/Users/stanislavilin/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.5/ url_launcher_web=/Users/stanislavilin/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.16/ url_launcher_windows=/Users/stanislavilin/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.6/ From 8e0e2c8f91871f42b0f034c21923d9249bee1244 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Mon, 6 Nov 2023 15:45:53 +0500 Subject: [PATCH 10/66] Make titles customization, replace TalkerDataInterface with TalkerData --- packages/talker/example/talker_example.dart | 2 +- .../talker/lib/src/extensions/extensions.dart | 2 +- packages/talker/lib/src/filter.dart | 10 +- packages/talker/lib/src/models/models.dart | 1 - .../talker/lib/src/models/talker_data.dart | 126 +++++++++++++++++- .../lib/src/models/talker_data_interface.dart | 99 -------------- .../talker/lib/src/models/talker_error.dart | 53 +++----- .../lib/src/models/talker_exception.dart | 53 +++----- .../talker/lib/src/models/talker_log.dart | 59 ++------ packages/talker/lib/src/observer.dart | 4 +- packages/talker/lib/src/settings.dart | 63 +++++---- packages/talker/lib/src/talker.dart | 54 ++++---- packages/talker/lib/src/talker_key.dart | 29 ++++ .../talker/lib/src/utils/error_handler.dart | 26 ++-- .../talker/lib/src/well_known_titles.dart | 27 ---- packages/talker/lib/talker.dart | 2 +- packages/talker/pubspec.yaml | 2 +- packages/talker/test/extensions_test.dart | 2 +- packages/talker/test/filter_test.dart | 12 +- .../talker/test/talker_data_models_test.dart | 8 +- packages/talker/test/talker_history_test.dart | 2 +- .../talker/test/talker_observer_test.dart | 4 +- .../talker/test/talker_settings_test.dart | 2 +- .../talker/test/well_known_titles_test.dart | 22 +-- .../talker_bloc_logger/lib/bloc_logs.dart | 6 +- packages/talker_dio_logger/lib/dio_logs.dart | 6 +- .../lib/src/extensions/history.dart | 2 +- .../lib/src/observers/router_observer.dart | 2 +- .../lib/src/ui/builders/build_methods.dart | 2 +- .../lib/src/ui/talker_builder.dart | 2 +- .../lib/src/ui/talker_listener.dart | 4 +- .../src/ui/talker_monitor/talker_monitor.dart | 11 +- .../talker_monitor_typed_logs_screen.dart | 4 +- .../widgets/talker_monitor_card.dart | 2 +- .../lib/src/ui/talker_view.dart | 6 +- .../lib/src/ui/widgets/data_card.dart | 20 +-- .../lib/talker_http_logger.dart | 4 +- .../example/talker_logger_example.dart | 7 +- packages/talker_logger/lib/src/logger.dart | 8 +- .../lib/src/models/log_level.dart | 4 - packages/talker_logger/lib/src/settings.dart | 21 ++- 41 files changed, 375 insertions(+), 400 deletions(-) delete mode 100644 packages/talker/lib/src/models/talker_data_interface.dart create mode 100644 packages/talker/lib/src/talker_key.dart delete mode 100644 packages/talker/lib/src/well_known_titles.dart diff --git a/packages/talker/example/talker_example.dart b/packages/talker/example/talker_example.dart index ea138de0..5c4a2833 100644 --- a/packages/talker/example/talker_example.dart +++ b/packages/talker/example/talker_example.dart @@ -17,7 +17,7 @@ Future main() async { talker.error('The restaurant is closed ❌'); talker.info('Ordering from other restaurant...'); talker.info('Payment started...'); - talker.good('Payment completed! Waiting for pizza πŸ•'); + talker.info('Payment completed! Waiting for pizza πŸ•'); /// [Exception]'s and [Error]'s handling try { diff --git a/packages/talker/lib/src/extensions/extensions.dart b/packages/talker/lib/src/extensions/extensions.dart index 611e35b7..e9d3d545 100644 --- a/packages/talker/lib/src/extensions/extensions.dart +++ b/packages/talker/lib/src/extensions/extensions.dart @@ -1,6 +1,6 @@ import 'package:talker/talker.dart'; -extension TalkerDataInterfaceListExt on List { +extension TalkerDataInterfaceListExt on List { /// The method allows you to get /// full text of logs or history String get text { diff --git a/packages/talker/lib/src/filter.dart b/packages/talker/lib/src/filter.dart index 97792c6d..a2937003 100644 --- a/packages/talker/lib/src/filter.dart +++ b/packages/talker/lib/src/filter.dart @@ -1,6 +1,6 @@ import 'package:talker/talker.dart'; -typedef TalkerFilter = _Filter; +typedef TalkerFilter = _Filter; class BaseTalkerFilter implements TalkerFilter { BaseTalkerFilter({ @@ -9,10 +9,10 @@ class BaseTalkerFilter implements TalkerFilter { this.searchQuery, }); - /// List of enabled for filter titles [EXCEPTION], [ERROR], [VERBOSE] + /// List of enabled for filter titles [exception], [error], [verbose] final List titles; - /// List of enabled for filter types - subclasses of [TalkerDataInterface] + /// List of enabled for filter types - subclasses of [TalkerData] /// Like [TalkerError], [TalkerException], [TalkerLog], etc. final List types; @@ -20,7 +20,7 @@ class BaseTalkerFilter implements TalkerFilter { final String? searchQuery; @override - bool filter(TalkerDataInterface item) { + bool filter(TalkerData item) { var match = false; if (titles.isNotEmpty) { @@ -46,7 +46,7 @@ class BaseTalkerFilter implements TalkerFilter { return match; } - bool _checkTypeMatch(TalkerDataInterface item) { + bool _checkTypeMatch(TalkerData item) { var match = false; for (final type in types) { if (item.runtimeType == type) { diff --git a/packages/talker/lib/src/models/models.dart b/packages/talker/lib/src/models/models.dart index 68896644..f313de39 100644 --- a/packages/talker/lib/src/models/models.dart +++ b/packages/talker/lib/src/models/models.dart @@ -1,5 +1,4 @@ export 'talker_data.dart'; -export 'talker_data_interface.dart'; export 'talker_error.dart'; export 'talker_exception.dart'; export 'talker_log.dart'; diff --git a/packages/talker/lib/src/models/talker_data.dart b/packages/talker/lib/src/models/talker_data.dart index 78a88d90..9bd8dfce 100644 --- a/packages/talker/lib/src/models/talker_data.dart +++ b/packages/talker/lib/src/models/talker_data.dart @@ -1,4 +1,122 @@ -export 'talker_data_interface.dart'; -export 'talker_error.dart'; -export 'talker_exception.dart'; -export 'talker_log.dart'; +import 'package:talker/src/utils/utils.dart'; +import 'package:talker/talker.dart'; + +/// Base [Talker] Data transfer object +/// Objects of this type are passed through +/// handlers observer and stream +class TalkerData { + TalkerData( + this.message, { + this.logLevel, + this.exception, + this.error, + this.stackTrace, + this.title = 'log', + DateTime? time, + this.pen, + this.key, + }) { + _time = time ?? DateTime.now(); + } + + late DateTime _time; + + /// {@template talker_data_message} + /// [String] [message] - message describes what happened + /// {@endtemplate} + final String? message; + + final String? key; + + /// {@template talker_data_loglevel} + /// [LogLevel] [logLevel] - to control logging output + /// {@endtemplate} + final LogLevel? logLevel; + + /// {@template talker_data_exception} + /// [Exception?] [exception] - exception if it happened + /// {@endtemplate} + final Exception? exception; + + /// {@template talker_data_error} + /// [Error?] [error] - error if it happened + /// {@endtemplate} + final Error? error; + + /// {@template talker_data_title} + /// Title of Talker log + /// {@endtemplate} + final String? title; + + /// {@template talker_data_stackTrace} + /// StackTrace?] [stackTrace] - stackTrace if [exception] or [error] happened + /// {@endtemplate} + final StackTrace? stackTrace; + + /// {@template talker_data_time} + /// Internal time when the error occurred + /// {@endtemplate} + DateTime get time => _time; + + /// [AnsiPen?] [pen] - sets your own log color for console + final AnsiPen? pen; + + /// {@template talker_data_generateTextMessage} + /// Internal method that generates + /// a complete message about the event + /// + /// See examples: + /// [TalkerLog] -> [TalkerLog.generateTextMessage] + /// [TalkerException] -> [TalkerException.generateTextMessage] + /// [TalkerError] -> [TalkerError.generateTextMessage] + /// + /// {@endtemplate} + String generateTextMessage() { + return '$displayTitleWithTime$message$displayStackTrace'; + } +} + +/// Extension to get +/// display text of [TalkerData] fields +extension FieldsToDisplay on TalkerData { + /// Displayed title of [TalkerData] + + String get displayTitleWithTime { + return '[$title] | $displayTime | '; + } + + /// Displayed stackTrace of [TalkerData] + String get displayStackTrace { + if (stackTrace == null || stackTrace == StackTrace.empty) { + return ''; + } + return '\nStackTrace: $stackTrace}'; + } + + /// Displayed exception of [TalkerData] + String get displayException { + if (exception == null) { + return ''; + } + return '\n$exception'; + } + + /// Displayed error of [TalkerData] + String get displayError { + if (error == null) { + return ''; + } + return '\n$error'; + } + + /// Displayed message of [TalkerData] + String get displayMessage { + if (message == null) { + return ''; + } + return '$message'; + } + + /// Displayed tile of [TalkerData] + String get displayTime => TalkerDateTimeFormatter(time).timeAndSeconds; +} diff --git a/packages/talker/lib/src/models/talker_data_interface.dart b/packages/talker/lib/src/models/talker_data_interface.dart deleted file mode 100644 index b6aa3008..00000000 --- a/packages/talker/lib/src/models/talker_data_interface.dart +++ /dev/null @@ -1,99 +0,0 @@ -import 'package:talker/src/utils/utils.dart'; -import 'package:talker/talker.dart'; - -/// Base [Talker] Data transfer object -/// Objects of this type are passed through -/// handlers observer and stream -abstract class TalkerDataInterface { - /// {@template talker_data_message} - /// [String] [message] - message describes what happened - /// {@endtemplate} - String? get message; - - /// {@template talker_data_loglevel} - /// [LogLevel] [logLevel] - to control logging output - /// {@endtemplate} - LogLevel? get logLevel; - - /// {@template talker_data_exception} - /// [Exception?] [exception] - exception if it happened - /// {@endtemplate} - Exception? get exception; - - /// {@template talker_data_error} - /// [Error?] [error] - error if it happened - /// {@endtemplate} - Error? get error; - - /// {@template talker_data_title} - /// Title of Talker log - /// {@endtemplate} - String get title; - - /// {@template talker_data_stackTrace} - /// StackTrace?] [stackTrace] - stackTrace if [exception] or [error] happened - /// {@endtemplate} - StackTrace? get stackTrace; - - /// {@template talker_data_time} - /// Internal time when the error occurred - /// {@endtemplate} - DateTime get time; - - /// {@template talker_data_generateTextMessage} - /// Internal method that generates - /// a complete message about the event - /// - /// See examples: - /// [TalkerLog] -> [TalkerLog.generateTextMessage] - /// [TalkerException] -> [TalkerException.generateTextMessage] - /// [TalkerError] -> [TalkerError.generateTextMessage] - /// - /// {@endtemplate} - String generateTextMessage(); -} - -/// Extension to get -/// display text of [TalkerDataInterface] fields -extension FieldsToDisplay on TalkerDataInterface { - /// Displayed title of [TalkerDataInterface] - - String get displayTitleWithTime { - return '[$title] | $displayTime | '; - } - - /// Displayed stackTrace of [TalkerDataInterface] - String get displayStackTrace { - if (stackTrace == null || stackTrace == StackTrace.empty) { - return ''; - } - return '\nStackTrace: $stackTrace}'; - } - - /// Displayed exception of [TalkerDataInterface] - String get displayException { - if (exception == null) { - return ''; - } - return '\n$exception'; - } - - /// Displayed error of [TalkerDataInterface] - String get displayError { - if (error == null) { - return ''; - } - return '\n$error'; - } - - /// Displayed message of [TalkerDataInterface] - String get displayMessage { - if (message == null) { - return ''; - } - return '$message'; - } - - /// Displayed tile of [TalkerDataInterface] - String get displayTime => TalkerDateTimeFormatter(time).timeAndSeconds; -} diff --git a/packages/talker/lib/src/models/talker_error.dart b/packages/talker/lib/src/models/talker_error.dart index bfe9bf5e..c221b3c0 100644 --- a/packages/talker/lib/src/models/talker_error.dart +++ b/packages/talker/lib/src/models/talker_error.dart @@ -1,55 +1,32 @@ import 'package:talker/talker.dart'; -/// Base implementation of [TalkerDataInterface] +/// Base implementation of [TalkerData] /// to handle ONLY [Error]s -class TalkerError implements TalkerDataInterface { +class TalkerError extends TalkerData { TalkerError( - this.error, { - this.message, - this.logLevel, - this.stackTrace, - String? title, - DateTime? time, - }) { - _title = title ?? WellKnownTitles.error.title; - _time = time ?? DateTime.now(); + Error error, { + String? message, + super.stackTrace, + String? key, + super.title, + LogLevel? logLevel, + }) : super(message, error: error) { + _key = key ?? TalkerKey.error.key; + _logLevel = logLevel ?? LogLevel.error; } - late DateTime _time; - late String _title; + late String _key; + late LogLevel _logLevel; - /// {@macro talker_data_error} @override - final Error error; + String get key => _key; - /// {@macro talker_data_message} @override - final String? message; - - /// {@macro talker_data_stackTrace} - @override - final StackTrace? stackTrace; - - /// {@macro talker_data_title} - @override - String get title => _title; - - /// {@macro talker_data_loglevel} - @override - final LogLevel? logLevel; + LogLevel? get logLevel => _logLevel; /// {@macro talker_data_generateTextMessage} @override String generateTextMessage() { return '$displayTitleWithTime$displayMessage$displayError$displayStackTrace'; } - - /// {@macro talker_data_time} - @override - DateTime get time => _time; - - /// {@macro talker_data_exception} - /// Not used in [TalkerError] - @override - final Exception? exception = null; } diff --git a/packages/talker/lib/src/models/talker_exception.dart b/packages/talker/lib/src/models/talker_exception.dart index c1ccefa4..afeb7fdc 100644 --- a/packages/talker/lib/src/models/talker_exception.dart +++ b/packages/talker/lib/src/models/talker_exception.dart @@ -1,55 +1,32 @@ import 'package:talker/talker.dart'; -/// Base implementation of [TalkerDataInterface] +/// Base implementation of [TalkerData] /// to handle ONLY [Exceptions]s -class TalkerException implements TalkerDataInterface { +class TalkerException extends TalkerData { TalkerException( - this.exception, { - this.message, - this.logLevel, - this.stackTrace, - String? title, - DateTime? time, - }) { - _title = title ?? WellKnownTitles.exception.title; - _time = time ?? DateTime.now(); + Exception exception, { + String? message, + super.stackTrace, + String? key, + super.title, + LogLevel? logLevel, + }) : super(message, exception: exception) { + _key = key ?? TalkerKey.exception.key; + _logLevel = logLevel ?? LogLevel.error; } - late String _title; - late DateTime _time; + late String _key; + late LogLevel _logLevel; - /// {@macro talker_data_exception} @override - final Exception exception; + String get key => _key; - /// {@macro talker_data_message} @override - final String? message; - - /// {@macro talker_data_stackTrace} - @override - final StackTrace? stackTrace; - - /// {@macro talker_data_title} - @override - String get title => _title; - - /// {@macro talker_data_loglevel} - @override - final LogLevel? logLevel; + LogLevel? get logLevel => _logLevel; /// {@macro talker_data_generateTextMessage} @override String generateTextMessage() { return '$displayTitleWithTime$displayMessage$displayException$displayStackTrace'; } - - /// {@macro talker_data_time} - @override - DateTime get time => _time; - - /// {@macro talker_data_error} - /// Not used in [TalkerException] - @override - final Error? error = null; } diff --git a/packages/talker/lib/src/models/talker_log.dart b/packages/talker/lib/src/models/talker_log.dart index 92c3b243..02ff5a24 100644 --- a/packages/talker/lib/src/models/talker_log.dart +++ b/packages/talker/lib/src/models/talker_log.dart @@ -1,56 +1,23 @@ import 'package:talker/talker.dart'; -/// Base implementation of [TalkerDataInterface] +/// Base implementation of [TalkerData] /// to create Logs -class TalkerLog implements TalkerDataInterface { +class TalkerLog extends TalkerData { TalkerLog( - this.message, { - this.logLevel, - this.exception, - this.error, - this.stackTrace, - this.title = 'Log', - DateTime? time, - this.pen, - }) { - _time = time ?? DateTime.now(); - } - - late DateTime _time; - - /// {@macro talker_data_message} - @override - final String message; - - @override - final Exception? exception; - - /// {@macro talker_data_error} - @override - final Error? error; - - /// {@macro talker_data_stackTrace} - @override - final StackTrace? stackTrace; - - /// {@macro talker_data_title} - @override - final String title; - - /// {@macro talker_data_loglevel} - @override - final LogLevel? logLevel; + super.message, { + super.key, + super.title, + super.exception, + super.error, + super.stackTrace, + super.time, + super.pen, + super.logLevel, + }); /// {@macro talker_data_generateTextMessage} @override String generateTextMessage() { - return '$displayTitleWithTime$message$displayStackTrace'; + return '$displayTitleWithTime$displayMessage$displayStackTrace'; } - - /// {@macro talker_data_time} - @override - DateTime get time => _time; - - /// [AnsiPen?] [pen] - sets your own log color for console - final AnsiPen? pen; } diff --git a/packages/talker/lib/src/observer.dart b/packages/talker/lib/src/observer.dart index a5c0ca3f..41c265f3 100644 --- a/packages/talker/lib/src/observer.dart +++ b/packages/talker/lib/src/observer.dart @@ -11,6 +11,6 @@ abstract class TalkerObserver { /// Called when [Talker] handle an [TalkerException] void onException(TalkerException err) {} - /// Called when [Talker] handle an [TalkerDataInterface] log - void onLog(TalkerDataInterface log) {} + /// Called when [Talker] handle an [TalkerData] log + void onLog(TalkerData log) {} } diff --git a/packages/talker/lib/src/settings.dart b/packages/talker/lib/src/settings.dart index 9b0ecc47..637b253c 100644 --- a/packages/talker/lib/src/settings.dart +++ b/packages/talker/lib/src/settings.dart @@ -1,3 +1,21 @@ +import 'package:talker/talker.dart'; + +const _defaultTitles = { + TalkerKey.error: 'error', + TalkerKey.exception: 'exception', + TalkerKey.httpError: 'http-error', + TalkerKey.httpRequest: 'http-request', + TalkerKey.httpResponse: 'http-response', + TalkerKey.blocEvent: 'bloc-event', + TalkerKey.blocTransition: 'bloc-transition', + TalkerKey.route: 'route', + TalkerKey.critical: 'critical', + TalkerKey.warning: 'warning', + TalkerKey.verbose: 'verbose', + TalkerKey.info: 'info', + TalkerKey.debug: 'debug', +}; + /// {@template talker_settings} /// This class used for setup [Talker] configuration /// {@endtemplate} @@ -7,6 +25,7 @@ class TalkerSettings { bool useHistory = true, bool useConsoleLogs = true, int? maxHistoryItems = 200, + this.titles = _defaultTitles, // bool writeToFile = false, }) : _useHistory = useHistory, _useConsoleLogs = useConsoleLogs, @@ -38,48 +57,42 @@ class TalkerSettings { /// All log and handle error / exception methods are working when [true] and not working when [false] bool enabled; - /// Registered types to make filtering - /// and more easy displaying in talker_flutter - /// ```dart - ///class HttpTalkerLog extends TalkerLog { - /// HttpTalkerLog(String message) : super(message); + /// Custom Logger Titles. /// - /// @override - /// AnsiPen get pen => AnsiPen()..xterm(49); + /// The `titles` field is intended for storing custom titles for the logger, associated with various log types. + /// Each title is associated with a specific log type represented as an enum called `TalkerTitle`. This allows you to + /// provide informative and unique titles for each log type, making logging more readable and informative. /// - /// @override - /// String generateTextMessage() { - /// return pen.write(message); - /// } - ///} + /// Example usage: /// - ///void main() { - /// talker.configure( - /// settings: const TalkerSettings( - /// registeredTypes: [HttpTalkerLog], - /// ), - /// ); + /// ```dart + /// final customTitles = { + /// TalkerTitle.info: "Information", + /// TalkerTitle.error: "Error", + /// TalkerTitle.warning: "Warning", + /// }; /// - /// final httpLog = HttpTalkerLog('Http good'); - /// talker.logTyped(httpLog); - /// } + /// final logger = Talker( + /// settings: TalkerSettings( + /// titles: customTitles, + /// ) + /// ); /// ``` - // List get registeredTypes => [ - // TalkerLog, TalkerError, TalkerException, - // //...?_registeredTypes - // ]; + final Map titles; TalkerSettings copyWith({ bool? enabled, bool? useHistory, bool? useConsoleLogs, int? maxHistoryItems, + Map? titles, }) { return TalkerSettings( useHistory: useHistory ?? _useHistory, useConsoleLogs: useConsoleLogs ?? _useConsoleLogs, maxHistoryItems: maxHistoryItems ?? _maxHistoryItems, enabled: enabled ?? this.enabled, + titles: titles ?? this.titles, ); } } diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 2633d1e6..22d6ec0f 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -36,11 +36,28 @@ class Talker { }) { _filter = filter; this.settings = settings ?? TalkerSettings(); - _logger = logger ?? TalkerLogger(); + + _initLogger(logger); _observer = observer ?? const _DefaultTalkerObserver(); _errorHandler = TalkerErrorHandler(this.settings); } + void _initLogger(TalkerLogger? logger) { + _logger = logger ?? TalkerLogger(); + _logger = _logger.copyWith( + settings: _logger.settings.copyWith( + titles: { + LogLevel.critical: TalkerKey.critical.getTitle(settings), + LogLevel.error: TalkerKey.error.getTitle(settings), + LogLevel.warning: TalkerKey.warning.getTitle(settings), + LogLevel.verbose: TalkerKey.verbose.getTitle(settings), + LogLevel.info: TalkerKey.info.getTitle(settings), + LogLevel.debug: TalkerKey.debug.getTitle(settings), + }, + ), + ); + } + /// Fields can be setup in [configure()] method /// {@macro talker_settings} @@ -51,7 +68,7 @@ class Talker { late TalkerObserver _observer; // final _fileManager = FileManager(); - final _history = []; + final _history = []; /// Setup configuration of Talker /// @@ -87,22 +104,21 @@ class Talker { _logger = logger ?? _logger; } - final _talkerStreamController = - StreamController.broadcast(); + final _talkerStreamController = StreamController.broadcast(); - /// Common stream to sent all processed events [TalkerDataInterface] + /// Common stream to sent all processed events [TalkerData] /// occurred errors [TalkerError]s, exceptions [TalkerException]s /// and logs [TalkerLog]s that have been sent /// You can connect a listener to it and catch the received errors /// /// Or you can add your observer [TalkerObserver] in the settings - Stream get stream => + Stream get stream => _talkerStreamController.stream.asBroadcastStream(); /// The history stores all information about all events like /// occurred errors [TalkerError]s, exceptions [TalkerException]s /// and logs [TalkerLog]s that have been sent - List get history => _history; + List get history => _history; /// Handle common exceptions in your code /// [Object] [exception] - exception @@ -244,22 +260,6 @@ class Talker { _handleLog(msg, exception, stackTrace, LogLevel.error); } - /// Log a new good message - /// [dynamic] [message] - message describes what happened - /// [Object?] [exception] - exception if it happened - /// [StackTrace?] [stackTrace] - stackTrace if [exception] happened - /// - /// ```dart - /// talker.good('Log good'); - /// ``` - void good( - dynamic msg, [ - Object? exception, - StackTrace? stackTrace, - ]) { - _handleLog(msg, exception, stackTrace, LogLevel.good); - } - /// Log a new info message /// [dynamic] [message] - message describes what happened /// [Object?] [exception] - exception if it happened @@ -351,7 +351,7 @@ class Talker { _handleLogData(data); } - void _handleErrorData(TalkerDataInterface data) { + void _handleErrorData(TalkerData data) { if (!settings.enabled) { return; } @@ -392,7 +392,7 @@ class Talker { } } - void _handleForOutputs(TalkerDataInterface data) { + void _handleForOutputs(TalkerData data) { _writeToHistory(data); // _writeToFile(data); } @@ -404,7 +404,7 @@ class Talker { // } // } - void _writeToHistory(TalkerDataInterface data) { + void _writeToHistory(TalkerData data) { if (settings.useHistory && settings.enabled) { if (settings.maxHistoryItems <= _history.length) { _history.removeAt(0); @@ -413,7 +413,7 @@ class Talker { } } - bool _isApprovedByFilter(TalkerDataInterface data) { + bool _isApprovedByFilter(TalkerData data) { final approved = _filter?.filter(data) ?? true; return approved; } diff --git a/packages/talker/lib/src/talker_key.dart b/packages/talker/lib/src/talker_key.dart new file mode 100644 index 00000000..f8559e8f --- /dev/null +++ b/packages/talker/lib/src/talker_key.dart @@ -0,0 +1,29 @@ +import 'package:talker/talker.dart'; + +enum TalkerKey { + /// Logger level + error('error'), + critical('critical'), + info('info'), + debug('debug'), + verbose('verbose'), + warning('warning'), + + /// talker level + exception('exception'), + httpError('http-error'), + httpRequest('http-request'), + httpResponse('http-response'), + blocEvent('bloc-event'), + blocTransition('bloc-transition'), + route('route'); + + const TalkerKey(this.key); + final String key; +} + +extension WellKnownTitlesExt on TalkerKey { + String getTitle(TalkerSettings settings) { + return settings.titles[this] ?? 'log'; + } +} diff --git a/packages/talker/lib/src/utils/error_handler.dart b/packages/talker/lib/src/utils/error_handler.dart index 6edf5a2e..c0224cdf 100644 --- a/packages/talker/lib/src/utils/error_handler.dart +++ b/packages/talker/lib/src/utils/error_handler.dart @@ -5,32 +5,42 @@ class TalkerErrorHandler { final TalkerSettings settings; - TalkerDataInterface handle( + TalkerData handle( Object exception, [ StackTrace? stackTrace, String? msg, ]) { + if (exception is TalkerError) { + return exception; + } + if (exception is TalkerException) { + return exception; + } if (exception is Error) { + final errType = TalkerKey.error; return TalkerError( exception, - title: WellKnownTitles.exception.title, - stackTrace: stackTrace, + key: errType.key, + title: errType.getTitle(settings), message: msg, - logLevel: LogLevel.error, + stackTrace: stackTrace, ); } if (exception is Exception) { + final exceptionType = TalkerKey.exception; return TalkerException( exception, - title: WellKnownTitles.error.title, - stackTrace: stackTrace, + key: exceptionType.key, + title: exceptionType.getTitle(settings), message: msg, - logLevel: LogLevel.error, + stackTrace: stackTrace, ); } + final errType = TalkerKey.error; return TalkerLog( exception.toString(), - title: WellKnownTitles.exception.title, + key: errType.key, + title: errType.getTitle(settings), logLevel: LogLevel.error, stackTrace: stackTrace, ); diff --git a/packages/talker/lib/src/well_known_titles.dart b/packages/talker/lib/src/well_known_titles.dart deleted file mode 100644 index 19e0ee3d..00000000 --- a/packages/talker/lib/src/well_known_titles.dart +++ /dev/null @@ -1,27 +0,0 @@ -enum WellKnownTitles { - error, - exception, - httpError, - httpRequest, - httpResponse, - blocEvent, - blocTransition, - route, -} - -extension WellKnownTitlesExt on WellKnownTitles { - //TODO: customization from Talker constructor - String get title { - final titles = { - WellKnownTitles.error: 'ERROR', - WellKnownTitles.exception: 'EXCEPTION', - WellKnownTitles.httpError: 'http-error', - WellKnownTitles.httpRequest: 'http-request', - WellKnownTitles.httpResponse: 'http-response', - WellKnownTitles.blocEvent: 'bloc-event', - WellKnownTitles.blocTransition: 'bloc-transition', - WellKnownTitles.route: 'ROUTE', - }; - return titles[this] ?? 'log'; - } -} diff --git a/packages/talker/lib/talker.dart b/packages/talker/lib/talker.dart index c9a79493..bfc58ffd 100644 --- a/packages/talker/lib/talker.dart +++ b/packages/talker/lib/talker.dart @@ -6,4 +6,4 @@ export 'src/models/models.dart'; export 'src/observer.dart'; export 'src/settings.dart'; export 'src/talker.dart'; -export 'src/well_known_titles.dart'; +export 'src/talker_key.dart'; diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index 43275b41..b345fc27 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -13,7 +13,7 @@ topics: - tool environment: - sdk: '>=2.15.0 <4.0.0' + sdk: '>=2.17.0 <4.0.0' dependencies: talker_logger: ^3.1.0 diff --git a/packages/talker/test/extensions_test.dart b/packages/talker/test/extensions_test.dart index 773f4591..688ca117 100644 --- a/packages/talker/test/extensions_test.dart +++ b/packages/talker/test/extensions_test.dart @@ -8,7 +8,7 @@ void main() { final exception = TalkerException(Exception()); final log = TalkerLog('message'); - final data = [error, exception, log]; + final data = [error, exception, log]; final fullMsg = data.text; final expectedMsg = '${error.generateTextMessage()}\n${exception.generateTextMessage()}\n${log.generateTextMessage()}\n'; diff --git a/packages/talker/test/filter_test.dart b/packages/talker/test/filter_test.dart index 4b13b54a..f5fa09c2 100644 --- a/packages/talker/test/filter_test.dart +++ b/packages/talker/test/filter_test.dart @@ -45,7 +45,7 @@ void _testFilterBySearchText({ countFound: 4, logCallback: (talker) { talker.error('HTTP log'); - talker.good('Log http request'); + talker.info('Log http request'); talker.warning('http'); talker.debug('Log http'); talker.verbose('htt request'); @@ -75,7 +75,7 @@ void _testFilterByTypes({ types: [TalkerError], countFound: 2, logCallback: (talker) { - talker.good('Test log'); + talker.info('Test log'); talker.handle(ArgumentError()); talker.handle(ArgumentError()); }, @@ -93,7 +93,7 @@ void _testFilterByTitles({ _testFilterFoundByTitle( configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, - titles: ['ERROR'], + titles: ['error'], countFound: 1, logCallback: (talker) { talker.error('Test log'); @@ -103,7 +103,7 @@ void _testFilterByTitles({ _testFilterFoundByTitle( configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, - titles: ['ERROR', 'EXCEPTION'], + titles: ['error', 'exception'], countFound: 2, logCallback: (talker) { talker.error('Test log'); @@ -114,7 +114,7 @@ void _testFilterByTitles({ _testFilterFoundByTitle( configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, - titles: ['ERROR', 'VERBOSE'], + titles: ['error', 'verbose'], countFound: 2, logCallback: (talker) { talker.error('Test log'); @@ -126,7 +126,7 @@ void _testFilterByTitles({ _testFilterFoundByTitle( configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, - titles: ['VERBOSE'], + titles: ['verbose'], countFound: 5, logCallback: (talker) { talker.verbose('Test log'); diff --git a/packages/talker/test/talker_data_models_test.dart b/packages/talker/test/talker_data_models_test.dart index 14dd30d8..93ae0505 100644 --- a/packages/talker/test/talker_data_models_test.dart +++ b/packages/talker/test/talker_data_models_test.dart @@ -13,12 +13,11 @@ void main() { final error = TalkerError( ArgumentError(), message: _testMessage, - logLevel: LogLevel.critical, stackTrace: StackTrace.empty, title: _testTitle, ); - expect(error is TalkerDataInterface, true); + expect(error is TalkerData, true); expect(error is TalkerError, true); expect(error.message, _testMessage); expect(error.title, _testTitle); @@ -38,12 +37,11 @@ Invalid argument(s)''', final exception = TalkerException( Exception(), message: _testMessage, - logLevel: LogLevel.critical, stackTrace: StackTrace.empty, title: _testTitle, ); - expect(exception is TalkerDataInterface, true); + expect(exception is TalkerData, true); expect(exception is TalkerException, true); expect(exception.message, _testMessage); expect(exception.title, _testTitle); @@ -74,7 +72,7 @@ Exception''', title: _testTitle, ); - expect(log is TalkerDataInterface, true); + expect(log is TalkerData, true); expect(log is TalkerLog, true); expect(log.message, _testMessage); expect(log.title, _testTitle); diff --git a/packages/talker/test/talker_history_test.dart b/packages/talker/test/talker_history_test.dart index cd5b907a..da566439 100644 --- a/packages/talker/test/talker_history_test.dart +++ b/packages/talker/test/talker_history_test.dart @@ -41,7 +41,7 @@ void main() { } void _makeLogs(Talker talker) { - talker.good('log'); + talker.error('log'); talker.info('log'); talker.verbose('log'); talker.warning('log'); diff --git a/packages/talker/test/talker_observer_test.dart b/packages/talker/test/talker_observer_test.dart index f22546ad..22da8157 100644 --- a/packages/talker/test/talker_observer_test.dart +++ b/packages/talker/test/talker_observer_test.dart @@ -1,7 +1,7 @@ import 'package:talker/talker.dart'; import 'package:test/test.dart'; -final _logsStore = []; +final _logsStore = []; final _errorsStore = []; final _exceptionsStore = []; @@ -13,7 +13,7 @@ class MockTalkerObserver extends TalkerObserver { void onException(TalkerException e) => _exceptionsStore.add(e); @override - void onLog(TalkerDataInterface log) => _logsStore.add(log); + void onLog(TalkerData log) => _logsStore.add(log); } void main() { diff --git a/packages/talker/test/talker_settings_test.dart b/packages/talker/test/talker_settings_test.dart index 1d01e51b..b76ca923 100644 --- a/packages/talker/test/talker_settings_test.dart +++ b/packages/talker/test/talker_settings_test.dart @@ -60,6 +60,6 @@ class HttpTalkerLog extends TalkerLog { @override String generateTextMessage() { - return pen.write(message); + return pen.write(message ?? ''); } } diff --git a/packages/talker/test/well_known_titles_test.dart b/packages/talker/test/well_known_titles_test.dart index c5fdf9ee..e61626ca 100644 --- a/packages/talker/test/well_known_titles_test.dart +++ b/packages/talker/test/well_known_titles_test.dart @@ -1,17 +1,17 @@ -import 'package:talker/src/well_known_titles.dart'; +import 'package:talker/src/talker_key.dart'; import 'package:test/test.dart'; void main() { - group('WellKnownTitles', () { - test('returns correct title for each enum value', () { - expect(WellKnownTitles.error.title, equals('ERROR')); - expect(WellKnownTitles.exception.title, equals('EXCEPTION')); - expect(WellKnownTitles.httpError.title, equals('http-error')); - expect(WellKnownTitles.httpRequest.title, equals('http-request')); - expect(WellKnownTitles.httpResponse.title, equals('http-response')); - expect(WellKnownTitles.blocEvent.title, equals('bloc-event')); - expect(WellKnownTitles.blocTransition.title, equals('bloc-transition')); - expect(WellKnownTitles.route.title, equals('ROUTE')); + group('TalkerKey', () { + test('returns correct key for each enum value', () { + expect(TalkerKey.error.key, equals('error')); + expect(TalkerKey.exception.key, equals('exception')); + expect(TalkerKey.httpError.key, equals('http-error')); + expect(TalkerKey.httpRequest.key, equals('http-request')); + expect(TalkerKey.httpResponse.key, equals('http-response')); + expect(TalkerKey.blocEvent.key, equals('bloc-event')); + expect(TalkerKey.blocTransition.key, equals('bloc-transition')); + expect(TalkerKey.route.key, equals('route')); }); }); } diff --git a/packages/talker_bloc_logger/lib/bloc_logs.dart b/packages/talker_bloc_logger/lib/bloc_logs.dart index 1329eab0..89f4cb0a 100644 --- a/packages/talker_bloc_logger/lib/bloc_logs.dart +++ b/packages/talker_bloc_logger/lib/bloc_logs.dart @@ -20,7 +20,7 @@ class BlocEventLog extends TalkerLog { AnsiPen get pen => AnsiPen()..xterm(51); @override - String get title => WellKnownTitles.blocEvent.title; + String get title => TalkerKey.blocEvent.title; @override String generateTextMessage() { @@ -51,7 +51,7 @@ class BlocStateLog extends TalkerLog { AnsiPen get pen => AnsiPen()..xterm(49); @override - String get title => WellKnownTitles.blocTransition.title; + String get title => TalkerKey.blocTransition.title; @override String generateTextMessage() { @@ -86,7 +86,7 @@ class BlocChangeLog extends TalkerLog { AnsiPen get pen => AnsiPen()..xterm(49); @override - String get title => WellKnownTitles.blocTransition.title; + String get title => TalkerKey.blocTransition.title; @override String generateTextMessage() { diff --git a/packages/talker_dio_logger/lib/dio_logs.dart b/packages/talker_dio_logger/lib/dio_logs.dart index a95ab6c1..c994fab3 100644 --- a/packages/talker_dio_logger/lib/dio_logs.dart +++ b/packages/talker_dio_logger/lib/dio_logs.dart @@ -20,7 +20,7 @@ class DioRequestLog extends TalkerLog { AnsiPen get pen => settings.requestPen ?? (AnsiPen()..xterm(219)); @override - String get title => WellKnownTitles.httpRequest.title; + String get title => TalkerKey.httpRequest.title; @override String generateTextMessage() { @@ -59,7 +59,7 @@ class DioResponseLog extends TalkerLog { AnsiPen get pen => settings.responsePen ?? (AnsiPen()..xterm(46)); @override - String get title => WellKnownTitles.httpResponse.title; + String get title => TalkerKey.httpResponse.title; @override String generateTextMessage() { @@ -105,7 +105,7 @@ class DioErrorLog extends TalkerLog { AnsiPen get pen => settings.errorPen ?? (AnsiPen()..red()); @override - String get title => WellKnownTitles.httpError.title; + String get title => TalkerKey.httpError.title; @override String generateTextMessage() { diff --git a/packages/talker_flutter/lib/src/extensions/history.dart b/packages/talker_flutter/lib/src/extensions/history.dart index a7d8fd72..0415db2d 100644 --- a/packages/talker_flutter/lib/src/extensions/history.dart +++ b/packages/talker_flutter/lib/src/extensions/history.dart @@ -1,6 +1,6 @@ import 'package:talker_flutter/talker_flutter.dart'; -extension HistoryListFlutterText on List { +extension HistoryListFlutterText on List { /// The method allows you to get /// full text of logs or history String get flutterText { diff --git a/packages/talker_flutter/lib/src/observers/router_observer.dart b/packages/talker_flutter/lib/src/observers/router_observer.dart index 51656bb4..fdb5c7fb 100644 --- a/packages/talker_flutter/lib/src/observers/router_observer.dart +++ b/packages/talker_flutter/lib/src/observers/router_observer.dart @@ -37,7 +37,7 @@ class TalkerRouteLog extends TalkerLog { AnsiPen get pen => AnsiPen()..xterm(135); @override - String get title => WellKnownTitles.route.title; + String get title => TalkerKey.route.title; static String _createMessage( Route route, diff --git a/packages/talker_flutter/lib/src/ui/builders/build_methods.dart b/packages/talker_flutter/lib/src/ui/builders/build_methods.dart index 26d62d00..a19f5fe1 100644 --- a/packages/talker_flutter/lib/src/ui/builders/build_methods.dart +++ b/packages/talker_flutter/lib/src/ui/builders/build_methods.dart @@ -18,5 +18,5 @@ typedef TalkerExceptionBuilder = Widget Function( /// Signature for build custom [TalkerData] widgets typedef TalkerDataBuilder = Widget Function( BuildContext context, - TalkerDataInterface data, + TalkerData data, ); diff --git a/packages/talker_flutter/lib/src/ui/talker_builder.dart b/packages/talker_flutter/lib/src/ui/talker_builder.dart index 06a2c051..f5bea29d 100644 --- a/packages/talker_flutter/lib/src/ui/talker_builder.dart +++ b/packages/talker_flutter/lib/src/ui/talker_builder.dart @@ -3,7 +3,7 @@ import 'package:talker_flutter/talker_flutter.dart'; typedef TalkerWidgetBuilder = Widget Function( BuildContext context, - List data, + List data, ); class TalkerBuilder extends StatelessWidget { diff --git a/packages/talker_flutter/lib/src/ui/talker_listener.dart b/packages/talker_flutter/lib/src/ui/talker_listener.dart index 6d1b588d..577afe91 100644 --- a/packages/talker_flutter/lib/src/ui/talker_listener.dart +++ b/packages/talker_flutter/lib/src/ui/talker_listener.dart @@ -42,14 +42,14 @@ class TalkerListener extends StatefulWidget { final Widget child; /// Responsible for notify about [Talker] events. - final Function(TalkerDataInterface data) listener; + final Function(TalkerData data) listener; @override State createState() => _TalkerListenerState(); } class _TalkerListenerState extends State { - StreamSubscription? _talkerSubscription; + StreamSubscription? _talkerSubscription; @override void initState() { diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart index 0c522dbc..afcc3daf 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart @@ -44,13 +44,12 @@ class TalkerMonitor extends StatelessWidget { .toList(); final httpRequests = data - .where((e) => e.title == WellKnownTitles.httpRequest.title) - .toList(); - final httpErrors = data - .where((e) => e.title == WellKnownTitles.httpError.title) + .where((e) => e.title == TalkerKey.httpRequest.title) .toList(); + final httpErrors = + data.where((e) => e.title == TalkerKey.httpError.title).toList(); final httpResponses = data - .where((e) => e.title == WellKnownTitles.httpResponse.title) + .where((e) => e.title == TalkerKey.httpResponse.title) .toList(); return CustomScrollView( @@ -200,7 +199,7 @@ class TalkerMonitor extends StatelessWidget { void _openTypedLogsScreen( BuildContext context, - List logs, + List logs, String typeName, ) { Navigator.of(context).push( diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart index 4579a04a..f1418a2c 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart @@ -12,7 +12,7 @@ class TalkerMonitorTypedLogsScreen extends StatelessWidget { final String typeName; final TalkerScreenTheme theme; - final List exceptions; + final List exceptions; @override Widget build(BuildContext context) { @@ -41,7 +41,7 @@ class TalkerMonitorTypedLogsScreen extends StatelessWidget { ); } - void _copyTalkerDataItemText(BuildContext context, TalkerDataInterface data) { + void _copyTalkerDataItemText(BuildContext context, TalkerData data) { final text = data.generateTextMessage(); Clipboard.setData(ClipboardData(text: text)); _showSnackBar(context, 'Log item is copied in clipboard'); diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/widgets/talker_monitor_card.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/widgets/talker_monitor_card.dart index dac50e53..220cbfab 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/widgets/talker_monitor_card.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/widgets/talker_monitor_card.dart @@ -17,7 +17,7 @@ class TalkerMonitorCard extends StatelessWidget { final String title; final String? subtitle; final Widget? subtitleWidget; - final List logs; + final List logs; final Color color; final IconData icon; final VoidCallback? onTap; diff --git a/packages/talker_flutter/lib/src/ui/talker_view.dart b/packages/talker_flutter/lib/src/ui/talker_view.dart index 368a8cc9..659520df 100644 --- a/packages/talker_flutter/lib/src/ui/talker_view.dart +++ b/packages/talker_flutter/lib/src/ui/talker_view.dart @@ -115,8 +115,8 @@ class _TalkerViewState extends State { } } - TalkerDataInterface _getListItem( - List filtredElements, + TalkerData _getListItem( + List filtredElements, int i, ) { final data = filtredElements[ @@ -151,7 +151,7 @@ class _TalkerViewState extends State { ); } - void _copyTalkerDataItemText(TalkerDataInterface data) { + void _copyTalkerDataItemText(TalkerData data) { final text = data.generateTextMessage(); Clipboard.setData(ClipboardData(text: text)); _showSnackBar(context, 'Log item is copied in clipboard'); diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index ec1722ef..c8de96a5 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -14,7 +14,7 @@ class TalkerDataCard extends StatelessWidget { this.backgroundColor = defaultCardBackgroundColor, }) : super(key: key); - final TalkerDataInterface data; + final TalkerData data; final VoidCallback? onTap; final bool expanded; final EdgeInsets? margin; @@ -145,22 +145,22 @@ class TalkerDataCard extends StatelessWidget { final colorFromAnsi = _getColorFromAnsi(); if (colorFromAnsi != null) return colorFromAnsi; - if (data.title == WellKnownTitles.httpError.title) { + if (data.title == TalkerKey.httpError.title) { return errorColor; } - if (data.title == WellKnownTitles.httpResponse.title) { + if (data.title == TalkerKey.httpResponse.title) { return httpResponseLogColor; } - if (data.title == WellKnownTitles.httpRequest.title) { + if (data.title == TalkerKey.httpRequest.title) { return httpRequestLogColor; } - if (data.title == WellKnownTitles.route.title) { + if (data.title == TalkerKey.route.title) { return routeLogColor; } - if (data.title == WellKnownTitles.blocTransition.title) { + if (data.title == TalkerKey.blocTransition.title) { return blocTransitionColor; } - if (data.title == WellKnownTitles.blocEvent.title) { + if (data.title == TalkerKey.blocEvent.title) { return blocEventColor; } return debugColor; @@ -182,9 +182,9 @@ class TalkerDataCard extends StatelessWidget { return null; } final isHttpLog = [ - WellKnownTitles.httpError.title, - WellKnownTitles.httpRequest.title, - WellKnownTitles.httpResponse.title, + TalkerKey.httpError.title, + TalkerKey.httpRequest.title, + TalkerKey.httpResponse.title, ].contains(data.title); if (isHttpLog) { return data.generateTextMessage(); diff --git a/packages/talker_http_logger/lib/talker_http_logger.dart b/packages/talker_http_logger/lib/talker_http_logger.dart index d27ccc91..12677a87 100644 --- a/packages/talker_http_logger/lib/talker_http_logger.dart +++ b/packages/talker_http_logger/lib/talker_http_logger.dart @@ -45,7 +45,7 @@ class HttpRequestLog extends TalkerLog { AnsiPen get pen => (AnsiPen()..xterm(219)); @override - String get title => WellKnownTitles.httpRequest.title; + String get title => TalkerTitles.httpRequest.title; @override String generateTextMessage() { @@ -77,7 +77,7 @@ class HttpResponseLog extends TalkerLog { AnsiPen get pen => (AnsiPen()..xterm(46)); @override - String get title => WellKnownTitles.httpResponse.title; + String get title => TalkerTitles.httpResponse.title; @override String generateTextMessage() { diff --git a/packages/talker_logger/example/talker_logger_example.dart b/packages/talker_logger/example/talker_logger_example.dart index 1c75ee12..67046dfe 100644 --- a/packages/talker_logger/example/talker_logger_example.dart +++ b/packages/talker_logger/example/talker_logger_example.dart @@ -17,7 +17,6 @@ void main() { logger.info('info'); logger.warning('warning'); logger.error('error'); - logger.good('good'); logger.warning('warning'); logger.verbose('verbose'); logger.log('log with level info', level: LogLevel.info); @@ -35,16 +34,16 @@ void main() { "title": "Sample Konfabulator Widget", "name": "main_window", "width": 500, - "height": 500 + "height": 500, }, "image": { "src": "Images/Sun.png", "name": "sun1", "hOffset": 250, "vOffset": 250, - "alignment": "center" + "alignment": "center", }, - } + }, }, ); logger.log(prettyData, pen: AnsiPen()..xterm(46)); diff --git a/packages/talker_logger/lib/src/logger.dart b/packages/talker_logger/lib/src/logger.dart index 4bafa761..28e0ac7a 100644 --- a/packages/talker_logger/lib/src/logger.dart +++ b/packages/talker_logger/lib/src/logger.dart @@ -3,8 +3,8 @@ import 'package:talker_logger/talker_logger.dart'; class TalkerLogger { TalkerLogger({ this.settings = const TalkerLoggerSettings(), - LoggerFilter? filter, this.formatter = const ExtendedLoggerFormatter(), + LoggerFilter? filter, void Function(String message)? output, }) { // ignore: avoid_print @@ -35,8 +35,10 @@ class TalkerLogger { /// ``` /// {@endtemplate} void log(dynamic msg, {LogLevel? level, AnsiPen? pen}) { - final selectedPen = pen ?? settings.colors[level] ?? level.consoleColor; final selectedLevel = level ?? LogLevel.debug; + final selectedPen = + pen ?? settings.colors[selectedLevel] ?? selectedLevel.consoleColor; + if (_filter.shouldLog(msg, selectedLevel)) { final formattedMsg = formatter.fmt( LogDetails(message: msg, level: selectedLevel, pen: selectedPen), @@ -125,8 +127,6 @@ class TalkerLogger { /// ``` /// {@endtemplate} - void good(dynamic msg) => log(msg, level: LogLevel.good); - TalkerLogger copyWith({ TalkerLoggerSettings? settings, LoggerFormatter? formatter, diff --git a/packages/talker_logger/lib/src/models/log_level.dart b/packages/talker_logger/lib/src/models/log_level.dart index f041c84c..6864560d 100644 --- a/packages/talker_logger/lib/src/models/log_level.dart +++ b/packages/talker_logger/lib/src/models/log_level.dart @@ -8,7 +8,6 @@ enum LogLevel { /// Messages info, - good, debug, verbose, warning, @@ -20,7 +19,6 @@ final logLevelPriorityList = [ LogLevel.error, LogLevel.warning, LogLevel.info, - LogLevel.good, LogLevel.debug, LogLevel.verbose, ]; @@ -43,8 +41,6 @@ extension ToConsoleColor on LogLevel? { return AnsiPen()..gray(); case LogLevel.info: return AnsiPen()..blue(); - case LogLevel.good: - return AnsiPen()..green(); default: return AnsiPen()..white(); } diff --git a/packages/talker_logger/lib/src/settings.dart b/packages/talker_logger/lib/src/settings.dart index d0a4da18..f0678128 100644 --- a/packages/talker_logger/lib/src/settings.dart +++ b/packages/talker_logger/lib/src/settings.dart @@ -6,7 +6,6 @@ const _defaultLogTitles = { LogLevel.warning: 'WARNING', LogLevel.verbose: 'VERBOSE', LogLevel.info: 'INFO', - LogLevel.good: 'GOOD', LogLevel.debug: 'DEBUG', }; @@ -67,4 +66,24 @@ class TalkerLoggerSettings { /// Field for enable and disable colored logs final bool enableColors; + + TalkerLoggerSettings copyWith({ + Map? colors, + Map? titles, + String? defaultTitle, + LogLevel? level, + String? lineSymbol, + int? maxLineWidth, + bool? enableColors, + }) { + return TalkerLoggerSettings( + colors: colors ?? this.colors, + titles: titles ?? this.titles, + defaultTitle: defaultTitle ?? this.defaultTitle, + level: level ?? this.level, + lineSymbol: lineSymbol ?? this.lineSymbol, + maxLineWidth: maxLineWidth ?? this.maxLineWidth, + enableColors: enableColors ?? this.enableColors, + ); + } } From d42e192579cb6b1e9db28a54cf6dc5852bd20e00 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Mon, 6 Nov 2023 16:11:57 +0500 Subject: [PATCH 11/66] Update colors logic on talker_logger level --- packages/talker/lib/src/settings.dart | 58 ++++++++++++++++++- packages/talker/lib/src/talker.dart | 46 +++++++++------ packages/talker/lib/src/talker_key.dart | 8 --- .../talker/lib/src/utils/error_handler.dart | 6 +- packages/talker/test/talker_history_test.dart | 2 +- packages/talker_logger/lib/src/logger.dart | 7 ++- .../lib/src/models/log_level.dart | 26 --------- packages/talker_logger/lib/src/settings.dart | 19 ++++-- 8 files changed, 107 insertions(+), 65 deletions(-) diff --git a/packages/talker/lib/src/settings.dart b/packages/talker/lib/src/settings.dart index 637b253c..162c4160 100644 --- a/packages/talker/lib/src/settings.dart +++ b/packages/talker/lib/src/settings.dart @@ -16,6 +16,22 @@ const _defaultTitles = { TalkerKey.debug: 'debug', }; +final _defaultColors = { + TalkerKey.error: AnsiPen()..red(), + TalkerKey.exception: AnsiPen()..red(), + TalkerKey.httpError: AnsiPen()..red(), + TalkerKey.httpRequest: AnsiPen()..xterm(219), + TalkerKey.httpResponse: AnsiPen()..xterm(46), + TalkerKey.blocEvent: AnsiPen()..xterm(51), + TalkerKey.blocTransition: AnsiPen()..xterm(49), + TalkerKey.route: AnsiPen()..xterm(135), + TalkerKey.critical: AnsiPen()..red(), + TalkerKey.warning: AnsiPen()..yellow(), + TalkerKey.verbose: AnsiPen()..gray(), + TalkerKey.info: AnsiPen()..blue(), + TalkerKey.debug: AnsiPen()..gray(), +}; + /// {@template talker_settings} /// This class used for setup [Talker] configuration /// {@endtemplate} @@ -24,12 +40,15 @@ class TalkerSettings { this.enabled = true, bool useHistory = true, bool useConsoleLogs = true, - int? maxHistoryItems = 200, + int maxHistoryItems = 1000, this.titles = _defaultTitles, + Map? colors, // bool writeToFile = false, }) : _useHistory = useHistory, _useConsoleLogs = useConsoleLogs, - _maxHistoryItems = maxHistoryItems ?? 200; + _maxHistoryItems = maxHistoryItems { + colors = colors ?? _defaultColors; + } // _writeToFile = writeToFile; /// By default talker write all Errors / Exceptions and logs in history list @@ -80,12 +99,46 @@ class TalkerSettings { /// ``` final Map titles; + /// Custom Logger Colors. + /// + /// The `colors` field is designed for setting custom text colors for the logger, associated with specific log keys. + /// Each color is associated with a specific log key represented as an enum called `TalkerKey`. This allows you to + /// define custom text colors for each log key, enhancing the visual representation of logs in the console. + /// + /// Example usage: + /// + /// ```dart + /// final customColors = { + /// TalkerKey.info: AnsiPen()..white(bold: true), + /// TalkerKey.error: AnsiPen()..red(bold: true), + /// TalkerKey.warning: AnsiPen()..yellow(bold: true), + /// }; + /// + /// final logger = Talker( + /// settings: TalkerSettings( + /// colors: customColors, + /// ) + /// ); + /// ``` + /// + /// By using the `colors` field, you can customize the text colors for specific log keys in the console. + late final Map colors; + + String getTitleByKey(TalkerKey key) { + return titles[key] ?? 'log'; + } + + AnsiPen getAnsiPenByKey(TalkerKey key) { + return colors[key] ?? (AnsiPen()..gray()); + } + TalkerSettings copyWith({ bool? enabled, bool? useHistory, bool? useConsoleLogs, int? maxHistoryItems, Map? titles, + Map? colors, }) { return TalkerSettings( useHistory: useHistory ?? _useHistory, @@ -93,6 +146,7 @@ class TalkerSettings { maxHistoryItems: maxHistoryItems ?? _maxHistoryItems, enabled: enabled ?? this.enabled, titles: titles ?? this.titles, + colors: colors ?? this.colors, ); } } diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 22d6ec0f..d467239c 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -34,9 +34,19 @@ class Talker { TalkerSettings? settings, TalkerFilter? filter, }) { - _filter = filter; - this.settings = settings ?? TalkerSettings(); + _init(filter, settings, logger, observer); + } + void _init( + TalkerFilter? filter, + TalkerSettings? settings, + TalkerLogger? logger, + TalkerObserver? observer, + ) { + if (filter != null) { + _filter = filter; + } + this.settings = settings ?? TalkerSettings(); _initLogger(logger); _observer = observer ?? const _DefaultTalkerObserver(); _errorHandler = TalkerErrorHandler(this.settings); @@ -47,19 +57,27 @@ class Talker { _logger = _logger.copyWith( settings: _logger.settings.copyWith( titles: { - LogLevel.critical: TalkerKey.critical.getTitle(settings), - LogLevel.error: TalkerKey.error.getTitle(settings), - LogLevel.warning: TalkerKey.warning.getTitle(settings), - LogLevel.verbose: TalkerKey.verbose.getTitle(settings), - LogLevel.info: TalkerKey.info.getTitle(settings), - LogLevel.debug: TalkerKey.debug.getTitle(settings), + LogLevel.critical: settings.getTitleByKey(TalkerKey.critical), + LogLevel.error: settings.getTitleByKey(TalkerKey.error), + LogLevel.warning: settings.getTitleByKey(TalkerKey.warning), + LogLevel.verbose: settings.getTitleByKey(TalkerKey.verbose), + LogLevel.info: settings.getTitleByKey(TalkerKey.info), + LogLevel.debug: settings.getTitleByKey(TalkerKey.debug), + }, + colors: { + LogLevel.critical: settings.getAnsiPenByKey(TalkerKey.critical), + LogLevel.error: settings.getAnsiPenByKey(TalkerKey.error), + LogLevel.warning: settings.getAnsiPenByKey(TalkerKey.warning), + LogLevel.verbose: settings.getAnsiPenByKey(TalkerKey.verbose), + LogLevel.info: settings.getAnsiPenByKey(TalkerKey.info), + LogLevel.debug: settings.getAnsiPenByKey(TalkerKey.debug), }, ), ); } /// Fields can be setup in [configure()] method - + /// /// {@macro talker_settings} late TalkerSettings settings; late TalkerLogger _logger; @@ -94,14 +112,7 @@ class Talker { TalkerObserver? observer, TalkerFilter? filter, }) { - if (filter != null) { - _filter = filter; - } - if (settings != null) { - this.settings = settings; - } - _observer = observer ?? _observer; - _logger = logger ?? _logger; + _init(filter, settings, logger, observer); } final _talkerStreamController = StreamController.broadcast(); @@ -346,7 +357,6 @@ class Talker { message?.toString() ?? '', title: _logger.getTitleByLogLevel(logLevel), logLevel: logLevel, - pen: pen ?? logLevel.consoleColor, ); _handleLogData(data); } diff --git a/packages/talker/lib/src/talker_key.dart b/packages/talker/lib/src/talker_key.dart index f8559e8f..82cbe6bc 100644 --- a/packages/talker/lib/src/talker_key.dart +++ b/packages/talker/lib/src/talker_key.dart @@ -1,5 +1,3 @@ -import 'package:talker/talker.dart'; - enum TalkerKey { /// Logger level error('error'), @@ -21,9 +19,3 @@ enum TalkerKey { const TalkerKey(this.key); final String key; } - -extension WellKnownTitlesExt on TalkerKey { - String getTitle(TalkerSettings settings) { - return settings.titles[this] ?? 'log'; - } -} diff --git a/packages/talker/lib/src/utils/error_handler.dart b/packages/talker/lib/src/utils/error_handler.dart index c0224cdf..b75a4cec 100644 --- a/packages/talker/lib/src/utils/error_handler.dart +++ b/packages/talker/lib/src/utils/error_handler.dart @@ -21,7 +21,7 @@ class TalkerErrorHandler { return TalkerError( exception, key: errType.key, - title: errType.getTitle(settings), + title: settings.getTitleByKey(errType), message: msg, stackTrace: stackTrace, ); @@ -31,7 +31,7 @@ class TalkerErrorHandler { return TalkerException( exception, key: exceptionType.key, - title: exceptionType.getTitle(settings), + title: settings.getTitleByKey(exceptionType), message: msg, stackTrace: stackTrace, ); @@ -40,7 +40,7 @@ class TalkerErrorHandler { return TalkerLog( exception.toString(), key: errType.key, - title: errType.getTitle(settings), + title: settings.getTitleByKey(errType), logLevel: LogLevel.error, stackTrace: stackTrace, ); diff --git a/packages/talker/test/talker_history_test.dart b/packages/talker/test/talker_history_test.dart index da566439..310da291 100644 --- a/packages/talker/test/talker_history_test.dart +++ b/packages/talker/test/talker_history_test.dart @@ -51,7 +51,7 @@ void _makeLogs(Talker talker) { void _configureTalker({ required bool useHistory, required Talker talker, - int? maxHistoryItems, + int maxHistoryItems = 1000, }) { talker.configure( settings: TalkerSettings( diff --git a/packages/talker_logger/lib/src/logger.dart b/packages/talker_logger/lib/src/logger.dart index 28e0ac7a..6c85478e 100644 --- a/packages/talker_logger/lib/src/logger.dart +++ b/packages/talker_logger/lib/src/logger.dart @@ -2,11 +2,12 @@ import 'package:talker_logger/talker_logger.dart'; class TalkerLogger { TalkerLogger({ - this.settings = const TalkerLoggerSettings(), + TalkerLoggerSettings? settings, this.formatter = const ExtendedLoggerFormatter(), LoggerFilter? filter, void Function(String message)? output, }) { + settings = settings ?? TalkerLoggerSettings(); // ignore: avoid_print _output = output ?? (String message) => message.split('\n').forEach(print); _filter = filter ?? LogLevelFilter(settings.level); @@ -14,7 +15,7 @@ class TalkerLogger { } /// Logger settings - final TalkerLoggerSettings settings; + late final TalkerLoggerSettings settings; /// You can setup differen formatter [ExtendedLoggerFormatter, ColoredLoggerFormatter] /// Or your own fuly customized formatter with extends [LoggerFormatter] @@ -37,7 +38,7 @@ class TalkerLogger { void log(dynamic msg, {LogLevel? level, AnsiPen? pen}) { final selectedLevel = level ?? LogLevel.debug; final selectedPen = - pen ?? settings.colors[selectedLevel] ?? selectedLevel.consoleColor; + pen ?? settings.colors[selectedLevel] ?? (AnsiPen()..gray()); if (_filter.shouldLog(msg, selectedLevel)) { final formattedMsg = formatter.fmt( diff --git a/packages/talker_logger/lib/src/models/log_level.dart b/packages/talker_logger/lib/src/models/log_level.dart index 6864560d..f23c3a0e 100644 --- a/packages/talker_logger/lib/src/models/log_level.dart +++ b/packages/talker_logger/lib/src/models/log_level.dart @@ -1,5 +1,3 @@ -import 'package:talker_logger/talker_logger.dart'; - /// Level of logs to segmentation Ρ„Ρ‚Π² control logging output enum LogLevel { /// Errors @@ -22,27 +20,3 @@ final logLevelPriorityList = [ LogLevel.debug, LogLevel.verbose, ]; - -/// Extension to get console log [AnsiPen] of log level -/// to make colored message -extension ToConsoleColor on LogLevel? { - /// console log [AnsiPen] of log level to make colored message - AnsiPen get consoleColor { - switch (this) { - case LogLevel.error: - return AnsiPen()..red(); - case LogLevel.debug: - return AnsiPen()..gray(); - case LogLevel.critical: - return AnsiPen()..red(); - case LogLevel.warning: - return AnsiPen()..yellow(); - case LogLevel.verbose: - return AnsiPen()..gray(); - case LogLevel.info: - return AnsiPen()..blue(); - default: - return AnsiPen()..white(); - } - } -} diff --git a/packages/talker_logger/lib/src/settings.dart b/packages/talker_logger/lib/src/settings.dart index f0678128..1a42761f 100644 --- a/packages/talker_logger/lib/src/settings.dart +++ b/packages/talker_logger/lib/src/settings.dart @@ -9,17 +9,28 @@ const _defaultLogTitles = { LogLevel.debug: 'DEBUG', }; +final _defaultColors = { + LogLevel.critical: AnsiPen()..red(), + LogLevel.error: AnsiPen()..red(), + LogLevel.warning: AnsiPen()..yellow(), + LogLevel.verbose: AnsiPen()..gray(), + LogLevel.info: AnsiPen()..blue(), + LogLevel.debug: AnsiPen()..gray(), +}; + /// Logger customization settings class TalkerLoggerSettings { - const TalkerLoggerSettings({ - this.colors = const {}, + TalkerLoggerSettings({ + Map? colors, this.titles = _defaultLogTitles, this.defaultTitle = 'LOG', this.level = LogLevel.verbose, this.lineSymbol = '─', this.maxLineWidth = 110, this.enableColors = true, - }); + }) { + colors = colors ?? _defaultColors; + } /// Field to setup custom log colors ///```dart @@ -34,7 +45,7 @@ class TalkerLoggerSettings { /// ), /// ); /// ``` - final Map colors; + late final Map colors; /// Field to setup custom log titles ///```dart From 3b84dd472aae17a4413b9d821f92d549108d810d Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Mon, 6 Nov 2023 16:24:20 +0500 Subject: [PATCH 12/66] Upgrade logger package to support talker update --- .../example/talker_logger_example.dart | 11 ++++--- packages/talker_logger/lib/src/logger.dart | 12 ++----- packages/talker_logger/lib/src/settings.dart | 32 +++---------------- .../test/talker_logger_formater_test.dart | 4 +-- .../test/talker_logger_log_level_test.dart | 21 ------------ .../test/talker_logger_test.dart | 14 +++----- 6 files changed, 20 insertions(+), 74 deletions(-) diff --git a/packages/talker_logger/example/talker_logger_example.dart b/packages/talker_logger/example/talker_logger_example.dart index 67046dfe..2014613c 100644 --- a/packages/talker_logger/example/talker_logger_example.dart +++ b/packages/talker_logger/example/talker_logger_example.dart @@ -5,10 +5,13 @@ import 'package:talker_logger/talker_logger.dart'; void main() { // Create instance final logger = TalkerLogger( - //Enable for custom colored logs with Formatter - // formatter: _ColoredLoggerFormatter(), - settings: const TalkerLoggerSettings( - level: LogLevel.info, + settings: TalkerLoggerSettings( + // You can setu custom log level to filter logs + level: LogLevel.debug, + // Setup custom colors for log levels + colors: { + LogLevel.warning: AnsiPen()..magenta(), + }, ), ); diff --git a/packages/talker_logger/lib/src/logger.dart b/packages/talker_logger/lib/src/logger.dart index 6c85478e..1a8a6d95 100644 --- a/packages/talker_logger/lib/src/logger.dart +++ b/packages/talker_logger/lib/src/logger.dart @@ -7,10 +7,10 @@ class TalkerLogger { LoggerFilter? filter, void Function(String message)? output, }) { - settings = settings ?? TalkerLoggerSettings(); + this.settings = settings ?? TalkerLoggerSettings(); // ignore: avoid_print _output = output ?? (String message) => message.split('\n').forEach(print); - _filter = filter ?? LogLevelFilter(settings.level); + _filter = filter ?? LogLevelFilter(this.settings.level); ansiColorDisabled = false; } @@ -141,12 +141,4 @@ class TalkerLogger { output: output ?? _output, ); } - - String getTitleByLogLevel(LogLevel logLevel) { - final levelTitle = settings.titles[logLevel]; - if (levelTitle != null) { - return levelTitle; - } - return settings.defaultTitle; - } } diff --git a/packages/talker_logger/lib/src/settings.dart b/packages/talker_logger/lib/src/settings.dart index 1a42761f..97a58552 100644 --- a/packages/talker_logger/lib/src/settings.dart +++ b/packages/talker_logger/lib/src/settings.dart @@ -1,14 +1,5 @@ import 'package:talker_logger/talker_logger.dart'; -const _defaultLogTitles = { - LogLevel.critical: 'CRITICAL', - LogLevel.error: 'ERROR', - LogLevel.warning: 'WARNING', - LogLevel.verbose: 'VERBOSE', - LogLevel.info: 'INFO', - LogLevel.debug: 'DEBUG', -}; - final _defaultColors = { LogLevel.critical: AnsiPen()..red(), LogLevel.error: AnsiPen()..red(), @@ -22,14 +13,16 @@ final _defaultColors = { class TalkerLoggerSettings { TalkerLoggerSettings({ Map? colors, - this.titles = _defaultLogTitles, this.defaultTitle = 'LOG', this.level = LogLevel.verbose, this.lineSymbol = '─', this.maxLineWidth = 110, this.enableColors = true, }) { - colors = colors ?? _defaultColors; + this.colors = _defaultColors; + if (colors != null) { + _defaultColors.addAll(colors); + } } /// Field to setup custom log colors @@ -47,21 +40,6 @@ class TalkerLoggerSettings { /// ``` late final Map colors; - /// Field to setup custom log titles - ///```dart - /// final logger = TalkerLogger( - /// settings: TalkerLoggerSettings( - /// colors: { - /// LogLevel.critical: 'OH nooo! ☠️☠️☠️', - /// LogLevel.error: 'πŸ†˜ Lock at me! πŸ†˜', - /// LogLevel.info: 'i', - /// }, - /// enableColors: true, - /// ), - /// ); - /// ``` - final Map titles; - /// Title of default log without [LogLevel] final String defaultTitle; @@ -80,7 +58,6 @@ class TalkerLoggerSettings { TalkerLoggerSettings copyWith({ Map? colors, - Map? titles, String? defaultTitle, LogLevel? level, String? lineSymbol, @@ -89,7 +66,6 @@ class TalkerLoggerSettings { }) { return TalkerLoggerSettings( colors: colors ?? this.colors, - titles: titles ?? this.titles, defaultTitle: defaultTitle ?? this.defaultTitle, level: level ?? this.level, lineSymbol: lineSymbol ?? this.lineSymbol, diff --git a/packages/talker_logger/test/talker_logger_formater_test.dart b/packages/talker_logger/test/talker_logger_formater_test.dart index 3464b8ff..57ce5051 100644 --- a/packages/talker_logger/test/talker_logger_formater_test.dart +++ b/packages/talker_logger/test/talker_logger_formater_test.dart @@ -67,7 +67,7 @@ void _testWithoutColors( level: LogLevel.debug, pen: AnsiPen(), ), - const TalkerLoggerSettings(enableColors: false), + TalkerLoggerSettings(enableColors: false), ); expect(fmtMsg, isNotNull); @@ -97,7 +97,7 @@ void _testFmt( level: LogLevel.debug, pen: AnsiPen(), ), - const TalkerLoggerSettings(), + TalkerLoggerSettings(), ); expect(fmtMsg, isNotNull); diff --git a/packages/talker_logger/test/talker_logger_log_level_test.dart b/packages/talker_logger/test/talker_logger_log_level_test.dart index 3b72f8df..43755f51 100644 --- a/packages/talker_logger/test/talker_logger_log_level_test.dart +++ b/packages/talker_logger/test/talker_logger_log_level_test.dart @@ -10,7 +10,6 @@ void main() { LogLevel.warning: AnsiPen()..yellow(), LogLevel.verbose: AnsiPen()..gray(), LogLevel.info: AnsiPen()..blue(), - LogLevel.good: AnsiPen()..green(), }; // final textCases = { @@ -31,29 +30,9 @@ void main() { ansiColorDisabled = false; }); - group('LogLevel_To_Console_Color', () { - for (final lvl in colorCases.entries) { - _testLogLevelToAnsi(lvl.key, lvl.value); - } - }); - // group('LogLevel_To_Text', () { // for (final lvl in textCases.entries) { // _testLogLevelToTitle(lvl.key, lvl.value); // } // }); } - -// void _testLogLevelToTitle(LogLevel logLvl, String title) { -// test('LVL: $logLvl', () { -// expect(logLvl.title, title); -// }); -// } - -void _testLogLevelToAnsi(LogLevel logLvl, AnsiPen pen) { - test('LVL: $logLvl', () { - final expected = pen.write('test'); - final actual = logLvl.consoleColor.write('test'); - expect(actual, expected); - }); -} diff --git a/packages/talker_logger/test/talker_logger_test.dart b/packages/talker_logger/test/talker_logger_test.dart index 5fe1d019..c0e9a268 100644 --- a/packages/talker_logger/test/talker_logger_test.dart +++ b/packages/talker_logger/test/talker_logger_test.dart @@ -11,7 +11,7 @@ class LogLevelLoggerFormater implements LoggerFormatter { final _messages = []; final _formatter = LogLevelLoggerFormater(); final _logger = TalkerLogger( - settings: const TalkerLoggerSettings(enableColors: false), + settings: TalkerLoggerSettings(enableColors: false), formatter: _formatter, output: (message) => _messages.add(message), ); @@ -32,7 +32,7 @@ void main() { test('Constructor with fields', () { final logger = TalkerLogger( - settings: const TalkerLoggerSettings(lineSymbol: '#'), + settings: TalkerLoggerSettings(lineSymbol: '#'), filter: const LogLevelFilter(LogLevel.critical), formatter: _formatter, ); @@ -53,7 +53,7 @@ void main() { output: (message) => messages.add(message), ); logger = logger.copyWith( - settings: const TalkerLoggerSettings(lineSymbol: '#'), + settings: TalkerLoggerSettings(lineSymbol: '#'), filter: const LogLevelFilter(LogLevel.critical), formatter: _formatter, ); @@ -74,7 +74,7 @@ void main() { test('Constructor copyWith empty', () { final messages = []; var logger = TalkerLogger( - settings: const TalkerLoggerSettings(lineSymbol: '#'), + settings: TalkerLoggerSettings(lineSymbol: '#'), filter: const LogLevelFilter(LogLevel.critical), formatter: _formatter, output: (message) => messages.add(message), @@ -118,10 +118,6 @@ void main() { _logger.info('Message'); _expectMessageType(LogLevel.info); }); - test('good', () { - _logger.good('Message'); - _expectMessageType(LogLevel.good); - }); test('verbose', () { _logger.verbose('Message'); _expectMessageType(LogLevel.verbose); @@ -133,7 +129,7 @@ void main() { test('Message length', () { final logger = TalkerLogger( - settings: const TalkerLoggerSettings(enableColors: false), + settings: TalkerLoggerSettings(enableColors: false), output: (message) => _messages.add(message), formatter: const ColoredLoggerFormatter(), ); From bbf6cbb5d5b7853f9adb20f06bcff02b96c40338 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Mon, 6 Nov 2023 16:25:05 +0500 Subject: [PATCH 13/66] Update logger package version --- packages/talker_logger/pubspec.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/talker_logger/pubspec.yaml b/packages/talker_logger/pubspec.yaml index 8a6d110f..9e88f240 100644 --- a/packages/talker_logger/pubspec.yaml +++ b/packages/talker_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_logger description: Logger. Easy, customizable, extensible logging, lightweight with filters, formatters, custom logs, log levels. -version: 3.1.0 +version: 4.0.0-dev.1 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -19,5 +19,5 @@ dependencies: ansicolor: ^2.0.2 dev_dependencies: - lint: ^2.0.1 - test: ^1.22.1 + lint: ^2.1.2 + test: ^1.24.9 From 0c6dba54e2f7a211bdaebd14d3157a3f0defb20c Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Mon, 6 Nov 2023 16:32:56 +0500 Subject: [PATCH 14/66] Update CHANGELOG.md --- packages/talker_logger/CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/talker_logger/CHANGELOG.md b/packages/talker_logger/CHANGELOG.md index 940001a1..20af7283 100644 --- a/packages/talker_logger/CHANGELOG.md +++ b/packages/talker_logger/CHANGELOG.md @@ -1,3 +1,8 @@ +# 4.0.0-dev.1 +- Add **colors** field in TalkerLoggerSettings class to setup custom colores for default logs +- Remove deprecated LogLevel title and color extensions +- **BREAKING**: Remove **LogLevel.good** + # 3.1.0 - Rename (fix typo) **LoggerFormater -> **LoggerFormatter** - Rename (fix typo) field **formater** -> **formatter** From 8c571fdd0370097a7db962be473dad71b6f077bf Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Mon, 6 Nov 2023 17:04:32 +0500 Subject: [PATCH 15/66] Remove deprecated titles filtering, replace with keys --- examples/shop_app_example/pubspec.lock | 2 +- .../talker/lib/src/models/talker_data.dart | 4 +- .../talker/lib/src/models/talker_error.dart | 2 +- .../lib/src/models/talker_exception.dart | 2 +- packages/talker/lib/src/settings.dart | 66 +++++++++---------- packages/talker/lib/src/talker.dart | 39 +++++------ packages/talker/lib/src/talker_key.dart | 36 +++++++++- .../talker/lib/src/utils/error_handler.dart | 12 ++-- .../talker/test/well_known_titles_test.dart | 16 ++--- .../talker_bloc_logger/lib/bloc_logs.dart | 6 +- .../talker_dio_logger/example/pubspec.lock | 24 ++++--- .../talker_dio_logger/example/pubspec.yaml | 2 +- .../example/pubspec_overrides.yaml | 7 ++ packages/talker_dio_logger/lib/dio_logs.dart | 6 +- .../lib/src/observers/router_observer.dart | 2 +- .../src/ui/talker_monitor/talker_monitor.dart | 6 +- .../lib/src/ui/widgets/data_card.dart | 18 ++--- .../lib/talker_http_logger.dart | 4 +- .../talker_http_logger/pubspec_overrides.yaml | 4 ++ 19 files changed, 148 insertions(+), 110 deletions(-) create mode 100644 packages/talker_dio_logger/example/pubspec_overrides.yaml create mode 100644 packages/talker_http_logger/pubspec_overrides.yaml diff --git a/examples/shop_app_example/pubspec.lock b/examples/shop_app_example/pubspec.lock index 773502cd..2b470601 100644 --- a/examples/shop_app_example/pubspec.lock +++ b/examples/shop_app_example/pubspec.lock @@ -455,7 +455,7 @@ packages: path: "../../packages/talker_logger" relative: true source: path - version: "3.1.0" + version: "4.0.0-dev.1" term_glyph: dependency: transitive description: diff --git a/packages/talker/lib/src/models/talker_data.dart b/packages/talker/lib/src/models/talker_data.dart index 9bd8dfce..a6aa5323 100644 --- a/packages/talker/lib/src/models/talker_data.dart +++ b/packages/talker/lib/src/models/talker_data.dart @@ -46,7 +46,7 @@ class TalkerData { /// {@template talker_data_title} /// Title of Talker log /// {@endtemplate} - final String? title; + String? title; /// {@template talker_data_stackTrace} /// StackTrace?] [stackTrace] - stackTrace if [exception] or [error] happened @@ -59,7 +59,7 @@ class TalkerData { DateTime get time => _time; /// [AnsiPen?] [pen] - sets your own log color for console - final AnsiPen? pen; + AnsiPen? pen; /// {@template talker_data_generateTextMessage} /// Internal method that generates diff --git a/packages/talker/lib/src/models/talker_error.dart b/packages/talker/lib/src/models/talker_error.dart index c221b3c0..50479076 100644 --- a/packages/talker/lib/src/models/talker_error.dart +++ b/packages/talker/lib/src/models/talker_error.dart @@ -11,7 +11,7 @@ class TalkerError extends TalkerData { super.title, LogLevel? logLevel, }) : super(message, error: error) { - _key = key ?? TalkerKey.error.key; + _key = key ?? TalkerLogType.error.key; _logLevel = logLevel ?? LogLevel.error; } diff --git a/packages/talker/lib/src/models/talker_exception.dart b/packages/talker/lib/src/models/talker_exception.dart index afeb7fdc..824ec5c8 100644 --- a/packages/talker/lib/src/models/talker_exception.dart +++ b/packages/talker/lib/src/models/talker_exception.dart @@ -11,7 +11,7 @@ class TalkerException extends TalkerData { super.title, LogLevel? logLevel, }) : super(message, exception: exception) { - _key = key ?? TalkerKey.exception.key; + _key = key ?? TalkerLogType.exception.key; _logLevel = logLevel ?? LogLevel.error; } diff --git a/packages/talker/lib/src/settings.dart b/packages/talker/lib/src/settings.dart index 162c4160..078a7af0 100644 --- a/packages/talker/lib/src/settings.dart +++ b/packages/talker/lib/src/settings.dart @@ -1,35 +1,35 @@ import 'package:talker/talker.dart'; const _defaultTitles = { - TalkerKey.error: 'error', - TalkerKey.exception: 'exception', - TalkerKey.httpError: 'http-error', - TalkerKey.httpRequest: 'http-request', - TalkerKey.httpResponse: 'http-response', - TalkerKey.blocEvent: 'bloc-event', - TalkerKey.blocTransition: 'bloc-transition', - TalkerKey.route: 'route', - TalkerKey.critical: 'critical', - TalkerKey.warning: 'warning', - TalkerKey.verbose: 'verbose', - TalkerKey.info: 'info', - TalkerKey.debug: 'debug', + TalkerLogType.error: 'error', + TalkerLogType.exception: 'exception', + TalkerLogType.httpError: 'http-error', + TalkerLogType.httpRequest: 'http-request', + TalkerLogType.httpResponse: 'http-response', + TalkerLogType.blocEvent: 'bloc-event', + TalkerLogType.blocTransition: 'bloc-transition', + TalkerLogType.route: 'route', + TalkerLogType.critical: 'critical', + TalkerLogType.warning: 'warning', + TalkerLogType.verbose: 'verbose', + TalkerLogType.info: 'info', + TalkerLogType.debug: 'debug', }; final _defaultColors = { - TalkerKey.error: AnsiPen()..red(), - TalkerKey.exception: AnsiPen()..red(), - TalkerKey.httpError: AnsiPen()..red(), - TalkerKey.httpRequest: AnsiPen()..xterm(219), - TalkerKey.httpResponse: AnsiPen()..xterm(46), - TalkerKey.blocEvent: AnsiPen()..xterm(51), - TalkerKey.blocTransition: AnsiPen()..xterm(49), - TalkerKey.route: AnsiPen()..xterm(135), - TalkerKey.critical: AnsiPen()..red(), - TalkerKey.warning: AnsiPen()..yellow(), - TalkerKey.verbose: AnsiPen()..gray(), - TalkerKey.info: AnsiPen()..blue(), - TalkerKey.debug: AnsiPen()..gray(), + TalkerLogType.error: AnsiPen()..red(), + TalkerLogType.exception: AnsiPen()..red(), + TalkerLogType.httpError: AnsiPen()..red(), + TalkerLogType.httpRequest: AnsiPen()..xterm(219), + TalkerLogType.httpResponse: AnsiPen()..xterm(46), + TalkerLogType.blocEvent: AnsiPen()..xterm(51), + TalkerLogType.blocTransition: AnsiPen()..xterm(49), + TalkerLogType.route: AnsiPen()..xterm(135), + TalkerLogType.critical: AnsiPen()..red(), + TalkerLogType.warning: AnsiPen()..yellow(), + TalkerLogType.verbose: AnsiPen()..gray(), + TalkerLogType.info: AnsiPen()..blue(), + TalkerLogType.debug: AnsiPen()..gray(), }; /// {@template talker_settings} @@ -42,7 +42,7 @@ class TalkerSettings { bool useConsoleLogs = true, int maxHistoryItems = 1000, this.titles = _defaultTitles, - Map? colors, + Map? colors, // bool writeToFile = false, }) : _useHistory = useHistory, _useConsoleLogs = useConsoleLogs, @@ -97,7 +97,7 @@ class TalkerSettings { /// ) /// ); /// ``` - final Map titles; + final Map titles; /// Custom Logger Colors. /// @@ -122,13 +122,13 @@ class TalkerSettings { /// ``` /// /// By using the `colors` field, you can customize the text colors for specific log keys in the console. - late final Map colors; + late final Map colors; - String getTitleByKey(TalkerKey key) { + String getTitleByLogType(TalkerLogType key) { return titles[key] ?? 'log'; } - AnsiPen getAnsiPenByKey(TalkerKey key) { + AnsiPen getAnsiPenByLogType(TalkerLogType key) { return colors[key] ?? (AnsiPen()..gray()); } @@ -137,8 +137,8 @@ class TalkerSettings { bool? useHistory, bool? useConsoleLogs, int? maxHistoryItems, - Map? titles, - Map? colors, + Map? titles, + Map? colors, }) { return TalkerSettings( useHistory: useHistory ?? _useHistory, diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index d467239c..7b6daec0 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -56,21 +56,14 @@ class Talker { _logger = logger ?? TalkerLogger(); _logger = _logger.copyWith( settings: _logger.settings.copyWith( - titles: { - LogLevel.critical: settings.getTitleByKey(TalkerKey.critical), - LogLevel.error: settings.getTitleByKey(TalkerKey.error), - LogLevel.warning: settings.getTitleByKey(TalkerKey.warning), - LogLevel.verbose: settings.getTitleByKey(TalkerKey.verbose), - LogLevel.info: settings.getTitleByKey(TalkerKey.info), - LogLevel.debug: settings.getTitleByKey(TalkerKey.debug), - }, colors: { - LogLevel.critical: settings.getAnsiPenByKey(TalkerKey.critical), - LogLevel.error: settings.getAnsiPenByKey(TalkerKey.error), - LogLevel.warning: settings.getAnsiPenByKey(TalkerKey.warning), - LogLevel.verbose: settings.getAnsiPenByKey(TalkerKey.verbose), - LogLevel.info: settings.getAnsiPenByKey(TalkerKey.info), - LogLevel.debug: settings.getAnsiPenByKey(TalkerKey.debug), + LogLevel.critical: + settings.getAnsiPenByLogType(TalkerLogType.critical), + LogLevel.error: settings.getAnsiPenByLogType(TalkerLogType.error), + LogLevel.warning: settings.getAnsiPenByLogType(TalkerLogType.warning), + LogLevel.verbose: settings.getAnsiPenByLogType(TalkerLogType.verbose), + LogLevel.info: settings.getAnsiPenByLogType(TalkerLogType.info), + LogLevel.debug: settings.getAnsiPenByLogType(TalkerLogType.debug), }, ), ); @@ -219,8 +212,8 @@ class Talker { /// final httpLog = HttpTalkerLog('Http status: 200'); /// talker.logTyped(httpLog); /// ``` - void logTyped(TalkerLog log, {LogLevel logLevel = LogLevel.debug}) { - _handleLogData(log, logLevel: logLevel); + void logTyped(TalkerLog log) { + _handleLogData(log); } /// Log a new critical message @@ -349,13 +342,11 @@ class Talker { LogLevel logLevel, { AnsiPen? pen, }) { - if (exception != null) { - handle(exception, stackTrace, message); - return; - } + final key = TalkerLogTypeExt.fromLogLevel(logLevel); final data = TalkerLog( message?.toString() ?? '', - title: _logger.getTitleByLogLevel(logLevel), + title: settings.getTitleByLogType(key), + pen: settings.getAnsiPenByLogType(key), logLevel: logLevel, ); _handleLogData(data); @@ -390,6 +381,12 @@ class Talker { if (!isApproved) { return; } + final key = data.key; + if (key != null) { + final type = TalkerLogTypeExt.fromKey(key); + data.title = settings.getTitleByLogType(type); + data.pen = settings.getAnsiPenByLogType(type); + } _observer.onLog(data); _talkerStreamController.add(data); _handleForOutputs(data); diff --git a/packages/talker/lib/src/talker_key.dart b/packages/talker/lib/src/talker_key.dart index 82cbe6bc..cbe0f335 100644 --- a/packages/talker/lib/src/talker_key.dart +++ b/packages/talker/lib/src/talker_key.dart @@ -1,4 +1,6 @@ -enum TalkerKey { +import 'package:talker/talker.dart'; + +enum TalkerLogType { /// Logger level error('error'), critical('critical'), @@ -16,6 +18,36 @@ enum TalkerKey { blocTransition('bloc-transition'), route('route'); - const TalkerKey(this.key); + const TalkerLogType(this.key); final String key; } + +extension TalkerLogTypeExt on TalkerLogType { + static TalkerLogType fromLogLevel(LogLevel logLevel) { + return TalkerLogType.values.firstWhere((e) => e.logLevel == logLevel); + } + + static TalkerLogType fromKey(String key) { + return TalkerLogType.values.firstWhere((e) => e.key == key); + } + + /// Mapping [TalkerLogType] into [LogLevel] + LogLevel get logLevel { + switch (this) { + case TalkerLogType.error: + return LogLevel.error; + case TalkerLogType.critical: + return LogLevel.critical; + case TalkerLogType.info: + return LogLevel.info; + case TalkerLogType.debug: + return LogLevel.debug; + case TalkerLogType.verbose: + return LogLevel.verbose; + case TalkerLogType.warning: + return LogLevel.warning; + default: + return LogLevel.debug; + } + } +} diff --git a/packages/talker/lib/src/utils/error_handler.dart b/packages/talker/lib/src/utils/error_handler.dart index b75a4cec..32df2a0c 100644 --- a/packages/talker/lib/src/utils/error_handler.dart +++ b/packages/talker/lib/src/utils/error_handler.dart @@ -17,30 +17,30 @@ class TalkerErrorHandler { return exception; } if (exception is Error) { - final errType = TalkerKey.error; + final errType = TalkerLogType.error; return TalkerError( exception, key: errType.key, - title: settings.getTitleByKey(errType), + title: settings.getTitleByLogType(errType), message: msg, stackTrace: stackTrace, ); } if (exception is Exception) { - final exceptionType = TalkerKey.exception; + final exceptionType = TalkerLogType.exception; return TalkerException( exception, key: exceptionType.key, - title: settings.getTitleByKey(exceptionType), + title: settings.getTitleByLogType(exceptionType), message: msg, stackTrace: stackTrace, ); } - final errType = TalkerKey.error; + final errType = TalkerLogType.error; return TalkerLog( exception.toString(), key: errType.key, - title: settings.getTitleByKey(errType), + title: settings.getTitleByLogType(errType), logLevel: LogLevel.error, stackTrace: stackTrace, ); diff --git a/packages/talker/test/well_known_titles_test.dart b/packages/talker/test/well_known_titles_test.dart index e61626ca..4fe1f227 100644 --- a/packages/talker/test/well_known_titles_test.dart +++ b/packages/talker/test/well_known_titles_test.dart @@ -4,14 +4,14 @@ import 'package:test/test.dart'; void main() { group('TalkerKey', () { test('returns correct key for each enum value', () { - expect(TalkerKey.error.key, equals('error')); - expect(TalkerKey.exception.key, equals('exception')); - expect(TalkerKey.httpError.key, equals('http-error')); - expect(TalkerKey.httpRequest.key, equals('http-request')); - expect(TalkerKey.httpResponse.key, equals('http-response')); - expect(TalkerKey.blocEvent.key, equals('bloc-event')); - expect(TalkerKey.blocTransition.key, equals('bloc-transition')); - expect(TalkerKey.route.key, equals('route')); + expect(TalkerLogType.error.key, equals('error')); + expect(TalkerLogType.exception.key, equals('exception')); + expect(TalkerLogType.httpError.key, equals('http-error')); + expect(TalkerLogType.httpRequest.key, equals('http-request')); + expect(TalkerLogType.httpResponse.key, equals('http-response')); + expect(TalkerLogType.blocEvent.key, equals('bloc-event')); + expect(TalkerLogType.blocTransition.key, equals('bloc-transition')); + expect(TalkerLogType.route.key, equals('route')); }); }); } diff --git a/packages/talker_bloc_logger/lib/bloc_logs.dart b/packages/talker_bloc_logger/lib/bloc_logs.dart index 89f4cb0a..e290e2f3 100644 --- a/packages/talker_bloc_logger/lib/bloc_logs.dart +++ b/packages/talker_bloc_logger/lib/bloc_logs.dart @@ -20,7 +20,7 @@ class BlocEventLog extends TalkerLog { AnsiPen get pen => AnsiPen()..xterm(51); @override - String get title => TalkerKey.blocEvent.title; + String get key => TalkerLogType.blocEvent.key; @override String generateTextMessage() { @@ -51,7 +51,7 @@ class BlocStateLog extends TalkerLog { AnsiPen get pen => AnsiPen()..xterm(49); @override - String get title => TalkerKey.blocTransition.title; + String get key => TalkerLogType.blocTransition.key; @override String generateTextMessage() { @@ -86,7 +86,7 @@ class BlocChangeLog extends TalkerLog { AnsiPen get pen => AnsiPen()..xterm(49); @override - String get title => TalkerKey.blocTransition.title; + String get key => TalkerLogType.blocTransition.key; @override String generateTextMessage() { diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index cf6d2ce2..f984e77f 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -268,18 +268,18 @@ packages: dependency: transitive description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" sky_engine: dependency: transitive description: flutter @@ -328,19 +328,17 @@ packages: talker_dio_logger: dependency: "direct main" description: - name: talker_dio_logger - sha256: "5b8dd43e8d837b8e1d39d94157193ba691efe03ec009cd6f43c197bde6981ea5" - url: "https://pub.dev" - source: hosted + path: ".." + relative: true + source: path version: "2.3.1" talker_flutter: dependency: "direct main" description: - name: talker_flutter - sha256: ade0ecf82a0e1adfdd001ec275fabc5097d647ea41032d3604894059877c4264 - url: "https://pub.dev" - source: hosted - version: "3.5.2" + path: "../../talker_flutter" + relative: true + source: path + version: "3.5.4" talker_logger: dependency: transitive description: diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 6da13021..64901fc4 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: '>=2.18.0 <3.0.0' + sdk: '>=2.18.6 <4.0.0' dependencies: flutter: diff --git a/packages/talker_dio_logger/example/pubspec_overrides.yaml b/packages/talker_dio_logger/example/pubspec_overrides.yaml new file mode 100644 index 00000000..d2182cdc --- /dev/null +++ b/packages/talker_dio_logger/example/pubspec_overrides.yaml @@ -0,0 +1,7 @@ +dependency_overrides: + talker_dio_logger: + path: + ../../talker_dio_logger + talker_flutter: + path: + ../../talker_flutter \ No newline at end of file diff --git a/packages/talker_dio_logger/lib/dio_logs.dart b/packages/talker_dio_logger/lib/dio_logs.dart index c994fab3..ba0168aa 100644 --- a/packages/talker_dio_logger/lib/dio_logs.dart +++ b/packages/talker_dio_logger/lib/dio_logs.dart @@ -20,7 +20,7 @@ class DioRequestLog extends TalkerLog { AnsiPen get pen => settings.requestPen ?? (AnsiPen()..xterm(219)); @override - String get title => TalkerKey.httpRequest.title; + String get key => TalkerLogType.httpRequest.key; @override String generateTextMessage() { @@ -59,7 +59,7 @@ class DioResponseLog extends TalkerLog { AnsiPen get pen => settings.responsePen ?? (AnsiPen()..xterm(46)); @override - String get title => TalkerKey.httpResponse.title; + String get key => TalkerLogType.httpResponse.key; @override String generateTextMessage() { @@ -105,7 +105,7 @@ class DioErrorLog extends TalkerLog { AnsiPen get pen => settings.errorPen ?? (AnsiPen()..red()); @override - String get title => TalkerKey.httpError.title; + String get key => TalkerLogType.httpError.key; @override String generateTextMessage() { diff --git a/packages/talker_flutter/lib/src/observers/router_observer.dart b/packages/talker_flutter/lib/src/observers/router_observer.dart index fdb5c7fb..58093d66 100644 --- a/packages/talker_flutter/lib/src/observers/router_observer.dart +++ b/packages/talker_flutter/lib/src/observers/router_observer.dart @@ -37,7 +37,7 @@ class TalkerRouteLog extends TalkerLog { AnsiPen get pen => AnsiPen()..xterm(135); @override - String get title => TalkerKey.route.title; + String get key => TalkerLogType.route.key; static String _createMessage( Route route, diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart index afcc3daf..6d779e92 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart @@ -44,12 +44,12 @@ class TalkerMonitor extends StatelessWidget { .toList(); final httpRequests = data - .where((e) => e.title == TalkerKey.httpRequest.title) + .where((e) => e.key == TalkerLogType.httpRequest.key) .toList(); final httpErrors = - data.where((e) => e.title == TalkerKey.httpError.title).toList(); + data.where((e) => e.key == TalkerLogType.httpError.key).toList(); final httpResponses = data - .where((e) => e.title == TalkerKey.httpResponse.title) + .where((e) => e.key == TalkerLogType.httpResponse.key) .toList(); return CustomScrollView( diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index c8de96a5..1045213f 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -145,22 +145,22 @@ class TalkerDataCard extends StatelessWidget { final colorFromAnsi = _getColorFromAnsi(); if (colorFromAnsi != null) return colorFromAnsi; - if (data.title == TalkerKey.httpError.title) { + if (data.key == TalkerLogType.httpError.key) { return errorColor; } - if (data.title == TalkerKey.httpResponse.title) { + if (data.key == TalkerLogType.httpResponse.key) { return httpResponseLogColor; } - if (data.title == TalkerKey.httpRequest.title) { + if (data.title == TalkerLogType.httpRequest.title) { return httpRequestLogColor; } - if (data.title == TalkerKey.route.title) { + if (data.title == TalkerLogType.route.title) { return routeLogColor; } - if (data.title == TalkerKey.blocTransition.title) { + if (data.title == TalkerLogType.blocTransition.title) { return blocTransitionColor; } - if (data.title == TalkerKey.blocEvent.title) { + if (data.title == TalkerLogType.blocEvent.title) { return blocEventColor; } return debugColor; @@ -182,9 +182,9 @@ class TalkerDataCard extends StatelessWidget { return null; } final isHttpLog = [ - TalkerKey.httpError.title, - TalkerKey.httpRequest.title, - TalkerKey.httpResponse.title, + TalkerLogType.httpError.title, + TalkerLogType.httpRequest.title, + TalkerLogType.httpResponse.title, ].contains(data.title); if (isHttpLog) { return data.generateTextMessage(); diff --git a/packages/talker_http_logger/lib/talker_http_logger.dart b/packages/talker_http_logger/lib/talker_http_logger.dart index 12677a87..86230464 100644 --- a/packages/talker_http_logger/lib/talker_http_logger.dart +++ b/packages/talker_http_logger/lib/talker_http_logger.dart @@ -45,7 +45,7 @@ class HttpRequestLog extends TalkerLog { AnsiPen get pen => (AnsiPen()..xterm(219)); @override - String get title => TalkerTitles.httpRequest.title; + String get key => TalkerLogType.httpRequest.key; @override String generateTextMessage() { @@ -77,7 +77,7 @@ class HttpResponseLog extends TalkerLog { AnsiPen get pen => (AnsiPen()..xterm(46)); @override - String get title => TalkerTitles.httpResponse.title; + String get title => TalkerLogType.httpResponse.key; @override String generateTextMessage() { diff --git a/packages/talker_http_logger/pubspec_overrides.yaml b/packages/talker_http_logger/pubspec_overrides.yaml new file mode 100644 index 00000000..cb8ebb9f --- /dev/null +++ b/packages/talker_http_logger/pubspec_overrides.yaml @@ -0,0 +1,4 @@ +dependency_overrides: + talker: + path: + ../talker \ No newline at end of file From 8f6b58f4f8d5eebedcb876e3c53c98d2cf5eddb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 19:01:48 +0000 Subject: [PATCH 16/66] Bump VeryGoodOpenSource/very_good_coverage from 2.1.0 to 2.2.0 Bumps [VeryGoodOpenSource/very_good_coverage](https://github.com/verygoodopensource/very_good_coverage) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/verygoodopensource/very_good_coverage/releases) - [Changelog](https://github.com/VeryGoodOpenSource/very_good_coverage/blob/main/CHANGELOG.md) - [Commits](https://github.com/verygoodopensource/very_good_coverage/compare/v2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: VeryGoodOpenSource/very_good_coverage dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/talker.yaml | 4 ++-- .github/workflows/talker_logger.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/talker.yaml b/.github/workflows/talker.yaml index 3074cb49..fe250039 100644 --- a/.github/workflows/talker.yaml +++ b/.github/workflows/talker.yaml @@ -43,7 +43,7 @@ jobs: run: flutter test --no-pub --coverage - name: Check Code Coverage - uses: VeryGoodOpenSource/very_good_coverage@v2.1.0 + uses: VeryGoodOpenSource/very_good_coverage@v2.2.0 with: path: packages/talker/coverage/lcov.info min_coverage: 90 @@ -59,7 +59,7 @@ jobs: # export PATH=$PATH:$HOME/.pub-cache/bin # test_coverage # - name: Check Code Coverage - # uses: VeryGoodOpenSource/very_good_coverage@v2.1.0 + # uses: VeryGoodOpenSource/very_good_coverage@v2.2.0 # with: # min_coverage: 30 # path: talker_logger/coverage/lcov.info diff --git a/.github/workflows/talker_logger.yaml b/.github/workflows/talker_logger.yaml index 6e916959..e60e8230 100644 --- a/.github/workflows/talker_logger.yaml +++ b/.github/workflows/talker_logger.yaml @@ -43,7 +43,7 @@ jobs: run: flutter test --no-pub --coverage - name: Check Code Coverage - uses: VeryGoodOpenSource/very_good_coverage@v2.1.0 + uses: VeryGoodOpenSource/very_good_coverage@v2.2.0 with: path: packages/talker_logger/coverage/lcov.info min_coverage: 90 @@ -59,7 +59,7 @@ jobs: # export PATH=$PATH:$HOME/.pub-cache/bin # test_coverage # - name: Check Code Coverage - # uses: VeryGoodOpenSource/very_good_coverage@v2.1.0 + # uses: VeryGoodOpenSource/very_good_coverage@v2.2.0 # with: # min_coverage: 30 # path: talker_logger/coverage/lcov.info From c09d434d18cbd337e882e5e34567cab5ed106dbc Mon Sep 17 00:00:00 2001 From: Tonnelier Mickael Date: Thu, 30 Nov 2023 12:24:27 +0100 Subject: [PATCH 17/66] can bring your own errorHandler class --- packages/talker/lib/src/talker.dart | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 19fa504d..5c036642 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -25,6 +25,9 @@ class Talker { /// You can set your own [LoggerFormatter] [loggerFormatter] /// to format output of talker logs, /// + /// You can set your own [TalkerErrorHandler] [TalkerErrorHandler] + /// to handle talker logs errors, + /// /// You can add your own observer to handle errors and logs in other place /// [TalkerObserver] [observer], /// {@endtemplate} @@ -33,12 +36,13 @@ class Talker { TalkerObserver? observer, TalkerSettings? settings, TalkerFilter? filter, + TalkerErrorHandler? errorHandler, }) { _filter = filter; this.settings = settings ?? TalkerSettings(); _logger = logger ?? TalkerLogger(); _observer = observer ?? const _DefaultTalkerObserver(); - _errorHandler = TalkerErrorHandler(this.settings); + _errorHandler = errorHandler ?? TalkerErrorHandler(this.settings); } /// Fields can be setup in [configure()] method From 06c63df53cd1d0f5d0b9e80f42da832b1287278a Mon Sep 17 00:00:00 2001 From: cem256 Date: Thu, 30 Nov 2023 23:53:11 +0300 Subject: [PATCH 18/66] add onCreate, onClose logs for talker_bloc_logger --- .../talker/lib/src/well_known_titles.dart | 6 +++ .../talker_bloc_logger/lib/bloc_logs.dart | 54 +++++++++++++++++++ .../lib/talker_bloc_logger_observer.dart | 8 +++ .../lib/talker_bloc_logger_settings.dart | 4 ++ 4 files changed, 72 insertions(+) diff --git a/packages/talker/lib/src/well_known_titles.dart b/packages/talker/lib/src/well_known_titles.dart index e2e9a1c2..37d12713 100644 --- a/packages/talker/lib/src/well_known_titles.dart +++ b/packages/talker/lib/src/well_known_titles.dart @@ -6,6 +6,8 @@ enum WellKnownTitles { httpResponse, blocEvent, blocTransition, + blocCreate, + blocClose, route, } @@ -26,6 +28,10 @@ extension WellKnownTitlesExt on WellKnownTitles { return 'bloc-event'; case WellKnownTitles.blocTransition: return 'bloc-transition'; + case WellKnownTitles.blocCreate: + return 'bloc-create'; + case WellKnownTitles.blocClose: + return 'bloc-close'; case WellKnownTitles.route: return 'ROUTE'; } diff --git a/packages/talker_bloc_logger/lib/bloc_logs.dart b/packages/talker_bloc_logger/lib/bloc_logs.dart index 1329eab0..1e20274b 100644 --- a/packages/talker_bloc_logger/lib/bloc_logs.dart +++ b/packages/talker_bloc_logger/lib/bloc_logs.dart @@ -104,3 +104,57 @@ class BlocChangeLog extends TalkerLog { return sb.toString(); } } + +/// [Bloc] created log model +class BlocCreateLog extends TalkerLog { + BlocCreateLog({ + required this.bloc, + }) : super('${bloc.runtimeType} created'); + + final BlocBase bloc; + + @override + AnsiPen get pen => AnsiPen()..xterm(8); + + @override + String get title => WellKnownTitles.blocCreate.title; + + @override + String generateTextMessage() { + return _createMessage(); + } + + String _createMessage() { + final sb = StringBuffer(); + sb.write(displayTitleWithTime); + sb.write('\n$message'); + return sb.toString(); + } +} + +/// [Bloc] closed log model +class BlocCloseLog extends TalkerLog { + BlocCloseLog({ + required this.bloc, + }) : super('${bloc.runtimeType} closed'); + + final BlocBase bloc; + + @override + AnsiPen get pen => AnsiPen()..xterm(13); + + @override + String get title => WellKnownTitles.blocClose.title; + + @override + String generateTextMessage() { + return _createMessage(); + } + + String _createMessage() { + final sb = StringBuffer(); + sb.write(displayTitleWithTime); + sb.write('\n$message'); + return sb.toString(); + } +} diff --git a/packages/talker_bloc_logger/lib/talker_bloc_logger_observer.dart b/packages/talker_bloc_logger/lib/talker_bloc_logger_observer.dart index cebec9d8..7aca5e9f 100644 --- a/packages/talker_bloc_logger/lib/talker_bloc_logger_observer.dart +++ b/packages/talker_bloc_logger/lib/talker_bloc_logger_observer.dart @@ -82,10 +82,18 @@ class TalkerBlocObserver extends BlocObserver { @override void onCreate(BlocBase bloc) { super.onCreate(bloc); + if (!settings.enabled || !settings.printCreations) { + return; + } + _talker.logTyped(BlocCreateLog(bloc: bloc)); } @override void onClose(BlocBase bloc) { super.onClose(bloc); + if (!settings.enabled || !settings.printClosings) { + return; + } + _talker.logTyped(BlocCloseLog(bloc: bloc)); } } diff --git a/packages/talker_bloc_logger/lib/talker_bloc_logger_settings.dart b/packages/talker_bloc_logger/lib/talker_bloc_logger_settings.dart index e45a2133..7df8bae4 100644 --- a/packages/talker_bloc_logger/lib/talker_bloc_logger_settings.dart +++ b/packages/talker_bloc_logger/lib/talker_bloc_logger_settings.dart @@ -8,6 +8,8 @@ class TalkerBlocLoggerSettings { this.printChanges = false, this.printEventFullData = true, this.printStateFullData = true, + this.printCreations = false, + this.printClosings = false, this.transitionFilter, this.eventFilter, }); @@ -18,6 +20,8 @@ class TalkerBlocLoggerSettings { final bool printChanges; final bool printEventFullData; final bool printStateFullData; + final bool printCreations; + final bool printClosings; final bool Function(Bloc bloc, Transition transition)? transitionFilter; final bool Function(Bloc bloc, Object? event)? eventFilter; } From dc32ed36eba41fc47681e824f9107808319707d0 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Fri, 1 Dec 2023 23:38:17 +0500 Subject: [PATCH 19/66] Publish talker v3.1.5 and talker_flutter v3.5.5 --- README.md | 4 ++-- examples/shop_app_example/pubspec.lock | 18 +++++++++--------- packages/talker/CHANGELOG.md | 5 +++++ packages/talker/pubspec.yaml | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- .../talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_dio_logger/pubspec.yaml | 2 +- packages/talker_flutter/.flutter-plugins | 2 +- packages/talker_flutter/CHANGELOG.md | 5 +++++ packages/talker_flutter/pubspec.yaml | 4 ++-- 10 files changed, 28 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 2a9e4653..490f4fe2 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Follow these steps to the coolest experience in error handling ### Add dependency ```yaml dependencies: - talker: ^3.1.4 + talker: ^3.1.5 ``` ### Easy to use @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^3.5.4 + talker_flutter: ^3.5.5 ``` ### Setup diff --git a/examples/shop_app_example/pubspec.lock b/examples/shop_app_example/pubspec.lock index b040a0a5..b8c0db14 100644 --- a/examples/shop_app_example/pubspec.lock +++ b/examples/shop_app_example/pubspec.lock @@ -372,18 +372,18 @@ packages: dependency: transitive description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" sky_engine: dependency: transitive description: flutter @@ -425,31 +425,31 @@ packages: dependency: transitive description: name: talker - sha256: e0cb07e0bcab6045b86761593ff6f1878b335bfc1978ba48415d0968af68d81e + sha256: a7ae7055459aa236de1e35c47f76f56455824df69e3d14c2e4f223a999d99826 url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.5" talker_bloc_logger: dependency: "direct main" description: path: "../../packages/talker_bloc_logger" relative: true source: path - version: "2.2.0" + version: "2.2.1" talker_dio_logger: dependency: "direct main" description: path: "../../packages/talker_dio_logger" relative: true source: path - version: "2.3.0" + version: "2.3.1" talker_flutter: dependency: "direct main" description: path: "../../packages/talker_flutter" relative: true source: path - version: "3.5.1" + version: "3.5.5" talker_logger: dependency: transitive description: diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index a613904e..750f0e4b 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,3 +1,8 @@ +# 3.1.5 +- Add ability to set own ErrorHandler + +Thanks to [Ppito](https://github.com/Ppito) + # 3.1.4 - Pad minutes and seconds for DateTime formatter diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index f9cd8645..aa8d1178 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -1,6 +1,6 @@ name: talker description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.1.4 +version: 3.1.5 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index e06e6fe6..009baa36 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - talker: ^3.1.4 + talker: ^3.1.5 bloc: ^8.1.1 meta: ^1.8.0 diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 6da13021..5fa964eb 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter dio: ^5.0.0 talker_dio_logger: ^2.3.1 - talker_flutter: ^3.5.4 + talker_flutter: ^3.5.5 dev_dependencies: flutter_test: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index d9d60672..5dccbb10 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -18,7 +18,7 @@ environment: dependencies: dio: ^5.2.0 - talker: ^3.1.4 + talker: ^3.1.5 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_flutter/.flutter-plugins b/packages/talker_flutter/.flutter-plugins index b35c584d..a9a4c268 100644 --- a/packages/talker_flutter/.flutter-plugins +++ b/packages/talker_flutter/.flutter-plugins @@ -4,7 +4,7 @@ path_provider_android=/Users/stanislavilin/.pub-cache/hosted/pub.dev/path_provid path_provider_foundation=/Users/stanislavilin/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.1/ path_provider_linux=/Users/stanislavilin/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ path_provider_windows=/Users/stanislavilin/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/ -share_plus=/Users/stanislavilin/.pub-cache/hosted/pub.dev/share_plus-7.1.0/ +share_plus=/Users/stanislavilin/.pub-cache/hosted/pub.dev/share_plus-7.2.1/ url_launcher_linux=/Users/stanislavilin/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.5/ url_launcher_web=/Users/stanislavilin/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.16/ url_launcher_windows=/Users/stanislavilin/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.6/ diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index 2c324a37..3c3f5c0d 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,8 @@ +# 3.5.5 +- Add ability to set own ErrorHandler for talker instance + +Thanks to [Ppito](https://github.com/Ppito) + # 3.5.4 - Bump share_plus package to 7.2.1 diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 05befeee..c0bc6463 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.5.4 +version: 3.5.5 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -20,7 +20,7 @@ dependencies: flutter: sdk: flutter - talker: ^3.1.4 + talker: ^3.1.5 group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.2.1 From 965ab7e84dd6c788c4c8a12abf05306453e10c26 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Fri, 1 Dec 2023 23:38:19 +0500 Subject: [PATCH 20/66] Update pubspec.lock --- packages/talker_flutter/example/pubspec.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/talker_flutter/example/pubspec.lock b/packages/talker_flutter/example/pubspec.lock index 3f287fea..31490cda 100644 --- a/packages/talker_flutter/example/pubspec.lock +++ b/packages/talker_flutter/example/pubspec.lock @@ -313,17 +313,17 @@ packages: dependency: transitive description: name: talker - sha256: "9c587c0269e194ea5c161b01fa5c4e4120926f4b8fedcf9b3bd2466cb500b880" + sha256: a7ae7055459aa236de1e35c47f76f56455824df69e3d14c2e4f223a999d99826 url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" talker_flutter: dependency: "direct main" description: path: ".." relative: true source: path - version: "3.5.4" + version: "3.5.5" talker_logger: dependency: transitive description: From 0e39135ab756a9a2a3872e2cd85c52ffca9b837f Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Fri, 1 Dec 2023 23:41:03 +0500 Subject: [PATCH 21/66] Publish talker_dio_logger v2.3.2 and talker_bloc_logger v2.2.2 --- packages/talker_bloc_logger/CHANGELOG.md | 3 +++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/CHANGELOG.md | 3 +++ packages/talker_dio_logger/README.md | 2 +- packages/talker_dio_logger/pubspec.yaml | 2 +- 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index 5ddd0813..c0379ce3 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2.2.2 +- Update **talker** version to 3.1.5 + ## 2.2.1 - Update **talker** version to 3.1.4 diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index 35e07581..aad95948 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.2.1 + talker_bloc_logger: ^2.2.2 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index 009baa36..ddae4c73 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 2.2.1 +version: 2.2.2 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_dio_logger/CHANGELOG.md b/packages/talker_dio_logger/CHANGELOG.md index 3fa384a9..056c7da1 100644 --- a/packages/talker_dio_logger/CHANGELOG.md +++ b/packages/talker_dio_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2.3.2 +- Update **talker** version to 3.1.5 + ## 2.3.1 - Update **talker** version to 3.1.4 diff --git a/packages/talker_dio_logger/README.md b/packages/talker_dio_logger/README.md index 3212de0c..cec425a0 100644 --- a/packages/talker_dio_logger/README.md +++ b/packages/talker_dio_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.3.1 + talker_dio_logger: ^2.3.2 ``` ### Usage diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index 5dccbb10..5eaa4297 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_dio_logger description: Lightweight and customizable dio http client logger on talker base -version: 2.3.1 +version: 2.3.2 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker From f5b6316462058f9f0fc5d8d3f03e4388460a86e3 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Fri, 1 Dec 2023 23:51:40 +0500 Subject: [PATCH 22/66] Publish talker_bloc_logger v2.3.0 --- README.md | 2 +- packages/talker_bloc_logger/CHANGELOG.md | 6 ++++++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/example/pubspec.lock | 16 ++++++++-------- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 490f4fe2..43c11396 100644 --- a/README.md +++ b/README.md @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.2.1 + talker_bloc_logger: ^2.3.0 ``` ### Usage diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index c0379ce3..5c463050 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.3.0 +- Add onCreate, onClose logs +- Add **printClosings** **printCreations** settings fields (false by default) + +Thanks to [wcoder](https://github.com/wcoder) + ## 2.2.2 - Update **talker** version to 3.1.5 diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index aad95948..59faba8c 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.2.2 + talker_bloc_logger: ^2.3.0 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index ddae4c73..c9b4e60b 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 2.2.2 +version: 2.3.0 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index cf6d2ce2..b3d3d830 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -268,18 +268,18 @@ packages: dependency: transitive description: name: share_plus - sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11" + sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.2.1" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7" + sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" sky_engine: dependency: transitive description: flutter @@ -321,10 +321,10 @@ packages: dependency: transitive description: name: talker - sha256: "9c587c0269e194ea5c161b01fa5c4e4120926f4b8fedcf9b3bd2466cb500b880" + sha256: a7ae7055459aa236de1e35c47f76f56455824df69e3d14c2e4f223a999d99826 url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" talker_dio_logger: dependency: "direct main" description: @@ -337,10 +337,10 @@ packages: dependency: "direct main" description: name: talker_flutter - sha256: ade0ecf82a0e1adfdd001ec275fabc5097d647ea41032d3604894059877c4264 + sha256: "3a022743975c2e3bd78645e94a75763549ab738efe3734a60009aa9075e74bbe" url: "https://pub.dev" source: hosted - version: "3.5.2" + version: "3.5.5" talker_logger: dependency: transitive description: From c79a68ccd5789c990a0def75694b748f62e52d04 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sat, 2 Dec 2023 00:02:11 +0500 Subject: [PATCH 23/66] Publish talker_bloc_logger v2.3.1 --- README.md | 2 +- packages/talker_bloc_logger/CHANGELOG.md | 5 +++- packages/talker_bloc_logger/README.md | 27 ++++++++++++++++++- .../example/talker_bloc_logger_example.dart | 11 ++++++++ packages/talker_bloc_logger/pubspec.yaml | 2 +- 5 files changed, 43 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 43c11396..d608e81e 100644 --- a/README.md +++ b/README.md @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.3.0 + talker_bloc_logger: ^2.3.1 ``` ### Usage diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index 5c463050..1b27c2f4 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,8 +1,11 @@ +## 2.3.1 +- Update README.md + ## 2.3.0 - Add onCreate, onClose logs - Add **printClosings** **printCreations** settings fields (false by default) -Thanks to [wcoder](https://github.com/wcoder) +Thanks to [cem256](https://github.com/cem256) ## 2.2.2 - Update **talker** version to 3.1.5 diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index 59faba8c..d79433ea 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.3.0 + talker_bloc_logger: ^2.3.1 ``` ### Usage @@ -49,6 +49,31 @@ final talker = Talker(); Bloc.observer = TalkerBlocObserver(talker: talker); ``` +## Settings + +This package has a lot of customization options +You can enable/disable somethings events, Bloc creation, changes, closing logs, etc... + +```dart +Bloc.observer = TalkerBlocObserver( + settings: TalkerBlocLoggerSettings( + enabled: true, + printEventFullData: false, + printStateFullData: false, + printChanges: true, + printClosings: true, + printCreations: true, + printEvents: true, + printTransitions: true, + // If you want log only AuthBloc transitions + transitionFilter: (bloc, transition) => + bloc.runtimeType.toString() == 'AuthBloc', + // If you want log only AuthBloc events + eventFilter: (bloc, event) => bloc.runtimeType.toString() == 'AuthBloc', + ), + ); +``` + ## Additional information The project is under development and ready for your pull-requests and issues πŸ‘
Thank you for support ❀️ diff --git a/packages/talker_bloc_logger/example/talker_bloc_logger_example.dart b/packages/talker_bloc_logger/example/talker_bloc_logger_example.dart index 07480fec..ecc33150 100644 --- a/packages/talker_bloc_logger/example/talker_bloc_logger_example.dart +++ b/packages/talker_bloc_logger/example/talker_bloc_logger_example.dart @@ -4,8 +4,19 @@ import 'package:talker_bloc_logger/talker_bloc_logger.dart'; void main() async { Bloc.observer = TalkerBlocObserver( settings: TalkerBlocLoggerSettings( + enabled: true, printEventFullData: false, printStateFullData: false, + printChanges: true, + printClosings: true, + printCreations: true, + printEvents: true, + printTransitions: true, + // If you want log only AuthBloc transitions + transitionFilter: (bloc, transition) => + bloc.runtimeType.toString() == 'AuthBloc', + // If you want log only AuthBloc events + eventFilter: (bloc, event) => bloc.runtimeType.toString() == 'AuthBloc', ), ); final somethingBloc = SomethingBloc(); diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index c9b4e60b..fcddd635 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 2.3.0 +version: 2.3.1 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues From b49cbc01c77ec275180285befafa39384487b6c9 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 3 Dec 2023 23:29:47 +0500 Subject: [PATCH 24/66] Publish talker v3.1.6 and talker_flutter v3.5.6 --- README.md | 4 ++-- packages/talker/CHANGELOG.md | 7 +++++++ packages/talker/pubspec.yaml | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_dio_logger/pubspec.yaml | 2 +- packages/talker_flutter/CHANGELOG.md | 7 +++++++ packages/talker_flutter/pubspec.yaml | 4 ++-- 8 files changed, 22 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d608e81e..f92451ac 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Follow these steps to the coolest experience in error handling ### Add dependency ```yaml dependencies: - talker: ^3.1.5 + talker: ^3.1.6 ``` ### Easy to use @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^3.5.5 + talker_flutter: ^3.5.6 ``` ### Setup diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index 750f0e4b..969330ff 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,3 +1,10 @@ +# 3.1.6 +**talker_bloc_logger** +- Add onCreate, onClose logs +- Add **printClosings** **printCreations** settings fields (false by default) + +Thanks to [cem256](https://github.com/cem256) + # 3.1.5 - Add ability to set own ErrorHandler diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index aa8d1178..a7374d56 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -1,6 +1,6 @@ name: talker description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.1.5 +version: 3.1.6 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index fcddd635..504edff7 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - talker: ^3.1.5 + talker: ^3.1.6 bloc: ^8.1.1 meta: ^1.8.0 diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 5fa964eb..3c923673 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter dio: ^5.0.0 talker_dio_logger: ^2.3.1 - talker_flutter: ^3.5.5 + talker_flutter: ^3.5.6 dev_dependencies: flutter_test: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index 5eaa4297..87b9478e 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -18,7 +18,7 @@ environment: dependencies: dio: ^5.2.0 - talker: ^3.1.5 + talker: ^3.1.6 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index 3c3f5c0d..232a2dcd 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,10 @@ +# 3.5.6 +**talker_bloc_logger** +- Add onCreate, onClose logs +- Add **printClosings** **printCreations** settings fields (false by default) + +Thanks to [cem256](https://github.com/cem256) + # 3.5.5 - Add ability to set own ErrorHandler for talker instance diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index c0bc6463..8ab5f8fa 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.5.5 +version: 3.5.6 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -20,7 +20,7 @@ dependencies: flutter: sdk: flutter - talker: ^3.1.5 + talker: ^3.1.6 group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.2.1 From 49974b3fbaf0c7dd905dd858ac28a356e21ba61e Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 3 Dec 2023 23:33:39 +0500 Subject: [PATCH 25/66] Publish talker_dio_logger v2.3.3 and talker_bloc_logger v2.3.2 --- README.md | 4 ++-- packages/talker_bloc_logger/CHANGELOG.md | 4 ++++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/CHANGELOG.md | 3 +++ packages/talker_dio_logger/README.md | 2 +- packages/talker_dio_logger/example/pubspec.lock | 8 ++++---- packages/talker_dio_logger/pubspec.yaml | 2 +- 8 files changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index f92451ac..930aeb62 100644 --- a/README.md +++ b/README.md @@ -387,7 +387,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.3.1 + talker_dio_logger: ^2.3.3 ``` ### Usage @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.3.1 + talker_bloc_logger: ^2.3.2 ``` ### Usage diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index 1b27c2f4..32ea7f29 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.3.2 +- Update **talker** version to 3.1.6 +- Fix last deploy issues (Member not found for WellKnownTitles issue) + ## 2.3.1 - Update README.md diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index d79433ea..eaff3171 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.3.1 + talker_bloc_logger: ^2.3.2 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index 504edff7..ef4ff393 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 2.3.1 +version: 2.3.2 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_dio_logger/CHANGELOG.md b/packages/talker_dio_logger/CHANGELOG.md index 056c7da1..05663278 100644 --- a/packages/talker_dio_logger/CHANGELOG.md +++ b/packages/talker_dio_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2.3.3 +- Update **talker** version to 3.1.6 + ## 2.3.2 - Update **talker** version to 3.1.5 diff --git a/packages/talker_dio_logger/README.md b/packages/talker_dio_logger/README.md index cec425a0..ccdf3407 100644 --- a/packages/talker_dio_logger/README.md +++ b/packages/talker_dio_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.3.2 + talker_dio_logger: ^2.3.3 ``` ### Usage diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index b3d3d830..0bfac57c 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -321,10 +321,10 @@ packages: dependency: transitive description: name: talker - sha256: a7ae7055459aa236de1e35c47f76f56455824df69e3d14c2e4f223a999d99826 + sha256: "447411fbc819b5cc41b647d4134d18535bec50616c45ce78b451abd37a22cc91" url: "https://pub.dev" source: hosted - version: "3.1.5" + version: "3.1.6" talker_dio_logger: dependency: "direct main" description: @@ -337,10 +337,10 @@ packages: dependency: "direct main" description: name: talker_flutter - sha256: "3a022743975c2e3bd78645e94a75763549ab738efe3734a60009aa9075e74bbe" + sha256: "0b410c49edb50dd6a9ea2ddb049f547aa699907e90129ec024e5eae555ad34d5" url: "https://pub.dev" source: hosted - version: "3.5.5" + version: "3.5.6" talker_logger: dependency: transitive description: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index 87b9478e..f9b4f2ac 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_dio_logger description: Lightweight and customizable dio http client logger on talker base -version: 2.3.2 +version: 2.3.3 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker From f8555317cc4b8b693f40b232884165813d86607e Mon Sep 17 00:00:00 2001 From: Tonnelier Mickael Date: Tue, 5 Dec 2023 20:56:09 +0100 Subject: [PATCH 26/66] can bring your own history class --- packages/talker/lib/src/history.dart | 35 +++++++++++++++++++++++++++ packages/talker/lib/src/talker.dart | 36 +++++++++++++++------------- packages/talker/lib/talker.dart | 1 + 3 files changed, 55 insertions(+), 17 deletions(-) create mode 100644 packages/talker/lib/src/history.dart diff --git a/packages/talker/lib/src/history.dart b/packages/talker/lib/src/history.dart new file mode 100644 index 00000000..c5d90bf6 --- /dev/null +++ b/packages/talker/lib/src/history.dart @@ -0,0 +1,35 @@ +import 'package:talker/talker.dart'; + +class DefaultTalkerHistory implements TalkerHistory { + DefaultTalkerHistory(this.settings); + + final TalkerSettings settings; + + final _history = []; + + @override + List get history => _history; + + @override + void clean() { + if (settings.useHistory) { + _history.clear(); + } + } + + @override + void write(TalkerDataInterface data) { + if (settings.useHistory && settings.enabled) { + if (settings.maxHistoryItems <= _history.length) { + _history.removeAt(0); + } + _history.add(data); + } + } +} + +abstract class TalkerHistory { + List get history; + void clean(); + void write(TalkerDataInterface data); +} diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 5c036642..8ad8d3cc 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -28,6 +28,9 @@ class Talker { /// You can set your own [TalkerErrorHandler] [TalkerErrorHandler] /// to handle talker logs errors, /// + /// You can set your own [TalkerHistory] [TalkerHistory] + /// to historize talker logs, + /// /// You can add your own observer to handle errors and logs in other place /// [TalkerObserver] [observer], /// {@endtemplate} @@ -37,12 +40,14 @@ class Talker { TalkerSettings? settings, TalkerFilter? filter, TalkerErrorHandler? errorHandler, + TalkerHistory? history, }) { _filter = filter; this.settings = settings ?? TalkerSettings(); _logger = logger ?? TalkerLogger(); _observer = observer ?? const _DefaultTalkerObserver(); _errorHandler = errorHandler ?? TalkerErrorHandler(this.settings); + _history = history ?? DefaultTalkerHistory(this.settings); } /// Fields can be setup in [configure()] method @@ -53,9 +58,9 @@ class Talker { late TalkerErrorHandler _errorHandler; late TalkerFilter? _filter; late TalkerObserver _observer; + late TalkerHistory _history; // final _fileManager = FileManager(); - final _history = []; /// Setup configuration of Talker /// @@ -73,6 +78,12 @@ class Talker { /// /// Also you can set [settings] [TalkerSettings], /// + /// You can set your own [TalkerErrorHandler] [TalkerErrorHandler] + /// to handle talker logs errors, + /// + /// You can set your own [TalkerHistory] [TalkerHistory] + /// to historize talker logs, + /// /// You can add your own observer to handle errors and logs in other place /// [TalkerObserver] [observer], void configure({ @@ -80,6 +91,8 @@ class Talker { TalkerSettings? settings, TalkerObserver? observer, TalkerFilter? filter, + TalkerErrorHandler? errorHandler, + TalkerHistory? history, }) { if (filter != null) { _filter = filter; @@ -89,6 +102,8 @@ class Talker { } _observer = observer ?? _observer; _logger = logger ?? _logger; + _errorHandler = errorHandler ?? TalkerErrorHandler(this.settings); + _history = history ?? DefaultTalkerHistory(this.settings); } final _talkerStreamController = @@ -108,7 +123,7 @@ class Talker { /// occurred errors [TalkerError]s, exceptions [TalkerException]s /// and logs [TalkerLog]s that have been sent - List get history => _history; + List get history => _history.history; /// Handle common exceptions in your code /// [Object] [exception] - exception @@ -325,11 +340,8 @@ class Talker { } /// Clear log history - void cleanHistory() { - if (settings.useHistory) { - _history.clear(); - } + _history.clean(); } /// Method stops all [Talker] works @@ -410,8 +422,7 @@ class Talker { } void _handleForOutputs(TalkerDataInterface data) { - _writeToHistory(data); - // _writeToFile(data); + _history.write(data); } //TODO: recreate file manager logic @@ -421,15 +432,6 @@ class Talker { // } // } - void _writeToHistory(TalkerDataInterface data) { - if (settings.useHistory && settings.enabled) { - if (settings.maxHistoryItems <= _history.length) { - _history.removeAt(0); - } - _history.add(data); - } - } - bool _isApprovedByFilter(TalkerDataInterface data) { final approved = _filter?.filter(data) ?? true; return approved; diff --git a/packages/talker/lib/talker.dart b/packages/talker/lib/talker.dart index c9a79493..5b3f03df 100644 --- a/packages/talker/lib/talker.dart +++ b/packages/talker/lib/talker.dart @@ -6,4 +6,5 @@ export 'src/models/models.dart'; export 'src/observer.dart'; export 'src/settings.dart'; export 'src/talker.dart'; +export 'src/history.dart'; export 'src/well_known_titles.dart'; From ae096b7c316870bb47d0dc691533df4226da9f5a Mon Sep 17 00:00:00 2001 From: Tonnelier Mickael Date: Fri, 8 Dec 2023 09:15:21 +0100 Subject: [PATCH 27/66] fix(utils): add missing export file --- packages/talker/lib/talker.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/talker/lib/talker.dart b/packages/talker/lib/talker.dart index c9a79493..4d4910ac 100644 --- a/packages/talker/lib/talker.dart +++ b/packages/talker/lib/talker.dart @@ -6,4 +6,5 @@ export 'src/models/models.dart'; export 'src/observer.dart'; export 'src/settings.dart'; export 'src/talker.dart'; +export 'src/utils/utils.dart'; export 'src/well_known_titles.dart'; From a0b23e75c58bfbeef67e8c079cc76e6fd5db1385 Mon Sep 17 00:00:00 2001 From: Tonnelier Mickael Date: Fri, 8 Dec 2023 09:28:49 +0100 Subject: [PATCH 28/66] fix(utils): remove extra import file --- packages/talker/lib/src/models/talker_data_interface.dart | 1 - packages/talker/lib/src/talker.dart | 1 - packages/talker/test/talker_data_models_test.dart | 1 - packages/talker/test/talker_error_handler_test.dart | 1 - 4 files changed, 4 deletions(-) diff --git a/packages/talker/lib/src/models/talker_data_interface.dart b/packages/talker/lib/src/models/talker_data_interface.dart index b6aa3008..0d69e52e 100644 --- a/packages/talker/lib/src/models/talker_data_interface.dart +++ b/packages/talker/lib/src/models/talker_data_interface.dart @@ -1,4 +1,3 @@ -import 'package:talker/src/utils/utils.dart'; import 'package:talker/talker.dart'; /// Base [Talker] Data transfer object diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 5c036642..69154217 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -1,6 +1,5 @@ import 'dart:async'; -import 'package:talker/src/utils/utils.dart'; import 'package:talker/talker.dart'; /// Talker - advanced exception handling and logging diff --git a/packages/talker/test/talker_data_models_test.dart b/packages/talker/test/talker_data_models_test.dart index 14dd30d8..84efb1f2 100644 --- a/packages/talker/test/talker_data_models_test.dart +++ b/packages/talker/test/talker_data_models_test.dart @@ -1,6 +1,5 @@ // ignore_for_file: unnecessary_type_check, leading_newlines_in_multiline_strings -import 'package:talker/src/utils/utils.dart'; import 'package:talker/talker.dart'; import 'package:test/test.dart'; diff --git a/packages/talker/test/talker_error_handler_test.dart b/packages/talker/test/talker_error_handler_test.dart index 51b9eb47..281f48a7 100644 --- a/packages/talker/test/talker_error_handler_test.dart +++ b/packages/talker/test/talker_error_handler_test.dart @@ -1,4 +1,3 @@ -import 'package:talker/src/utils/utils.dart'; import 'package:talker/talker.dart'; import 'package:test/test.dart'; From 9c0cbf628cdbafa52c802a7c55e7b6c998651aef Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 12 Dec 2023 16:14:51 +0500 Subject: [PATCH 29/66] Publish talker v3.1.7 and talker_flutter 3.5.7 --- README.md | 4 ++-- packages/talker/CHANGELOG.md | 5 +++++ packages/talker/pubspec.yaml | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_dio_logger/pubspec.yaml | 2 +- packages/talker_flutter/CHANGELOG.md | 5 +++++ packages/talker_flutter/pubspec.yaml | 4 ++-- 8 files changed, 18 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 930aeb62..52b1f8d9 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Follow these steps to the coolest experience in error handling ### Add dependency ```yaml dependencies: - talker: ^3.1.6 + talker: ^3.1.7 ``` ### Easy to use @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^3.5.6 + talker_flutter: ^3.5.7 ``` ### Setup diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index 969330ff..1bcd3057 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,3 +1,8 @@ +# 3.1.7 +- Add package utils export + +Thanks to [Ppito](https://github.com/Ppito) + # 3.1.6 **talker_bloc_logger** - Add onCreate, onClose logs diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index a7374d56..628e2722 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -1,6 +1,6 @@ name: talker description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.1.6 +version: 3.1.7 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index ef4ff393..11ba3e8a 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - talker: ^3.1.6 + talker: ^3.1.7 bloc: ^8.1.1 meta: ^1.8.0 diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 3c923673..292bc161 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter dio: ^5.0.0 talker_dio_logger: ^2.3.1 - talker_flutter: ^3.5.6 + talker_flutter: ^3.5.7 dev_dependencies: flutter_test: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index f9b4f2ac..f5c67180 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -18,7 +18,7 @@ environment: dependencies: dio: ^5.2.0 - talker: ^3.1.6 + talker: ^3.1.7 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index 232a2dcd..972319c9 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,8 @@ +# 3.5.7 +- Add package utils export + +Thanks to [Ppito](https://github.com/Ppito) + # 3.5.6 **talker_bloc_logger** - Add onCreate, onClose logs diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 8ab5f8fa..3245e7a9 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.5.6 +version: 3.5.7 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -20,7 +20,7 @@ dependencies: flutter: sdk: flutter - talker: ^3.1.6 + talker: ^3.1.7 group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.2.1 From ffa330820130b1477a6a84fe8fe1c494130fd3a3 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Tue, 12 Dec 2023 16:17:18 +0500 Subject: [PATCH 30/66] Publish talker_bloc_logger v2.3.3 and talker_dio_logger v2.3.4 --- README.md | 4 ++-- packages/talker_bloc_logger/CHANGELOG.md | 3 +++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/CHANGELOG.md | 3 +++ packages/talker_dio_logger/README.md | 2 +- packages/talker_dio_logger/example/pubspec.lock | 8 ++++---- packages/talker_dio_logger/pubspec.yaml | 2 +- 8 files changed, 16 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 52b1f8d9..70383bc6 100644 --- a/README.md +++ b/README.md @@ -387,7 +387,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.3.3 + talker_dio_logger: ^2.3.4 ``` ### Usage @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.3.2 + talker_bloc_logger: ^2.3.3 ``` ### Usage diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index 32ea7f29..295b6124 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2.3.3 +- Update **talker** version to 3.1.7 + ## 2.3.2 - Update **talker** version to 3.1.6 - Fix last deploy issues (Member not found for WellKnownTitles issue) diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index eaff3171..1e93136d 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.3.2 + talker_bloc_logger: ^2.3.3 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index 11ba3e8a..d7c3504a 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 2.3.2 +version: 2.3.3 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_dio_logger/CHANGELOG.md b/packages/talker_dio_logger/CHANGELOG.md index 05663278..6392e2a1 100644 --- a/packages/talker_dio_logger/CHANGELOG.md +++ b/packages/talker_dio_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +## 2.3.4 +- Update **talker** version to 3.1.7 + ## 2.3.3 - Update **talker** version to 3.1.6 diff --git a/packages/talker_dio_logger/README.md b/packages/talker_dio_logger/README.md index ccdf3407..ac27e79b 100644 --- a/packages/talker_dio_logger/README.md +++ b/packages/talker_dio_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.3.3 + talker_dio_logger: ^2.3.4 ``` ### Usage diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index 0bfac57c..38244103 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -321,10 +321,10 @@ packages: dependency: transitive description: name: talker - sha256: "447411fbc819b5cc41b647d4134d18535bec50616c45ce78b451abd37a22cc91" + sha256: "3cb5741a36032c64a16f06e715c7d74a65279f6e7e87b1f939ddfe027cb2fcfe" url: "https://pub.dev" source: hosted - version: "3.1.6" + version: "3.1.7" talker_dio_logger: dependency: "direct main" description: @@ -337,10 +337,10 @@ packages: dependency: "direct main" description: name: talker_flutter - sha256: "0b410c49edb50dd6a9ea2ddb049f547aa699907e90129ec024e5eae555ad34d5" + sha256: "7705d4cd65e700f4c5946b5891e67a4c230eb79cdd7e4db1bfe02bb62edc56c8" url: "https://pub.dev" source: hosted - version: "3.5.6" + version: "3.5.7" talker_logger: dependency: transitive description: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index f5c67180..5db78f6a 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_dio_logger description: Lightweight and customizable dio http client logger on talker base -version: 2.3.3 +version: 2.3.4 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker From f79fe10df738fe991e751d636d126543f9adac0d Mon Sep 17 00:00:00 2001 From: Tonnelier Mickael Date: Tue, 12 Dec 2023 13:26:41 +0100 Subject: [PATCH 31/66] feat(history): add missing description --- packages/talker/lib/src/history.dart | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/talker/lib/src/history.dart b/packages/talker/lib/src/history.dart index c5d90bf6..490a3ca4 100644 --- a/packages/talker/lib/src/history.dart +++ b/packages/talker/lib/src/history.dart @@ -1,17 +1,24 @@ import 'package:talker/talker.dart'; +/// Base implementation of [TalkerHistory] +/// to save the history locally class DefaultTalkerHistory implements TalkerHistory { + /// Take [TalkerSettings] as required parameter DefaultTalkerHistory(this.settings); + /// Bring [TalkerSettings] to manage some configuration. final TalkerSettings settings; + /// Save locally final _history = []; + /// Return list of history @override List get history => _history; @override void clean() { + /// Check if you can clear the history. if (settings.useHistory) { _history.clear(); } @@ -19,7 +26,9 @@ class DefaultTalkerHistory implements TalkerHistory { @override void write(TalkerDataInterface data) { + /// Check if you are authorized to write. if (settings.useHistory && settings.enabled) { + /// Check if you have reached the max number of history and delete them. if (settings.maxHistoryItems <= _history.length) { _history.removeAt(0); } @@ -28,8 +37,19 @@ class DefaultTalkerHistory implements TalkerHistory { } } +/// Base class for create your own implementation of history +/// +/// The history stores all information about all events like +/// occurred errors [TalkerError]s, exceptions [TalkerException]s +/// and logs [TalkerLog]s that have been sent abstract class TalkerHistory { + /// Return List of [TalkerDataInterface] List get history; + + /// Called when [Talker] handle [cleanHistory]. + /// For example, [TalkerView] handle the [Talker.cleanHistory] void clean(); + + /// Called when [Talker] handle an [TalkerDataInterface] log void write(TalkerDataInterface data); } From 0fe5f1fbf06ca5d50edaaa630f120b9f8d10dd0d Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 14 Dec 2023 21:39:55 +0500 Subject: [PATCH 32/66] Publish talker v3.2.0 and talker_flutter v3.6.0 --- .vscode/settings.json | 4 ++-- README.md | 4 ++-- packages/talker/CHANGELOG.md | 7 +++++++ packages/talker/pubspec.yaml | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_dio_logger/pubspec.yaml | 2 +- packages/talker_flutter/CHANGELOG.md | 7 +++++++ packages/talker_flutter/pubspec.yaml | 4 ++-- 9 files changed, 24 insertions(+), 10 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0f3f41c5..7afef72a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,8 +2,8 @@ "git.enabled": true, "dart.previewLsp": true, "editor.codeActionsOnSave": { - "source.fixAll": true, - "source.organizeImports": true, + "source.fixAll": "explicit", + "source.organizeImports": "explicit" }, "editor.formatOnSave": true, } \ No newline at end of file diff --git a/README.md b/README.md index 70383bc6..91b7dca7 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Follow these steps to the coolest experience in error handling ### Add dependency ```yaml dependencies: - talker: ^3.1.7 + talker: ^3.2.0 ``` ### Easy to use @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^3.5.7 + talker_flutter: ^3.6.0 ``` ### Setup diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index 1bcd3057..89d31972 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,3 +1,10 @@ +# 3.2.0 +- Add ability to setup custom history implementation +- Add **abstract class TalkerHistory** +- Add **DefaultTalkerHistory** implementation with basic (previous) functionality by default + +Thanks to [Ppito](https://github.com/Ppito) + # 3.1.7 - Add package utils export diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index 628e2722..42d952b6 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -1,6 +1,6 @@ name: talker description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.1.7 +version: 3.2.0 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index d7c3504a..a51f0645 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - talker: ^3.1.7 + talker: ^3.2.0 bloc: ^8.1.1 meta: ^1.8.0 diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 292bc161..76ae9548 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter dio: ^5.0.0 talker_dio_logger: ^2.3.1 - talker_flutter: ^3.5.7 + talker_flutter: ^3.6.0 dev_dependencies: flutter_test: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index 5db78f6a..2f9faebe 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -18,7 +18,7 @@ environment: dependencies: dio: ^5.2.0 - talker: ^3.1.7 + talker: ^3.2.0 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index 972319c9..13ee2548 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,10 @@ +# 3.6.0 +- Add ability to setup custom history implementation +- Add **abstract class TalkerHistory** +- Add **DefaultTalkerHistory** implementation with basic (previous) functionality by default + +Thanks to [Ppito](https://github.com/Ppito) + # 3.5.7 - Add package utils export diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 3245e7a9..f4c5be19 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.5.7 +version: 3.6.0 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -20,7 +20,7 @@ dependencies: flutter: sdk: flutter - talker: ^3.1.7 + talker: ^3.2.0 group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.2.1 From 27b009f54cbb50f2910bc73a49d22bcc1fc5621b Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 14 Dec 2023 21:44:49 +0500 Subject: [PATCH 33/66] Publish talker_bloc_logger v2.4.0 and talker_dio_logger v2.4.0 --- README.md | 4 ++-- packages/talker_bloc_logger/CHANGELOG.md | 8 ++++++++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/CHANGELOG.md | 8 ++++++++ packages/talker_dio_logger/README.md | 2 +- packages/talker_dio_logger/example/pubspec.lock | 12 ++++++------ packages/talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_dio_logger/pubspec.yaml | 2 +- 9 files changed, 29 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 91b7dca7..6e18292a 100644 --- a/README.md +++ b/README.md @@ -387,7 +387,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.3.4 + talker_dio_logger: ^2.4.0 ``` ### Usage @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.3.3 + talker_bloc_logger: ^2.4.0 ``` ### Usage diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index 295b6124..1f329030 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,11 @@ +# 2.4.0 +- Update **talker** version to 3.2.0 +- Add ability to setup custom history implementation +- Add **abstract class TalkerHistory** +- Add **DefaultTalkerHistory** implementation with basic (previous) functionality by default + +Thanks to [Ppito](https://github.com/Ppito) + ## 2.3.3 - Update **talker** version to 3.1.7 diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index 1e93136d..6322ca7b 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.3.3 + talker_bloc_logger: ^2.4.0 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index a51f0645..d2f3d155 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 2.3.3 +version: 2.4.0 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_dio_logger/CHANGELOG.md b/packages/talker_dio_logger/CHANGELOG.md index 6392e2a1..4f0842de 100644 --- a/packages/talker_dio_logger/CHANGELOG.md +++ b/packages/talker_dio_logger/CHANGELOG.md @@ -1,3 +1,11 @@ +# 2.4.0 +- Update **talker** version to 3.2.0 +- Add ability to setup custom history implementation +- Add **abstract class TalkerHistory** +- Add **DefaultTalkerHistory** implementation with basic (previous) functionality by default + +Thanks to [Ppito](https://github.com/Ppito) + ## 2.3.4 - Update **talker** version to 3.1.7 diff --git a/packages/talker_dio_logger/README.md b/packages/talker_dio_logger/README.md index ac27e79b..34ae7d55 100644 --- a/packages/talker_dio_logger/README.md +++ b/packages/talker_dio_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.3.4 + talker_dio_logger: ^2.4.0 ``` ### Usage diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index 38244103..d796c83d 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -321,26 +321,26 @@ packages: dependency: transitive description: name: talker - sha256: "3cb5741a36032c64a16f06e715c7d74a65279f6e7e87b1f939ddfe027cb2fcfe" + sha256: "1e4351253560219859a8e757f5b8dbd266d5c289a50dd90d12da4f3041184392" url: "https://pub.dev" source: hosted - version: "3.1.7" + version: "3.2.0" talker_dio_logger: dependency: "direct main" description: name: talker_dio_logger - sha256: "5b8dd43e8d837b8e1d39d94157193ba691efe03ec009cd6f43c197bde6981ea5" + sha256: c298f5e3c007db67320d58da57af3c3aa4eee51eef43e5e1cbb3fc8114007a1e url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.0" talker_flutter: dependency: "direct main" description: name: talker_flutter - sha256: "7705d4cd65e700f4c5946b5891e67a4c230eb79cdd7e4db1bfe02bb62edc56c8" + sha256: "4ebc616d1b5fce7bbb394ec6950a0469308bd9444b68e24f738b3b278f6bb649" url: "https://pub.dev" source: hosted - version: "3.5.7" + version: "3.6.0" talker_logger: dependency: transitive description: diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 76ae9548..34b7aaeb 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -10,7 +10,7 @@ dependencies: flutter: sdk: flutter dio: ^5.0.0 - talker_dio_logger: ^2.3.1 + talker_dio_logger: ^2.4.0 talker_flutter: ^3.6.0 dev_dependencies: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index 2f9faebe..e61acb9f 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_dio_logger description: Lightweight and customizable dio http client logger on talker base -version: 2.3.4 +version: 2.4.0 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker From c006c09d445df11b3c294b7763294a5a9dfdff31 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Wed, 3 Jan 2024 21:44:09 +0500 Subject: [PATCH 34/66] Load lock packages --- examples/shop_app_example/pubspec.lock | 10 +++++----- packages/talker_flutter/example/pubspec.lock | 6 +++--- packages/talker_http_logger/pubspec.yaml | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/shop_app_example/pubspec.lock b/examples/shop_app_example/pubspec.lock index b8c0db14..3dab4a03 100644 --- a/examples/shop_app_example/pubspec.lock +++ b/examples/shop_app_example/pubspec.lock @@ -425,31 +425,31 @@ packages: dependency: transitive description: name: talker - sha256: a7ae7055459aa236de1e35c47f76f56455824df69e3d14c2e4f223a999d99826 + sha256: "1e4351253560219859a8e757f5b8dbd266d5c289a50dd90d12da4f3041184392" url: "https://pub.dev" source: hosted - version: "3.1.5" + version: "3.2.0" talker_bloc_logger: dependency: "direct main" description: path: "../../packages/talker_bloc_logger" relative: true source: path - version: "2.2.1" + version: "2.4.0" talker_dio_logger: dependency: "direct main" description: path: "../../packages/talker_dio_logger" relative: true source: path - version: "2.3.1" + version: "2.4.0" talker_flutter: dependency: "direct main" description: path: "../../packages/talker_flutter" relative: true source: path - version: "3.5.5" + version: "3.6.0" talker_logger: dependency: transitive description: diff --git a/packages/talker_flutter/example/pubspec.lock b/packages/talker_flutter/example/pubspec.lock index 31490cda..a5e8379d 100644 --- a/packages/talker_flutter/example/pubspec.lock +++ b/packages/talker_flutter/example/pubspec.lock @@ -313,17 +313,17 @@ packages: dependency: transitive description: name: talker - sha256: a7ae7055459aa236de1e35c47f76f56455824df69e3d14c2e4f223a999d99826 + sha256: "1e4351253560219859a8e757f5b8dbd266d5c289a50dd90d12da4f3041184392" url: "https://pub.dev" source: hosted - version: "3.1.5" + version: "3.2.0" talker_flutter: dependency: "direct main" description: path: ".." relative: true source: path - version: "3.5.5" + version: "3.6.0" talker_logger: dependency: transitive description: diff --git a/packages/talker_http_logger/pubspec.yaml b/packages/talker_http_logger/pubspec.yaml index 24901733..1fb51199 100644 --- a/packages/talker_http_logger/pubspec.yaml +++ b/packages/talker_http_logger/pubspec.yaml @@ -8,7 +8,7 @@ environment: dependencies: http_interceptor: ^2.0.0-beta.7 - talker: ^3.0.0 + talker: ^3.2.0 dev_dependencies: lints: ^2.0.0 From 9a07cb164616bd85df38c5a9c0d71844a37c42d5 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Wed, 3 Jan 2024 21:54:18 +0500 Subject: [PATCH 35/66] Fix history --- examples/shop_app_example/pubspec.lock | 7 +++---- packages/talker/lib/src/history.dart | 10 +++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/examples/shop_app_example/pubspec.lock b/examples/shop_app_example/pubspec.lock index 977d7817..bc80b9d3 100644 --- a/examples/shop_app_example/pubspec.lock +++ b/examples/shop_app_example/pubspec.lock @@ -424,10 +424,9 @@ packages: talker: dependency: "direct main" description: - name: talker - sha256: "1e4351253560219859a8e757f5b8dbd266d5c289a50dd90d12da4f3041184392" - url: "https://pub.dev" - source: hosted + path: "../../packages/talker" + relative: true + source: path version: "3.2.0" talker_bloc_logger: dependency: "direct main" diff --git a/packages/talker/lib/src/history.dart b/packages/talker/lib/src/history.dart index 490a3ca4..314c36b5 100644 --- a/packages/talker/lib/src/history.dart +++ b/packages/talker/lib/src/history.dart @@ -10,11 +10,11 @@ class DefaultTalkerHistory implements TalkerHistory { final TalkerSettings settings; /// Save locally - final _history = []; + final _history = []; /// Return list of history @override - List get history => _history; + List get history => _history; @override void clean() { @@ -25,7 +25,7 @@ class DefaultTalkerHistory implements TalkerHistory { } @override - void write(TalkerDataInterface data) { + void write(TalkerData data) { /// Check if you are authorized to write. if (settings.useHistory && settings.enabled) { /// Check if you have reached the max number of history and delete them. @@ -44,12 +44,12 @@ class DefaultTalkerHistory implements TalkerHistory { /// and logs [TalkerLog]s that have been sent abstract class TalkerHistory { /// Return List of [TalkerDataInterface] - List get history; + List get history; /// Called when [Talker] handle [cleanHistory]. /// For example, [TalkerView] handle the [Talker.cleanHistory] void clean(); /// Called when [Talker] handle an [TalkerDataInterface] log - void write(TalkerDataInterface data); + void write(TalkerData data); } From 170e875677afd9bf45ae7d865942280a19726f45 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Wed, 3 Jan 2024 22:32:45 +0500 Subject: [PATCH 36/66] Fix colors initialization --- .vscode/settings.json | 3 +++ packages/talker/example/talker_example.dart | 10 ++++------ packages/talker/lib/src/settings.dart | 8 +++++--- packages/talker/lib/src/talker.dart | 17 ++++++++++------- .../example/talker_logger_example.dart | 4 ++-- packages/talker_logger/lib/src/logger.dart | 4 ++-- packages/talker_logger/lib/src/settings.dart | 5 +++-- 7 files changed, 29 insertions(+), 22 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7afef72a..8d655179 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,4 +6,7 @@ "source.organizeImports": "explicit" }, "editor.formatOnSave": true, + "cSpell.words": [ + "endtemplate" + ], } \ No newline at end of file diff --git a/packages/talker/example/talker_example.dart b/packages/talker/example/talker_example.dart index 5c4a2833..0cb07673 100644 --- a/packages/talker/example/talker_example.dart +++ b/packages/talker/example/talker_example.dart @@ -2,12 +2,10 @@ import 'package:talker/talker.dart'; Future main() async { final talker = Talker( - logger: TalkerLogger( - settings: TalkerLoggerSettings( - colors: { - LogLevel.warning: AnsiPen()..xterm(204), - }, - ), + settings: TalkerSettings( + colors: { + TalkerLogType.error: AnsiPen()..cyan(), + }, ), ); diff --git a/packages/talker/lib/src/settings.dart b/packages/talker/lib/src/settings.dart index 078a7af0..46c5f5e6 100644 --- a/packages/talker/lib/src/settings.dart +++ b/packages/talker/lib/src/settings.dart @@ -43,11 +43,13 @@ class TalkerSettings { int maxHistoryItems = 1000, this.titles = _defaultTitles, Map? colors, - // bool writeToFile = false, }) : _useHistory = useHistory, _useConsoleLogs = useConsoleLogs, _maxHistoryItems = maxHistoryItems { - colors = colors ?? _defaultColors; + if (colors != null) { + _defaultColors.addAll(colors); + } + this.colors.addAll(_defaultColors); } // _writeToFile = writeToFile; @@ -122,7 +124,7 @@ class TalkerSettings { /// ``` /// /// By using the `colors` field, you can customize the text colors for specific log keys in the console. - late final Map colors; + final Map colors = _defaultColors; String getTitleByLogType(TalkerLogType key) { return titles[key] ?? 'log'; diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 54c83a46..8beda5ca 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -28,7 +28,7 @@ class Talker { /// to handle talker logs errors, /// /// You can set your own [TalkerHistory] [TalkerHistory] - /// to historize talker logs, + /// to store talker logs history, /// /// You can add your own observer to handle errors and logs in other place /// [TalkerObserver] [observer], @@ -52,9 +52,7 @@ class Talker { TalkerErrorHandler? errorHandler, TalkerHistory? history, ) { - if (filter != null) { - _filter = filter; - } + _filter = filter ?? _DefaultTalkerFilter(); this.settings = settings ?? TalkerSettings(); _initLogger(logger); _observer = observer ?? const _DefaultTalkerObserver(); @@ -85,7 +83,7 @@ class Talker { late TalkerSettings settings; late TalkerLogger _logger; late TalkerErrorHandler _errorHandler; - late TalkerFilter? _filter; + late TalkerFilter _filter; late TalkerObserver _observer; late TalkerHistory _history; @@ -111,7 +109,7 @@ class Talker { /// to handle talker logs errors, /// /// You can set your own [TalkerHistory] [TalkerHistory] - /// to historize talker logs, + /// to store talker logs history, /// /// You can add your own observer to handle errors and logs in other place /// [TalkerObserver] [observer], @@ -428,7 +426,7 @@ class Talker { // } bool _isApprovedByFilter(TalkerData data) { - final approved = _filter?.filter(data) ?? true; + final approved = _filter.filter(data); return approved; } } @@ -436,3 +434,8 @@ class Talker { class _DefaultTalkerObserver extends TalkerObserver { const _DefaultTalkerObserver(); } + +class _DefaultTalkerFilter extends TalkerFilter { + @override + bool filter(TalkerData item) => true; +} diff --git a/packages/talker_logger/example/talker_logger_example.dart b/packages/talker_logger/example/talker_logger_example.dart index 2014613c..da75ac43 100644 --- a/packages/talker_logger/example/talker_logger_example.dart +++ b/packages/talker_logger/example/talker_logger_example.dart @@ -6,11 +6,11 @@ void main() { // Create instance final logger = TalkerLogger( settings: TalkerLoggerSettings( - // You can setu custom log level to filter logs + // You can setup custom log level to filter logs level: LogLevel.debug, // Setup custom colors for log levels colors: { - LogLevel.warning: AnsiPen()..magenta(), + LogLevel.warning: AnsiPen()..cyan(), }, ), ); diff --git a/packages/talker_logger/lib/src/logger.dart b/packages/talker_logger/lib/src/logger.dart index 1a8a6d95..5ee0d4da 100644 --- a/packages/talker_logger/lib/src/logger.dart +++ b/packages/talker_logger/lib/src/logger.dart @@ -17,8 +17,8 @@ class TalkerLogger { /// Logger settings late final TalkerLoggerSettings settings; - /// You can setup differen formatter [ExtendedLoggerFormatter, ColoredLoggerFormatter] - /// Or your own fuly customized formatter with extends [LoggerFormatter] + /// You can setup different formatter [ExtendedLoggerFormatter, ColoredLoggerFormatter] + /// Or your own fully customized formatter with extends [LoggerFormatter] final LoggerFormatter formatter; late final void Function(String message) _output; diff --git a/packages/talker_logger/lib/src/settings.dart b/packages/talker_logger/lib/src/settings.dart index 97a58552..03e1c5eb 100644 --- a/packages/talker_logger/lib/src/settings.dart +++ b/packages/talker_logger/lib/src/settings.dart @@ -19,10 +19,10 @@ class TalkerLoggerSettings { this.maxLineWidth = 110, this.enableColors = true, }) { - this.colors = _defaultColors; if (colors != null) { _defaultColors.addAll(colors); } + this.colors.addAll(_defaultColors); } /// Field to setup custom log colors @@ -38,7 +38,8 @@ class TalkerLoggerSettings { /// ), /// ); /// ``` - late final Map colors; + + final Map colors = {}; /// Title of default log without [LogLevel] final String defaultTitle; From af3049cfa0ec98ea793a1cdbe60448b1c33f63d2 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Wed, 3 Jan 2024 22:48:13 +0500 Subject: [PATCH 37/66] Update settings.dart --- packages/talker_logger/lib/src/settings.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/talker_logger/lib/src/settings.dart b/packages/talker_logger/lib/src/settings.dart index 03e1c5eb..6639bc21 100644 --- a/packages/talker_logger/lib/src/settings.dart +++ b/packages/talker_logger/lib/src/settings.dart @@ -38,8 +38,7 @@ class TalkerLoggerSettings { /// ), /// ); /// ``` - - final Map colors = {}; + final Map colors = _defaultColors; /// Title of default log without [LogLevel] final String defaultTitle; From 51807a306f4df9ea10628e20e161fa5eb5480e8f Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Wed, 3 Jan 2024 23:39:51 +0500 Subject: [PATCH 38/66] Fix titles and colors --- examples/shop_app_example/lib/main.dart | 12 +++- .../talker/lib/src/models/talker_data.dart | 3 +- packages/talker/lib/src/settings.dart | 44 +++++++++---- packages/talker/lib/src/talker.dart | 11 ++-- packages/talker/lib/src/talker_key.dart | 16 +++-- .../talker/lib/src/well_known_titles.dart | 39 ----------- packages/talker/lib/talker.dart | 1 - .../talker_bloc_logger/lib/bloc_logs.dart | 19 +----- .../src/ui/talker_monitor/talker_monitor.dart | 2 +- .../lib/src/ui/talker_view.dart | 9 +-- .../lib/src/ui/theme/default_theme.dart | 4 +- .../lib/src/ui/widgets/data_card.dart | 64 ++++++++++++------- .../src/ui/widgets/talker_view_appbar.dart | 21 +++--- 13 files changed, 123 insertions(+), 122 deletions(-) delete mode 100644 packages/talker/lib/src/well_known_titles.dart diff --git a/examples/shop_app_example/lib/main.dart b/examples/shop_app_example/lib/main.dart index 013060d2..b06d6378 100644 --- a/examples/shop_app_example/lib/main.dart +++ b/examples/shop_app_example/lib/main.dart @@ -19,17 +19,23 @@ import 'firebase_options.dart'; void main() { runZonedGuarded(() async { WidgetsFlutterBinding.ensureInitialized(); - await _initFirease(); + await _initFirebase(); _initTalker(); _registerRepositories(); - Bloc.observer = TalkerBlocObserver(talker: GetIt.instance()); + Bloc.observer = TalkerBlocObserver( + talker: GetIt.instance(), + settings: const TalkerBlocLoggerSettings( + printCreations: true, + printClosings: true, + ), + ); runApp(const MyApp()); }, (Object error, StackTrace stack) { GetIt.instance().handle(error, stack, 'Uncaught app exception'); }); } -Future _initFirease() async { +Future _initFirebase() async { if (kIsWeb) { await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, diff --git a/packages/talker/lib/src/models/talker_data.dart b/packages/talker/lib/src/models/talker_data.dart index a6aa5323..45600c44 100644 --- a/packages/talker/lib/src/models/talker_data.dart +++ b/packages/talker/lib/src/models/talker_data.dart @@ -1,4 +1,3 @@ -import 'package:talker/src/utils/utils.dart'; import 'package:talker/talker.dart'; /// Base [Talker] Data transfer object @@ -59,7 +58,7 @@ class TalkerData { DateTime get time => _time; /// [AnsiPen?] [pen] - sets your own log color for console - AnsiPen? pen; + final AnsiPen? pen; /// {@template talker_data_generateTextMessage} /// Internal method that generates diff --git a/packages/talker/lib/src/settings.dart b/packages/talker/lib/src/settings.dart index 46c5f5e6..0ba94640 100644 --- a/packages/talker/lib/src/settings.dart +++ b/packages/talker/lib/src/settings.dart @@ -1,35 +1,53 @@ import 'package:talker/talker.dart'; const _defaultTitles = { + /// Base logs section + TalkerLogType.critical: 'critical', + TalkerLogType.warning: 'warning', + TalkerLogType.verbose: 'verbose', + TalkerLogType.info: 'info', + TalkerLogType.debug: 'debug', TalkerLogType.error: 'error', TalkerLogType.exception: 'exception', + + /// Http section TalkerLogType.httpError: 'http-error', TalkerLogType.httpRequest: 'http-request', TalkerLogType.httpResponse: 'http-response', + + /// Bloc section TalkerLogType.blocEvent: 'bloc-event', TalkerLogType.blocTransition: 'bloc-transition', + TalkerLogType.blocCreate: 'bloc-create', + TalkerLogType.blocClose: 'bloc-close', + + /// Flutter section TalkerLogType.route: 'route', - TalkerLogType.critical: 'critical', - TalkerLogType.warning: 'warning', - TalkerLogType.verbose: 'verbose', - TalkerLogType.info: 'info', - TalkerLogType.debug: 'debug', }; final _defaultColors = { + /// Base logs section + TalkerLogType.critical: AnsiPen()..red(), + TalkerLogType.warning: AnsiPen()..yellow(), + TalkerLogType.verbose: AnsiPen()..gray(), + TalkerLogType.info: AnsiPen()..blue(), + TalkerLogType.debug: AnsiPen()..gray(), TalkerLogType.error: AnsiPen()..red(), TalkerLogType.exception: AnsiPen()..red(), + + /// Http section TalkerLogType.httpError: AnsiPen()..red(), TalkerLogType.httpRequest: AnsiPen()..xterm(219), TalkerLogType.httpResponse: AnsiPen()..xterm(46), + + /// Bloc section TalkerLogType.blocEvent: AnsiPen()..xterm(51), TalkerLogType.blocTransition: AnsiPen()..xterm(49), + TalkerLogType.blocCreate: AnsiPen()..xterm(35), + TalkerLogType.blocClose: AnsiPen()..xterm(198), + + /// Flutter section TalkerLogType.route: AnsiPen()..xterm(135), - TalkerLogType.critical: AnsiPen()..red(), - TalkerLogType.warning: AnsiPen()..yellow(), - TalkerLogType.verbose: AnsiPen()..gray(), - TalkerLogType.info: AnsiPen()..blue(), - TalkerLogType.debug: AnsiPen()..gray(), }; /// {@template talker_settings} @@ -127,11 +145,11 @@ class TalkerSettings { final Map colors = _defaultColors; String getTitleByLogType(TalkerLogType key) { - return titles[key] ?? 'log'; + return titles[key] ?? key.key; } - AnsiPen getAnsiPenByLogType(TalkerLogType key) { - return colors[key] ?? (AnsiPen()..gray()); + AnsiPen getAnsiPenByLogType(TalkerLogType key, {TalkerData? logData}) { + return colors[key] ?? logData?.pen ?? (AnsiPen()..gray()); } TalkerSettings copyWith({ diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 8beda5ca..68ac8f37 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -357,7 +357,7 @@ class Talker { LogLevel logLevel, { AnsiPen? pen, }) { - final key = TalkerLogTypeExt.fromLogLevel(logLevel); + final key = TalkerLogType.fromLogLevel(logLevel); final data = TalkerLog( message?.toString() ?? '', title: settings.getTitleByLogType(key), @@ -397,10 +397,13 @@ class Talker { return; } final key = data.key; + + AnsiPen? customPen; + if (key != null) { - final type = TalkerLogTypeExt.fromKey(key); + final type = TalkerLogType.fromKey(key); data.title = settings.getTitleByLogType(type); - data.pen = settings.getAnsiPenByLogType(type); + customPen = settings.getAnsiPenByLogType(type); } _observer.onLog(data); _talkerStreamController.add(data); @@ -409,7 +412,7 @@ class Talker { _logger.log( data.generateTextMessage(), level: logLevel ?? data.logLevel, - pen: data.pen, + pen: data.pen ?? customPen, ); } } diff --git a/packages/talker/lib/src/talker_key.dart b/packages/talker/lib/src/talker_key.dart index cbe0f335..80e8a0f5 100644 --- a/packages/talker/lib/src/talker_key.dart +++ b/packages/talker/lib/src/talker_key.dart @@ -1,28 +1,32 @@ import 'package:talker/talker.dart'; enum TalkerLogType { - /// Logger level + /// Base logs section error('error'), critical('critical'), info('info'), debug('debug'), verbose('verbose'), warning('warning'), - - /// talker level exception('exception'), + + /// Http section httpError('http-error'), httpRequest('http-request'), httpResponse('http-response'), + + /// Bloc section blocEvent('bloc-event'), blocTransition('bloc-transition'), + blocClose('bloc-close'), + blocCreate('bloc-create'), + + /// Flutter section route('route'); const TalkerLogType(this.key); final String key; -} -extension TalkerLogTypeExt on TalkerLogType { static TalkerLogType fromLogLevel(LogLevel logLevel) { return TalkerLogType.values.firstWhere((e) => e.logLevel == logLevel); } @@ -30,7 +34,9 @@ extension TalkerLogTypeExt on TalkerLogType { static TalkerLogType fromKey(String key) { return TalkerLogType.values.firstWhere((e) => e.key == key); } +} +extension TalkerLogTypeExt on TalkerLogType { /// Mapping [TalkerLogType] into [LogLevel] LogLevel get logLevel { switch (this) { diff --git a/packages/talker/lib/src/well_known_titles.dart b/packages/talker/lib/src/well_known_titles.dart deleted file mode 100644 index 37d12713..00000000 --- a/packages/talker/lib/src/well_known_titles.dart +++ /dev/null @@ -1,39 +0,0 @@ -enum WellKnownTitles { - error, - exception, - httpError, - httpRequest, - httpResponse, - blocEvent, - blocTransition, - blocCreate, - blocClose, - route, -} - -extension WellKnownTitlesExt on WellKnownTitles { - String get title { - switch (this) { - case WellKnownTitles.error: - return 'ERROR'; - case WellKnownTitles.exception: - return 'EXCEPTION'; - case WellKnownTitles.httpError: - return 'http-error'; - case WellKnownTitles.httpRequest: - return 'http-request'; - case WellKnownTitles.httpResponse: - return 'http-response'; - case WellKnownTitles.blocEvent: - return 'bloc-event'; - case WellKnownTitles.blocTransition: - return 'bloc-transition'; - case WellKnownTitles.blocCreate: - return 'bloc-create'; - case WellKnownTitles.blocClose: - return 'bloc-close'; - case WellKnownTitles.route: - return 'ROUTE'; - } - } -} diff --git a/packages/talker/lib/talker.dart b/packages/talker/lib/talker.dart index edf4de09..6732045b 100644 --- a/packages/talker/lib/talker.dart +++ b/packages/talker/lib/talker.dart @@ -9,4 +9,3 @@ export 'src/settings.dart'; export 'src/talker.dart'; export 'src/talker_key.dart'; export 'src/utils/utils.dart'; -export 'src/well_known_titles.dart'; diff --git a/packages/talker_bloc_logger/lib/bloc_logs.dart b/packages/talker_bloc_logger/lib/bloc_logs.dart index da3d6316..28964ade 100644 --- a/packages/talker_bloc_logger/lib/bloc_logs.dart +++ b/packages/talker_bloc_logger/lib/bloc_logs.dart @@ -16,9 +16,6 @@ class BlocEventLog extends TalkerLog { final Object? event; final TalkerBlocLoggerSettings settings; - @override - AnsiPen get pen => AnsiPen()..xterm(51); - @override String get key => TalkerLogType.blocEvent.key; @@ -47,9 +44,6 @@ class BlocStateLog extends TalkerLog { final Transition transition; final TalkerBlocLoggerSettings settings; - @override - AnsiPen get pen => AnsiPen()..xterm(49); - @override String get key => TalkerLogType.blocTransition.key; @@ -82,9 +76,6 @@ class BlocChangeLog extends TalkerLog { final Change change; final TalkerBlocLoggerSettings settings; - @override - AnsiPen get pen => AnsiPen()..xterm(49); - @override String get key => TalkerLogType.blocTransition.key; @@ -114,10 +105,7 @@ class BlocCreateLog extends TalkerLog { final BlocBase bloc; @override - AnsiPen get pen => AnsiPen()..xterm(8); - - @override - String get title => WellKnownTitles.blocCreate.title; + String? get key => TalkerLogType.blocCreate.key; @override String generateTextMessage() { @@ -141,10 +129,7 @@ class BlocCloseLog extends TalkerLog { final BlocBase bloc; @override - AnsiPen get pen => AnsiPen()..xterm(13); - - @override - String get title => WellKnownTitles.blocClose.title; + String? get key => TalkerLogType.blocClose.key; @override String generateTextMessage() { diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart index 6d779e92..83919be2 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart @@ -140,7 +140,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: warnings, title: 'Warnings', - color: waringinColor, + color: warningColor, icon: Icons.warning_amber_rounded, subtitle: 'Application has ${warnings.length} warnings', onTap: () => diff --git a/packages/talker_flutter/lib/src/ui/talker_view.dart b/packages/talker_flutter/lib/src/ui/talker_view.dart index 659520df..9626b3ae 100644 --- a/packages/talker_flutter/lib/src/ui/talker_view.dart +++ b/packages/talker_flutter/lib/src/ui/talker_view.dart @@ -46,7 +46,7 @@ class TalkerView extends StatefulWidget { } class _TalkerViewState extends State { - final _titilesController = GroupButtonController(); + final _titlesController = GroupButtonController(); late final _controller = widget.controller ?? TalkerViewController(); @override @@ -61,7 +61,8 @@ class _TalkerViewState extends State { final filtredElements = data.where((e) => _controller.filter.filter(e)).toList(); final titles = data.map((e) => e.title).toList(); - final unicTitles = titles.toSet().toList(); + final uniqTitles = titles.toSet().toList(); + return CustomScrollView( controller: widget.scrollController, physics: const BouncingScrollPhysics(), @@ -71,9 +72,9 @@ class _TalkerViewState extends State { leading: widget.appBarLeading, talker: widget.talker, talkerTheme: talkerTheme, - titilesController: _titilesController, + titlesController: _titlesController, titles: titles, - unicTitles: unicTitles, + uniqTitles: uniqTitles, controller: _controller, onMonitorTap: () => _openTalkerMonitor(context), onActionsTap: () => _showActionsBottomSheet(context), diff --git a/packages/talker_flutter/lib/src/ui/theme/default_theme.dart b/packages/talker_flutter/lib/src/ui/theme/default_theme.dart index 166b4166..c785faa4 100644 --- a/packages/talker_flutter/lib/src/ui/theme/default_theme.dart +++ b/packages/talker_flutter/lib/src/ui/theme/default_theme.dart @@ -8,9 +8,9 @@ const blocTransitionColor = Color(0xFF56FEA8); const blocEventColor = Color(0xFF63FAFE); const routeLogColor = Color(0xFFAF5FFF); -final critcalErrorColor = Colors.red[800]!; +final criticalErrorColor = Colors.red[800]!; final errorColor = Colors.red[400]!; -final waringinColor = Colors.orange[800]!; +final warningColor = Colors.orange[800]!; final verboseColor = Colors.grey[400]!; final infoColor = Colors.blue[400]!; final goodColor = Colors.green[400]!; diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index 1045213f..9c418bad 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -142,28 +142,46 @@ class TalkerDataCard extends StatelessWidget { } Color get _color { - final colorFromAnsi = _getColorFromAnsi(); - if (colorFromAnsi != null) return colorFromAnsi; + // final colorFromAnsi = _getColorFromAnsi(); + // if (colorFromAnsi != null) return colorFromAnsi; - if (data.key == TalkerLogType.httpError.key) { - return errorColor; - } - if (data.key == TalkerLogType.httpResponse.key) { - return httpResponseLogColor; - } - if (data.title == TalkerLogType.httpRequest.title) { - return httpRequestLogColor; - } - if (data.title == TalkerLogType.route.title) { - return routeLogColor; - } - if (data.title == TalkerLogType.blocTransition.title) { - return blocTransitionColor; - } - if (data.title == TalkerLogType.blocEvent.title) { - return blocEventColor; + final key = data.key; + + if (key == null) return debugColor; + final type = TalkerLogType.fromKey(key); + + switch (type) { + case TalkerLogType.error: + return errorColor; + case TalkerLogType.critical: + return criticalErrorColor; + case TalkerLogType.info: + return infoColor; + case TalkerLogType.debug: + return debugColor; + case TalkerLogType.verbose: + return verboseColor; + case TalkerLogType.warning: + return warningColor; + case TalkerLogType.exception: + return errorColor; + case TalkerLogType.httpError: + return errorColor; + case TalkerLogType.httpRequest: + return httpRequestLogColor; + case TalkerLogType.httpResponse: + return httpResponseLogColor; + case TalkerLogType.blocEvent: + return blocEventColor; + case TalkerLogType.blocTransition: + return blocTransitionColor; + case TalkerLogType.route: + return routeLogColor; + case TalkerLogType.blocClose: + return debugColor; + case TalkerLogType.blocCreate: + return debugColor; } - return debugColor; } Color? _getColorFromAnsi() { @@ -182,9 +200,9 @@ class TalkerDataCard extends StatelessWidget { return null; } final isHttpLog = [ - TalkerLogType.httpError.title, - TalkerLogType.httpRequest.title, - TalkerLogType.httpResponse.title, + TalkerLogType.httpError.key, + TalkerLogType.httpRequest.key, + TalkerLogType.httpResponse.key, ].contains(data.title); if (isHttpLog) { return data.generateTextMessage(); diff --git a/packages/talker_flutter/lib/src/ui/widgets/talker_view_appbar.dart b/packages/talker_flutter/lib/src/ui/widgets/talker_view_appbar.dart index ad99a5a0..5b2fed41 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/talker_view_appbar.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/talker_view_appbar.dart @@ -10,10 +10,10 @@ class TalkerViewAppBar extends StatelessWidget { required this.leading, required this.talker, required this.talkerTheme, - required this.titilesController, + required this.titlesController, required this.controller, required this.titles, - required this.unicTitles, + required this.uniqTitles, required this.onMonitorTap, required this.onSettingsTap, required this.onActionsTap, @@ -25,11 +25,11 @@ class TalkerViewAppBar extends StatelessWidget { final Talker talker; final TalkerScreenTheme talkerTheme; - final GroupButtonController titilesController; + final GroupButtonController titlesController; final TalkerViewController controller; - final List titles; - final List unicTitles; + final List titles; + final List uniqTitles; final VoidCallback onMonitorTap; final VoidCallback onSettingsTap; @@ -90,7 +90,7 @@ class TalkerViewAppBar extends StatelessWidget { scrollDirection: Axis.horizontal, children: [ GroupButton( - controller: titilesController, + controller: titlesController, isRadio: false, buttonBuilder: (selected, value, context) { final count = titles.where((e) => e == value).length; @@ -124,8 +124,8 @@ class TalkerViewAppBar extends StatelessWidget { ); }, onSelected: (_, i, selected) => - onToggleTitle(unicTitles[i], selected), - buttons: unicTitles, + _onToggle(uniqTitles[i], selected), + buttons: uniqTitles, ), ], ), @@ -142,6 +142,11 @@ class TalkerViewAppBar extends StatelessWidget { ), ); } + + void _onToggle(String? title, bool selected) { + if (title == null) return; + onToggleTitle(title, selected); + } } class _SearchTextField extends StatelessWidget { From a52b46ad07b8e8af4285a40fcae3b173cd373999 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Wed, 3 Jan 2024 23:46:52 +0500 Subject: [PATCH 39/66] Add new bloc events colors --- packages/talker/lib/src/talker.dart | 16 +++++++++------- .../lib/src/ui/theme/default_theme.dart | 4 ++++ .../lib/src/ui/widgets/data_card.dart | 2 +- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/talker/lib/src/talker.dart b/packages/talker/lib/src/talker.dart index 68ac8f37..d148a6a5 100644 --- a/packages/talker/lib/src/talker.dart +++ b/packages/talker/lib/src/talker.dart @@ -357,11 +357,12 @@ class Talker { LogLevel logLevel, { AnsiPen? pen, }) { - final key = TalkerLogType.fromLogLevel(logLevel); + final type = TalkerLogType.fromLogLevel(logLevel); final data = TalkerLog( + key: type.key, message?.toString() ?? '', - title: settings.getTitleByLogType(key), - pen: settings.getAnsiPenByLogType(key), + title: settings.getTitleByLogType(type), + pen: settings.getAnsiPenByLogType(type), logLevel: logLevel, ); _handleLogData(data); @@ -392,19 +393,20 @@ class Talker { if (!settings.enabled) { return; } + final isApproved = _isApprovedByFilter(data); if (!isApproved) { return; } - final key = data.key; + final typeKey = data.key; AnsiPen? customPen; - if (key != null) { - final type = TalkerLogType.fromKey(key); + if (typeKey != null) { + final type = TalkerLogType.fromKey(typeKey); data.title = settings.getTitleByLogType(type); customPen = settings.getAnsiPenByLogType(type); - } + } else {} _observer.onLog(data); _talkerStreamController.add(data); _handleForOutputs(data); diff --git a/packages/talker_flutter/lib/src/ui/theme/default_theme.dart b/packages/talker_flutter/lib/src/ui/theme/default_theme.dart index c785faa4..e75d7635 100644 --- a/packages/talker_flutter/lib/src/ui/theme/default_theme.dart +++ b/packages/talker_flutter/lib/src/ui/theme/default_theme.dart @@ -4,8 +4,12 @@ const defaultCardBackgroundColor = Color.fromARGB(255, 49, 49, 49); final stackTraceBackground = Colors.grey[900]; const httpResponseLogColor = Color(0xFF26FF3C); const httpRequestLogColor = Color(0xFFF602C1); + const blocTransitionColor = Color(0xFF56FEA8); const blocEventColor = Color(0xFF63FAFE); +const blocCreatedColor = Color(0xFF2B8F33); +const blocClosedColor = Color(0xFFFF005F); + const routeLogColor = Color(0xFFAF5FFF); final criticalErrorColor = Colors.red[800]!; diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index 9c418bad..41359a8f 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -180,7 +180,7 @@ class TalkerDataCard extends StatelessWidget { case TalkerLogType.blocClose: return debugColor; case TalkerLogType.blocCreate: - return debugColor; + return blocClosedColor; } } From f23164414fc72443c078a27b22aac8ad2accdabc Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Wed, 3 Jan 2024 23:47:53 +0500 Subject: [PATCH 40/66] Tmp delete mason --- mason_bricks/talker/CHANGELOG.md | 7 --- mason_bricks/talker/LICENSE | 21 -------- mason_bricks/talker/README.md | 52 ------------------- .../talker/__brick__/talker/talker.{{lang}} | 18 ------- mason_bricks/talker/brick.yaml | 41 --------------- mason_bricks/talker/hooks/.gitignore | 4 -- mason_bricks/talker/hooks/pre_gen.dart | 14 ----- mason_bricks/talker/hooks/pubspec.yaml | 8 --- 8 files changed, 165 deletions(-) delete mode 100644 mason_bricks/talker/CHANGELOG.md delete mode 100644 mason_bricks/talker/LICENSE delete mode 100644 mason_bricks/talker/README.md delete mode 100644 mason_bricks/talker/__brick__/talker/talker.{{lang}} delete mode 100644 mason_bricks/talker/brick.yaml delete mode 100644 mason_bricks/talker/hooks/.gitignore delete mode 100644 mason_bricks/talker/hooks/pre_gen.dart delete mode 100644 mason_bricks/talker/hooks/pubspec.yaml diff --git a/mason_bricks/talker/CHANGELOG.md b/mason_bricks/talker/CHANGELOG.md deleted file mode 100644 index b6c22e75..00000000 --- a/mason_bricks/talker/CHANGELOG.md +++ /dev/null @@ -1,7 +0,0 @@ -# 0.1.0+2 -- Update README.md links - -# 0.1.0+1 - -- Initial release -- Add basic talker_flutter initialization brick functionality diff --git a/mason_bricks/talker/LICENSE b/mason_bricks/talker/LICENSE deleted file mode 100644 index 6a4fd373..00000000 --- a/mason_bricks/talker/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Stanislav Ilin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/mason_bricks/talker/README.md b/mason_bricks/talker/README.md deleted file mode 100644 index 5cdcfd5d..00000000 --- a/mason_bricks/talker/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# talker - -A brick to make [talker](https://github.com/Frezyx/talker) (logger / error handling package) initialization by the simplest way - -[![Powered by Mason](https://img.shields.io/endpoint?url=https%3A%2F%2Ftinyurl.com%2Fmason-badge)](https://github.com/felangel/mason) - - -## How to use πŸš€ - -### Command Line - -``` -mason make talker -``` - -## Setup πŸ§‘β€πŸ’» - -Ensure you have the mason_cli installed. - -``` -# 🎯 Activate from https://pub.dev -dart pub global activate mason_cli -``` - -``` -# 🍺 Or install from https://brew.sh -brew tap felangel/mason -brew install mason -``` - -# Installation ☁️ -``` -# Install globally -mason add -g talker -``` - - -## Variables ✨ - -| Variable | Description | Default | Type | -| -------------- | ----------------------- | ------- | -------- | -| `use_history` | Use logs history | true | `boolean` | -| `use_console_logs` | Use console logs | true | `boolean` | -| `max_history_items` | Max history items(logs) count | 200 | `number` | -| `enable_colors` | Enable logs colors in console | true | `boolean` | -| `max_log_line_length` | Log line length | 110 | `number` | -| `log_line_sybol` | Log line symbol | '-' | `string` | - - -## Start with mason - -Documentation link https://docs.brickhub.dev diff --git a/mason_bricks/talker/__brick__/talker/talker.{{lang}} b/mason_bricks/talker/__brick__/talker/talker.{{lang}} deleted file mode 100644 index 31332e91..00000000 --- a/mason_bricks/talker/__brick__/talker/talker.{{lang}} +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:talker_flutter/talker_flutter.dart'; - -Talker setupTalker() { - return TalkerFlutter.init( - settings: TalkerSettings( - useHistory: {{use_history}}, - useConsoleLogs: {{use_console_logs}}, - maxHistoryItems: {{max_history_items}}, - ), - logger: TalkerLogger( - settings: TalkerLoggerSettings( - enableColors: {{enable_colors}}, - maxLineWidth: {{max_log_line_length}}, - logLineSybol: '{{log_line_sybol}}' - ) - ) - ); -} diff --git a/mason_bricks/talker/brick.yaml b/mason_bricks/talker/brick.yaml deleted file mode 100644 index 6109bdaa..00000000 --- a/mason_bricks/talker/brick.yaml +++ /dev/null @@ -1,41 +0,0 @@ -name: talker -description: A brick to make talker (logger / error handling package) initialization by the simplest way -version: 0.1.0+2 -repository: https://github.com/Frezyx/talker/mason_briks/talker/ - -environment: - mason: ">=0.1.0-dev.50 <0.1.0" - -vars: - # TalkerSettings - use_history: - type: boolean - description: TalkerSettings.useHistory - default: true - prompt: Use logs history ? - use_console_logs: - type: boolean - description: TalkerSettings.useConsoleLogs - default: true - prompt: Use console logs ? - max_history_items: - type: number - description: TalkerSettings.maxHistoryItems - default: 200 - prompt: Max history items(logs) count ? - # TalkerLoggerSettings - enable_colors: - type: boolean - description: TalkerLoggerSettings.enableColors - default: true - prompt: Enable logs colors in console ? - max_log_line_length: - type: number - description: TalkerLoggerSettings.maxLineWidth - default: 110 - prompt: Log line length - log_line_sybol: - type: string - description: TalkerLoggerSettings.lineSymbol - default: '-' - prompt: Log line symbol diff --git a/mason_bricks/talker/hooks/.gitignore b/mason_bricks/talker/hooks/.gitignore deleted file mode 100644 index 7b37acf4..00000000 --- a/mason_bricks/talker/hooks/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.dart_tool -.packages -pubspec.lock -build diff --git a/mason_bricks/talker/hooks/pre_gen.dart b/mason_bricks/talker/hooks/pre_gen.dart deleted file mode 100644 index 647e2cd1..00000000 --- a/mason_bricks/talker/hooks/pre_gen.dart +++ /dev/null @@ -1,14 +0,0 @@ -import 'package:mason/mason.dart'; -import 'package:talker/talker.dart'; - -void run(HookContext context) { - context.vars['lang'] = 'dart'; - // var talkerSettings = TalkerSettings(); - - // final useDefaultSettings = context.vars['default_settings']; - // if (!useDefaultSettings) { - // context.vars['use_history'] = talkerSettings.useHistory; - // context.vars['use_console_logs'] = talkerSettings.useConsoleLogs; - // context.vars['max_history_items'] = talkerSettings.maxHistoryItems; - // } -} diff --git a/mason_bricks/talker/hooks/pubspec.yaml b/mason_bricks/talker/hooks/pubspec.yaml deleted file mode 100644 index 9e7e8651..00000000 --- a/mason_bricks/talker/hooks/pubspec.yaml +++ /dev/null @@ -1,8 +0,0 @@ -name: talker_hooks - -environment: - sdk: ">=2.12.0 <3.0.0" - -dependencies: - mason: ">=0.1.0-dev.50 <0.1.0" - talker: ^3.1.1 From 16c7f4c413c81891b95ba075e803fe526d719d6f Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 4 Jan 2024 19:42:13 +0500 Subject: [PATCH 41/66] Update talker flutter actions UI --- examples/shop_app_example/ios/Podfile.lock | 4 +- .../talker_actions_bottom_sheet.dart | 75 ++++++++++++------- .../lib/src/ui/widgets/bottom_sheet.dart | 12 +-- packages/talker_logger/lib/src/logger.dart | 5 +- 4 files changed, 62 insertions(+), 34 deletions(-) diff --git a/examples/shop_app_example/ios/Podfile.lock b/examples/shop_app_example/ios/Podfile.lock index 32d22f91..ad0ba10b 100644 --- a/examples/shop_app_example/ios/Podfile.lock +++ b/examples/shop_app_example/ios/Podfile.lock @@ -144,9 +144,9 @@ SPEC CHECKSUMS: nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef - share_plus: 599aa54e4ea31d4b4c0e9c911bcc26c55e791028 + share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5 url_launcher_ios: ae1517e5e344f5544fb090b079e11f399dfbe4d2 PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 -COCOAPODS: 1.12.1 +COCOAPODS: 1.14.3 diff --git a/packages/talker_flutter/lib/src/ui/talker_actions/talker_actions_bottom_sheet.dart b/packages/talker_flutter/lib/src/ui/talker_actions/talker_actions_bottom_sheet.dart index 88a97209..aa263945 100644 --- a/packages/talker_flutter/lib/src/ui/talker_actions/talker_actions_bottom_sheet.dart +++ b/packages/talker_flutter/lib/src/ui/talker_actions/talker_actions_bottom_sheet.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:talker_flutter/src/ui/theme/default_theme.dart'; import 'package:talker_flutter/src/ui/widgets/bottom_sheet.dart'; import 'package:talker_flutter/talker_flutter.dart'; @@ -17,18 +18,28 @@ class TalkerActionsBottomSheet extends StatelessWidget { return BaseBottomSheet( title: 'Talker Actions', talkerScreenTheme: talkerScreenTheme, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - ...actions - .map( - (e) => _ActionTile( - talkerScreenTheme: talkerScreenTheme, - action: e, - ), - ) - .toList(), - ], + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 16).copyWith(bottom: 16), + decoration: BoxDecoration( + color: defaultCardBackgroundColor, + borderRadius: BorderRadius.circular(16), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ...actions + .asMap() + .entries + .map( + (e) => _ActionTile( + talkerScreenTheme: talkerScreenTheme, + action: e.value, + showDivider: e.key != actions.length - 1, + ), + ) + .toList(), + ], + ), ), ); } @@ -39,29 +50,43 @@ class _ActionTile extends StatelessWidget { Key? key, required this.action, required this.talkerScreenTheme, + this.showDivider = true, }) : super(key: key); final TalkerActionItem action; final TalkerScreenTheme talkerScreenTheme; + final bool showDivider; @override Widget build(BuildContext context) { - return ListTile( - onTap: () { - Navigator.pop(context); - action.onTap(); - }, - title: Text( - action.title, - style: TextStyle( - color: talkerScreenTheme.textColor, - fontSize: 20, - fontWeight: FontWeight.w500, + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + ListTile( + onTap: () => _onTap(context), + title: Text( + action.title, + style: TextStyle( + color: talkerScreenTheme.textColor, + fontSize: 20, + fontWeight: FontWeight.w500, + ), + ), + leading: Icon(action.icon, color: talkerScreenTheme.textColor), ), - ), - leading: Icon(action.icon, color: talkerScreenTheme.textColor), + if (showDivider) + Divider( + color: talkerScreenTheme.textColor.withOpacity(0.2), + height: 1, + ), + ], ); } + + void _onTap(BuildContext context) { + Navigator.pop(context); + action.onTap(); + } } class TalkerActionItem { diff --git a/packages/talker_flutter/lib/src/ui/widgets/bottom_sheet.dart b/packages/talker_flutter/lib/src/ui/widgets/bottom_sheet.dart index 1a4fef1d..e32a6f8a 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/bottom_sheet.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/bottom_sheet.dart @@ -55,12 +55,12 @@ class BaseBottomSheet extends StatelessWidget { ], ), ), - Divider( - color: talkerScreenTheme.textColor, - endIndent: 10, - indent: 10, - height: 1, - ), + // Divider( + // color: talkerScreenTheme.textColor, + // endIndent: 10, + // indent: 10, + // height: 1, + // ), child, ], ), diff --git a/packages/talker_logger/lib/src/logger.dart b/packages/talker_logger/lib/src/logger.dart index 5ee0d4da..0cc2ba36 100644 --- a/packages/talker_logger/lib/src/logger.dart +++ b/packages/talker_logger/lib/src/logger.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:talker_logger/talker_logger.dart'; class TalkerLogger { @@ -9,7 +11,8 @@ class TalkerLogger { }) { this.settings = settings ?? TalkerLoggerSettings(); // ignore: avoid_print - _output = output ?? (String message) => message.split('\n').forEach(print); + _output = output ?? + (String message) => message.split('\n').forEach(stdout.writeln); _filter = filter ?? LogLevelFilter(this.settings.level); ansiColorDisabled = false; } From 1e0196b74985d7df3fab25e77055a0858a1feb93 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 4 Jan 2024 19:55:54 +0500 Subject: [PATCH 42/66] Publish talker v4.0.0-dev.1 --- README.md | 2 +- packages/talker/CHANGELOG.md | 4 ++++ packages/talker/pubspec.yaml | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/pubspec.yaml | 2 +- packages/talker_flutter/pubspec.yaml | 2 +- packages/talker_http_logger/pubspec.yaml | 2 +- 7 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6e18292a..56ca0005 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Follow these steps to the coolest experience in error handling ### Add dependency ```yaml dependencies: - talker: ^3.2.0 + talker: ^4.0.0-dev.1 ``` ### Easy to use diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index 89d31972..03b6aec6 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,3 +1,7 @@ +# 4.0.0-dev.1 +- First version with Logs keys implementation +- **BREAKING** TalkerDataInterface deleted + # 3.2.0 - Add ability to setup custom history implementation - Add **abstract class TalkerHistory** diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index e11127e0..9ec93ab3 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -1,6 +1,6 @@ name: talker description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.2.0 +version: 4.0.0-dev.1 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index d2f3d155..a3a8deff 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - talker: ^3.2.0 + talker: ^4.0.0-dev.1 bloc: ^8.1.1 meta: ^1.8.0 diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index e61acb9f..57552589 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -18,7 +18,7 @@ environment: dependencies: dio: ^5.2.0 - talker: ^3.2.0 + talker: ^4.0.0-dev.1 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index f4c5be19..937448ba 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -20,7 +20,7 @@ dependencies: flutter: sdk: flutter - talker: ^3.2.0 + talker: ^4.0.0-dev.1 group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.2.1 diff --git a/packages/talker_http_logger/pubspec.yaml b/packages/talker_http_logger/pubspec.yaml index 1fb51199..effc94ba 100644 --- a/packages/talker_http_logger/pubspec.yaml +++ b/packages/talker_http_logger/pubspec.yaml @@ -8,7 +8,7 @@ environment: dependencies: http_interceptor: ^2.0.0-beta.7 - talker: ^3.2.0 + talker: ^4.0.0-dev.1 dev_dependencies: lints: ^2.0.0 From 669db8d8a28bd0f65362322d9fc7cb306f517dd4 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 4 Jan 2024 20:00:25 +0500 Subject: [PATCH 43/66] Publish talker_flutter v 4.0.0-dev.1 --- README.md | 2 +- packages/talker/CHANGELOG.md | 1 + packages/talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_flutter/CHANGELOG.md | 6 ++++++ packages/talker_flutter/pubspec.yaml | 2 +- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 56ca0005..ecf7b997 100644 --- a/README.md +++ b/README.md @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^3.6.0 + talker_flutter: ^4.0.0-dev.1 ``` ### Setup diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index 03b6aec6..aff41d7d 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,6 +1,7 @@ # 4.0.0-dev.1 - First version with Logs keys implementation - **BREAKING** TalkerDataInterface deleted +- Add new colors customization # 3.2.0 - Add ability to setup custom history implementation diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 926ea939..d68018db 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -11,7 +11,7 @@ dependencies: sdk: flutter dio: ^5.0.0 talker_dio_logger: ^2.4.0 - talker_flutter: ^3.6.0 + talker_flutter: ^4.0.0-dev.1 dev_dependencies: flutter_test: diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index 13ee2548..5888249a 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,9 @@ +# 4.0.0-dev.1 +- First version with Logs keys implementation +- **BREAKING** TalkerDataInterface deleted +- Add new talker colors customization +- Talker Actions UI updated + # 3.6.0 - Add ability to setup custom history implementation - Add **abstract class TalkerHistory** diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 937448ba..187c9ce5 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 3.6.0 +version: 4.0.0-dev.1 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues From e179171eab8da1ee021ab15e77547a223daa06b6 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 4 Jan 2024 21:16:29 +0500 Subject: [PATCH 44/66] Publish other talker packages --- README.md | 4 ++-- packages/talker_bloc_logger/CHANGELOG.md | 5 +++++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 2 +- packages/talker_dio_logger/CHANGELOG.md | 5 +++++ packages/talker_dio_logger/README.md | 2 +- packages/talker_dio_logger/example/pubspec.lock | 8 ++++---- packages/talker_dio_logger/example/pubspec.yaml | 2 +- packages/talker_dio_logger/pubspec.yaml | 2 +- 9 files changed, 21 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ecf7b997..c4db0c1e 100644 --- a/README.md +++ b/README.md @@ -387,7 +387,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.4.0 + talker_dio_logger: ^4.0.0-dev.1 ``` ### Usage @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.4.0 + talker_bloc_logger: ^4.0.0-dev.1 ``` ### Usage diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index 1f329030..243c201e 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,8 @@ +# 4.0.0-dev.1 +- First version with Logs keys implementation +- **BREAKING** TalkerDataInterface deleted +- Add new talker colors customization + # 2.4.0 - Update **talker** version to 3.2.0 - Add ability to setup custom history implementation diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index 6322ca7b..f5610b26 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^2.4.0 + talker_bloc_logger: ^4.0.0-dev.1 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index a3a8deff..1cc99246 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 2.4.0 +version: 4.0.0-dev.1 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_dio_logger/CHANGELOG.md b/packages/talker_dio_logger/CHANGELOG.md index 4f0842de..6a497d7f 100644 --- a/packages/talker_dio_logger/CHANGELOG.md +++ b/packages/talker_dio_logger/CHANGELOG.md @@ -1,3 +1,8 @@ +# 4.0.0-dev.1 +- First version with Logs keys implementation +- **BREAKING** TalkerDataInterface deleted +- Add new talker colors customization + # 2.4.0 - Update **talker** version to 3.2.0 - Add ability to setup custom history implementation diff --git a/packages/talker_dio_logger/README.md b/packages/talker_dio_logger/README.md index 34ae7d55..f4d8dd08 100644 --- a/packages/talker_dio_logger/README.md +++ b/packages/talker_dio_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^2.4.0 + talker_dio_logger: ^4.0.0-dev.1 ``` ### Usage diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index 06d77db7..2b733b80 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -321,24 +321,24 @@ packages: dependency: transitive description: name: talker - sha256: "1e4351253560219859a8e757f5b8dbd266d5c289a50dd90d12da4f3041184392" + sha256: "263320fedb70d2b9a5eb22de9b32a717e4da33640881a80f9706f86d679f470e" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0-dev.1" talker_dio_logger: dependency: "direct main" description: path: ".." relative: true source: path - version: "2.4.0" + version: "4.0.0-dev.1" talker_flutter: dependency: "direct main" description: path: "../../talker_flutter" relative: true source: path - version: "3.6.0" + version: "4.0.0-dev.1" talker_logger: dependency: transitive description: diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index d68018db..eccdc5b4 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -10,7 +10,7 @@ dependencies: flutter: sdk: flutter dio: ^5.0.0 - talker_dio_logger: ^2.4.0 + talker_dio_logger: ^4.0.0-dev.1 talker_flutter: ^4.0.0-dev.1 dev_dependencies: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index 57552589..f2ef993f 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_dio_logger description: Lightweight and customizable dio http client logger on talker base -version: 2.4.0 +version: 4.0.0-dev.1 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker From 091941a6283516696c78582e5456f71c9ae8756b Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 4 Jan 2024 22:44:04 +0500 Subject: [PATCH 45/66] Add colors customization for talker_flutter --- examples/shop_app_example/lib/main.dart | 1 + .../lib/ui/presentation_frame.dart | 10 ++- examples/shop_app_example/lib/ui/router.dart | 2 + examples/shop_app_example/lib/ui/theme.dart | 3 + .../lib/src/extensions/extensions.dart | 1 + .../lib/src/extensions/talker_data.dart | 26 ++++++++ .../src/ui/talker_monitor/talker_monitor.dart | 22 ++----- .../talker_monitor_typed_logs_screen.dart | 2 + .../lib/src/ui/talker_view.dart | 2 + .../lib/src/ui/theme/default_theme.dart | 18 ------ .../lib/src/ui/theme/talker_screen_theme.dart | 33 ++++++++++ .../talker_flutter/lib/src/ui/theme/tmp.dart | 1 + .../lib/src/ui/widgets/data_card.dart | 61 +------------------ 13 files changed, 88 insertions(+), 94 deletions(-) create mode 100644 packages/talker_flutter/lib/src/extensions/talker_data.dart create mode 100644 packages/talker_flutter/lib/src/ui/theme/tmp.dart diff --git a/examples/shop_app_example/lib/main.dart b/examples/shop_app_example/lib/main.dart index b06d6378..b4151720 100644 --- a/examples/shop_app_example/lib/main.dart +++ b/examples/shop_app_example/lib/main.dart @@ -61,6 +61,7 @@ class MyApp extends StatelessWidget { ], builder: (context, child) { return PresentationFrame( + talkerTheme: talkerTheme, child: TalkerWrapper( talker: GetIt.instance(), child: child!, diff --git a/examples/shop_app_example/lib/ui/presentation_frame.dart b/examples/shop_app_example/lib/ui/presentation_frame.dart index 316f5acb..645bc829 100644 --- a/examples/shop_app_example/lib/ui/presentation_frame.dart +++ b/examples/shop_app_example/lib/ui/presentation_frame.dart @@ -8,9 +8,11 @@ class PresentationFrame extends StatelessWidget { const PresentationFrame({ Key? key, required this.child, + required this.talkerTheme, }) : super(key: key); final Widget child; + final TalkerScreenTheme talkerTheme; @override Widget build(BuildContext context) { @@ -28,7 +30,7 @@ class PresentationFrame extends StatelessWidget { width: double.infinity, decoration: const BoxDecoration(color: Colors.red), child: const Text( - 'Interact with Application to see canges in Logs Preview', + 'Interact with Application to see changes in Logs Preview', textAlign: TextAlign.center, style: TextStyle( color: Colors.white, @@ -43,7 +45,7 @@ class PresentationFrame extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - const _LogsPreview(), + _LogsPreview(talkerTheme: talkerTheme), const SizedBox(width: 20), _ApplicationPreview(mq: mq, child: child), const SizedBox(width: 60), @@ -208,8 +210,11 @@ class _ApplicationPreview extends StatelessWidget { class _LogsPreview extends StatelessWidget { const _LogsPreview({ Key? key, + required this.talkerTheme, }) : super(key: key); + final TalkerScreenTheme talkerTheme; + @override Widget build(BuildContext context) { const MediaQueryData mediaQuery = MediaQueryData( @@ -243,6 +248,7 @@ class _LogsPreview extends StatelessWidget { final data = reversedLogs[index]; return TalkerDataCard( data: data, + color: data.getFlutterColor(talkerTheme), ); }, childCount: reversedLogs.length, diff --git a/examples/shop_app_example/lib/ui/router.dart b/examples/shop_app_example/lib/ui/router.dart index 08dede52..e9052bf9 100644 --- a/examples/shop_app_example/lib/ui/router.dart +++ b/examples/shop_app_example/lib/ui/router.dart @@ -3,6 +3,7 @@ import 'package:get_it/get_it.dart'; import 'package:talker_flutter/talker_flutter.dart'; import 'package:talker_shop_app_example/features/product/product.dart'; import 'package:talker_shop_app_example/features/products/view/products_screen.dart'; +import 'package:talker_shop_app_example/ui/ui.dart'; abstract class Routes { static const productsList = '/products-list'; @@ -15,5 +16,6 @@ final appRoutes = { Routes.productsList: (context) => const ProductsScreen(), Routes.talker: (context) => TalkerScreen( talker: GetIt.instance(), + theme: talkerTheme, ), }; diff --git a/examples/shop_app_example/lib/ui/theme.dart b/examples/shop_app_example/lib/ui/theme.dart index 40d68e29..76774748 100644 --- a/examples/shop_app_example/lib/ui/theme.dart +++ b/examples/shop_app_example/lib/ui/theme.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:talker_flutter/talker_flutter.dart'; final lightTheme = ThemeData( primaryColor: primaryColor, @@ -24,3 +25,5 @@ final Map _primaryColorCodes = { 800: _primaryColor.withOpacity(.9), 900: _primaryColor, }; + +const talkerTheme = TalkerScreenTheme(); diff --git a/packages/talker_flutter/lib/src/extensions/extensions.dart b/packages/talker_flutter/lib/src/extensions/extensions.dart index 919ac63a..6daa3392 100644 --- a/packages/talker_flutter/lib/src/extensions/extensions.dart +++ b/packages/talker_flutter/lib/src/extensions/extensions.dart @@ -1,4 +1,5 @@ export 'color.dart'; export 'history.dart'; export 'iterable.dart'; +export 'talker_data.dart'; export 'talker_flutter.dart'; diff --git a/packages/talker_flutter/lib/src/extensions/talker_data.dart b/packages/talker_flutter/lib/src/extensions/talker_data.dart new file mode 100644 index 00000000..312efdb2 --- /dev/null +++ b/packages/talker_flutter/lib/src/extensions/talker_data.dart @@ -0,0 +1,26 @@ +import 'package:flutter/material.dart'; +import 'package:talker_flutter/talker_flutter.dart'; + +extension TalkerDataFlutterExt on TalkerData { + Color getFlutterColor(TalkerScreenTheme theme) { + // final colorFromAnsi = _getColorFromAnsi(); + // if (colorFromAnsi != null) return logsColors.colorFromAnsi; + + final key = this.key; + + if (key == null) return Colors.grey; + final type = TalkerLogType.fromKey(key); + return theme.logColors[type] ?? Colors.grey; + } +} + + // Color? _getColorFromAnsi() { + // final logData = data; + // if (logData is TalkerLog) { + // final hexColor = logData.pen?.toHexColor(); + // if (hexColor != null) { + // return ColorExt.fromHEX(hexColor); + // } + // } + // return null; + // } \ No newline at end of file diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart index 83919be2..c3c6bdca 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:talker_flutter/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart'; import 'package:talker_flutter/src/ui/talker_monitor/widgets/widgets.dart'; -import 'package:talker_flutter/src/ui/theme/default_theme.dart'; import 'package:talker_flutter/talker_flutter.dart'; class TalkerMonitor extends StatelessWidget { @@ -110,7 +109,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: errors, title: 'Errors', - color: Colors.red, + color: theme.logColors.getByType(TalkerLogType.error), icon: Icons.error_outline_rounded, subtitle: 'Application has ${errors.length} unresolved errors', @@ -125,7 +124,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: exceptions, title: 'Exceptions', - color: errorColor, + color: theme.logColors.getByType(TalkerLogType.exception), icon: Icons.error_outline_rounded, subtitle: 'Application has ${exceptions.length} unresolved exceptions', @@ -140,7 +139,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: warnings, title: 'Warnings', - color: warningColor, + color: theme.logColors.getByType(TalkerLogType.warning), icon: Icons.warning_amber_rounded, subtitle: 'Application has ${warnings.length} warnings', onTap: () => @@ -154,7 +153,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: infos, title: 'Infos', - color: infoColor, + color: theme.logColors.getByType(TalkerLogType.info), icon: Icons.info_outline_rounded, subtitle: 'Info logs count: ${infos.length}', onTap: () => _openTypedLogsScreen(context, infos, 'Infos'), @@ -167,7 +166,7 @@ class TalkerMonitor extends StatelessWidget { child: TalkerMonitorCard( logs: verboseDebug, title: 'Verbose & debug', - color: verboseColor, + color: theme.logColors.getByType(TalkerLogType.verbose), icon: Icons.remove_red_eye_outlined, subtitle: 'Verbose and debug logs count: ${verboseDebug.length}', @@ -186,16 +185,7 @@ class TalkerMonitor extends StatelessWidget { ); } - void _openHttpMonitor(BuildContext context) { - // Navigator.of(context).push( - // MaterialPageRoute( - // builder: (context) => TalkerMonitorHttpScreen( - // talker: talker, - // talkerScreenTheme: theme, - // ), - // ), - // ); - } + void _openHttpMonitor(BuildContext context) {} void _openTypedLogsScreen( BuildContext context, diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart index f1418a2c..602dadf2 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:talker_flutter/src/extensions/talker_data.dart'; import 'package:talker_flutter/talker_flutter.dart'; class TalkerMonitorTypedLogsScreen extends StatelessWidget { @@ -31,6 +32,7 @@ class TalkerMonitorTypedLogsScreen extends StatelessWidget { return TalkerDataCard( data: data, onTap: () => _copyTalkerDataItemText(context, data), + color: data.getFlutterColor(theme), ); }, childCount: exceptions.length, diff --git a/packages/talker_flutter/lib/src/ui/talker_view.dart b/packages/talker_flutter/lib/src/ui/talker_view.dart index 9626b3ae..060c6d8e 100644 --- a/packages/talker_flutter/lib/src/ui/talker_view.dart +++ b/packages/talker_flutter/lib/src/ui/talker_view.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:group_button/group_button.dart'; import 'package:talker_flutter/src/controller/controller.dart'; +import 'package:talker_flutter/src/extensions/talker_data.dart'; import 'package:talker_flutter/src/ui/talker_monitor/talker_monitor.dart'; import 'package:talker_flutter/src/ui/talker_settings/talker_settings.dart'; import 'package:talker_flutter/src/ui/widgets/talker_view_appbar.dart'; @@ -95,6 +96,7 @@ class _TalkerViewState extends State { backgroundColor: widget.theme.cardColor, onTap: () => _copyTalkerDataItemText(data), expanded: _controller.expandedLogs, + color: data.getFlutterColor(widget.theme), ); }, childCount: filtredElements.length, diff --git a/packages/talker_flutter/lib/src/ui/theme/default_theme.dart b/packages/talker_flutter/lib/src/ui/theme/default_theme.dart index e75d7635..70585717 100644 --- a/packages/talker_flutter/lib/src/ui/theme/default_theme.dart +++ b/packages/talker_flutter/lib/src/ui/theme/default_theme.dart @@ -1,21 +1,3 @@ import 'package:flutter/material.dart'; const defaultCardBackgroundColor = Color.fromARGB(255, 49, 49, 49); -final stackTraceBackground = Colors.grey[900]; -const httpResponseLogColor = Color(0xFF26FF3C); -const httpRequestLogColor = Color(0xFFF602C1); - -const blocTransitionColor = Color(0xFF56FEA8); -const blocEventColor = Color(0xFF63FAFE); -const blocCreatedColor = Color(0xFF2B8F33); -const blocClosedColor = Color(0xFFFF005F); - -const routeLogColor = Color(0xFFAF5FFF); - -final criticalErrorColor = Colors.red[800]!; -final errorColor = Colors.red[400]!; -final warningColor = Colors.orange[800]!; -final verboseColor = Colors.grey[400]!; -final infoColor = Colors.blue[400]!; -final goodColor = Colors.green[400]!; -const debugColor = Colors.grey; diff --git a/packages/talker_flutter/lib/src/ui/theme/talker_screen_theme.dart b/packages/talker_flutter/lib/src/ui/theme/talker_screen_theme.dart index 3637107a..b7801a8b 100644 --- a/packages/talker_flutter/lib/src/ui/theme/talker_screen_theme.dart +++ b/packages/talker_flutter/lib/src/ui/theme/talker_screen_theme.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:talker_flutter/src/ui/theme/default_theme.dart'; +import 'package:talker_flutter/talker_flutter.dart'; /// Configuring the UI of [TalkerScreen] class TalkerScreenTheme { @@ -7,6 +8,7 @@ class TalkerScreenTheme { this.backgroundColor = const Color(0xFF212121), this.textColor = Colors.white, this.cardColor = defaultCardBackgroundColor, + this.logColors = _defaultColors, }); /// Background screen color @@ -17,4 +19,35 @@ class TalkerScreenTheme { /// Color of [Talker] data cards final Color cardColor; + + final Map logColors; +} + +extension MapTalkerFlutterColorsExt on Map { + Color getByType(TalkerLogType type) { + return this[type] ?? Colors.grey; + } } + +const _defaultColors = { + TalkerLogType.error: Color.fromARGB(255, 239, 83, 80), + TalkerLogType.critical: Color.fromARGB(255, 198, 40, 40), + TalkerLogType.info: Color.fromARGB(255, 66, 165, 245), + TalkerLogType.debug: Color.fromARGB(255, 158, 158, 158), + TalkerLogType.verbose: Color.fromARGB(255, 189, 189, 189), + TalkerLogType.warning: Color.fromARGB(255, 239, 108, 0), + TalkerLogType.exception: Color.fromARGB(255, 239, 83, 80), + + /// Http + TalkerLogType.httpError: Color.fromARGB(255, 239, 83, 80), + + TalkerLogType.httpRequest: Color(0xFFF602C1), + TalkerLogType.httpResponse: Color(0xFF26FF3C), + + TalkerLogType.route: Color(0xFFAF5FFF), + + TalkerLogType.blocEvent: Color(0xFF63FAFE), + TalkerLogType.blocTransition: Color(0xFF56FEA8), + TalkerLogType.blocClose: Color(0xFFFF005F), + TalkerLogType.blocCreate: Color(0xFF2B8F33), +}; diff --git a/packages/talker_flutter/lib/src/ui/theme/tmp.dart b/packages/talker_flutter/lib/src/ui/theme/tmp.dart new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/packages/talker_flutter/lib/src/ui/theme/tmp.dart @@ -0,0 +1 @@ + diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index 41359a8f..df2fed6f 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -10,7 +10,7 @@ class TalkerDataCard extends StatelessWidget { this.onTap, this.expanded = true, this.margin, - this.color, + required this.color, this.backgroundColor = defaultCardBackgroundColor, }) : super(key: key); @@ -18,13 +18,12 @@ class TalkerDataCard extends StatelessWidget { final VoidCallback? onTap; final bool expanded; final EdgeInsets? margin; - final Color? color; + final Color color; final Color backgroundColor; @override Widget build(BuildContext context) { final errorMessage = _errorMessage; - final color = this.color ?? _color; final errorType = _type; final message = _message; final stackTrace = _stackTrace; @@ -104,7 +103,7 @@ class TalkerDataCard extends StatelessWidget { margin: const EdgeInsets.only(top: 8), padding: const EdgeInsets.all(6), decoration: BoxDecoration( - color: stackTraceBackground, + color: Colors.grey[900], borderRadius: BorderRadius.circular(10), ), child: Text( @@ -141,60 +140,6 @@ class TalkerDataCard extends StatelessWidget { return 'StackTrace:\n${data.stackTrace}'; } - Color get _color { - // final colorFromAnsi = _getColorFromAnsi(); - // if (colorFromAnsi != null) return colorFromAnsi; - - final key = data.key; - - if (key == null) return debugColor; - final type = TalkerLogType.fromKey(key); - - switch (type) { - case TalkerLogType.error: - return errorColor; - case TalkerLogType.critical: - return criticalErrorColor; - case TalkerLogType.info: - return infoColor; - case TalkerLogType.debug: - return debugColor; - case TalkerLogType.verbose: - return verboseColor; - case TalkerLogType.warning: - return warningColor; - case TalkerLogType.exception: - return errorColor; - case TalkerLogType.httpError: - return errorColor; - case TalkerLogType.httpRequest: - return httpRequestLogColor; - case TalkerLogType.httpResponse: - return httpResponseLogColor; - case TalkerLogType.blocEvent: - return blocEventColor; - case TalkerLogType.blocTransition: - return blocTransitionColor; - case TalkerLogType.route: - return routeLogColor; - case TalkerLogType.blocClose: - return debugColor; - case TalkerLogType.blocCreate: - return blocClosedColor; - } - } - - Color? _getColorFromAnsi() { - final logData = data; - if (logData is TalkerLog) { - final hexColor = logData.pen?.toHexColor(); - if (hexColor != null) { - return ColorExt.fromHEX(hexColor); - } - } - return null; - } - String? get _message { if (data is TalkerError || data is TalkerException) { return null; From be6df37bcfd02c89fa77396fdf319a2fb36ffe67 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 4 Jan 2024 22:48:39 +0500 Subject: [PATCH 46/66] Update talker_screen_theme.dart --- .../lib/src/ui/theme/talker_screen_theme.dart | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/talker_flutter/lib/src/ui/theme/talker_screen_theme.dart b/packages/talker_flutter/lib/src/ui/theme/talker_screen_theme.dart index b7801a8b..02170582 100644 --- a/packages/talker_flutter/lib/src/ui/theme/talker_screen_theme.dart +++ b/packages/talker_flutter/lib/src/ui/theme/talker_screen_theme.dart @@ -30,6 +30,7 @@ extension MapTalkerFlutterColorsExt on Map { } const _defaultColors = { + /// Base logs section TalkerLogType.error: Color.fromARGB(255, 239, 83, 80), TalkerLogType.critical: Color.fromARGB(255, 198, 40, 40), TalkerLogType.info: Color.fromARGB(255, 66, 165, 245), @@ -38,16 +39,17 @@ const _defaultColors = { TalkerLogType.warning: Color.fromARGB(255, 239, 108, 0), TalkerLogType.exception: Color.fromARGB(255, 239, 83, 80), - /// Http + /// Http section TalkerLogType.httpError: Color.fromARGB(255, 239, 83, 80), - TalkerLogType.httpRequest: Color(0xFFF602C1), TalkerLogType.httpResponse: Color(0xFF26FF3C), - TalkerLogType.route: Color(0xFFAF5FFF), - + /// Bloc section TalkerLogType.blocEvent: Color(0xFF63FAFE), TalkerLogType.blocTransition: Color(0xFF56FEA8), TalkerLogType.blocClose: Color(0xFFFF005F), TalkerLogType.blocCreate: Color(0xFF2B8F33), + + /// Flutter section + TalkerLogType.route: Color(0xFFAF5FFF), }; From d7c5cc9549ebb347523b8b9d3eaa0db5e65c0274 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Fri, 5 Jan 2024 01:00:26 +0500 Subject: [PATCH 47/66] Update data_card.dart --- .../talker_flutter/lib/src/ui/widgets/data_card.dart | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart index df2fed6f..4ccebc14 100644 --- a/packages/talker_flutter/lib/src/ui/widgets/data_card.dart +++ b/packages/talker_flutter/lib/src/ui/widgets/data_card.dart @@ -171,12 +171,3 @@ class TalkerDataCard extends StatelessWidget { return 'Type: ${data.exception?.runtimeType.toString() ?? data.error?.runtimeType.toString() ?? ''}'; } } - -extension AnsiExtension on AnsiPen { - /// Make ansi to hex format - String toHexColor() { - final ansiColor = fcolor != -1 ? fcolor : bcolor; - final hexColor = '#${ansiColor.toRadixString(16).padLeft(2, '0')}'; - return hexColor; - } -} From a89af4f45a2512a02fd317bc7746254cc5043ae8 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Fri, 5 Jan 2024 01:06:13 +0500 Subject: [PATCH 48/66] Publish version 4.0.0-dev.2 --- README.md | 8 ++++---- packages/talker/CHANGELOG.md | 3 +++ packages/talker/pubspec.yaml | 2 +- packages/talker_bloc_logger/CHANGELOG.md | 3 +++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 4 ++-- packages/talker_dio_logger/CHANGELOG.md | 3 +++ packages/talker_dio_logger/README.md | 2 +- packages/talker_dio_logger/example/pubspec.yaml | 4 ++-- packages/talker_dio_logger/pubspec.yaml | 4 ++-- packages/talker_flutter/CHANGELOG.md | 3 +++ .../example/lib/extended_example/extended_example.dart | 2 +- packages/talker_flutter/example/lib/main.dart | 1 - packages/talker_flutter/example/pubspec.lock | 6 +++--- packages/talker_flutter/pubspec.yaml | 4 ++-- packages/talker_http_logger/pubspec.yaml | 2 +- 16 files changed, 32 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index c4db0c1e..1128f615 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Follow these steps to the coolest experience in error handling ### Add dependency ```yaml dependencies: - talker: ^4.0.0-dev.1 + talker: ^4.0.0-dev.2 ``` ### Easy to use @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^4.0.0-dev.1 + talker_flutter: ^4.0.0-dev.2 ``` ### Setup @@ -387,7 +387,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^4.0.0-dev.1 + talker_dio_logger: ^4.0.0-dev.2 ``` ### Usage @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^4.0.0-dev.1 + talker_bloc_logger: ^4.0.0-dev.2 ``` ### Usage diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index aff41d7d..9204c4a6 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.0.0-dev.2 +- Fix types and remove unused code + # 4.0.0-dev.1 - First version with Logs keys implementation - **BREAKING** TalkerDataInterface deleted diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index 9ec93ab3..35594e1c 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -1,6 +1,6 @@ name: talker description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 4.0.0-dev.1 +version: 4.0.0-dev.2 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index 243c201e..daeb7a62 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.0.0-dev.2 +- Fix types and remove unused code + # 4.0.0-dev.1 - First version with Logs keys implementation - **BREAKING** TalkerDataInterface deleted diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index f5610b26..36c036ca 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^4.0.0-dev.1 + talker_bloc_logger: ^4.0.0-dev.2 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index 1cc99246..96067194 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 4.0.0-dev.1 +version: 4.0.0-dev.2 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - talker: ^4.0.0-dev.1 + talker: ^4.0.0-dev.2 bloc: ^8.1.1 meta: ^1.8.0 diff --git a/packages/talker_dio_logger/CHANGELOG.md b/packages/talker_dio_logger/CHANGELOG.md index 6a497d7f..a932a5d0 100644 --- a/packages/talker_dio_logger/CHANGELOG.md +++ b/packages/talker_dio_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.0.0-dev.2 +- Fix types and remove unused code + # 4.0.0-dev.1 - First version with Logs keys implementation - **BREAKING** TalkerDataInterface deleted diff --git a/packages/talker_dio_logger/README.md b/packages/talker_dio_logger/README.md index f4d8dd08..09ce7f0b 100644 --- a/packages/talker_dio_logger/README.md +++ b/packages/talker_dio_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^4.0.0-dev.1 + talker_dio_logger: ^4.0.0-dev.2 ``` ### Usage diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index eccdc5b4..4797ea56 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -10,8 +10,8 @@ dependencies: flutter: sdk: flutter dio: ^5.0.0 - talker_dio_logger: ^4.0.0-dev.1 - talker_flutter: ^4.0.0-dev.1 + talker_dio_logger: ^4.0.0-dev.2 + talker_flutter: ^4.0.0-dev.2 dev_dependencies: flutter_test: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index f2ef993f..10bce2bc 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_dio_logger description: Lightweight and customizable dio http client logger on talker base -version: 4.0.0-dev.1 +version: 4.0.0-dev.2 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker @@ -18,7 +18,7 @@ environment: dependencies: dio: ^5.2.0 - talker: ^4.0.0-dev.1 + talker: ^4.0.0-dev.2 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index 5888249a..3ec5e442 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.0.0-dev.2 +- Fix types and remove unused code + # 4.0.0-dev.1 - First version with Logs keys implementation - **BREAKING** TalkerDataInterface deleted diff --git a/packages/talker_flutter/example/lib/extended_example/extended_example.dart b/packages/talker_flutter/example/lib/extended_example/extended_example.dart index 83c0545f..3765f96f 100644 --- a/packages/talker_flutter/example/lib/extended_example/extended_example.dart +++ b/packages/talker_flutter/example/lib/extended_example/extended_example.dart @@ -146,7 +146,7 @@ class CustomLog extends TalkerLog { @override String generateTextMessage() { - return '| Custom leading | ' + message; + return '| Custom leading | ' + (message ?? ''); } } diff --git a/packages/talker_flutter/example/lib/main.dart b/packages/talker_flutter/example/lib/main.dart index 203ea610..963e3efb 100644 --- a/packages/talker_flutter/example/lib/main.dart +++ b/packages/talker_flutter/example/lib/main.dart @@ -46,7 +46,6 @@ class _BaseExampleState extends State { talker.info('3.............'); talker.info('2.......'); talker.info('1'); - talker.good('Now you can check all Talkler power ⚑'); super.initState(); } diff --git a/packages/talker_flutter/example/pubspec.lock b/packages/talker_flutter/example/pubspec.lock index 640c7eb7..63290ff2 100644 --- a/packages/talker_flutter/example/pubspec.lock +++ b/packages/talker_flutter/example/pubspec.lock @@ -313,17 +313,17 @@ packages: dependency: transitive description: name: talker - sha256: "1e4351253560219859a8e757f5b8dbd266d5c289a50dd90d12da4f3041184392" + sha256: "7e201122266de04d5e9006930affda68ec096cb3d3ee2994e78a997b961fd53f" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "4.0.0-dev.2" talker_flutter: dependency: "direct main" description: path: ".." relative: true source: path - version: "3.6.0" + version: "4.0.0-dev.2" talker_logger: dependency: transitive description: diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 187c9ce5..8db71dd1 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 4.0.0-dev.1 +version: 4.0.0-dev.2 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -20,7 +20,7 @@ dependencies: flutter: sdk: flutter - talker: ^4.0.0-dev.1 + talker: ^4.0.0-dev.2 group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.2.1 diff --git a/packages/talker_http_logger/pubspec.yaml b/packages/talker_http_logger/pubspec.yaml index effc94ba..a902497b 100644 --- a/packages/talker_http_logger/pubspec.yaml +++ b/packages/talker_http_logger/pubspec.yaml @@ -8,7 +8,7 @@ environment: dependencies: http_interceptor: ^2.0.0-beta.7 - talker: ^4.0.0-dev.1 + talker: ^4.0.0-dev.2 dev_dependencies: lints: ^2.0.0 From 707075161af4c6dde9fb43ba29bbad0fd34f29be Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Fri, 5 Jan 2024 01:15:27 +0500 Subject: [PATCH 49/66] Publish version 4.0.0-dev.3 --- README.md | 8 ++++---- packages/talker/CHANGELOG.md | 3 +++ packages/talker/pubspec.yaml | 4 ++-- packages/talker_bloc_logger/CHANGELOG.md | 3 +++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 4 ++-- packages/talker_dio_logger/CHANGELOG.md | 3 +++ packages/talker_dio_logger/README.md | 2 +- packages/talker_dio_logger/example/pubspec.lock | 8 ++++---- packages/talker_dio_logger/example/pubspec.yaml | 4 ++-- packages/talker_dio_logger/pubspec.yaml | 4 ++-- packages/talker_flutter/CHANGELOG.md | 3 +++ packages/talker_flutter/pubspec.yaml | 4 ++-- packages/talker_http_logger/pubspec.yaml | 2 +- packages/talker_logger/CHANGELOG.md | 4 ++++ packages/talker_logger/README.md | 2 +- packages/talker_logger/pubspec.yaml | 2 +- .../test/talker_logger_log_level_test.dart | 16 ++++++++-------- 18 files changed, 47 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 1128f615..c8e73ac0 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Follow these steps to the coolest experience in error handling ### Add dependency ```yaml dependencies: - talker: ^4.0.0-dev.2 + talker: ^4.0.0-dev.3 ``` ### Easy to use @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^4.0.0-dev.2 + talker_flutter: ^4.0.0-dev.3 ``` ### Setup @@ -387,7 +387,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^4.0.0-dev.2 + talker_dio_logger: ^4.0.0-dev.3 ``` ### Usage @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^4.0.0-dev.2 + talker_bloc_logger: ^4.0.0-dev.3 ``` ### Usage diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index 9204c4a6..147136e9 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.0.0-dev.3 +- Update **talker_logger** settings setup method + # 4.0.0-dev.2 - Fix types and remove unused code diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index 35594e1c..3e23f76d 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -1,6 +1,6 @@ name: talker description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 4.0.0-dev.2 +version: 4.0.0-dev.3 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -16,7 +16,7 @@ environment: sdk: '>=2.17.0 <4.0.0' dependencies: - talker_logger: ^3.1.0 + talker_logger: ^4.0.0-dev.3 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index daeb7a62..1032ca72 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.0.0-dev.3 +- Update **talker_logger** settings setup method + # 4.0.0-dev.2 - Fix types and remove unused code diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index 36c036ca..507f42b2 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^4.0.0-dev.2 + talker_bloc_logger: ^4.0.0-dev.3 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index 96067194..fdf5d277 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 4.0.0-dev.2 +version: 4.0.0-dev.3 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - talker: ^4.0.0-dev.2 + talker: ^4.0.0-dev.3 bloc: ^8.1.1 meta: ^1.8.0 diff --git a/packages/talker_dio_logger/CHANGELOG.md b/packages/talker_dio_logger/CHANGELOG.md index a932a5d0..ae477ff7 100644 --- a/packages/talker_dio_logger/CHANGELOG.md +++ b/packages/talker_dio_logger/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.0.0-dev.3 +- Update **talker_logger** settings setup method + # 4.0.0-dev.2 - Fix types and remove unused code diff --git a/packages/talker_dio_logger/README.md b/packages/talker_dio_logger/README.md index 09ce7f0b..87b14f04 100644 --- a/packages/talker_dio_logger/README.md +++ b/packages/talker_dio_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^4.0.0-dev.2 + talker_dio_logger: ^4.0.0-dev.3 ``` ### Usage diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index 2b733b80..c6d717a7 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -321,24 +321,24 @@ packages: dependency: transitive description: name: talker - sha256: "263320fedb70d2b9a5eb22de9b32a717e4da33640881a80f9706f86d679f470e" + sha256: "7e201122266de04d5e9006930affda68ec096cb3d3ee2994e78a997b961fd53f" url: "https://pub.dev" source: hosted - version: "4.0.0-dev.1" + version: "4.0.0-dev.2" talker_dio_logger: dependency: "direct main" description: path: ".." relative: true source: path - version: "4.0.0-dev.1" + version: "4.0.0-dev.2" talker_flutter: dependency: "direct main" description: path: "../../talker_flutter" relative: true source: path - version: "4.0.0-dev.1" + version: "4.0.0-dev.2" talker_logger: dependency: transitive description: diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index 4797ea56..cc4b992f 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -10,8 +10,8 @@ dependencies: flutter: sdk: flutter dio: ^5.0.0 - talker_dio_logger: ^4.0.0-dev.2 - talker_flutter: ^4.0.0-dev.2 + talker_dio_logger: ^4.0.0-dev.3 + talker_flutter: ^4.0.0-dev.3 dev_dependencies: flutter_test: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index 10bce2bc..dded7b10 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_dio_logger description: Lightweight and customizable dio http client logger on talker base -version: 4.0.0-dev.2 +version: 4.0.0-dev.3 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker @@ -18,7 +18,7 @@ environment: dependencies: dio: ^5.2.0 - talker: ^4.0.0-dev.2 + talker: ^4.0.0-dev.3 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index 3ec5e442..a396772c 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,6 @@ +# 4.0.0-dev.3 +- Update **talker_logger** settings setup method + # 4.0.0-dev.2 - Fix types and remove unused code diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 8db71dd1..3774c197 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 4.0.0-dev.2 +version: 4.0.0-dev.3 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -20,7 +20,7 @@ dependencies: flutter: sdk: flutter - talker: ^4.0.0-dev.2 + talker: ^4.0.0-dev.3 group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.2.1 diff --git a/packages/talker_http_logger/pubspec.yaml b/packages/talker_http_logger/pubspec.yaml index a902497b..220fac9b 100644 --- a/packages/talker_http_logger/pubspec.yaml +++ b/packages/talker_http_logger/pubspec.yaml @@ -8,7 +8,7 @@ environment: dependencies: http_interceptor: ^2.0.0-beta.7 - talker: ^4.0.0-dev.2 + talker: ^4.0.0-dev.3 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_logger/CHANGELOG.md b/packages/talker_logger/CHANGELOG.md index 20af7283..e8cc4476 100644 --- a/packages/talker_logger/CHANGELOG.md +++ b/packages/talker_logger/CHANGELOG.md @@ -1,3 +1,7 @@ +# 4.0.0-dev.3 +- Update settings setup method +- Fix migration issues + # 4.0.0-dev.1 - Add **colors** field in TalkerLoggerSettings class to setup custom colores for default logs - Remove deprecated LogLevel title and color extensions diff --git a/packages/talker_logger/README.md b/packages/talker_logger/README.md index 50496441..3c0ccadc 100644 --- a/packages/talker_logger/README.md +++ b/packages/talker_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_logger: ^3.1.0 + talker_logger: ^4.0.0-dev.3 ``` ### Easy to use diff --git a/packages/talker_logger/pubspec.yaml b/packages/talker_logger/pubspec.yaml index 9e88f240..86abc768 100644 --- a/packages/talker_logger/pubspec.yaml +++ b/packages/talker_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_logger description: Logger. Easy, customizable, extensible logging, lightweight with filters, formatters, custom logs, log levels. -version: 4.0.0-dev.1 +version: 4.0.0-dev.3 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/packages/talker_logger/test/talker_logger_log_level_test.dart b/packages/talker_logger/test/talker_logger_log_level_test.dart index 43755f51..44bfc6d1 100644 --- a/packages/talker_logger/test/talker_logger_log_level_test.dart +++ b/packages/talker_logger/test/talker_logger_log_level_test.dart @@ -3,14 +3,14 @@ import 'package:test/test.dart'; // @TestOn('dart─vm') void main() { - final colorCases = { - LogLevel.critical: AnsiPen()..red(), - LogLevel.error: AnsiPen()..red(), - LogLevel.debug: AnsiPen()..gray(), - LogLevel.warning: AnsiPen()..yellow(), - LogLevel.verbose: AnsiPen()..gray(), - LogLevel.info: AnsiPen()..blue(), - }; + // final colorCases = { + // LogLevel.critical: AnsiPen()..red(), + // LogLevel.error: AnsiPen()..red(), + // LogLevel.debug: AnsiPen()..gray(), + // LogLevel.warning: AnsiPen()..yellow(), + // LogLevel.verbose: AnsiPen()..gray(), + // LogLevel.info: AnsiPen()..blue(), + // }; // final textCases = { // LogLevel.critical: 'CRITICAL', From 9fd793b107bacd2a33f3497d542916538a97c8f5 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 15:28:55 +0500 Subject: [PATCH 50/66] Fix tests --- examples/shop_app_example/macos/Podfile.lock | 8 +-- .../macos/Runner.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/Runner.xcscheme | 2 +- examples/shop_app_example/pubspec.lock | 36 ++++++------ packages/talker/example/talker_example.dart | 4 +- packages/talker/test/filter_test.dart | 56 +++++-------------- .../talker/test/talker_settings_test.dart | 2 +- packages/talker/test/talker_test.dart | 18 ------ 8 files changed, 40 insertions(+), 88 deletions(-) diff --git a/examples/shop_app_example/macos/Podfile.lock b/examples/shop_app_example/macos/Podfile.lock index ef2c936e..685923b7 100644 --- a/examples/shop_app_example/macos/Podfile.lock +++ b/examples/shop_app_example/macos/Podfile.lock @@ -100,7 +100,7 @@ DEPENDENCIES: - firebase_analytics (from `Flutter/ephemeral/.symlinks/plugins/firebase_analytics/macos`) - firebase_core (from `Flutter/ephemeral/.symlinks/plugins/firebase_core/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/macos`) + - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) - share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`) - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) @@ -124,7 +124,7 @@ EXTERNAL SOURCES: FlutterMacOS: :path: Flutter/ephemeral path_provider_foundation: - :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/macos + :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin share_plus: :path: Flutter/ephemeral/.symlinks/plugins/share_plus/macos url_launcher_macos: @@ -142,11 +142,11 @@ SPEC CHECKSUMS: GoogleAppMeasurement: 373bcbead1bb6a85be7a64d5d8f96284b762ea9c GoogleUtilities: 9aa0ad5a7bc171f8bae016300bfcfa3fb8425749 nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 - path_provider_foundation: 37748e03f12783f9de2cb2c4eadfaa25fe6d4852 + path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef share_plus: 76dd39142738f7a68dd57b05093b5e8193f220f7 url_launcher_macos: c04e4fa86382d4f94f6b38f14625708be3ae52e2 PODFILE CHECKSUM: 353c8bcc5d5b0994e508d035b5431cfe18c1dea7 -COCOAPODS: 1.12.1 +COCOAPODS: 1.14.3 diff --git a/examples/shop_app_example/macos/Runner.xcodeproj/project.pbxproj b/examples/shop_app_example/macos/Runner.xcodeproj/project.pbxproj index 37bff47c..bbbb81ad 100644 --- a/examples/shop_app_example/macos/Runner.xcodeproj/project.pbxproj +++ b/examples/shop_app_example/macos/Runner.xcodeproj/project.pbxproj @@ -203,7 +203,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1430; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { diff --git a/examples/shop_app_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/shop_app_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 677ad0cc..caa79058 100644 --- a/examples/shop_app_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/examples/shop_app_example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ =3.1.0-185.0.dev <4.0.0" + dart: ">=3.2.0-194.0.dev <4.0.0" flutter: ">=3.7.0" diff --git a/packages/talker/example/talker_example.dart b/packages/talker/example/talker_example.dart index 0cb07673..83df5729 100644 --- a/packages/talker/example/talker_example.dart +++ b/packages/talker/example/talker_example.dart @@ -4,7 +4,7 @@ Future main() async { final talker = Talker( settings: TalkerSettings( colors: { - TalkerLogType.error: AnsiPen()..cyan(), + TalkerLogType.verbose: AnsiPen()..cyan(), }, ), ); @@ -14,7 +14,7 @@ Future main() async { talker.debug('Thinking about order new one πŸ€”'); talker.error('The restaurant is closed ❌'); talker.info('Ordering from other restaurant...'); - talker.info('Payment started...'); + talker.verbose('Payment started...'); talker.info('Payment completed! Waiting for pizza πŸ•'); /// [Exception]'s and [Error]'s handling diff --git a/packages/talker/test/filter_test.dart b/packages/talker/test/filter_test.dart index f5fa09c2..8a755be4 100644 --- a/packages/talker/test/filter_test.dart +++ b/packages/talker/test/filter_test.dart @@ -5,15 +5,12 @@ void main() { group('TalkerFilter', () { _testFilterByTitles(useTalkerFilter: false); _testFilterByTitles(useTalkerFilter: true); - _testFilterByTitles(useTalkerFilter: true, configureFilter: true); _testFilterByTypes(useTalkerFilter: false); _testFilterByTypes(useTalkerFilter: true); - _testFilterByTypes(useTalkerFilter: true, configureFilter: true); _testFilterBySearchText(useTalkerFilter: false); _testFilterBySearchText(useTalkerFilter: true); - _testFilterBySearchText(useTalkerFilter: true, configureFilter: true); test('copyWith', () { final filter = BaseTalkerFilter( @@ -35,11 +32,9 @@ void main() { void _testFilterBySearchText({ required bool useTalkerFilter, - bool configureFilter = false, }) { return group('By search text', () { _testFilterFoundBySearchText( - configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, searchQuery: 'http', countFound: 4, @@ -57,11 +52,9 @@ void _testFilterBySearchText({ void _testFilterByTypes({ required bool useTalkerFilter, - bool configureFilter = false, }) { group('By type', () { _testFilterFoundByType( - configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, types: [TalkerLog], countFound: 1, @@ -70,7 +63,6 @@ void _testFilterByTypes({ }, ); _testFilterFoundByType( - configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, types: [TalkerError], countFound: 2, @@ -85,13 +77,11 @@ void _testFilterByTypes({ void _testFilterByTitles({ required bool useTalkerFilter, - bool configureFilter = false, }) { return group( 'By title', () { _testFilterFoundByTitle( - configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, titles: ['error'], countFound: 1, @@ -101,7 +91,6 @@ void _testFilterByTitles({ ); _testFilterFoundByTitle( - configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, titles: ['error', 'exception'], countFound: 2, @@ -112,7 +101,6 @@ void _testFilterByTitles({ ); _testFilterFoundByTitle( - configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, titles: ['error', 'verbose'], countFound: 2, @@ -124,7 +112,6 @@ void _testFilterByTitles({ ); _testFilterFoundByTitle( - configureFilter: configureFilter, useTalkerFilter: useTalkerFilter, titles: ['verbose'], countFound: 5, @@ -149,24 +136,20 @@ void _testFilterFoundBySearchText({ required Function(Talker talker) logCallback, required int countFound, required bool useTalkerFilter, - bool configureFilter = false, }) { final filter = BaseTalkerFilter(types: [], titles: [], searchQuery: searchQuery); - final talker = - useTalkerFilter && !configureFilter ? Talker(filter: filter) : Talker(); - talker.configure( - settings: TalkerSettings(useConsoleLogs: false), - filter: useTalkerFilter && configureFilter ? filter : null, - ); + + final talker = useTalkerFilter ? Talker(filter: filter) : Talker(); test( - 'Found $countFound ${useTalkerFilter ? 'By Talker' : 'By Filter'} with searchQuery $searchQuery ${configureFilter ? 'by configure() method' : ''}', + 'Found $countFound ${useTalkerFilter ? 'By Talker' : 'By Filter'} with searchQuery $searchQuery', () { logCallback.call(talker); final foundRecords = useTalkerFilter ? talker.history : talker.history.where((e) => filter.filter(e)).toList(); + expect(foundRecords, isNotEmpty); expect(foundRecords.length, countFound); }); @@ -177,18 +160,12 @@ void _testFilterFoundByType({ required Function(Talker talker) logCallback, required int countFound, required bool useTalkerFilter, - bool configureFilter = false, }) { final filter = BaseTalkerFilter(types: types); - final talker = - useTalkerFilter && !configureFilter ? Talker(filter: filter) : Talker(); - talker.configure( - settings: TalkerSettings(useConsoleLogs: false), - filter: useTalkerFilter && configureFilter ? filter : null, - ); + final talker = useTalkerFilter ? Talker(filter: filter) : Talker(); test( - 'Found $countFound ${useTalkerFilter ? 'By Talker' : 'By Filter'} in ${types.join(',')} ${configureFilter ? 'by configure() method' : ''}', + 'Found $countFound ${useTalkerFilter ? 'By Talker' : 'By Filter'} in ${types.join(',')}', () { logCallback.call(talker); final foundRecords = useTalkerFilter @@ -199,23 +176,16 @@ void _testFilterFoundByType({ }); } -void _testFilterFoundByTitle({ - required List titles, - required Function(Talker) logCallback, - required int countFound, - required bool useTalkerFilter, - bool configureFilter = false, -}) { +void _testFilterFoundByTitle( + {required List titles, + required Function(Talker) logCallback, + required int countFound, + required bool useTalkerFilter}) { final filter = BaseTalkerFilter(titles: titles); - final talker = - useTalkerFilter && !configureFilter ? Talker(filter: filter) : Talker(); - talker.configure( - settings: TalkerSettings(useConsoleLogs: false), - filter: useTalkerFilter && configureFilter ? filter : null, - ); + final talker = useTalkerFilter ? Talker(filter: filter) : Talker(); test( - 'Found $countFound ${useTalkerFilter ? 'By Talker' : 'By Filter'} in ${titles.join(',')} ${configureFilter ? 'by configure() method' : ''}', + 'Found $countFound ${useTalkerFilter ? 'By Talker' : 'By Filter'} in ${titles.join(',')}', () { logCallback.call(talker); diff --git a/packages/talker/test/talker_settings_test.dart b/packages/talker/test/talker_settings_test.dart index b76ca923..58ac16ff 100644 --- a/packages/talker/test/talker_settings_test.dart +++ b/packages/talker/test/talker_settings_test.dart @@ -47,7 +47,7 @@ void main() { expect(newSettings.enabled, true); expect(newSettings.useConsoleLogs, true); expect(newSettings.useHistory, true); - expect(newSettings.maxHistoryItems, 200); + expect(newSettings.maxHistoryItems, 1000); }); }); } diff --git a/packages/talker/test/talker_test.dart b/packages/talker/test/talker_test.dart index 2f57a225..d11ccc2e 100644 --- a/packages/talker/test/talker_test.dart +++ b/packages/talker/test/talker_test.dart @@ -11,24 +11,6 @@ void main() { }); group('Talker', () { - test('Handle error from log', () { - talker.error('Some error', ArgumentError()); - talker.error('Some error', ArgumentError(), StackTrace.current); - expect(talker.history, isNotEmpty); - expect(talker.history.length, 2); - expect(talker.history.first is TalkerError, true); - expect(talker.history.last is TalkerError, true); - }); - - test('Handle exception from log', () { - talker.error('Some error', Exception()); - talker.error('Some error', Exception(), StackTrace.current); - expect(talker.history, isNotEmpty); - expect(talker.history.length, 2); - expect(talker.history.first is TalkerException, true); - expect(talker.history.last is TalkerException, true); - }); - test('Handle error', () { talker.handle(ArgumentError()); talker.handle(ArgumentError(), StackTrace.current, 'Some error'); From a905b16d70b0e6c43eb7050319054ca0a8565a6c Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 15:29:22 +0500 Subject: [PATCH 51/66] Fix linter issues --- .../src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart | 1 - packages/talker_flutter/lib/src/ui/talker_view.dart | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart index 602dadf2..2b3c8d98 100644 --- a/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart +++ b/packages/talker_flutter/lib/src/ui/talker_monitor/talker_monitor_typed_logs_screen.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:talker_flutter/src/extensions/talker_data.dart'; import 'package:talker_flutter/talker_flutter.dart'; class TalkerMonitorTypedLogsScreen extends StatelessWidget { diff --git a/packages/talker_flutter/lib/src/ui/talker_view.dart b/packages/talker_flutter/lib/src/ui/talker_view.dart index 060c6d8e..978de16f 100644 --- a/packages/talker_flutter/lib/src/ui/talker_view.dart +++ b/packages/talker_flutter/lib/src/ui/talker_view.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:group_button/group_button.dart'; import 'package:talker_flutter/src/controller/controller.dart'; -import 'package:talker_flutter/src/extensions/talker_data.dart'; import 'package:talker_flutter/src/ui/talker_monitor/talker_monitor.dart'; import 'package:talker_flutter/src/ui/talker_settings/talker_settings.dart'; import 'package:talker_flutter/src/ui/widgets/talker_view_appbar.dart'; From 7434b6730e1feb47aee90ffaf3738f60d6dfcffc Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 15:32:37 +0500 Subject: [PATCH 52/66] Fix flutter version in pipelines --- .github/workflows/talker.yaml | 1 - .github/workflows/talker_logger.yaml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/talker.yaml b/.github/workflows/talker.yaml index fe250039..08cc1ed7 100644 --- a/.github/workflows/talker.yaml +++ b/.github/workflows/talker.yaml @@ -27,7 +27,6 @@ jobs: distribution: 'zulu' - uses: subosito/flutter-action@v2 with: - flutter-version: '3.7.12' channel: "stable" - name: Install Dependencies diff --git a/.github/workflows/talker_logger.yaml b/.github/workflows/talker_logger.yaml index e60e8230..12b1bd41 100644 --- a/.github/workflows/talker_logger.yaml +++ b/.github/workflows/talker_logger.yaml @@ -27,7 +27,6 @@ jobs: distribution: 'zulu' - uses: subosito/flutter-action@v2 with: - flutter-version: '3.7.12' channel: "stable" - name: Install Dependencies From d6ba225374fdfdecc1b2cecec3efba0f62336f14 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 15:34:30 +0500 Subject: [PATCH 53/66] Make dart format --- .../talker_dio_logger/test/logger_test.dart | 16 +++++++++------ .../lib/src/extensions/talker_data.dart | 20 +++++++++---------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/packages/talker_dio_logger/test/logger_test.dart b/packages/talker_dio_logger/test/logger_test.dart index c670f750..155d1e78 100644 --- a/packages/talker_dio_logger/test/logger_test.dart +++ b/packages/talker_dio_logger/test/logger_test.dart @@ -34,14 +34,18 @@ void main() { }); test('onResponse method should log http response headers', () { - logger = TalkerDioLogger(talker: talker, settings: TalkerDioLoggerSettings( - printResponseHeaders: true - )); + logger = TalkerDioLogger( + talker: talker, + settings: TalkerDioLoggerSettings(printResponseHeaders: true)); final options = RequestOptions(path: '/test'); - final response = Response(requestOptions: options, statusCode: 200, headers: Headers()..add("HEADER", - "VALUE")); + final response = Response( + requestOptions: options, + statusCode: 200, + headers: Headers()..add("HEADER", "VALUE")); logger.onResponse(response, ResponseInterceptorHandler()); - expect(talker.history.last.generateTextMessage(), '[http-response] [GET] /test\n' + expect( + talker.history.last.generateTextMessage(), + '[http-response] [GET] /test\n' 'Status: 200\n' 'Headers: {\n' ' "header": [\n' diff --git a/packages/talker_flutter/lib/src/extensions/talker_data.dart b/packages/talker_flutter/lib/src/extensions/talker_data.dart index 312efdb2..a8f6baf4 100644 --- a/packages/talker_flutter/lib/src/extensions/talker_data.dart +++ b/packages/talker_flutter/lib/src/extensions/talker_data.dart @@ -14,13 +14,13 @@ extension TalkerDataFlutterExt on TalkerData { } } - // Color? _getColorFromAnsi() { - // final logData = data; - // if (logData is TalkerLog) { - // final hexColor = logData.pen?.toHexColor(); - // if (hexColor != null) { - // return ColorExt.fromHEX(hexColor); - // } - // } - // return null; - // } \ No newline at end of file +// Color? _getColorFromAnsi() { +// final logData = data; +// if (logData is TalkerLog) { +// final hexColor = logData.pen?.toHexColor(); +// if (hexColor != null) { +// return ColorExt.fromHEX(hexColor); +// } +// } +// return null; +// } From 7500a144f83aec7a9e65f551109d320dc863e17b Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 15:47:01 +0500 Subject: [PATCH 54/66] Add new tests --- .../talker/test/talker_data_models_test.dart | 2 +- packages/talker/test/talker_data_test.dart | 109 ++++++++++++++++++ packages/talker/test/talker_error_test.dart | 39 +++++++ .../talker/test/talker_exception_test.dart | 39 +++++++ packages/talker/test/talker_key.dart | 102 ++++++++++++++++ .../talker/test/well_known_titles_test.dart | 17 --- 6 files changed, 290 insertions(+), 18 deletions(-) create mode 100644 packages/talker/test/talker_data_test.dart create mode 100644 packages/talker/test/talker_error_test.dart create mode 100644 packages/talker/test/talker_exception_test.dart create mode 100644 packages/talker/test/talker_key.dart delete mode 100644 packages/talker/test/well_known_titles_test.dart diff --git a/packages/talker/test/talker_data_models_test.dart b/packages/talker/test/talker_data_models_test.dart index 2576df31..78d2b8b3 100644 --- a/packages/talker/test/talker_data_models_test.dart +++ b/packages/talker/test/talker_data_models_test.dart @@ -7,7 +7,7 @@ const _testMessage = 'test message'; const _testTitle = 'test title'; void main() { - group('TalkerDataInterface models', () { + group('TalkerData models', () { test('TalkerError', () async { final error = TalkerError( ArgumentError(), diff --git a/packages/talker/test/talker_data_test.dart b/packages/talker/test/talker_data_test.dart new file mode 100644 index 00000000..8ef15a85 --- /dev/null +++ b/packages/talker/test/talker_data_test.dart @@ -0,0 +1,109 @@ +import 'package:talker/talker.dart'; +import 'package:test/test.dart'; + +void main() { + group('TalkerData', () { + test('constructor sets correct values', () { + final error = Error(); + final exception = Exception('Test Exception'); + final dateTime = DateTime.now(); + final talkerData = TalkerData( + 'Test Message', + logLevel: LogLevel.debug, + exception: exception, + error: error, + stackTrace: StackTrace.current, + title: 'custom-title', + time: dateTime, + pen: AnsiPen()..red(), + key: 'custom-key', + ); + + expect(talkerData.message, equals('Test Message')); + expect(talkerData.logLevel, equals(LogLevel.debug)); + expect(talkerData.exception, equals(exception)); + expect(talkerData.error, equals(error)); + expect(talkerData.stackTrace is StackTrace, true); + expect(talkerData.title, equals('custom-title')); + expect(talkerData.time, equals(dateTime)); + expect(talkerData.pen, isNotNull); + expect(talkerData.key, equals('custom-key')); + }); + + test('generateTextMessage returns correct message format', () { + final talkerData = TalkerData( + 'Test Message', + logLevel: LogLevel.debug, + exception: Exception('Test Exception'), + error: Error(), + stackTrace: StackTrace.current, + title: 'custom-title', + ); + + final generatedMessage = talkerData.generateTextMessage(); + expect( + generatedMessage, + equals( + '${talkerData.displayTitleWithTime}${talkerData.displayMessage}${talkerData.displayStackTrace}', + ), + ); + }); + }); + + group('FieldsToDisplay extension', () { + test('displayTitleWithTime returns correct format', () { + final dateTime = DateTime.now(); + final talkerData = TalkerData( + 'Test Message', + time: dateTime, + ); + + final displayTitleWithTime = talkerData.displayTitleWithTime; + expect( + displayTitleWithTime, + equals( + '[log] | ${TalkerDateTimeFormatter(dateTime).timeAndSeconds} | ')); + }); + + test('displayStackTrace returns correct format', () { + final talkerData = TalkerData( + 'Test Message', + stackTrace: StackTrace.current, + ); + + final displayStackTrace = talkerData.displayStackTrace; + expect(displayStackTrace, startsWith('\nStackTrace:')); + }); + + test('displayException returns correct format', () { + final talkerData = TalkerData( + 'Test Message', + exception: Exception('Test Exception'), + ); + + final displayException = talkerData.displayException; + expect(displayException, startsWith('\nException:')); + }); + + test('displayMessage returns correct format', () { + final talkerData = TalkerData( + 'Test Message', + ); + + final displayMessage = talkerData.displayMessage; + expect(displayMessage, equals('Test Message')); + }); + + test('displayTime returns correct format', () { + final dateTime = DateTime.now(); + final talkerData = TalkerData( + 'Test Message', + time: dateTime, + ); + + final displayTime = talkerData.displayTime; + expect(displayTime, + equals(TalkerDateTimeFormatter(dateTime).timeAndSeconds)); + }); + }); +} diff --git a/packages/talker/test/talker_error_test.dart b/packages/talker/test/talker_error_test.dart new file mode 100644 index 00000000..f6986b47 --- /dev/null +++ b/packages/talker/test/talker_error_test.dart @@ -0,0 +1,39 @@ +import 'package:talker/talker.dart'; +import 'package:test/test.dart'; + +void main() { + group('TalkerError', () { + test('constructor sets correct values', () { + final error = Error(); + final talkerError = TalkerError( + error, + message: 'Test Message', + key: 'custom-key', + logLevel: LogLevel.debug, + ); + + expect(talkerError.message, equals('Test Message')); + expect(talkerError.error, equals(error)); + expect(talkerError.key, equals('custom-key')); + expect(talkerError.logLevel, equals(LogLevel.debug)); + }); + + test('generateTextMessage returns correct message format', () { + final error = Error(); + final talkerError = TalkerError( + error, + message: 'Test Message', + key: 'custom-key', + logLevel: LogLevel.debug, + ); + + final generatedMessage = talkerError.generateTextMessage(); + expect( + generatedMessage, + equals( + '${talkerError.displayTitleWithTime}${talkerError.displayMessage}${talkerError.displayError}${talkerError.displayStackTrace}', + ), + ); + }); + }); +} diff --git a/packages/talker/test/talker_exception_test.dart b/packages/talker/test/talker_exception_test.dart new file mode 100644 index 00000000..28b5fe32 --- /dev/null +++ b/packages/talker/test/talker_exception_test.dart @@ -0,0 +1,39 @@ +import 'package:talker/talker.dart'; +import 'package:test/test.dart'; + +void main() { + group('TalkerException', () { + test('constructor sets correct values', () { + final exception = Exception('Test Exception'); + final talkerException = TalkerException( + exception, + message: 'Test Message', + key: 'custom-key', + logLevel: LogLevel.debug, + ); + + expect(talkerException.message, equals('Test Message')); + expect(talkerException.exception, equals(exception)); + expect(talkerException.key, equals('custom-key')); + expect(talkerException.logLevel, equals(LogLevel.debug)); + }); + + test('generateTextMessage returns correct message format', () { + final exception = Exception('Test Exception'); + final talkerException = TalkerException( + exception, + message: 'Test Message', + key: 'custom-key', + logLevel: LogLevel.debug, + ); + + final generatedMessage = talkerException.generateTextMessage(); + expect( + generatedMessage, + equals( + '${talkerException.displayTitleWithTime}${talkerException.displayMessage}${talkerException.displayException}${talkerException.displayStackTrace}', + ), + ); + }); + }); +} diff --git a/packages/talker/test/talker_key.dart b/packages/talker/test/talker_key.dart new file mode 100644 index 00000000..d2a9ac99 --- /dev/null +++ b/packages/talker/test/talker_key.dart @@ -0,0 +1,102 @@ +import 'package:talker/talker.dart'; +import 'package:test/test.dart'; + +void main() { + group('TalkerKey', () { + test('returns correct key for each enum value', () { + expect(TalkerLogType.error.key, equals('error')); + expect(TalkerLogType.critical.key, equals('critical')); + expect(TalkerLogType.info.key, equals('info')); + expect(TalkerLogType.debug.key, equals('debug')); + expect(TalkerLogType.verbose.key, equals('verbose')); + expect(TalkerLogType.warning.key, equals('warning')); + expect(TalkerLogType.exception.key, equals('exception')); + expect(TalkerLogType.httpError.key, equals('http-error')); + expect(TalkerLogType.httpRequest.key, equals('http-request')); + expect(TalkerLogType.httpResponse.key, equals('http-response')); + expect(TalkerLogType.blocEvent.key, equals('bloc-event')); + expect(TalkerLogType.blocTransition.key, equals('bloc-transition')); + expect(TalkerLogType.blocClose.key, equals('bloc-close')); + expect(TalkerLogType.blocCreate.key, equals('bloc-create')); + expect(TalkerLogType.route.key, equals('route')); + }); + + test('fromLogLevel returns correct TalkerLogType', () { + expect(TalkerLogType.fromLogLevel(LogLevel.error), + equals(TalkerLogType.error)); + expect(TalkerLogType.fromLogLevel(LogLevel.critical), + equals(TalkerLogType.critical)); + expect(TalkerLogType.fromLogLevel(LogLevel.info), + equals(TalkerLogType.info)); + expect(TalkerLogType.fromLogLevel(LogLevel.debug), + equals(TalkerLogType.debug)); + expect(TalkerLogType.fromLogLevel(LogLevel.verbose), + equals(TalkerLogType.verbose)); + expect(TalkerLogType.fromLogLevel(LogLevel.warning), + equals(TalkerLogType.warning)); + }); + + test('fromKey returns correct TalkerLogType', () { + expect( + TalkerLogType.fromKey('error'), + equals(TalkerLogType.error), + ); + expect( + TalkerLogType.fromKey('critical'), + equals(TalkerLogType.critical), + ); + expect( + TalkerLogType.fromKey('info'), + equals(TalkerLogType.info), + ); + expect( + TalkerLogType.fromKey('debug'), + equals(TalkerLogType.debug), + ); + expect( + TalkerLogType.fromKey('verbose'), + equals(TalkerLogType.verbose), + ); + expect( + TalkerLogType.fromKey('warning'), + equals(TalkerLogType.warning), + ); + expect( + TalkerLogType.fromKey('exception'), + equals(TalkerLogType.exception), + ); + expect( + TalkerLogType.fromKey('http-error'), + equals(TalkerLogType.httpError), + ); + expect( + TalkerLogType.fromKey('http-request'), + equals(TalkerLogType.httpRequest), + ); + expect( + TalkerLogType.fromKey('http-response'), + equals(TalkerLogType.httpResponse), + ); + expect( + TalkerLogType.fromKey('bloc-event'), + equals(TalkerLogType.blocEvent), + ); + expect( + TalkerLogType.fromKey('bloc-transition'), + equals(TalkerLogType.blocTransition), + ); + expect( + TalkerLogType.fromKey('bloc-close'), + equals(TalkerLogType.blocClose), + ); + expect( + TalkerLogType.fromKey('bloc-create'), + equals(TalkerLogType.blocCreate), + ); + expect( + TalkerLogType.fromKey('route'), + equals(TalkerLogType.route), + ); + }); + }); +} diff --git a/packages/talker/test/well_known_titles_test.dart b/packages/talker/test/well_known_titles_test.dart deleted file mode 100644 index 4fe1f227..00000000 --- a/packages/talker/test/well_known_titles_test.dart +++ /dev/null @@ -1,17 +0,0 @@ -import 'package:talker/src/talker_key.dart'; -import 'package:test/test.dart'; - -void main() { - group('TalkerKey', () { - test('returns correct key for each enum value', () { - expect(TalkerLogType.error.key, equals('error')); - expect(TalkerLogType.exception.key, equals('exception')); - expect(TalkerLogType.httpError.key, equals('http-error')); - expect(TalkerLogType.httpRequest.key, equals('http-request')); - expect(TalkerLogType.httpResponse.key, equals('http-response')); - expect(TalkerLogType.blocEvent.key, equals('bloc-event')); - expect(TalkerLogType.blocTransition.key, equals('bloc-transition')); - expect(TalkerLogType.route.key, equals('route')); - }); - }); -} From ad9a48e8ac2255ec05e72659756bbb566c5d2eca Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 15:52:07 +0500 Subject: [PATCH 55/66] Update talker_logger tests --- .../test/talker_logger_log_level_test.dart | 38 ------------- .../test/talker_logger_settings_test.dart | 55 +++++++++++++++++++ 2 files changed, 55 insertions(+), 38 deletions(-) delete mode 100644 packages/talker_logger/test/talker_logger_log_level_test.dart create mode 100644 packages/talker_logger/test/talker_logger_settings_test.dart diff --git a/packages/talker_logger/test/talker_logger_log_level_test.dart b/packages/talker_logger/test/talker_logger_log_level_test.dart deleted file mode 100644 index 44bfc6d1..00000000 --- a/packages/talker_logger/test/talker_logger_log_level_test.dart +++ /dev/null @@ -1,38 +0,0 @@ -import 'package:talker_logger/talker_logger.dart'; -import 'package:test/test.dart'; - -// @TestOn('dart─vm') -void main() { - // final colorCases = { - // LogLevel.critical: AnsiPen()..red(), - // LogLevel.error: AnsiPen()..red(), - // LogLevel.debug: AnsiPen()..gray(), - // LogLevel.warning: AnsiPen()..yellow(), - // LogLevel.verbose: AnsiPen()..gray(), - // LogLevel.info: AnsiPen()..blue(), - // }; - - // final textCases = { - // LogLevel.critical: 'CRITICAL', - // LogLevel.error: 'ERROR', - // LogLevel.warning: 'WARNING', - // LogLevel.verbose: 'VERBOSE', - // LogLevel.info: 'INFO', - // LogLevel.good: 'GOOD', - // LogLevel.debug: 'DEBUG', - // }; - - setUp(() { - ansiColorDisabled = false; - }); - - tearDown(() { - ansiColorDisabled = false; - }); - - // group('LogLevel_To_Text', () { - // for (final lvl in textCases.entries) { - // _testLogLevelToTitle(lvl.key, lvl.value); - // } - // }); -} diff --git a/packages/talker_logger/test/talker_logger_settings_test.dart b/packages/talker_logger/test/talker_logger_settings_test.dart new file mode 100644 index 00000000..73300c05 --- /dev/null +++ b/packages/talker_logger/test/talker_logger_settings_test.dart @@ -0,0 +1,55 @@ +import 'package:talker_logger/talker_logger.dart'; +import 'package:test/test.dart'; + +void main() { + group('TalkerLoggerSettings', () { + test('constructor sets correct values', () { + final settings = TalkerLoggerSettings( + colors: {LogLevel.error: AnsiPen()..red()}, + defaultTitle: 'CUSTOM_TITLE', + level: LogLevel.error, + lineSymbol: '*', + maxLineWidth: 120, + enableColors: false, + ); + + expect(settings.colors.length, equals(6)); + expect(settings.defaultTitle, equals('CUSTOM_TITLE')); + expect(settings.level, equals(LogLevel.error)); + expect(settings.lineSymbol, equals('*')); + expect(settings.maxLineWidth, equals(120)); + expect(settings.enableColors, isFalse); + }); + + test('copyWith returns a new instance with updated values', () { + final originalSettings = TalkerLoggerSettings( + colors: {LogLevel.error: AnsiPen()..red()}, + defaultTitle: 'CUSTOM_TITLE', + level: LogLevel.error, + lineSymbol: '*', + maxLineWidth: 120, + enableColors: false, + ); + + final updatedSettings = originalSettings.copyWith( + colors: {LogLevel.debug: AnsiPen()..green()}, + defaultTitle: 'NEW_TITLE', + level: LogLevel.debug, + lineSymbol: '-', + maxLineWidth: 80, + enableColors: true, + ); + + expect( + updatedSettings.colors.length, + equals(6), + ); + expect(updatedSettings.colors[LogLevel.debug], isNotNull); + expect(updatedSettings.defaultTitle, equals('NEW_TITLE')); + expect(updatedSettings.level, equals(LogLevel.debug)); + expect(updatedSettings.lineSymbol, equals('-')); + expect(updatedSettings.maxLineWidth, equals(80)); + expect(updatedSettings.enableColors, isTrue); + }); + }); +} From 27bb1f0c828e385ef90293a08792b6536973e56a Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 15:58:13 +0500 Subject: [PATCH 56/66] Fix talker_logger tests coverage --- packages/talker_logger/test/talker_logger_test.dart | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/talker_logger/test/talker_logger_test.dart b/packages/talker_logger/test/talker_logger_test.dart index c0e9a268..a259b0e7 100644 --- a/packages/talker_logger/test/talker_logger_test.dart +++ b/packages/talker_logger/test/talker_logger_test.dart @@ -140,6 +140,17 @@ void main() { '${'────' * 1000}\n──────────────────────────────────────────────────────────────────────────────────────────────────────────────', ); }); + + test('output function is set correctly in the constructor', () { + final logs = []; + final logger = TalkerLogger(output: (message) => logs.add(message)); + + logger.log('Test Message'); + expect(logs.length, 1); + + logger.log('Test Message'); + expect(logs.length, 2); + }); }); } From 8fd088088fbe9e9fd5d8821475186714fc10feac Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 16:02:50 +0500 Subject: [PATCH 57/66] Add dio and bloc pipelines --- .github/workflows/talker_bloc_logger.yaml | 64 +++++++++++++++++++++++ .github/workflows/talker_dio_logger.yaml | 64 +++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 .github/workflows/talker_bloc_logger.yaml create mode 100644 .github/workflows/talker_dio_logger.yaml diff --git a/.github/workflows/talker_bloc_logger.yaml b/.github/workflows/talker_bloc_logger.yaml new file mode 100644 index 00000000..acf4ad13 --- /dev/null +++ b/.github/workflows/talker_bloc_logger.yaml @@ -0,0 +1,64 @@ +name: talker_bloc_logger + +on: + push: + paths: + - "packages/talker_bloc_logger/**" + - ".github/workflows/talker_bloc_logger.yaml" + + pull_request: + paths: + - "packages/talker_bloc_logger/**" + - ".github/workflows/talker_bloc_logger.yaml" + +jobs: + build: + defaults: + run: + working-directory: packages/talker_bloc_logger + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v3 + with: + java-version: "12.x" + distribution: 'zulu' + - uses: subosito/flutter-action@v2 + with: + channel: "stable" + + - name: Install Dependencies + run: flutter pub get + + - name: Format + run: dart format --set-exit-if-changed . + + - name: Analyze + run: flutter analyze --fatal-infos --fatal-warnings . + + - name: Run tests + run: flutter test --no-pub --coverage + + - name: Check Code Coverage + uses: VeryGoodOpenSource/very_good_coverage@v2.2.0 + with: + path: packages/talker_bloc_logger/coverage/lcov.info + min_coverage: 90 + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + # - name: Run Tests + # run: | + # pub global activate test_coverage + # export PATH=$PATH:$HOME/.pub-cache/bin + # test_coverage + # - name: Check Code Coverage + # uses: VeryGoodOpenSource/very_good_coverage@v2.2.0 + # with: + # min_coverage: 30 + # path: talker_bloc_logger_logger/coverage/lcov.info diff --git a/.github/workflows/talker_dio_logger.yaml b/.github/workflows/talker_dio_logger.yaml new file mode 100644 index 00000000..c276366a --- /dev/null +++ b/.github/workflows/talker_dio_logger.yaml @@ -0,0 +1,64 @@ +name: talker_dio_logger + +on: + push: + paths: + - "packages/talker_dio_logger/**" + - ".github/workflows/talker_dio_logger.yaml" + + pull_request: + paths: + - "packages/talker_dio_logger/**" + - ".github/workflows/talker_dio_logger.yaml" + +jobs: + build: + defaults: + run: + working-directory: packages/talker_dio_logger + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v3 + with: + java-version: "12.x" + distribution: 'zulu' + - uses: subosito/flutter-action@v2 + with: + channel: "stable" + + - name: Install Dependencies + run: flutter pub get + + - name: Format + run: dart format --set-exit-if-changed . + + - name: Analyze + run: flutter analyze --fatal-infos --fatal-warnings . + + - name: Run tests + run: flutter test --no-pub --coverage + + - name: Check Code Coverage + uses: VeryGoodOpenSource/very_good_coverage@v2.2.0 + with: + path: packages/talker_dio_logger/coverage/lcov.info + min_coverage: 90 + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + # - name: Run Tests + # run: | + # pub global activate test_coverage + # export PATH=$PATH:$HOME/.pub-cache/bin + # test_coverage + # - name: Check Code Coverage + # uses: VeryGoodOpenSource/very_good_coverage@v2.2.0 + # with: + # min_coverage: 30 + # path: talker_dio_logger_logger/coverage/lcov.info From 7d1f2876619091c76c40dfafc88265d1fa13a7d5 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 16:07:59 +0500 Subject: [PATCH 58/66] Update deps --- .../talker_dio_logger/example/pubspec.lock | 42 +++++++++---------- .../talker_dio_logger/test/logger_test.dart | 3 +- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index c6d717a7..599d94a0 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: ansicolor - sha256: "607f8fa9786f392043f169898923e6c59b4518242b68b8862eb8a8b7d9c30b4a" + sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.0.2" async: dependency: transitive description: @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" cross_file: dependency: transitive description: @@ -172,10 +172,10 @@ packages: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" mime: dependency: transitive description: @@ -297,18 +297,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -321,32 +321,32 @@ packages: dependency: transitive description: name: talker - sha256: "7e201122266de04d5e9006930affda68ec096cb3d3ee2994e78a997b961fd53f" + sha256: a6955477d0d8b25bcf7d0cef9a0ac7ec0dab49271ba3fceabd9e744166c5c84e url: "https://pub.dev" source: hosted - version: "4.0.0-dev.2" + version: "4.0.0-dev.3" talker_dio_logger: dependency: "direct main" description: path: ".." relative: true source: path - version: "4.0.0-dev.2" + version: "4.0.0-dev.3" talker_flutter: dependency: "direct main" description: path: "../../talker_flutter" relative: true source: path - version: "4.0.0-dev.2" + version: "4.0.0-dev.3" talker_logger: dependency: transitive description: name: talker_logger - sha256: "3f8d051e5821c4aa3c27efe8204829dde128724cbd0294ae3cee76b097cf2cbb" + sha256: e713cc713998bd2c871abb266f1d773dd47a4bca61e53679c5bc47d32bf83c97 url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.0.0-dev.3" term_glyph: dependency: transitive description: @@ -359,10 +359,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.1" typed_data: dependency: transitive description: @@ -423,10 +423,10 @@ packages: dependency: transitive description: name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 url: "https://pub.dev" source: hosted - version: "0.1.4-beta" + version: "0.3.0" win32: dependency: transitive description: @@ -444,5 +444,5 @@ packages: source: hosted version: "0.2.0+3" sdks: - dart: ">=3.1.0 <4.0.0" + dart: ">=3.2.0-194.0.dev <4.0.0" flutter: ">=3.13.0" diff --git a/packages/talker_dio_logger/test/logger_test.dart b/packages/talker_dio_logger/test/logger_test.dart index 155d1e78..103397a4 100644 --- a/packages/talker_dio_logger/test/logger_test.dart +++ b/packages/talker_dio_logger/test/logger_test.dart @@ -34,9 +34,10 @@ void main() { }); test('onResponse method should log http response headers', () { - logger = TalkerDioLogger( + final logger = TalkerDioLogger( talker: talker, settings: TalkerDioLoggerSettings(printResponseHeaders: true)); + final options = RequestOptions(path: '/test'); final response = Response( requestOptions: options, From ea30d79b664279f438e0d8782e1b591c58371eab Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Sun, 14 Jan 2024 16:14:01 +0500 Subject: [PATCH 59/66] Publish general version 4.0.0-dev.4 --- README.md | 8 +++---- examples/shop_app_example/pubspec.lock | 10 ++++----- packages/talker/CHANGELOG.md | 4 ++++ packages/talker/pubspec.yaml | 4 ++-- packages/talker_bloc_logger/CHANGELOG.md | 4 ++++ packages/talker_bloc_logger/README.md | 2 +- packages/talker_bloc_logger/pubspec.yaml | 4 ++-- packages/talker_dio_logger/CHANGELOG.md | 4 ++++ packages/talker_dio_logger/README.md | 2 +- .../talker_dio_logger/example/pubspec.lock | 8 +++---- .../talker_dio_logger/example/pubspec.yaml | 4 ++-- packages/talker_dio_logger/pubspec.yaml | 4 ++-- packages/talker_flutter/CHANGELOG.md | 4 ++++ packages/talker_flutter/pubspec.yaml | 4 ++-- packages/talker_http_logger/pubspec.yaml | 2 +- packages/talker_logger/CHANGELOG.md | 4 ++++ packages/talker_logger/README.md | 2 +- packages/talker_logger/pubspec.yaml | 2 +- utils/publish_all.sh | 21 +++++++++++++++++++ utils/publish_talker.sh | 4 ---- utils/publish_talker_flutter.sh | 4 ---- utils/publish_talker_logger.sh | 4 ---- 22 files changed, 69 insertions(+), 40 deletions(-) create mode 100644 utils/publish_all.sh delete mode 100644 utils/publish_talker.sh delete mode 100644 utils/publish_talker_flutter.sh delete mode 100644 utils/publish_talker_logger.sh diff --git a/README.md b/README.md index c8e73ac0..bfd7bf14 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Follow these steps to the coolest experience in error handling ### Add dependency ```yaml dependencies: - talker: ^4.0.0-dev.3 + talker: ^4.0.0-dev.4 ``` ### Easy to use @@ -218,7 +218,7 @@ Talker Flutter is an extension for the Dart Talker package that adds extra funct ### Add dependency ```yaml dependencies: - talker_flutter: ^4.0.0-dev.3 + talker_flutter: ^4.0.0-dev.4 ``` ### Setup @@ -387,7 +387,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^4.0.0-dev.3 + talker_dio_logger: ^4.0.0-dev.4 ``` ### Usage @@ -437,7 +437,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^4.0.0-dev.3 + talker_bloc_logger: ^4.0.0-dev.4 ``` ### Usage diff --git a/examples/shop_app_example/pubspec.lock b/examples/shop_app_example/pubspec.lock index 441b92e0..fc4fa168 100644 --- a/examples/shop_app_example/pubspec.lock +++ b/examples/shop_app_example/pubspec.lock @@ -427,35 +427,35 @@ packages: path: "../../packages/talker" relative: true source: path - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" talker_bloc_logger: dependency: "direct main" description: path: "../../packages/talker_bloc_logger" relative: true source: path - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" talker_dio_logger: dependency: "direct main" description: path: "../../packages/talker_dio_logger" relative: true source: path - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" talker_flutter: dependency: "direct main" description: path: "../../packages/talker_flutter" relative: true source: path - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" talker_logger: dependency: "direct overridden" description: path: "../../packages/talker_logger" relative: true source: path - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" term_glyph: dependency: transitive description: diff --git a/packages/talker/CHANGELOG.md b/packages/talker/CHANGELOG.md index 147136e9..e409891f 100644 --- a/packages/talker/CHANGELOG.md +++ b/packages/talker/CHANGELOG.md @@ -1,3 +1,7 @@ +# 4.0.0-dev.4 +- Add new tests to make 100% coverage +- Fix linter issues + # 4.0.0-dev.3 - Update **talker_logger** settings setup method diff --git a/packages/talker/pubspec.yaml b/packages/talker/pubspec.yaml index 3e23f76d..06a08665 100644 --- a/packages/talker/pubspec.yaml +++ b/packages/talker/pubspec.yaml @@ -1,6 +1,6 @@ name: talker description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 4.0.0-dev.3 +version: 4.0.0-dev.4 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -16,7 +16,7 @@ environment: sdk: '>=2.17.0 <4.0.0' dependencies: - talker_logger: ^4.0.0-dev.3 + talker_logger: ^4.0.0-dev.4 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_bloc_logger/CHANGELOG.md b/packages/talker_bloc_logger/CHANGELOG.md index 1032ca72..46d4e145 100644 --- a/packages/talker_bloc_logger/CHANGELOG.md +++ b/packages/talker_bloc_logger/CHANGELOG.md @@ -1,3 +1,7 @@ +# 4.0.0-dev.4 +- Add new tests to make 100% coverage +- Fix linter issues + # 4.0.0-dev.3 - Update **talker_logger** settings setup method diff --git a/packages/talker_bloc_logger/README.md b/packages/talker_bloc_logger/README.md index 507f42b2..7eb1fb4e 100644 --- a/packages/talker_bloc_logger/README.md +++ b/packages/talker_bloc_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_bloc_logger: ^4.0.0-dev.3 + talker_bloc_logger: ^4.0.0-dev.4 ``` ### Usage diff --git a/packages/talker_bloc_logger/pubspec.yaml b/packages/talker_bloc_logger/pubspec.yaml index fdf5d277..b0d2023d 100644 --- a/packages/talker_bloc_logger/pubspec.yaml +++ b/packages/talker_bloc_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_bloc_logger description: Lightweight and customizable BLoC state management library logger on talker base. -version: 4.0.0-dev.3 +version: 4.0.0-dev.4 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -16,7 +16,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - talker: ^4.0.0-dev.3 + talker: ^4.0.0-dev.4 bloc: ^8.1.1 meta: ^1.8.0 diff --git a/packages/talker_dio_logger/CHANGELOG.md b/packages/talker_dio_logger/CHANGELOG.md index ae477ff7..0d569b8e 100644 --- a/packages/talker_dio_logger/CHANGELOG.md +++ b/packages/talker_dio_logger/CHANGELOG.md @@ -1,3 +1,7 @@ +# 4.0.0-dev.4 +- Add new tests to make 100% coverage +- Fix linter issues + # 4.0.0-dev.3 - Update **talker_logger** settings setup method diff --git a/packages/talker_dio_logger/README.md b/packages/talker_dio_logger/README.md index 87b14f04..12fbe3ed 100644 --- a/packages/talker_dio_logger/README.md +++ b/packages/talker_dio_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_dio_logger: ^4.0.0-dev.3 + talker_dio_logger: ^4.0.0-dev.4 ``` ### Usage diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index 599d94a0..522b5cb6 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -324,21 +324,21 @@ packages: sha256: a6955477d0d8b25bcf7d0cef9a0ac7ec0dab49271ba3fceabd9e744166c5c84e url: "https://pub.dev" source: hosted - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" talker_dio_logger: dependency: "direct main" description: path: ".." relative: true source: path - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" talker_flutter: dependency: "direct main" description: path: "../../talker_flutter" relative: true source: path - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" talker_logger: dependency: transitive description: @@ -346,7 +346,7 @@ packages: sha256: e713cc713998bd2c871abb266f1d773dd47a4bca61e53679c5bc47d32bf83c97 url: "https://pub.dev" source: hosted - version: "4.0.0-dev.3" + version: "4.0.0-dev.4" term_glyph: dependency: transitive description: diff --git a/packages/talker_dio_logger/example/pubspec.yaml b/packages/talker_dio_logger/example/pubspec.yaml index cc4b992f..6bd21a25 100644 --- a/packages/talker_dio_logger/example/pubspec.yaml +++ b/packages/talker_dio_logger/example/pubspec.yaml @@ -10,8 +10,8 @@ dependencies: flutter: sdk: flutter dio: ^5.0.0 - talker_dio_logger: ^4.0.0-dev.3 - talker_flutter: ^4.0.0-dev.3 + talker_dio_logger: ^4.0.0-dev.4 + talker_flutter: ^4.0.0-dev.4 dev_dependencies: flutter_test: diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index dded7b10..4d426e44 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_dio_logger description: Lightweight and customizable dio http client logger on talker base -version: 4.0.0-dev.3 +version: 4.0.0-dev.4 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker @@ -18,7 +18,7 @@ environment: dependencies: dio: ^5.2.0 - talker: ^4.0.0-dev.3 + talker: ^4.0.0-dev.4 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_flutter/CHANGELOG.md b/packages/talker_flutter/CHANGELOG.md index a396772c..a8dfa5df 100644 --- a/packages/talker_flutter/CHANGELOG.md +++ b/packages/talker_flutter/CHANGELOG.md @@ -1,3 +1,7 @@ +# 4.0.0-dev.4 +- Add new tests to make 100% coverage +- Fix linter issues + # 4.0.0-dev.3 - Update **talker_logger** settings setup method diff --git a/packages/talker_flutter/pubspec.yaml b/packages/talker_flutter/pubspec.yaml index 3774c197..4211baa5 100644 --- a/packages/talker_flutter/pubspec.yaml +++ b/packages/talker_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_flutter description: Advanced error handler and logger package for flutter and dart. App monitoring, logs history, report sharing, custom logs, and etc. -version: 4.0.0-dev.3 +version: 4.0.0-dev.4 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues @@ -20,7 +20,7 @@ dependencies: flutter: sdk: flutter - talker: ^4.0.0-dev.3 + talker: ^4.0.0-dev.4 group_button: ^5.3.3 path_provider: ^2.1.1 share_plus: ^7.2.1 diff --git a/packages/talker_http_logger/pubspec.yaml b/packages/talker_http_logger/pubspec.yaml index 220fac9b..fb3b885e 100644 --- a/packages/talker_http_logger/pubspec.yaml +++ b/packages/talker_http_logger/pubspec.yaml @@ -8,7 +8,7 @@ environment: dependencies: http_interceptor: ^2.0.0-beta.7 - talker: ^4.0.0-dev.3 + talker: ^4.0.0-dev.4 dev_dependencies: lints: ^2.0.0 diff --git a/packages/talker_logger/CHANGELOG.md b/packages/talker_logger/CHANGELOG.md index e8cc4476..804857d8 100644 --- a/packages/talker_logger/CHANGELOG.md +++ b/packages/talker_logger/CHANGELOG.md @@ -1,3 +1,7 @@ +# 4.0.0-dev.4 +- Add new tests to make 100% coverage +- Fix linter issues + # 4.0.0-dev.3 - Update settings setup method - Fix migration issues diff --git a/packages/talker_logger/README.md b/packages/talker_logger/README.md index 3c0ccadc..b82a772b 100644 --- a/packages/talker_logger/README.md +++ b/packages/talker_logger/README.md @@ -23,7 +23,7 @@ Follow these steps to use this package ### Add dependency ```yaml dependencies: - talker_logger: ^4.0.0-dev.3 + talker_logger: ^4.0.0-dev.4 ``` ### Easy to use diff --git a/packages/talker_logger/pubspec.yaml b/packages/talker_logger/pubspec.yaml index 86abc768..fc0b670a 100644 --- a/packages/talker_logger/pubspec.yaml +++ b/packages/talker_logger/pubspec.yaml @@ -1,6 +1,6 @@ name: talker_logger description: Logger. Easy, customizable, extensible logging, lightweight with filters, formatters, custom logs, log levels. -version: 4.0.0-dev.3 +version: 4.0.0-dev.4 homepage: https://github.com/Frezyx/talker repository: https://github.com/Frezyx/talker issue_tracker: https://github.com/Frezyx/talker/issues diff --git a/utils/publish_all.sh b/utils/publish_all.sh new file mode 100644 index 00000000..34be60ad --- /dev/null +++ b/utils/publish_all.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +cd packages/talker_logger +flutter pub publish +cd ../../ + +cd packages/talker +flutter pub publish +cd ../../ + +cd packages/talker_flutter +flutter pub publish +cd ../../ + +cd packages/talker_dio_logger +flutter pub publish +cd ../../ + +cd packages/talker_bloc_logger +flutter pub publish +cd ../../ \ No newline at end of file diff --git a/utils/publish_talker.sh b/utils/publish_talker.sh deleted file mode 100644 index dafdbd6d..00000000 --- a/utils/publish_talker.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd packages/talker -flutter pub publish \ No newline at end of file diff --git a/utils/publish_talker_flutter.sh b/utils/publish_talker_flutter.sh deleted file mode 100644 index 041236a0..00000000 --- a/utils/publish_talker_flutter.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd packages/talker_flutter -flutter pub publish \ No newline at end of file diff --git a/utils/publish_talker_logger.sh b/utils/publish_talker_logger.sh deleted file mode 100644 index b5f45431..00000000 --- a/utils/publish_talker_logger.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd packages/talker_logger -flutter pub publish \ No newline at end of file From fbbe5158ca0099719c7aeee2c4fa9d1b5710364a Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Wed, 17 Jan 2024 20:04:09 +0500 Subject: [PATCH 60/66] Add dio logger settings test --- .../talker_dio_logger/test/logger_test.dart | 2 +- .../talker_dio_logger/test/settings_test.dart | 91 +++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 packages/talker_dio_logger/test/settings_test.dart diff --git a/packages/talker_dio_logger/test/logger_test.dart b/packages/talker_dio_logger/test/logger_test.dart index 103397a4..3999e92e 100644 --- a/packages/talker_dio_logger/test/logger_test.dart +++ b/packages/talker_dio_logger/test/logger_test.dart @@ -49,7 +49,7 @@ void main() { '[http-response] [GET] /test\n' 'Status: 200\n' 'Headers: {\n' - ' "header": [\n' + ' "HEADER": [\n' ' "VALUE"\n' ' ]\n' '}'); diff --git a/packages/talker_dio_logger/test/settings_test.dart b/packages/talker_dio_logger/test/settings_test.dart new file mode 100644 index 00000000..03ac9bcb --- /dev/null +++ b/packages/talker_dio_logger/test/settings_test.dart @@ -0,0 +1,91 @@ +import 'package:dio/dio.dart'; +import 'package:talker/talker.dart'; +import 'package:talker_dio_logger/talker_dio_logger.dart'; +import 'package:test/test.dart'; + +void main() { + group('TalkerDioLoggerSettings', () { + test('copyWith should create a new instance with the provided values', () { + final originalSettings = TalkerDioLoggerSettings(); + final updatedSettings = originalSettings.copyWith( + printResponseData: false, + printRequestHeaders: true, + requestPen: AnsiPen()..yellow(), + responseFilter: null, + ); + + expect(updatedSettings.printResponseData, equals(false)); + expect(updatedSettings.printRequestHeaders, equals(true)); + expect( + updatedSettings.requestPen, isNot(same(originalSettings.requestPen))); + expect(updatedSettings.responseFilter, isNull); + }); + + test('requestFilter should return true for allowed paths', () { + final settings = TalkerDioLoggerSettings( + requestFilter: (RequestOptions requestOptions) => + requestOptions.path == '/allowed'); + final allowedRequestOptions = + RequestOptions(path: '/allowed', method: 'GET'); + final disallowedRequestOptions = + RequestOptions(path: '/disallowed', method: 'GET'); + + expect(settings.requestFilter!(allowedRequestOptions), equals(true)); + expect(settings.requestFilter!(disallowedRequestOptions), equals(false)); + }); + + test('responseFilter should return true for successful responses', () { + final settings = TalkerDioLoggerSettings( + responseFilter: (Response response) => response.statusCode == 200); + final successfulResponse = Response( + requestOptions: RequestOptions(path: '/test'), statusCode: 200); + final unsuccessfulResponse = Response( + requestOptions: RequestOptions(path: '/test'), statusCode: 404); + + expect(settings.responseFilter!(successfulResponse), equals(true)); + expect(settings.responseFilter!(unsuccessfulResponse), equals(false)); + }); + + test( + 'copyWith should create a new instance with updated values for all fields', + () { + final originalSettings = TalkerDioLoggerSettings( + printResponseData: true, + printResponseHeaders: false, + printResponseMessage: true, + printRequestData: true, + printRequestHeaders: false, + requestPen: AnsiPen()..green(), + responsePen: AnsiPen()..cyan(), + errorPen: AnsiPen()..red(), + ); + + final updatedSettings = originalSettings.copyWith( + printResponseData: false, + printRequestHeaders: true, + requestPen: AnsiPen()..yellow(), + ); + + expect(updatedSettings.printResponseData, equals(false)); + expect(updatedSettings.printResponseHeaders, equals(false)); + expect(updatedSettings.printResponseMessage, equals(true)); + expect(updatedSettings.printRequestData, equals(true)); + expect( + updatedSettings.printRequestHeaders, + equals(true), + ); + expect( + updatedSettings.requestPen, + isNot(same(originalSettings.requestPen)), + ); + expect( + updatedSettings.responsePen, + equals(originalSettings.responsePen), + ); + expect( + updatedSettings.errorPen, + equals(originalSettings.errorPen), + ); + }); + }); +} From 81f3ada580fe99f85a5a2d2a08a18883af5c023a Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 18 Jan 2024 01:59:45 +0500 Subject: [PATCH 61/66] Add dio_logger logs tests --- packages/talker_dio_logger/lib/dio_logs.dart | 6 +- .../talker_dio_logger/test/logs_test.dart | 215 ++++++++++++++++++ 2 files changed, 218 insertions(+), 3 deletions(-) create mode 100644 packages/talker_dio_logger/test/logs_test.dart diff --git a/packages/talker_dio_logger/lib/dio_logs.dart b/packages/talker_dio_logger/lib/dio_logs.dart index ba0168aa..06ae1362 100644 --- a/packages/talker_dio_logger/lib/dio_logs.dart +++ b/packages/talker_dio_logger/lib/dio_logs.dart @@ -114,7 +114,7 @@ class DioErrorLog extends TalkerLog { final responseMessage = dioException.message; final statusCode = dioException.response?.statusCode; final data = dioException.response?.data; - final headers = dioException.requestOptions.headers; + final headers = dioException.response?.headers; if (statusCode != null) { msg += '\nStatus: ${dioException.response?.statusCode}'; @@ -125,8 +125,8 @@ class DioErrorLog extends TalkerLog { final prettyData = encoder.convert(data); msg += '\nData: $prettyData'; } - if (headers.isNotEmpty) { - final prettyHeaders = encoder.convert(headers); + if (!(headers?.isEmpty ?? true)) { + final prettyHeaders = encoder.convert(headers!.map); msg += '\nHeaders: $prettyHeaders'; } return msg; diff --git a/packages/talker_dio_logger/test/logs_test.dart b/packages/talker_dio_logger/test/logs_test.dart new file mode 100644 index 00000000..e845b7f0 --- /dev/null +++ b/packages/talker_dio_logger/test/logs_test.dart @@ -0,0 +1,215 @@ +import 'package:dio/dio.dart'; +import 'package:talker_dio_logger/dio_logs.dart'; +import 'package:talker_dio_logger/talker_dio_logger.dart'; +import 'package:test/test.dart'; + +void main() { + group('DioRequestLog', () { + test('generateTextMessage should include method and message', () { + final requestOptions = RequestOptions(path: '/test', method: 'GET'); + final settings = TalkerDioLoggerSettings(); + final dioRequestLog = DioRequestLog('Test message', + requestOptions: requestOptions, settings: settings); + + final result = dioRequestLog.generateTextMessage(); + + expect(result, contains('[GET] Test message')); + }); + + test('generateTextMessage should include data if printRequestData is true', + () { + final requestOptions = + RequestOptions(path: '/test', method: 'POST', data: {'key': 'value'}); + final settings = TalkerDioLoggerSettings(printRequestData: true); + final dioRequestLog = DioRequestLog('Test message', + requestOptions: requestOptions, settings: settings); + + final result = dioRequestLog.generateTextMessage(); + + expect(result, contains('Data: {\n "key": "value"\n}')); + }); + + test( + 'generateTextMessage should include headers if printRequestHeaders is true', + () { + final requestOptions = RequestOptions( + path: '/test', + method: 'GET', + headers: {'Authorization': 'Bearer Token'}); + final settings = TalkerDioLoggerSettings(printRequestHeaders: true); + final dioRequestLog = DioRequestLog('Test message', + requestOptions: requestOptions, settings: settings); + + final result = dioRequestLog.generateTextMessage(); + + expect( + result, contains('Headers: {\n "Authorization": "Bearer Token"\n}')); + }); + + // Add more tests for DioRequestLog as needed + }); + + group('DioResponseLog', () { + test('generateTextMessage should include method, message, and status', () { + final response = Response( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + statusCode: 200, + data: {'key': 'value'}, + headers: Headers.fromMap({ + 'content-type': ['application/json'] + }), + ); + final settings = TalkerDioLoggerSettings(); + final dioResponseLog = DioResponseLog('Test message', + response: response, settings: settings); + + final result = dioResponseLog.generateTextMessage(); + + expect(result, contains('[GET] Test message')); + expect(result, contains('Status: 200')); + expect(result, contains('Data: {\n "key": "value"\n}')); + }); + + test( + 'generateTextMessage should include message if printResponseMessage is true', + () { + final response = Response( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + statusCode: 200, + statusMessage: 'OK', + ); + final settings = TalkerDioLoggerSettings(printResponseMessage: true); + final dioResponseLog = DioResponseLog('Test message', + response: response, settings: settings); + + final result = dioResponseLog.generateTextMessage(); + + expect(result, contains('Message: OK')); + }); + + test( + 'generateTextMessage should include headers if printResponseHeaders is true', + () { + final response = Response( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + statusCode: 200, + headers: Headers.fromMap({ + 'content-type': ['application/json'], + }), + ); + final settings = TalkerDioLoggerSettings(printResponseHeaders: true); + final dioResponseLog = DioResponseLog('Test message', + response: response, settings: settings); + + final result = dioResponseLog.generateTextMessage(); + + expect( + result, + contains('Headers: {\n' + ' "content-type": [\n' + ' "application/json"\n' + ' ]\n' + '}')); + }); + + // Add more tests for DioResponseLog as needed + }); + + group('DioErrorLog', () { + test('generateTextMessage should include method, title, and message', () { + final dioException = DioException( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + message: 'Error message', + ); + final settings = TalkerDioLoggerSettings(); + final dioErrorLog = DioErrorLog('Error title', + dioException: dioException, settings: settings); + + final result = dioErrorLog.generateTextMessage(); + + expect( + result, + contains('[log] [GET] Error title\n' + 'Message: Error message')); + }); + + test( + 'generateTextMessage should include status if response has a status code', + () { + final response = Response( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + statusCode: 404, + ); + final dioException = DioException( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + response: response, + message: 'Error message', + ); + + final settings = TalkerDioLoggerSettings(); + final dioErrorLog = DioErrorLog('Error title', + dioException: dioException, settings: settings); + + final result = dioErrorLog.generateTextMessage(); + + expect(result, contains('Status: 404')); + }); + + test('generateTextMessage should include data if response has data', () { + final response = Response( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + statusCode: 500, + data: {'error': 'Internal Server Error'}, + ); + + final dioException = DioException( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + message: 'Error message', + response: response, + ); + + final settings = TalkerDioLoggerSettings(); + final dioErrorLog = DioErrorLog('Error title', + dioException: dioException, settings: settings); + + final result = dioErrorLog.generateTextMessage(); + + expect( + result, contains('Data: {\n "error": "Internal Server Error"\n}')); + }); + + test('generateTextMessage should include headers if request has headers', + () { + final response = Response( + requestOptions: RequestOptions(path: '/test', method: 'GET')); + response.headers = Headers.fromMap( + { + 'content-type': ['application/json'], + }, + ); + final dioException = DioException( + requestOptions: RequestOptions(path: '/test', method: 'GET'), + message: 'Error message', + response: response, + ); + + final settings = TalkerDioLoggerSettings(printResponseHeaders: true); + final dioErrorLog = DioErrorLog('Error title', + dioException: dioException, settings: settings); + + final result = dioErrorLog.generateTextMessage(); + + expect( + result, + contains( + 'Headers: {\n' + ' "content-type": [\n' + ' "application/json"\n' + ' ]\n' + '}', + )); + }); + + // Add more tests for DioErrorLog as needed + }); +} From d721820a4c16a24084c94f45502457ca146c643a Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 18 Jan 2024 02:30:30 +0500 Subject: [PATCH 62/66] Add new dio_logger tests and update dio version to 5.4.0 --- examples/shop_app_example/pubspec.lock | 4 +-- .../talker_dio_logger/example/pubspec.lock | 8 ++--- packages/talker_dio_logger/pubspec.yaml | 2 +- .../talker_dio_logger/test/logger_test.dart | 14 ++++++++ .../talker_dio_logger/test/logs_test.dart | 22 ++++++++---- packages/talker_flutter/example/pubspec.lock | 36 +++++++++---------- 6 files changed, 54 insertions(+), 32 deletions(-) diff --git a/examples/shop_app_example/pubspec.lock b/examples/shop_app_example/pubspec.lock index fc4fa168..389eeac5 100644 --- a/examples/shop_app_example/pubspec.lock +++ b/examples/shop_app_example/pubspec.lock @@ -85,10 +85,10 @@ packages: dependency: "direct main" description: name: dio - sha256: a9d76e72985d7087eb7c5e7903224ae52b337131518d127c554b9405936752b8 + sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3" url: "https://pub.dev" source: hosted - version: "5.2.1+1" + version: "5.4.0" equatable: dependency: "direct main" description: diff --git a/packages/talker_dio_logger/example/pubspec.lock b/packages/talker_dio_logger/example/pubspec.lock index 522b5cb6..0acef3df 100644 --- a/packages/talker_dio_logger/example/pubspec.lock +++ b/packages/talker_dio_logger/example/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: dio - sha256: "417e2a6f9d83ab396ec38ff4ea5da6c254da71e4db765ad737a42af6930140b7" + sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3" url: "https://pub.dev" source: hosted - version: "5.3.3" + version: "5.4.0" fake_async: dependency: transitive description: @@ -321,7 +321,7 @@ packages: dependency: transitive description: name: talker - sha256: a6955477d0d8b25bcf7d0cef9a0ac7ec0dab49271ba3fceabd9e744166c5c84e + sha256: "03fe90cf78a36cb5672783c0011eab19d9a3e15bcb904188b0eb2700e01710d6" url: "https://pub.dev" source: hosted version: "4.0.0-dev.4" @@ -343,7 +343,7 @@ packages: dependency: transitive description: name: talker_logger - sha256: e713cc713998bd2c871abb266f1d773dd47a4bca61e53679c5bc47d32bf83c97 + sha256: "03fcc54a4c1205caa65ac28f01a91a2b394ff2621190381e49e5e0fabd463534" url: "https://pub.dev" source: hosted version: "4.0.0-dev.4" diff --git a/packages/talker_dio_logger/pubspec.yaml b/packages/talker_dio_logger/pubspec.yaml index 4d426e44..bca70256 100644 --- a/packages/talker_dio_logger/pubspec.yaml +++ b/packages/talker_dio_logger/pubspec.yaml @@ -17,7 +17,7 @@ environment: sdk: '>=2.15.0 <4.0.0' dependencies: - dio: ^5.2.0 + dio: ^5.4.0 talker: ^4.0.0-dev.4 dev_dependencies: diff --git a/packages/talker_dio_logger/test/logger_test.dart b/packages/talker_dio_logger/test/logger_test.dart index 3999e92e..4b0e4f67 100644 --- a/packages/talker_dio_logger/test/logger_test.dart +++ b/packages/talker_dio_logger/test/logger_test.dart @@ -1,5 +1,6 @@ import 'package:dio/dio.dart'; import 'package:talker/talker.dart'; +import 'package:talker_dio_logger/dio_logs.dart'; import 'package:talker_dio_logger/talker_dio_logger.dart'; import 'package:test/test.dart'; @@ -33,6 +34,19 @@ void main() { expect(talker.history.last.message, logMessage); }); + test('onError should log DioErrorLog', () async { + final talker = Talker(); + final logger = TalkerDioLogger(talker: talker); + final dio = Dio(); + dio.interceptors.add(logger); + + try { + await dio.get('asdsada'); + } catch (_) {} + expect(talker.history, isNotEmpty); + expect(talker.history.last, isA()); + }); + test('onResponse method should log http response headers', () { final logger = TalkerDioLogger( talker: talker, diff --git a/packages/talker_dio_logger/test/logs_test.dart b/packages/talker_dio_logger/test/logs_test.dart index e845b7f0..99f814a0 100644 --- a/packages/talker_dio_logger/test/logs_test.dart +++ b/packages/talker_dio_logger/test/logs_test.dart @@ -1,4 +1,5 @@ import 'package:dio/dio.dart'; +import 'package:talker/talker.dart'; import 'package:talker_dio_logger/dio_logs.dart'; import 'package:talker_dio_logger/talker_dio_logger.dart'; import 'package:test/test.dart'; @@ -7,9 +8,14 @@ void main() { group('DioRequestLog', () { test('generateTextMessage should include method and message', () { final requestOptions = RequestOptions(path: '/test', method: 'GET'); - final settings = TalkerDioLoggerSettings(); - final dioRequestLog = DioRequestLog('Test message', - requestOptions: requestOptions, settings: settings); + final settings = TalkerDioLoggerSettings( + requestPen: AnsiPen()..blue(), + ); + final dioRequestLog = DioRequestLog( + 'Test message', + requestOptions: requestOptions, + settings: settings, + ); final result = dioRequestLog.generateTextMessage(); @@ -59,7 +65,9 @@ void main() { 'content-type': ['application/json'] }), ); - final settings = TalkerDioLoggerSettings(); + final settings = TalkerDioLoggerSettings( + responsePen: AnsiPen()..blue(), + ); final dioResponseLog = DioResponseLog('Test message', response: response, settings: settings); @@ -121,7 +129,9 @@ void main() { requestOptions: RequestOptions(path: '/test', method: 'GET'), message: 'Error message', ); - final settings = TalkerDioLoggerSettings(); + final settings = TalkerDioLoggerSettings( + errorPen: AnsiPen()..blue(), + ); final dioErrorLog = DioErrorLog('Error title', dioException: dioException, settings: settings); @@ -209,7 +219,5 @@ void main() { '}', )); }); - - // Add more tests for DioErrorLog as needed }); } diff --git a/packages/talker_flutter/example/pubspec.lock b/packages/talker_flutter/example/pubspec.lock index 63290ff2..5e05ec17 100644 --- a/packages/talker_flutter/example/pubspec.lock +++ b/packages/talker_flutter/example/pubspec.lock @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" cross_file: dependency: transitive description: @@ -164,10 +164,10 @@ packages: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" mime: dependency: transitive description: @@ -289,18 +289,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -313,25 +313,25 @@ packages: dependency: transitive description: name: talker - sha256: "7e201122266de04d5e9006930affda68ec096cb3d3ee2994e78a997b961fd53f" + sha256: "03fe90cf78a36cb5672783c0011eab19d9a3e15bcb904188b0eb2700e01710d6" url: "https://pub.dev" source: hosted - version: "4.0.0-dev.2" + version: "4.0.0-dev.4" talker_flutter: dependency: "direct main" description: path: ".." relative: true source: path - version: "4.0.0-dev.2" + version: "4.0.0-dev.4" talker_logger: dependency: transitive description: name: talker_logger - sha256: "3f8d051e5821c4aa3c27efe8204829dde128724cbd0294ae3cee76b097cf2cbb" + sha256: "03fcc54a4c1205caa65ac28f01a91a2b394ff2621190381e49e5e0fabd463534" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.0.0-dev.4" term_glyph: dependency: transitive description: @@ -344,10 +344,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.1" typed_data: dependency: transitive description: @@ -408,10 +408,10 @@ packages: dependency: transitive description: name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 url: "https://pub.dev" source: hosted - version: "0.1.4-beta" + version: "0.3.0" win32: dependency: transitive description: @@ -429,5 +429,5 @@ packages: source: hosted version: "0.2.0+3" sdks: - dart: ">=3.1.0-185.0.dev <4.0.0" + dart: ">=3.2.0-194.0.dev <4.0.0" flutter: ">=3.7.0" From 8694edc0e317e91250dfea512d3493063a937a9c Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 18 Jan 2024 02:43:28 +0500 Subject: [PATCH 63/66] Update observer_test.dart --- packages/talker_bloc_logger/test/observer_test.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/talker_bloc_logger/test/observer_test.dart b/packages/talker_bloc_logger/test/observer_test.dart index 51fa9162..a0e11931 100644 --- a/packages/talker_bloc_logger/test/observer_test.dart +++ b/packages/talker_bloc_logger/test/observer_test.dart @@ -41,8 +41,10 @@ void main() { final expectedError = Exception('Test error'); final expectedStackTrace = StackTrace.current; testBloc.addError(expectedError, expectedStackTrace); - expect(talker.history.first.generateTextMessage(), - contains(expectedError.toString())); + expect( + talker.history.last.generateTextMessage(), + contains('error'), + ); }); }); } From 32cae6988698141d4e070921f9d9ac14b698e174 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 18 Jan 2024 19:43:25 +0500 Subject: [PATCH 64/66] Add bloc_logs and bloc_settings tests --- .../talker_bloc_logger/test/logs_test.dart | 94 +++++++++++++++++++ .../test/settings_test.dart | 47 ++++++++++ 2 files changed, 141 insertions(+) create mode 100644 packages/talker_bloc_logger/test/logs_test.dart create mode 100644 packages/talker_bloc_logger/test/settings_test.dart diff --git a/packages/talker_bloc_logger/test/logs_test.dart b/packages/talker_bloc_logger/test/logs_test.dart new file mode 100644 index 00000000..4d2a1d5d --- /dev/null +++ b/packages/talker_bloc_logger/test/logs_test.dart @@ -0,0 +1,94 @@ +import 'package:bloc/bloc.dart'; +import 'package:talker/talker.dart'; +import 'package:talker_bloc_logger/talker_bloc_logger.dart'; +import 'package:test/test.dart'; + +class FakeBloc extends Bloc { + FakeBloc() : super(''); +} + +class FakeTransition extends Transition { + FakeTransition({required currentState, required event, required nextState}) + : super(currentState: currentState, event: event, nextState: nextState); +} + +class FakeChange extends Change { + FakeChange({required currentState, required nextState}) + : super(currentState: currentState, nextState: nextState); +} + +void main() { + group('BlocEventLog', () { + test('Constructor should set values correctly', () { + final fakeBloc = FakeBloc(); + final fakeEvent = Object(); + final fakeSettings = TalkerBlocLoggerSettings(); + + final log = BlocEventLog( + bloc: fakeBloc, event: fakeEvent, settings: fakeSettings); + + expect(log.bloc, fakeBloc); + expect(log.event, fakeEvent); + expect(log.settings, fakeSettings); + expect(log.key, TalkerLogType.blocEvent.key); + }); + }); + + group('BlocStateLog', () { + test('Constructor should set values correctly', () { + final fakeBloc = FakeBloc(); + final fakeTransition = FakeTransition( + currentState: '', + event: '', + nextState: '', + ); + final fakeSettings = TalkerBlocLoggerSettings(); + + final log = BlocStateLog( + bloc: fakeBloc, transition: fakeTransition, settings: fakeSettings); + + expect(log.bloc, fakeBloc); + expect(log.transition, fakeTransition); + expect(log.settings, fakeSettings); + expect(log.key, TalkerLogType.blocTransition.key); + }); + }); + + group('BlocChangeLog', () { + test('Constructor should set values correctly', () { + final fakeBloc = FakeBloc(); + final fakeChange = FakeChange(currentState: '', nextState: ''); + final fakeSettings = TalkerBlocLoggerSettings(); + + final log = BlocChangeLog( + bloc: fakeBloc, change: fakeChange, settings: fakeSettings); + + expect(log.bloc, fakeBloc); + expect(log.change, fakeChange); + expect(log.settings, fakeSettings); + expect(log.key, TalkerLogType.blocTransition.key); + }); + }); + + group('BlocCreateLog', () { + test('Constructor should set values correctly', () { + final fakeBloc = FakeBloc(); + + final log = BlocCreateLog(bloc: fakeBloc); + + expect(log.bloc, fakeBloc); + expect(log.key, TalkerLogType.blocCreate.key); + }); + }); + + group('BlocCloseLog', () { + test('Constructor should set values correctly', () { + final fakeBloc = FakeBloc(); + + final log = BlocCloseLog(bloc: fakeBloc); + + expect(log.bloc, fakeBloc); + expect(log.key, TalkerLogType.blocClose.key); + }); + }); +} diff --git a/packages/talker_bloc_logger/test/settings_test.dart b/packages/talker_bloc_logger/test/settings_test.dart new file mode 100644 index 00000000..dc25a4fc --- /dev/null +++ b/packages/talker_bloc_logger/test/settings_test.dart @@ -0,0 +1,47 @@ +import 'package:talker_bloc_logger/talker_bloc_logger.dart'; +import 'package:test/test.dart'; + +void main() { + group('TalkerBlocLoggerSettings', () { + test('Default settings', () { + final settings = TalkerBlocLoggerSettings(); + + expect(settings.enabled, true); + expect(settings.printEvents, true); + expect(settings.printTransitions, true); + expect(settings.printChanges, false); + expect(settings.printEventFullData, true); + expect(settings.printStateFullData, true); + expect(settings.printCreations, false); + expect(settings.printClosings, false); + expect(settings.transitionFilter, isNull); + expect(settings.eventFilter, isNull); + }); + + test('Custom settings', () { + final settings = TalkerBlocLoggerSettings( + enabled: false, + printEvents: false, + printTransitions: false, + printChanges: true, + printEventFullData: false, + printStateFullData: false, + printCreations: true, + printClosings: true, + transitionFilter: (bloc, transition) => true, + eventFilter: (bloc, event) => true, + ); + + expect(settings.enabled, false); + expect(settings.printEvents, false); + expect(settings.printTransitions, false); + expect(settings.printChanges, true); + expect(settings.printEventFullData, false); + expect(settings.printStateFullData, false); + expect(settings.printCreations, true); + expect(settings.printClosings, true); + expect(settings.transitionFilter, isNotNull); + expect(settings.eventFilter, isNotNull); + }); + }); +} From 1a04caf6284f274c1e0e80ca90e655623a0ff1f7 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Thu, 18 Jan 2024 19:54:31 +0500 Subject: [PATCH 65/66] Add closing and change logs --- .../test/observer_test.dart | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/packages/talker_bloc_logger/test/observer_test.dart b/packages/talker_bloc_logger/test/observer_test.dart index a0e11931..48ae46b5 100644 --- a/packages/talker_bloc_logger/test/observer_test.dart +++ b/packages/talker_bloc_logger/test/observer_test.dart @@ -46,6 +46,34 @@ void main() { contains('error'), ); }); + + test('onChange is called with correct parameters', () async { + final updatedObserver = TalkerBlocObserver( + settings: TalkerBlocLoggerSettings(enabled: true, printChanges: true), + talker: talker, + ); + Bloc.observer = updatedObserver; + + final expectedEvent = 'test_event'; + final expectedState = 'test_state'; + testBloc.add(expectedEvent); + await Future.delayed(const Duration(milliseconds: 10)); + final log = talker.history.last; + expect(log.generateTextMessage(), contains(expectedState)); + }); + + test('onClose is called with correct parameters', () async { + final talkerBlocObserver = TalkerBlocObserver( + settings: TalkerBlocLoggerSettings(enabled: true, printClosings: true), + talker: talker, + ); + Bloc.observer = talkerBlocObserver; + testBloc = TestBloc(); + await testBloc.close(); + + expect(talker.history, isNotEmpty); + expect(talker.history.last.generateTextMessage(), contains('closed')); + }); }); } From 3d58691c5d70e9efd442ccf3745adc8d96b39806 Mon Sep 17 00:00:00 2001 From: Stanislav Ilin Date: Fri, 19 Jan 2024 00:18:38 +0500 Subject: [PATCH 66/66] Add new tests --- .../talker_bloc_logger/test/logs_test.dart | 20 ++++++- .../test/observer_test.dart | 57 +++++++++++++++++-- 2 files changed, 70 insertions(+), 7 deletions(-) diff --git a/packages/talker_bloc_logger/test/logs_test.dart b/packages/talker_bloc_logger/test/logs_test.dart index 4d2a1d5d..7602ba56 100644 --- a/packages/talker_bloc_logger/test/logs_test.dart +++ b/packages/talker_bloc_logger/test/logs_test.dart @@ -61,12 +61,20 @@ void main() { final fakeSettings = TalkerBlocLoggerSettings(); final log = BlocChangeLog( - bloc: fakeBloc, change: fakeChange, settings: fakeSettings); + bloc: fakeBloc, + change: fakeChange, + settings: fakeSettings, + ); expect(log.bloc, fakeBloc); expect(log.change, fakeChange); expect(log.settings, fakeSettings); expect(log.key, TalkerLogType.blocTransition.key); + + final message = log.generateTextMessage(); + expect(message, isA()); + expect(message, isNotEmpty); + expect(message, contains('change')); }); }); @@ -78,6 +86,11 @@ void main() { expect(log.bloc, fakeBloc); expect(log.key, TalkerLogType.blocCreate.key); + + final message = log.generateTextMessage(); + expect(message, isA()); + expect(message, isNotEmpty); + expect(message, contains('create')); }); }); @@ -89,6 +102,11 @@ void main() { expect(log.bloc, fakeBloc); expect(log.key, TalkerLogType.blocClose.key); + + final message = log.generateTextMessage(); + expect(message, isA()); + expect(message, isNotEmpty); + expect(message, contains('close')); }); }); } diff --git a/packages/talker_bloc_logger/test/observer_test.dart b/packages/talker_bloc_logger/test/observer_test.dart index 48ae46b5..98bdeada 100644 --- a/packages/talker_bloc_logger/test/observer_test.dart +++ b/packages/talker_bloc_logger/test/observer_test.dart @@ -21,14 +21,35 @@ void main() { testBloc = TestBloc(); }); - test('onEvent is called with correct parameters', () { + test('onEvent full data', () { final expectedEvent = 'test_event'; testBloc.add(expectedEvent); expect( - talker.history.first.generateTextMessage(), contains(expectedEvent)); + talker.history.first.generateTextMessage(), + contains(expectedEvent), + ); }); - test('onTransition is called with correct parameters', () async { + test('onEvent split data', () { + talkerBlocObserver = TalkerBlocObserver( + settings: TalkerBlocLoggerSettings( + enabled: true, + printEventFullData: false, + ), + talker: talker, + ); + Bloc.observer = talkerBlocObserver; + testBloc = TestBloc(); + + final expectedEvent = 'test_event'; + testBloc.add(expectedEvent); + expect( + talker.history.first.generateTextMessage(), + contains(expectedEvent.runtimeType.toString()), + ); + }); + + test('onTransition full data', () async { final expectedEvent = 'test_event'; final expectedState = 'test_state'; testBloc.add(expectedEvent); @@ -37,7 +58,31 @@ void main() { expect(log.generateTextMessage(), contains(expectedState)); }); - test('onError is called with correct parameters', () { + test('onTransition split data', () async { + talkerBlocObserver = TalkerBlocObserver( + settings: TalkerBlocLoggerSettings( + enabled: true, + printEventFullData: false, + printStateFullData: false, + ), + talker: talker, + ); + Bloc.observer = talkerBlocObserver; + testBloc = TestBloc(); + + final expectedEvent = 'test_event'; + final expectedState = 'test_state'; + + testBloc.add(expectedEvent); + await Future.delayed(const Duration(milliseconds: 10)); + final log = talker.history.last; + expect( + log.generateTextMessage(), + contains(expectedState.runtimeType.toString()), + ); + }); + + test('onError ', () { final expectedError = Exception('Test error'); final expectedStackTrace = StackTrace.current; testBloc.addError(expectedError, expectedStackTrace); @@ -47,7 +92,7 @@ void main() { ); }); - test('onChange is called with correct parameters', () async { + test('onChange ', () async { final updatedObserver = TalkerBlocObserver( settings: TalkerBlocLoggerSettings(enabled: true, printChanges: true), talker: talker, @@ -62,7 +107,7 @@ void main() { expect(log.generateTextMessage(), contains(expectedState)); }); - test('onClose is called with correct parameters', () async { + test('onClose ', () async { final talkerBlocObserver = TalkerBlocObserver( settings: TalkerBlocLoggerSettings(enabled: true, printClosings: true), talker: talker,