From 988e293899e1f96f4b1cc3182007a83ed4555a10 Mon Sep 17 00:00:00 2001 From: PetrovY Date: Wed, 28 May 2025 16:44:42 +0300 Subject: [PATCH] =?UTF-8?q?refactor(app=5Fservices):=20=D0=A3=D0=B4=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D1=82=D1=8C=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80?= =?UTF-8?q?=20=D1=81=20web?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_services/web/app_services/.gitignore | 29 ------ app_services/web/app_services/.metadata | 10 --- app_services/web/app_services/README.md | 1 - .../web/app_services/analysis_options.yaml | 89 ------------------- .../web/app_services/lib/app_services.dart | 4 - .../lib/src/app_path_provider.dart | 19 ---- .../lib/src/app_secure_storage.dart | 47 ---------- app_services/web/app_services/pubspec.yaml | 24 ----- pubspec.lock | 2 +- pubspec.yaml | 3 +- 10 files changed, 2 insertions(+), 226 deletions(-) delete mode 100644 app_services/web/app_services/.gitignore delete mode 100644 app_services/web/app_services/.metadata delete mode 100644 app_services/web/app_services/README.md delete mode 100644 app_services/web/app_services/analysis_options.yaml delete mode 100644 app_services/web/app_services/lib/app_services.dart delete mode 100644 app_services/web/app_services/lib/src/app_path_provider.dart delete mode 100644 app_services/web/app_services/lib/src/app_secure_storage.dart delete mode 100644 app_services/web/app_services/pubspec.yaml diff --git a/app_services/web/app_services/.gitignore b/app_services/web/app_services/.gitignore deleted file mode 100644 index ac5aa98..0000000 --- a/app_services/web/app_services/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ -migrate_working_dir/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. -/pubspec.lock -**/doc/api/ -.dart_tool/ -build/ diff --git a/app_services/web/app_services/.metadata b/app_services/web/app_services/.metadata deleted file mode 100644 index 2b37703..0000000 --- a/app_services/web/app_services/.metadata +++ /dev/null @@ -1,10 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: "7482962148e8d758338d8a28f589f317e1e42ba4" - channel: "stable" - -project_type: package diff --git a/app_services/web/app_services/README.md b/app_services/web/app_services/README.md deleted file mode 100644 index a03f3bd..0000000 --- a/app_services/web/app_services/README.md +++ /dev/null @@ -1 +0,0 @@ -# Базовые сервисы для приложения \ No newline at end of file diff --git a/app_services/web/app_services/analysis_options.yaml b/app_services/web/app_services/analysis_options.yaml deleted file mode 100644 index 122f5f7..0000000 --- a/app_services/web/app_services/analysis_options.yaml +++ /dev/null @@ -1,89 +0,0 @@ -include: package:flutter_lints/flutter.yaml - -# Включает правила из: -# - package:lints/core.yaml: основные правила критических проблем -# - package:lints/recommended.yaml: рекомендуемые правила для чистого кода -# - package:flutter_lints/flutter.yaml: специфичные правила для Flutter - -analyzer: - exclude: - - "android/**" - - "assets/**" - - "build/**" - - "config/**" - - "core/**" - - "res/**" - - "ios/**" - - "**/*.g.dart" - - "**/*.config.dart" - - "**/*.gen.dart" - - "**/*.freezed.dart" - - "**/generated/*" - - "**/*.gr.dart" - - "**/*.yaml" - - "app_services/aurora/**" - - "/app_services/aurora/**" - - "**/app_services/aurora/**" - - "**/*.lock.dart" -errors: - # Переопределения уровней ошибок (error/warning/info) - avoid_dynamic_calls: error # Запрещает использование dynamic для вызовов методов - avoid_returning_null_for_future: error # Запрещает возврат null вместо Future - avoid_slow_async_io: warning # Предупреждает о медленных асинхронных операциях ввода/вывода - avoid_type_to_string: warning # Предупреждает о неправильном использовании toString() для типов - cancel_subscriptions: error # Требует отмены подписок, предотвращает утечки памяти - close_sinks: error # Требует закрытия sink-ов, предотвращает утечки ресурсов - comment_references: warning # Проверяет корректность ссылок в комментариях - always_declare_return_types: error # Требует явного указания возвращаемых типов методов - always_require_non_null_named_parameters: warning # Требует использования @required для ненулевых параметров - avoid_bool_literals_in_conditional_expressions: warning # Запрещает избыточные булевы литералы в условных выражениях - avoid_return_types_on_setters: warning # Запрещает возвращаемые типы для сеттеров - avoid_returning_null: error # Запрещает возврат null - avoid_setters_without_getters: error # Требует создания геттера при наличии сеттера - avoid_void_async: error # Запрещает использование void для асинхронных функций - constant_identifier_names: error # Проверяет правильность именования констант - unnecessary_new: warning # Запрещает избыточное использование ключевого слова new - use_decorated_box: warning # Рекомендует использовать DecoratedBox вместо Container - use_colored_box: warning # Рекомендует использовать ColoredBox вместо Container с цветом - -linter: - rules: - # Нестандартные правила или правила с измененными значениями - always_put_required_named_parameters_first: true # Требовать размещать обязательные именованные параметры первыми - avoid_catches_without_on_clauses: true # Избегать catch без указания типа исключения - avoid_catching_errors: true # Избегать перехвата ошибок типа Error - avoid_equals_and_hash_code_on_mutable_classes: true # Избегать equals и hashCode в изменяемых классах - avoid_escaping_inner_quotes: true # Избегать экранирования внутренних кавычек - avoid_field_initializers_in_const_classes: true # Избегать инициализаторов полей в константных классах - avoid_implementing_value_types: true # Избегать реализации интерфейсов значимых типов - avoid_multiple_declarations_per_line: false # Разрешать несколько объявлений в одной строке - avoid_positional_boolean_parameters: true # Избегать позиционных булевых параметров - avoid_private_typedef_functions: true # Избегать приватных typedef-функций - avoid_redundant_argument_values: true # Избегать избыточных значений аргументов - avoid_returning_this: true # Избегать возврата this - cascade_invocations: true # Использовать каскадные вызовы - deprecated_consistency: true # Поддерживать согласованность устаревших элементов - do_not_use_environment: false # Разрешить использование Environment - leading_newlines_in_multiline_strings: true # Начинать многострочные строки с новой строки - no_runtimeType_toString: true # Не использовать runtimeType.toString() - one_member_abstracts: false # Разрешать абстрактные классы с одним методом - only_throw_errors: true # Выбрасывать только объекты Error - parameter_assignments: true # Запрещать присваивание значений параметрам - prefer_asserts_with_message: true # Использовать сообщения с assert - prefer_constructors_over_static_methods: true # Предпочитать конструкторы статическим методам - prefer_final_in_for_each: true # Использовать final в for-each циклах - prefer_final_locals: true # Использовать final для локальных переменных - public_member_api_docs: false # Не требовать документацию для всех публичных членов - require_trailing_commas: true # Требовать запятые в конце для улучшения форматирования - sort_constructors_first: true # Требовать размещать конструкторы первыми - sort_pub_dependencies: false # Не требовать сортировки зависимостей в pubspec - sort_unnamed_constructors_first: false # Не требовать размещать безымянные конструкторы первыми - use_is_even_rather_than_modulo: true # Использовать isEven вместо % 2 == 0 - use_late_for_private_fields_and_variables: false # Не требовать late для приватных полей - use_setters_to_change_properties: true # Использовать сеттеры для изменения свойств - use_string_buffers: true # Использовать StringBuffer для сложной конкатенации - use_to_and_as_if_applicable: true # Использовать методы to и as при применимости - no_literal_bool_comparisons: true # Запрещать сравнения с литералами true/false - use_key_in_widget_constructors: true # Обязательное указание ключа для stateful/stateless widgets - always_use_package_imports: true # Всегда использовать package: импорты - diff --git a/app_services/web/app_services/lib/app_services.dart b/app_services/web/app_services/lib/app_services.dart deleted file mode 100644 index a2dadb6..0000000 --- a/app_services/web/app_services/lib/app_services.dart +++ /dev/null @@ -1,4 +0,0 @@ -library; - -export 'src/app_path_provider.dart'; -export 'src/app_secure_storage.dart'; diff --git a/app_services/web/app_services/lib/src/app_path_provider.dart b/app_services/web/app_services/lib/src/app_path_provider.dart deleted file mode 100644 index 500f9a5..0000000 --- a/app_services/web/app_services/lib/src/app_path_provider.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:i_app_services/i_app_services.dart'; - -/// {@template app_path_provider} -/// Класс для WEB реализации сервиса работы с путями -/// {@endtemplate} -class AppPathProvider implements IPathProvider { - /// {@macro app_path_provider} - const AppPathProvider(); - - /// Наименование сервиса - static const name = 'WebAppPathProvider'; - - @override - Future getAppDocumentsDirectoryPath() async { - // В веб у нас нет доступа к файловой системе. - // Возвращаем null, так как не можем предоставить путь к директории. - return null; - } -} diff --git a/app_services/web/app_services/lib/src/app_secure_storage.dart b/app_services/web/app_services/lib/src/app_secure_storage.dart deleted file mode 100644 index 3bc0b2f..0000000 --- a/app_services/web/app_services/lib/src/app_secure_storage.dart +++ /dev/null @@ -1,47 +0,0 @@ -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:i_app_services/i_app_services.dart'; - -/// {@template app_secure_storage} -/// Класс для Aurora реализации сервис по работе с защищенным хранилищем -/// [secretKey] - ключ для шифрования данных, если нужен -/// {@endtemplate} -final class AppSecureStorage implements ISecureStorage { - /// @macro app_secure_storage - AppSecureStorage({this.secretKey}); - - @override - final String? secretKey; - - static const name = 'WebAppSecureStorage'; - - /// Экземпляр хранилища данных - final _box = const FlutterSecureStorage(); - - @override - Future deleteAll() async { - await _box.deleteAll(); - } - - @override - Future delete(String key) async { - await _box.delete(key: key); - } - - @override - Future containsKey(String key) { - return _box.containsKey(key: key); - } - - @override - Future read(String key) async { - return _box.read(key: key); - } - - @override - Future write(String key, String value) async { - await _box.write(key: key, value: value); - } - - @override - String get nameImpl => AppSecureStorage.name; -} diff --git a/app_services/web/app_services/pubspec.yaml b/app_services/web/app_services/pubspec.yaml deleted file mode 100644 index 53c5e3a..0000000 --- a/app_services/web/app_services/pubspec.yaml +++ /dev/null @@ -1,24 +0,0 @@ -name: app_services -description: "Базовые сервисы для приложения" -version: 0.0.1 -publish_to: none - -environment: - sdk: ^3.8.0 - -dependencies: - flutter: - sdk: flutter - - # Зависимости для сервиса защищенного хранилища - flutter_secure_storage: 9.2.4 - - # Зависимости для сервиса незащищенного хранилища - shared_preferences: 2.3.5 - - # Обязательные интерфейсы - i_app_services: - path: ../../i_app_services - -dev_dependencies: - flutter_lints: 6.0.0 diff --git a/pubspec.lock b/pubspec.lock index 0b112ef..a66e299 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -33,7 +33,7 @@ packages: app_services: dependency: "direct main" description: - path: "app_services/web/app_services" + path: "app_services/base/app_services" relative: true source: path version: "0.0.1" diff --git a/pubspec.yaml b/pubspec.yaml index c17ae56..d84bcf7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -39,9 +39,8 @@ dependencies: ### реализация сервисов ### ### В зависимости от платформы ### app_services: - #path: app_services/base/app_services ### Базовая реализация ### + path: app_services/base/app_services ### Базовая реализация ### #path: app_services/aurora/app_services ### Аврора реализация ### - path: app_services/web/app_services ### Web реализация ### dev_dependencies: flutter_test: