From a724238ba08bc1742abcd5f15d32c53cb6b3aaa8 Mon Sep 17 00:00:00 2001 From: Khushboo1702 Date: Fri, 14 Jul 2023 11:03:25 +0530 Subject: [PATCH 1/2] fix(common): temp commit --- lib/api_logger.dart | 20 ++++ lib/src/app_log_impl.dart | 7 ++ lib/src/base/app_log.dart | 3 + pubspec.lock | 231 +++++++++++++++++++++++++++++++++++++- pubspec.yaml | 4 +- 5 files changed, 262 insertions(+), 3 deletions(-) create mode 100644 lib/api_logger.dart diff --git a/lib/api_logger.dart b/lib/api_logger.dart new file mode 100644 index 0000000..a8d749b --- /dev/null +++ b/lib/api_logger.dart @@ -0,0 +1,20 @@ +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_core/firebase_core.dart'; + +class ApiLogger { + final CollectionReference _logsCollection = + FirebaseFirestore.instance.collection('api_logs'); + + Future logEvent(String endpoint, String method, String response) async { + await Firebase.initializeApp(); + + final logData = { + 'timestamp': DateTime.now(), + 'endpoint': endpoint, + 'method': method, + 'response': response, + }; + + await _logsCollection.add(logData); + } +} diff --git a/lib/src/app_log_impl.dart b/lib/src/app_log_impl.dart index cfdb688..195e7b6 100644 --- a/lib/src/app_log_impl.dart +++ b/lib/src/app_log_impl.dart @@ -1,5 +1,6 @@ import 'package:logger/logger.dart'; +import '../api_logger.dart'; import 'base/app_log.dart'; import 'logger/output/my_console_output.dart'; import 'logger/printer/my_pretty_printer.dart'; @@ -16,6 +17,7 @@ class AppLogImpl implements AppLog { final String? packageName; late Logger _logger; + final apiLogger = ApiLogger(); @override void d(object) { @@ -46,4 +48,9 @@ class AppLogImpl implements AppLog { void wtf(object) { _logger.wtf(object); } + + @override + void r(String endpoint, String method, String response) { + apiLogger.logEvent(endpoint, method, response); + } } diff --git a/lib/src/base/app_log.dart b/lib/src/base/app_log.dart index e7e28db..fe5b376 100644 --- a/lib/src/base/app_log.dart +++ b/lib/src/base/app_log.dart @@ -24,4 +24,7 @@ abstract class AppLog { /// For logging some Unusual Behaviour void wtf(dynamic object); + + ///For logging events remotely + void r(String endpoints, String method, String response); } diff --git a/pubspec.lock b/pubspec.lock index 5b9b873..0f72608 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,14 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: "2f428053492f92303e42c9afa8e3a78ad1886760e7b594e2b5a6b6ee47376360" + url: "https://pub.dev" + source: hosted + version: "1.0.2" ansicolor: dependency: "direct main" description: @@ -9,6 +17,125 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" + async: + dependency: transitive + description: + name: async + sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + url: "https://pub.dev" + source: hosted + version: "2.10.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + url: "https://pub.dev" + source: hosted + version: "1.2.1" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + cloud_firestore: + dependency: "direct main" + description: + name: cloud_firestore + sha256: "9194bf1845ee073bea64ec94e72c9dcf5d15f755e96496d8ccfee9def38b666f" + url: "https://pub.dev" + source: hosted + version: "3.5.1" + cloud_firestore_platform_interface: + dependency: transitive + description: + name: cloud_firestore_platform_interface + sha256: d023142c18c28b2610c23c196e829c96976569cc2aa2f8e45328ae8a64c428d1 + url: "https://pub.dev" + source: hosted + version: "5.7.7" + cloud_firestore_web: + dependency: transitive + description: + name: cloud_firestore_web + sha256: "3d7d4fa8c1dc5a1f7cb33985ae0ab9924d33d76d4959fe26aed84b7d282887e3" + url: "https://pub.dev" + source: hosted + version: "2.8.10" + collection: + dependency: transitive + description: + name: collection + sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + url: "https://pub.dev" + source: hosted + version: "1.17.0" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + firebase_core: + dependency: transitive + description: + name: firebase_core + sha256: "4f1d7c13a909e82ff026679c9b8493cdeb35a9c76bc46c42bf9e2240c9e57e80" + url: "https://pub.dev" + source: hosted + version: "1.24.0" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: b63e3be6c96ef5c33bdec1aab23c91eb00696f6452f0519401d640938c94cba2 + url: "https://pub.dev" + source: hosted + version: "4.8.0" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: "839f1b48032a61962792cea1225fae030d4f27163867f181d6d2072dd40acbee" + url: "https://pub.dev" + source: hosted + version: "1.7.3" + flutter: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_test: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + js: + dependency: transitive + description: + name: js + sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" + url: "https://pub.dev" + source: hosted + version: "0.6.5" logger: dependency: "direct main" description: @@ -17,6 +144,38 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + url: "https://pub.dev" + source: hosted + version: "0.12.13" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + meta: + dependency: transitive + description: + name: meta + sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + url: "https://pub.dev" + source: hosted + version: "1.8.0" + path: + dependency: transitive + description: + name: path + sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + url: "https://pub.dev" + source: hosted + version: "1.8.2" pedantic: dependency: "direct dev" description: @@ -25,5 +184,75 @@ packages: url: "https://pub.dev" source: hosted version: "1.11.1" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + url: "https://pub.dev" + source: hosted + version: "0.4.16" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.18.0 <3.0.0" + flutter: ">=3.3.0" diff --git a/pubspec.yaml b/pubspec.yaml index a9394eb..f6699ca 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,9 +10,9 @@ environment: dependencies: ansicolor: ^2.0.1 logger: ^1.2.1 + cloud_firestore: ^3.1.0 dev_dependencies: pedantic: ^1.11.0 - # For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec \ No newline at end of file +# following page: https://dart.dev/tools/pub/pubspec From ad6a8667d222793c5e7e55f67f77c1823626beed Mon Sep 17 00:00:00 2001 From: Taranjeet Singh Date: Wed, 9 Aug 2023 11:34:04 +0530 Subject: [PATCH 2/2] feat(api-logger): implement user info logger Signed-off-by: Taranjeet Singh --- lib/api_logger.dart | 20 --- lib/fa_dart_logger.dart | 2 + lib/src/app_log_impl.dart | 35 +++- lib/src/base/app_log.dart | 9 +- lib/src/logger/helper/log_helper.dart | 47 ++++++ lib/src/logger/model/index.dart | 2 + lib/src/logger/model/log_info.dart | 105 ++++++++++++ lib/src/logger/model/user_info.dart | 25 +++ pubspec.lock | 231 +------------------------- pubspec.yaml | 1 - 10 files changed, 221 insertions(+), 256 deletions(-) delete mode 100644 lib/api_logger.dart create mode 100644 lib/src/logger/helper/log_helper.dart create mode 100644 lib/src/logger/model/index.dart create mode 100644 lib/src/logger/model/log_info.dart create mode 100644 lib/src/logger/model/user_info.dart diff --git a/lib/api_logger.dart b/lib/api_logger.dart deleted file mode 100644 index a8d749b..0000000 --- a/lib/api_logger.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:cloud_firestore/cloud_firestore.dart'; -import 'package:firebase_core/firebase_core.dart'; - -class ApiLogger { - final CollectionReference _logsCollection = - FirebaseFirestore.instance.collection('api_logs'); - - Future logEvent(String endpoint, String method, String response) async { - await Firebase.initializeApp(); - - final logData = { - 'timestamp': DateTime.now(), - 'endpoint': endpoint, - 'method': method, - 'response': response, - }; - - await _logsCollection.add(logData); - } -} diff --git a/lib/fa_dart_logger.dart b/lib/fa_dart_logger.dart index 1e60a7d..acdb6de 100644 --- a/lib/fa_dart_logger.dart +++ b/lib/fa_dart_logger.dart @@ -2,3 +2,5 @@ library fa_dart_logger; export 'src/app_log_impl.dart'; export 'src/base/app_log.dart'; +export 'src/logger/helper/log_helper.dart'; +export 'src/logger/model/index.dart'; diff --git a/lib/src/app_log_impl.dart b/lib/src/app_log_impl.dart index 195e7b6..ff37032 100644 --- a/lib/src/app_log_impl.dart +++ b/lib/src/app_log_impl.dart @@ -1,7 +1,8 @@ +import 'package:fa_dart_logger/src/logger/helper/log_helper.dart'; import 'package:logger/logger.dart'; -import '../api_logger.dart'; import 'base/app_log.dart'; +import 'logger/model/index.dart'; import 'logger/output/my_console_output.dart'; import 'logger/printer/my_pretty_printer.dart'; @@ -17,7 +18,13 @@ class AppLogImpl implements AppLog { final String? packageName; late Logger _logger; - final apiLogger = ApiLogger(); + + UserInfo? _userInfo; + + // ignore: avoid_setters_without_getters + set userInfo(UserInfo userInfo) { + _userInfo = userInfo; + } @override void d(object) { @@ -49,8 +56,28 @@ class AppLogImpl implements AppLog { _logger.wtf(object); } + /// [userInfo] must be set, before calling this method @override - void r(String endpoint, String method, String response) { - apiLogger.logEvent(endpoint, method, response); + void r( + LogInfo logInfo, { + Severity severity = Severity.high, + }) { + if (_userInfo == null) { + d("Initialise user info before calling this method"); + return; + } + + /// TODO(@singhtaranjeet): Will capture the priority from remote config + const remotePriority = Severity.high; + + if (shouldCaptureLog( + remoteSeverity: remotePriority, logSeverity: severity)) { + // Log the data to API Logger + final logData = + ApiLogInfo.fromLogInfo(logInfo: logInfo, userInfo: _userInfo!); + + /// TODO(@singhtaranjeet): call remote log api + _logger.i(logData); + } } } diff --git a/lib/src/base/app_log.dart b/lib/src/base/app_log.dart index fe5b376..61c44fb 100644 --- a/lib/src/base/app_log.dart +++ b/lib/src/base/app_log.dart @@ -1,3 +1,7 @@ +import 'package:fa_dart_logger/src/logger/helper/log_helper.dart'; + +import '../logger/model/index.dart'; + /// [AppLog] is used to provide an abstract logger base for various /// logging needs. Extend this class to create your own logging /// class for every logging usage. You can replace [print] and use @@ -26,5 +30,8 @@ abstract class AppLog { void wtf(dynamic object); ///For logging events remotely - void r(String endpoints, String method, String response); + void r( + LogInfo logInfo, { + Severity severity = Severity.high, + }); } diff --git a/lib/src/logger/helper/log_helper.dart b/lib/src/logger/helper/log_helper.dart new file mode 100644 index 0000000..45c03af --- /dev/null +++ b/lib/src/logger/helper/log_helper.dart @@ -0,0 +1,47 @@ +enum Severity { + /// High Priority logs are Most important logs like errors, exceptions + /// Agenda of high tag is to `capture less but capture rock solid information` + high, + + /// Medium priority logs are all the things that are good to have like + /// warnings, api logs, and all sorts of things. + medium, + + /// Low priority logs are everything + /// be it widget push, route information, snapshot of data. + /// Agenda of these logs are to + /// `Capture everything and make goldmine of data to resolve the issues` + low, +} + +Severity getSeverity(String severity) { + switch (severity) { + case "high": + return Severity.high; + case "medium": + return Severity.medium; + case "low": + return Severity.low; + default: + return Severity.high; + } +} + +/// It is used to determine whether to capture the log or not +bool shouldCaptureLog( + {required Severity remoteSeverity, required Severity logSeverity}) { + if (remoteSeverity == Severity.low) { + return true; + } + + if (remoteSeverity == Severity.medium && + (logSeverity == Severity.medium || logSeverity == Severity.high)) { + return true; + } + + if (remoteSeverity == Severity.high && logSeverity == Severity.high) { + return true; + } + + return false; +} diff --git a/lib/src/logger/model/index.dart b/lib/src/logger/model/index.dart new file mode 100644 index 0000000..0d5f314 --- /dev/null +++ b/lib/src/logger/model/index.dart @@ -0,0 +1,2 @@ +export 'log_info.dart'; +export 'user_info.dart'; diff --git a/lib/src/logger/model/log_info.dart b/lib/src/logger/model/log_info.dart new file mode 100644 index 0000000..3399d4d --- /dev/null +++ b/lib/src/logger/model/log_info.dart @@ -0,0 +1,105 @@ +import 'package:fa_dart_logger/fa_dart_logger.dart'; + +/// Use this for logging remotely logger.r() +class LogInfo { + LogInfo({ + this.endpoint, + this.method, + this.response, + this.request, + this.error, + this.stackTrace, + this.warning, + this.message, + String? severity, + }) : severity = severity ?? Severity.high.name.toLowerCase(), + date = DateTime.now().toIso8601String(); + + final String? endpoint; + final String? method; + final String? response; + final String? request; + final String? error; + final StackTrace? stackTrace; + final String? warning; + final String? message; + final String severity; + final String date; + + @override + String toString() { + return """LogInfo{endpoint: $endpoint, method: $method, response: $response, request: $request, error: $error, stackTrace: $stackTrace, warning: $warning, message: $message}, severity: $severity date: $date"""; + } +} + +/// Use this for send log to remote logging server +class ApiLogInfo extends LogInfo { + ApiLogInfo({ + required this.userInfo, + String? endpoint, + String? method, + String? response, + String? request, + String? error, + StackTrace? stackTrace, + String? warning, + String? message, + String? severity, + }) : userInfoBatch = userInfo.getUcid(), + super( + endpoint: endpoint, + method: method, + response: response, + request: request, + error: error, + stackTrace: stackTrace, + warning: warning, + message: message, + severity: severity, + ); + + factory ApiLogInfo.fromLogInfo({ + required LogInfo logInfo, + required UserInfo userInfo, + }) { + return ApiLogInfo( + endpoint: logInfo.endpoint, + method: logInfo.method, + response: logInfo.response, + request: logInfo.request, + error: logInfo.error, + stackTrace: logInfo.stackTrace, + warning: logInfo.warning, + message: logInfo.message, + userInfo: userInfo, + ); + } + + final UserInfo userInfo; + + /// This batch is just user info seperated by underscore for better searching + /// for example: userName_id_companyId + final String userInfoBatch; + + @override + String toString() { + return """ApiLogInfo{endpoint: $endpoint, method: $method, response: $response, request: $request, error: $error, stackTrace: $stackTrace, warning: $warning, message: $message, userInfo: $userInfo} userInfoBatch: $userInfoBatch, severity: $severity date: $date"""; + } + + Map toJson() { + return { + "endpoint": endpoint, + "method": method, + "response": response, + "request": request, + "error": error, + "stackTrace": stackTrace.toString(), + "warning": warning, + "message": message, + "userInfo": userInfo.toJson(), + "userInfoBatch": userInfoBatch, + "severity": severity, + "date": date, + }; + } +} diff --git a/lib/src/logger/model/user_info.dart b/lib/src/logger/model/user_info.dart new file mode 100644 index 0000000..155fbc4 --- /dev/null +++ b/lib/src/logger/model/user_info.dart @@ -0,0 +1,25 @@ +class UserInfo { + UserInfo({ + required this.name, + required this.id, + required this.companyId, + }); + + final String name; + final String id; + final String companyId; + + @override + String toString() => 'UserInfo{name: $name, id: $id, companyId: $companyId}'; + + /// Short for user_id company_companyId + String getUcid() => "${id}_${companyId}_"; + + Map toJson() { + return { + "name": name, + "id": id, + "companyId": companyId, + }; + } +} diff --git a/pubspec.lock b/pubspec.lock index 0f72608..5b9b873 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,14 +1,6 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - _flutterfire_internals: - dependency: transitive - description: - name: _flutterfire_internals - sha256: "2f428053492f92303e42c9afa8e3a78ad1886760e7b594e2b5a6b6ee47376360" - url: "https://pub.dev" - source: hosted - version: "1.0.2" ansicolor: dependency: "direct main" description: @@ -17,125 +9,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.1" - async: - dependency: transitive - description: - name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 - url: "https://pub.dev" - source: hosted - version: "2.10.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - characters: - dependency: transitive - description: - name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c - url: "https://pub.dev" - source: hosted - version: "1.2.1" - clock: - dependency: transitive - description: - name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" - source: hosted - version: "1.1.1" - cloud_firestore: - dependency: "direct main" - description: - name: cloud_firestore - sha256: "9194bf1845ee073bea64ec94e72c9dcf5d15f755e96496d8ccfee9def38b666f" - url: "https://pub.dev" - source: hosted - version: "3.5.1" - cloud_firestore_platform_interface: - dependency: transitive - description: - name: cloud_firestore_platform_interface - sha256: d023142c18c28b2610c23c196e829c96976569cc2aa2f8e45328ae8a64c428d1 - url: "https://pub.dev" - source: hosted - version: "5.7.7" - cloud_firestore_web: - dependency: transitive - description: - name: cloud_firestore_web - sha256: "3d7d4fa8c1dc5a1f7cb33985ae0ab9924d33d76d4959fe26aed84b7d282887e3" - url: "https://pub.dev" - source: hosted - version: "2.8.10" - collection: - dependency: transitive - description: - name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 - url: "https://pub.dev" - source: hosted - version: "1.17.0" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - firebase_core: - dependency: transitive - description: - name: firebase_core - sha256: "4f1d7c13a909e82ff026679c9b8493cdeb35a9c76bc46c42bf9e2240c9e57e80" - url: "https://pub.dev" - source: hosted - version: "1.24.0" - firebase_core_platform_interface: - dependency: transitive - description: - name: firebase_core_platform_interface - sha256: b63e3be6c96ef5c33bdec1aab23c91eb00696f6452f0519401d640938c94cba2 - url: "https://pub.dev" - source: hosted - version: "4.8.0" - firebase_core_web: - dependency: transitive - description: - name: firebase_core_web - sha256: "839f1b48032a61962792cea1225fae030d4f27163867f181d6d2072dd40acbee" - url: "https://pub.dev" - source: hosted - version: "1.7.3" - flutter: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - flutter_test: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - js: - dependency: transitive - description: - name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" - url: "https://pub.dev" - source: hosted - version: "0.6.5" logger: dependency: "direct main" description: @@ -144,38 +17,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.1" - matcher: - dependency: transitive - description: - name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" - url: "https://pub.dev" - source: hosted - version: "0.12.13" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 - url: "https://pub.dev" - source: hosted - version: "0.2.0" - meta: - dependency: transitive - description: - name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" - url: "https://pub.dev" - source: hosted - version: "1.8.0" - path: - dependency: transitive - description: - name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b - url: "https://pub.dev" - source: hosted - version: "1.8.2" pedantic: dependency: "direct dev" description: @@ -184,75 +25,5 @@ packages: url: "https://pub.dev" source: hosted version: "1.11.1" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.99" - source_span: - dependency: transitive - description: - name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" - source: hosted - version: "1.9.1" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" - source: hosted - version: "1.11.0" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 - url: "https://pub.dev" - source: hosted - version: "0.4.16" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" - source: hosted - version: "2.1.4" sdks: - dart: ">=2.18.0 <3.0.0" - flutter: ">=3.3.0" + dart: ">=2.12.0 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index f6699ca..881635d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -10,7 +10,6 @@ environment: dependencies: ansicolor: ^2.0.1 logger: ^1.2.1 - cloud_firestore: ^3.1.0 dev_dependencies: pedantic: ^1.11.0