Closed WalterWoshid closed 2 years ago
Hi @WalterWoshid Thanks for reporting this issue.
What's the actual value of the wantsVerification
field of the exact model that you were querying?
Hi @HuiSF
The actual model does not exist. It should return an empty list.
@WalterWoshid could you provide the model schema and code example that you are testing with?
Here you go @HuiSF:
@WalterWoshid looking at the exception log, it seemed that the query actually got some data back, and the logic was trying to convert local DB data into model instance.
Have you written any data of UserProfile into by invoking Amplify.DataStore.save
?
Could you try to delete the test App, clean build and reinstall?
Also, is BankAccountType
another Model?
I will try to reproduce on my end in the meantime.
Are BankAccountType
and Status
Model or CustomType? (CustomType is not supported by 0.2.x)
@HuiSF Both are Enum Models
I am also receiving this exception when trying to save the model "UserProfile" and also this issue happens on initial app start: #802
Hi @WalterWoshid I couldn't reproduce this exact exception using the schema you provided in an Android emulator.
However, I did notice something wrong:
The attached exception log indicates that the logic in amplify-android was trying to convert wantsVerification
local DB value into Model field assuming its type as CustomType
instead of BOOLEAN
.
This is a known issue (identified with issue https://github.com/aws-amplify/amplify-flutter/issues/752). The fix has been merged into the release-candidate
branch. And available on the version 0.3.0-rc.3
. Please try to use this version to correct the behavior.
With the issue described above, boolean value is stored in local DB as TEXT
, therefore it must be a string to be passed into the convert function, however, the exception indicates that a NUMBER
values was passed. It looks like it got the value from a wrong column (there must be some data was written into the local DB of the App) This happens usually when local DB table schema is out of sync with the model schema
The latest exception logs indicates the initial sync might have been interrupted, the metadata was not written into the local DB correctly. This may be caused by 2. (similar issues in amplify-android repo)
Here's my suggestion for next step:
0.3.0-rc.3
version (please refer to the DataStore changelogs for migration)flutter clean
then rebuild the AppHi @HuiSF
I don't know when this happened, but regenerating the models with "amplify codegen models" gives me this error
Missing concrete implementations of 'getter ModelProviderInterface.customTypeSchemas' and 'setter ModelProviderInterface.customTypeSchemas'.
Try implementing the missing methods, or make the class abstract
even though we don't use any custom types.
Adding this line to the ModelProvider: List<ModelSchema> customTypeSchemas = [];
seems to fix this issue.
Sadly when I try to execute Amplify.DataStore.save(), it does not save the model, but executes the code as if nothing is wrong.
I noticed this error which was hidden in the console:
I/amplify:flutter:datastore( 9635): Unhandled DataStoreHubEvent: outboxMutationFailed
I/amplify:flutter:datastore( 9635): OutboxMutationFailedEvent{errorType=UNKNOWN, operation=CREATE, modelName=UserProfile, model=SerializedModel{id='326225d2-11b5-4af7-8978-6ed3b36c7ddb', serializedData={onboarded=null, lastName=null, zipCode=null, militaryRank=null, birthdate=null, city=null, bankName=null, bankOwner=null, boxAddress=null, createdAt=null, bankUserAddress=null, id=326225d2-11b5-4af7-8978-6ed3b36c7ddb, adminVerified=INREVIEW, bankUserFullName=null, postOfficeAddress=null, accountNumber=null, firstName=null, wantsVerification=null, bankAccountType=null, cognitoUserID=dc759375-f79c-465e-b6ae-14dc9aac322c, rejectedReason=null, cognitoFileID=null, iban=null, middleName=null, fullStreetAddress=null, bic=null, typename=UserProfile}, modelName=UserProfile}}
Hi @HuiSF
I don't know when this happened, but regenerating the models with "amplify codegen models" gives me this error
Missing concrete implementations of 'getter ModelProviderInterface.customTypeSchemas' and 'setter ModelProviderInterface.customTypeSchemas'. Try implementing the missing methods, or make the class abstract
even though we don't use any custom types.
Adding this line to the ModelProvider:
List<ModelSchema> customTypeSchemas = [];
seems to fix this issue.
Hi @WalterWoshid if you are using the RC, please take a look at the DataStore change log, the RC require a special version of CLI, when you use this version of CLI, this error won't happen. Sorry I didn't clarify.
The Log4j error doesn't have any impact on model operation. But good to know you can fix it, I'll see if I can ask amplify-android to fix the error.
Regarding the failure on mutation out box, do you see any Java exception around it?
Hi @HuiSF
Thanks for the clarification about the CLI
Sadly there is no java exception around it
We finally fixed the bug. Apparently it was a second index on the UserProfile model which we had, added with NOSQL. I am not quite sure how it works, but removing it made it work again.
It has something to do with this article: https://docs.amplify.aws/cli/migration/transformer-migration/#changes-that-amplify-cli-will-auto-migrate-for-you
Anyways, thank you so much for you help! @HuiSF
Describe the bug Querying for a model which has a nullable boolean returns a DataStoreException. The model does not exist yet.
Checking the dynamoDB database shows no missing values which are not true|false|null.
Exception Message
``` E/amplify:flutter:datastore( 8511): Query operation failed. E/amplify:flutter:datastore( 8511): DataStoreException{message=Error in querying the model., cause=DataStoreException{message=Error converting field "wantsVerification" from model "UserProfile", cause=java.lang.IllegalStateException: Expected a boolean but was NUMBER at line 1 column 2 path $, recoverySuggestion=There is a possibility that there is a bug if this error persists. Please take a look at E/amplify:flutter:datastore( 8511): https://github.com/aws-amplify/amplify-android/issues to see if there are any existing issues that E/amplify:flutter:datastore( 8511): match your scenario, and file an issue with the details of the bug if there isn't.}, recoverySuggestion=See attached exception for details.} E/amplify:flutter:datastore( 8511): at com.amplifyframework.datastore.storage.sqlite.SQLiteStorageAdapter.lambda$query$5$SQLiteStorageAdapter(SQLiteStorageAdapter.java:448) E/amplify:flutter:datastore( 8511): at com.amplifyframework.datastore.storage.sqlite.-$$Lambda$SQLiteStorageAdapter$YrR7B1Rj3JmC_omOKlzMTn0U5hM.run(Unknown Source:10) E/amplify:flutter:datastore( 8511): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462) E/amplify:flutter:datastore( 8511): at java.util.concurrent.FutureTask.run(FutureTask.java:266) E/amplify:flutter:datastore( 8511): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) E/amplify:flutter:datastore( 8511): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) E/amplify:flutter:datastore( 8511): at java.lang.Thread.run(Thread.java:923) E/amplify:flutter:datastore( 8511): Caused by: DataStoreException{message=Error converting field "wantsVerification" from model "UserProfile", cause=java.lang.IllegalStateException: Expected a boolean but was NUMBER at line 1 column 2 path $, recoverySuggestion=There is a possibility that there is a bug if this error persists. Please take a look at E/amplify:flutter:datastore( 8511): https://github.com/aws-amplify/amplify-android/issues to see if there are any existing issues that E/amplify:flutter:datastore( 8511): match your scenario, and file an issue with the details of the bug if there isn't.} E/amplify:flutter:datastore( 8511): at com.amplifyframework.datastore.storage.sqlite.SQLiteModelFieldTypeConverter.convertValueFromSource(SQLiteModelFieldTypeConverter.java:194) E/amplify:flutter:datastore( 8511): at com.amplifyframework.datastore.storage.sqlite.SQLiteModelFieldTypeConverter.buildMapForModel(SQLiteModelFieldTypeConverter.java:129) E/amplify:flutter:datastore( 8511): at com.amplifyframework.datastore.storage.sqlite.SQLiteStorageAdapter.lambda$query$5$SQLiteStorageAdapter(SQLiteStorageAdapter.java:441) E/amplify:flutter:datastore( 8511): ... 6 more E/amplify:flutter:datastore( 8511): Caused by: java.lang.IllegalStateException: Expected a boolean but was NUMBER at line 1 column 2 path $ E/amplify:flutter:datastore( 8511): at com.google.gson.stream.JsonReader.nextBoolean(JsonReader.java:854) E/amplify:flutter:datastore( 8511): at com.google.gson.internal.bind.TypeAdapters$3.read(TypeAdapters.java:144) E/amplify:flutter:datastore( 8511): at com.google.gson.internal.bind.TypeAdapters$3.read(TypeAdapters.java:133) E/amplify:flutter:datastore( 8511): at com.google.gson.TypeAdapter.fromJson(TypeAdapter.java:260) E/amplify:flutter:datastore( 8511): at com.google.gson.TypeAdapter.fromJson(TypeAdapter.java:273) E/amplify:flutter:datastore( 8511): at com.amplifyframework.datastore.storage.sqlite.SQLiteModelFieldTypeConverter.convertCustomTypeToTarget(SQLiteModelFieldTypeConverter.java:217) E/amplify:flutter:datastore( 8511): at com.amplifyframework.datastore.storage.sqlite.SQLiteModelFieldTypeConverter.convertValueFromSource(SQLiteModelFieldTypeConverter.java:169) E/amplify:flutter:datastore( 8511): ... 8 more ```Output of
``` [√] Flutter (Channel stable, 2.5.1, on Microsoft Windows [Version 10.0.19043.1348], locale de-DE) • Flutter version 2.5.1 at C:\Flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision ffb2ecea52 (3 months ago), 2021-09-17 15:26:33 -0400 • Engine revision b3af521a05 • Dart version 2.14.2 [√] Android toolchain - develop for Android devices (Android SDK version 31.0.0) • Android SDK at C:\Android\Sdk • Platform android-31, build-tools 31.0.0 • ANDROID_SDK_ROOT = C:\Android\Sdk • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189) • All Android licenses accepted. [√] Chrome - develop for the web • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe [√] Android Studio (version 2020.3) • Android Studio at C:\Program Files\Android\Android Studio • Flutter plugin can be installed from: https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189) [√] VS Code (version 1.62.3) • VS Code at C:\Users\Walter\AppData\Local\Programs\Microsoft VS Code • Flutter extension can be installed from: https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter [√] Connected device (3 available) • Android SDK built for x86 (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator) • Chrome (web) • chrome • web-javascript • Google Chrome 96.0.4664.45 • Edge (web) • edge • web-javascript • Microsoft Edge 96.0.1054.53 • No issues found! ```flutter doctor -v
Dependencies (
``` # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: amplify_analytics_plugin_interface: dependency: transitive description: name: amplify_analytics_plugin_interface url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_api: dependency: "direct main" description: name: amplify_api url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_api_plugin_interface: dependency: transitive description: name: amplify_api_plugin_interface url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_auth_cognito: dependency: "direct main" description: name: amplify_auth_cognito url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_auth_plugin_interface: dependency: transitive description: name: amplify_auth_plugin_interface url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_core: dependency: transitive description: name: amplify_core url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_datastore: dependency: "direct main" description: name: amplify_datastore url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_datastore_plugin_interface: dependency: transitive description: name: amplify_datastore_plugin_interface url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_flutter: dependency: "direct main" description: name: amplify_flutter url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_storage_plugin_interface: dependency: transitive description: name: amplify_storage_plugin_interface url: "https://pub.dartlang.org" source: hosted version: "0.2.10" amplify_storage_s3: dependency: "direct main" description: name: amplify_storage_s3 url: "https://pub.dartlang.org" source: hosted version: "0.2.10" android_path_provider: dependency: "direct main" description: name: android_path_provider url: "https://pub.dartlang.org" source: hosted version: "0.3.0" archive: dependency: transitive description: name: archive url: "https://pub.dartlang.org" source: hosted version: "3.1.2" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted version: "2.2.0" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted version: "2.8.1" bloc: dependency: transitive description: name: bloc url: "https://pub.dartlang.org" source: hosted version: "7.2.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted version: "2.1.0" cached_network_image: dependency: "direct main" description: name: cached_network_image url: "https://pub.dartlang.org" source: hosted version: "3.1.0" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface url: "https://pub.dartlang.org" source: hosted version: "1.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web url: "https://pub.dartlang.org" source: hosted version: "1.0.1" camera: dependency: "direct main" description: name: camera url: "https://pub.dartlang.org" source: hosted version: "0.9.4+5" camera_platform_interface: dependency: transitive description: name: camera_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.1.1" camera_web: dependency: transitive description: name: camera_web url: "https://pub.dartlang.org" source: hosted version: "0.2.1+1" characters: dependency: transitive description: name: characters url: "https://pub.dartlang.org" source: hosted version: "1.1.0" charcode: dependency: transitive description: name: charcode url: "https://pub.dartlang.org" source: hosted version: "1.3.1" clock: dependency: transitive description: name: clock url: "https://pub.dartlang.org" source: hosted version: "1.1.0" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted version: "1.15.0" cross_file: dependency: transitive description: name: cross_file url: "https://pub.dartlang.org" source: hosted version: "0.3.1+4" crypto: dependency: transitive description: name: crypto url: "https://pub.dartlang.org" source: hosted version: "3.0.1" cupertino_icons: dependency: "direct main" description: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted version: "1.0.3" date_time_format: dependency: transitive description: name: date_time_format url: "https://pub.dartlang.org" source: hosted version: "2.0.1" dbus: dependency: transitive description: name: dbus url: "https://pub.dartlang.org" source: hosted version: "0.5.6" equatable: dependency: "direct main" description: name: equatable url: "https://pub.dartlang.org" source: hosted version: "2.0.3" fake_async: dependency: transitive description: name: fake_async url: "https://pub.dartlang.org" source: hosted version: "1.2.0" ffi: dependency: transitive description: name: ffi url: "https://pub.dartlang.org" source: hosted version: "1.1.2" file: dependency: transitive description: name: file url: "https://pub.dartlang.org" source: hosted version: "6.1.2" file_picker: dependency: "direct main" description: name: file_picker url: "https://pub.dartlang.org" source: hosted version: "4.1.6" file_saver: dependency: "direct main" description: name: file_saver url: "https://pub.dartlang.org" source: hosted version: "0.0.10" flutter: dependency: "direct main" description: flutter source: sdk version: "0.0.0" flutter_bloc: dependency: "direct main" description: name: flutter_bloc url: "https://pub.dartlang.org" source: hosted version: "7.3.3" flutter_blurhash: dependency: transitive description: name: flutter_blurhash url: "https://pub.dartlang.org" source: hosted version: "0.6.0" flutter_cache_manager: dependency: transitive description: name: flutter_cache_manager url: "https://pub.dartlang.org" source: hosted version: "3.1.2" flutter_launcher_icons: dependency: "direct dev" description: name: flutter_launcher_icons url: "https://pub.dartlang.org" source: hosted version: "0.9.2" flutter_local_notifications: dependency: "direct main" description: name: flutter_local_notifications url: "https://pub.dartlang.org" source: hosted version: "9.1.0" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux url: "https://pub.dartlang.org" source: hosted version: "0.3.0" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface url: "https://pub.dartlang.org" source: hosted version: "5.0.0" flutter_pdfview: dependency: "direct main" description: name: flutter_pdfview url: "https://pub.dartlang.org" source: hosted version: "1.2.1" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle url: "https://pub.dartlang.org" source: hosted version: "2.0.2" 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" http: dependency: transitive description: name: http url: "https://pub.dartlang.org" source: hosted version: "0.13.3" http_parser: dependency: transitive description: name: http_parser url: "https://pub.dartlang.org" source: hosted version: "4.0.0" image: dependency: transitive description: name: image url: "https://pub.dartlang.org" source: hosted version: "3.0.2" image_cropping: dependency: "direct main" description: name: image_cropping url: "https://pub.dartlang.org" source: hosted version: "0.0.7" image_picker: dependency: "direct main" description: name: image_picker url: "https://pub.dartlang.org" source: hosted version: "0.8.3" image_picker_for_web: dependency: transitive description: name: image_picker_for_web url: "https://pub.dartlang.org" source: hosted version: "2.1.2" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.2.0" intl: dependency: "direct main" description: name: intl url: "https://pub.dartlang.org" source: hosted version: "0.17.0" js: dependency: transitive description: name: js url: "https://pub.dartlang.org" source: hosted version: "0.6.3" lint: dependency: "direct main" description: name: lint url: "https://pub.dartlang.org" source: hosted version: "1.7.2" loader_overlay: dependency: "direct main" description: name: loader_overlay url: "https://pub.dartlang.org" source: hosted version: "2.0.2+1" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted version: "0.12.10" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted version: "1.7.0" nested: dependency: transitive description: name: nested url: "https://pub.dartlang.org" source: hosted version: "1.0.0" octo_image: dependency: transitive description: name: octo_image url: "https://pub.dartlang.org" source: hosted version: "1.0.0+1" open_file: dependency: "direct main" description: name: open_file url: "https://pub.dartlang.org" source: hosted version: "3.2.1" package_info_plus: dependency: "direct main" description: name: package_info_plus url: "https://pub.dartlang.org" source: hosted version: "1.0.6" package_info_plus_linux: dependency: transitive description: name: package_info_plus_linux url: "https://pub.dartlang.org" source: hosted version: "1.0.3" package_info_plus_macos: dependency: transitive description: name: package_info_plus_macos url: "https://pub.dartlang.org" source: hosted version: "1.1.1" package_info_plus_platform_interface: dependency: transitive description: name: package_info_plus_platform_interface url: "https://pub.dartlang.org" source: hosted version: "1.0.2" package_info_plus_web: dependency: transitive description: name: package_info_plus_web url: "https://pub.dartlang.org" source: hosted version: "1.0.4" package_info_plus_windows: dependency: transitive description: name: package_info_plus_windows url: "https://pub.dartlang.org" source: hosted version: "1.0.3" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted version: "1.8.0" path_provider: dependency: "direct main" description: name: path_provider url: "https://pub.dartlang.org" source: hosted version: "2.0.2" path_provider_linux: dependency: transitive description: name: path_provider_linux url: "https://pub.dartlang.org" source: hosted version: "2.0.2" path_provider_macos: dependency: transitive description: name: path_provider_macos url: "https://pub.dartlang.org" source: hosted version: "2.0.2" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.0.1" path_provider_windows: dependency: transitive description: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted version: "2.0.3" pedantic: dependency: transitive description: name: pedantic url: "https://pub.dartlang.org" source: hosted version: "1.11.1" permission_handler: dependency: "direct main" description: name: permission_handler url: "https://pub.dartlang.org" source: hosted version: "8.1.4+2" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface url: "https://pub.dartlang.org" source: hosted version: "3.6.1" petitparser: dependency: transitive description: name: petitparser url: "https://pub.dartlang.org" source: hosted version: "4.1.0" photo_view: dependency: "direct main" description: name: photo_view url: "https://pub.dartlang.org" source: hosted version: "0.13.0" pin_code_fields: dependency: "direct main" description: name: pin_code_fields url: "https://pub.dartlang.org" source: hosted version: "7.3.0" platform: dependency: transitive description: name: platform url: "https://pub.dartlang.org" source: hosted version: "3.0.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.0.1" process: dependency: transitive description: name: process url: "https://pub.dartlang.org" source: hosted version: "4.2.3" provider: dependency: "direct main" description: name: provider url: "https://pub.dartlang.org" source: hosted version: "6.0.0" pull_to_refresh: dependency: "direct main" description: name: pull_to_refresh url: "https://pub.dartlang.org" source: hosted version: "2.0.0" quiver: dependency: "direct main" description: name: quiver url: "https://pub.dartlang.org" source: hosted version: "3.0.1" rxdart: dependency: transitive description: name: rxdart url: "https://pub.dartlang.org" source: hosted version: "0.27.2" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.99" source_span: dependency: transitive description: name: source_span url: "https://pub.dartlang.org" source: hosted version: "1.8.1" sqflite: dependency: transitive description: name: sqflite url: "https://pub.dartlang.org" source: hosted version: "2.0.0+4" sqflite_common: dependency: transitive description: name: sqflite_common url: "https://pub.dartlang.org" source: hosted version: "2.0.1+1" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted version: "2.1.0" stream_transform: dependency: transitive description: name: stream_transform url: "https://pub.dartlang.org" source: hosted version: "2.0.0" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted version: "1.1.0" synchronized: dependency: transitive description: name: synchronized url: "https://pub.dartlang.org" source: hosted version: "3.0.0" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted version: "1.2.0" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted version: "0.4.2" timezone: dependency: transitive description: name: timezone url: "https://pub.dartlang.org" source: hosted version: "0.8.0" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted version: "1.3.0" uni_links: dependency: "direct main" description: name: uni_links url: "https://pub.dartlang.org" source: hosted version: "0.5.1" uni_links_platform_interface: dependency: transitive description: name: uni_links_platform_interface url: "https://pub.dartlang.org" source: hosted version: "1.0.0" uni_links_web: dependency: transitive description: name: uni_links_web url: "https://pub.dartlang.org" source: hosted version: "0.1.0" url_launcher: dependency: "direct main" description: name: url_launcher url: "https://pub.dartlang.org" source: hosted version: "6.0.10" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted version: "2.0.2" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted version: "2.0.2" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.0.4" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted version: "2.0.4" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted version: "2.0.2" uuid: dependency: transitive description: name: uuid url: "https://pub.dartlang.org" source: hosted version: "3.0.4" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted version: "2.1.0" win32: dependency: transitive description: name: win32 url: "https://pub.dartlang.org" source: hosted version: "2.2.5" xdg_directories: dependency: transitive description: name: xdg_directories url: "https://pub.dartlang.org" source: hosted version: "0.2.0" xml: dependency: transitive description: name: xml url: "https://pub.dartlang.org" source: hosted version: "5.1.2" yaml: dependency: transitive description: name: yaml url: "https://pub.dartlang.org" source: hosted version: "3.1.0" sdks: dart: ">=2.14.0 <3.0.0" flutter: ">=2.5.0" ```pubspec.lock
)