From 8b546214eb0cc3ed584cecc6037911058ffdec8a Mon Sep 17 00:00:00 2001 From: Vitalij Date: Mon, 8 Sep 2025 16:39:33 +0300 Subject: [PATCH 1/7] =?UTF-8?q?feature(collections):=20=D0=97=D0=B0=D0=B3?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=B0=D0=BF=D0=B8.=20=D0=9F=D0=B5=D1=80=D0=B5=D0=BA=D0=BB?= =?UTF-8?q?=D1=8E=D1=87=D0=B0=D0=BB=D0=BA=D0=B0=20=D0=BA=D0=BE=D0=BB=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dart_tool/package_config.json | 1140 +---------------- .flutter-plugins-dependencies | 2 +- Makefile | 8 +- lib/common/services/api_client.dart | 22 +- .../collections/collections_screen.dart | 2 + .../widgets/collections_filters.dart | 73 +- .../collection/collections_interface.dart | 4 + .../collection/collections_service.dart | 35 + lib/services/tickets/tickets_interface.dart | 4 + lib/services/tickets/tickets_service.dart | 38 + pubspec.yaml | 2 +- 11 files changed, 142 insertions(+), 1188 deletions(-) diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index bd2a7c0..0110c84 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -1,1139 +1 @@ -{ - "configVersion": 2, - "packages": [ - { - "name": "_fe_analyzer_shared", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-80.0.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "analyzer", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "ansicolor", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ansicolor-2.0.3", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "archive", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.5", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "args", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.7.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "async", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "auto_route", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.1", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "auto_route_generator", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route_generator-10.0.1", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "bloc", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/bloc-9.0.0", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "boolean_selector", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "build", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build-2.4.2", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "build_config", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_config-1.1.2", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "build_daemon", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_daemon-4.0.4", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "build_resolvers", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_resolvers-2.4.4", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "build_runner", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner-2.4.15", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "build_runner_core", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner_core-8.0.0", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "build_verify", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_verify-3.1.0", - "packageUri": "lib/", - "languageVersion": "2.18" - }, - { - "name": "built_collection", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "built_value", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.5", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "characters", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/characters-1.4.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "charcode", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/charcode-1.4.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "checked_yaml", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/checked_yaml-2.0.3", - "packageUri": "lib/", - "languageVersion": "2.19" - }, - { - "name": "cli_util", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cli_util-0.4.2", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "clock", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/clock-1.1.2", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "code_builder", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/code_builder-4.10.1", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "collection", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/collection-1.19.1", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "color", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/color-3.0.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "convert", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/convert-3.1.2", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "coverage", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/coverage-1.11.1", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "cross_file", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cross_file-0.3.4+2", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "crypto", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/crypto-3.0.6", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "csv", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/csv-6.0.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "cupertino_icons", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "dart_style", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dart_style-3.0.1", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "dartx", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dartx-1.2.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "db_viewer", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/db_viewer-1.1.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "dio", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio-5.8.0+1", - "packageUri": "lib/", - "languageVersion": "2.18" - }, - { - "name": "dio_smart_retry", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_smart_retry-7.0.1", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "dio_web_adapter", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "drift", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.26.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "drift_db_viewer", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0", - "packageUri": "lib/", - "languageVersion": "2.13" - }, - { - "name": "drift_dev", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.26.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "event_bus", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/event_bus-2.0.1", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "fake_async", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fake_async-1.3.2", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "ffi", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ffi-2.1.4", - "packageUri": "lib/", - "languageVersion": "3.7" - }, - { - "name": "file", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "file_picker", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "fixnum", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fixnum-1.1.1", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "flutter", - "rootUri": "file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter", - "packageUri": "lib/", - "languageVersion": "3.7" - }, - { - "name": "flutter_bloc", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_bloc-9.1.0", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "flutter_displaymode", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "flutter_gen_core", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_core-5.10.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "flutter_gen_runner", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_runner-5.10.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "flutter_keyboard_size", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1", - "packageUri": "lib/", - "languageVersion": "2.18" - }, - { - "name": "flutter_launcher_icons", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.14.3", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "flutter_lints", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "flutter_localizations", - "rootUri": "file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_localizations", - "packageUri": "lib/", - "languageVersion": "3.7" - }, - { - "name": "flutter_plugin_android_lifecycle", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "flutter_screenutil", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3", - "packageUri": "lib/", - "languageVersion": "2.17" - }, - { - "name": "flutter_secure_storage", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "flutter_secure_storage_linux", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "flutter_secure_storage_macos", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "flutter_secure_storage_platform_interface", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "flutter_secure_storage_web", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "flutter_secure_storage_windows", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "flutter_slidable", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_slidable-4.0.0", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "flutter_test", - "rootUri": "file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_test", - "packageUri": "lib/", - "languageVersion": "3.7" - }, - { - "name": "flutter_web_plugins", - "rootUri": "file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_web_plugins", - "packageUri": "lib/", - "languageVersion": "3.7" - }, - { - "name": "fluttertoast", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "fps_widget", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fps_widget-1.0.1+2", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "freezed", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed-2.5.8", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "freezed_annotation", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed_annotation-2.4.4", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "frontend_server_client", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "functional_listener", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/functional_listener-2.3.1", - "packageUri": "lib/", - "languageVersion": "2.18" - }, - { - "name": "get_it", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it-7.7.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "get_it_mixin", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it_mixin-4.2.2", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "glob", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/glob-2.1.3", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "google_fonts", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/google_fonts-6.2.1", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "graphs", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "group_button", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/group_button-5.3.4", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "hashcodes", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hashcodes-2.0.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "hive_ce", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce-2.10.1", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "hive_ce_flutter", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_flutter-2.2.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "hive_ce_generator", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_generator-1.8.2", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "http", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http-1.3.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "http_multi_server", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2", - "packageUri": "lib/", - "languageVersion": "3.2" - }, - { - "name": "http_parser", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "image", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "image_size_getter", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "import_sorter", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/import_sorter-4.6.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "injectable", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable-2.5.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "injectable_generator", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable_generator-2.7.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "intl", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/intl-0.19.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "io", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/io-1.0.5", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "js", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/js-0.6.7", - "packageUri": "lib/", - "languageVersion": "2.19" - }, - { - "name": "json2yaml", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json2yaml-3.0.1", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "json_annotation", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_annotation-4.9.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "json_serializable", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_serializable-6.9.4", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "leak_tracker", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker-10.0.8", - "packageUri": "lib/", - "languageVersion": "3.2" - }, - { - "name": "leak_tracker_flutter_testing", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9", - "packageUri": "lib/", - "languageVersion": "3.2" - }, - { - "name": "leak_tracker_testing", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1", - "packageUri": "lib/", - "languageVersion": "3.2" - }, - { - "name": "lints", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/lints-5.1.1", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "logging", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/logging-1.3.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "matcher", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/matcher-0.12.17", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "material_color_utilities", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1", - "packageUri": "lib/", - "languageVersion": "2.17" - }, - { - "name": "meta", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/meta-1.16.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "mime", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/mime-2.0.0", - "packageUri": "lib/", - "languageVersion": "3.2" - }, - { - "name": "modal_bottom_sheet", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/modal_bottom_sheet-3.0.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "nested", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/nested-1.0.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "node_preamble", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "package_config", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.2.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "package_info_plus", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "package_info_plus_platform_interface", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-3.2.0", - "packageUri": "lib/", - "languageVersion": "2.18" - }, - { - "name": "path", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path-1.9.1", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "path_parsing", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_parsing-1.1.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "path_provider", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "path_provider_android", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "path_provider_foundation", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "path_provider_linux", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1", - "packageUri": "lib/", - "languageVersion": "2.19" - }, - { - "name": "path_provider_platform_interface", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "path_provider_windows", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0", - "packageUri": "lib/", - "languageVersion": "3.2" - }, - { - "name": "petitparser", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/petitparser-6.1.0", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "pin_code_fields", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pin_code_fields-8.0.1", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "platform", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/platform-3.1.6", - "packageUri": "lib/", - "languageVersion": "3.2" - }, - { - "name": "plugin_platform_interface", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "pool", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pool-1.5.1", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "posix", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "provider", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.4", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "pub_semver", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.2.0", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "pubspec_parse", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "readmore", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/readmore-3.0.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "recase", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "share_plus", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "share_plus_platform_interface", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus_platform_interface-5.0.2", - "packageUri": "lib/", - "languageVersion": "2.18" - }, - { - "name": "shelf", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf-1.4.2", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "shelf_packages_handler", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2", - "packageUri": "lib/", - "languageVersion": "2.17" - }, - { - "name": "shelf_static", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_static-1.1.3", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "shelf_web_socket", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "sky_engine", - "rootUri": "file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/bin/cache/pkg/sky_engine", - "packageUri": "lib/", - "languageVersion": "3.7" - }, - { - "name": "slang", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.6.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "slang_build_runner", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.6.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "slang_flutter", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.6.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "source_gen", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_gen-2.0.0", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "source_helper", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_helper-1.3.5", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "source_map_stack_trace", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "source_maps", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_maps-0.10.13", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "source_span", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_span-1.10.1", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "sprintf", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "sqlite3", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.5", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "sqlite3_flutter_libs", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "sqlparser", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlparser-0.41.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "stack_trace", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stack_trace-1.12.1", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "stream_channel", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_channel-2.1.4", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "stream_transform", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_transform-2.1.1", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "string_scanner", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "talker", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker-4.7.1", - "packageUri": "lib/", - "languageVersion": "2.17" - }, - { - "name": "talker_bloc_logger", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_bloc_logger-4.7.1", - "packageUri": "lib/", - "languageVersion": "2.15" - }, - { - "name": "talker_dio_logger", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_dio_logger-4.7.1", - "packageUri": "lib/", - "languageVersion": "2.15" - }, - { - "name": "talker_flutter", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_flutter-4.7.1", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "talker_logger", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_logger-4.7.1", - "packageUri": "lib/", - "languageVersion": "2.15" - }, - { - "name": "term_glyph", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/term_glyph-1.2.2", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "test", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test-1.25.15", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "test_api", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_api-0.7.4", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "test_core", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_core-0.6.8", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "time", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/time-2.1.5", - "packageUri": "lib/", - "languageVersion": "2.12" - }, - { - "name": "timing", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/timing-1.0.2", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "tint", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/tint-2.0.1", - "packageUri": "lib/", - "languageVersion": "2.18" - }, - { - "name": "typed_data", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/typed_data-1.4.0", - "packageUri": "lib/", - "languageVersion": "3.5" - }, - { - "name": "url_launcher_linux", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "url_launcher_platform_interface", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "url_launcher_web", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0", - "packageUri": "lib/", - "languageVersion": "3.6" - }, - { - "name": "url_launcher_windows", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "uuid", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/uuid-4.5.1", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "vector_graphics_codec", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.13", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "vector_graphics_compiler", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.16", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "vector_math", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_math-2.1.4", - "packageUri": "lib/", - "languageVersion": "2.14" - }, - { - "name": "vm_service", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vm_service-14.3.1", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "watcher", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/watcher-1.1.1", - "packageUri": "lib/", - "languageVersion": "3.1" - }, - { - "name": "web", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web-1.1.1", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "web_socket", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket-0.1.6", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "web_socket_channel", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.2", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "webkit_inspection_protocol", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "win32", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.12.0", - "packageUri": "lib/", - "languageVersion": "3.7" - }, - { - "name": "xdg_directories", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0", - "packageUri": "lib/", - "languageVersion": "3.3" - }, - { - "name": "xml", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xml-6.5.0", - "packageUri": "lib/", - "languageVersion": "3.2" - }, - { - "name": "yaml", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml-3.1.3", - "packageUri": "lib/", - "languageVersion": "3.4" - }, - { - "name": "yaml_writer", - "rootUri": "file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml_writer-2.1.0", - "packageUri": "lib/", - "languageVersion": "3.0" - }, - { - "name": "remever", - "rootUri": "../", - "packageUri": "lib/", - "languageVersion": "3.7" - } - ], - "generated": "2025-06-17T18:40:18.603782Z", - "generator": "pub", - "generatorVersion": "3.7.0", - "flutterRoot": "file:///Users/vitalijnecitajlo/fvm/versions/3.29.0", - "flutterVersion": "3.29.0", - "pubCache": "file:///Users/vitalijnecitajlo/.pub-cache" -} +{"configVersion":2,"packages":[{"name":"_fe_analyzer_shared","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-80.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"analyzer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"ansicolor","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ansicolor-2.0.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"archive","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"args","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.7.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"auto_route","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"auto_route_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route_generator-10.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/bloc-9.0.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"boolean_selector","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"build","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build-2.4.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_config-1.1.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_daemon","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_daemon-4.0.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_resolvers","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_resolvers-2.4.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner-2.4.15","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner_core-8.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_verify","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_verify-3.1.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"built_collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"built_value","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"characters","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/characters-1.4.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"charcode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/charcode-1.4.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"checked_yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/checked_yaml-2.0.3","packageUri":"lib/","languageVersion":"2.19"},{"name":"cli_util","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cli_util-0.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"clock","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/clock-1.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"code_builder","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/code_builder-4.10.1","packageUri":"lib/","languageVersion":"3.5"},{"name":"collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/collection-1.19.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"color","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/color-3.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"convert","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/convert-3.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"coverage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/coverage-1.11.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"cross_file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cross_file-0.3.4+2","packageUri":"lib/","languageVersion":"3.3"},{"name":"crypto","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/crypto-3.0.6","packageUri":"lib/","languageVersion":"3.4"},{"name":"csv","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/csv-6.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"cupertino_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8","packageUri":"lib/","languageVersion":"3.1"},{"name":"dart_style","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dart_style-3.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"dartx","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dartx-1.2.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/db_viewer-1.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"dio","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio-5.8.0+1","packageUri":"lib/","languageVersion":"2.18"},{"name":"dio_smart_retry","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_smart_retry-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"dio_web_adapter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"drift","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"drift_db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0","packageUri":"lib/","languageVersion":"2.13"},{"name":"drift_dev","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"event_bus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/event_bus-2.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"fake_async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fake_async-1.3.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"ffi","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ffi-2.1.4","packageUri":"lib/","languageVersion":"3.7"},{"name":"file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"file_picker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"fixnum","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fixnum-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"flutter","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_bloc-9.1.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"flutter_displaymode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_gen_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_core-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_gen_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_runner-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_keyboard_size","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"flutter_launcher_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.14.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"flutter_localizations","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_localizations","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_plugin_android_lifecycle","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_screenutil","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3","packageUri":"lib/","languageVersion":"2.17"},{"name":"flutter_secure_storage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_macos","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_slidable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_slidable-4.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_test","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_test","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_web_plugins","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_web_plugins","packageUri":"lib/","languageVersion":"3.7"},{"name":"fluttertoast","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12","packageUri":"lib/","languageVersion":"2.12"},{"name":"fps_widget","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fps_widget-1.0.1+2","packageUri":"lib/","languageVersion":"2.12"},{"name":"freezed","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed-2.5.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"freezed_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed_annotation-2.4.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"frontend_server_client","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"functional_listener","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/functional_listener-2.3.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"get_it","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it-7.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"get_it_mixin","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it_mixin-4.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"glob","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/glob-2.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"google_fonts","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/google_fonts-6.2.1","packageUri":"lib/","languageVersion":"2.14"},{"name":"graphs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"group_button","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/group_button-5.3.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"hashcodes","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hashcodes-2.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"hive_ce","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce-2.10.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"hive_ce_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_flutter-2.2.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"hive_ce_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_generator-1.8.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"http","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"http_multi_server","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2","packageUri":"lib/","languageVersion":"3.2"},{"name":"http_parser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"image","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"image_size_getter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"import_sorter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/import_sorter-4.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"injectable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable-2.5.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"injectable_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable_generator-2.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"intl","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/intl-0.19.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"io","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/io-1.0.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"js","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/js-0.6.7","packageUri":"lib/","languageVersion":"2.19"},{"name":"json2yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json2yaml-3.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"json_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_annotation-4.9.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"json_serializable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_serializable-6.9.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"leak_tracker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker-10.0.8","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_flutter_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1","packageUri":"lib/","languageVersion":"3.2"},{"name":"lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/lints-5.1.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"logging","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/logging-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"matcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/matcher-0.12.17","packageUri":"lib/","languageVersion":"3.4"},{"name":"material_color_utilities","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"meta","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/meta-1.16.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"mime","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/mime-2.0.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"modal_bottom_sheet","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/modal_bottom_sheet-3.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"nested","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/nested-1.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"node_preamble","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"package_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"package_info_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"package_info_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-3.2.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"path","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path-1.9.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_parsing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_parsing-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_provider_android","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16","packageUri":"lib/","languageVersion":"3.6"},{"name":"path_provider_foundation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1","packageUri":"lib/","languageVersion":"2.19"},{"name":"path_provider_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"path_provider_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"petitparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/petitparser-6.1.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"pin_code_fields","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pin_code_fields-8.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"platform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/platform-3.1.6","packageUri":"lib/","languageVersion":"3.2"},{"name":"plugin_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"pool","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pool-1.5.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"posix","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"pub_semver","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"pubspec_parse","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"readmore","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/readmore-3.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"recase","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"share_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"share_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus_platform_interface-5.0.2","packageUri":"lib/","languageVersion":"2.18"},{"name":"shelf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf-1.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"shelf_packages_handler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2","packageUri":"lib/","languageVersion":"2.17"},{"name":"shelf_static","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_static-1.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"shelf_web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"sky_engine","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/bin/cache/pkg/sky_engine","packageUri":"lib/","languageVersion":"3.7"},{"name":"slang","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_gen","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_gen-2.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"source_helper","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_helper-1.3.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"source_map_stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_maps","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_maps-0.10.13","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_span","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_span-1.10.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"sprintf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlite3","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.5","packageUri":"lib/","languageVersion":"3.5"},{"name":"sqlite3_flutter_libs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlparser-0.41.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stack_trace-1.12.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"stream_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_channel-2.1.4","packageUri":"lib/","languageVersion":"3.3"},{"name":"stream_transform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_transform-2.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"string_scanner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"talker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker-4.7.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"talker_bloc_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_bloc_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_dio_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_dio_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_flutter-4.7.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"talker_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"term_glyph","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/term_glyph-1.2.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"test","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test-1.25.15","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_api","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_api-0.7.4","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_core-0.6.8","packageUri":"lib/","languageVersion":"3.5"},{"name":"time","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/time-2.1.5","packageUri":"lib/","languageVersion":"2.12"},{"name":"timing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/timing-1.0.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"tint","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/tint-2.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"typed_data","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/typed_data-1.4.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"url_launcher_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"url_launcher_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"url_launcher_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"url_launcher_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"uuid","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/uuid-4.5.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"vector_graphics_codec","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.13","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_graphics_compiler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.16","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_math","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_math-2.1.4","packageUri":"lib/","languageVersion":"2.14"},{"name":"vm_service","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vm_service-14.3.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"watcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/watcher-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web-1.1.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket-0.1.6","packageUri":"lib/","languageVersion":"3.3"},{"name":"web_socket_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"webkit_inspection_protocol","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"win32","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.12.0","packageUri":"lib/","languageVersion":"3.7"},{"name":"xdg_directories","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"xml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xml-6.5.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml-3.1.3","packageUri":"lib/","languageVersion":"3.4"},{"name":"yaml_writer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml_writer-2.1.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"remever","rootUri":"../","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_gen","rootUri":"flutter_gen","languageVersion":"2.12"}],"generated":"2025-09-08T12:43:42.274836Z","generator":"pub","generatorVersion":"3.7.0","flutterRoot":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0","flutterVersion":"3.29.0","pubCache":"file:///Users/vitalijnecitajlo/.pub-cache"} \ No newline at end of file diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index 1cf9d9d..bae12ea 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"flutter_displaymode","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"sqlite3_flutter_libs","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-06-17 21:40:17.098788","version":"3.29.0","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"flutter_displaymode","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"sqlite3_flutter_libs","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-09-08 15:45:24.059280","version":"3.29.0","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file diff --git a/Makefile b/Makefile index 5466a89..f8c403b 100644 --- a/Makefile +++ b/Makefile @@ -8,10 +8,6 @@ clean: codegen: clean fvm flutter pub run build_runner build --delete-conflicting-outputs -watchgen: clean - fvm flutter pub run build_runner watch --delete-conflicting-outputs - - iosPod: cd ios && rm -rf Podfile.lock Pods Runner.xcworkspace && fvm flutter clean && fvm flutter pub get && pod install @@ -31,8 +27,8 @@ macosPodUpdate: cd macos && pod install --repo-update androidBuild: clean - fvm flutter build apk --split-per-abi - mv `pwd`/build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk /tmp/$(PROJECT_NAME)-$(env)-$(ver).apk + fvm flutter build apk + mv `pwd`/build/app/outputs/flutter-apk/app-release.apk /tmp/$(PROJECT_NAME)-$(env)-$(ver).apk echo /tmp/$(PROJECT_NAME)-$(env)-$(ver).apk open /tmp diff --git a/lib/common/services/api_client.dart b/lib/common/services/api_client.dart index daa67aa..ba1e9db 100644 --- a/lib/common/services/api_client.dart +++ b/lib/common/services/api_client.dart @@ -2,6 +2,8 @@ import 'package:dio/dio.dart'; import 'package:dio_smart_retry/dio_smart_retry.dart'; import 'package:remever/common/functions.dart'; +import 'package:remever/common/resources.dart'; +import 'package:remever/common/storage.dart'; import 'package:talker_dio_logger/talker_dio_logger_interceptor.dart'; import 'package:talker_dio_logger/talker_dio_logger_settings.dart'; @@ -17,17 +19,17 @@ InterceptorsWrapper get _auth { RequestOptions options, RequestInterceptorHandler handler, ) async { - // try { - // String? token = await authSecStorage.read(key: StorageKeys.authToken); + try { + String? token = await authSecStorage.read(key: StorageKeys.accessToken); - // if (token != null) { - // options.headers['Authorization'] = 'Bearer $token'; - // } - // } catch (e) { - // getIt().log( - // entity: LogEntity.error(message: 'Error to load access token $e'), - // ); - // } + if (token != null) { + options.headers['Authorization'] = 'Bearer $token'; + } + } catch (e) { + // getIt().log( + // entity: LogEntity.error(message: 'Error to load access token $e'), + // ); + } return handler.next(options); }, diff --git a/lib/screens/collections/collections_screen.dart b/lib/screens/collections/collections_screen.dart index 7420c81..b122dab 100644 --- a/lib/screens/collections/collections_screen.dart +++ b/lib/screens/collections/collections_screen.dart @@ -12,6 +12,8 @@ import 'package:remever/screens/collections/widgets/collection_card.dart'; import 'package:remever/screens/collections/widgets/collections_app_bar.dart'; import 'package:remever/screens/collections/widgets/collections_filters.dart'; import 'package:remever/services/collection/collections_interface.dart'; +import 'package:remever/services/collection/collections_service.dart'; +import 'package:remever/services/tickets/tickets_interface.dart'; @RoutePage() class CollectionScreen extends StatefulWidget { diff --git a/lib/screens/collections/widgets/collections_filters.dart b/lib/screens/collections/widgets/collections_filters.dart index d0ac73f..e0f6b29 100644 --- a/lib/screens/collections/widgets/collections_filters.dart +++ b/lib/screens/collections/widgets/collections_filters.dart @@ -1,12 +1,8 @@ -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:remever/common/resources.dart'; import 'package:remever/common/widgets/typography.dart'; -import 'package:remever/common/widgets/wspace.dart'; import 'package:remever/components/extensions/context.dart'; import 'package:remever/components/extensions/state.dart'; -import 'package:remever/widgets/debug/app_debug.dart'; class CollectionsFilters extends StatefulWidget { const CollectionsFilters({super.key}); @@ -16,37 +12,52 @@ class CollectionsFilters extends StatefulWidget { } class _CollectionsFiltersState extends State { + static const List _filterOptions = ['Все', 'Публичные', 'Подписки']; + String _selected = 'Все'; + + void _onFilterSelected(String title) { + safeSetState(() { + _selected = title; + }); + } + @override Widget build(BuildContext context) { - return AppDebug( - builder: (context, isDebug) { - if (!isDebug) return HSpace(20); - - return Padding( - padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 28).r, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - _buildFilterButton(AppColors.white, 'Все', () { - safeSetState(() {}); - }), - _buildFilterButton(AppColors.gray_bg, 'Публичные', () { - safeSetState(() {}); - }), - _buildFilterButton(AppColors.gray_bg, 'Подписки', () { - safeSetState(() {}); - }), - ], - ), - ); - }, + return Padding( + padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 28).r, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: _buildFilterButtons(), + ), ); } - /// - /// Построение кнопки фильтра - /// - Widget _buildFilterButton(Color color, String title, void Function()? onTap) { + List _buildFilterButtons() { + return _filterOptions + .map( + (title) => _FilterButton( + title: title, + isSelected: _selected == title, + onTap: () => _onFilterSelected(title), + ), + ) + .toList(); + } +} + +class _FilterButton extends StatelessWidget { + final String title; + final bool isSelected; + final VoidCallback onTap; + + const _FilterButton({ + required this.title, + required this.isSelected, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { return GestureDetector( onTap: onTap, child: Container( @@ -54,7 +65,7 @@ class _CollectionsFiltersState extends State { height: 36.h, decoration: BoxDecoration( borderRadius: const BorderRadius.all(Radius.circular(16)).r, - color: color, + color: isSelected ? AppColors.white : AppColors.bg, ), child: Center(child: AppTypography(title, type: SemiBold14px())), ), diff --git a/lib/services/collection/collections_interface.dart b/lib/services/collection/collections_interface.dart index 224e03f..f560cba 100644 --- a/lib/services/collection/collections_interface.dart +++ b/lib/services/collection/collections_interface.dart @@ -5,6 +5,10 @@ import 'package:remever/models/crud_collection_dto.dart'; /// Интерфейс взаимодействия с коллекциями /// abstract interface class CollectionsInterface { + /// работа с api + Future getCollectionsFromApi(); + Future createCollectionApi(); + /// Получение списка коллекций Stream> watchCollectionsList({String? search}); diff --git a/lib/services/collection/collections_service.dart b/lib/services/collection/collections_service.dart index bd6ec70..165e6c5 100644 --- a/lib/services/collection/collections_service.dart +++ b/lib/services/collection/collections_service.dart @@ -1,4 +1,6 @@ +import 'package:dio/dio.dart'; import 'package:injectable/injectable.dart'; +import 'package:remever/common/services/api_client.dart'; import 'package:remever/database/database.dart'; import 'package:remever/inject.dart'; import 'package:remever/models/crud_collection_dto.dart'; @@ -35,4 +37,37 @@ final class CollectionsService implements CollectionsInterface { // TODO: implement makeCollectionPublic throw UnimplementedError(); } + + @override + Future getCollectionsFromApi() async { + try { + final Response response = await apiClient.get( + '/collections', + queryParameters: {'perPage': 20, 'page': 1}, + ); + + print('data'); + } catch (e) { + print('Response error $e'); + } + } + + @override + Future createCollectionApi() async { + try { + final Response response = await apiClient.post( + '/collections', + data: { + "title": "Основы программирования для утюгов", + "description": + "Коллекция карточек по основам программирования для начинающих", + "is_public": true, + }, + ); + + print('data'); + } catch (e) { + print('Response error $e'); + } + } } diff --git a/lib/services/tickets/tickets_interface.dart b/lib/services/tickets/tickets_interface.dart index d7f4414..5d8687c 100644 --- a/lib/services/tickets/tickets_interface.dart +++ b/lib/services/tickets/tickets_interface.dart @@ -5,6 +5,10 @@ import 'package:remever/models/create_ticket_dto.dart'; /// Интерфейс взаимодействия с билетами в коллекция /// abstract interface class TicketsInterface { + /// работа с api + Future getTicketsFromApi(); + Future createTicketApi(); + /// Получение списка билетов Stream> watchTicketsList(String collectionId); diff --git a/lib/services/tickets/tickets_service.dart b/lib/services/tickets/tickets_service.dart index a9e4eb0..6862f4f 100644 --- a/lib/services/tickets/tickets_service.dart +++ b/lib/services/tickets/tickets_service.dart @@ -1,4 +1,6 @@ +import 'package:dio/dio.dart'; import 'package:injectable/injectable.dart'; +import 'package:remever/common/services/api_client.dart'; import 'package:remever/database/database.dart'; import 'package:remever/inject.dart'; import 'package:remever/models/create_ticket_dto.dart'; @@ -32,4 +34,40 @@ final class TicketsService implements TicketsInterface { newCollectionId, ); } + + @override + Future getTicketsFromApi() async { + try { + final Response response = await apiClient.get('/cards'); + + print('data'); + } catch (e) { + print('Response error $e'); + } + } + + @override + Future createTicketApi() async { + try { + final Response response = await apiClient.post( + '/cards', + data: { + "title": "Основы программирования", + "question": + "Коллекция карточек по основам программирования для начинающих", + "question_picture_id": 1, + "answer": + "Коллекция карточек по основам программирования для начинающих", + "answer_picture_id": 2, + "is_public": true, + "is_reverse": false, + "collection_id": 1, + }, + ); + + print('data'); + } catch (e) { + print('Response error $e'); + } + } } diff --git a/pubspec.yaml b/pubspec.yaml index a170529..ce2e313 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: remever description: "" publish_to: 'none' -version: 1.0.0+7 +version: 1.0.0+8 environment: sdk: ^3.7.0 From cebc46bbb320a4d974ee9834ea15c8c6270eed0b Mon Sep 17 00:00:00 2001 From: Vitalij Date: Mon, 8 Sep 2025 16:43:43 +0300 Subject: [PATCH 2/7] =?UTF-8?q?feature(collections):=20=D0=A0=D0=BE=D1=83?= =?UTF-8?q?=D1=82=D0=B8=D0=BD=D0=B3=20=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=B8?= =?UTF-8?q?=D1=81=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collections/widgets/collections_app_bar.dart | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/screens/collections/widgets/collections_app_bar.dart b/lib/screens/collections/widgets/collections_app_bar.dart index 68eb0e3..1d06735 100644 --- a/lib/screens/collections/widgets/collections_app_bar.dart +++ b/lib/screens/collections/widgets/collections_app_bar.dart @@ -62,7 +62,20 @@ class CollectionsAppBar extends StatelessWidget implements PreferredSizeWidget { if (!isDebug) return SizedBox(); return Row( children: [ - AppBarIconButton(icon: Assets.icons.typeSearch, onTap: () {}), + AppBarIconButton( + icon: Assets.icons.typeSearch, + onTap: () { + context.pushRoute( + CollectionSearchRoute( + onCollectionSelect: (collection) { + context.pushRoute( + CollectionDetailRoute(collection: collection), + ); + }, + ), + ); + }, + ), AppBarIconButton(icon: Assets.icons.typeDownload, onTap: () {}), AppBarIconButton( icon: Assets.icons.typeSort, From a376faf0ce90623b29595fb940f6b8be24fc4ccc Mon Sep 17 00:00:00 2001 From: Vitalij Date: Mon, 8 Sep 2025 17:42:09 +0300 Subject: [PATCH 3/7] =?UTF-8?q?bugfix(collections):=20=D0=9E=D0=BF=D1=82?= =?UTF-8?q?=D0=B8=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B8=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=BB=D0=BB=D0=B5=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .flutter-plugins-dependencies | 2 +- .../crud_collection/crud_collection.dart | 497 ++++++++++-------- .../crud_collection_fullscreen_field.dart | 125 ++--- 3 files changed, 321 insertions(+), 303 deletions(-) diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index bae12ea..795944b 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"flutter_displaymode","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"sqlite3_flutter_libs","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-09-08 15:45:24.059280","version":"3.29.0","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"flutter_displaymode","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"sqlite3_flutter_libs","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-09-08 17:40:02.091441","version":"3.29.0","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file diff --git a/lib/screens/crud_collection/crud_collection.dart b/lib/screens/crud_collection/crud_collection.dart index 447b5ab..e10687e 100644 --- a/lib/screens/crud_collection/crud_collection.dart +++ b/lib/screens/crud_collection/crud_collection.dart @@ -1,5 +1,5 @@ -import 'dart:convert'; import 'dart:io'; +import 'dart:typed_data'; import 'package:auto_route/auto_route.dart'; import 'package:file_picker/file_picker.dart'; @@ -36,88 +36,85 @@ class CrudCollectionScreen extends StatefulWidget { } class _CrudCollectionScreenState extends State { - /// Флаг публичности коллекции + late CrudCollectionDto _collection; bool _isPublic = false; - CrudCollectionDto? _collection; - - /// Смена публичности - void _setPublic(bool public) { - _collection = _collection?.copyWith(isPublic: public); - safeSetState(() => _isPublic = public); - } - @override void initState() { + super.initState(); + _initializeCollection(); + } + + void _initializeCollection() { _collection = CrudCollectionDto( desc: widget.editedCollection?.desc ?? '', title: widget.editedCollection?.title ?? '', isPublic: widget.editedCollection?.isPublic ?? false, avatar: widget.editedCollection?.image, ); - - super.initState(); + _isPublic = _collection.isPublic; } - void _pickImage() async { + Future _pickImage() async { final result = await FilePicker.platform.pickFiles(); - if (result == null || result.files.isEmpty) { + if (result?.files.single.path case final String? path?) { + try { + final bytes = await File(path!).readAsBytes(); + _updateCollection(avatar: bytes); + } catch (e) { + showErrorToast('Не удалось загрузить изображение'); + } + } else { showErrorToast('Файл не выбран'); - return; } + } - final filePath = result.files.single.path; - - if (filePath == null) { - showErrorToast('Не удалось получить путь к файлу'); - - return; - } - - final file = File(filePath); - final bytes = await file.readAsBytes(); - - // final base64String = base64Encode(bytes); - - _collection = _collection?.copyWith(avatar: bytes); - + void _updateCollection({ + String? title, + String? desc, + bool? isPublic, + Uint8List? avatar, + }) { + _collection = _collection.copyWith( + title: title ?? _collection.title, + desc: desc ?? _collection.desc, + isPublic: isPublic ?? _collection.isPublic, + avatar: avatar ?? _collection.avatar, + ); safeSetState(() {}); } @override Widget build(BuildContext context) { - logger.logBuild('build create screen'); - return Scaffold( backgroundColor: AppColors.gray_bg, - appBar: _buildAppBar(context), - body: _buildMainBody(context), + appBar: _buildAppBar(), + body: _buildMainBody(), ); } - /// Основное тело экрана - Widget _buildMainBody(BuildContext context) { + Widget _buildMainBody() { return Padding( padding: const EdgeInsets.symmetric(horizontal: 16).r, child: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: [ + children: [ const HSpace(16), - _buildPhotoAndTitle(context), + _buildPhotoAndTitle(), const HSpace(16), - ..._buildDescription(context), + ..._buildDescription(), const HSpace(16), - // _buildPublickSwitch(), + // _buildPublicSwitch(), const HSpace(16), AnimatedOpacity( // opacity: _isPublic ? 1 : 0, opacity: 0, - duration: const Duration(seconds: 1), + duration: const Duration(milliseconds: 300), child: Column( crossAxisAlignment: CrossAxisAlignment.start, - children: [ + children: [ ..._buildTagButton(), const HSpace(16), _buildTagsList(), @@ -125,7 +122,7 @@ class _CrudCollectionScreenState extends State { ], ), ), - _buildCreateBtn(context), + _buildCreateBtn(), const BottomSafeSpace(), ], ), @@ -133,30 +130,10 @@ class _CrudCollectionScreenState extends State { ); } - ///Кнопка создания - Widget _buildCreateBtn(BuildContext context) { + Widget _buildCreateBtn() { return PrimaryButton( height: 52, - onTap: () async { - if (_collection!.desc.isEmpty && _collection!.title.isEmpty) { - showErrorToast( - 'Для создания публичной коллекции добавьте описание и тэги', - ); - - return; - } - - widget.editedCollection != null - ? await getIt().updateCollection( - _collection!, - widget.editedCollection!.id, - ) - : await getIt().createCollection( - _collection!, - ); - - context.back(); - }, + onTap: _handleCreateOrUpdate, color: AppColors.primary, child: AppTypography( widget.editedCollection == null @@ -168,94 +145,124 @@ class _CrudCollectionScreenState extends State { ); } - /// Построение списка тегов + Future _handleCreateOrUpdate() async { + if (!_isCollectionValid()) return; + + if (!_hasChanges()) { + context.back(); + } + + try { + final collectionService = getIt(); + + widget.editedCollection != null + ? await collectionService.updateCollection( + _collection, + widget.editedCollection!.id, + ) + : await collectionService.createCollection(_collection); + + context.back(); + } catch (e) { + showErrorToast( + 'Ошибка при ${widget.editedCollection != null ? 'обновлении' : 'создании'} коллекции', + ); + } + } + + bool _isCollectionValid() { + if (_collection.title.isEmpty && _collection.desc.isEmpty) { + showErrorToast('Для создания коллекции добавьте название и описание'); + return false; + } + + if (_isPublic && _collection.desc.isEmpty) { + showErrorToast( + 'Для создания публичной коллекции добавьте описание и тэги', + ); + return false; + } + + return true; + } + Widget _buildTagsList() { return SizedBox( height: 68.h, child: Row( - children: [ + children: [ Expanded( child: Wrap( runSpacing: 8.r, spacing: 8.r, - children: List.generate(6, (int index) { - return GestureDetector( - onTap: () {}, - child: Container( - height: 30, - decoration: BoxDecoration( - borderRadius: - const BorderRadius.all(Radius.circular(6)).r, - color: const Color(0xFFFFE4E6), - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisSize: MainAxisSize.min, - children: [ - AppTypography( - 'tag $index', - type: Regular14px(), - height: 0.95, - color: AppColors.danger, - ), - const WSpace(8), - Center( - child: Icon( - Icons.close, - size: 14.r, - color: AppColors.danger, - ), - ), - ], - ), - ), - ), - ); - }), + children: List.generate(6, _buildTagItem), ), ), const WSpace(9), - GestureDetector( - onTap: () { - showCuperModalBottomSheet( - context: context, - height: 270.h, - builder: (BuildContext context) => const TagsDialog(), - ); - }, - child: AppTypography( - '+13', - type: Medium16px(), - color: AppColors.primary, - ), - ), + _buildAddTagButton(), ], ), ); } - /// Построение кнопки добавления тега + Widget _buildTagItem(int index) { + return GestureDetector( + onTap: () {}, + child: Container( + height: 30, + decoration: BoxDecoration( + borderRadius: const BorderRadius.all(Radius.circular(6)).r, + color: const Color(0xFFFFE4E6), + ), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + AppTypography( + 'tag $index', + type: Regular14px(), + height: 0.95, + color: AppColors.danger, + ), + const WSpace(8), + Icon(Icons.close, size: 14.r, color: AppColors.danger), + ], + ), + ), + ), + ); + } + + Widget _buildAddTagButton() { + return GestureDetector( + onTap: _showTagsDialog, + child: AppTypography('+13', type: Medium16px(), color: AppColors.primary), + ); + } + + void _showTagsDialog() { + showCuperModalBottomSheet( + context: context, + height: 270.h, + builder: (_) => const TagsDialog(), + ); + } + List _buildTagButton() { - return [ + return [ AppTypography('Тэги', type: SemiBold14px()), const HSpace(4), - CrudCollectionField( - height: 42, - width: 348, - hint: 'Добавить тэг', - // onTap: () => context.pushRoute(const AddTagsRoute()), - ), + CrudCollectionField(height: 42, width: 348, hint: 'Добавить тэг'), ]; } - /// Построение свитчера на публичность коллекции - Widget _buildPublickSwitch() { + Widget _buildPublicSwitch() { return GestureDetector( - onTap: () => _setPublic(!_isPublic), + onTap: _togglePublic, child: Row( - children: [ + children: [ SizedBox.square( dimension: 20.r, child: Assets.icons.typePublic.image(color: AppColors.primary), @@ -287,135 +294,134 @@ class _CrudCollectionScreenState extends State { ); } - /// Построение блока с описанием - List _buildDescription(BuildContext context) { - return [ + void _togglePublic() => _setPublic(!_isPublic); + + void _setPublic(bool isPublic) { + _updateCollection(isPublic: isPublic); + safeSetState(() => _isPublic = isPublic); + } + + List _buildDescription() { + return [ AppTypography('Описание', type: SemiBold14px()), const HSpace(4), CrudCollectionField( height: 110, width: 348, hint: 'Добавить описание', - content: _collection?.desc, - onTap: () { - context.pushRoute( - CrudCollectionFullscreenField( + content: _collection.desc, + onTap: + () => _navigateToFullscreenField( title: 'Описание', height: 333, - content: _collection?.desc, - onEditingComplete: (res) { - safeSetState( - () => _collection = _collection?.copyWith(desc: res ?? ''), - ); - }, + content: _collection.desc, + onResult: (result) => _updateCollection(desc: result ?? ''), ), - ); - }, ), ]; } - /// Построение блока фото и заголовка - Widget _buildPhotoAndTitle(BuildContext context) { - return Row( - children: [_buildPhoto(), const WSpace(8), _buildTitle(context)], - ); - } - - /// Построение поля для ввода заголовка - Widget _buildTitle(BuildContext context) { + Widget _buildTitle() { return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ + children: [ AppTypography('Название', type: SemiBold14px()), const HSpace(4), CrudCollectionField( height: 91, width: 225, hint: 'Добавить название', - content: _collection?.title, - onTap: () { - context.pushRoute( - CrudCollectionFullscreenField( + content: _collection.title, + onTap: + () => _navigateToFullscreenField( title: 'Название', hint: 'Максимальное количество символов - 250', - content: _collection?.title, - onEditingComplete: (res) { - safeSetState( - () => _collection = _collection?.copyWith(title: res ?? ''), - ); - }, + content: _collection.title, + onResult: (result) => _updateCollection(title: result ?? ''), ), - ); - }, ), ], ); } - /// Построение обложки + void _navigateToFullscreenField({ + required String title, + String? hint, + String? content, + required Function(String?) onResult, + double height = 91, + }) { + context.pushRoute( + CrudCollectionFullscreenField( + title: title, + hint: hint, + height: height, + content: content, + onEditingComplete: onResult, + ), + ); + } + + Widget _buildPhotoAndTitle() { + return Row( + children: [ + _buildPhoto(), + const WSpace(8), + Expanded(child: _buildTitle()), + ], + ); + } + Widget _buildPhoto() { return GestureDetector( - onTap: () => _pickImage(), + onTap: _pickImage, child: SizedBox.square( dimension: 115.r, child: DecoratedBox( decoration: const BoxDecoration( shape: BoxShape.circle, gradient: LinearGradient( - colors: [Color(0xFFB6AAFE), Color(0xFFDBD7F4)], + colors: [Color(0xFFB6AAFE), Color(0xFFDBD7F4)], begin: Alignment.bottomLeft, end: Alignment.topRight, ), ), child: Wif( - condition: _collection!.avatar != null, + condition: _collection.avatar != null, builder: - (context) => ClipOval( - child: Image.memory(_collection!.avatar!, fit: BoxFit.cover), - ), - fallback: - (context) => SizedBox.square( - dimension: 32.r, - child: Center( - child: Assets.icons.typePhoto.image( - height: 32.h, - width: 32.w, - color: AppColors.primary, - ), + (_) => ClipOval( + child: Image.memory( + _collection.avatar!, + fit: BoxFit.cover, + errorBuilder: (_, __, ___) => _buildPhotoPlaceholder(), ), ), + fallback: (_) => _buildPhotoPlaceholder(), ), ), ), ); } - /// Построение шапки - AppBar _buildAppBar(BuildContext context) { + Widget _buildPhotoPlaceholder() { + return SizedBox.square( + dimension: 32.r, + child: Center( + child: Assets.icons.typePhoto.image( + height: 32.h, + width: 32.w, + color: AppColors.primary, + ), + ), + ); + } + + AppBar _buildAppBar() { return AppBar( toolbarHeight: 56.h, backgroundColor: AppColors.white, shadowColor: Colors.transparent, leading: IconButton( - onPressed: () async { - if (widget.editedCollection != null) { - final bool? res = await showCuperModalBottomSheet( - context: context, - height: 262.h, - builder: - (BuildContext context) => const AlertInfoDialog( - title: 'Вы хотите сбросить все внесенные изменения?', - acceptTitle: 'Да, сбросить', - declineTitle: 'Нет, оставить', - ), - ); - - if (res != null && res) context.back(); - } else { - context.back(); - } - }, + onPressed: _handleBackPress, icon: const Icon(CupertinoIcons.left_chevron, color: Colors.black), ), centerTitle: true, @@ -429,35 +435,66 @@ class _CrudCollectionScreenState extends State { color: AppColors.body_text, ), ), - actions: [ - Wif( - condition: widget.editedCollection != null, - builder: (BuildContext context) { - return Padding( - padding: const EdgeInsets.only(right: 16).r, - child: GestureDetector( - onTap: () { - showCuperModalBottomSheet( - context: context, - height: 262.h, - builder: - (BuildContext context) => const AlertInfoDialog( - title: 'Вы хотите сбросить все внесенные изменения?', - acceptTitle: 'Да, сбросить', - declineTitle: 'Нет, оставить', - ), - ); - }, - child: Assets.icons.typeTrash.image( - height: 24.h, - width: 24.w, - color: AppColors.primary, - ), + actions: [ + if (widget.editedCollection != null && _hasChanges()) + Padding( + padding: const EdgeInsets.only(right: 16).r, + child: GestureDetector( + onTap: _showResetDialog, + child: Assets.icons.typeTrash.image( + height: 24.h, + width: 24.w, + color: AppColors.danger, ), - ); - }, - ), + ), + ), ], ); } + + Future _handleBackPress() async { + if (widget.editedCollection != null) { + final shouldExit = await _showExitDialog(); + if (shouldExit == true) context.back(); + } else { + context.back(); + } + } + + Future _showExitDialog() async { + // Показываем диалог только если есть редактируемая коллекция и есть изменения + if (widget.editedCollection != null && _hasChanges()) { + return showCuperModalBottomSheet( + context: context, + height: 262.h, + builder: + (_) => const AlertInfoDialog( + title: 'Вы хотите сбросить все внесенные изменения?', + acceptTitle: 'Да, сбросить', + declineTitle: 'Нет, оставить', + ), + ); + } + return true; + } + + bool _hasChanges() { + // Если нет редактируемой коллекции, значит это создание новой + if (widget.editedCollection == null) return false; + + // Сравниваем все поля + return _collection.title != widget.editedCollection!.title || + _collection.desc != widget.editedCollection!.desc || + _collection.isPublic != widget.editedCollection!.isPublic || + _collection.avatar != widget.editedCollection!.image; + } + + void _showResetDialog() { + _showExitDialog().then((result) { + if (result == true) { + _initializeCollection(); + safeSetState(() {}); + } + }); + } } diff --git a/lib/screens/crud_collection/widgets/crud_collection_fullscreen_field.dart b/lib/screens/crud_collection/widgets/crud_collection_fullscreen_field.dart index e532156..c8abf45 100644 --- a/lib/screens/crud_collection/widgets/crud_collection_fullscreen_field.dart +++ b/lib/screens/crud_collection/widgets/crud_collection_fullscreen_field.dart @@ -39,10 +39,10 @@ class _CrudCollectionFullscreenFieldState @override void initState() { + super.initState(); if (widget.content != null) { _controller.text = widget.content!; } - super.initState(); } @override @@ -58,15 +58,14 @@ class _CrudCollectionFullscreenFieldState top: false, child: Scaffold( backgroundColor: AppColors.gray_bg, - appBar: _buildAppBar(context), - body: _buildMainBody(context), + appBar: _buildAppBar(), + body: _buildMainBody(), ), ), ); } - /// Построение основного тела экрана - Widget _buildMainBody(BuildContext context) { + Widget _buildMainBody() { return Stack( children: [ Padding( @@ -77,7 +76,7 @@ class _CrudCollectionFullscreenFieldState crossAxisAlignment: CrossAxisAlignment.start, children: [ const HSpace(16), - _buildField(context), + _buildField(), if (widget.hint != null) ...[ const HSpace(16), AppTypography( @@ -96,12 +95,10 @@ class _CrudCollectionFullscreenFieldState ); } - /// Построение интерактивной плашки меню Widget _buildMenu() { return Consumer( - builder: (context, screenHeight, _) { + builder: (_, screenHeight, __) { return AnimatedOpacity( - // opacity: screenHeight.isOpen ? 1 : 0, opacity: 1, duration: const Duration(milliseconds: 500), child: Container( @@ -126,7 +123,6 @@ class _CrudCollectionFullscreenFieldState ); } - /// Кнопка "Вставить из буфера обмена" Widget _buildPasteButton() { return GestureDetector( onTap: _onPasteTap, @@ -134,22 +130,20 @@ class _CrudCollectionFullscreenFieldState ); } - /// Обработка нажатия на кнопку "Вставить" - void _onPasteTap() async { + Future _onPasteTap() async { try { - final ClipboardData? data = await Clipboard.getData('text/plain'); - if (data?.text == null || data!.text!.isEmpty) { + final data = await Clipboard.getData(Clipboard.kTextPlain); + if (data?.text?.isEmpty ?? true) { showErrorToast('Не удалось получить текст из буфера обмена'); return; } - _controller.text += ' ${data.text}'; + _controller.text += ' ${data!.text}'; showSuccessToast('Текст вставлен из буфера обмена'); } catch (e) { showErrorToast('Ошибка при вставке текста: $e'); } } - /// Кнопка "Скопировать в буфер обмена" Widget _buildCopyButton() { return GestureDetector( onTap: _onCopyTap, @@ -157,8 +151,7 @@ class _CrudCollectionFullscreenFieldState ); } - /// Обработка нажатия на кнопку "Копировать" - void _onCopyTap() async { + Future _onCopyTap() async { if (_controller.text.isEmpty) { showErrorToast('Нет содержимого для отправки в буфер обмена'); return; @@ -171,45 +164,30 @@ class _CrudCollectionFullscreenFieldState } } - /// Кнопка "Подтвердить" Widget _buildSubmitButton() { return GestureDetector( onTap: _onSubmitTap, child: SizedBox.square( dimension: 32.r, - child: DecoratedBox( - decoration: const BoxDecoration( + child: const DecoratedBox( + decoration: BoxDecoration( shape: BoxShape.circle, color: AppColors.primary, ), child: Center( - child: Assets.icons.typeCheck.image( - height: 24.h, - width: 24.w, - color: AppColors.white, - ), + child: Icon(Icons.check, color: AppColors.white, size: 24), ), ), ), ); } - /// Обработка нажатия на кнопку "Подтвердить" void _onSubmitTap() { - if (_controller.text.isEmpty) { - showErrorToast( - 'Для создания публичной коллекции добавьте описание и тэги', - ); - return; - } - widget.onEditingComplete(_controller.text); - context.back(); } - /// Построение поля ввода - Widget _buildField(BuildContext context) { + Widget _buildField() { return SizedBox( height: widget.height.h, child: DecoratedBox( @@ -236,30 +214,26 @@ class _CrudCollectionFullscreenFieldState ); } - /// Построение шапки - AppBar _buildAppBar(BuildContext context) { + AppBar _buildAppBar() { return AppBar( toolbarHeight: 56.h, backgroundColor: AppColors.white, shadowColor: Colors.transparent, leading: IconButton( - onPressed: () => _handleBackPress(context), + onPressed: () => _handleBackPress(), icon: const Icon(CupertinoIcons.left_chevron, color: Colors.black), ), centerTitle: true, - title: GestureDetector( - // onLongPress: () => _showExitDialog(context), - child: AppTypography( - widget.title, - type: SemiBold20px(), - color: AppColors.body_text, - ), + title: AppTypography( + widget.title, + type: SemiBold20px(), + color: AppColors.body_text, ), actions: [ Padding( padding: const EdgeInsets.only(right: 16).r, child: GestureDetector( - onTap: () => _showResetDialog(context), + onTap: _showResetDialog, child: Assets.icons.typeTrash.image( height: 24.h, width: 24.w, @@ -271,39 +245,46 @@ class _CrudCollectionFullscreenFieldState ); } - /// Обработка нажатия на кнопку "Назад" - void _handleBackPress(BuildContext context) async { - // final bool? shouldExit = await _showExitDialog(context); - // if (shouldExit ?? false) { - context.back(); - // } + Future _handleBackPress() async { + final shouldExit = await _showExitDialog(); + if (shouldExit ?? false) { + context.back(); + } } - /// Показать диалог выхода - Future _showExitDialog(BuildContext context) async { - return showCuperModalBottomSheet( + Future _showExitDialog() async { + final res = await showCuperModalBottomSheet( context: context, height: 262.h, builder: - (context) => const AlertInfoDialog( - title: 'Вы хотите выйти из режима создания описания коллекции?', - acceptTitle: 'Выйти, не сохранять', + (_) => const AlertInfoDialog( + title: 'У вас есть несохраненные изменения', + acceptTitle: 'Выйти', declineTitle: 'Сохранить и выйти', ), ); + + if (res == null) return false; + if (res) return true; + + widget.onEditingComplete(_controller.text); + return true; } - /// Показать диалог сброса - void _showResetDialog(BuildContext context) { - // showCuperModalBottomSheet( - // context: context, - // height: 262.h, - // builder: - // (context) => const AlertInfoDialog( - // title: 'Вы хотите сбросить все внесенные изменения?', - // acceptTitle: 'Да, сбросить', - // declineTitle: 'Нет, оставить', - // ), - // ); + Future _showResetDialog() async { + final res = await showCuperModalBottomSheet( + context: context, + height: 262.h, + builder: + (_) => AlertInfoDialog( + title: 'Удалить вcе содержимое поля "${widget.title}"?', + acceptTitle: 'Удалить', + declineTitle: 'Отменить', + ), + ); + + if (res == true) { + _controller.clear(); + } } } From 51c4ae4f0257c6621aa9766be5e854ca9dd99a1f Mon Sep 17 00:00:00 2001 From: Vitalij Date: Mon, 8 Sep 2025 20:55:17 +0300 Subject: [PATCH 4/7] =?UTF-8?q?bugfix(image):=20=D0=9F=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=20=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BA=D0=B0=D1=80=D1=82=D0=B8=D0=BD=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=B1=D0=B4=20=D0=B2=20=D0=BF=D0=B0=D0=BF=D0=BA?= =?UTF-8?q?=D1=83=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dart_tool/package_config.json | 2 +- .flutter-plugins-dependencies | 2 +- lib/database/dao/collections_dao.dart | 4 +- lib/database/dao/tickets_dao.dart | 8 +- lib/database/database.g.dart | 148 +++++++++--------- lib/database/tables.dart | 6 +- lib/i18n/strings.g.dart | 2 +- lib/models/create_ticket_dto.dart | 6 +- lib/models/create_ticket_dto.freezed.dart | 48 +++--- lib/models/crud_collection_dto.dart | 3 +- lib/models/crud_collection_dto.freezed.dart | 26 ++- .../collections/collection_detail_screen.dart | 3 +- .../collections/collection_search_screen.dart | 4 +- .../collections/widgets/collection_card.dart | 3 +- .../collections/widgets/ticket_card.dart | 4 +- lib/screens/create_card/create_screen.dart | 29 +++- .../create_card/widgets/crud_ticket.dart | 6 +- .../crud_collection/crud_collection.dart | 31 +++- lib/screens/dialogs/info_dialog.dart | 3 +- lib/screens/dialogs/replace_diaog.dart | 4 +- pubspec.lock | 2 +- pubspec.yaml | 2 + 22 files changed, 191 insertions(+), 155 deletions(-) diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index 0110c84..963d382 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -1 +1 @@ -{"configVersion":2,"packages":[{"name":"_fe_analyzer_shared","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-80.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"analyzer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"ansicolor","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ansicolor-2.0.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"archive","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"args","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.7.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"auto_route","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"auto_route_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route_generator-10.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/bloc-9.0.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"boolean_selector","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"build","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build-2.4.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_config-1.1.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_daemon","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_daemon-4.0.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_resolvers","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_resolvers-2.4.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner-2.4.15","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner_core-8.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_verify","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_verify-3.1.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"built_collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"built_value","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"characters","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/characters-1.4.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"charcode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/charcode-1.4.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"checked_yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/checked_yaml-2.0.3","packageUri":"lib/","languageVersion":"2.19"},{"name":"cli_util","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cli_util-0.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"clock","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/clock-1.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"code_builder","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/code_builder-4.10.1","packageUri":"lib/","languageVersion":"3.5"},{"name":"collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/collection-1.19.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"color","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/color-3.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"convert","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/convert-3.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"coverage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/coverage-1.11.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"cross_file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cross_file-0.3.4+2","packageUri":"lib/","languageVersion":"3.3"},{"name":"crypto","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/crypto-3.0.6","packageUri":"lib/","languageVersion":"3.4"},{"name":"csv","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/csv-6.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"cupertino_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8","packageUri":"lib/","languageVersion":"3.1"},{"name":"dart_style","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dart_style-3.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"dartx","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dartx-1.2.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/db_viewer-1.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"dio","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio-5.8.0+1","packageUri":"lib/","languageVersion":"2.18"},{"name":"dio_smart_retry","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_smart_retry-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"dio_web_adapter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"drift","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"drift_db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0","packageUri":"lib/","languageVersion":"2.13"},{"name":"drift_dev","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"event_bus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/event_bus-2.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"fake_async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fake_async-1.3.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"ffi","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ffi-2.1.4","packageUri":"lib/","languageVersion":"3.7"},{"name":"file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"file_picker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"fixnum","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fixnum-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"flutter","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_bloc-9.1.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"flutter_displaymode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_gen_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_core-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_gen_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_runner-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_keyboard_size","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"flutter_launcher_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.14.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"flutter_localizations","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_localizations","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_plugin_android_lifecycle","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_screenutil","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3","packageUri":"lib/","languageVersion":"2.17"},{"name":"flutter_secure_storage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_macos","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_slidable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_slidable-4.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_test","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_test","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_web_plugins","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_web_plugins","packageUri":"lib/","languageVersion":"3.7"},{"name":"fluttertoast","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12","packageUri":"lib/","languageVersion":"2.12"},{"name":"fps_widget","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fps_widget-1.0.1+2","packageUri":"lib/","languageVersion":"2.12"},{"name":"freezed","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed-2.5.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"freezed_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed_annotation-2.4.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"frontend_server_client","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"functional_listener","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/functional_listener-2.3.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"get_it","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it-7.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"get_it_mixin","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it_mixin-4.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"glob","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/glob-2.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"google_fonts","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/google_fonts-6.2.1","packageUri":"lib/","languageVersion":"2.14"},{"name":"graphs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"group_button","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/group_button-5.3.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"hashcodes","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hashcodes-2.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"hive_ce","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce-2.10.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"hive_ce_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_flutter-2.2.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"hive_ce_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_generator-1.8.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"http","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"http_multi_server","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2","packageUri":"lib/","languageVersion":"3.2"},{"name":"http_parser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"image","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"image_size_getter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"import_sorter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/import_sorter-4.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"injectable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable-2.5.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"injectable_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable_generator-2.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"intl","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/intl-0.19.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"io","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/io-1.0.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"js","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/js-0.6.7","packageUri":"lib/","languageVersion":"2.19"},{"name":"json2yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json2yaml-3.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"json_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_annotation-4.9.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"json_serializable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_serializable-6.9.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"leak_tracker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker-10.0.8","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_flutter_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1","packageUri":"lib/","languageVersion":"3.2"},{"name":"lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/lints-5.1.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"logging","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/logging-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"matcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/matcher-0.12.17","packageUri":"lib/","languageVersion":"3.4"},{"name":"material_color_utilities","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"meta","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/meta-1.16.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"mime","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/mime-2.0.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"modal_bottom_sheet","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/modal_bottom_sheet-3.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"nested","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/nested-1.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"node_preamble","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"package_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"package_info_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"package_info_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-3.2.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"path","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path-1.9.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_parsing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_parsing-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_provider_android","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16","packageUri":"lib/","languageVersion":"3.6"},{"name":"path_provider_foundation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1","packageUri":"lib/","languageVersion":"2.19"},{"name":"path_provider_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"path_provider_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"petitparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/petitparser-6.1.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"pin_code_fields","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pin_code_fields-8.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"platform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/platform-3.1.6","packageUri":"lib/","languageVersion":"3.2"},{"name":"plugin_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"pool","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pool-1.5.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"posix","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"pub_semver","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"pubspec_parse","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"readmore","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/readmore-3.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"recase","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"share_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"share_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus_platform_interface-5.0.2","packageUri":"lib/","languageVersion":"2.18"},{"name":"shelf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf-1.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"shelf_packages_handler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2","packageUri":"lib/","languageVersion":"2.17"},{"name":"shelf_static","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_static-1.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"shelf_web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"sky_engine","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/bin/cache/pkg/sky_engine","packageUri":"lib/","languageVersion":"3.7"},{"name":"slang","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_gen","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_gen-2.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"source_helper","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_helper-1.3.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"source_map_stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_maps","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_maps-0.10.13","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_span","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_span-1.10.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"sprintf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlite3","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.5","packageUri":"lib/","languageVersion":"3.5"},{"name":"sqlite3_flutter_libs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlparser-0.41.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stack_trace-1.12.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"stream_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_channel-2.1.4","packageUri":"lib/","languageVersion":"3.3"},{"name":"stream_transform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_transform-2.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"string_scanner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"talker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker-4.7.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"talker_bloc_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_bloc_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_dio_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_dio_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_flutter-4.7.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"talker_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"term_glyph","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/term_glyph-1.2.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"test","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test-1.25.15","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_api","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_api-0.7.4","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_core-0.6.8","packageUri":"lib/","languageVersion":"3.5"},{"name":"time","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/time-2.1.5","packageUri":"lib/","languageVersion":"2.12"},{"name":"timing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/timing-1.0.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"tint","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/tint-2.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"typed_data","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/typed_data-1.4.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"url_launcher_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"url_launcher_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"url_launcher_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"url_launcher_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"uuid","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/uuid-4.5.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"vector_graphics_codec","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.13","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_graphics_compiler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.16","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_math","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_math-2.1.4","packageUri":"lib/","languageVersion":"2.14"},{"name":"vm_service","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vm_service-14.3.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"watcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/watcher-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web-1.1.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket-0.1.6","packageUri":"lib/","languageVersion":"3.3"},{"name":"web_socket_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"webkit_inspection_protocol","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"win32","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.12.0","packageUri":"lib/","languageVersion":"3.7"},{"name":"xdg_directories","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"xml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xml-6.5.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml-3.1.3","packageUri":"lib/","languageVersion":"3.4"},{"name":"yaml_writer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml_writer-2.1.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"remever","rootUri":"../","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_gen","rootUri":"flutter_gen","languageVersion":"2.12"}],"generated":"2025-09-08T12:43:42.274836Z","generator":"pub","generatorVersion":"3.7.0","flutterRoot":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0","flutterVersion":"3.29.0","pubCache":"file:///Users/vitalijnecitajlo/.pub-cache"} \ No newline at end of file +{"configVersion":2,"packages":[{"name":"_fe_analyzer_shared","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-80.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"analyzer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"ansicolor","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ansicolor-2.0.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"archive","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"args","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.7.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"auto_route","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"auto_route_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route_generator-10.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/bloc-9.0.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"boolean_selector","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"build","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build-2.4.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_config-1.1.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_daemon","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_daemon-4.0.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_resolvers","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_resolvers-2.4.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner-2.4.15","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner_core-8.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_verify","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_verify-3.1.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"built_collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"built_value","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"characters","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/characters-1.4.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"charcode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/charcode-1.4.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"checked_yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/checked_yaml-2.0.3","packageUri":"lib/","languageVersion":"2.19"},{"name":"cli_util","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cli_util-0.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"clock","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/clock-1.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"code_builder","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/code_builder-4.10.1","packageUri":"lib/","languageVersion":"3.5"},{"name":"collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/collection-1.19.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"color","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/color-3.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"convert","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/convert-3.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"coverage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/coverage-1.11.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"cross_file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cross_file-0.3.4+2","packageUri":"lib/","languageVersion":"3.3"},{"name":"crypto","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/crypto-3.0.6","packageUri":"lib/","languageVersion":"3.4"},{"name":"csv","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/csv-6.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"cupertino_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8","packageUri":"lib/","languageVersion":"3.1"},{"name":"dart_style","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dart_style-3.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"dartx","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dartx-1.2.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/db_viewer-1.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"dio","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio-5.8.0+1","packageUri":"lib/","languageVersion":"2.18"},{"name":"dio_smart_retry","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_smart_retry-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"dio_web_adapter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"drift","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"drift_db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0","packageUri":"lib/","languageVersion":"2.13"},{"name":"drift_dev","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"event_bus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/event_bus-2.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"fake_async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fake_async-1.3.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"ffi","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ffi-2.1.4","packageUri":"lib/","languageVersion":"3.7"},{"name":"file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"file_picker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"fixnum","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fixnum-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"flutter","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_bloc-9.1.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"flutter_displaymode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_gen_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_core-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_gen_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_runner-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_keyboard_size","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"flutter_launcher_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.14.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"flutter_localizations","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_localizations","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_plugin_android_lifecycle","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_screenutil","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3","packageUri":"lib/","languageVersion":"2.17"},{"name":"flutter_secure_storage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_macos","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_slidable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_slidable-4.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_test","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_test","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_web_plugins","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_web_plugins","packageUri":"lib/","languageVersion":"3.7"},{"name":"fluttertoast","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12","packageUri":"lib/","languageVersion":"2.12"},{"name":"fps_widget","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fps_widget-1.0.1+2","packageUri":"lib/","languageVersion":"2.12"},{"name":"freezed","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed-2.5.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"freezed_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed_annotation-2.4.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"frontend_server_client","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"functional_listener","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/functional_listener-2.3.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"get_it","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it-7.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"get_it_mixin","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it_mixin-4.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"glob","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/glob-2.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"google_fonts","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/google_fonts-6.2.1","packageUri":"lib/","languageVersion":"2.14"},{"name":"graphs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"group_button","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/group_button-5.3.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"hashcodes","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hashcodes-2.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"hive_ce","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce-2.10.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"hive_ce_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_flutter-2.2.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"hive_ce_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_generator-1.8.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"http","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"http_multi_server","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2","packageUri":"lib/","languageVersion":"3.2"},{"name":"http_parser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"image","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"image_size_getter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"import_sorter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/import_sorter-4.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"injectable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable-2.5.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"injectable_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable_generator-2.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"intl","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/intl-0.19.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"io","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/io-1.0.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"js","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/js-0.6.7","packageUri":"lib/","languageVersion":"2.19"},{"name":"json2yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json2yaml-3.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"json_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_annotation-4.9.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"json_serializable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_serializable-6.9.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"leak_tracker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker-10.0.8","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_flutter_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1","packageUri":"lib/","languageVersion":"3.2"},{"name":"lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/lints-5.1.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"logging","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/logging-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"matcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/matcher-0.12.17","packageUri":"lib/","languageVersion":"3.4"},{"name":"material_color_utilities","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"meta","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/meta-1.16.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"mime","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/mime-2.0.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"modal_bottom_sheet","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/modal_bottom_sheet-3.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"nested","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/nested-1.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"node_preamble","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"package_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"package_info_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"package_info_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-3.2.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"path","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path-1.9.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_parsing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_parsing-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_provider_android","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16","packageUri":"lib/","languageVersion":"3.6"},{"name":"path_provider_foundation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1","packageUri":"lib/","languageVersion":"2.19"},{"name":"path_provider_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"path_provider_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"petitparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/petitparser-6.1.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"pin_code_fields","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pin_code_fields-8.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"platform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/platform-3.1.6","packageUri":"lib/","languageVersion":"3.2"},{"name":"plugin_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"pool","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pool-1.5.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"posix","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"pub_semver","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"pubspec_parse","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"readmore","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/readmore-3.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"recase","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"share_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"share_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus_platform_interface-5.0.2","packageUri":"lib/","languageVersion":"2.18"},{"name":"shelf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf-1.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"shelf_packages_handler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2","packageUri":"lib/","languageVersion":"2.17"},{"name":"shelf_static","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_static-1.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"shelf_web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"sky_engine","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/bin/cache/pkg/sky_engine","packageUri":"lib/","languageVersion":"3.7"},{"name":"slang","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_gen","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_gen-2.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"source_helper","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_helper-1.3.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"source_map_stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_maps","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_maps-0.10.13","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_span","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_span-1.10.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"sprintf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlite3","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.5","packageUri":"lib/","languageVersion":"3.5"},{"name":"sqlite3_flutter_libs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlparser-0.41.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stack_trace-1.12.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"stream_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_channel-2.1.4","packageUri":"lib/","languageVersion":"3.3"},{"name":"stream_transform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_transform-2.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"string_scanner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"talker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker-4.7.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"talker_bloc_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_bloc_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_dio_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_dio_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_flutter-4.7.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"talker_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"term_glyph","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/term_glyph-1.2.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"test","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test-1.25.15","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_api","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_api-0.7.4","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_core-0.6.8","packageUri":"lib/","languageVersion":"3.5"},{"name":"time","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/time-2.1.5","packageUri":"lib/","languageVersion":"2.12"},{"name":"timing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/timing-1.0.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"tint","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/tint-2.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"typed_data","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/typed_data-1.4.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"url_launcher_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"url_launcher_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"url_launcher_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"url_launcher_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"uuid","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/uuid-4.5.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"vector_graphics_codec","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.13","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_graphics_compiler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.16","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_math","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_math-2.1.4","packageUri":"lib/","languageVersion":"2.14"},{"name":"vm_service","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vm_service-14.3.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"watcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/watcher-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web-1.1.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket-0.1.6","packageUri":"lib/","languageVersion":"3.3"},{"name":"web_socket_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"webkit_inspection_protocol","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"win32","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.12.0","packageUri":"lib/","languageVersion":"3.7"},{"name":"xdg_directories","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"xml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xml-6.5.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml-3.1.3","packageUri":"lib/","languageVersion":"3.4"},{"name":"yaml_writer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml_writer-2.1.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"remever","rootUri":"../","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_gen","rootUri":"flutter_gen","languageVersion":"2.12"}],"generated":"2025-09-08T17:49:21.095693Z","generator":"pub","generatorVersion":"3.7.0","flutterRoot":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0","flutterVersion":"3.29.0","pubCache":"file:///Users/vitalijnecitajlo/.pub-cache"} \ No newline at end of file diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index 795944b..b7aae7b 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"flutter_displaymode","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"sqlite3_flutter_libs","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-09-08 17:40:02.091441","version":"3.29.0","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"flutter_displaymode","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"sqlite3_flutter_libs","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-09-08 20:49:48.132167","version":"3.29.0","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file diff --git a/lib/database/dao/collections_dao.dart b/lib/database/dao/collections_dao.dart index 1d95f94..7d271c4 100644 --- a/lib/database/dao/collections_dao.dart +++ b/lib/database/dao/collections_dao.dart @@ -36,7 +36,7 @@ class CollectionsDao extends DatabaseAccessor title: dto.title, desc: dto.desc, isPublic: Value(dto.isPublic), - image: Value(dto.avatar), + image: Value(dto.avatar), ), ); } catch (e, st) { @@ -54,7 +54,7 @@ class CollectionsDao extends DatabaseAccessor title: Value(dto.title), desc: Value(dto.desc), isPublic: Value(dto.isPublic), - image: Value(dto.avatar), + image: Value(dto.avatar), ), ); } catch (e, st) { diff --git a/lib/database/dao/tickets_dao.dart b/lib/database/dao/tickets_dao.dart index 516f12f..5538b0d 100644 --- a/lib/database/dao/tickets_dao.dart +++ b/lib/database/dao/tickets_dao.dart @@ -45,8 +45,8 @@ class TicketsDao extends DatabaseAccessor with _$TicketsDaoMixin { question: dto.question!, answer: dto.answer!, collectionId: dto.collection!.id, - questionImage: Value(dto.questionImage), - answerImage: Value(dto.answerImage), + questionImage: Value(dto.questionImage), + answerImage: Value(dto.answerImage), ); await db.managers.tickets.create((o) => companion); @@ -58,8 +58,8 @@ class TicketsDao extends DatabaseAccessor with _$TicketsDaoMixin { answer: dto.question!, question: dto.answer!, collectionId: dto.collection!.id, - answerImage: Value(dto.questionImage), - questionImage: Value(dto.answerImage), + answerImage: Value(dto.questionImage), + questionImage: Value(dto.answerImage), ); await db.managers.tickets.create((o) => revertCompanion); diff --git a/lib/database/database.g.dart b/lib/database/database.g.dart index 1627aa0..aefe1fb 100644 --- a/lib/database/database.g.dart +++ b/lib/database/database.g.dart @@ -75,11 +75,11 @@ class $CollectionsTable extends Collections ); static const VerificationMeta _imageMeta = const VerificationMeta('image'); @override - late final GeneratedColumn image = GeneratedColumn( + late final GeneratedColumn image = GeneratedColumn( 'image', aliasedName, true, - type: DriftSqlType.blob, + type: DriftSqlType.string, requiredDuringInsert: false, ); static const VerificationMeta _payloadMeta = const VerificationMeta( @@ -281,7 +281,7 @@ class $CollectionsTable extends Collections data['${effectivePrefix}desc'], )!, image: attachedDatabase.typeMapping.read( - DriftSqlType.blob, + DriftSqlType.string, data['${effectivePrefix}image'], ), payload: attachedDatabase.typeMapping.read( @@ -328,7 +328,7 @@ class Collection extends DataClass implements Insertable { final DateTime updatedAt; final String title; final String desc; - final Uint8List? image; + final String? image; final String? payload; final int likesCount; final bool isLiked; @@ -356,7 +356,7 @@ class Collection extends DataClass implements Insertable { map['title'] = Variable(title); map['desc'] = Variable(desc); if (!nullToAbsent || image != null) { - map['image'] = Variable(image); + map['image'] = Variable(image); } if (!nullToAbsent || payload != null) { map['payload'] = Variable(payload); @@ -399,7 +399,7 @@ class Collection extends DataClass implements Insertable { updatedAt: serializer.fromJson(json['updatedAt']), title: serializer.fromJson(json['title']), desc: serializer.fromJson(json['desc']), - image: serializer.fromJson(json['image']), + image: serializer.fromJson(json['image']), payload: serializer.fromJson(json['payload']), likesCount: serializer.fromJson(json['likesCount']), isLiked: serializer.fromJson(json['isLiked']), @@ -416,7 +416,7 @@ class Collection extends DataClass implements Insertable { 'updatedAt': serializer.toJson(updatedAt), 'title': serializer.toJson(title), 'desc': serializer.toJson(desc), - 'image': serializer.toJson(image), + 'image': serializer.toJson(image), 'payload': serializer.toJson(payload), 'likesCount': serializer.toJson(likesCount), 'isLiked': serializer.toJson(isLiked), @@ -431,7 +431,7 @@ class Collection extends DataClass implements Insertable { DateTime? updatedAt, String? title, String? desc, - Value image = const Value.absent(), + Value image = const Value.absent(), Value payload = const Value.absent(), int? likesCount, bool? isLiked, @@ -495,7 +495,7 @@ class Collection extends DataClass implements Insertable { updatedAt, title, desc, - $driftBlobEquality.hash(image), + image, payload, likesCount, isLiked, @@ -511,7 +511,7 @@ class Collection extends DataClass implements Insertable { other.updatedAt == this.updatedAt && other.title == this.title && other.desc == this.desc && - $driftBlobEquality.equals(other.image, this.image) && + other.image == this.image && other.payload == this.payload && other.likesCount == this.likesCount && other.isLiked == this.isLiked && @@ -525,7 +525,7 @@ class CollectionsCompanion extends UpdateCompanion { final Value updatedAt; final Value title; final Value desc; - final Value image; + final Value image; final Value payload; final Value likesCount; final Value isLiked; @@ -567,7 +567,7 @@ class CollectionsCompanion extends UpdateCompanion { Expression? updatedAt, Expression? title, Expression? desc, - Expression? image, + Expression? image, Expression? payload, Expression? likesCount, Expression? isLiked, @@ -597,7 +597,7 @@ class CollectionsCompanion extends UpdateCompanion { Value? updatedAt, Value? title, Value? desc, - Value? image, + Value? image, Value? payload, Value? likesCount, Value? isLiked, @@ -640,7 +640,7 @@ class CollectionsCompanion extends UpdateCompanion { map['desc'] = Variable(desc.value); } if (image.present) { - map['image'] = Variable(image.value); + map['image'] = Variable(image.value); } if (payload.present) { map['payload'] = Variable(payload.value); @@ -749,14 +749,13 @@ class $TicketsTable extends Tickets with TableInfo<$TicketsTable, Ticket> { 'questionImage', ); @override - late final GeneratedColumn questionImage = - GeneratedColumn( - 'question_image', - aliasedName, - true, - type: DriftSqlType.blob, - requiredDuringInsert: false, - ); + late final GeneratedColumn questionImage = GeneratedColumn( + 'question_image', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + ); static const VerificationMeta _answerMeta = const VerificationMeta('answer'); @override late final GeneratedColumn answer = GeneratedColumn( @@ -770,14 +769,13 @@ class $TicketsTable extends Tickets with TableInfo<$TicketsTable, Ticket> { 'answerImage', ); @override - late final GeneratedColumn answerImage = - GeneratedColumn( - 'answer_image', - aliasedName, - true, - type: DriftSqlType.blob, - requiredDuringInsert: false, - ); + late final GeneratedColumn answerImage = GeneratedColumn( + 'answer_image', + aliasedName, + true, + type: DriftSqlType.string, + requiredDuringInsert: false, + ); static const VerificationMeta _collectionIdMeta = const VerificationMeta( 'collectionId', ); @@ -924,7 +922,7 @@ class $TicketsTable extends Tickets with TableInfo<$TicketsTable, Ticket> { data['${effectivePrefix}question'], )!, questionImage: attachedDatabase.typeMapping.read( - DriftSqlType.blob, + DriftSqlType.string, data['${effectivePrefix}question_image'], ), answer: @@ -933,7 +931,7 @@ class $TicketsTable extends Tickets with TableInfo<$TicketsTable, Ticket> { data['${effectivePrefix}answer'], )!, answerImage: attachedDatabase.typeMapping.read( - DriftSqlType.blob, + DriftSqlType.string, data['${effectivePrefix}answer_image'], ), collectionId: @@ -965,9 +963,9 @@ class Ticket extends DataClass implements Insertable { /// Дата последней модификации final DateTime updatedAt; final String question; - final Uint8List? questionImage; + final String? questionImage; final String answer; - final Uint8List? answerImage; + final String? answerImage; final String collectionId; final double progress; const Ticket({ @@ -989,11 +987,11 @@ class Ticket extends DataClass implements Insertable { map['updated_at'] = Variable(updatedAt); map['question'] = Variable(question); if (!nullToAbsent || questionImage != null) { - map['question_image'] = Variable(questionImage); + map['question_image'] = Variable(questionImage); } map['answer'] = Variable(answer); if (!nullToAbsent || answerImage != null) { - map['answer_image'] = Variable(answerImage); + map['answer_image'] = Variable(answerImage); } map['collection_id'] = Variable(collectionId); map['progress'] = Variable(progress); @@ -1030,9 +1028,9 @@ class Ticket extends DataClass implements Insertable { createdAt: serializer.fromJson(json['createdAt']), updatedAt: serializer.fromJson(json['updatedAt']), question: serializer.fromJson(json['question']), - questionImage: serializer.fromJson(json['questionImage']), + questionImage: serializer.fromJson(json['questionImage']), answer: serializer.fromJson(json['answer']), - answerImage: serializer.fromJson(json['answerImage']), + answerImage: serializer.fromJson(json['answerImage']), collectionId: serializer.fromJson(json['collectionId']), progress: serializer.fromJson(json['progress']), ); @@ -1045,9 +1043,9 @@ class Ticket extends DataClass implements Insertable { 'createdAt': serializer.toJson(createdAt), 'updatedAt': serializer.toJson(updatedAt), 'question': serializer.toJson(question), - 'questionImage': serializer.toJson(questionImage), + 'questionImage': serializer.toJson(questionImage), 'answer': serializer.toJson(answer), - 'answerImage': serializer.toJson(answerImage), + 'answerImage': serializer.toJson(answerImage), 'collectionId': serializer.toJson(collectionId), 'progress': serializer.toJson(progress), }; @@ -1058,9 +1056,9 @@ class Ticket extends DataClass implements Insertable { DateTime? createdAt, DateTime? updatedAt, String? question, - Value questionImage = const Value.absent(), + Value questionImage = const Value.absent(), String? answer, - Value answerImage = const Value.absent(), + Value answerImage = const Value.absent(), String? collectionId, double? progress, }) => Ticket( @@ -1118,9 +1116,9 @@ class Ticket extends DataClass implements Insertable { createdAt, updatedAt, question, - $driftBlobEquality.hash(questionImage), + questionImage, answer, - $driftBlobEquality.hash(answerImage), + answerImage, collectionId, progress, ); @@ -1132,9 +1130,9 @@ class Ticket extends DataClass implements Insertable { other.createdAt == this.createdAt && other.updatedAt == this.updatedAt && other.question == this.question && - $driftBlobEquality.equals(other.questionImage, this.questionImage) && + other.questionImage == this.questionImage && other.answer == this.answer && - $driftBlobEquality.equals(other.answerImage, this.answerImage) && + other.answerImage == this.answerImage && other.collectionId == this.collectionId && other.progress == this.progress); } @@ -1144,9 +1142,9 @@ class TicketsCompanion extends UpdateCompanion { final Value createdAt; final Value updatedAt; final Value question; - final Value questionImage; + final Value questionImage; final Value answer; - final Value answerImage; + final Value answerImage; final Value collectionId; final Value progress; final Value rowid; @@ -1181,9 +1179,9 @@ class TicketsCompanion extends UpdateCompanion { Expression? createdAt, Expression? updatedAt, Expression? question, - Expression? questionImage, + Expression? questionImage, Expression? answer, - Expression? answerImage, + Expression? answerImage, Expression? collectionId, Expression? progress, Expression? rowid, @@ -1207,9 +1205,9 @@ class TicketsCompanion extends UpdateCompanion { Value? createdAt, Value? updatedAt, Value? question, - Value? questionImage, + Value? questionImage, Value? answer, - Value? answerImage, + Value? answerImage, Value? collectionId, Value? progress, Value? rowid, @@ -1244,13 +1242,13 @@ class TicketsCompanion extends UpdateCompanion { map['question'] = Variable(question.value); } if (questionImage.present) { - map['question_image'] = Variable(questionImage.value); + map['question_image'] = Variable(questionImage.value); } if (answer.present) { map['answer'] = Variable(answer.value); } if (answerImage.present) { - map['answer_image'] = Variable(answerImage.value); + map['answer_image'] = Variable(answerImage.value); } if (collectionId.present) { map['collection_id'] = Variable(collectionId.value); @@ -1318,7 +1316,7 @@ typedef $$CollectionsTableCreateCompanionBuilder = Value updatedAt, required String title, required String desc, - Value image, + Value image, Value payload, Value likesCount, Value isLiked, @@ -1333,7 +1331,7 @@ typedef $$CollectionsTableUpdateCompanionBuilder = Value updatedAt, Value title, Value desc, - Value image, + Value image, Value payload, Value likesCount, Value isLiked, @@ -1400,7 +1398,7 @@ class $$CollectionsTableFilterComposer builder: (column) => ColumnFilters(column), ); - ColumnFilters get image => $composableBuilder( + ColumnFilters get image => $composableBuilder( column: $table.image, builder: (column) => ColumnFilters(column), ); @@ -1490,7 +1488,7 @@ class $$CollectionsTableOrderingComposer builder: (column) => ColumnOrderings(column), ); - ColumnOrderings get image => $composableBuilder( + ColumnOrderings get image => $composableBuilder( column: $table.image, builder: (column) => ColumnOrderings(column), ); @@ -1545,7 +1543,7 @@ class $$CollectionsTableAnnotationComposer GeneratedColumn get desc => $composableBuilder(column: $table.desc, builder: (column) => column); - GeneratedColumn get image => + GeneratedColumn get image => $composableBuilder(column: $table.image, builder: (column) => column); GeneratedColumn get payload => @@ -1627,7 +1625,7 @@ class $$CollectionsTableTableManager Value updatedAt = const Value.absent(), Value title = const Value.absent(), Value desc = const Value.absent(), - Value image = const Value.absent(), + Value image = const Value.absent(), Value payload = const Value.absent(), Value likesCount = const Value.absent(), Value isLiked = const Value.absent(), @@ -1655,7 +1653,7 @@ class $$CollectionsTableTableManager Value updatedAt = const Value.absent(), required String title, required String desc, - Value image = const Value.absent(), + Value image = const Value.absent(), Value payload = const Value.absent(), Value likesCount = const Value.absent(), Value isLiked = const Value.absent(), @@ -1743,9 +1741,9 @@ typedef $$TicketsTableCreateCompanionBuilder = Value createdAt, Value updatedAt, required String question, - Value questionImage, + Value questionImage, required String answer, - Value answerImage, + Value answerImage, required String collectionId, Value progress, Value rowid, @@ -1756,9 +1754,9 @@ typedef $$TicketsTableUpdateCompanionBuilder = Value createdAt, Value updatedAt, Value question, - Value questionImage, + Value questionImage, Value answer, - Value answerImage, + Value answerImage, Value collectionId, Value progress, Value rowid, @@ -1817,7 +1815,7 @@ class $$TicketsTableFilterComposer builder: (column) => ColumnFilters(column), ); - ColumnFilters get questionImage => $composableBuilder( + ColumnFilters get questionImage => $composableBuilder( column: $table.questionImage, builder: (column) => ColumnFilters(column), ); @@ -1827,7 +1825,7 @@ class $$TicketsTableFilterComposer builder: (column) => ColumnFilters(column), ); - ColumnFilters get answerImage => $composableBuilder( + ColumnFilters get answerImage => $composableBuilder( column: $table.answerImage, builder: (column) => ColumnFilters(column), ); @@ -1890,7 +1888,7 @@ class $$TicketsTableOrderingComposer builder: (column) => ColumnOrderings(column), ); - ColumnOrderings get questionImage => $composableBuilder( + ColumnOrderings get questionImage => $composableBuilder( column: $table.questionImage, builder: (column) => ColumnOrderings(column), ); @@ -1900,7 +1898,7 @@ class $$TicketsTableOrderingComposer builder: (column) => ColumnOrderings(column), ); - ColumnOrderings get answerImage => $composableBuilder( + ColumnOrderings get answerImage => $composableBuilder( column: $table.answerImage, builder: (column) => ColumnOrderings(column), ); @@ -1955,7 +1953,7 @@ class $$TicketsTableAnnotationComposer GeneratedColumn get question => $composableBuilder(column: $table.question, builder: (column) => column); - GeneratedColumn get questionImage => $composableBuilder( + GeneratedColumn get questionImage => $composableBuilder( column: $table.questionImage, builder: (column) => column, ); @@ -1963,7 +1961,7 @@ class $$TicketsTableAnnotationComposer GeneratedColumn get answer => $composableBuilder(column: $table.answer, builder: (column) => column); - GeneratedColumn get answerImage => $composableBuilder( + GeneratedColumn get answerImage => $composableBuilder( column: $table.answerImage, builder: (column) => column, ); @@ -2027,9 +2025,9 @@ class $$TicketsTableTableManager Value createdAt = const Value.absent(), Value updatedAt = const Value.absent(), Value question = const Value.absent(), - Value questionImage = const Value.absent(), + Value questionImage = const Value.absent(), Value answer = const Value.absent(), - Value answerImage = const Value.absent(), + Value answerImage = const Value.absent(), Value collectionId = const Value.absent(), Value progress = const Value.absent(), Value rowid = const Value.absent(), @@ -2051,9 +2049,9 @@ class $$TicketsTableTableManager Value createdAt = const Value.absent(), Value updatedAt = const Value.absent(), required String question, - Value questionImage = const Value.absent(), + Value questionImage = const Value.absent(), required String answer, - Value answerImage = const Value.absent(), + Value answerImage = const Value.absent(), required String collectionId, Value progress = const Value.absent(), Value rowid = const Value.absent(), diff --git a/lib/database/tables.dart b/lib/database/tables.dart index b10a9b1..18d865a 100644 --- a/lib/database/tables.dart +++ b/lib/database/tables.dart @@ -64,7 +64,7 @@ mixin _Deletable on Table { class Collections extends Table with _UuidPrimaryKey, _Timestampable { TextColumn get title => text()(); TextColumn get desc => text()(); - BlobColumn get image => blob().nullable()(); + TextColumn get image => text().nullable()(); TextColumn get payload => text().nullable()(); IntColumn get likesCount => integer().withDefault(Constant(0))(); BoolColumn get isLiked => boolean().withDefault(Constant(false))(); @@ -78,9 +78,9 @@ class Collections extends Table with _UuidPrimaryKey, _Timestampable { @DataClassName('Ticket') class Tickets extends Table with _UuidPrimaryKey, _Timestampable { TextColumn get question => text()(); - BlobColumn get questionImage => blob().named('question_image').nullable()(); + TextColumn get questionImage => text().named('question_image').nullable()(); TextColumn get answer => text()(); - BlobColumn get answerImage => blob().named('answer_image').nullable()(); + TextColumn get answerImage => text().named('answer_image').nullable()(); TextColumn get collectionId => text().references(Collections, #id, onDelete: KeyAction.cascade)(); RealColumn get progress => real().withDefault(Constant(0))(); diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index ba4cd71..5deb201 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -6,7 +6,7 @@ /// Locales: 2 /// Strings: 20 (10 per locale) /// -/// Built on 2025-06-17 at 18:40 UTC +/// Built on 2025-09-08 at 14:50 UTC // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/models/create_ticket_dto.dart b/lib/models/create_ticket_dto.dart index 87aa2b5..56e4a02 100644 --- a/lib/models/create_ticket_dto.dart +++ b/lib/models/create_ticket_dto.dart @@ -2,8 +2,6 @@ // // final collectionDto = collectionDtoFromJson(jsonString); -import 'dart:convert'; -import 'dart:typed_data'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:remever/database/database.dart'; @@ -14,9 +12,9 @@ abstract class CreateTicketDto with _$CreateTicketDto { const factory CreateTicketDto({ Collection? collection, String? question, - Uint8List? questionImage, + String? questionImage, String? answer, - Uint8List? answerImage, + String? answerImage, bool? needRevert, }) = _CreateTicketDto; } diff --git a/lib/models/create_ticket_dto.freezed.dart b/lib/models/create_ticket_dto.freezed.dart index ab4b292..d6bf288 100644 --- a/lib/models/create_ticket_dto.freezed.dart +++ b/lib/models/create_ticket_dto.freezed.dart @@ -19,9 +19,9 @@ final _privateConstructorUsedError = UnsupportedError( mixin _$CreateTicketDto { Collection? get collection => throw _privateConstructorUsedError; String? get question => throw _privateConstructorUsedError; - Uint8List? get questionImage => throw _privateConstructorUsedError; + String? get questionImage => throw _privateConstructorUsedError; String? get answer => throw _privateConstructorUsedError; - Uint8List? get answerImage => throw _privateConstructorUsedError; + String? get answerImage => throw _privateConstructorUsedError; bool? get needRevert => throw _privateConstructorUsedError; /// Create a copy of CreateTicketDto @@ -41,9 +41,9 @@ abstract class $CreateTicketDtoCopyWith<$Res> { $Res call({ Collection? collection, String? question, - Uint8List? questionImage, + String? questionImage, String? answer, - Uint8List? answerImage, + String? answerImage, bool? needRevert, }); } @@ -86,7 +86,7 @@ class _$CreateTicketDtoCopyWithImpl<$Res, $Val extends CreateTicketDto> freezed == questionImage ? _value.questionImage : questionImage // ignore: cast_nullable_to_non_nullable - as Uint8List?, + as String?, answer: freezed == answer ? _value.answer @@ -96,7 +96,7 @@ class _$CreateTicketDtoCopyWithImpl<$Res, $Val extends CreateTicketDto> freezed == answerImage ? _value.answerImage : answerImage // ignore: cast_nullable_to_non_nullable - as Uint8List?, + as String?, needRevert: freezed == needRevert ? _value.needRevert @@ -120,9 +120,9 @@ abstract class _$$CreateTicketDtoImplCopyWith<$Res> $Res call({ Collection? collection, String? question, - Uint8List? questionImage, + String? questionImage, String? answer, - Uint8List? answerImage, + String? answerImage, bool? needRevert, }); } @@ -164,7 +164,7 @@ class __$$CreateTicketDtoImplCopyWithImpl<$Res> freezed == questionImage ? _value.questionImage : questionImage // ignore: cast_nullable_to_non_nullable - as Uint8List?, + as String?, answer: freezed == answer ? _value.answer @@ -174,7 +174,7 @@ class __$$CreateTicketDtoImplCopyWithImpl<$Res> freezed == answerImage ? _value.answerImage : answerImage // ignore: cast_nullable_to_non_nullable - as Uint8List?, + as String?, needRevert: freezed == needRevert ? _value.needRevert @@ -202,11 +202,11 @@ class _$CreateTicketDtoImpl implements _CreateTicketDto { @override final String? question; @override - final Uint8List? questionImage; + final String? questionImage; @override final String? answer; @override - final Uint8List? answerImage; + final String? answerImage; @override final bool? needRevert; @@ -226,15 +226,11 @@ class _$CreateTicketDtoImpl implements _CreateTicketDto { ) && (identical(other.question, question) || other.question == question) && - const DeepCollectionEquality().equals( - other.questionImage, - questionImage, - ) && + (identical(other.questionImage, questionImage) || + other.questionImage == questionImage) && (identical(other.answer, answer) || other.answer == answer) && - const DeepCollectionEquality().equals( - other.answerImage, - answerImage, - ) && + (identical(other.answerImage, answerImage) || + other.answerImage == answerImage) && (identical(other.needRevert, needRevert) || other.needRevert == needRevert)); } @@ -244,9 +240,9 @@ class _$CreateTicketDtoImpl implements _CreateTicketDto { runtimeType, const DeepCollectionEquality().hash(collection), question, - const DeepCollectionEquality().hash(questionImage), + questionImage, answer, - const DeepCollectionEquality().hash(answerImage), + answerImage, needRevert, ); @@ -266,9 +262,9 @@ abstract class _CreateTicketDto implements CreateTicketDto { const factory _CreateTicketDto({ final Collection? collection, final String? question, - final Uint8List? questionImage, + final String? questionImage, final String? answer, - final Uint8List? answerImage, + final String? answerImage, final bool? needRevert, }) = _$CreateTicketDtoImpl; @@ -277,11 +273,11 @@ abstract class _CreateTicketDto implements CreateTicketDto { @override String? get question; @override - Uint8List? get questionImage; + String? get questionImage; @override String? get answer; @override - Uint8List? get answerImage; + String? get answerImage; @override bool? get needRevert; diff --git a/lib/models/crud_collection_dto.dart b/lib/models/crud_collection_dto.dart index bf38c94..d365079 100644 --- a/lib/models/crud_collection_dto.dart +++ b/lib/models/crud_collection_dto.dart @@ -2,7 +2,6 @@ // // final collectionDto = collectionDtoFromJson(jsonString); -import 'dart:convert'; import 'dart:typed_data'; import 'package:freezed_annotation/freezed_annotation.dart'; @@ -14,6 +13,6 @@ abstract class CrudCollectionDto with _$CrudCollectionDto { required String desc, required String title, required bool isPublic, - Uint8List? avatar, + String? avatar, }) = _CrudCollectionDto; } diff --git a/lib/models/crud_collection_dto.freezed.dart b/lib/models/crud_collection_dto.freezed.dart index ae68126..588d564 100644 --- a/lib/models/crud_collection_dto.freezed.dart +++ b/lib/models/crud_collection_dto.freezed.dart @@ -20,7 +20,7 @@ mixin _$CrudCollectionDto { String get desc => throw _privateConstructorUsedError; String get title => throw _privateConstructorUsedError; bool get isPublic => throw _privateConstructorUsedError; - Uint8List? get avatar => throw _privateConstructorUsedError; + String? get avatar => throw _privateConstructorUsedError; /// Create a copy of CrudCollectionDto /// with the given fields replaced by the non-null parameter values. @@ -36,7 +36,7 @@ abstract class $CrudCollectionDtoCopyWith<$Res> { $Res Function(CrudCollectionDto) then, ) = _$CrudCollectionDtoCopyWithImpl<$Res, CrudCollectionDto>; @useResult - $Res call({String desc, String title, bool isPublic, Uint8List? avatar}); + $Res call({String desc, String title, bool isPublic, String? avatar}); } /// @nodoc @@ -80,7 +80,7 @@ class _$CrudCollectionDtoCopyWithImpl<$Res, $Val extends CrudCollectionDto> freezed == avatar ? _value.avatar : avatar // ignore: cast_nullable_to_non_nullable - as Uint8List?, + as String?, ) as $Val, ); @@ -96,7 +96,7 @@ abstract class _$$CrudCollectionDtoImplCopyWith<$Res> ) = __$$CrudCollectionDtoImplCopyWithImpl<$Res>; @override @useResult - $Res call({String desc, String title, bool isPublic, Uint8List? avatar}); + $Res call({String desc, String title, bool isPublic, String? avatar}); } /// @nodoc @@ -139,7 +139,7 @@ class __$$CrudCollectionDtoImplCopyWithImpl<$Res> freezed == avatar ? _value.avatar : avatar // ignore: cast_nullable_to_non_nullable - as Uint8List?, + as String?, ), ); } @@ -162,7 +162,7 @@ class _$CrudCollectionDtoImpl implements _CrudCollectionDto { @override final bool isPublic; @override - final Uint8List? avatar; + final String? avatar; @override String toString() { @@ -178,17 +178,11 @@ class _$CrudCollectionDtoImpl implements _CrudCollectionDto { (identical(other.title, title) || other.title == title) && (identical(other.isPublic, isPublic) || other.isPublic == isPublic) && - const DeepCollectionEquality().equals(other.avatar, avatar)); + (identical(other.avatar, avatar) || other.avatar == avatar)); } @override - int get hashCode => Object.hash( - runtimeType, - desc, - title, - isPublic, - const DeepCollectionEquality().hash(avatar), - ); + int get hashCode => Object.hash(runtimeType, desc, title, isPublic, avatar); /// Create a copy of CrudCollectionDto /// with the given fields replaced by the non-null parameter values. @@ -207,7 +201,7 @@ abstract class _CrudCollectionDto implements CrudCollectionDto { required final String desc, required final String title, required final bool isPublic, - final Uint8List? avatar, + final String? avatar, }) = _$CrudCollectionDtoImpl; @override @@ -217,7 +211,7 @@ abstract class _CrudCollectionDto implements CrudCollectionDto { @override bool get isPublic; @override - Uint8List? get avatar; + String? get avatar; /// Create a copy of CrudCollectionDto /// with the given fields replaced by the non-null parameter values. diff --git a/lib/screens/collections/collection_detail_screen.dart b/lib/screens/collections/collection_detail_screen.dart index 10c4378..9d27421 100644 --- a/lib/screens/collections/collection_detail_screen.dart +++ b/lib/screens/collections/collection_detail_screen.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:io'; import 'dart:math'; import 'package:auto_route/auto_route.dart'; @@ -152,7 +153,7 @@ class CollectionDetailScreen extends StatelessWidget { condition: collection.image != null, builder: (context) => ClipOval( - child: Image.memory(collection.image!, fit: BoxFit.cover), + child: Image.file(File(collection.image!), fit: BoxFit.cover), ), fallback: (context) => Center( diff --git a/lib/screens/collections/collection_search_screen.dart b/lib/screens/collections/collection_search_screen.dart index 61cbfee..076ca50 100644 --- a/lib/screens/collections/collection_search_screen.dart +++ b/lib/screens/collections/collection_search_screen.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:auto_route/auto_route.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -258,7 +260,7 @@ class _Collection extends StatelessWidget { condition: collection.image != null, builder: (context) => ClipOval( - child: Image.memory(collection.image!, fit: BoxFit.cover), + child: Image.file(File(collection.image!), fit: BoxFit.cover), ), fallback: (context) => Center( diff --git a/lib/screens/collections/widgets/collection_card.dart b/lib/screens/collections/widgets/collection_card.dart index 8f29f02..73c87fe 100644 --- a/lib/screens/collections/widgets/collection_card.dart +++ b/lib/screens/collections/widgets/collection_card.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:io'; import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; @@ -172,7 +173,7 @@ class CollectionCard extends StatelessWidget { condition: collection.image != null, builder: (context) => ClipOval( - child: Image.memory(collection.image!, fit: BoxFit.cover), + child: Image.file(File(collection.image!), fit: BoxFit.cover), ), fallback: (context) => Center( diff --git a/lib/screens/collections/widgets/ticket_card.dart b/lib/screens/collections/widgets/ticket_card.dart index 32e957e..a774f04 100644 --- a/lib/screens/collections/widgets/ticket_card.dart +++ b/lib/screens/collections/widgets/ticket_card.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; @@ -181,7 +183,7 @@ class _TicketCardState extends State { dimension: 64.r, child: ClipRRect( borderRadius: BorderRadius.circular(8).r, - child: Image.memory(imageBytes!, fit: BoxFit.cover), + child: Image.file(File(imageBytes!), fit: BoxFit.cover), ), ), ), diff --git a/lib/screens/create_card/create_screen.dart b/lib/screens/create_card/create_screen.dart index b4ec510..e7e9295 100644 --- a/lib/screens/create_card/create_screen.dart +++ b/lib/screens/create_card/create_screen.dart @@ -3,6 +3,7 @@ import 'package:auto_route/auto_route.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:path_provider/path_provider.dart'; import 'package:remever/common/functions.dart'; import 'package:remever/common/resources.dart'; import 'package:remever/common/utils.dart'; @@ -21,6 +22,7 @@ import 'package:remever/screens/create_card/widgets/crud_ticket.dart'; import 'package:remever/services/tickets/tickets_interface.dart'; import 'package:remever/widgets/debug/app_debug.dart'; import 'package:remever/widgets/primary_button.dart'; +import 'package:path/path.dart' as path; @RoutePage() class CreateScreen extends StatefulWidget { @@ -50,13 +52,27 @@ class _CreateScreenState extends State { showErrorToast('Не удалось получить путь к файлу'); return; } - final file = File(filePath); - final bytes = await file.readAsBytes(); + + // Получаем директорию документов + final Directory directory = await getApplicationDocumentsDirectory(); + final String ticketsDirPath = path.join(directory.path, 'tickets'); + final Directory ticketsDir = Directory(ticketsDirPath); + + // Создаём директорию рекурсивно + if (!(await ticketsDir.exists())) { + await ticketsDir.create(recursive: true); + } + + final String fileName = path.basename(filePath); + final String destinationPath = path.join(ticketsDirPath, fileName); + + final copiedFile = await File(filePath).copy(destinationPath); + safeSetState(() { _dto = isQuestion - ? _dto.copyWith(questionImage: bytes) - : _dto.copyWith(answerImage: bytes); + ? _dto.copyWith(questionImage: copiedFile.path) + : _dto.copyWith(answerImage: copiedFile.path); }); } @@ -284,7 +300,10 @@ class _CreateScreenState extends State { condition: _dto.collection?.image != null, builder: (context) => ClipOval( - child: Image.memory(_dto.collection!.image!, fit: BoxFit.cover), + child: Image.file( + File(_dto.collection!.image!), + fit: BoxFit.cover, + ), ), fallback: (context) => Center( diff --git a/lib/screens/create_card/widgets/crud_ticket.dart b/lib/screens/create_card/widgets/crud_ticket.dart index f098ce5..928de57 100644 --- a/lib/screens/create_card/widgets/crud_ticket.dart +++ b/lib/screens/create_card/widgets/crud_ticket.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:readmore/readmore.dart'; import 'package:remever/common/resources.dart'; @@ -100,8 +102,8 @@ class CrudTicket extends StatelessWidget { builder: (context) { return ClipRRect( borderRadius: const BorderRadius.all(Radius.circular(8)).r, - child: Image.memory( - isQuestion ? dto.questionImage! : dto.answerImage!, + child: Image.file( + File(isQuestion ? dto.questionImage! : dto.answerImage!), fit: BoxFit.cover, ), ); diff --git a/lib/screens/crud_collection/crud_collection.dart b/lib/screens/crud_collection/crud_collection.dart index e10687e..34087c5 100644 --- a/lib/screens/crud_collection/crud_collection.dart +++ b/lib/screens/crud_collection/crud_collection.dart @@ -5,6 +5,7 @@ import 'package:auto_route/auto_route.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:path_provider/path_provider.dart'; import 'package:remever/common/functions.dart'; import 'package:remever/common/resources.dart'; import 'package:remever/common/widgets/bottom_safe_space.dart'; @@ -24,6 +25,7 @@ import 'package:remever/services/collection/collections_interface.dart'; import 'package:remever/widgets/primary_button.dart'; import '../../../components/extensions/state.dart'; +import 'package:path/path.dart' as path; @RoutePage() class CrudCollectionScreen extends StatefulWidget { @@ -58,10 +60,27 @@ class _CrudCollectionScreenState extends State { Future _pickImage() async { final result = await FilePicker.platform.pickFiles(); - if (result?.files.single.path case final String? path?) { + if (result?.files.single.path case final String? originPath?) { try { - final bytes = await File(path!).readAsBytes(); - _updateCollection(avatar: bytes); + // Получаем директорию документов + final Directory directory = await getApplicationDocumentsDirectory(); + final String collectionsDirPath = path.join( + directory.path, + 'collections', + ); + final Directory collectionsDir = Directory(collectionsDirPath); + + // Создаём директорию рекурсивно + if (!(await collectionsDir.exists())) { + await collectionsDir.create(recursive: true); + } + + final String fileName = path.basename(originPath!); + final String destinationPath = path.join(collectionsDirPath, fileName); + + await File(originPath).copy(destinationPath); + + _updateCollection(avatar: destinationPath); } catch (e) { showErrorToast('Не удалось загрузить изображение'); } @@ -74,7 +93,7 @@ class _CrudCollectionScreenState extends State { String? title, String? desc, bool? isPublic, - Uint8List? avatar, + String? avatar, }) { _collection = _collection.copyWith( title: title ?? _collection.title, @@ -389,8 +408,8 @@ class _CrudCollectionScreenState extends State { condition: _collection.avatar != null, builder: (_) => ClipOval( - child: Image.memory( - _collection.avatar!, + child: Image.file( + File(_collection.avatar!), fit: BoxFit.cover, errorBuilder: (_, __, ___) => _buildPhotoPlaceholder(), ), diff --git a/lib/screens/dialogs/info_dialog.dart b/lib/screens/dialogs/info_dialog.dart index 1008a66..b48ee18 100644 --- a/lib/screens/dialogs/info_dialog.dart +++ b/lib/screens/dialogs/info_dialog.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:io'; import 'package:flutter/material.dart'; import 'package:remever/common/resources.dart'; @@ -94,7 +95,7 @@ class InfoDialog extends StatelessWidget { condition: collection.image != null, builder: (context) => ClipOval( - child: Image.memory(collection.image!, fit: BoxFit.cover), + child: Image.file(File(collection.image!), fit: BoxFit.cover), ), fallback: (context) => Center( diff --git a/lib/screens/dialogs/replace_diaog.dart b/lib/screens/dialogs/replace_diaog.dart index e633936..4d8d664 100644 --- a/lib/screens/dialogs/replace_diaog.dart +++ b/lib/screens/dialogs/replace_diaog.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:remever/common/functions.dart'; @@ -217,7 +219,7 @@ class _ReplaceDialogState extends State { condition: collection.image != null, builder: (context) => ClipOval( - child: Image.memory(collection.image!, fit: BoxFit.cover), + child: Image.file(File(collection.image!), fit: BoxFit.cover), ), fallback: (context) => Center( diff --git a/pubspec.lock b/pubspec.lock index 1bb7119..78d64b8 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -910,7 +910,7 @@ packages: source: hosted version: "1.1.0" path_provider: - dependency: transitive + dependency: "direct main" description: name: path_provider sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" diff --git a/pubspec.yaml b/pubspec.yaml index ce2e313..5cf0f62 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -38,6 +38,8 @@ dependencies: pin_code_fields: ^8.0.1 modal_bottom_sheet: ^3.0.0 file_picker: ^10.0.0 + path_provider: ^2.1.5 + # logs talker: ^4.6.11 From 6cb9e82e61abcacf1c44f8c4d6fd706ee0be4e26 Mon Sep 17 00:00:00 2001 From: Vitalij Date: Mon, 8 Sep 2025 21:13:16 +0300 Subject: [PATCH 5/7] =?UTF-8?q?feature(collection):=20=D0=9F=D0=BE=D0=B4?= =?UTF-8?q?=D1=81=D1=87=D0=B5=D1=82=20=D0=BA=D0=BE=D0=BB-=D0=B2=D0=B0=20?= =?UTF-8?q?=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=B5=D0=BA=20=D0=B2=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BB=D0=BB=D0=B5=D0=BA=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/database/dao/tickets_dao.dart | 14 ++++++++ .../collections/widgets/collection_card.dart | 22 ++++++++++--- lib/screens/create_card/create_screen.dart | 32 +++++++++++-------- 3 files changed, 50 insertions(+), 18 deletions(-) diff --git a/lib/database/dao/tickets_dao.dart b/lib/database/dao/tickets_dao.dart index 5538b0d..d5499a1 100644 --- a/lib/database/dao/tickets_dao.dart +++ b/lib/database/dao/tickets_dao.dart @@ -27,6 +27,20 @@ class TicketsDao extends DatabaseAccessor with _$TicketsDaoMixin { } } + /// Получение билетов из базы данных + Future getTicketsInCollectionCount(String collectionId) async { + try { + return (await db.managers.tickets + .filter((f) => f.collectionId.id(collectionId)) + .get()) + .length; + } catch (e, st) { + logger.logError('Ошибка в методе getTicketsInCollectionCount', e, st); + + throw ('EXEPTION'); + } + } + /// Удаление билета Future removeTicket(String id) async { try { diff --git a/lib/screens/collections/widgets/collection_card.dart b/lib/screens/collections/widgets/collection_card.dart index 73c87fe..ac2c5e9 100644 --- a/lib/screens/collections/widgets/collection_card.dart +++ b/lib/screens/collections/widgets/collection_card.dart @@ -12,6 +12,7 @@ import 'package:remever/common/widgets/wspace.dart'; import 'package:remever/components/extensions/context.dart'; import 'package:remever/database/database.dart'; import 'package:remever/gen/assets.gen.dart'; +import 'package:remever/inject.dart'; import 'package:remever/router.gr.dart'; import 'package:remever/screens/collections/widgets/collection_progress_bar.dart'; import 'package:remever/screens/dialogs/action_dialog.dart'; @@ -130,10 +131,23 @@ class CollectionCard extends StatelessWidget { Widget _buildLikeAndCardsLength() { return Row( children: [ - _buildIconWithText( - icon: Assets.icons.typeCards, - color: AppColors.disabled, - text: collection.likesCount.toString(), + FutureBuilder( + future: getIt().ticketsDao.getTicketsInCollectionCount( + collection.id, + ), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) + return SizedBox.square( + dimension: 18.r, + child: CircularProgressIndicator(), + ); + + return _buildIconWithText( + icon: Assets.icons.typeCards, + color: AppColors.disabled, + text: snapshot.data.toString(), + ); + }, ), const WSpace(8), _buildIconWithText( diff --git a/lib/screens/create_card/create_screen.dart b/lib/screens/create_card/create_screen.dart index e7e9295..a8155a5 100644 --- a/lib/screens/create_card/create_screen.dart +++ b/lib/screens/create_card/create_screen.dart @@ -36,6 +36,7 @@ class CreateScreen extends StatefulWidget { class _CreateScreenState extends State { CreateTicketDto _dto = CreateTicketDto(); + String _selectedFilter = 'Запомнить'; // Constants for spacing and dimensions static const double _horizontalPadding = 16; @@ -366,22 +367,25 @@ class _CreateScreenState extends State { } Widget _filters() { - return AppDebug( - builder: (context, isDebug) { - if (!isDebug) return const SizedBox(); - return Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - _buildFilterButton(AppColors.gray_bg, 'Запомнить', () {}), - const WSpace(10), - _buildFilterButton(AppColors.white, 'Держать в фокусе', () {}), - ], - ); - }, + return Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + _buildFilterButton('Запомнить', () { + safeSetState(() { + _selectedFilter = 'Запомнить'; + }); + }), + const WSpace(10), + _buildFilterButton('Держать в фокусе', () { + safeSetState(() { + _selectedFilter = 'Держать в фокусе'; + }); + }), + ], ); } - Widget _buildFilterButton(Color color, String title, VoidCallback onTap) { + Widget _buildFilterButton(String title, VoidCallback onTap) { return GestureDetector( onTap: onTap, child: Container( @@ -389,7 +393,7 @@ class _CreateScreenState extends State { height: 36.h, decoration: BoxDecoration( borderRadius: BorderRadius.circular(16).r, - color: color, + color: _selectedFilter == title ? AppColors.white : AppColors.gray_bg, ), child: Center(child: AppTypography(title, type: SemiBold14px())), ), From 90531e6e4ea84d890272b806f9ebf350c51d3994 Mon Sep 17 00:00:00 2001 From: Vitalij Date: Mon, 8 Sep 2025 21:47:51 +0300 Subject: [PATCH 6/7] =?UTF-8?q?feature(image):=20=D0=94=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82?= =?UTF-8?q?=D0=BE=D1=80=20=D1=84=D0=BE=D1=82=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dart_tool/package_config.json | 2 +- .dart_tool/package_config_subset | 12 ++++++ .flutter-plugins | 2 + .flutter-plugins-dependencies | 2 +- android/app/src/main/AndroidManifest.xml | 5 +++ .../app/src/main/res/values-v35/styles.xml | 6 +++ android/app/src/main/res/values/styles.xml | 9 +++- .../collections/collection_search_screen.dart | 42 ++++++++++++------- .../collections/widgets/collection_card.dart | 3 +- lib/screens/create_card/create_screen.dart | 27 ++++++++++-- .../crud_collection/crud_collection.dart | 22 +++++++++- .../crud_collection_fullscreen_field.dart | 1 + pubspec.lock | 24 +++++++++++ pubspec.yaml | 1 + 14 files changed, 133 insertions(+), 25 deletions(-) create mode 100644 android/app/src/main/res/values-v35/styles.xml diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json index 963d382..2b430ff 100644 --- a/.dart_tool/package_config.json +++ b/.dart_tool/package_config.json @@ -1 +1 @@ -{"configVersion":2,"packages":[{"name":"_fe_analyzer_shared","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-80.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"analyzer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"ansicolor","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ansicolor-2.0.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"archive","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"args","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.7.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"auto_route","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"auto_route_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route_generator-10.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/bloc-9.0.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"boolean_selector","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"build","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build-2.4.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_config-1.1.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_daemon","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_daemon-4.0.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_resolvers","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_resolvers-2.4.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner-2.4.15","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner_core-8.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_verify","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_verify-3.1.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"built_collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"built_value","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"characters","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/characters-1.4.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"charcode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/charcode-1.4.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"checked_yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/checked_yaml-2.0.3","packageUri":"lib/","languageVersion":"2.19"},{"name":"cli_util","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cli_util-0.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"clock","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/clock-1.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"code_builder","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/code_builder-4.10.1","packageUri":"lib/","languageVersion":"3.5"},{"name":"collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/collection-1.19.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"color","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/color-3.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"convert","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/convert-3.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"coverage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/coverage-1.11.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"cross_file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cross_file-0.3.4+2","packageUri":"lib/","languageVersion":"3.3"},{"name":"crypto","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/crypto-3.0.6","packageUri":"lib/","languageVersion":"3.4"},{"name":"csv","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/csv-6.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"cupertino_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8","packageUri":"lib/","languageVersion":"3.1"},{"name":"dart_style","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dart_style-3.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"dartx","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dartx-1.2.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/db_viewer-1.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"dio","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio-5.8.0+1","packageUri":"lib/","languageVersion":"2.18"},{"name":"dio_smart_retry","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_smart_retry-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"dio_web_adapter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"drift","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"drift_db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0","packageUri":"lib/","languageVersion":"2.13"},{"name":"drift_dev","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"event_bus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/event_bus-2.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"fake_async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fake_async-1.3.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"ffi","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ffi-2.1.4","packageUri":"lib/","languageVersion":"3.7"},{"name":"file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"file_picker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"fixnum","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fixnum-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"flutter","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_bloc-9.1.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"flutter_displaymode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_gen_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_core-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_gen_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_runner-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_keyboard_size","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"flutter_launcher_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.14.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"flutter_localizations","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_localizations","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_plugin_android_lifecycle","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_screenutil","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3","packageUri":"lib/","languageVersion":"2.17"},{"name":"flutter_secure_storage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_macos","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_slidable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_slidable-4.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_test","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_test","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_web_plugins","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_web_plugins","packageUri":"lib/","languageVersion":"3.7"},{"name":"fluttertoast","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12","packageUri":"lib/","languageVersion":"2.12"},{"name":"fps_widget","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fps_widget-1.0.1+2","packageUri":"lib/","languageVersion":"2.12"},{"name":"freezed","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed-2.5.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"freezed_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed_annotation-2.4.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"frontend_server_client","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"functional_listener","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/functional_listener-2.3.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"get_it","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it-7.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"get_it_mixin","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it_mixin-4.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"glob","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/glob-2.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"google_fonts","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/google_fonts-6.2.1","packageUri":"lib/","languageVersion":"2.14"},{"name":"graphs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"group_button","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/group_button-5.3.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"hashcodes","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hashcodes-2.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"hive_ce","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce-2.10.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"hive_ce_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_flutter-2.2.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"hive_ce_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_generator-1.8.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"http","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"http_multi_server","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2","packageUri":"lib/","languageVersion":"3.2"},{"name":"http_parser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"image","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"image_size_getter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"import_sorter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/import_sorter-4.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"injectable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable-2.5.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"injectable_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable_generator-2.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"intl","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/intl-0.19.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"io","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/io-1.0.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"js","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/js-0.6.7","packageUri":"lib/","languageVersion":"2.19"},{"name":"json2yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json2yaml-3.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"json_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_annotation-4.9.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"json_serializable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_serializable-6.9.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"leak_tracker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker-10.0.8","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_flutter_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1","packageUri":"lib/","languageVersion":"3.2"},{"name":"lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/lints-5.1.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"logging","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/logging-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"matcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/matcher-0.12.17","packageUri":"lib/","languageVersion":"3.4"},{"name":"material_color_utilities","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"meta","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/meta-1.16.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"mime","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/mime-2.0.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"modal_bottom_sheet","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/modal_bottom_sheet-3.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"nested","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/nested-1.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"node_preamble","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"package_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"package_info_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"package_info_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-3.2.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"path","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path-1.9.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_parsing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_parsing-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_provider_android","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16","packageUri":"lib/","languageVersion":"3.6"},{"name":"path_provider_foundation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1","packageUri":"lib/","languageVersion":"2.19"},{"name":"path_provider_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"path_provider_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"petitparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/petitparser-6.1.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"pin_code_fields","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pin_code_fields-8.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"platform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/platform-3.1.6","packageUri":"lib/","languageVersion":"3.2"},{"name":"plugin_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"pool","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pool-1.5.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"posix","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"pub_semver","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"pubspec_parse","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"readmore","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/readmore-3.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"recase","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"share_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"share_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus_platform_interface-5.0.2","packageUri":"lib/","languageVersion":"2.18"},{"name":"shelf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf-1.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"shelf_packages_handler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2","packageUri":"lib/","languageVersion":"2.17"},{"name":"shelf_static","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_static-1.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"shelf_web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"sky_engine","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/bin/cache/pkg/sky_engine","packageUri":"lib/","languageVersion":"3.7"},{"name":"slang","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_gen","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_gen-2.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"source_helper","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_helper-1.3.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"source_map_stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_maps","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_maps-0.10.13","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_span","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_span-1.10.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"sprintf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlite3","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.5","packageUri":"lib/","languageVersion":"3.5"},{"name":"sqlite3_flutter_libs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlparser-0.41.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stack_trace-1.12.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"stream_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_channel-2.1.4","packageUri":"lib/","languageVersion":"3.3"},{"name":"stream_transform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_transform-2.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"string_scanner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"talker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker-4.7.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"talker_bloc_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_bloc_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_dio_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_dio_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_flutter-4.7.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"talker_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"term_glyph","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/term_glyph-1.2.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"test","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test-1.25.15","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_api","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_api-0.7.4","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_core-0.6.8","packageUri":"lib/","languageVersion":"3.5"},{"name":"time","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/time-2.1.5","packageUri":"lib/","languageVersion":"2.12"},{"name":"timing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/timing-1.0.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"tint","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/tint-2.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"typed_data","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/typed_data-1.4.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"url_launcher_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"url_launcher_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"url_launcher_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"url_launcher_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"uuid","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/uuid-4.5.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"vector_graphics_codec","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.13","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_graphics_compiler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.16","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_math","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_math-2.1.4","packageUri":"lib/","languageVersion":"2.14"},{"name":"vm_service","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vm_service-14.3.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"watcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/watcher-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web-1.1.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket-0.1.6","packageUri":"lib/","languageVersion":"3.3"},{"name":"web_socket_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"webkit_inspection_protocol","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"win32","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.12.0","packageUri":"lib/","languageVersion":"3.7"},{"name":"xdg_directories","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"xml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xml-6.5.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml-3.1.3","packageUri":"lib/","languageVersion":"3.4"},{"name":"yaml_writer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml_writer-2.1.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"remever","rootUri":"../","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_gen","rootUri":"flutter_gen","languageVersion":"2.12"}],"generated":"2025-09-08T17:49:21.095693Z","generator":"pub","generatorVersion":"3.7.0","flutterRoot":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0","flutterVersion":"3.29.0","pubCache":"file:///Users/vitalijnecitajlo/.pub-cache"} \ No newline at end of file +{"configVersion":2,"packages":[{"name":"_fe_analyzer_shared","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/_fe_analyzer_shared-80.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"analyzer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/analyzer-7.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"ansicolor","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ansicolor-2.0.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"archive","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/archive-4.0.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"args","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/args-2.7.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/async-2.12.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"auto_route","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route-10.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"auto_route_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/auto_route_generator-10.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/bloc-9.0.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"boolean_selector","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/boolean_selector-2.1.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"build","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build-2.4.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_config-1.1.2","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_daemon","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_daemon-4.0.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_resolvers","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_resolvers-2.4.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner-2.4.15","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_runner_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_runner_core-8.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"build_verify","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/build_verify-3.1.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"built_collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_collection-5.1.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"built_value","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/built_value-8.9.5","packageUri":"lib/","languageVersion":"3.0"},{"name":"characters","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/characters-1.4.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"charcode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/charcode-1.4.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"checked_yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/checked_yaml-2.0.3","packageUri":"lib/","languageVersion":"2.19"},{"name":"cli_util","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cli_util-0.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"clock","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/clock-1.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"code_builder","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/code_builder-4.10.1","packageUri":"lib/","languageVersion":"3.5"},{"name":"collection","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/collection-1.19.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"color","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/color-3.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"convert","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/convert-3.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"coverage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/coverage-1.11.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"cross_file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cross_file-0.3.4+2","packageUri":"lib/","languageVersion":"3.3"},{"name":"crypto","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/crypto-3.0.6","packageUri":"lib/","languageVersion":"3.4"},{"name":"csv","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/csv-6.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"cupertino_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.8","packageUri":"lib/","languageVersion":"3.1"},{"name":"dart_style","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dart_style-3.0.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"dartx","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dartx-1.2.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/db_viewer-1.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"dio","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio-5.8.0+1","packageUri":"lib/","languageVersion":"2.18"},{"name":"dio_smart_retry","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_smart_retry-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"dio_web_adapter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/dio_web_adapter-2.1.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"drift","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"drift_db_viewer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_db_viewer-2.1.0","packageUri":"lib/","languageVersion":"2.13"},{"name":"drift_dev","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/drift_dev-2.26.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"event_bus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/event_bus-2.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"fake_async","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fake_async-1.3.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"ffi","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/ffi-2.1.4","packageUri":"lib/","languageVersion":"3.7"},{"name":"file","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file-7.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"file_picker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"fixnum","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fixnum-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"flutter","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_bloc","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_bloc-9.1.0","packageUri":"lib/","languageVersion":"2.14"},{"name":"flutter_displaymode","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_gen_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_core-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_gen_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_gen_runner-5.10.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_keyboard_size","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_keyboard_size-1.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"flutter_launcher_icons","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_launcher_icons-0.14.3","packageUri":"lib/","languageVersion":"3.0"},{"name":"flutter_lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_lints-5.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"flutter_localizations","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_localizations","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_plugin_android_lifecycle","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_screenutil","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_screenutil-5.9.3","packageUri":"lib/","languageVersion":"2.17"},{"name":"flutter_secure_storage","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_macos","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_platform_interface-1.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_secure_storage_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"flutter_slidable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_slidable-4.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"flutter_test","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_test","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_web_plugins","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/packages/flutter_web_plugins","packageUri":"lib/","languageVersion":"3.7"},{"name":"fluttertoast","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12","packageUri":"lib/","languageVersion":"2.12"},{"name":"fps_widget","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fps_widget-1.0.1+2","packageUri":"lib/","languageVersion":"2.12"},{"name":"freezed","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed-2.5.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"freezed_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/freezed_annotation-2.4.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"frontend_server_client","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/frontend_server_client-4.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"functional_listener","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/functional_listener-2.3.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"get_it","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it-7.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"get_it_mixin","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/get_it_mixin-4.2.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"glob","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/glob-2.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"google_fonts","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/google_fonts-6.2.1","packageUri":"lib/","languageVersion":"2.14"},{"name":"graphs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/graphs-2.3.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"group_button","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/group_button-5.3.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"hashcodes","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hashcodes-2.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"hive_ce","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce-2.10.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"hive_ce_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_flutter-2.2.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"hive_ce_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/hive_ce_generator-1.8.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"http","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"http_multi_server","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_multi_server-3.2.2","packageUri":"lib/","languageVersion":"3.2"},{"name":"http_parser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/http_parser-4.1.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"image","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4","packageUri":"lib/","languageVersion":"3.0"},{"name":"image_cropper","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"image_cropper_for_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_for_web-6.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"image_cropper_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_platform_interface-7.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"image_size_getter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"import_sorter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/import_sorter-4.6.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"injectable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable-2.5.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"injectable_generator","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/injectable_generator-2.7.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"intl","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/intl-0.19.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"io","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/io-1.0.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"js","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/js-0.6.7","packageUri":"lib/","languageVersion":"2.19"},{"name":"json2yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json2yaml-3.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"json_annotation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_annotation-4.9.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"json_serializable","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/json_serializable-6.9.4","packageUri":"lib/","languageVersion":"3.6"},{"name":"leak_tracker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker-10.0.8","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_flutter_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_flutter_testing-3.0.9","packageUri":"lib/","languageVersion":"3.2"},{"name":"leak_tracker_testing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/leak_tracker_testing-3.0.1","packageUri":"lib/","languageVersion":"3.2"},{"name":"lints","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/lints-5.1.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"logging","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/logging-1.3.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"matcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/matcher-0.12.17","packageUri":"lib/","languageVersion":"3.4"},{"name":"material_color_utilities","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/material_color_utilities-0.11.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"meta","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/meta-1.16.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"mime","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/mime-2.0.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"modal_bottom_sheet","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/modal_bottom_sheet-3.0.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"nested","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/nested-1.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"node_preamble","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/node_preamble-2.0.2","packageUri":"lib/","languageVersion":"2.12"},{"name":"package_config","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_config-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"package_info_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"package_info_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus_platform_interface-3.2.0","packageUri":"lib/","languageVersion":"2.18"},{"name":"path","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path-1.9.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_parsing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_parsing-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"path_provider_android","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16","packageUri":"lib/","languageVersion":"3.6"},{"name":"path_provider_foundation","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"path_provider_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1","packageUri":"lib/","languageVersion":"2.19"},{"name":"path_provider_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2","packageUri":"lib/","languageVersion":"3.0"},{"name":"path_provider_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"petitparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/petitparser-6.1.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"pin_code_fields","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pin_code_fields-8.0.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"platform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/platform-3.1.6","packageUri":"lib/","languageVersion":"3.2"},{"name":"plugin_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.8","packageUri":"lib/","languageVersion":"3.0"},{"name":"pool","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pool-1.5.1","packageUri":"lib/","languageVersion":"2.12"},{"name":"posix","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/posix-6.0.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"provider","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/provider-6.1.4","packageUri":"lib/","languageVersion":"2.12"},{"name":"pub_semver","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pub_semver-2.2.0","packageUri":"lib/","languageVersion":"3.4"},{"name":"pubspec_parse","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/pubspec_parse-1.5.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"readmore","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/readmore-3.0.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"recase","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/recase-4.1.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"share_plus","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"share_plus_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus_platform_interface-5.0.2","packageUri":"lib/","languageVersion":"2.18"},{"name":"shelf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf-1.4.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"shelf_packages_handler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_packages_handler-3.0.2","packageUri":"lib/","languageVersion":"2.17"},{"name":"shelf_static","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_static-1.1.3","packageUri":"lib/","languageVersion":"3.3"},{"name":"shelf_web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/shelf_web_socket-3.0.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"sky_engine","rootUri":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0/bin/cache/pkg/sky_engine","packageUri":"lib/","languageVersion":"3.7"},{"name":"slang","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_build_runner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_build_runner-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"slang_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/slang_flutter-4.6.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_gen","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_gen-2.0.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"source_helper","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_helper-1.3.5","packageUri":"lib/","languageVersion":"3.4"},{"name":"source_map_stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_map_stack_trace-2.1.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_maps","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_maps-0.10.13","packageUri":"lib/","languageVersion":"3.3"},{"name":"source_span","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/source_span-1.10.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"sprintf","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sprintf-7.0.0","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlite3","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3-2.7.5","packageUri":"lib/","languageVersion":"3.5"},{"name":"sqlite3_flutter_libs","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32","packageUri":"lib/","languageVersion":"2.12"},{"name":"sqlparser","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlparser-0.41.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"stack_trace","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stack_trace-1.12.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"stream_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_channel-2.1.4","packageUri":"lib/","languageVersion":"3.3"},{"name":"stream_transform","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/stream_transform-2.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"string_scanner","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/string_scanner-1.4.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"talker","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker-4.7.1","packageUri":"lib/","languageVersion":"2.17"},{"name":"talker_bloc_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_bloc_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_dio_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_dio_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"talker_flutter","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_flutter-4.7.1","packageUri":"lib/","languageVersion":"3.6"},{"name":"talker_logger","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/talker_logger-4.7.1","packageUri":"lib/","languageVersion":"2.15"},{"name":"term_glyph","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/term_glyph-1.2.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"test","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test-1.25.15","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_api","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_api-0.7.4","packageUri":"lib/","languageVersion":"3.5"},{"name":"test_core","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/test_core-0.6.8","packageUri":"lib/","languageVersion":"3.5"},{"name":"time","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/time-2.1.5","packageUri":"lib/","languageVersion":"2.12"},{"name":"timing","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/timing-1.0.2","packageUri":"lib/","languageVersion":"3.4"},{"name":"tint","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/tint-2.0.1","packageUri":"lib/","languageVersion":"2.18"},{"name":"typed_data","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/typed_data-1.4.0","packageUri":"lib/","languageVersion":"3.5"},{"name":"url_launcher_linux","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"url_launcher_platform_interface","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.2","packageUri":"lib/","languageVersion":"3.1"},{"name":"url_launcher_web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0","packageUri":"lib/","languageVersion":"3.6"},{"name":"url_launcher_windows","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4","packageUri":"lib/","languageVersion":"3.4"},{"name":"uuid","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/uuid-4.5.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"vector_graphics_codec","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_codec-1.1.13","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_graphics_compiler","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_graphics_compiler-1.1.16","packageUri":"lib/","languageVersion":"3.4"},{"name":"vector_math","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vector_math-2.1.4","packageUri":"lib/","languageVersion":"2.14"},{"name":"vm_service","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/vm_service-14.3.1","packageUri":"lib/","languageVersion":"3.3"},{"name":"watcher","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/watcher-1.1.1","packageUri":"lib/","languageVersion":"3.1"},{"name":"web","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web-1.1.1","packageUri":"lib/","languageVersion":"3.4"},{"name":"web_socket","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket-0.1.6","packageUri":"lib/","languageVersion":"3.3"},{"name":"web_socket_channel","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/web_socket_channel-3.0.2","packageUri":"lib/","languageVersion":"3.3"},{"name":"webkit_inspection_protocol","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1","packageUri":"lib/","languageVersion":"3.0"},{"name":"win32","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/win32-5.12.0","packageUri":"lib/","languageVersion":"3.7"},{"name":"xdg_directories","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xdg_directories-1.1.0","packageUri":"lib/","languageVersion":"3.3"},{"name":"xml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/xml-6.5.0","packageUri":"lib/","languageVersion":"3.2"},{"name":"yaml","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml-3.1.3","packageUri":"lib/","languageVersion":"3.4"},{"name":"yaml_writer","rootUri":"file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/yaml_writer-2.1.0","packageUri":"lib/","languageVersion":"3.0"},{"name":"remever","rootUri":"../","packageUri":"lib/","languageVersion":"3.7"},{"name":"flutter_gen","rootUri":"flutter_gen","languageVersion":"2.12"}],"generated":"2025-09-08T18:22:53.137282Z","generator":"pub","generatorVersion":"3.7.0","flutterRoot":"file:///Users/vitalijnecitajlo/fvm/versions/3.29.0","flutterVersion":"3.29.0","pubCache":"file:///Users/vitalijnecitajlo/.pub-cache"} \ No newline at end of file diff --git a/.dart_tool/package_config_subset b/.dart_tool/package_config_subset index e12b35b..6270333 100644 --- a/.dart_tool/package_config_subset +++ b/.dart_tool/package_config_subset @@ -334,6 +334,18 @@ image 3.0 file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4/ file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image-4.5.4/lib/ +image_cropper +3.3 +file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0/ +file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0/lib/ +image_cropper_for_web +3.3 +file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_for_web-6.1.0/ +file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_for_web-6.1.0/lib/ +image_cropper_platform_interface +3.3 +file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_platform_interface-7.1.0/ +file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_platform_interface-7.1.0/lib/ image_size_getter 2.12 file:///Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_size_getter-2.4.0/ diff --git a/.flutter-plugins b/.flutter-plugins index 74ff2cc..6241bee 100644 --- a/.flutter-plugins +++ b/.flutter-plugins @@ -8,6 +8,8 @@ flutter_secure_storage_macos=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/f flutter_secure_storage_web=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/ flutter_secure_storage_windows=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/ fluttertoast=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/ +image_cropper=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0/ +image_cropper_for_web=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_for_web-6.1.0/ package_info_plus=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/ path_provider=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider-2.1.5/ path_provider_android=/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/ diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index b7aae7b..abac9e1 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"flutter_displaymode","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"sqlite3_flutter_libs","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-09-08 20:49:48.132167","version":"3.29.0","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_cropper","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"flutter_displaymode","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_displaymode-0.6.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.27/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"image_cropper","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper-9.1.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_android-2.2.16/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":false,"dependencies":["url_launcher_linux"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.1/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","native_build":true,"dependencies":["url_launcher_windows"],"dev_dependency":false},{"name":"sqlite3_flutter_libs","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/sqlite3_flutter_libs-0.5.32/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"file_picker","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/file_picker-10.0.0/","dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/fluttertoast-8.2.12/","dependencies":[],"dev_dependency":false},{"name":"image_cropper_for_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/image_cropper_for_web-6.1.0/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/package_info_plus-8.3.0/","dependencies":[],"dev_dependency":false},{"name":"share_plus","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/share_plus-10.1.4/","dependencies":["url_launcher_web"],"dev_dependency":false},{"name":"url_launcher_web","path":"/Users/vitalijnecitajlo/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.0/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"flutter_displaymode","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"image_cropper","dependencies":["image_cropper_for_web"]},{"name":"image_cropper_for_web","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"share_plus","dependencies":["url_launcher_web","url_launcher_windows","url_launcher_linux"]},{"name":"sqlite3_flutter_libs","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2025-09-08 21:23:29.041070","version":"3.29.0","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 1ef671b..1f23c0a 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -38,6 +38,11 @@ + + + - + +