mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2025-12-22 09:30:45 +00:00
chore(pubspec,app_services): обновить зависимости и настройки линтинга (#39)
Co-authored-by: petrovyuri <petrovyuri@example.com>
This commit is contained in:
@@ -1,89 +1,135 @@
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
# Включает правила из:
|
||||
# - package:lints/core.yaml: основные правила критических проблем
|
||||
# - package:lints/recommended.yaml: рекомендуемые правила для чистого кода
|
||||
# - package:flutter_lints/flutter.yaml: специфичные правила для Flutter
|
||||
# Персонализированные настройки анализатора и линтера.
|
||||
# Базовый набор flutter_lints + дополнительные ужесточения.
|
||||
|
||||
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"
|
||||
- "build/**" # Исключаем артефакты сборки (генерируемый код, кэш, ресурсы)
|
||||
- "android/**" # Платформенный код Android (Java/Kotlin, Gradle) не анализируем Dart линтером
|
||||
- "ios/**" # Платформенный код iOS (Swift/ObjC) вне области Dart анализа
|
||||
- "assets/**" # Статические ассеты (шрифты, изображения, json и др.)
|
||||
- "**/*.g.dart" # Сгенерированные файлы build_runner / json_serializable
|
||||
- "**/*.freezed.dart" # Сгенерированные модели пакетом freezed
|
||||
- "**/*.gen.dart" # Общий паттерн для доп. генераторов
|
||||
- "**/*.gr.dart" # Генерируемые маршруты (auto_route / другие)
|
||||
- "**/*.config.dart" # Сгенерированные конфигурационные файлы
|
||||
- "**/generated/**" # Папки с автогенерируемыми исходниками
|
||||
- "**/*.lock" # Временные/lock файлы генераторов (если создаются)
|
||||
- "**/app_services/aurora/**" # Внутренний сервисный код (предположительно внешняя интеграция) исключён
|
||||
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 с цветом
|
||||
avoid_dynamic_calls: error # Запрет неявных dynamic вызовов (типобезопасность)
|
||||
avoid_returning_null_for_future: error # Future не должен завершаться null без явной модели
|
||||
avoid_slow_async_io: warning # Подсказка о потенциально медленных IO операциях
|
||||
avoid_type_to_string: warning # Предупреждение против использования Type.toString для логики
|
||||
cancel_subscriptions: error # Требование отменять StreamSubscription для предотвращения утечек
|
||||
close_sinks: error # Обязательное закрытие Sink (ресурсное управление)
|
||||
comment_references: warning # Проверка корректности ссылок в документационных комментариях
|
||||
always_declare_return_types: error # Явный тип возвращаемого значения повышает читаемость
|
||||
avoid_bool_literals_in_conditional_expressions: warning # Избегать выражений вида condition ? true : false
|
||||
avoid_return_types_on_setters: warning # Сеттеры не должны объявлять тип возврата
|
||||
avoid_returning_null: warning # Предпочтительнее nullable типы / Option объекты вместо raw null
|
||||
avoid_setters_without_getters: error # Сеттер без геттера может скрывать состояние
|
||||
avoid_void_async: error # async void нежелателен (трудно ловить ошибки)
|
||||
constant_identifier_names: error # Единый стиль именования констант (UPPER_CASE)
|
||||
unnecessary_new: warning # Снижение шума: new не нужен в современном Dart
|
||||
use_decorated_box: warning # Оптимизация: DecoratedBox вместо контейнера без лишних виджетов
|
||||
use_colored_box: warning # Оптимизация: ColoredBox для простого цвета фона
|
||||
|
||||
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: импорты
|
||||
# === Именование и стиль ===
|
||||
- always_put_required_named_parameters_first # Обязательные именованные параметры первыми повышают читаемость
|
||||
- always_use_package_imports # Единый стиль импортов через package: упрощает refactoring
|
||||
- curly_braces_in_flow_control_structures # Обязательные фигурные скобки в if/for/while для безопасности
|
||||
- directives_ordering # Упорядочивание импортов (dart → package → relative)
|
||||
- eol_at_end_of_file # Пустая строка в конце файла (POSIX standard)
|
||||
- prefer_single_quotes # Единый стиль кавычек (одинарные быстрее печатать)
|
||||
- slash_for_doc_comments # Использовать /// вместо /** */ для документации
|
||||
- sort_constructors_first # Конструкторы в начале класса — быстрый обзор API
|
||||
|
||||
# === Обработка ошибок и типобезопасность ===
|
||||
- avoid_catching_errors # Не перехватывать Error (только Exception) — ошибки системные
|
||||
- await_only_futures # await только для Future (ловит ошибки типизации)
|
||||
- control_flow_in_finally # Запрет return/break/continue в finally блоках
|
||||
- empty_catches # Предупреждение о пустых catch (скрытые баги)
|
||||
- hash_and_equals # Требует переопределять hashCode и == вместе
|
||||
- only_throw_errors # Бросать Error/Exception типы, а не произвольные объекты
|
||||
- test_types_in_equals # Проверка типа в equals для безопасности
|
||||
- unrelated_type_equality_checks # Запрет сравнения несовместимых типов
|
||||
- use_build_context_synchronously # КРИТИЧНО: запрет BuildContext после async gap
|
||||
- use_rethrow_when_possible # Использовать rethrow вместо throw e (сохраняет stacktrace)
|
||||
- discarded_futures # Выявляет неожиданные Future без await
|
||||
- unawaited_futures # Явно помечать намеренно не ожидаемые Future
|
||||
|
||||
# === Иммутабельность и const ===
|
||||
- avoid_equals_and_hash_code_on_mutable_classes # hashCode/== на изменяемых классах приводит к багам в коллекциях
|
||||
- prefer_const_constructors # Константные конструкторы для производительности
|
||||
- prefer_const_constructors_in_immutables # Обязательные const в неизменяемых классах
|
||||
- prefer_const_literals_to_create_immutables # Константные литералы коллекций
|
||||
- prefer_final_fields # final для полей где возможно
|
||||
- prefer_final_in_for_each # final в forEach предотвращает случайные изменения
|
||||
- prefer_final_locals # final локальные переменные — стремимся к иммутабельности
|
||||
- parameter_assignments # Не переназначать параметры — вводит путаницу
|
||||
|
||||
# === Flutter оптимизации ===
|
||||
- avoid_unnecessary_containers # Убирает лишние Container виджеты
|
||||
- sized_box_for_whitespace # SizedBox вместо Container для отступов
|
||||
- sized_box_shrink_expand # Специализированные конструкторы SizedBox.shrink/expand
|
||||
- sort_child_properties_last # child/children последними в виджетах
|
||||
- use_colored_box # ColoredBox для простого цвета фона
|
||||
- use_decorated_box # DecoratedBox вместо контейнера без лишних виджетов
|
||||
- use_key_in_widget_constructors # Ключ позволяет корректно применить дифф к дереву виджетов
|
||||
|
||||
# === Современный Dart (2.17+, 3.x) ===
|
||||
- use_super_parameters # super параметры для краткости
|
||||
- combinators_ordering # Сортировка show/hide в импортах
|
||||
- implicit_call_tearoffs # Разрешить неявные tearoffs
|
||||
- matching_super_parameters # Автоматическое соответствие параметрам супер-конструктора
|
||||
- use_enums # Предпочитать enums вместо статических констант
|
||||
|
||||
# === Читаемость кода ===
|
||||
- avoid_escaping_inner_quotes # Предпочтительно менять тип кавычек вместо экранирования
|
||||
- avoid_field_initializers_in_const_classes # Инициализация в константных классах тяжеловесна/избыточна
|
||||
- avoid_implementing_value_types # Не реализовывать value-type интерфейсы вручную (риск несовпадений)
|
||||
- avoid_positional_boolean_parameters # Булевые позиционные параметры плохо читаются (использовать именованные)
|
||||
- avoid_private_typedef_functions # Приватные typedef затрудняют повторное использование / читаемость
|
||||
- avoid_redundant_argument_values # Удалять аргументы совпадающие с значениями по умолчанию
|
||||
- avoid_returning_this # Возврат this усложняет fluent API и может скрывать ошибки
|
||||
- cascade_invocations # Использовать каскады для последовательности операций над объектом
|
||||
- deprecated_consistency # Единый стиль пометок @deprecated
|
||||
- leading_newlines_in_multiline_strings # Многострочные строки начинают с новой строки — чище diff
|
||||
- no_literal_bool_comparisons # Исключить сравнения вида flag == true
|
||||
- no_runtimeType_toString # runtimeType.toString нестабилен для логики (только отладка)
|
||||
- prefer_asserts_with_message # Сообщение в assert облегчает диагностику
|
||||
- prefer_constructors_over_static_methods # Конструкторы лучше выражают создание экземпляра
|
||||
- comment_references # Корректные ссылки в комментариях (небитые, видимые)
|
||||
|
||||
# === Сахар и идиомы ===
|
||||
- avoid_init_to_null # Не писать = null явно (по умолчанию)
|
||||
- prefer_if_null_operators # ?? оператор вместо тернарника с null
|
||||
- prefer_interpolation_to_compose_strings # Интерполяция вместо конкатенации
|
||||
- prefer_is_empty # .isEmpty вместо .length == 0
|
||||
- prefer_is_not_empty # .isNotEmpty вместо .length > 0
|
||||
- use_is_even_rather_than_modulo # isEven более явно и может быть эффективнее
|
||||
- use_setters_to_change_properties # Изменение полей через сеттеры (инкапсуляция)
|
||||
- use_string_buffers # StringBuffer эффективнее при конкатенации в циклах
|
||||
- use_to_and_as_if_applicable # Использовать to*/as* если семантика преобразования доступна
|
||||
|
||||
# === Удаление избыточности ===
|
||||
- avoid_return_types_on_setters # Сеттеры не должны объявлять тип возврата
|
||||
- unnecessary_const # Убирает лишние const
|
||||
- unnecessary_new # Убирает лишние new
|
||||
- unnecessary_this # Убирает лишние this
|
||||
- unnecessary_parenthesis # Лишние скобки
|
||||
|
||||
# === Продакшн / отладка ===
|
||||
- avoid_print # Запрет print в продакшене (использовать logger)
|
||||
|
||||
bloc:
|
||||
rules:
|
||||
- avoid_flutter_imports # Логика блока должна быть платформенно независимой
|
||||
- avoid_public_bloc_methods # Публичные методы могут нарушать чистоту паттерна (использовать события)
|
||||
- avoid_public_fields # Публичные поля обходят инкапсуляцию; использовать состояние/события
|
||||
- prefer_file_naming_conventions # Единообразие именования файлов блоков повышает навигацию
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
library;
|
||||
|
||||
export 'src/app_location_service.dart';
|
||||
export 'src/app_path_provider.dart';
|
||||
export 'src/app_secure_storage.dart';
|
||||
export 'src/app_location_service.dart';
|
||||
|
||||
@@ -1,89 +1,135 @@
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
# Включает правила из:
|
||||
# - package:lints/core.yaml: основные правила критических проблем
|
||||
# - package:lints/recommended.yaml: рекомендуемые правила для чистого кода
|
||||
# - package:flutter_lints/flutter.yaml: специфичные правила для Flutter
|
||||
# Персонализированные настройки анализатора и линтера.
|
||||
# Базовый набор flutter_lints + дополнительные ужесточения.
|
||||
|
||||
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"
|
||||
- "build/**" # Исключаем артефакты сборки (генерируемый код, кэш, ресурсы)
|
||||
- "android/**" # Платформенный код Android (Java/Kotlin, Gradle) не анализируем Dart линтером
|
||||
- "ios/**" # Платформенный код iOS (Swift/ObjC) вне области Dart анализа
|
||||
- "assets/**" # Статические ассеты (шрифты, изображения, json и др.)
|
||||
- "**/*.g.dart" # Сгенерированные файлы build_runner / json_serializable
|
||||
- "**/*.freezed.dart" # Сгенерированные модели пакетом freezed
|
||||
- "**/*.gen.dart" # Общий паттерн для доп. генераторов
|
||||
- "**/*.gr.dart" # Генерируемые маршруты (auto_route / другие)
|
||||
- "**/*.config.dart" # Сгенерированные конфигурационные файлы
|
||||
- "**/generated/**" # Папки с автогенерируемыми исходниками
|
||||
- "**/*.lock" # Временные/lock файлы генераторов (если создаются)
|
||||
- "**/app_services/aurora/**" # Внутренний сервисный код (предположительно внешняя интеграция) исключён
|
||||
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 с цветом
|
||||
avoid_dynamic_calls: error # Запрет неявных dynamic вызовов (типобезопасность)
|
||||
avoid_returning_null_for_future: error # Future не должен завершаться null без явной модели
|
||||
avoid_slow_async_io: warning # Подсказка о потенциально медленных IO операциях
|
||||
avoid_type_to_string: warning # Предупреждение против использования Type.toString для логики
|
||||
cancel_subscriptions: error # Требование отменять StreamSubscription для предотвращения утечек
|
||||
close_sinks: error # Обязательное закрытие Sink (ресурсное управление)
|
||||
comment_references: warning # Проверка корректности ссылок в документационных комментариях
|
||||
always_declare_return_types: error # Явный тип возвращаемого значения повышает читаемость
|
||||
avoid_bool_literals_in_conditional_expressions: warning # Избегать выражений вида condition ? true : false
|
||||
avoid_return_types_on_setters: warning # Сеттеры не должны объявлять тип возврата
|
||||
avoid_returning_null: warning # Предпочтительнее nullable типы / Option объекты вместо raw null
|
||||
avoid_setters_without_getters: error # Сеттер без геттера может скрывать состояние
|
||||
avoid_void_async: error # async void нежелателен (трудно ловить ошибки)
|
||||
constant_identifier_names: error # Единый стиль именования констант (UPPER_CASE)
|
||||
unnecessary_new: warning # Снижение шума: new не нужен в современном Dart
|
||||
use_decorated_box: warning # Оптимизация: DecoratedBox вместо контейнера без лишних виджетов
|
||||
use_colored_box: warning # Оптимизация: ColoredBox для простого цвета фона
|
||||
|
||||
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: импорты
|
||||
# === Именование и стиль ===
|
||||
- always_put_required_named_parameters_first # Обязательные именованные параметры первыми повышают читаемость
|
||||
- always_use_package_imports # Единый стиль импортов через package: упрощает refactoring
|
||||
- curly_braces_in_flow_control_structures # Обязательные фигурные скобки в if/for/while для безопасности
|
||||
- directives_ordering # Упорядочивание импортов (dart → package → relative)
|
||||
- eol_at_end_of_file # Пустая строка в конце файла (POSIX standard)
|
||||
- prefer_single_quotes # Единый стиль кавычек (одинарные быстрее печатать)
|
||||
- slash_for_doc_comments # Использовать /// вместо /** */ для документации
|
||||
- sort_constructors_first # Конструкторы в начале класса — быстрый обзор API
|
||||
|
||||
# === Обработка ошибок и типобезопасность ===
|
||||
- avoid_catching_errors # Не перехватывать Error (только Exception) — ошибки системные
|
||||
- await_only_futures # await только для Future (ловит ошибки типизации)
|
||||
- control_flow_in_finally # Запрет return/break/continue в finally блоках
|
||||
- empty_catches # Предупреждение о пустых catch (скрытые баги)
|
||||
- hash_and_equals # Требует переопределять hashCode и == вместе
|
||||
- only_throw_errors # Бросать Error/Exception типы, а не произвольные объекты
|
||||
- test_types_in_equals # Проверка типа в equals для безопасности
|
||||
- unrelated_type_equality_checks # Запрет сравнения несовместимых типов
|
||||
- use_build_context_synchronously # КРИТИЧНО: запрет BuildContext после async gap
|
||||
- use_rethrow_when_possible # Использовать rethrow вместо throw e (сохраняет stacktrace)
|
||||
- discarded_futures # Выявляет неожиданные Future без await
|
||||
- unawaited_futures # Явно помечать намеренно не ожидаемые Future
|
||||
|
||||
# === Иммутабельность и const ===
|
||||
- avoid_equals_and_hash_code_on_mutable_classes # hashCode/== на изменяемых классах приводит к багам в коллекциях
|
||||
- prefer_const_constructors # Константные конструкторы для производительности
|
||||
- prefer_const_constructors_in_immutables # Обязательные const в неизменяемых классах
|
||||
- prefer_const_literals_to_create_immutables # Константные литералы коллекций
|
||||
- prefer_final_fields # final для полей где возможно
|
||||
- prefer_final_in_for_each # final в forEach предотвращает случайные изменения
|
||||
- prefer_final_locals # final локальные переменные — стремимся к иммутабельности
|
||||
- parameter_assignments # Не переназначать параметры — вводит путаницу
|
||||
|
||||
# === Flutter оптимизации ===
|
||||
- avoid_unnecessary_containers # Убирает лишние Container виджеты
|
||||
- sized_box_for_whitespace # SizedBox вместо Container для отступов
|
||||
- sized_box_shrink_expand # Специализированные конструкторы SizedBox.shrink/expand
|
||||
- sort_child_properties_last # child/children последними в виджетах
|
||||
- use_colored_box # ColoredBox для простого цвета фона
|
||||
- use_decorated_box # DecoratedBox вместо контейнера без лишних виджетов
|
||||
- use_key_in_widget_constructors # Ключ позволяет корректно применить дифф к дереву виджетов
|
||||
|
||||
# === Современный Dart (2.17+, 3.x) ===
|
||||
- use_super_parameters # super параметры для краткости
|
||||
- combinators_ordering # Сортировка show/hide в импортах
|
||||
- implicit_call_tearoffs # Разрешить неявные tearoffs
|
||||
- matching_super_parameters # Автоматическое соответствие параметрам супер-конструктора
|
||||
- use_enums # Предпочитать enums вместо статических констант
|
||||
|
||||
# === Читаемость кода ===
|
||||
- avoid_escaping_inner_quotes # Предпочтительно менять тип кавычек вместо экранирования
|
||||
- avoid_field_initializers_in_const_classes # Инициализация в константных классах тяжеловесна/избыточна
|
||||
- avoid_implementing_value_types # Не реализовывать value-type интерфейсы вручную (риск несовпадений)
|
||||
- avoid_positional_boolean_parameters # Булевые позиционные параметры плохо читаются (использовать именованные)
|
||||
- avoid_private_typedef_functions # Приватные typedef затрудняют повторное использование / читаемость
|
||||
- avoid_redundant_argument_values # Удалять аргументы совпадающие с значениями по умолчанию
|
||||
- avoid_returning_this # Возврат this усложняет fluent API и может скрывать ошибки
|
||||
- cascade_invocations # Использовать каскады для последовательности операций над объектом
|
||||
- deprecated_consistency # Единый стиль пометок @deprecated
|
||||
- leading_newlines_in_multiline_strings # Многострочные строки начинают с новой строки — чище diff
|
||||
- no_literal_bool_comparisons # Исключить сравнения вида flag == true
|
||||
- no_runtimeType_toString # runtimeType.toString нестабилен для логики (только отладка)
|
||||
- prefer_asserts_with_message # Сообщение в assert облегчает диагностику
|
||||
- prefer_constructors_over_static_methods # Конструкторы лучше выражают создание экземпляра
|
||||
- comment_references # Корректные ссылки в комментариях (небитые, видимые)
|
||||
|
||||
# === Сахар и идиомы ===
|
||||
- avoid_init_to_null # Не писать = null явно (по умолчанию)
|
||||
- prefer_if_null_operators # ?? оператор вместо тернарника с null
|
||||
- prefer_interpolation_to_compose_strings # Интерполяция вместо конкатенации
|
||||
- prefer_is_empty # .isEmpty вместо .length == 0
|
||||
- prefer_is_not_empty # .isNotEmpty вместо .length > 0
|
||||
- use_is_even_rather_than_modulo # isEven более явно и может быть эффективнее
|
||||
- use_setters_to_change_properties # Изменение полей через сеттеры (инкапсуляция)
|
||||
- use_string_buffers # StringBuffer эффективнее при конкатенации в циклах
|
||||
- use_to_and_as_if_applicable # Использовать to*/as* если семантика преобразования доступна
|
||||
|
||||
# === Удаление избыточности ===
|
||||
- avoid_return_types_on_setters # Сеттеры не должны объявлять тип возврата
|
||||
- unnecessary_const # Убирает лишние const
|
||||
- unnecessary_new # Убирает лишние new
|
||||
- unnecessary_this # Убирает лишние this
|
||||
- unnecessary_parenthesis # Лишние скобки
|
||||
|
||||
# === Продакшн / отладка ===
|
||||
- avoid_print # Запрет print в продакшене (использовать logger)
|
||||
|
||||
bloc:
|
||||
rules:
|
||||
- avoid_flutter_imports # Логика блока должна быть платформенно независимой
|
||||
- avoid_public_bloc_methods # Публичные методы могут нарушать чистоту паттерна (использовать события)
|
||||
- avoid_public_fields # Публичные поля обходят инкапсуляцию; использовать состояние/события
|
||||
- prefer_file_naming_conventions # Единообразие именования файлов блоков повышает навигацию
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
library;
|
||||
|
||||
export 'src/app_location_service.dart';
|
||||
export 'src/app_path_provider.dart';
|
||||
export 'src/app_secure_storage.dart';
|
||||
export 'src/app_location_service.dart';
|
||||
|
||||
@@ -1,89 +1,135 @@
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
# Включает правила из:
|
||||
# - package:lints/core.yaml: основные правила критических проблем
|
||||
# - package:lints/recommended.yaml: рекомендуемые правила для чистого кода
|
||||
# - package:flutter_lints/flutter.yaml: специфичные правила для Flutter
|
||||
# Персонализированные настройки анализатора и линтера.
|
||||
# Базовый набор flutter_lints + дополнительные ужесточения.
|
||||
|
||||
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"
|
||||
- "build/**" # Исключаем артефакты сборки (генерируемый код, кэш, ресурсы)
|
||||
- "android/**" # Платформенный код Android (Java/Kotlin, Gradle) не анализируем Dart линтером
|
||||
- "ios/**" # Платформенный код iOS (Swift/ObjC) вне области Dart анализа
|
||||
- "assets/**" # Статические ассеты (шрифты, изображения, json и др.)
|
||||
- "**/*.g.dart" # Сгенерированные файлы build_runner / json_serializable
|
||||
- "**/*.freezed.dart" # Сгенерированные модели пакетом freezed
|
||||
- "**/*.gen.dart" # Общий паттерн для доп. генераторов
|
||||
- "**/*.gr.dart" # Генерируемые маршруты (auto_route / другие)
|
||||
- "**/*.config.dart" # Сгенерированные конфигурационные файлы
|
||||
- "**/generated/**" # Папки с автогенерируемыми исходниками
|
||||
- "**/*.lock" # Временные/lock файлы генераторов (если создаются)
|
||||
- "**/app_services/aurora/**" # Внутренний сервисный код (предположительно внешняя интеграция) исключён
|
||||
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 с цветом
|
||||
avoid_dynamic_calls: error # Запрет неявных dynamic вызовов (типобезопасность)
|
||||
avoid_returning_null_for_future: error # Future не должен завершаться null без явной модели
|
||||
avoid_slow_async_io: warning # Подсказка о потенциально медленных IO операциях
|
||||
avoid_type_to_string: warning # Предупреждение против использования Type.toString для логики
|
||||
cancel_subscriptions: error # Требование отменять StreamSubscription для предотвращения утечек
|
||||
close_sinks: error # Обязательное закрытие Sink (ресурсное управление)
|
||||
comment_references: warning # Проверка корректности ссылок в документационных комментариях
|
||||
always_declare_return_types: error # Явный тип возвращаемого значения повышает читаемость
|
||||
avoid_bool_literals_in_conditional_expressions: warning # Избегать выражений вида condition ? true : false
|
||||
avoid_return_types_on_setters: warning # Сеттеры не должны объявлять тип возврата
|
||||
avoid_returning_null: warning # Предпочтительнее nullable типы / Option объекты вместо raw null
|
||||
avoid_setters_without_getters: error # Сеттер без геттера может скрывать состояние
|
||||
avoid_void_async: error # async void нежелателен (трудно ловить ошибки)
|
||||
constant_identifier_names: error # Единый стиль именования констант (UPPER_CASE)
|
||||
unnecessary_new: warning # Снижение шума: new не нужен в современном Dart
|
||||
use_decorated_box: warning # Оптимизация: DecoratedBox вместо контейнера без лишних виджетов
|
||||
use_colored_box: warning # Оптимизация: ColoredBox для простого цвета фона
|
||||
|
||||
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: импорты
|
||||
# === Именование и стиль ===
|
||||
- always_put_required_named_parameters_first # Обязательные именованные параметры первыми повышают читаемость
|
||||
- always_use_package_imports # Единый стиль импортов через package: упрощает refactoring
|
||||
- curly_braces_in_flow_control_structures # Обязательные фигурные скобки в if/for/while для безопасности
|
||||
- directives_ordering # Упорядочивание импортов (dart → package → relative)
|
||||
- eol_at_end_of_file # Пустая строка в конце файла (POSIX standard)
|
||||
- prefer_single_quotes # Единый стиль кавычек (одинарные быстрее печатать)
|
||||
- slash_for_doc_comments # Использовать /// вместо /** */ для документации
|
||||
- sort_constructors_first # Конструкторы в начале класса — быстрый обзор API
|
||||
|
||||
# === Обработка ошибок и типобезопасность ===
|
||||
- avoid_catching_errors # Не перехватывать Error (только Exception) — ошибки системные
|
||||
- await_only_futures # await только для Future (ловит ошибки типизации)
|
||||
- control_flow_in_finally # Запрет return/break/continue в finally блоках
|
||||
- empty_catches # Предупреждение о пустых catch (скрытые баги)
|
||||
- hash_and_equals # Требует переопределять hashCode и == вместе
|
||||
- only_throw_errors # Бросать Error/Exception типы, а не произвольные объекты
|
||||
- test_types_in_equals # Проверка типа в equals для безопасности
|
||||
- unrelated_type_equality_checks # Запрет сравнения несовместимых типов
|
||||
- use_build_context_synchronously # КРИТИЧНО: запрет BuildContext после async gap
|
||||
- use_rethrow_when_possible # Использовать rethrow вместо throw e (сохраняет stacktrace)
|
||||
- discarded_futures # Выявляет неожиданные Future без await
|
||||
- unawaited_futures # Явно помечать намеренно не ожидаемые Future
|
||||
|
||||
# === Иммутабельность и const ===
|
||||
- avoid_equals_and_hash_code_on_mutable_classes # hashCode/== на изменяемых классах приводит к багам в коллекциях
|
||||
- prefer_const_constructors # Константные конструкторы для производительности
|
||||
- prefer_const_constructors_in_immutables # Обязательные const в неизменяемых классах
|
||||
- prefer_const_literals_to_create_immutables # Константные литералы коллекций
|
||||
- prefer_final_fields # final для полей где возможно
|
||||
- prefer_final_in_for_each # final в forEach предотвращает случайные изменения
|
||||
- prefer_final_locals # final локальные переменные — стремимся к иммутабельности
|
||||
- parameter_assignments # Не переназначать параметры — вводит путаницу
|
||||
|
||||
# === Flutter оптимизации ===
|
||||
- avoid_unnecessary_containers # Убирает лишние Container виджеты
|
||||
- sized_box_for_whitespace # SizedBox вместо Container для отступов
|
||||
- sized_box_shrink_expand # Специализированные конструкторы SizedBox.shrink/expand
|
||||
- sort_child_properties_last # child/children последними в виджетах
|
||||
- use_colored_box # ColoredBox для простого цвета фона
|
||||
- use_decorated_box # DecoratedBox вместо контейнера без лишних виджетов
|
||||
- use_key_in_widget_constructors # Ключ позволяет корректно применить дифф к дереву виджетов
|
||||
|
||||
# === Современный Dart (2.17+, 3.x) ===
|
||||
- use_super_parameters # super параметры для краткости
|
||||
- combinators_ordering # Сортировка show/hide в импортах
|
||||
- implicit_call_tearoffs # Разрешить неявные tearoffs
|
||||
- matching_super_parameters # Автоматическое соответствие параметрам супер-конструктора
|
||||
- use_enums # Предпочитать enums вместо статических констант
|
||||
|
||||
# === Читаемость кода ===
|
||||
- avoid_escaping_inner_quotes # Предпочтительно менять тип кавычек вместо экранирования
|
||||
- avoid_field_initializers_in_const_classes # Инициализация в константных классах тяжеловесна/избыточна
|
||||
- avoid_implementing_value_types # Не реализовывать value-type интерфейсы вручную (риск несовпадений)
|
||||
- avoid_positional_boolean_parameters # Булевые позиционные параметры плохо читаются (использовать именованные)
|
||||
- avoid_private_typedef_functions # Приватные typedef затрудняют повторное использование / читаемость
|
||||
- avoid_redundant_argument_values # Удалять аргументы совпадающие с значениями по умолчанию
|
||||
- avoid_returning_this # Возврат this усложняет fluent API и может скрывать ошибки
|
||||
- cascade_invocations # Использовать каскады для последовательности операций над объектом
|
||||
- deprecated_consistency # Единый стиль пометок @deprecated
|
||||
- leading_newlines_in_multiline_strings # Многострочные строки начинают с новой строки — чище diff
|
||||
- no_literal_bool_comparisons # Исключить сравнения вида flag == true
|
||||
- no_runtimeType_toString # runtimeType.toString нестабилен для логики (только отладка)
|
||||
- prefer_asserts_with_message # Сообщение в assert облегчает диагностику
|
||||
- prefer_constructors_over_static_methods # Конструкторы лучше выражают создание экземпляра
|
||||
- comment_references # Корректные ссылки в комментариях (небитые, видимые)
|
||||
|
||||
# === Сахар и идиомы ===
|
||||
- avoid_init_to_null # Не писать = null явно (по умолчанию)
|
||||
- prefer_if_null_operators # ?? оператор вместо тернарника с null
|
||||
- prefer_interpolation_to_compose_strings # Интерполяция вместо конкатенации
|
||||
- prefer_is_empty # .isEmpty вместо .length == 0
|
||||
- prefer_is_not_empty # .isNotEmpty вместо .length > 0
|
||||
- use_is_even_rather_than_modulo # isEven более явно и может быть эффективнее
|
||||
- use_setters_to_change_properties # Изменение полей через сеттеры (инкапсуляция)
|
||||
- use_string_buffers # StringBuffer эффективнее при конкатенации в циклах
|
||||
- use_to_and_as_if_applicable # Использовать to*/as* если семантика преобразования доступна
|
||||
|
||||
# === Удаление избыточности ===
|
||||
- avoid_return_types_on_setters # Сеттеры не должны объявлять тип возврата
|
||||
- unnecessary_const # Убирает лишние const
|
||||
- unnecessary_new # Убирает лишние new
|
||||
- unnecessary_this # Убирает лишние this
|
||||
- unnecessary_parenthesis # Лишние скобки
|
||||
|
||||
# === Продакшн / отладка ===
|
||||
- avoid_print # Запрет print в продакшене (использовать logger)
|
||||
|
||||
bloc:
|
||||
rules:
|
||||
- avoid_flutter_imports # Логика блока должна быть платформенно независимой
|
||||
- avoid_public_bloc_methods # Публичные методы могут нарушать чистоту паттерна (использовать события)
|
||||
- avoid_public_fields # Публичные поля обходят инкапсуляцию; использовать состояние/события
|
||||
- prefer_file_naming_conventions # Единообразие именования файлов блоков повышает навигацию
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
library;
|
||||
|
||||
export 'src/app_location_service.dart';
|
||||
export 'src/app_path_provider.dart';
|
||||
export 'src/app_secure_storage.dart';
|
||||
export 'src/app_location_service.dart';
|
||||
|
||||
@@ -1,89 +1,135 @@
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
# Включает правила из:
|
||||
# - package:lints/core.yaml: основные правила критических проблем
|
||||
# - package:lints/recommended.yaml: рекомендуемые правила для чистого кода
|
||||
# - package:flutter_lints/flutter.yaml: специфичные правила для Flutter
|
||||
# Персонализированные настройки анализатора и линтера.
|
||||
# Базовый набор flutter_lints + дополнительные ужесточения.
|
||||
|
||||
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"
|
||||
- "build/**" # Исключаем артефакты сборки (генерируемый код, кэш, ресурсы)
|
||||
- "android/**" # Платформенный код Android (Java/Kotlin, Gradle) не анализируем Dart линтером
|
||||
- "ios/**" # Платформенный код iOS (Swift/ObjC) вне области Dart анализа
|
||||
- "assets/**" # Статические ассеты (шрифты, изображения, json и др.)
|
||||
- "**/*.g.dart" # Сгенерированные файлы build_runner / json_serializable
|
||||
- "**/*.freezed.dart" # Сгенерированные модели пакетом freezed
|
||||
- "**/*.gen.dart" # Общий паттерн для доп. генераторов
|
||||
- "**/*.gr.dart" # Генерируемые маршруты (auto_route / другие)
|
||||
- "**/*.config.dart" # Сгенерированные конфигурационные файлы
|
||||
- "**/generated/**" # Папки с автогенерируемыми исходниками
|
||||
- "**/*.lock" # Временные/lock файлы генераторов (если создаются)
|
||||
- "**/app_services/aurora/**" # Внутренний сервисный код (предположительно внешняя интеграция) исключён
|
||||
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 с цветом
|
||||
avoid_dynamic_calls: error # Запрет неявных dynamic вызовов (типобезопасность)
|
||||
avoid_returning_null_for_future: error # Future не должен завершаться null без явной модели
|
||||
avoid_slow_async_io: warning # Подсказка о потенциально медленных IO операциях
|
||||
avoid_type_to_string: warning # Предупреждение против использования Type.toString для логики
|
||||
cancel_subscriptions: error # Требование отменять StreamSubscription для предотвращения утечек
|
||||
close_sinks: error # Обязательное закрытие Sink (ресурсное управление)
|
||||
comment_references: warning # Проверка корректности ссылок в документационных комментариях
|
||||
always_declare_return_types: error # Явный тип возвращаемого значения повышает читаемость
|
||||
avoid_bool_literals_in_conditional_expressions: warning # Избегать выражений вида condition ? true : false
|
||||
avoid_return_types_on_setters: warning # Сеттеры не должны объявлять тип возврата
|
||||
avoid_returning_null: warning # Предпочтительнее nullable типы / Option объекты вместо raw null
|
||||
avoid_setters_without_getters: error # Сеттер без геттера может скрывать состояние
|
||||
avoid_void_async: error # async void нежелателен (трудно ловить ошибки)
|
||||
constant_identifier_names: error # Единый стиль именования констант (UPPER_CASE)
|
||||
unnecessary_new: warning # Снижение шума: new не нужен в современном Dart
|
||||
use_decorated_box: warning # Оптимизация: DecoratedBox вместо контейнера без лишних виджетов
|
||||
use_colored_box: warning # Оптимизация: ColoredBox для простого цвета фона
|
||||
|
||||
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: импорты
|
||||
# === Именование и стиль ===
|
||||
- always_put_required_named_parameters_first # Обязательные именованные параметры первыми повышают читаемость
|
||||
- always_use_package_imports # Единый стиль импортов через package: упрощает refactoring
|
||||
- curly_braces_in_flow_control_structures # Обязательные фигурные скобки в if/for/while для безопасности
|
||||
- directives_ordering # Упорядочивание импортов (dart → package → relative)
|
||||
- eol_at_end_of_file # Пустая строка в конце файла (POSIX standard)
|
||||
- prefer_single_quotes # Единый стиль кавычек (одинарные быстрее печатать)
|
||||
- slash_for_doc_comments # Использовать /// вместо /** */ для документации
|
||||
- sort_constructors_first # Конструкторы в начале класса — быстрый обзор API
|
||||
|
||||
# === Обработка ошибок и типобезопасность ===
|
||||
- avoid_catching_errors # Не перехватывать Error (только Exception) — ошибки системные
|
||||
- await_only_futures # await только для Future (ловит ошибки типизации)
|
||||
- control_flow_in_finally # Запрет return/break/continue в finally блоках
|
||||
- empty_catches # Предупреждение о пустых catch (скрытые баги)
|
||||
- hash_and_equals # Требует переопределять hashCode и == вместе
|
||||
- only_throw_errors # Бросать Error/Exception типы, а не произвольные объекты
|
||||
- test_types_in_equals # Проверка типа в equals для безопасности
|
||||
- unrelated_type_equality_checks # Запрет сравнения несовместимых типов
|
||||
- use_build_context_synchronously # КРИТИЧНО: запрет BuildContext после async gap
|
||||
- use_rethrow_when_possible # Использовать rethrow вместо throw e (сохраняет stacktrace)
|
||||
- discarded_futures # Выявляет неожиданные Future без await
|
||||
- unawaited_futures # Явно помечать намеренно не ожидаемые Future
|
||||
|
||||
# === Иммутабельность и const ===
|
||||
- avoid_equals_and_hash_code_on_mutable_classes # hashCode/== на изменяемых классах приводит к багам в коллекциях
|
||||
- prefer_const_constructors # Константные конструкторы для производительности
|
||||
- prefer_const_constructors_in_immutables # Обязательные const в неизменяемых классах
|
||||
- prefer_const_literals_to_create_immutables # Константные литералы коллекций
|
||||
- prefer_final_fields # final для полей где возможно
|
||||
- prefer_final_in_for_each # final в forEach предотвращает случайные изменения
|
||||
- prefer_final_locals # final локальные переменные — стремимся к иммутабельности
|
||||
- parameter_assignments # Не переназначать параметры — вводит путаницу
|
||||
|
||||
# === Flutter оптимизации ===
|
||||
- avoid_unnecessary_containers # Убирает лишние Container виджеты
|
||||
- sized_box_for_whitespace # SizedBox вместо Container для отступов
|
||||
- sized_box_shrink_expand # Специализированные конструкторы SizedBox.shrink/expand
|
||||
- sort_child_properties_last # child/children последними в виджетах
|
||||
- use_colored_box # ColoredBox для простого цвета фона
|
||||
- use_decorated_box # DecoratedBox вместо контейнера без лишних виджетов
|
||||
- use_key_in_widget_constructors # Ключ позволяет корректно применить дифф к дереву виджетов
|
||||
|
||||
# === Современный Dart (2.17+, 3.x) ===
|
||||
- use_super_parameters # super параметры для краткости
|
||||
- combinators_ordering # Сортировка show/hide в импортах
|
||||
- implicit_call_tearoffs # Разрешить неявные tearoffs
|
||||
- matching_super_parameters # Автоматическое соответствие параметрам супер-конструктора
|
||||
- use_enums # Предпочитать enums вместо статических констант
|
||||
|
||||
# === Читаемость кода ===
|
||||
- avoid_escaping_inner_quotes # Предпочтительно менять тип кавычек вместо экранирования
|
||||
- avoid_field_initializers_in_const_classes # Инициализация в константных классах тяжеловесна/избыточна
|
||||
- avoid_implementing_value_types # Не реализовывать value-type интерфейсы вручную (риск несовпадений)
|
||||
- avoid_positional_boolean_parameters # Булевые позиционные параметры плохо читаются (использовать именованные)
|
||||
- avoid_private_typedef_functions # Приватные typedef затрудняют повторное использование / читаемость
|
||||
- avoid_redundant_argument_values # Удалять аргументы совпадающие с значениями по умолчанию
|
||||
- avoid_returning_this # Возврат this усложняет fluent API и может скрывать ошибки
|
||||
- cascade_invocations # Использовать каскады для последовательности операций над объектом
|
||||
- deprecated_consistency # Единый стиль пометок @deprecated
|
||||
- leading_newlines_in_multiline_strings # Многострочные строки начинают с новой строки — чище diff
|
||||
- no_literal_bool_comparisons # Исключить сравнения вида flag == true
|
||||
- no_runtimeType_toString # runtimeType.toString нестабилен для логики (только отладка)
|
||||
- prefer_asserts_with_message # Сообщение в assert облегчает диагностику
|
||||
- prefer_constructors_over_static_methods # Конструкторы лучше выражают создание экземпляра
|
||||
- comment_references # Корректные ссылки в комментариях (небитые, видимые)
|
||||
|
||||
# === Сахар и идиомы ===
|
||||
- avoid_init_to_null # Не писать = null явно (по умолчанию)
|
||||
- prefer_if_null_operators # ?? оператор вместо тернарника с null
|
||||
- prefer_interpolation_to_compose_strings # Интерполяция вместо конкатенации
|
||||
- prefer_is_empty # .isEmpty вместо .length == 0
|
||||
- prefer_is_not_empty # .isNotEmpty вместо .length > 0
|
||||
- use_is_even_rather_than_modulo # isEven более явно и может быть эффективнее
|
||||
- use_setters_to_change_properties # Изменение полей через сеттеры (инкапсуляция)
|
||||
- use_string_buffers # StringBuffer эффективнее при конкатенации в циклах
|
||||
- use_to_and_as_if_applicable # Использовать to*/as* если семантика преобразования доступна
|
||||
|
||||
# === Удаление избыточности ===
|
||||
- avoid_return_types_on_setters # Сеттеры не должны объявлять тип возврата
|
||||
- unnecessary_const # Убирает лишние const
|
||||
- unnecessary_new # Убирает лишние new
|
||||
- unnecessary_this # Убирает лишние this
|
||||
- unnecessary_parenthesis # Лишние скобки
|
||||
|
||||
# === Продакшн / отладка ===
|
||||
- avoid_print # Запрет print в продакшене (использовать logger)
|
||||
|
||||
bloc:
|
||||
rules:
|
||||
- avoid_flutter_imports # Логика блока должна быть платформенно независимой
|
||||
- avoid_public_bloc_methods # Публичные методы могут нарушать чистоту паттерна (использовать события)
|
||||
- avoid_public_fields # Публичные поля обходят инкапсуляцию; использовать состояние/события
|
||||
- prefer_file_naming_conventions # Единообразие именования файлов блоков повышает навигацию
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
library;
|
||||
|
||||
export 'src/i_path_provider.dart';
|
||||
export 'src/i_location_service.dart';
|
||||
export 'src/i_path_provider.dart';
|
||||
export 'src/i_secure_storage.dart';
|
||||
|
||||
116
pubspec.lock
116
pubspec.lock
@@ -5,18 +5,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: _fe_analyzer_shared
|
||||
sha256: e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f
|
||||
sha256: c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "82.0.0"
|
||||
version: "91.0.0"
|
||||
analyzer:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: analyzer
|
||||
sha256: "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0"
|
||||
sha256: f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.4.5"
|
||||
version: "8.4.1"
|
||||
ansicolor:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -76,18 +76,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build
|
||||
sha256: cef23f1eda9b57566c81e2133d196f8e3df48f244b317368d65c5943d91148f0
|
||||
sha256: dfb67ccc9a78c642193e0c2d94cb9e48c2c818b3178a86097d644acdcde6a8d9
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.2"
|
||||
version: "4.0.2"
|
||||
build_config:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build_config
|
||||
sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33"
|
||||
sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.2"
|
||||
version: "1.2.0"
|
||||
build_daemon:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -96,30 +96,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.4"
|
||||
build_resolvers:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build_resolvers
|
||||
sha256: b9e4fda21d846e192628e7a4f6deda6888c36b5b69ba02ff291a01fd529140f0
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.4"
|
||||
build_runner:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: build_runner
|
||||
sha256: "058fe9dce1de7d69c4b84fada934df3e0153dd000758c4d65964d0166779aa99"
|
||||
sha256: "7b5b569f3df370590a85029148d6fc66c7d0201fc6f1847c07dd85d365ae9fcd"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.15"
|
||||
build_runner_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: build_runner_core
|
||||
sha256: "22e3aa1c80e0ada3722fe5b63fd43d9c8990759d0a2cf489c8c5d7b2bdebc021"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.0.0"
|
||||
version: "2.10.3"
|
||||
built_collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -132,10 +116,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: built_value
|
||||
sha256: "8b158ab94ec6913e480dc3f752418348b5ae099eb75868b5f4775f0572999c61"
|
||||
sha256: a30f0a0e38671e89a492c44d005b5545b830a961575bbd8336d42869ff71066d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.9.4"
|
||||
version: "8.12.0"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -164,10 +148,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: code_builder
|
||||
sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e"
|
||||
sha256: "11654819532ba94c34de52ff5feb52bd81cba1de00ef2ed622fd50295f9d4243"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.10.1"
|
||||
version: "4.11.0"
|
||||
collection:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -220,10 +204,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: dart_style
|
||||
sha256: "5b236382b47ee411741447c1f1e111459c941ea1b3f2b540dde54c210a3662af"
|
||||
sha256: a9c30492da18ff84efe2422ba2d319a89942d93e58eb0b73d32abe822ef54b7b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.0"
|
||||
version: "3.1.3"
|
||||
dartx:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -260,18 +244,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: envied
|
||||
sha256: "3c7fdf77ffd99bb429d8373b5f1eec3153c2871347f140d107895fd52b6e2c66"
|
||||
sha256: cd95ddf0982e53f0b6664e889d4a9ce678b3907a59a5047923404375ef6dcacc
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
version: "1.3.1"
|
||||
envied_generator:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: envied_generator
|
||||
sha256: "894f6c5eb624c60a1ce6f642b6fd7ec68bc3440aa6f1881837aa9acbbeade0c8"
|
||||
sha256: "81ad332912f1b31afbd2b913aff9ec7b032e97f4ba7e419f52d02bb90637e77c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.3.1"
|
||||
equatable:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -414,10 +398,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_svg
|
||||
sha256: b9c2ad5872518a27507ab432d1fb97e8813b05f0fc693f9d40fad06d073e0678
|
||||
sha256: "055de8921be7b8e8b98a233c7a5ef84b3a6fcc32f46f1ebf5b9bb3576d108355"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "2.2.2"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
@@ -428,14 +412,6 @@ packages:
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
frontend_server_client:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: frontend_server_client
|
||||
sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
geoclue:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -512,10 +488,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: go_router
|
||||
sha256: c752e2d08d088bf83742cb05bf83003f3e9d276ff1519b5c92f9d5e60e5ddd23
|
||||
sha256: c92d18e1fe994cb06d48aa786c46b142a5633067e8297cff6b5a3ac742620104
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "16.2.4"
|
||||
version: "17.0.0"
|
||||
graphs:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -972,18 +948,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_gen
|
||||
sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b"
|
||||
sha256: "9098ab86015c4f1d8af6486b547b11100e73b193e1899015033cb3e14ad20243"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
version: "4.0.2"
|
||||
source_helper:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_helper
|
||||
sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c"
|
||||
sha256: "6a3c6cc82073a8797f8c4dc4572146114a39652851c157db37e964d9c7038723"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.5"
|
||||
version: "1.3.8"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1036,42 +1012,42 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: talker
|
||||
sha256: f86b1de9e2442228c9340b418703b4ee10d0f831bf3571696ba1d835293ad22a
|
||||
sha256: "82de443cadfb6c41d457e7774c7890a91c73af3c2f17f3f7c01670bb58d5f5a1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.1"
|
||||
version: "5.0.2"
|
||||
talker_bloc_logger:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: talker_bloc_logger
|
||||
sha256: "8707878d8213f1441ea24ae2d5e4c0673eb4e5b58ac8e61fc24850ca9915c287"
|
||||
sha256: e631fcc9454cd86639888a9bb4654582bbc8c64c7dcc913401bfecb8892ec759
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.1"
|
||||
version: "5.0.2"
|
||||
talker_dio_logger:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: talker_dio_logger
|
||||
sha256: "35699be0353164916db4e6cfdeae390da53b5b1e364ee78fc0ef4c1c46cd3f46"
|
||||
sha256: "5bbecc237f3d2c4af9348da5a0086321ed6dd6bf9857d723b1f54f61c810cff2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.1"
|
||||
version: "5.0.2"
|
||||
talker_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: talker_flutter
|
||||
sha256: "4e5614548cd4f2a979ec6a63d455dc12e254e49989d67e95b89003d1893cc21c"
|
||||
sha256: "4f7a8d739237a3a3c8ba4dddcdbc1f9d9dec143811641dbafebd6b70f947f8ca"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.1"
|
||||
version: "5.0.2"
|
||||
talker_logger:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: talker_logger
|
||||
sha256: "8c63990d33e779a24368e0c191e6c9a54639088b6fe3a5b763a6f37fe00ff20b"
|
||||
sha256: "8218836d871ea5ab1ec616cffe3cdae84e8fb44022d5cc04c95d7b220572b8fb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.1"
|
||||
version: "5.0.2"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1092,18 +1068,18 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: theme_tailor
|
||||
sha256: ba98be1d04856deef932757a3ca8fa7a5e2a6f96c30466a59c48924eeb608b97
|
||||
sha256: "1ed7eeb5362e61aac4719e3ca4cd701fd6a74a507a911424eb6caef9b28a7fef"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.3"
|
||||
version: "3.1.1"
|
||||
theme_tailor_annotation:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: theme_tailor_annotation
|
||||
sha256: "0d5ecd13a6a52add2082aa60497179f6093acf482eb69e7fa3a9f37eb990ac34"
|
||||
sha256: "867848486f33dc4dff7649e3c6525133ecee410b5d97c77e22f1cb146baa1158"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.2"
|
||||
version: "3.1.1"
|
||||
time:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1112,14 +1088,6 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.5"
|
||||
timing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: timing
|
||||
sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
22
pubspec.yaml
22
pubspec.yaml
@@ -13,26 +13,26 @@ dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
cupertino_icons: 1.0.8
|
||||
envied: 1.3.0
|
||||
go_router: 16.2.4
|
||||
envied: 1.3.1
|
||||
go_router: 17.0.0
|
||||
flutter_bloc: 9.1.1
|
||||
provider: 6.1.5
|
||||
dio: 5.9.0
|
||||
intl: 0.20.2
|
||||
flutter_svg: 2.2.1
|
||||
flutter_svg: 2.2.2
|
||||
flutter_localizations:
|
||||
sdk: flutter
|
||||
lottie: 3.3.2
|
||||
|
||||
# Пакеты для отладки
|
||||
talker_flutter: 5.0.1
|
||||
talker_dio_logger: 5.0.1
|
||||
talker_bloc_logger: 5.0.1
|
||||
talker_logger: 5.0.1
|
||||
talker_flutter: 5.0.2
|
||||
talker_dio_logger: 5.0.2
|
||||
talker_bloc_logger: 5.0.2
|
||||
talker_logger: 5.0.2
|
||||
|
||||
equatable: 2.0.7
|
||||
|
||||
theme_tailor_annotation: 3.0.2
|
||||
theme_tailor_annotation: 3.1.1
|
||||
|
||||
### основной сервис с интерфейсами
|
||||
i_app_services:
|
||||
@@ -49,12 +49,12 @@ dependencies:
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
envied_generator: 1.1.1
|
||||
build_runner: 2.4.15
|
||||
envied_generator: 1.3.1
|
||||
build_runner: 2.10.3
|
||||
flutter_gen_runner: 5.12.0
|
||||
flutter_gen: 5.12.0
|
||||
flutter_lints: 6.0.0
|
||||
theme_tailor: 3.0.3
|
||||
theme_tailor: 3.1.1
|
||||
|
||||
flutter:
|
||||
uses-material-design: true
|
||||
|
||||
Reference in New Issue
Block a user