diff --git a/.github/workflows/pull_request_validation.yml b/.github/workflows/pull_request_validation.yml index 39fca36..46454a5 100644 --- a/.github/workflows/pull_request_validation.yml +++ b/.github/workflows/pull_request_validation.yml @@ -19,7 +19,7 @@ jobs: - name: ♨️ Setup Java uses: actions/setup-java@v3 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: 🐦 Setup Flutter diff --git a/.gitignore b/.gitignore index d8d1126..51c4b51 100644 --- a/.gitignore +++ b/.gitignore @@ -47,10 +47,13 @@ app.*.map.json # Flutter code generation *.freezed.dart *.g.dart -nstack.dart *.gr.dart *.config.dart lib/gen/** # Dependencies -**.lock +# Pubspec.lock should be checked out to git +# to ensure everyone in the team is using the same version. +# Recommended by Flutter as well. +# We can git ignore Podfile.lock only. +Podfile.lock diff --git a/README.md b/README.md index cc5fe5a..bebd50a 100644 --- a/README.md +++ b/README.md @@ -6,22 +6,36 @@ This project serves as a template project for Flutter applications. You can gene ## 🔧 Setup and Installation -- Execute `$ flutter doctor` to verify installations -- Execute `$ pub get` to pull project dependencies -- Execute a run configuration of choice - - `$ flutter run --flavor development -t lib/main_development.dart --dart-define-from-file=lib/config/dart_define_keys/dart_define_development_keys.json` - - `$ flutter run --flavor staging -t lib/main_staging.dart --dart-define-from-file=lib/config/dart_define_keys/dart_define_staging_keys.json` - -⚠️ **Running the Production Flavor** - -It is **not recommended** to run the production flavor directly from the IDE -(VS Code or Android Studio) as it may be run by mistake. For ease and accuracy, -it is advised to run flavors via the **VS Code launch menu** or the **Android -Studio Run menu** instead. +1. Execute `$ flutter doctor` to verify installations. +2. Execute `$ pub get` to pull project dependencies. +3. Execute a run configuration of your choice: + + ```sh + flutter run --flavor development -t lib/main_development.dart --dart-define-from-file=lib/config/dart_define_keys/dart_define_development_keys.json + ``` + + ```sh + flutter run --flavor staging -t lib/main_staging.dart --dart-define-from-file=lib/config/dart_define_keys/dart_define_staging_keys.json` + ``` + +> [!IMPORTANT] +> ⚠️ **Running the Production Flavor** +> +> It is **not recommended** to run the production flavor directly from the IDE +> (VS Code or Android Studio) as it may be run by mistake. For ease and +> accuracy, +> it is advised to run flavors via the **VS Code launch menu** or the +> **Android Studio Run menu** instead. +> +> To use the build runner, use this command: +> +> ```sh +> dart run build_runner build --delete-conflicting-outputs +> ``` ## 🌲 Branches -- `master` - Latest version in the app store. +- `main` - Latest version in the app store. - `develop` - Default. Feature branches are merged in when complete and then deleted. ## 🔗 Useful links @@ -30,6 +44,4 @@ Studio Run menu** instead. - [Confluence](https://TODO) - [Slack Channel](https://TODO) - [OpenAPI Specification](https://TODO) -- [NStack](https://TODO) - [Figma Design](https://TODO) -- [UI Manifesto](https://github.com/monstar-lab-oss/ui-manifesto) diff --git a/analysis_options.yaml b/analysis_options.yaml index 8d7c335..be9c419 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -22,7 +22,5 @@ analyzer: - "**/*.g.dart" # Ignore warnings in files generated by Freezed specifically. - "**/*.freezed.dart" - # Ignore warnings in files generated by NStack specifically. - - "**/*nstack.dart" # Ignore bricks - bricks/** diff --git a/android/app/build.gradle b/android/app/build.gradle index 82f1dca..4209514 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -9,7 +9,7 @@ def appName = "Monstarlab Flutter Template" // TODO: Change the applicationId for production // On staging it will add .staging and on development it will add .development as suffix. -def applicationId = "com.monstarlab.flutter" +def packageName = "com.monstarlab.flutter" ext { androidMinSdkVersion = 21 @@ -18,9 +18,9 @@ ext { android { - namespace = "$applicationId" + namespace = "$packageName" compileSdk = androidCompileAndTargetSdkVersion - ndkVersion = flutter.ndkVersion + ndkVersion = "27.0.12077973" compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 @@ -32,7 +32,7 @@ android { } defaultConfig { - applicationId = "$applicationId" + applicationId = "$packageName" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = androidMinSdkVersion diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..a2ef6bc --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,6 @@ +-dontwarn com.google.errorprone.annotations.CanIgnoreReturnValue +-dontwarn com.google.errorprone.annotations.CheckReturnValue +-dontwarn com.google.errorprone.annotations.Immutable +-dontwarn com.google.errorprone.annotations.RestrictedApi +-dontwarn javax.annotation.Nullable +-dontwarn javax.annotation.concurrent.GuardedBy diff --git a/android/build.gradle b/android/build.gradle index 361d70f..d2ffbff 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -6,30 +6,6 @@ allprojects { } rootProject.buildDir = "../build" -// [NStack] the namespace property is null within -// the android block of the build.gradle file for the nstack sdk. -// Additionally, the Kotlin Gradle plugin is using a very old version there. -subprojects { - afterEvaluate { project -> - if (project.name == 'nstack') { - if (project.hasProperty('android')) { - project.android { - if (namespace == null) { - namespace project.group - } - } - project.buildscript { - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10" - } - } - } - } - } -} -// End of NStack workaround - - subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index e1ca574..afa1e8e 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index ea7f114..da301b7 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -18,8 +18,8 @@ pluginManagement { plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version '7.4.2' apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false + id "com.android.application" version '8.7.2' apply false + id "org.jetbrains.kotlin.android" version "2.0.20" apply false } include ":app" diff --git a/lib/config/dart_define.dart b/lib/config/dart_define.dart index eb2667d..6ac6527 100644 --- a/lib/config/dart_define.dart +++ b/lib/config/dart_define.dart @@ -1,5 +1,5 @@ -// This class is declared as an `abstract interface` to restrict inheritance +// This class is declared as an `abstract final` to restrict inheritance // and prevent instantiation outside the library. -abstract interface class DartDefine { +abstract final class DartDefine { static const apiBaseUrl = String.fromEnvironment('API_BASE_URL'); } diff --git a/lib/data/response_objects/error_response.dart b/lib/data/response_objects/error_response.dart index e72e8aa..c45a0ff 100644 --- a/lib/data/response_objects/error_response.dart +++ b/lib/data/response_objects/error_response.dart @@ -1,13 +1,12 @@ import 'package:flutter_template/domain/common/response_error/response_error.dart'; -import 'package:flutter_template/nstack/nstack.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; part 'error_response.freezed.dart'; part 'error_response.g.dart'; -///The BE should provide one unique code for each error, in this case the -///error is being provided through errorName so we create an Enum for each -///code we are aware of with a default value to unknown +/// The BE should provide one unique code for each error, in this case the +/// error is being provided through errorName so we create an Enum for each +/// code we are aware of with a default value to unknown @freezed class APIError with _$APIError { const factory APIError({ @@ -27,9 +26,9 @@ class APIError with _$APIError { @freezed class ErrorResponse with _$ErrorResponse { const factory ErrorResponse({ - //TODO: name this according to the map key from the error response - //if no map key exists then just create this factory with the APIError values - //and remove APIError, + // TODO: name this according to the map key from the error response + // if no map key exists then just create this factory with the APIError values + // and remove APIError, required APIError error, }) = _ErrorResponse; @@ -38,7 +37,7 @@ class ErrorResponse with _$ErrorResponse { } enum ErrorName { - //Add error enum and the BE value + // Add error enum and the BE value @JsonValue('errorExample') errorExample, unknown, @@ -53,13 +52,13 @@ extension ErrorResponseExtensions on ErrorResponse { } extension ErrorNameExtensions on ErrorName { - String getErrorMessage(Localization l10n) { + String getErrorMessage() { switch (this) { - //Handle error enum and return mapped nstack value + // TODO: Handle error enum and return mapped localized value case ErrorName.errorExample: - return l10n.error.authenticationError; + return 'Error Occurred'; default: - return ''; + return 'Unexpected Error'; } } } diff --git a/lib/domain/common/response_error/response_error.dart b/lib/domain/common/response_error/response_error.dart index 587ed32..f09e311 100644 --- a/lib/domain/common/response_error/response_error.dart +++ b/lib/domain/common/response_error/response_error.dart @@ -3,7 +3,6 @@ import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_template/data/response_objects/error_response.dart'; -import 'package:flutter_template/nstack/nstack.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; part 'response_error.freezed.dart'; @@ -91,28 +90,27 @@ sealed class ResponseError with _$ResponseError implements Exception { } extension ResponseErrorExtensions on ResponseError { - String getErrorMessage(Localization l10n) { - //TODO: create error module for errors and set value accordingly + String getErrorMessage() { return when( - noInternetConnection: () => l10n.error.connectionError, - sendTimeout: () => l10n.error.authenticationError, - connectTimeout: () => l10n.error.authenticationError, - receiveTimeout: () => l10n.error.authenticationError, - badRequest: (message) => message.getErrorMessage(l10n), - notFound: () => l10n.error.authenticationError, - tooManyRequests: () => l10n.error.authenticationError, - unprocessableEntity: () => l10n.error.authenticationError, - internalServerError: () => l10n.error.authenticationError, - unexpectedError: () => l10n.error.authenticationError, - requestCancelled: () => l10n.error.authenticationError, - conflict: () => l10n.error.authenticationError, - unauthorized: () => l10n.error.authenticationError, - invalidPassword: () => l10n.error.authenticationError, - invalidEmail: () => l10n.error.authenticationError, - invalidSearchTerm: () => l10n.error.authenticationError, - invalidLoginCredentials: () => l10n.error.authenticationError, - badCertificate: () => l10n.error.authenticationError, - connectionError: () => l10n.error.connectionError, + noInternetConnection: () => 'No Internet Connection', + sendTimeout: () => 'Send Timeout Error', + connectTimeout: () => 'Connection Timeout Error', + receiveTimeout: () => 'Receive Timeout Error', + badRequest: (message) => message.getErrorMessage(), + notFound: () => 'Not Found Error', + tooManyRequests: () => 'Too Many Requests', + unprocessableEntity: () => 'Unprocessable Entity', + internalServerError: () => 'Internal Server Error', + unexpectedError: () => 'Unexpected Error', + requestCancelled: () => 'Request Cancelled', + conflict: () => 'Conflict Error', + unauthorized: () => 'Unauthorized Error', + invalidPassword: () => 'Invalid Password', + invalidEmail: () => 'Invalid Email', + invalidSearchTerm: () => 'Invalid Search Term', + invalidLoginCredentials: () => 'Invalid Login Credentials', + badCertificate: () => 'Bad Certificate', + connectionError: () => 'Connection Error', ); } } diff --git a/lib/nstack/nstack.json b/lib/nstack/nstack.json deleted file mode 100644 index 53a5eed..0000000 --- a/lib/nstack/nstack.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "version": 1, - "nstack_project_id": "k78R0OadfzZQmlhvKYkF1znwdQYShK1SCiLl", - "nstack_api_key": "e5tzJcRuIE3UsivDicjQZlI03TLgpWPEroOf" -} diff --git a/lib/presentation/app.dart b/lib/presentation/app.dart index 127774d..e94710f 100644 --- a/lib/presentation/app.dart +++ b/lib/presentation/app.dart @@ -1,7 +1,6 @@ import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:flutter_template/injection/injector.dart'; -import 'package:flutter_template/nstack/nstack.dart'; import 'package:flutter_template/presentation/resources/resources.dart'; import 'package:flutter_template/presentation/routes/router.dart'; @@ -20,15 +19,6 @@ class App extends StatelessWidget { themeMode: ThemeMode.system, // TODO: Change Project Name Here title: 'Monstarlab Flutter Template', - builder: (c, widget) { - if (widget == null) { - return const SizedBox(); - } - - return NStackWidget( - child: widget, - ); - }, routerDelegate: AutoRouterDelegate( appRouter, ), diff --git a/lib/presentation/common/assets_cache_manager.dart b/lib/presentation/common/assets_cache_manager.dart index d463d59..fcf74ac 100644 --- a/lib/presentation/common/assets_cache_manager.dart +++ b/lib/presentation/common/assets_cache_manager.dart @@ -1,4 +1,4 @@ -abstract interface class AssetsCachingManager { +abstract final class AssetsCachingManager { /// Caches only the animations required at the initial app startup, /// specifically for the splash screen. /// diff --git a/lib/presentation/resources/app_color_palette.dart b/lib/presentation/resources/app_color_palette.dart index ab60fe7..8230b70 100644 --- a/lib/presentation/resources/app_color_palette.dart +++ b/lib/presentation/resources/app_color_palette.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; /// Defines color palette for the application. /// /// Consider using the color name that is mentioned in Figma. -abstract interface class AppColorPalette { +abstract final class AppColorPalette { const AppColorPalette._(); static const alpha = Colors.transparent; diff --git a/lib/presentation/resources/app_fonts.dart b/lib/presentation/resources/app_fonts.dart index 7a76f05..51299e5 100644 --- a/lib/presentation/resources/app_fonts.dart +++ b/lib/presentation/resources/app_fonts.dart @@ -1,6 +1,6 @@ import 'package:flutter_template/gen/fonts.gen.dart'; -abstract interface class AppFonts { +abstract final class AppFonts { AppFonts._(); static const roboto = FontFamily.roboto; diff --git a/lib/presentation/resources/app_theme.dart b/lib/presentation/resources/app_theme.dart index 501b177..3744b8d 100644 --- a/lib/presentation/resources/app_theme.dart +++ b/lib/presentation/resources/app_theme.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_template/presentation/extensions/color_extensions.dart'; import 'package:flutter_template/presentation/resources/resources.dart'; -abstract interface class AppTheme { +abstract final class AppTheme { const AppTheme._(); static ThemeData fromBrightness(Brightness brightness) { diff --git a/lib/presentation/resources/app_ui_constants.dart b/lib/presentation/resources/app_ui_constants.dart index a6a4f4b..02032a7 100644 --- a/lib/presentation/resources/app_ui_constants.dart +++ b/lib/presentation/resources/app_ui_constants.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; /// /// This class contains non-sensitive information and is designed to maintain consistency /// across the app's UI elements. -abstract interface class AppUiConstants { +abstract final class AppUiConstants { AppUiConstants._(); // Animations diff --git a/playbooks/organization/WorkingWithNStack.md b/playbooks/organization/WorkingWithNStack.md new file mode 100644 index 0000000..920cbac --- /dev/null +++ b/playbooks/organization/WorkingWithNStack.md @@ -0,0 +1,165 @@ +# Working with NStack + +> [!IMPORTANT] +> ⚠️ **Notes regarding the NStack** +> +> NStack might currently be down as the +> organization plans to sunset this service. +> However, this guide will assist future +> developers if they choose to work with it & +> NStack is up again. + +_Please visit [Nstack website](https://www.nstack.io) to check if it's up._ + +The feature integration was removed in the [chore: Removed NStack feature integration](https://github.com/ml-opensource/flutter-template/pull/161) Pull Request. + +**NStack** is a Backend-as-a-Service (BaaS) developed by Nodes/Monstarlab. It offers features such as localization, in-app messaging, and rate limiting. + +--- + +## Getting Started + +For more details about the Flutter package for the NStack library, visit [NStack Flutter SDK on GitHub](https://github.com/nstack-io/flutter-sdk). + +--- + +## Installation + +To use NStack, you'll need a typical `build_runner` setup. Follow these steps to install the required packages by adding them to your `pubspec.yaml` file: + +```yaml +dependencies: + nstack: + git: + url: https://github.com/nstack-io/flutter-sdk.git + ref: v0.5.1 + +dev_dependencies: + build_runner: +``` + +### Additional Notes + +- **Circular Dependencies:** Some packages may cause circular dependency issues. To resolve this, specify exact versions of those dependencies. + + Example: + + ```yaml + flutter_svg: 2.0.9 + lottie: 3.0.0 + ``` + +--- + +## Running the Code Generator + +1. **Create Configuration File:** + Create a file named `nstack.json` under `/lib/nstack` with the following content: + + ```json + { + "version": 1, + "nstack_project_id": "YOUR_PROJECT_ID", + "nstack_api_key": "YOUR_REST_API_KEY" + } + ``` + +2. **Run the Generator:** + Based on your use case, run one of the following commands: + + - If your package depends on Flutter: + + ```bash + flutter pub run build_runner build + ``` + + - Otherwise: + + ```bash + pub run build_runner build + ``` + + A successful execution will generate a `nstack.dart` file tailored to your project. + +3. **Incremental Updates:** + To watch for changes in `nstack.json` and trigger automatic rebuilds, use the following command: + + ```bash + flutter pub run build_runner watch --delete-conflicting-outputs + ``` + + Increment the `"version"` number in `nstack.json` and save to trigger an update. + +--- + +## Example Usage + +1. **Import Generated File:** + Import the `nstack.dart` file in your project. + +2. **Integrate NStack Widget:** + In your `app.dart`, under `MaterialApp.router`, use the following code in the `builder`: + + ```dart + return MaterialApp.router( + // ... other codes go here + builder: (context, widget) { + if (widget == null) { + return const SizedBox(); + } + + return NStackWidget( + child: widget, + ); + }, + ); + ``` + +3. **Analysis Options:** + Add the following to your `analysis_options.yaml` to exclude the generated `nstack.dart` file: + + ```yaml + - "**/*nstack.dart" + ``` + +--- + +## Additional Setup + +### Java and Gradle Compatibility + +Ensure you have **Java 17** and a compatible Gradle version for Android builds. + +### Workaround for Namespace Issue + +If NStack complains about missing namespaces in its library, apply the following workaround in your `android/build.gradle`: + +```gradle +// android/build.gradle +rootProject.buildDir = "../build" // <-- existing line + +// Start of NStack Workaround +subprojects { + afterEvaluate { project -> + if (project.name == 'nstack') { + if (project.hasProperty('android')) { + project.android { + if (namespace == null) { + namespace project.group + } + } + project.buildscript { + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.20" + } + } + } + } + } +} +// End of NStack Workaround +``` + +--- + +This guide provides a complete overview of integrating and using NStack in a Flutter project. If you encounter issues, feel free to consult the official [NStack Flutter SDK documentation](https://github.com/nstack-io/flutter-sdk). diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..416982f --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,1231 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + url: "https://pub.dev" + source: hosted + version: "72.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.3.2" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + url: "https://pub.dev" + source: hosted + version: "6.7.0" + archive: + dependency: transitive + description: + name: archive + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + url: "https://pub.dev" + source: hosted + version: "3.6.1" + args: + dependency: transitive + description: + name: args + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 + url: "https://pub.dev" + source: hosted + version: "2.6.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + auto_route: + dependency: "direct main" + description: + name: auto_route + sha256: b83e8ce46da7228cdd019b5a11205454847f0a971bca59a7529b98df9876889b + url: "https://pub.dev" + source: hosted + version: "9.2.2" + auto_route_generator: + dependency: "direct dev" + description: + name: auto_route_generator + sha256: c9086eb07271e51b44071ad5cff34e889f3156710b964a308c2ab590769e79e6 + url: "https://pub.dev" + source: hosted + version: "9.0.0" + auto_size_text: + dependency: "direct main" + description: + name: auto_size_text + sha256: "3f5261cd3fb5f2a9ab4e2fc3fba84fd9fcaac8821f20a1d4e71f557521b22599" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + bloc: + dependency: transitive + description: + name: bloc + sha256: "106842ad6569f0b60297619e9e0b1885c2fb9bf84812935490e6c5275777804e" + url: "https://pub.dev" + source: hosted + version: "8.1.4" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "79b2aef6ac2ed00046867ed354c88778c9c0f029df8a20fe10b5436826721ef9" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" + url: "https://pub.dev" + source: hosted + version: "2.4.13" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: f8126682b87a7282a339b871298cc12009cb67109cfa1614d6436fb0289193e0 + url: "https://pub.dev" + source: hosted + version: "7.3.2" + build_test: + dependency: transitive + description: + name: build_test + sha256: "260dbba934f41b0a42935e9cae1f5731b94f0c3e489dc97bcf8e281265aaa5ae" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + url: "https://pub.dev" + source: hosted + version: "8.9.2" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff + url: "https://pub.dev" + source: hosted + version: "2.0.3" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" + url: "https://pub.dev" + source: hosted + version: "4.10.1" + collection: + dependency: transitive + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + color: + dependency: transitive + description: + name: color + sha256: ddcdf1b3badd7008233f5acffaf20ca9f5dc2cd0172b75f68f24526a5f5725cb + url: "https://pub.dev" + source: hosted + version: "3.0.0" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + coverage: + dependency: transitive + description: + name: coverage + sha256: "4b03e11f6d5b8f6e5bb5e9f7889a56fe6c5cbe942da5378ea4d4d7f73ef9dfe5" + url: "https://pub.dev" + source: hosted + version: "1.11.0" + crypto: + dependency: transitive + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + csslib: + dependency: transitive + description: + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + url: "https://pub.dev" + source: hosted + version: "2.3.7" + dartx: + dependency: transitive + description: + name: dartx + sha256: "8b25435617027257d43e6508b5fe061012880ddfdaa75a71d607c3de2a13d244" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + device_info_plus: + dependency: "direct main" + description: + name: device_info_plus + sha256: f545ffbadee826f26f2e1a0f0cbd667ae9a6011cc0f77c0f8f00a969655e6e95 + url: "https://pub.dev" + source: hosted + version: "11.1.1" + device_info_plus_platform_interface: + dependency: transitive + description: + name: device_info_plus_platform_interface + sha256: "282d3cf731045a2feb66abfe61bbc40870ae50a3ed10a4d3d217556c35c8c2ba" + url: "https://pub.dev" + source: hosted + version: "7.0.1" + dio: + dependency: "direct main" + description: + name: dio + sha256: "5598aa796bbf4699afd5c67c0f5f6e2ed542afc956884b9cd58c306966efc260" + url: "https://pub.dev" + source: hosted + version: "5.7.0" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "33259a9276d6cea88774a0000cfae0d861003497755969c92faa223108620dc8" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + 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_bloc: + dependency: "direct main" + description: + name: flutter_bloc + sha256: b594505eac31a0518bdcb4b5b79573b8d9117b193cc80cc12e17d639b10aa27a + url: "https://pub.dev" + source: hosted + version: "8.1.6" + flutter_gen_core: + dependency: transitive + description: + name: flutter_gen_core + sha256: "46ecf0e317413dd065547887c43f93f55e9653e83eb98dc13dd07d40dd225325" + url: "https://pub.dev" + source: hosted + version: "5.8.0" + flutter_gen_runner: + dependency: "direct dev" + description: + name: flutter_gen_runner + sha256: "77f0a02fc30d9fcf2549fe874eb3fde091435724904bcbb1af60aa40cbfab1f4" + url: "https://pub.dev" + source: hosted + version: "5.8.0" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "165164745e6afb5c0e3e3fcc72a012fb9e58496fb26ffb92cf22e16a821e85d0" + url: "https://pub.dev" + source: hosted + version: "9.2.2" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81" + url: "https://pub.dev" + source: hosted + version: "3.1.2" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + flutter_sticky_header: + dependency: "direct main" + description: + name: flutter_sticky_header + sha256: "7f76d24d119424ca0c95c146b8627a457e8de8169b0d584f766c2c545db8f8be" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: "54900a1a1243f3c4a5506d853a2b5c2dbc38d5f27e52a52618a8054401431123" + url: "https://pub.dev" + source: hosted + version: "2.0.16" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + freezed: + dependency: "direct dev" + description: + name: freezed + sha256: "44c19278dd9d89292cf46e97dc0c1e52ce03275f40a97c5a348e802a924bf40e" + url: "https://pub.dev" + source: hosted + version: "2.5.7" + freezed_annotation: + dependency: "direct main" + description: + name: freezed_annotation + sha256: c2e2d632dd9b8a2b7751117abcfc2b4888ecfe181bd9fca7170d9ef02e595fe2 + url: "https://pub.dev" + source: hosted + version: "2.4.4" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + get_it: + dependency: "direct main" + description: + name: get_it + sha256: c49895c1ecb0ee2a0ec568d39de882e2c299ba26355aa6744ab1001f98cebd15 + url: "https://pub.dev" + source: hosted + version: "8.0.2" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + hashcodes: + dependency: transitive + description: + name: hashcodes + sha256: "80f9410a5b3c8e110c4b7604546034749259f5d6dcca63e0d3c17c9258f1a651" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + html: + dependency: transitive + description: + name: html + sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" + url: "https://pub.dev" + source: hosted + version: "0.15.5" + http: + dependency: transitive + description: + name: http + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + url: "https://pub.dev" + source: hosted + version: "1.2.2" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + image_size_getter: + dependency: transitive + description: + name: image_size_getter + sha256: "0511799498340b70993d2dfb34b55a2247b5b801d75a6cdd4543acfcafdb12b0" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + injectable: + dependency: "direct main" + description: + name: injectable + sha256: "5e1556ea1d374fe44cbe846414d9bab346285d3d8a1da5877c01ad0774006068" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + injectable_generator: + dependency: "direct dev" + description: + name: injectable_generator + sha256: af403d76c7b18b4217335e0075e950cd0579fd7f8d7bd47ee7c85ada31680ba1 + url: "https://pub.dev" + source: hosted + version: "2.6.2" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: "direct main" + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + json_serializable: + dependency: "direct dev" + description: + name: json_serializable + sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c + url: "https://pub.dev" + source: hosted + version: "6.9.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + url: "https://pub.dev" + source: hosted + version: "10.0.5" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + url: "https://pub.dev" + source: hosted + version: "3.0.5" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + lottie: + dependency: "direct main" + description: + name: lottie + sha256: "7afc60865a2429d994144f7d66ced2ae4305fe35d82890b8766e3359872d872c" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + macros: + dependency: transitive + description: + name: macros + sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + url: "https://pub.dev" + source: hosted + version: "0.1.2-main.4" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + 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: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" + source: hosted + version: "1.15.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + monstarlab_lints: + dependency: "direct dev" + description: + name: monstarlab_lints + sha256: fbdde80cf9c9a0ab133b2a6aca403ec987e66ff1ee62dc218eee63c1cf25ce27 + url: "https://pub.dev" + source: hosted + version: "1.0.4" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + package_info_plus: + dependency: "direct main" + description: + name: package_info_plus + sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce + url: "https://pub.dev" + source: hosted + version: "8.1.1" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + 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: "8c4967f8b7cb46dc914e178daa29813d83ae502e0529d7b0478330616a691ef7" + url: "https://pub.dev" + source: hosted + version: "2.2.14" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" + source: hosted + version: "2.4.0" + 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" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + 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" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + protobuf: + dependency: transitive + description: + name: protobuf + sha256: "68645b24e0716782e58948f8467fd42a880f255096a821f9e7d0ec625b00c84d" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + provider: + dependency: transitive + description: + name: provider + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c + url: "https://pub.dev" + source: hosted + version: "6.1.2" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + recase: + dependency: transitive + description: + name: recase + sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 + url: "https://pub.dev" + source: hosted + version: "4.1.0" + retrofit: + dependency: "direct main" + description: + name: retrofit + sha256: "3c9885ef3dbc5dc4b3fb0a40c972ab52e4dad04d52dac9bba24dfa76cf100451" + url: "https://pub.dev" + source: hosted + version: "4.4.1" + retrofit_generator: + dependency: "direct dev" + description: + name: retrofit_generator + sha256: f76fdb2b66854690d5a332e7364d7561fc9dc2b3c924d7956ab8070495e21f6a + url: "https://pub.dev" + source: hosted + version: "9.1.5" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82" + url: "https://pub.dev" + source: hosted + version: "2.3.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab" + url: "https://pub.dev" + source: hosted + version: "2.3.3" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shelf: + dependency: transitive + description: + name: shelf + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 + url: "https://pub.dev" + source: hosted + version: "1.4.1" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3 + url: "https://pub.dev" + source: hosted + version: "1.1.3" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + source_gen_test: + dependency: transitive + description: + name: source_gen_test + sha256: ba9ec63c8f4f4d91021e5e09dd8259dc3bdfbd13cd027d91d761201542bc4a1f + url: "https://pub.dev" + source: hosted + version: "1.1.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + url: "https://pub.dev" + source: hosted + version: "1.3.4" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b + url: "https://pub.dev" + source: hosted + version: "2.1.2" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + url: "https://pub.dev" + source: hosted + version: "0.10.12" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test: + dependency: transitive + description: + name: test + sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e" + url: "https://pub.dev" + source: hosted + version: "1.25.7" + test_api: + dependency: transitive + description: + name: test_api + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + url: "https://pub.dev" + source: hosted + version: "0.7.2" + test_core: + dependency: transitive + description: + name: test_core + sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696" + url: "https://pub.dev" + source: hosted + version: "0.6.4" + theme_tailor: + dependency: "direct dev" + description: + name: theme_tailor + sha256: "176c88b37f56996c2dc7b9e426a2db6fd66f95e1454288f7205ea4faa9380a3a" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + theme_tailor_annotation: + dependency: "direct main" + description: + name: theme_tailor_annotation + sha256: "2990264653b700c7eece3557a5fe5f999cdcd32981aed67023a66004943db08d" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + time: + dependency: transitive + description: + name: time + sha256: "370572cf5d1e58adcb3e354c47515da3f7469dac3a95b447117e728e7be6f461" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + value_layout_builder: + dependency: transitive + description: + name: value_layout_builder + sha256: c02511ea91ca5c643b514a33a38fa52536f74aa939ec367d02938b5ede6807fa + url: "https://pub.dev" + source: hosted + version: "0.4.0" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "27d5fefe86fb9aace4a9f8375b56b3c292b64d8c04510df230f849850d912cb7" + url: "https://pub.dev" + source: hosted + version: "1.1.15" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "2430b973a4ca3c4dbc9999b62b8c719a160100dcbae5c819bae0cacce32c9cdb" + url: "https://pub.dev" + source: hosted + version: "1.1.12" + 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" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + url: "https://pub.dev" + source: hosted + version: "14.2.5" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + win32: + dependency: transitive + description: + name: win32 + sha256: "84ba388638ed7a8cb3445a320c8273136ab2631cd5f2c57888335504ddab1bc2" + url: "https://pub.dev" + source: hosted + version: "5.8.0" + win32_registry: + dependency: transitive + description: + name: win32_registry + sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852" + url: "https://pub.dev" + source: hosted + version: "1.1.5" + 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" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.5.4 <4.0.0" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 686d546..afee99b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,10 +3,10 @@ description: A new Flutter application. publish_to: "none" # Private package, prevent accidental publishing -version: 1.0.0+1 +version: 0.0.1+1 environment: - sdk: ^3.0.0 + sdk: ^3.5.4 dependencies: flutter: @@ -14,24 +14,18 @@ dependencies: # UI & Design cupertino_icons: ^1.0.8 - flutter_svg: 2.0.9 # Change with caution - lottie: 1.4.3 # Change with caution + flutter_svg: ^2.0.16 + lottie: ^3.1.3 flutter_sticky_header: ^0.7.0 auto_size_text: ^3.0.0 theme_tailor_annotation: ^3.0.1 - # Localization - nstack: - git: - url: https://github.com/nstack-io/flutter-sdk.git - ref: v0.5.1 - # Networking & API dio: ^5.7.0 retrofit: ^4.4.1 # State Management, Dependency Injection, Navigation - get_it: ^8.0.1 + get_it: ^8.0.2 injectable: ^2.5.0 flutter_bloc: ^8.1.6 auto_route: ^9.2.2 @@ -41,12 +35,12 @@ dependencies: json_annotation: ^4.9.0 # Device & App Info - device_info_plus: ^11.1.0 - package_info_plus: ^8.1.0 + device_info_plus: ^11.1.1 + package_info_plus: ^8.1.1 # Persistence & Storage flutter_secure_storage: ^9.2.2 - shared_preferences: ^2.3.2 + shared_preferences: ^2.3.3 dev_dependencies: # Testing @@ -56,11 +50,11 @@ dev_dependencies: # Code Generation build_runner: ^2.4.13 freezed: ^2.5.7 - json_serializable: ^6.8.0 + json_serializable: ^6.9.0 theme_tailor: ^3.0.1 auto_route_generator: ^9.0.0 injectable_generator: ^2.6.2 - retrofit_generator: ^9.1.3 + retrofit_generator: ^9.1.5 # Linting & Code Quality monstarlab_lints: ^1.0.4