feat: Add receipt import functionality with file upload and parsing

- Implemented receipt file upload in ImportRepository with multipart request handling.
- Created ParsedReceiptItem model for parsed receipt data.
- Added ReceiptImportTab for user interface to upload and review receipts.
- Updated ImportScreen to include the new ReceiptImportTab alongside RecipeImportTab.
- Introduced flutter_bootstrap.js and index.html for web app initialization.
- Added wimp.wasm and flutter.js for enhanced web performance and capabilities.
This commit is contained in:
Nils-Johan Gynther
2026-04-23 19:24:53 +02:00
parent 108c633d0e
commit cd4274575e
44 changed files with 63900 additions and 657 deletions
@@ -6,7 +6,7 @@
// @dart = 2.13
// ignore_for_file: type=lint
import 'package:file_picker/_internal/file_picker_web.dart';
import 'package:file_picker/src/platform/web/file_picker_web.dart';
import 'package:shared_preferences_web/shared_preferences_web.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
@@ -6,9 +6,7 @@
// @dart = 3.3
import 'dart:io'; // flutter_ignore: dart_io_import.
import 'package:file_picker/file_picker.dart' as file_picker;
import 'package:shared_preferences_android/shared_preferences_android.dart' as shared_preferences_android;
import 'package:file_picker/file_picker.dart' as file_picker;
import 'package:shared_preferences_foundation/shared_preferences_foundation.dart' as shared_preferences_foundation;
import 'package:file_picker/file_picker.dart' as file_picker;
import 'package:path_provider_linux/path_provider_linux.dart' as path_provider_linux;
@@ -25,15 +23,6 @@ class _PluginRegistrant {
@pragma('vm:entry-point')
static void register() {
if (Platform.isAndroid) {
try {
file_picker.FilePickerIO.registerWith();
} catch (err) {
print(
'`file_picker` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
shared_preferences_android.SharedPreferencesAndroid.registerWith();
} catch (err) {
@@ -44,15 +33,6 @@ class _PluginRegistrant {
}
} else if (Platform.isIOS) {
try {
file_picker.FilePickerIO.registerWith();
} catch (err) {
print(
'`file_picker` threw an error: $err. '
'The app may not function as expected until you remove this plugin from pubspec.yaml'
);
}
try {
shared_preferences_foundation.SharedPreferencesFoundation.registerWith();
} catch (err) {
@@ -0,0 +1 @@
{"version":2,"files":[{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_sv.dart","hash":"f1e13c0f9c90ec81955912c7df8a2430"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\l10n.yaml","hash":"3a6f56d787f3093703fe91c15fc15342"},{"path":"C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\web.dart","hash":"790d5e3c840d25a312d1b8a625f34500"},{"path":"C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\bin\\cache\\engine.stamp","hash":"44f9d05c1ceacb7f1911501881fdad84"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\app_sv.arb","hash":"24892b1e0a97f7e262e95bec62340fad"},{"path":"C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\native_assets.dart","hash":"f78c405bcece3968277b212042da9ed6"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\main.dart","hash":"a45a5a08a75f55e5a5f771de1ed16f41"},{"path":"C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\localizations.dart","hash":"33a276900ad78ff1cd267a3483f69235"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_en.dart","hash":"e6e1e4bddc2ee4d8ee8385d6eea4e3c6"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\dart_build_result.json","hash":"599fc661078b15e1e46c169dc3e2408a"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\build\\web\\flutter_bootstrap.js","hash":"d3d625dad1ff440d5b846a0c57755198"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\app_en.arb","hash":"e6bd7c70391c9b7e84f8d1c6d59b6638"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\package_config.json","hash":"7502efdbbd009dd6f44e829774232f31"},{"path":"C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations.dart","hash":"7110f582493fdc56442a8e9e76ccf71d"}]}
@@ -0,0 +1 @@
{"inputs":["C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\bin\\cache\\engine.stamp","C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\bin\\cache\\engine.stamp","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\main.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\package_config.json"],"outputs":[],"buildKey":"{\"optimizationLevel\":null,\"webRenderer\":\"skwasm\",\"StripWasm\":true,\"minify\":null,\"dryRun\":true,\"SourceMaps\":false}"}
@@ -0,0 +1 @@
C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\dart_build_result.json:
@@ -0,0 +1 @@
{"inputs":["C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\native_assets.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\package_config.json"],"outputs":["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\dart_build_result.json","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\dart_build_result.json"]}
@@ -0,0 +1 @@
{"build_start":"2026-04-23T19:22:42.204321","build_end":"2026-04-23T19:22:42.204321","dependencies":[],"code_assets":[],"data_assets":[]}
@@ -0,0 +1 @@
{"inputs":["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\app_en.arb","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\app_sv.arb"],"outputs":["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_en.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_sv.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations.dart"]}
@@ -0,0 +1 @@
C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_en.dart C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_sv.dart C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations.dart: C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\l10n.yaml C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\app_en.arb C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\app_sv.arb
@@ -0,0 +1 @@
{"inputs":["C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\localizations.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\l10n.yaml","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\app_en.arb","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\app_sv.arb"],"outputs":["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_en.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_sv.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations.dart"]}
@@ -0,0 +1,30 @@
// @dart=3.3
// Flutter web bootstrap script for package:recipe_flutter/main.dart.
//
// Generated file. Do not edit.
//
// ignore_for_file: type=lint
import 'dart:ui_web' as ui_web;
import 'dart:async';
import 'package:recipe_flutter/main.dart' as entrypoint;
import 'web_plugin_registrant.dart' as pluginRegistrant;
typedef _UnaryFunction = dynamic Function(List<String> args);
typedef _NullaryFunction = dynamic Function();
Future<void> main() async {
await ui_web.bootstrapEngine(
runApp: () {
if (entrypoint.main is _UnaryFunction) {
return (entrypoint.main as _UnaryFunction)(<String>[]);
}
return (entrypoint.main as _NullaryFunction)();
},
registerPlugins: () {
pluginRegistrant.registerPlugins();
},
);
}
@@ -0,0 +1 @@
["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\build\\web\\*\\index.html","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\build\\web\\flutter_bootstrap.js","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_en.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations_sv.dart","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\lib\\l10n\\generated\\app_localizations.dart"]
@@ -0,0 +1 @@
{"inputs":["C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\packages\\flutter_tools\\lib\\src\\build_system\\targets\\web.dart"],"outputs":["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\main.dart"]}
@@ -0,0 +1,18 @@
// Flutter web plugin registrant file.
//
// Generated file. Do not edit.
//
// @dart = 2.13
// ignore_for_file: type=lint
import 'package:file_picker/src/platform/web/file_picker_web.dart';
import 'package:shared_preferences_web/shared_preferences_web.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
void registerPlugins([final Registrar? pluginRegistrar]) {
final Registrar registrar = pluginRegistrar ?? webPluginRegistrar;
FilePickerWeb.registerWith(registrar);
SharedPreferencesPlugin.registerWith(registrar);
registrar.registerMessageHandler();
}
@@ -0,0 +1 @@
{"inputs":["C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\bin\\cache\\engine.stamp"],"outputs":["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\flutter.js","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\canvaskit.js","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\canvaskit.js.symbols","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\canvaskit.wasm","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\chromium\\canvaskit.js","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\chromium\\canvaskit.js.symbols","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\chromium\\canvaskit.wasm","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\skwasm.js","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\skwasm.js.symbols","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\skwasm.wasm","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\skwasm_heavy.js","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\skwasm_heavy.js.symbols","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\skwasm_heavy.wasm","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\wimp.js","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\wimp.js.symbols","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\.dart_tool\\flutter_build\\f8c96b9ba70d270e1df926aec2a1e154\\canvaskit\\wimp.wasm"]}
@@ -0,0 +1 @@
{"inputs":["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\web\\*\\index.html","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\web\\flutter_bootstrap.js","C:\\Users\\Nils-JohanGynther\\AppData\\Local\\Programs\\flutter\\bin\\cache\\engine.stamp"],"outputs":["C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\build\\web\\*\\index.html","C:\\Users\\Nils-JohanGynther\\dev\\recipe-app\\flutter\\build\\web\\flutter_bootstrap.js"],"buildKey":"[{\"compileTarget\":\"dart2js\",\"renderer\":\"canvaskit\",\"mainJsPath\":\"main.dart.js\"},{}]"}
+113 -11
View File
@@ -79,12 +79,24 @@
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "cli_config",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/cli_config-0.2.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "clock",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/clock-1.1.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "code_builder",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/code_builder-4.11.1",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "collection",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/collection-1.19.1",
@@ -97,6 +109,12 @@
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "coverage",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/coverage-1.15.0",
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "cross_file",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/cross_file-0.3.5+2",
@@ -115,6 +133,12 @@
"packageUri": "lib/",
"languageVersion": "3.10"
},
{
"name": "dbus",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/dbus-0.7.12",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "fake_async",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/fake_async-1.3.3",
@@ -135,7 +159,7 @@
},
{
"name": "file_picker",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/file_picker-8.3.7",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/file_picker-11.0.2",
"packageUri": "lib/",
"languageVersion": "3.4"
},
@@ -153,9 +177,9 @@
},
{
"name": "flutter_lints",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_lints-4.0.0",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_lints-6.0.0",
"packageUri": "lib/",
"languageVersion": "3.1"
"languageVersion": "3.8"
},
{
"name": "flutter_localizations",
@@ -171,9 +195,9 @@
},
{
"name": "flutter_riverpod",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_riverpod-2.6.1",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/flutter_riverpod-3.3.1",
"packageUri": "lib/",
"languageVersion": "2.17"
"languageVersion": "3.7"
},
{
"name": "flutter_test",
@@ -187,6 +211,12 @@
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "frontend_server_client",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/frontend_server_client-4.0.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "glob",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/glob-2.1.3",
@@ -195,9 +225,9 @@
},
{
"name": "go_router",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/go_router-14.8.1",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/go_router-17.2.2",
"packageUri": "lib/",
"languageVersion": "3.4"
"languageVersion": "3.9"
},
{
"name": "graphs",
@@ -261,9 +291,9 @@
},
{
"name": "lints",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/lints-4.0.0",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/lints-6.1.0",
"packageUri": "lib/",
"languageVersion": "3.1"
"languageVersion": "3.8"
},
{
"name": "logging",
@@ -295,6 +325,18 @@
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "mockito",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/mockito-5.6.4",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "node_preamble",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/node_preamble-2.0.2",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "package_config",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/package_config-2.2.0",
@@ -325,6 +367,12 @@
"packageUri": "lib/",
"languageVersion": "3.2"
},
{
"name": "petitparser",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/petitparser-7.0.2",
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "platform",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/platform-3.1.6",
@@ -357,9 +405,9 @@
},
{
"name": "riverpod",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/riverpod-2.6.1",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/riverpod-3.2.1",
"packageUri": "lib/",
"languageVersion": "2.17"
"languageVersion": "3.7"
},
{
"name": "shared_preferences",
@@ -409,6 +457,18 @@
"packageUri": "lib/",
"languageVersion": "3.4"
},
{
"name": "shelf_packages_handler",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/shelf_packages_handler-3.0.2",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "shelf_static",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/shelf_static-1.1.3",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "shelf_web_socket",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/shelf_web_socket-3.0.0",
@@ -421,6 +481,24 @@
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "source_gen",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/source_gen-4.2.2",
"packageUri": "lib/",
"languageVersion": "3.9"
},
{
"name": "source_map_stack_trace",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/source_map_stack_trace-2.1.2",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "source_maps",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/source_maps-0.10.13",
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "source_span",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/source_span-1.10.2",
@@ -463,12 +541,24 @@
"packageUri": "lib/",
"languageVersion": "3.1"
},
{
"name": "test",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/test-1.30.0",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "test_api",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/test_api-0.7.10",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "test_core",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/test_core-0.6.16",
"packageUri": "lib/",
"languageVersion": "3.7"
},
{
"name": "typed_data",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/typed_data-1.4.0",
@@ -511,6 +601,12 @@
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "webkit_inspection_protocol",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/webkit_inspection_protocol-1.2.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "win32",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/win32-5.15.0",
@@ -523,6 +619,12 @@
"packageUri": "lib/",
"languageVersion": "3.3"
},
{
"name": "xml",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/xml-6.6.1",
"packageUri": "lib/",
"languageVersion": "3.8"
},
{
"name": "yaml",
"rootUri": "file:///C:/Users/Nils-JohanGynther/AppData/Local/Pub/Cache/hosted/pub.dev/yaml-3.1.3",
File diff suppressed because it is too large Load Diff