From feb3df6a06c17192e8b38f6cf7828410e5cb41c4 Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Wed, 14 May 2025 09:42:44 +0330 Subject: [PATCH] fix : change app architecture feat : add some method to local storage --- features/auth/lib/data/di/auth_di.dart | 8 - {features => packages}/auth/lib/auth.dart | 0 packages/auth/lib/data/common/constant.dart | 14 + .../auth/lib/data/common/dio_manager.dart | 42 ++ packages/auth/lib/data/di/auth_di.dart | 23 + .../local/user_local/user_local_model.dart | 0 .../local/user_local/user_local_model.g.dart | 0 .../login_request/login_request_model.dart | 0 .../login_request_model.freezed.dart | 0 .../login_request/login_request_model.g.dart | 0 .../response/auth/auth_response_model.dart | 0 .../captcha/captcha_response_model.dart | 0 .../data/repositories/auth_repository.dart | 2 + .../repositories/auth_repository_imp.dart | 19 + .../lib/data/services/auth_middelware.dart | 16 + .../auth/lib/data/services/auth_service.dart | 9 + .../data/services/token_storage_service.dart | 59 ++ .../lib/presentation/pages/auth/logic.dart | 0 .../lib/presentation/pages/auth/view.dart | 0 .../lib/presentation/pages/modules/logic.dart | 0 .../lib/presentation/pages/modules/view.dart | 0 .../auth/lib/presentation/routes/pages.dart | 0 .../auth/lib/presentation/routes/paths.dart | 0 .../local/hive_local_storage.dart | 77 +- .../infrastructure/local/i_local_storage.dart | 49 +- .../lib/data/utils/marker_generator.dart | 0 .../inspection/lib/inspection.dart | 0 .../lib/presentation/action/logic.dart | 2 +- .../lib/presentation/action/view.dart | 0 .../add_mobile_inspector/logic.dart | 0 .../add_mobile_inspector/view.dart | 2 +- .../presentation/add_supervision/logic.dart | 3 +- .../presentation/add_supervision/view.dart | 2 +- .../display_information/logic.dart | 0 .../display_information/view.dart | 0 .../lib/presentation/filter/logic.dart | 5 +- .../lib/presentation/filter/view.dart | 4 +- .../presentation/location_details/logic.dart | 0 .../presentation/location_details/view.dart | 0 .../lib/presentation/profile/logic.dart | 0 .../lib/presentation/profile/view.dart | 0 .../registration_of_violation/logic.dart | 0 .../registration_of_violation/view.dart | 5 +- .../lib/presentation/root/logic.dart | 10 +- .../lib/presentation/root/view.dart | 4 +- .../lib/presentation/routes/app_pages.dart | 36 +- .../lib/presentation/routes/app_routes.dart | 0 .../presentation/widget/cluster_marker.dart | 0 packages/inspection/pubspec.lock | 673 ++++++++++++++++++ packages/inspection/pubspec.yaml | 13 + 50 files changed, 1007 insertions(+), 70 deletions(-) delete mode 100644 features/auth/lib/data/di/auth_di.dart rename {features => packages}/auth/lib/auth.dart (100%) create mode 100644 packages/auth/lib/data/common/constant.dart create mode 100644 packages/auth/lib/data/common/dio_manager.dart create mode 100644 packages/auth/lib/data/di/auth_di.dart rename {features => packages}/auth/lib/data/models/local/user_local/user_local_model.dart (100%) rename {features => packages}/auth/lib/data/models/local/user_local/user_local_model.g.dart (100%) rename {features => packages}/auth/lib/data/models/request/login_request/login_request_model.dart (100%) rename {features => packages}/auth/lib/data/models/request/login_request/login_request_model.freezed.dart (100%) rename {features => packages}/auth/lib/data/models/request/login_request/login_request_model.g.dart (100%) rename {features => packages}/auth/lib/data/models/response/auth/auth_response_model.dart (100%) rename {features => packages}/auth/lib/data/models/response/captcha/captcha_response_model.dart (100%) rename {features => packages}/auth/lib/data/repositories/auth_repository.dart (92%) rename {features => packages}/auth/lib/data/repositories/auth_repository_imp.dart (81%) create mode 100644 packages/auth/lib/data/services/auth_middelware.dart create mode 100644 packages/auth/lib/data/services/auth_service.dart create mode 100644 packages/auth/lib/data/services/token_storage_service.dart rename {features => packages}/auth/lib/presentation/pages/auth/logic.dart (100%) rename {features => packages}/auth/lib/presentation/pages/auth/view.dart (100%) rename {features => packages}/auth/lib/presentation/pages/modules/logic.dart (100%) rename {features => packages}/auth/lib/presentation/pages/modules/view.dart (100%) rename {features => packages}/auth/lib/presentation/routes/pages.dart (100%) rename {features => packages}/auth/lib/presentation/routes/paths.dart (100%) rename {features => packages}/inspection/lib/data/utils/marker_generator.dart (100%) rename {features => packages}/inspection/lib/inspection.dart (100%) rename {features => packages}/inspection/lib/presentation/action/logic.dart (97%) rename {features => packages}/inspection/lib/presentation/action/view.dart (100%) rename {features => packages}/inspection/lib/presentation/add_mobile_inspector/logic.dart (100%) rename {features => packages}/inspection/lib/presentation/add_mobile_inspector/view.dart (98%) rename {features => packages}/inspection/lib/presentation/add_supervision/logic.dart (96%) rename {features => packages}/inspection/lib/presentation/add_supervision/view.dart (99%) rename {features => packages}/inspection/lib/presentation/display_information/logic.dart (100%) rename {features => packages}/inspection/lib/presentation/display_information/view.dart (100%) rename {features => packages}/inspection/lib/presentation/filter/logic.dart (97%) rename {features => packages}/inspection/lib/presentation/filter/view.dart (99%) rename {features => packages}/inspection/lib/presentation/location_details/logic.dart (100%) rename {features => packages}/inspection/lib/presentation/location_details/view.dart (100%) rename {features => packages}/inspection/lib/presentation/profile/logic.dart (100%) rename {features => packages}/inspection/lib/presentation/profile/view.dart (100%) rename {features => packages}/inspection/lib/presentation/registration_of_violation/logic.dart (100%) rename {features => packages}/inspection/lib/presentation/registration_of_violation/view.dart (95%) rename {features => packages}/inspection/lib/presentation/root/logic.dart (90%) rename {features => packages}/inspection/lib/presentation/root/view.dart (98%) rename {features => packages}/inspection/lib/presentation/routes/app_pages.dart (58%) rename {features => packages}/inspection/lib/presentation/routes/app_routes.dart (100%) rename {features => packages}/inspection/lib/presentation/widget/cluster_marker.dart (100%) create mode 100644 packages/inspection/pubspec.lock create mode 100644 packages/inspection/pubspec.yaml diff --git a/features/auth/lib/data/di/auth_di.dart b/features/auth/lib/data/di/auth_di.dart deleted file mode 100644 index 7e9c760..0000000 --- a/features/auth/lib/data/di/auth_di.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:rasadyar_core/core.dart'; - - - -GetIt diAuth = GetIt.instance; - - - diff --git a/features/auth/lib/auth.dart b/packages/auth/lib/auth.dart similarity index 100% rename from features/auth/lib/auth.dart rename to packages/auth/lib/auth.dart diff --git a/packages/auth/lib/data/common/constant.dart b/packages/auth/lib/data/common/constant.dart new file mode 100644 index 0000000..c9a0aba --- /dev/null +++ b/packages/auth/lib/data/common/constant.dart @@ -0,0 +1,14 @@ +enum ApiEnvironment { + dam(url: 'https://api.dam.rasadyar.net'); + + const ApiEnvironment({required this.url}); + + final String url; + + String get baseUrl { + switch (this) { + case ApiEnvironment.dam: + return url; + } + } +} diff --git a/packages/auth/lib/data/common/dio_manager.dart b/packages/auth/lib/data/common/dio_manager.dart new file mode 100644 index 0000000..9be65ca --- /dev/null +++ b/packages/auth/lib/data/common/dio_manager.dart @@ -0,0 +1,42 @@ +import 'package:auths/data/repositories/auth_repository_imp.dart'; +import 'package:rasadyar_core/core.dart'; + +import '../di/auth_di.dart'; +import 'constant.dart'; + +class DioRemoteManager { + DioRemote? _currentClient; + ApiEnvironment? _currentEnv; + + DioRemote setEnvironment(ApiEnvironment env) { + if (_currentEnv != env) { + _currentClient = DioRemote(env.baseUrl); + _currentEnv = env; + } + return _currentClient!; + } + + DioRemote get currentClient { + if (_currentClient == null) { + throw Exception('Call setEnvironment() before accessing DioRemote.'); + } + + return _currentClient!; + } + + ApiEnvironment? get currentEnv => _currentEnv; +} + +Future switchAuthEnvironment(ApiEnvironment env) async { + final manager = diAuth.get(); + + final dioRemote = manager.setEnvironment(env); + + if (diAuth.isRegistered()) { + await diAuth.unregister(); + } + + diAuth.registerLazySingleton( + () => AuthRepositoryImpl(dioRemote), + ); +} diff --git a/packages/auth/lib/data/di/auth_di.dart b/packages/auth/lib/data/di/auth_di.dart new file mode 100644 index 0000000..375d940 --- /dev/null +++ b/packages/auth/lib/data/di/auth_di.dart @@ -0,0 +1,23 @@ +import 'package:auths/data/common/constant.dart'; +import 'package:auths/data/repositories/auth_repository_imp.dart'; +import 'package:auths/data/services/auth_service.dart'; +import 'package:rasadyar_core/core.dart'; + +import '../common/dio_manager.dart'; + +GetIt diAuth = GetIt.instance; + +Future setupAuthDI() async { + diAuth.registerLazySingleton(() => DioRemoteManager()); + + final manager = diAuth.get(); + final dioRemote = manager.setEnvironment(ApiEnvironment.dam); + + diAuth.registerLazySingleton( + () => AuthRepositoryImpl(dioRemote), + ); + diAuth.registerLazySingleton(() => AuthService()); + + //hive + await diAuth.registerCachedFactoryAsync(() async=>await ,) +} diff --git a/features/auth/lib/data/models/local/user_local/user_local_model.dart b/packages/auth/lib/data/models/local/user_local/user_local_model.dart similarity index 100% rename from features/auth/lib/data/models/local/user_local/user_local_model.dart rename to packages/auth/lib/data/models/local/user_local/user_local_model.dart diff --git a/features/auth/lib/data/models/local/user_local/user_local_model.g.dart b/packages/auth/lib/data/models/local/user_local/user_local_model.g.dart similarity index 100% rename from features/auth/lib/data/models/local/user_local/user_local_model.g.dart rename to packages/auth/lib/data/models/local/user_local/user_local_model.g.dart diff --git a/features/auth/lib/data/models/request/login_request/login_request_model.dart b/packages/auth/lib/data/models/request/login_request/login_request_model.dart similarity index 100% rename from features/auth/lib/data/models/request/login_request/login_request_model.dart rename to packages/auth/lib/data/models/request/login_request/login_request_model.dart diff --git a/features/auth/lib/data/models/request/login_request/login_request_model.freezed.dart b/packages/auth/lib/data/models/request/login_request/login_request_model.freezed.dart similarity index 100% rename from features/auth/lib/data/models/request/login_request/login_request_model.freezed.dart rename to packages/auth/lib/data/models/request/login_request/login_request_model.freezed.dart diff --git a/features/auth/lib/data/models/request/login_request/login_request_model.g.dart b/packages/auth/lib/data/models/request/login_request/login_request_model.g.dart similarity index 100% rename from features/auth/lib/data/models/request/login_request/login_request_model.g.dart rename to packages/auth/lib/data/models/request/login_request/login_request_model.g.dart diff --git a/features/auth/lib/data/models/response/auth/auth_response_model.dart b/packages/auth/lib/data/models/response/auth/auth_response_model.dart similarity index 100% rename from features/auth/lib/data/models/response/auth/auth_response_model.dart rename to packages/auth/lib/data/models/response/auth/auth_response_model.dart diff --git a/features/auth/lib/data/models/response/captcha/captcha_response_model.dart b/packages/auth/lib/data/models/response/captcha/captcha_response_model.dart similarity index 100% rename from features/auth/lib/data/models/response/captcha/captcha_response_model.dart rename to packages/auth/lib/data/models/response/captcha/captcha_response_model.dart diff --git a/features/auth/lib/data/repositories/auth_repository.dart b/packages/auth/lib/data/repositories/auth_repository.dart similarity index 92% rename from features/auth/lib/data/repositories/auth_repository.dart rename to packages/auth/lib/data/repositories/auth_repository.dart index 1fecfa5..eb68705 100644 --- a/features/auth/lib/data/repositories/auth_repository.dart +++ b/packages/auth/lib/data/repositories/auth_repository.dart @@ -12,6 +12,8 @@ abstract class AuthRepository { Future logout(); + Future hasAuthenticated(); + Future loginWithRefreshToken({ required Map authRequest, diff --git a/features/auth/lib/data/repositories/auth_repository_imp.dart b/packages/auth/lib/data/repositories/auth_repository_imp.dart similarity index 81% rename from features/auth/lib/data/repositories/auth_repository_imp.dart rename to packages/auth/lib/data/repositories/auth_repository_imp.dart index 6486f4d..a3bc1ee 100644 --- a/features/auth/lib/data/repositories/auth_repository_imp.dart +++ b/packages/auth/lib/data/repositories/auth_repository_imp.dart @@ -78,4 +78,23 @@ class AuthRepositoryImpl implements AuthRepository { // TODO: implement logout throw UnimplementedError(); } + + @override + Future hasAuthenticated() async { + final response = await safeCall>( + call: + () async => await _httpClient.get( + '$_BASE_URL/login/', + headers: {'Content-Type': 'application/json'}, + ), + onSuccess: (response) { + iLog(response); + }, + onError: (error, trace) { + throw Exception('Error during sign in: $error'); + }, + ); + + return response?.data ?? false; + } } diff --git a/packages/auth/lib/data/services/auth_middelware.dart b/packages/auth/lib/data/services/auth_middelware.dart new file mode 100644 index 0000000..bf63f2e --- /dev/null +++ b/packages/auth/lib/data/services/auth_middelware.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:rasadyar_core/core.dart'; + +import '../../presentation/routes/pages.dart'; + +class AuthMiddleware extends GetMiddleware{ + @override + RouteSettings? redirect(String? route) { + if(route == AuthPaths.auth) { + return const RouteSettings(name: AuthPaths.moduleList); + } + return super.redirect(route); + } + + +} diff --git a/packages/auth/lib/data/services/auth_service.dart b/packages/auth/lib/data/services/auth_service.dart new file mode 100644 index 0000000..b1dffa5 --- /dev/null +++ b/packages/auth/lib/data/services/auth_service.dart @@ -0,0 +1,9 @@ +import 'package:rasadyar_core/core.dart'; + +class AuthService extends GetxService{ + + + Future initService() async { + + } +} \ No newline at end of file diff --git a/packages/auth/lib/data/services/token_storage_service.dart b/packages/auth/lib/data/services/token_storage_service.dart new file mode 100644 index 0000000..1b57026 --- /dev/null +++ b/packages/auth/lib/data/services/token_storage_service.dart @@ -0,0 +1,59 @@ +import 'dart:convert'; + +import 'package:rasadyar_core/core.dart'; +import 'package:rasadyar_core/injection/di.dart'; + +class TokenStorageService extends GetxService { + static const String _boxName = 'secureBox'; + static const String _accessTokenKey = 'accessToken'; + static const String _refreshTokenKey = 'refreshToken'; + final FlutterSecureStorage _secureStorage = FlutterSecureStorage(); + final HiveLocalStorage _localStorage = diCore.get(); + + Future init() async { + final String? encryptedKey = await _secureStorage.read(key: 'hive_enc_key'); + final encryptionKey = + encryptedKey != null + ? base64Url.decode(encryptedKey) + : Hive.generateSecureKey(); + + if (encryptedKey == null) { + await _secureStorage.write( + key: 'hive_enc_key', + value: base64UrlEncode(encryptionKey), + ); + } + + await Hive.initFlutter(); + await Hive.openBox( + _boxName, + encryptionCipher: HiveAesCipher(encryptionKey), + ); + } + + Future saveAccessToken(String token) async { + final box = Hive.box(_boxName); + await box.put(_accessTokenKey, token); + } + + Future saveRefreshToken(String token) async { + final box = Hive.box(_boxName); + await box.put(_refreshTokenKey, token); + } + + Future getAccessToken() async { + final box = Hive.box(_boxName); + return box.get(_accessTokenKey); + } + + Future getRefreshToken() async { + final box = Hive.box(_boxName); + return box.get(_refreshTokenKey); + } + + Future deleteTokens() async { + final box = Hive.box(_boxName); + await box.delete(_accessTokenKey); + await box.delete(_refreshTokenKey); + } +} diff --git a/features/auth/lib/presentation/pages/auth/logic.dart b/packages/auth/lib/presentation/pages/auth/logic.dart similarity index 100% rename from features/auth/lib/presentation/pages/auth/logic.dart rename to packages/auth/lib/presentation/pages/auth/logic.dart diff --git a/features/auth/lib/presentation/pages/auth/view.dart b/packages/auth/lib/presentation/pages/auth/view.dart similarity index 100% rename from features/auth/lib/presentation/pages/auth/view.dart rename to packages/auth/lib/presentation/pages/auth/view.dart diff --git a/features/auth/lib/presentation/pages/modules/logic.dart b/packages/auth/lib/presentation/pages/modules/logic.dart similarity index 100% rename from features/auth/lib/presentation/pages/modules/logic.dart rename to packages/auth/lib/presentation/pages/modules/logic.dart diff --git a/features/auth/lib/presentation/pages/modules/view.dart b/packages/auth/lib/presentation/pages/modules/view.dart similarity index 100% rename from features/auth/lib/presentation/pages/modules/view.dart rename to packages/auth/lib/presentation/pages/modules/view.dart diff --git a/features/auth/lib/presentation/routes/pages.dart b/packages/auth/lib/presentation/routes/pages.dart similarity index 100% rename from features/auth/lib/presentation/routes/pages.dart rename to packages/auth/lib/presentation/routes/pages.dart diff --git a/features/auth/lib/presentation/routes/paths.dart b/packages/auth/lib/presentation/routes/paths.dart similarity index 100% rename from features/auth/lib/presentation/routes/paths.dart rename to packages/auth/lib/presentation/routes/paths.dart diff --git a/packages/core/lib/infrastructure/local/hive_local_storage.dart b/packages/core/lib/infrastructure/local/hive_local_storage.dart index c63e7f3..e88baa6 100644 --- a/packages/core/lib/infrastructure/local/hive_local_storage.dart +++ b/packages/core/lib/infrastructure/local/hive_local_storage.dart @@ -1,3 +1,4 @@ +import 'package:flutter/foundation.dart'; import 'package:hive_ce_flutter/hive_flutter.dart'; import 'i_local_storage.dart'; @@ -13,39 +14,40 @@ class HiveLocalStorage implements ILocalStorage { Future init() async => await Hive.initFlutter(); @override - Future openBox(String boxName) async { + Future openBox( + String boxName, { + HiveCipher? encryptionCipher, + bool crashRecovery = true, + String? path, + Uint8List? bytes, + String? collection, + }) async { if (!_boxes.containsKey(boxName)) { - final box = await Hive.openBox(boxName); + final box = await Hive.openBox( + boxName, + encryptionCipher: encryptionCipher, + crashRecovery: crashRecovery, + ); _boxes[boxName] = box; } } @override - Future delete(String boxName, String key) async { - Box? box = await getBox(boxName); - await box.delete(key); - } - - @override - Future read(String boxName, String key) async { + Future read({required String boxName,required String key}) async { Box? box = await getBox(boxName); return box.get(key) as T?; } - @override - Future save(String boxName, String key, value) async { - Box? box = await getBox(boxName); - await box.put(key, value); - } + @override - Future add(String boxName, value) async { + Future add({required String boxName,required dynamic value}) async { Box? box = await getBox(boxName); await box.add(value); } @override - Future addAll(String boxName, Iterable values) async { + Future addAll({required String boxName,required Iterable values}) async { Box? box = await getBox(boxName); await box.addAll(values); } @@ -58,4 +60,47 @@ class HiveLocalStorage implements ILocalStorage { throw Exception('Box $boxName is not of expected type $T'); } } + + @override + Future clear(String boxName) async{ + await _boxes[boxName]?.clear(); + } + + @override + Future close(String boxName) async => await _boxes[boxName]?.close(); + + @override + Future deleteValue({ + required String boxName, + required String key, + }) async { + Box? box = await getBox(boxName); + await box.delete(key); + } + + @override + Future save({ + required String boxName, + required String key, + required value, + }) async{ + Box? box = await getBox(boxName); + await box.put(key, value); + } + + @override + Future saveAll({required String boxName, required Map entries}) async{ + Box? box = await getBox(boxName); + await box.putAll(entries); + } + + @override + Future saveAt({ + required String boxName, + required int index, + required value, + }) async{ + Box? box = await getBox(boxName); + await box.putAt(index, value); + } } diff --git a/packages/core/lib/infrastructure/local/i_local_storage.dart b/packages/core/lib/infrastructure/local/i_local_storage.dart index 2b0a7f4..ae011ea 100644 --- a/packages/core/lib/infrastructure/local/i_local_storage.dart +++ b/packages/core/lib/infrastructure/local/i_local_storage.dart @@ -1,11 +1,44 @@ -abstract class ILocalStorage{ +import 'package:flutter/foundation.dart'; +import 'package:hive_ce/hive.dart'; + +abstract class ILocalStorage { Future init(); - Future openBox(String boxName); - Future save(String boxName, String key, dynamic value); - Future read(String boxName, String key); - Future delete(String boxName, String key); - Future add(String boxName, E value); - Future addAll(String boxName, Iterable values); + Future openBox( + String boxName, { + HiveCipher? encryptionCipher, + bool crashRecovery = true, + String? path, + Uint8List? bytes, + String? collection, + }); -} \ No newline at end of file + Future read({required String boxName, required String key}); + + Future deleteValue({required String boxName, required String key}); + + Future add({required String boxName, required E value}); + + Future addAll({required String boxName, required Iterable values}); + + Future clear(String boxName); + + Future close(String boxName); + + Future save({ + required String boxName, + required String key, + required dynamic value, + }); + + Future saveAt({ + required String boxName, + required int index, + required dynamic value, + }); + + Future saveAll({ + required String boxName, + required Map entries, + }); +} diff --git a/features/inspection/lib/data/utils/marker_generator.dart b/packages/inspection/lib/data/utils/marker_generator.dart similarity index 100% rename from features/inspection/lib/data/utils/marker_generator.dart rename to packages/inspection/lib/data/utils/marker_generator.dart diff --git a/features/inspection/lib/inspection.dart b/packages/inspection/lib/inspection.dart similarity index 100% rename from features/inspection/lib/inspection.dart rename to packages/inspection/lib/inspection.dart diff --git a/features/inspection/lib/presentation/action/logic.dart b/packages/inspection/lib/presentation/action/logic.dart similarity index 97% rename from features/inspection/lib/presentation/action/logic.dart rename to packages/inspection/lib/presentation/action/logic.dart index 14cf098..34a4ec6 100644 --- a/features/inspection/lib/presentation/action/logic.dart +++ b/packages/inspection/lib/presentation/action/logic.dart @@ -1,5 +1,5 @@ import 'package:rasadyar_core/core.dart'; - +import 'package:rasadyar_core/data/utils.dart'; class ActionLogic extends GetxController with GetTickerProviderStateMixin { late Rx slidController; diff --git a/features/inspection/lib/presentation/action/view.dart b/packages/inspection/lib/presentation/action/view.dart similarity index 100% rename from features/inspection/lib/presentation/action/view.dart rename to packages/inspection/lib/presentation/action/view.dart diff --git a/features/inspection/lib/presentation/add_mobile_inspector/logic.dart b/packages/inspection/lib/presentation/add_mobile_inspector/logic.dart similarity index 100% rename from features/inspection/lib/presentation/add_mobile_inspector/logic.dart rename to packages/inspection/lib/presentation/add_mobile_inspector/logic.dart diff --git a/features/inspection/lib/presentation/add_mobile_inspector/view.dart b/packages/inspection/lib/presentation/add_mobile_inspector/view.dart similarity index 98% rename from features/inspection/lib/presentation/add_mobile_inspector/view.dart rename to packages/inspection/lib/presentation/add_mobile_inspector/view.dart index 47ebdf8..d6b1a0d 100644 --- a/features/inspection/lib/presentation/add_mobile_inspector/view.dart +++ b/packages/inspection/lib/presentation/add_mobile_inspector/view.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; +import 'package:inspection/presentation/routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/presentation/widget/buttons/fab.dart'; -import '../routes/app_routes.dart'; import 'logic.dart'; class AddMobileInspectorPage extends GetView { diff --git a/features/inspection/lib/presentation/add_supervision/logic.dart b/packages/inspection/lib/presentation/add_supervision/logic.dart similarity index 96% rename from features/inspection/lib/presentation/add_supervision/logic.dart rename to packages/inspection/lib/presentation/add_supervision/logic.dart index 57352cc..4aee4ec 100644 --- a/features/inspection/lib/presentation/add_supervision/logic.dart +++ b/packages/inspection/lib/presentation/add_supervision/logic.dart @@ -1,8 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:inspection/presentation/routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; -import '../routes/app_routes.dart'; - class AddSupervisionLogic extends GetxController { RxInt selectedSegment = 0.obs; RxInt violationSegmentsSelected = 0.obs; diff --git a/features/inspection/lib/presentation/add_supervision/view.dart b/packages/inspection/lib/presentation/add_supervision/view.dart similarity index 99% rename from features/inspection/lib/presentation/add_supervision/view.dart rename to packages/inspection/lib/presentation/add_supervision/view.dart index 17d1e52..eb989cb 100644 --- a/features/inspection/lib/presentation/add_supervision/view.dart +++ b/packages/inspection/lib/presentation/add_supervision/view.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import '../routes/app_routes.dart'; +import 'package:inspection/inspection.dart'; import 'package:rasadyar_core/core.dart'; import 'logic.dart'; diff --git a/features/inspection/lib/presentation/display_information/logic.dart b/packages/inspection/lib/presentation/display_information/logic.dart similarity index 100% rename from features/inspection/lib/presentation/display_information/logic.dart rename to packages/inspection/lib/presentation/display_information/logic.dart diff --git a/features/inspection/lib/presentation/display_information/view.dart b/packages/inspection/lib/presentation/display_information/view.dart similarity index 100% rename from features/inspection/lib/presentation/display_information/view.dart rename to packages/inspection/lib/presentation/display_information/view.dart diff --git a/features/inspection/lib/presentation/filter/logic.dart b/packages/inspection/lib/presentation/filter/logic.dart similarity index 97% rename from features/inspection/lib/presentation/filter/logic.dart rename to packages/inspection/lib/presentation/filter/logic.dart index 2d18e9b..a8610fd 100644 --- a/features/inspection/lib/presentation/filter/logic.dart +++ b/packages/inspection/lib/presentation/filter/logic.dart @@ -1,11 +1,10 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import 'package:inspection/data/utils/marker_generator.dart'; +import 'package:inspection/presentation/filter/view.dart'; import 'package:rasadyar_core/core.dart'; -import '../../data/utils/marker_generator.dart'; -import 'view.dart'; - class InspectorFilterLogic extends GetxController with GetTickerProviderStateMixin { Rx currentLocation = LatLng(35.824891, 50.948025).obs; diff --git a/features/inspection/lib/presentation/filter/view.dart b/packages/inspection/lib/presentation/filter/view.dart similarity index 99% rename from features/inspection/lib/presentation/filter/view.dart rename to packages/inspection/lib/presentation/filter/view.dart index 82ee88a..1046873 100644 --- a/features/inspection/lib/presentation/filter/view.dart +++ b/packages/inspection/lib/presentation/filter/view.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; -import '../routes/app_routes.dart'; +import 'package:inspection/presentation/routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; +import 'package:rasadyar_core/data/utils.dart'; import 'package:rasadyar_core/presentation/widget/buttons/fab.dart'; import 'logic.dart'; @@ -508,6 +509,7 @@ Widget selectedLocationWidget({ required VoidCallback trigger, required VoidCallback toggle, }) { + eLog(showHint); if (showHint) { trigger.call(); } diff --git a/features/inspection/lib/presentation/location_details/logic.dart b/packages/inspection/lib/presentation/location_details/logic.dart similarity index 100% rename from features/inspection/lib/presentation/location_details/logic.dart rename to packages/inspection/lib/presentation/location_details/logic.dart diff --git a/features/inspection/lib/presentation/location_details/view.dart b/packages/inspection/lib/presentation/location_details/view.dart similarity index 100% rename from features/inspection/lib/presentation/location_details/view.dart rename to packages/inspection/lib/presentation/location_details/view.dart diff --git a/features/inspection/lib/presentation/profile/logic.dart b/packages/inspection/lib/presentation/profile/logic.dart similarity index 100% rename from features/inspection/lib/presentation/profile/logic.dart rename to packages/inspection/lib/presentation/profile/logic.dart diff --git a/features/inspection/lib/presentation/profile/view.dart b/packages/inspection/lib/presentation/profile/view.dart similarity index 100% rename from features/inspection/lib/presentation/profile/view.dart rename to packages/inspection/lib/presentation/profile/view.dart diff --git a/features/inspection/lib/presentation/registration_of_violation/logic.dart b/packages/inspection/lib/presentation/registration_of_violation/logic.dart similarity index 100% rename from features/inspection/lib/presentation/registration_of_violation/logic.dart rename to packages/inspection/lib/presentation/registration_of_violation/logic.dart diff --git a/features/inspection/lib/presentation/registration_of_violation/view.dart b/packages/inspection/lib/presentation/registration_of_violation/view.dart similarity index 95% rename from features/inspection/lib/presentation/registration_of_violation/view.dart rename to packages/inspection/lib/presentation/registration_of_violation/view.dart index 39d20ee..d823a60 100644 --- a/features/inspection/lib/presentation/registration_of_violation/view.dart +++ b/packages/inspection/lib/presentation/registration_of_violation/view.dart @@ -1,10 +1,9 @@ import 'package:flutter/material.dart'; +import 'package:inspection/presentation/registration_of_violation/logic.dart'; +import 'package:inspection/presentation/routes/app_routes.dart'; import 'package:rasadyar_core/core.dart'; import 'package:rasadyar_core/presentation/widget/buttons/fab.dart'; -import '../routes/app_routes.dart'; -import 'logic.dart'; - class RegistrationOfViolationPage extends GetView { const RegistrationOfViolationPage({super.key}); diff --git a/features/inspection/lib/presentation/root/logic.dart b/packages/inspection/lib/presentation/root/logic.dart similarity index 90% rename from features/inspection/lib/presentation/root/logic.dart rename to packages/inspection/lib/presentation/root/logic.dart index 9a24ed9..bc88796 100644 --- a/features/inspection/lib/presentation/root/logic.dart +++ b/packages/inspection/lib/presentation/root/logic.dart @@ -1,10 +1,9 @@ import 'package:flutter/material.dart'; +import 'package:inspection/presentation/action/view.dart'; +import 'package:inspection/presentation/filter/view.dart'; +import 'package:inspection/presentation/profile/view.dart'; import 'package:rasadyar_core/core.dart'; - -import '../action/view.dart'; -import '../filter/view.dart'; -import '../profile/view.dart'; - +import 'package:rasadyar_core/data/utils.dart'; enum ErrorLocationType { serviceDisabled, permissionDenied, none } @@ -51,6 +50,7 @@ class RootLogic extends GetxController { } } catch (e) { + eLog(e); return await Geolocator.openLocationSettings(); } } diff --git a/features/inspection/lib/presentation/root/view.dart b/packages/inspection/lib/presentation/root/view.dart similarity index 98% rename from features/inspection/lib/presentation/root/view.dart rename to packages/inspection/lib/presentation/root/view.dart index 1609912..356a1d6 100644 --- a/features/inspection/lib/presentation/root/view.dart +++ b/packages/inspection/lib/presentation/root/view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:rasadyar_core/core.dart'; - +import 'package:rasadyar_core/data/utils.dart'; import 'logic.dart'; @@ -25,7 +25,7 @@ class RootPage extends GetView { textStyle: AppFonts.yekan16, onPressed: () async { var service = await controller.locationServiceEnabled(); - + eLog(service); if (service) { controller.errorLocationType.remove( ErrorLocationType.serviceDisabled, diff --git a/features/inspection/lib/presentation/routes/app_pages.dart b/packages/inspection/lib/presentation/routes/app_pages.dart similarity index 58% rename from features/inspection/lib/presentation/routes/app_pages.dart rename to packages/inspection/lib/presentation/routes/app_pages.dart index 59006ef..aeb25c4 100644 --- a/features/inspection/lib/presentation/routes/app_pages.dart +++ b/packages/inspection/lib/presentation/routes/app_pages.dart @@ -1,23 +1,21 @@ import 'package:rasadyar_core/core.dart'; - -import '../action/logic.dart'; -import '../add_mobile_inspector/logic.dart'; -import '../add_mobile_inspector/view.dart'; -import '../add_supervision/logic.dart'; -import '../add_supervision/view.dart'; -import '../display_information/logic.dart'; -import '../display_information/view.dart'; -import '../filter/logic.dart'; -import '../location_details/logic.dart'; -import '../location_details/view.dart'; -import '../profile/logic.dart'; -import '../profile/view.dart'; -import '../registration_of_violation/logic.dart'; -import '../registration_of_violation/view.dart'; -import '../root/logic.dart'; -import '../root/view.dart'; -import 'app_routes.dart'; - +import 'package:inspection/presentation/action/logic.dart'; +import 'package:inspection/presentation/add_mobile_inspector/logic.dart'; +import 'package:inspection/presentation/add_mobile_inspector/view.dart'; +import 'package:inspection/presentation/add_supervision/logic.dart'; +import 'package:inspection/presentation/add_supervision/view.dart'; +import 'package:inspection/presentation/display_information/logic.dart'; +import 'package:inspection/presentation/display_information/view.dart'; +import 'package:inspection/presentation/filter/logic.dart'; +import 'package:inspection/presentation/location_details/logic.dart'; +import 'package:inspection/presentation/location_details/view.dart'; +import 'package:inspection/presentation/profile/logic.dart'; +import 'package:inspection/presentation/profile/view.dart'; +import 'package:inspection/presentation/registration_of_violation/logic.dart'; +import 'package:inspection/presentation/registration_of_violation/view.dart'; +import 'package:inspection/presentation/root/logic.dart'; +import 'package:inspection/presentation/root/view.dart'; +import 'package:inspection/presentation/routes/app_routes.dart'; sealed class InspectionPages { InspectionPages._(); diff --git a/features/inspection/lib/presentation/routes/app_routes.dart b/packages/inspection/lib/presentation/routes/app_routes.dart similarity index 100% rename from features/inspection/lib/presentation/routes/app_routes.dart rename to packages/inspection/lib/presentation/routes/app_routes.dart diff --git a/features/inspection/lib/presentation/widget/cluster_marker.dart b/packages/inspection/lib/presentation/widget/cluster_marker.dart similarity index 100% rename from features/inspection/lib/presentation/widget/cluster_marker.dart rename to packages/inspection/lib/presentation/widget/cluster_marker.dart diff --git a/packages/inspection/pubspec.lock b/packages/inspection/pubspec.lock new file mode 100644 index 0000000..798be08 --- /dev/null +++ b/packages/inspection/pubspec.lock @@ -0,0 +1,673 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + async: + dependency: transitive + description: + name: async + sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + url: "https://pub.dev" + source: hosted + version: "2.13.0" + characters: + dependency: transitive + description: + name: characters + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + cupertino_icons: + dependency: transitive + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dart_earcut: + dependency: transitive + description: + name: dart_earcut + sha256: e485001bfc05dcbc437d7bfb666316182e3522d4c3f9668048e004d0eb2ce43b + url: "https://pub.dev" + source: hosted + version: "1.2.0" + dartx: + dependency: transitive + description: + name: dartx + sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + dio: + dependency: transitive + description: + name: dio + sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9" + url: "https://pub.dev" + source: hosted + version: "5.8.0+1" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_localizations: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_map: + dependency: transitive + description: + name: flutter_map + sha256: f7d0379477274f323c3f3bc12d369a2b42eb86d1e7bd2970ae1ea3cff782449a + url: "https://pub.dev" + source: hosted + version: "8.1.1" + flutter_map_animations: + dependency: transitive + description: + name: flutter_map_animations + sha256: bf583863561861aaaf4854ae7ed8940d79bea7d32918bf7a85d309b25235a09e + url: "https://pub.dev" + source: hosted + version: "0.9.0" + flutter_rating_bar: + dependency: transitive + description: + name: flutter_rating_bar + sha256: d2af03469eac832c591a1eba47c91ecc871fe5708e69967073c043b2d775ed93 + url: "https://pub.dev" + source: hosted + version: "4.0.1" + flutter_slidable: + dependency: transitive + description: + name: flutter_slidable + sha256: ab7dbb16f783307c9d7762ede2593ce32c220ba2ba0fd540a3db8e9a3acba71a + url: "https://pub.dev" + source: hosted + version: "4.0.0" + flutter_svg: + dependency: transitive + description: + name: flutter_svg + sha256: d44bf546b13025ec7353091516f6881f1d4c633993cb109c3916c3a0159dadf1 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + font_awesome_flutter: + dependency: transitive + description: + name: font_awesome_flutter + sha256: d3a89184101baec7f4600d58840a764d2ef760fe1c5a20ef9e6b0e9b24a07a3a + url: "https://pub.dev" + source: hosted + version: "10.8.0" + freezed_annotation: + dependency: transitive + description: + name: freezed_annotation + sha256: c87ff004c8aa6af2d531668b46a4ea379f7191dc6dfa066acd53d506da6e044b + url: "https://pub.dev" + source: hosted + version: "3.0.0" + geolocator: + dependency: transitive + description: + name: geolocator + sha256: e7ebfa04ce451daf39b5499108c973189a71a919aa53c1204effda1c5b93b822 + url: "https://pub.dev" + source: hosted + version: "14.0.0" + geolocator_android: + dependency: transitive + description: + name: geolocator_android + sha256: "114072db5d1dce0ec0b36af2697f55c133bc89a2c8dd513e137c0afe59696ed4" + url: "https://pub.dev" + source: hosted + version: "5.0.1+1" + geolocator_apple: + dependency: transitive + description: + name: geolocator_apple + sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22 + url: "https://pub.dev" + source: hosted + version: "2.3.13" + geolocator_platform_interface: + dependency: transitive + description: + name: geolocator_platform_interface + sha256: "30cb64f0b9adcc0fb36f628b4ebf4f731a2961a0ebd849f4b56200205056fe67" + url: "https://pub.dev" + source: hosted + version: "4.2.6" + geolocator_web: + dependency: transitive + description: + name: geolocator_web + sha256: b1ae9bdfd90f861fde8fd4f209c37b953d65e92823cb73c7dee1fa021b06f172 + url: "https://pub.dev" + source: hosted + version: "4.1.3" + geolocator_windows: + dependency: transitive + description: + name: geolocator_windows + sha256: "175435404d20278ffd220de83c2ca293b73db95eafbdc8131fe8609be1421eb6" + url: "https://pub.dev" + source: hosted + version: "0.2.5" + get: + dependency: transitive + description: + name: get + sha256: c79eeb4339f1f3deffd9ec912f8a923834bec55f7b49c9e882b8fef2c139d425 + url: "https://pub.dev" + source: hosted + version: "4.7.2" + get_it: + dependency: transitive + description: + name: get_it + sha256: f126a3e286b7f5b578bf436d5592968706c4c1de28a228b870ce375d9f743103 + url: "https://pub.dev" + source: hosted + version: "8.0.3" + hive_ce: + dependency: transitive + description: + name: hive_ce + sha256: fdc19336f03ecd01dbc1d1afe69d87ed9336bdf996c5374a25f9c21ef5f2989e + url: "https://pub.dev" + source: hosted + version: "2.11.1" + hive_ce_flutter: + dependency: transitive + description: + name: hive_ce_flutter + sha256: "5eaf57a5af980eda63ddaa8c34d618dc446f76fe79410f2a283522744291c05c" + url: "https://pub.dev" + source: hosted + version: "2.3.0" + http: + dependency: transitive + description: + name: http + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + url: "https://pub.dev" + source: hosted + version: "1.3.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + intl: + dependency: transitive + description: + name: intl + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + url: "https://pub.dev" + source: hosted + version: "0.19.0" + isolate_channel: + dependency: transitive + description: + name: isolate_channel + sha256: bafedfbcc1e9796ada179b5dac7043b33eb85d35204b089ca37d480d9c0068df + url: "https://pub.dev" + source: hosted + version: "0.2.2" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + latlong2: + dependency: transitive + description: + name: latlong2 + sha256: "98227922caf49e6056f91b6c56945ea1c7b166f28ffcd5fb8e72fc0b453cc8fe" + url: "https://pub.dev" + source: hosted + version: "0.9.1" + lists: + dependency: transitive + description: + name: lists + sha256: "4ca5c19ae4350de036a7e996cdd1ee39c93ac0a2b840f4915459b7d0a7d4ab27" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + logger: + dependency: transitive + description: + name: logger + sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1 + url: "https://pub.dev" + source: hosted + version: "2.5.0" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + url: "https://pub.dev" + source: hosted + version: "1.16.0" + mgrs_dart: + dependency: transitive + description: + name: mgrs_dart + sha256: fb89ae62f05fa0bb90f70c31fc870bcbcfd516c843fb554452ab3396f78586f7 + url: "https://pub.dev" + source: hosted + version: "2.0.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 + url: "https://pub.dev" + source: hosted + version: "2.2.17" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + permission_handler: + dependency: transitive + description: + name: permission_handler + sha256: "2d070d8684b68efb580a5997eb62f675e8a885ef0be6e754fb9ef489c177470f" + url: "https://pub.dev" + source: hosted + version: "12.0.0+1" + permission_handler_android: + dependency: transitive + description: + name: permission_handler_android + sha256: "1e3bc410ca1bf84662104b100eb126e066cb55791b7451307f9708d4007350e6" + url: "https://pub.dev" + source: hosted + version: "13.0.1" + permission_handler_apple: + dependency: transitive + description: + name: permission_handler_apple + sha256: f000131e755c54cf4d84a5d8bd6e4149e262cc31c5a8b1d698de1ac85fa41023 + url: "https://pub.dev" + source: hosted + version: "9.4.7" + permission_handler_html: + dependency: transitive + description: + name: permission_handler_html + sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" + url: "https://pub.dev" + source: hosted + version: "0.1.3+5" + permission_handler_platform_interface: + dependency: transitive + description: + name: permission_handler_platform_interface + sha256: eb99b295153abce5d683cac8c02e22faab63e50679b937fa1bf67d58bb282878 + url: "https://pub.dev" + source: hosted + version: "4.3.0" + permission_handler_windows: + dependency: transitive + description: + name: permission_handler_windows + sha256: "1a790728016f79a41216d88672dbc5df30e686e811ad4e698bfc51f76ad91f1e" + url: "https://pub.dev" + source: hosted + version: "0.2.1" + persian_datetime_picker: + dependency: transitive + description: + name: persian_datetime_picker + sha256: "7ccbfd3a68dc89d405550f624e9fa590c914fed2aa2d48973c4f4400baab2e06" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + polylabel: + dependency: transitive + description: + name: polylabel + sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + pretty_dio_logger: + dependency: transitive + description: + name: pretty_dio_logger + sha256: "36f2101299786d567869493e2f5731de61ce130faa14679473b26905a92b6407" + url: "https://pub.dev" + source: hosted + version: "1.4.0" + proj4dart: + dependency: transitive + description: + name: proj4dart + sha256: c8a659ac9b6864aa47c171e78d41bbe6f5e1d7bd790a5814249e6b68bc44324e + url: "https://pub.dev" + source: hosted + version: "2.1.0" + rasadyar_core: + dependency: "direct main" + description: + path: "../core" + relative: true + source: path + version: "1.0.0+1" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" + shamsi_date: + dependency: transitive + description: + name: shamsi_date + sha256: b6c79ff34ddfb1e9e4761347f18e30afdd7d16cc3db77defd5a40e2d93894c51 + url: "https://pub.dev" + source: hosted + version: "1.1.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_span: + dependency: transitive + description: + name: source_span + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + url: "https://pub.dev" + source: hosted + version: "1.10.1" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + time: + dependency: transitive + description: + name: time + sha256: "370572cf5d1e58adcb3e354c47515da3f7469dac3a95b447117e728e7be6f461" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + unicode: + dependency: transitive + description: + name: unicode + sha256: "0f69e46593d65245774d4f17125c6084d2c20b4e473a983f6e21b7d7762218f1" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + uuid: + dependency: transitive + description: + name: uuid + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + url: "https://pub.dev" + source: hosted + version: "4.5.1" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "44cc7104ff32563122a929e4620cf3efd584194eec6d1d913eb5ba593dbcf6de" + url: "https://pub.dev" + source: hosted + version: "1.1.18" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" + url: "https://pub.dev" + source: hosted + version: "1.1.13" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" + url: "https://pub.dev" + source: hosted + version: "1.1.16" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + wkt_parser: + dependency: transitive + description: + name: wkt_parser + sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" +sdks: + dart: ">=3.7.2 <4.0.0" + flutter: ">=3.27.0" diff --git a/packages/inspection/pubspec.yaml b/packages/inspection/pubspec.yaml new file mode 100644 index 0000000..bb987bc --- /dev/null +++ b/packages/inspection/pubspec.yaml @@ -0,0 +1,13 @@ +name: inspection +description: "inspection module for rasadyar" +publish_to: 'none' +version: 1.0.1 + +environment: + sdk: ^3.7.2 + +dependencies: + flutter: + sdk: flutter + rasadyar_core: + path: ../core \ No newline at end of file