about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/flutter
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/flutter')
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix31
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/artifacts/hashes.nix75
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/default.nix37
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/flutter.nix34
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/lockfiles/stable/pubspec.lock.json847
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/copy-without-perms.patch (renamed from nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/copy-without-perms.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/deregister-pub-dependencies-artifact.patch (renamed from nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/deregister-pub-dependencies-artifact.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/disable-auto-update.patch (renamed from nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch)13
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/dont-validate-executable-location.patch (renamed from nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/dont-validate-executable-location.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/flutter-pub-dart-override.patch (renamed from nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/flutter-pub-dart-override.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/git-dir.patch (renamed from nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/override-host-platform.patch (renamed from nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/override-host-platform.patch)0
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/override-operating-system.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix48
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/update/get-dart-hashes.nix26
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/update/get-flutter.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix30
-rwxr-xr-xnixpkgs/pkgs/development/compilers/flutter/update/update.py339
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/versions/3_13/data.json901
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/versions/3_13/patches/disable-auto-update-shared.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/versions/3_16/data.json951
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/versions/3_16/patches/disable-auto-update-shared.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/wrapper.nix18
25 files changed, 2422 insertions, 982 deletions
diff --git a/nixpkgs/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix b/nixpkgs/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
index e0c1440a604f..0e1ce6e678cb 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
@@ -1,16 +1,22 @@
+# Schema:
+# ${flutterVersion}.${targetPlatform}.${hostPlatform}
+#
+# aarch64-darwin as a host is not yet supported.
+# https://github.com/flutter/flutter/issues/60118
 { lib
 , runCommand
 , xorg
 , cacert
 , unzip
 
-, platform
+, flutterPlatform
+, systemPlatform
 , flutter
 , hash
 }:
 
 let
-  platforms = [
+  flutterPlatforms = [
     "android"
     "ios"
     "web"
@@ -24,21 +30,34 @@ let
   flutter' = flutter.override {
     # Use a version of Flutter with just enough capabilities to download
     # artifacts.
-    supportedTargetPlatforms = [ ];
+    supportedTargetFlutterPlatforms = [ ];
+
+    # Modify flutter-tool's system platform in order to get the desired platform's hashes.
+    flutter = flutter.unwrapped.override {
+      flutterTools = flutter.unwrapped.tools.override {
+        inherit systemPlatform;
+      };
+    };
   };
 in
-runCommand "flutter-artifacts-${platform}"
+runCommand "flutter-artifacts-${flutterPlatform}-${systemPlatform}"
 {
   nativeBuildInputs = [ xorg.lndir flutter' unzip ];
 
   NIX_FLUTTER_TOOLS_VM_OPTIONS = "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt";
+  NIX_FLUTTER_OPERATING_SYSTEM = {
+    "x86_64-linux" = "linux";
+    "aarch64-linux" = "linux";
+    "x86_64-darwin" = "macos";
+    "aarch64-darwin" = "macos";
+  }.${systemPlatform};
 
   outputHash = hash;
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
 
   passthru = {
-    inherit platform;
+    inherit flutterPlatform;
   };
 } ''
   export FLUTTER_ROOT="$NIX_BUILD_TOP"
@@ -46,7 +65,7 @@ runCommand "flutter-artifacts-${platform}"
   rm -rf "$FLUTTER_ROOT/bin/cache"
   mkdir "$FLUTTER_ROOT/bin/cache"
 
-  HOME="$(mktemp -d)" flutter precache -v '--${platform}' ${builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove platform platforms))}
+  HOME="$(mktemp -d)" flutter precache -v '--${flutterPlatform}' ${builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove flutterPlatform flutterPlatforms))}
   rm -rf "$FLUTTER_ROOT/bin/cache/lockfile"
   find "$FLUTTER_ROOT" -type l -lname '${flutter'}/*' -delete
 
diff --git a/nixpkgs/pkgs/development/compilers/flutter/artifacts/hashes.nix b/nixpkgs/pkgs/development/compilers/flutter/artifacts/hashes.nix
deleted file mode 100644
index 551975acf662..000000000000
--- a/nixpkgs/pkgs/development/compilers/flutter/artifacts/hashes.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-# NOTICE: When updating these hashes, make sure that no additional platforms
-# have been added to the `flutter precache` CLI. If any have, they may be
-# included in every derivation, unless they are also added to the platform list
-# in fetch-artifacts.nix.
-#
-# The known arguments are as follows:
-# $ flutter precache --help --verbose
-# Usage: flutter precache [arguments]
-# -h, --help                              Print this usage information.
-# -a, --all-platforms                     Precache artifacts for all host platforms.
-# -f, --force                             Force re-downloading of artifacts.
-#     --[no-]android                      Precache artifacts for Android development.
-#     --[no-]android_gen_snapshot         Precache gen_snapshot for Android development.
-#     --[no-]android_maven                Precache Gradle dependencies for Android development.
-#     --[no-]android_internal_build       Precache dependencies for internal Android development.
-#     --[no-]ios                          Precache artifacts for iOS development.
-#     --[no-]web                          Precache artifacts for web development.
-#     --[no-]linux                        Precache artifacts for Linux desktop development.
-#     --[no-]windows                      Precache artifacts for Windows desktop development.
-#     --[no-]macos                        Precache artifacts for macOS desktop development.
-#     --[no-]fuchsia                      Precache artifacts for Fuchsia development.
-#     --[no-]universal                    Precache artifacts required for any development platform.
-#                                         (defaults to on)
-#     --[no-]flutter_runner               Precache the flutter runner artifacts.
-#     --[no-]use-unsigned-mac-binaries    Precache the unsigned macOS binaries when available.
-
-# Schema:
-# ${flutterVersion}.${targetPlatform}.${hostPlatform}
-#
-# aarch64-darwin as a host is not yet supported.
-# https://github.com/flutter/flutter/issues/60118
-{
-  "3.13.8" = {
-    android = {
-      x86_64-linux = "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y=";
-      aarch64-linux = "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y=";
-      x86_64-darwin = "sha256-v/6/GTj7732fEOIgSaoM00yaw2qNwOMuvbuoCvii7vQ=";
-    };
-    fuchsia = {
-      x86_64-linux = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=";
-      aarch64-linux = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=";
-      x86_64-darwin = "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=";
-    };
-    ios = {
-      x86_64-linux = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=";
-      aarch64-linux = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=";
-      x86_64-darwin = "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=";
-    };
-    linux = {
-      x86_64-linux = "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs=";
-      aarch64-linux = "sha256-drGHsuJoOCLqrhVrXczqJRCOtpeWVlqdWW0OSMS/l5M=";
-      x86_64-darwin = "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs=";
-    };
-    macos = {
-      x86_64-linux = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=";
-      aarch64-linux = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=";
-      x86_64-darwin = "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=";
-    };
-    universal = {
-      x86_64-linux = "sha256-wATt1UPjo/fh7RFO1vvcUAdo0dMAaaOUIuzYodsM0v0=";
-      aarch64-linux = "sha256-Z9bszNaIpCccG7OfvE5WFsw36dITiyCQAZ6p29+Yq68=";
-      x86_64-darwin = "sha256-qN5bAXRfQ78TWF3FLBIxWzUB5y5OrZVQTEilY5J/+2k=";
-    };
-    web = {
-      x86_64-linux = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=";
-      aarch64-linux = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=";
-      x86_64-darwin = "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=";
-    };
-    windows = {
-      x86_64-linux = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=";
-      aarch64-linux = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=";
-      x86_64-darwin = "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=";
-    };
-  };
-}
diff --git a/nixpkgs/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix b/nixpkgs/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix
index 9714d25c6f9b..9309c6429828 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/artifacts/prepare-artifacts.nix
@@ -20,7 +20,7 @@
     runHook postInstall
   '';
 }).overrideAttrs (
-  if builtins.pathExists ./overrides/${src.platform}.nix
-  then callPackage ./overrides/${src.platform}.nix { }
+  if builtins.pathExists ./overrides/${src.flutterPlatform}.nix
+  then callPackage ./overrides/${src.flutterPlatform}.nix { }
   else ({ ... }: { })
 )
diff --git a/nixpkgs/pkgs/development/compilers/flutter/default.nix b/nixpkgs/pkgs/development/compilers/flutter/default.nix
index 382e9143810a..29d5d415b8a0 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/default.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/default.nix
@@ -4,7 +4,7 @@ let
   wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; };
   getPatches = dir:
     let files = builtins.attrNames (builtins.readDir dir);
-    in map (f: dir + ("/" + f)) files;
+    in if (builtins.pathExists dir) then map (f: dir + ("/" + f)) files else [ ];
   mkFlutter =
     { version
     , engineVersion
@@ -13,10 +13,11 @@ let
     , dartHash
     , patches
     , pubspecLock
+    , artifactHashes
     }:
     let
       args = {
-        inherit version engineVersion patches pubspecLock;
+        inherit version engineVersion patches pubspecLock artifactHashes;
 
         dart = dart.override {
           version = dartVersion;
@@ -53,28 +54,24 @@ let
         buildFlutterApplication = callPackage ../../../build-support/flutter {
           # Package a minimal version of Flutter that only uses Linux desktop release artifacts.
           flutter = (wrapFlutter (mkCustomFlutter args)).override {
-            supportedTargetPlatforms = [ "universal" "linux" ];
+            supportedTargetFlutterPlatforms = [ "universal" "linux" ];
           };
         };
       };
     });
 
-  flutter3Patches = getPatches ./patches/flutter3;
+  flutterVersions = lib.mapAttrs'
+    (version: _:
+      let
+        versionDir = ./versions + "/${version}";
+        data = lib.importJSON (versionDir + "/data.json");
+      in
+      lib.nameValuePair "v${version}" (wrapFlutter (mkFlutter ({
+        patches = (getPatches ./patches) ++ (getPatches (versionDir + "/patches"));
+      } // data))))
+    (builtins.readDir ./versions);
 in
-{
-  inherit wrapFlutter;
-  stable = mkFlutter {
-    version = "3.13.8";
-    engineVersion = "767d8c75e898091b925519803830fc2721658d07";
-    dartVersion = "3.1.4";
-    dartHash = {
-      x86_64-linux = "sha256-42wrqzjRcFDWw2aEY6+/faX+QE9PA8FmRWP4M/NkgBE=";
-      aarch64-linux = "sha256-/tWWWwTOgXHbwzotc7ZDDZa8+cbX6NODGYrjLK9gPPg=";
-      x86_64-darwin = "sha256-BchKowKd6BscVuk/dXibcQzdFkW9//GDfll77mHEI4M=";
-      aarch64-darwin = "sha256-9yrx09vYrOTmdqkfJI7mfh7DI1/rg67tPlf82m5+iKI=";
-    };
-    flutterHash = "sha256-00G030FvZZTsdf9ruFs9jdIHcC5h+xpp4NlmL64qVZA=";
-    patches = flutter3Patches;
-    pubspecLock = lib.importJSON ./lockfiles/stable/pubspec.lock.json;
-  };
+flutterVersions // {
+  stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames flutterVersions))};
+  inherit wrapFlutter mkFlutter;
 }
diff --git a/nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix b/nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix
index 4435c8fb6c76..55fee5630c16 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/flutter-tools.nix
@@ -1,4 +1,4 @@
-{ hostPlatform
+{ systemPlatform
 , buildDartApplication
 , git
 , which
@@ -35,7 +35,7 @@ buildDartApplication.override { inherit dart; } rec {
   '';
 
   dartEntryPoints."flutter_tools.snapshot" = "bin/flutter_tools.dart";
-  dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${hostPlatform.system}" ];
+  dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${systemPlatform}" ];
 
   # The Dart wrapper launchers are useless for the Flutter tool - it is designed
   # to be launched from a snapshot by the SDK.
diff --git a/nixpkgs/pkgs/development/compilers/flutter/flutter.nix b/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
index 1e68a3b02a9e..42129501ca12 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/flutter.nix
@@ -4,6 +4,7 @@
 , dart
 , src
 , pubspecLock
+, artifactHashes ? null
 , lib
 , stdenv
 , callPackage
@@ -11,23 +12,24 @@
 , darwin
 , git
 , which
-}:
-
-let
-  tools = callPackage ./flutter-tools.nix {
+, jq
+, flutterTools ? callPackage ./flutter-tools.nix {
     inherit dart version;
     flutterSrc = src;
     inherit patches;
     inherit pubspecLock;
-  };
+    systemPlatform = stdenv.hostPlatform.system;
+  }
+}:
 
+let
   unwrapped =
     stdenv.mkDerivation {
       name = "flutter-${version}-unwrapped";
       inherit src patches version;
 
       buildInputs = [ git ];
-      nativeBuildInputs = [ makeWrapper ]
+      nativeBuildInputs = [ makeWrapper jq ]
         ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
 
       preConfigure = ''
@@ -58,15 +60,28 @@ let
         # Add a flutter_tools artifact stamp, and build a snapshot.
         # This is the Flutter CLI application.
         echo "$(git rev-parse HEAD)" > bin/cache/flutter_tools.stamp
-        ln -s '${tools}/share/flutter_tools.snapshot' bin/cache/flutter_tools.snapshot
+        ln -s '${flutterTools}/share/flutter_tools.snapshot' bin/cache/flutter_tools.snapshot
 
         # Some of flutter_tools's dependencies contain static assets. The
         # application attempts to read its own package_config.json to find these
         # assets at runtime.
         mkdir -p packages/flutter_tools/.dart_tool
-        ln -s '${tools.pubcache}/package_config.json' packages/flutter_tools/.dart_tool/package_config.json
+        ln -s '${flutterTools.pubcache}/package_config.json' packages/flutter_tools/.dart_tool/package_config.json
 
         echo -n "${version}" > version
+        cat <<EOF > bin/cache/flutter.version.json
+        {
+          "devToolsVersion": "$(cat "${dart}/bin/resources/devtools/version.json" | jq -r .version)",
+          "flutterVersion": "${version}",
+          "frameworkVersion": "${version}",
+          "channel": "stable",
+          "repositoryUrl": "https://github.com/flutter/flutter.git",
+          "frameworkRevision": "nixpkgs000000000000000000000000000000000",
+          "frameworkCommitDate": "1970-01-01 00:00:00",
+          "engineRevision": "${engineVersion}",
+          "dartSdkVersion": "${dart.version}"
+        }
+        EOF
       '';
 
       installPhase = ''
@@ -105,7 +120,8 @@ let
       '';
 
       passthru = {
-        inherit dart engineVersion tools;
+        inherit dart engineVersion artifactHashes;
+        tools = flutterTools;
         # The derivation containing the original Flutter SDK files.
         # When other derivations wrap this one, any unmodified files
         # found here should be included as-is, for tooling compatibility.
diff --git a/nixpkgs/pkgs/development/compilers/flutter/lockfiles/stable/pubspec.lock.json b/nixpkgs/pkgs/development/compilers/flutter/lockfiles/stable/pubspec.lock.json
deleted file mode 100644
index 517092d8ee4e..000000000000
--- a/nixpkgs/pkgs/development/compilers/flutter/lockfiles/stable/pubspec.lock.json
+++ /dev/null
@@ -1,847 +0,0 @@
-{
-  "packages": {
-    "_fe_analyzer_shared": {
-      "dependency": "direct main",
-      "description": {
-        "name": "_fe_analyzer_shared",
-        "sha256": "ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "61.0.0"
-    },
-    "analyzer": {
-      "dependency": "direct main",
-      "description": {
-        "name": "analyzer",
-        "sha256": "ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "5.13.0"
-    },
-    "archive": {
-      "dependency": "direct main",
-      "description": {
-        "name": "archive",
-        "sha256": "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.3.2"
-    },
-    "args": {
-      "dependency": "direct main",
-      "description": {
-        "name": "args",
-        "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.4.2"
-    },
-    "async": {
-      "dependency": "direct main",
-      "description": {
-        "name": "async",
-        "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.11.0"
-    },
-    "boolean_selector": {
-      "dependency": "direct main",
-      "description": {
-        "name": "boolean_selector",
-        "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.1.1"
-    },
-    "browser_launcher": {
-      "dependency": "direct main",
-      "description": {
-        "name": "browser_launcher",
-        "sha256": "6ee4c6b1f68a42e769ef6e663c4f56708522f7bce9d2ab6e308a37b612ffa4ec",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.1.1"
-    },
-    "built_collection": {
-      "dependency": "direct main",
-      "description": {
-        "name": "built_collection",
-        "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "5.1.1"
-    },
-    "built_value": {
-      "dependency": "direct main",
-      "description": {
-        "name": "built_value",
-        "sha256": "598a2a682e2a7a90f08ba39c0aaa9374c5112340f0a2e275f61b59389543d166",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "8.6.1"
-    },
-    "checked_yaml": {
-      "dependency": "direct dev",
-      "description": {
-        "name": "checked_yaml",
-        "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.0.3"
-    },
-    "clock": {
-      "dependency": "direct main",
-      "description": {
-        "name": "clock",
-        "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.1.1"
-    },
-    "collection": {
-      "dependency": "direct dev",
-      "description": {
-        "name": "collection",
-        "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.17.2"
-    },
-    "completion": {
-      "dependency": "direct main",
-      "description": {
-        "name": "completion",
-        "sha256": "f11b7a628e6c42b9edc9b0bc3aa490e2d930397546d2f794e8e1325909d11c60",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.0.1"
-    },
-    "convert": {
-      "dependency": "direct main",
-      "description": {
-        "name": "convert",
-        "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.1.1"
-    },
-    "coverage": {
-      "dependency": "direct main",
-      "description": {
-        "name": "coverage",
-        "sha256": "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.6.3"
-    },
-    "crypto": {
-      "dependency": "direct main",
-      "description": {
-        "name": "crypto",
-        "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.0.3"
-    },
-    "csslib": {
-      "dependency": "direct main",
-      "description": {
-        "name": "csslib",
-        "sha256": "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.0.0"
-    },
-    "dap": {
-      "dependency": "direct main",
-      "description": {
-        "name": "dap",
-        "sha256": "2120d4a8cbad45e5dbd518b713e8f064274e0a4c0e3edcaef1f4cf9ccbc90cd9",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.0.0"
-    },
-    "dds": {
-      "dependency": "direct main",
-      "description": {
-        "name": "dds",
-        "sha256": "397c3c80919ee187b2efc28205af3c0378b6b757ea6d059083dece145a2e31e9",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.9.0+hotfix"
-    },
-    "dds_service_extensions": {
-      "dependency": "direct main",
-      "description": {
-        "name": "dds_service_extensions",
-        "sha256": "9ac669bef49a4c13ed62073685089be121200fb213800ec59c202e90d569ea44",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.5.0"
-    },
-    "devtools_shared": {
-      "dependency": "direct main",
-      "description": {
-        "name": "devtools_shared",
-        "sha256": "ad58ac3a5df41adf08d0d6f0a4d73349533edcc383ee93a30ac3d0fd0bb6df49",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.24.0"
-    },
-    "dwds": {
-      "dependency": "direct main",
-      "description": {
-        "name": "dwds",
-        "sha256": "b6dad73ae56f00bff7647f531b9db018005f713328e816e7a277b544184e9170",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "19.0.1+1"
-    },
-    "fake_async": {
-      "dependency": "direct main",
-      "description": {
-        "name": "fake_async",
-        "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.3.1"
-    },
-    "file": {
-      "dependency": "direct main",
-      "description": {
-        "name": "file",
-        "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "6.1.4"
-    },
-    "file_testing": {
-      "dependency": "direct dev",
-      "description": {
-        "name": "file_testing",
-        "sha256": "0aaadb4025bd350403f4308ad6c4cea953278d9407814b8342558e4946840fb5",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.0.0"
-    },
-    "fixnum": {
-      "dependency": "direct main",
-      "description": {
-        "name": "fixnum",
-        "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.1.0"
-    },
-    "flutter_template_images": {
-      "dependency": "direct main",
-      "description": {
-        "name": "flutter_template_images",
-        "sha256": "fd3e55af73c577b9e3f88d4080d3e366cb5c8ef3fbd50b94dfeca56bb0235df6",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "4.2.0"
-    },
-    "frontend_server_client": {
-      "dependency": "direct main",
-      "description": {
-        "name": "frontend_server_client",
-        "sha256": "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.2.0"
-    },
-    "glob": {
-      "dependency": "direct main",
-      "description": {
-        "name": "glob",
-        "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.1.2"
-    },
-    "html": {
-      "dependency": "direct main",
-      "description": {
-        "name": "html",
-        "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.15.4"
-    },
-    "http": {
-      "dependency": "direct main",
-      "description": {
-        "name": "http",
-        "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.13.6"
-    },
-    "http_multi_server": {
-      "dependency": "direct main",
-      "description": {
-        "name": "http_multi_server",
-        "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.2.1"
-    },
-    "http_parser": {
-      "dependency": "direct main",
-      "description": {
-        "name": "http_parser",
-        "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "4.0.2"
-    },
-    "intl": {
-      "dependency": "direct main",
-      "description": {
-        "name": "intl",
-        "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.18.1"
-    },
-    "io": {
-      "dependency": "direct main",
-      "description": {
-        "name": "io",
-        "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.0.4"
-    },
-    "js": {
-      "dependency": "direct main",
-      "description": {
-        "name": "js",
-        "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.6.7"
-    },
-    "json_annotation": {
-      "dependency": "direct dev",
-      "description": {
-        "name": "json_annotation",
-        "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "4.8.1"
-    },
-    "json_rpc_2": {
-      "dependency": "direct main",
-      "description": {
-        "name": "json_rpc_2",
-        "sha256": "5e469bffa23899edacb7b22787780068d650b106a21c76db3c49218ab7ca447e",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.0.2"
-    },
-    "logging": {
-      "dependency": "direct main",
-      "description": {
-        "name": "logging",
-        "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.2.0"
-    },
-    "matcher": {
-      "dependency": "direct main",
-      "description": {
-        "name": "matcher",
-        "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.12.16"
-    },
-    "meta": {
-      "dependency": "direct main",
-      "description": {
-        "name": "meta",
-        "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.9.1"
-    },
-    "mime": {
-      "dependency": "direct main",
-      "description": {
-        "name": "mime",
-        "sha256": "e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.0.4"
-    },
-    "multicast_dns": {
-      "dependency": "direct main",
-      "description": {
-        "name": "multicast_dns",
-        "sha256": "80e54aba906a7cc68fdc6a201e76b135af27155e2f8e958181d85e2b73786591",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.3.2+3"
-    },
-    "mustache_template": {
-      "dependency": "direct main",
-      "description": {
-        "name": "mustache_template",
-        "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.0.0"
-    },
-    "native_stack_traces": {
-      "dependency": "direct main",
-      "description": {
-        "name": "native_stack_traces",
-        "sha256": "c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.5.6"
-    },
-    "node_preamble": {
-      "dependency": "direct dev",
-      "description": {
-        "name": "node_preamble",
-        "sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.0.2"
-    },
-    "package_config": {
-      "dependency": "direct main",
-      "description": {
-        "name": "package_config",
-        "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.1.0"
-    },
-    "path": {
-      "dependency": "direct main",
-      "description": {
-        "name": "path",
-        "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.8.3"
-    },
-    "petitparser": {
-      "dependency": "direct main",
-      "description": {
-        "name": "petitparser",
-        "sha256": "cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "5.4.0"
-    },
-    "platform": {
-      "dependency": "direct main",
-      "description": {
-        "name": "platform",
-        "sha256": "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.1.0"
-    },
-    "pool": {
-      "dependency": "direct main",
-      "description": {
-        "name": "pool",
-        "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.5.1"
-    },
-    "process": {
-      "dependency": "direct main",
-      "description": {
-        "name": "process",
-        "sha256": "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "4.2.4"
-    },
-    "pub_semver": {
-      "dependency": "direct main",
-      "description": {
-        "name": "pub_semver",
-        "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.1.4"
-    },
-    "pubspec_parse": {
-      "dependency": "direct dev",
-      "description": {
-        "name": "pubspec_parse",
-        "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.2.3"
-    },
-    "shelf": {
-      "dependency": "direct main",
-      "description": {
-        "name": "shelf",
-        "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.4.1"
-    },
-    "shelf_packages_handler": {
-      "dependency": "direct main",
-      "description": {
-        "name": "shelf_packages_handler",
-        "sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.0.2"
-    },
-    "shelf_proxy": {
-      "dependency": "direct main",
-      "description": {
-        "name": "shelf_proxy",
-        "sha256": "a71d2307f4393211930c590c3d2c00630f6c5a7a77edc1ef6436dfd85a6a7ee3",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.0.4"
-    },
-    "shelf_static": {
-      "dependency": "direct main",
-      "description": {
-        "name": "shelf_static",
-        "sha256": "a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.1.2"
-    },
-    "shelf_web_socket": {
-      "dependency": "direct main",
-      "description": {
-        "name": "shelf_web_socket",
-        "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.0.4"
-    },
-    "source_map_stack_trace": {
-      "dependency": "direct main",
-      "description": {
-        "name": "source_map_stack_trace",
-        "sha256": "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.1.1"
-    },
-    "source_maps": {
-      "dependency": "direct main",
-      "description": {
-        "name": "source_maps",
-        "sha256": "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.10.12"
-    },
-    "source_span": {
-      "dependency": "direct main",
-      "description": {
-        "name": "source_span",
-        "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.10.0"
-    },
-    "sse": {
-      "dependency": "direct main",
-      "description": {
-        "name": "sse",
-        "sha256": "3ff9088cac3f45aa8b91336f1962e3ea6c81baaba0bbba361c05f8aa7fb59442",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "4.1.2"
-    },
-    "stack_trace": {
-      "dependency": "direct main",
-      "description": {
-        "name": "stack_trace",
-        "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.11.0"
-    },
-    "standard_message_codec": {
-      "dependency": "direct main",
-      "description": {
-        "name": "standard_message_codec",
-        "sha256": "906e66549f0ea90d87c5320e0b0f04738c5d14bc7fb121a15da31b60e84f5b15",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.0.1+3"
-    },
-    "stream_channel": {
-      "dependency": "direct main",
-      "description": {
-        "name": "stream_channel",
-        "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.1.1"
-    },
-    "string_scanner": {
-      "dependency": "direct main",
-      "description": {
-        "name": "string_scanner",
-        "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.2.0"
-    },
-    "sync_http": {
-      "dependency": "direct main",
-      "description": {
-        "name": "sync_http",
-        "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.3.1"
-    },
-    "term_glyph": {
-      "dependency": "direct main",
-      "description": {
-        "name": "term_glyph",
-        "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.2.1"
-    },
-    "test": {
-      "dependency": "direct dev",
-      "description": {
-        "name": "test",
-        "sha256": "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.24.3"
-    },
-    "test_api": {
-      "dependency": "direct main",
-      "description": {
-        "name": "test_api",
-        "sha256": "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.6.0"
-    },
-    "test_core": {
-      "dependency": "direct main",
-      "description": {
-        "name": "test_core",
-        "sha256": "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.5.3"
-    },
-    "typed_data": {
-      "dependency": "direct main",
-      "description": {
-        "name": "typed_data",
-        "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.3.2"
-    },
-    "unified_analytics": {
-      "dependency": "direct main",
-      "description": {
-        "name": "unified_analytics",
-        "sha256": "4f9f29e5fd357d68fce270e37c7ad9bb489ee20098529199d6bc786b2b624298",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.0.0"
-    },
-    "usage": {
-      "dependency": "direct main",
-      "description": {
-        "name": "usage",
-        "sha256": "0bdbde65a6e710343d02a56552eeaefd20b735e04bfb6b3ee025b6b22e8d0e15",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "4.1.1"
-    },
-    "uuid": {
-      "dependency": "direct main",
-      "description": {
-        "name": "uuid",
-        "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.0.7"
-    },
-    "vm_service": {
-      "dependency": "direct main",
-      "description": {
-        "name": "vm_service",
-        "sha256": "c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "11.7.1"
-    },
-    "vm_snapshot_analysis": {
-      "dependency": "direct main",
-      "description": {
-        "name": "vm_snapshot_analysis",
-        "sha256": "5a79b9fbb6be2555090f55b03b23907e75d44c3fd7bdd88da09848aa5a1914c8",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "0.7.6"
-    },
-    "watcher": {
-      "dependency": "direct main",
-      "description": {
-        "name": "watcher",
-        "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.1.0"
-    },
-    "web_socket_channel": {
-      "dependency": "direct main",
-      "description": {
-        "name": "web_socket_channel",
-        "sha256": "d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "2.4.0"
-    },
-    "webdriver": {
-      "dependency": "direct main",
-      "description": {
-        "name": "webdriver",
-        "sha256": "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.0.2"
-    },
-    "webkit_inspection_protocol": {
-      "dependency": "direct main",
-      "description": {
-        "name": "webkit_inspection_protocol",
-        "sha256": "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "1.2.0"
-    },
-    "xml": {
-      "dependency": "direct main",
-      "description": {
-        "name": "xml",
-        "sha256": "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "6.3.0"
-    },
-    "yaml": {
-      "dependency": "direct main",
-      "description": {
-        "name": "yaml",
-        "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5",
-        "url": "https://pub.dev"
-      },
-      "source": "hosted",
-      "version": "3.1.2"
-    }
-  },
-  "sdks": {
-    "dart": ">=3.0.0 <4.0.0"
-  }
-}
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/copy-without-perms.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/copy-without-perms.patch
index 281b3840891f..281b3840891f 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/copy-without-perms.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/copy-without-perms.patch
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/deregister-pub-dependencies-artifact.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/deregister-pub-dependencies-artifact.patch
index 01e34c6d292c..01e34c6d292c 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/deregister-pub-dependencies-artifact.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/deregister-pub-dependencies-artifact.patch
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/disable-auto-update.patch
index 23a657e7c6a9..05960c01b737 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/disable-auto-update.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/disable-auto-update.patch
@@ -1,16 +1,3 @@
-diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
-index 3532c23114..25dfcae4c7 100644
---- a/bin/internal/shared.sh
-+++ b/bin/internal/shared.sh
-@@ -229,8 +229,6 @@ function shared::execute() {
-     exit 1
-   fi
- 
--  upgrade_flutter 7< "$PROG_NAME"
--
-   BIN_NAME="$(basename "$PROG_NAME")"
-   case "$BIN_NAME" in
-     flutter*)
 diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart
 index b7e624b4e2..edfdde118b 100644
 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/dont-validate-executable-location.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/dont-validate-executable-location.patch
index 5f391265ce15..5f391265ce15 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/dont-validate-executable-location.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/dont-validate-executable-location.patch
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/flutter-pub-dart-override.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/flutter-pub-dart-override.patch
index 9d1de65c320d..9d1de65c320d 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/flutter-pub-dart-override.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/flutter-pub-dart-override.patch
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/git-dir.patch
index 6e6ae4e6fb98..6e6ae4e6fb98 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/git-dir.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/git-dir.patch
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/override-host-platform.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/override-host-platform.patch
index 51dcfdb5cc57..51dcfdb5cc57 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/flutter3/override-host-platform.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/override-host-platform.patch
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/override-operating-system.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/override-operating-system.patch
new file mode 100644
index 000000000000..07d57175bd9a
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/override-operating-system.patch
@@ -0,0 +1,13 @@
+diff --git a/packages/flutter_tools/lib/src/base/platform.dart b/packages/flutter_tools/lib/src/base/platform.dart
+index 45da89ad4c..2d79dbaece 100644
+--- a/packages/flutter_tools/lib/src/base/platform.dart
++++ b/packages/flutter_tools/lib/src/base/platform.dart
+@@ -132,7 +132,7 @@ class LocalPlatform extends Platform {
+   String get pathSeparator => io.Platform.pathSeparator;
+
+   @override
+-  String get operatingSystem => io.Platform.operatingSystem;
++  String get operatingSystem => io.Platform.environment['NIX_FLUTTER_OPERATING_SYSTEM'] ?? io.Platform.operatingSystem;
+
+   @override
+   String get operatingSystemVersion => io.Platform.operatingSystemVersion;
diff --git a/nixpkgs/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix b/nixpkgs/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix
new file mode 100644
index 000000000000..89343a323165
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/update/get-artifact-hashes.nix
@@ -0,0 +1,48 @@
+{ callPackage
+, flutterPackages
+, lib
+, symlinkJoin
+,
+}:
+let
+  nixpkgsRoot = "@nixpkgs_root@";
+  flutterCompactVersion = "@flutter_compact_version@";
+
+  flutterPlatforms = [
+    "android"
+    "ios"
+    "web"
+    "linux"
+    "windows"
+    "macos"
+    "fuchsia"
+    "universal"
+  ];
+  systemPlatforms = [
+    "x86_64-linux"
+    "aarch64-linux"
+    "x86_64-darwin"
+  ];
+
+  derivations =
+    lib.foldl'
+      (
+        acc: flutterPlatform:
+          acc
+          ++ (map
+            (systemPlatform:
+              callPackage "${nixpkgsRoot}/pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix" {
+                flutter = flutterPackages."v${flutterCompactVersion}";
+                inherit flutterPlatform;
+                inherit systemPlatform;
+                hash = "";
+              })
+            systemPlatforms)
+      ) [ ]
+      flutterPlatforms;
+in
+symlinkJoin {
+  name = "evaluate-derivations";
+  paths = derivations;
+}
+
diff --git a/nixpkgs/pkgs/development/compilers/flutter/update/get-dart-hashes.nix b/nixpkgs/pkgs/development/compilers/flutter/update/get-dart-hashes.nix
new file mode 100644
index 000000000000..4122110bccaa
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/update/get-dart-hashes.nix
@@ -0,0 +1,26 @@
+let
+  dartVersion = "@dart_version@";
+  platform = "@platform@";
+in
+{
+  x86_64-linux = { fetchzip }:
+    fetchzip {
+      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
+      sha256 = "";
+    };
+  aarch64-linux = { fetchzip }:
+    fetchzip {
+      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-linux-arm64-release.zip";
+      sha256 = "";
+    };
+  x86_64-darwin = { fetchzip }:
+    fetchzip {
+      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-x64-release.zip";
+      sha256 = "";
+    };
+  aarch64-darwin = { fetchzip }:
+    fetchzip {
+      url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${dartVersion}/sdk/dartsdk-macos-arm64-release.zip";
+      sha256 = "";
+    };
+}.${platform}
diff --git a/nixpkgs/pkgs/development/compilers/flutter/update/get-flutter.nix b/nixpkgs/pkgs/development/compilers/flutter/update/get-flutter.nix
new file mode 100644
index 000000000000..81680797229b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/update/get-flutter.nix
@@ -0,0 +1,7 @@
+{ fetchFromGitHub }:
+fetchFromGitHub {
+  owner = "flutter";
+  repo = "flutter";
+  rev = "@flutter_version@";
+  hash = "@hash@";
+}
diff --git a/nixpkgs/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix b/nixpkgs/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix
new file mode 100644
index 000000000000..ff72046bcecb
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/update/get-pubspec-lock.nix
@@ -0,0 +1,30 @@
+{ flutterPackages
+, stdenv
+, cacert
+,
+}:
+let
+  flutterCompactVersion = "@flutter_compact_version@";
+  inherit (flutterPackages."v${flutterCompactVersion}") dart;
+in
+stdenv.mkDerivation {
+  name = "pubspec-lock";
+  src = @flutter_src@;
+
+  nativeBuildInputs = [ dart ];
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "@hash@";
+
+  buildPhase = ''
+    cd ./packages/flutter_tools
+
+    export HOME="$(mktemp -d)"
+    dart --root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt pub get -v
+  '';
+
+  installPhase = ''
+    cp -r ./pubspec.lock $out
+  '';
+}
diff --git a/nixpkgs/pkgs/development/compilers/flutter/update/update.py b/nixpkgs/pkgs/development/compilers/flutter/update/update.py
new file mode 100755
index 000000000000..c622487cf9dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/update/update.py
@@ -0,0 +1,339 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python3 -p python3Packages.pyyaml
+
+import shutil
+import json
+import urllib.request
+import tempfile
+from sys import exit
+import os
+import subprocess
+import re
+import json
+import argparse
+import yaml
+import json
+
+
+NIXPKGS_ROOT = subprocess.Popen(['git',
+                                 'rev-parse',
+                                 '--show-toplevel'],
+                                stdout=subprocess.PIPE,
+                                text=True).communicate()[0].strip()
+
+
+def load_code(name, **kwargs):
+    with open(f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/update/{name}", 'r') as f:
+        code = f.read()
+
+    for (key, value) in kwargs.items():
+        code = code.replace(f"@{key}@", value)
+
+    return code
+
+
+# Return out paths
+def nix_build(code):
+    temp = tempfile.NamedTemporaryFile(mode='w')
+    temp.write(code)
+    temp.flush()
+    os.fsync(temp.fileno())
+
+    process = subprocess.Popen(
+        [
+            "nix-build",
+            "--impure",
+            "--no-out-link",
+            "--expr",
+            f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp.name} {{}}"],
+        stdout=subprocess.PIPE,
+        text=True)
+
+    process.wait()
+    temp.close()
+    return process.stdout.read().strip().splitlines()[0]
+
+
+# Return errors
+def nix_build_to_fail(code):
+    temp = tempfile.NamedTemporaryFile(mode='w')
+    temp.write(code)
+    temp.flush()
+    os.fsync(temp.fileno())
+
+    process = subprocess.Popen(
+        [
+            "nix-build",
+            "--impure",
+            "--keep-going",
+            "--no-link",
+            "--expr",
+            f"with import {NIXPKGS_ROOT} {{}}; callPackage {temp.name} {{}}"],
+        stderr=subprocess.PIPE,
+        text=True)
+
+    stderr = ""
+    while True:
+        line = process.stderr.readline()
+        if not line:
+            break
+        stderr += line
+        print(line.strip())
+
+    process.wait()
+    temp.close()
+    return stderr
+
+
+def get_artifact_hashes(flutter_compact_version):
+    code = load_code("get-artifact-hashes.nix",
+                     nixpkgs_root=NIXPKGS_ROOT,
+                     flutter_compact_version=flutter_compact_version)
+
+    stderr = nix_build_to_fail(code)
+
+    pattern = re.compile(
+        r"/nix/store/.*-flutter-artifacts-(.+?)-(.+?).drv':\n\s+specified: .*\n\s+got:\s+(.+?)\n")
+    matches = pattern.findall(stderr)
+    result_dict = {}
+
+    for match in matches:
+        flutter_platform, architecture, got = match
+        result_dict.setdefault(flutter_platform, {})[architecture] = got
+
+    def sort_dict_recursive(d):
+        return {
+            k: sort_dict_recursive(v) if isinstance(
+                v, dict) else v for k, v in sorted(
+                d.items())}
+    result_dict = sort_dict_recursive(result_dict)
+
+    return result_dict
+
+
+def get_dart_hashes(dart_version):
+    platforms = [
+        "x86_64-linux",
+        "aarch64-linux",
+        "x86_64-darwin",
+        "aarch64-darwin"]
+    result_dict = {}
+    for platform in platforms:
+        code = load_code(
+            "get-dart-hashes.nix",
+            dart_version=dart_version,
+            platform=platform)
+        stderr = nix_build_to_fail(code)
+
+        pattern = re.compile(r"got:\s+(.+?)\n")
+        result_dict[platform] = pattern.findall(stderr)[0]
+
+    return result_dict
+
+
+def get_flutter_hash_and_src(flutter_version):
+    code = load_code(
+        "get-flutter.nix",
+        flutter_version=flutter_version,
+        hash="")
+
+    stderr = nix_build_to_fail(code)
+    pattern = re.compile(r"got:\s+(.+?)\n")
+    hash = pattern.findall(stderr)[0]
+
+    code = load_code(
+        "get-flutter.nix",
+        flutter_version=flutter_version,
+        hash=hash)
+
+    return (hash, nix_build(code))
+
+
+def get_pubspec_lock(flutter_compact_version, flutter_src):
+    code = load_code(
+        "get-pubspec-lock.nix",
+        flutter_compact_version=flutter_compact_version,
+        flutter_src=flutter_src,
+        hash="")
+
+    stderr = nix_build_to_fail(code)
+    pattern = re.compile(r"got:\s+(.+?)\n")
+    hash = pattern.findall(stderr)[0]
+
+    code = load_code(
+        "get-pubspec-lock.nix",
+        flutter_compact_version=flutter_compact_version,
+        flutter_src=flutter_src,
+        hash=hash)
+
+    pubspec_lock_file = nix_build(code)
+
+    with open(pubspec_lock_file, 'r') as f:
+        pubspec_lock_yaml = f.read()
+
+    return yaml.safe_load(pubspec_lock_yaml)
+
+
+def write_data(
+        nixpkgs_flutter_version_directory,
+        flutter_version,
+        engine_hash,
+        dart_version,
+        dart_hash,
+        flutter_hash,
+        artifact_hashes,
+        pubspec_lock):
+    with open(f"{nixpkgs_flutter_version_directory}/data.json", "w") as f:
+        f.write(json.dumps({
+            "version": flutter_version,
+            "engineVersion": engine_hash,
+            "dartVersion": dart_version,
+            "dartHash": dart_hash,
+            "flutterHash": flutter_hash,
+            "artifactHashes": artifact_hashes,
+            "pubspecLock": pubspec_lock,
+        }, indent=2).strip() + "\n")
+
+
+def update_all_packages():
+    versions_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions"
+    versions = [directory for directory in os.listdir(versions_directory)]
+    versions = sorted(versions, key=lambda x: (
+        int(x.split('_')[0]), int(x.split('_')[1])), reverse=True)
+
+    new_content = [
+        "flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { });",
+        "flutter = flutterPackages.stable;",
+    ] + [f"flutter{version.replace('_', '')} = flutterPackages.v{version};" for version in versions]
+
+    with open(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix", 'r') as file:
+        lines = file.read().splitlines(keepends=True)
+
+    start = -1
+    end = -1
+    for i, line in enumerate(lines):
+        if "flutterPackages = recurseIntoAttrs (callPackage ../development/compilers/flutter { });" in line:
+            start = i
+        if start != -1 and len(line.strip()) == 0:
+            end = i
+            break
+
+    if start != -1 and end != -1:
+        del lines[start:end]
+        lines[start:start] = [f"  {l}\n" for l in new_content]
+
+    with open(f"{NIXPKGS_ROOT}/pkgs/top-level/all-packages.nix", 'w') as file:
+        file.write("".join(lines))
+
+
+# Finds Flutter version, Dart version, and Engine hash.
+# If the Flutter version is given, it uses that. Otherwise finds the
+# latest stable Flutter version.
+def find_versions(flutter_version=None):
+    engine_hash = None
+    dart_version = None
+
+    releases = json.load(urllib.request.urlopen(
+        "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json"))
+
+    if not flutter_version:
+        stable_hash = releases['current_release']['stable']
+        release = next(
+            filter(
+                lambda release: release['hash'] == stable_hash,
+                releases['releases']))
+        flutter_version = release['version']
+
+    tags = subprocess.Popen(['git',
+                             'ls-remote',
+                             '--tags',
+                             'https://github.com/flutter/engine.git'],
+                            stdout=subprocess.PIPE,
+                            text=True).communicate()[0].strip()
+
+    try:
+        engine_hash = next(
+            filter(
+                lambda line: line.endswith(f'refs/tags/{flutter_version}'),
+                tags.splitlines())).split('refs')[0].strip()
+    except StopIteration:
+        exit(
+            f"Couldn't find Engine hash for Flutter version: {flutter_version}")
+
+    try:
+        dart_version = next(
+            filter(
+                lambda release: release['version'] == flutter_version,
+                releases['releases']))['dart_sdk_version']
+    except StopIteration:
+        exit(
+            f"Couldn't find Dart version for Flutter version: {flutter_version}")
+
+    return (flutter_version, engine_hash, dart_version)
+
+
+def main():
+    parser = argparse.ArgumentParser(description='Update Flutter in Nixpkgs')
+    parser.add_argument('--version', type=str, help='Specify Flutter version')
+    parser.add_argument('--artifact-hashes', action='store_true',
+                        help='Whether to get artifact hashes')
+    args = parser.parse_args()
+
+    (flutter_version, engine_hash, dart_version) = find_versions(args.version)
+
+    flutter_compact_version = '_'.join(flutter_version.split('.')[:2])
+
+    if args.artifact_hashes:
+        print(
+            json.dumps(
+                get_artifact_hashes(flutter_compact_version),
+                indent=2).strip() +
+            "\n")
+        return
+
+    print(f"Flutter version: {flutter_version} ({flutter_compact_version})")
+    print(f"Engine hash: {engine_hash}")
+    print(f"Dart version: {dart_version}")
+
+    dart_hash = get_dart_hashes(dart_version)
+    (flutter_hash, flutter_src) = get_flutter_hash_and_src(flutter_version)
+
+    nixpkgs_flutter_version_directory = f"{NIXPKGS_ROOT}/pkgs/development/compilers/flutter/versions/{flutter_compact_version}"
+
+    if os.path.exists(f"{nixpkgs_flutter_version_directory}/data.json"):
+        os.remove(f"{nixpkgs_flutter_version_directory}/data.json")
+    os.makedirs(nixpkgs_flutter_version_directory, exist_ok=True)
+
+    update_all_packages()
+
+    common_data_args = {
+        "nixpkgs_flutter_version_directory": nixpkgs_flutter_version_directory,
+        "flutter_version": flutter_version,
+        "dart_version": dart_version,
+        "engine_hash": engine_hash,
+        "flutter_hash": flutter_hash,
+        "dart_hash": dart_hash,
+    }
+
+    write_data(
+        pubspec_lock={},
+        artifact_hashes={},
+        **common_data_args)
+
+    pubspec_lock = get_pubspec_lock(flutter_compact_version, flutter_src)
+
+    write_data(
+        pubspec_lock=pubspec_lock,
+        artifact_hashes={},
+        **common_data_args)
+
+    artifact_hashes = get_artifact_hashes(flutter_compact_version)
+
+    write_data(
+        pubspec_lock=pubspec_lock,
+        artifact_hashes=artifact_hashes,
+        **common_data_args)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/nixpkgs/pkgs/development/compilers/flutter/versions/3_13/data.json b/nixpkgs/pkgs/development/compilers/flutter/versions/3_13/data.json
new file mode 100644
index 000000000000..72e002f144d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/versions/3_13/data.json
@@ -0,0 +1,901 @@
+{
+  "version": "3.13.8",
+  "engineVersion": "767d8c75e898091b925519803830fc2721658d07",
+  "dartVersion": "3.1.4",
+  "dartHash": {
+    "x86_64-linux": "sha256-42wrqzjRcFDWw2aEY6+/faX+QE9PA8FmRWP4M/NkgBE=",
+    "aarch64-linux": "sha256-/tWWWwTOgXHbwzotc7ZDDZa8+cbX6NODGYrjLK9gPPg=",
+    "x86_64-darwin": "sha256-BchKowKd6BscVuk/dXibcQzdFkW9//GDfll77mHEI4M=",
+    "aarch64-darwin": "sha256-9yrx09vYrOTmdqkfJI7mfh7DI1/rg67tPlf82m5+iKI="
+  },
+  "flutterHash": "sha256-00G030FvZZTsdf9ruFs9jdIHcC5h+xpp4NlmL64qVZA=",
+  "artifactHashes": {
+    "android": {
+      "x86_64-linux": "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y=",
+      "aarch64-linux": "sha256-Uc36aBq8wQo2aEvjAPOoixZElWOE/GNRm2GUfhbwT3Y=",
+      "x86_64-darwin": "sha256-v/6/GTj7732fEOIgSaoM00yaw2qNwOMuvbuoCvii7vQ="
+    },
+    "fuchsia": {
+      "x86_64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=",
+      "aarch64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=",
+      "x86_64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk="
+    },
+    "ios": {
+      "x86_64-linux": "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=",
+      "aarch64-linux": "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao=",
+      "x86_64-darwin": "sha256-QwkeGnutTVsm682CqxRtEd9rKUvN7zlAJcqkvAQYwao="
+    },
+    "linux": {
+      "x86_64-linux": "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs=",
+      "aarch64-linux": "sha256-drGHsuJoOCLqrhVrXczqJRCOtpeWVlqdWW0OSMS/l5M=",
+      "x86_64-darwin": "sha256-0gIOwux3YBdmcXgwICr8dpftj1CauaBUX8Rt5GG0WSs="
+    },
+    "macos": {
+      "x86_64-linux": "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=",
+      "aarch64-linux": "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc=",
+      "x86_64-darwin": "sha256-9WqCJQ37mcGc5tzfqQoY5CqHWHGTizjXf9p73bdnNWc="
+    },
+    "universal": {
+      "x86_64-linux": "sha256-wATt1UPjo/fh7RFO1vvcUAdo0dMAaaOUIuzYodsM0v0=",
+      "aarch64-linux": "sha256-Z9bszNaIpCccG7OfvE5WFsw36dITiyCQAZ6p29+Yq68=",
+      "x86_64-darwin": "sha256-qN5bAXRfQ78TWF3FLBIxWzUB5y5OrZVQTEilY5J/+2k="
+    },
+    "web": {
+      "x86_64-linux": "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=",
+      "aarch64-linux": "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0=",
+      "x86_64-darwin": "sha256-DVXJOOFxv7tKt3d0NaYMexkphEcr7+gDFV67I6iAYa0="
+    },
+    "windows": {
+      "x86_64-linux": "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=",
+      "aarch64-linux": "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI=",
+      "x86_64-darwin": "sha256-s8fJtwQkuZaGXr6vrPiKfpwP/NfewbETwyp9ERGqHYI="
+    }
+  },
+  "pubspecLock": {
+    "packages": {
+      "_fe_analyzer_shared": {
+        "dependency": "direct main",
+        "description": {
+          "name": "_fe_analyzer_shared",
+          "sha256": "ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "61.0.0"
+      },
+      "analyzer": {
+        "dependency": "direct main",
+        "description": {
+          "name": "analyzer",
+          "sha256": "ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "5.13.0"
+      },
+      "archive": {
+        "dependency": "direct main",
+        "description": {
+          "name": "archive",
+          "sha256": "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.3.2"
+      },
+      "args": {
+        "dependency": "direct main",
+        "description": {
+          "name": "args",
+          "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.4.2"
+      },
+      "async": {
+        "dependency": "direct main",
+        "description": {
+          "name": "async",
+          "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.11.0"
+      },
+      "boolean_selector": {
+        "dependency": "direct main",
+        "description": {
+          "name": "boolean_selector",
+          "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.1"
+      },
+      "browser_launcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "browser_launcher",
+          "sha256": "6ee4c6b1f68a42e769ef6e663c4f56708522f7bce9d2ab6e308a37b612ffa4ec",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.1"
+      },
+      "built_collection": {
+        "dependency": "direct main",
+        "description": {
+          "name": "built_collection",
+          "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "5.1.1"
+      },
+      "built_value": {
+        "dependency": "direct main",
+        "description": {
+          "name": "built_value",
+          "sha256": "598a2a682e2a7a90f08ba39c0aaa9374c5112340f0a2e275f61b59389543d166",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "8.6.1"
+      },
+      "checked_yaml": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "checked_yaml",
+          "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.3"
+      },
+      "clock": {
+        "dependency": "direct main",
+        "description": {
+          "name": "clock",
+          "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.1"
+      },
+      "collection": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "collection",
+          "sha256": "f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.17.2"
+      },
+      "completion": {
+        "dependency": "direct main",
+        "description": {
+          "name": "completion",
+          "sha256": "f11b7a628e6c42b9edc9b0bc3aa490e2d930397546d2f794e8e1325909d11c60",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.1"
+      },
+      "convert": {
+        "dependency": "direct main",
+        "description": {
+          "name": "convert",
+          "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.1"
+      },
+      "coverage": {
+        "dependency": "direct main",
+        "description": {
+          "name": "coverage",
+          "sha256": "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.6.3"
+      },
+      "crypto": {
+        "dependency": "direct main",
+        "description": {
+          "name": "crypto",
+          "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.3"
+      },
+      "csslib": {
+        "dependency": "direct main",
+        "description": {
+          "name": "csslib",
+          "sha256": "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.0"
+      },
+      "dap": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dap",
+          "sha256": "2120d4a8cbad45e5dbd518b713e8f064274e0a4c0e3edcaef1f4cf9ccbc90cd9",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.0"
+      },
+      "dds": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dds",
+          "sha256": "397c3c80919ee187b2efc28205af3c0378b6b757ea6d059083dece145a2e31e9",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.9.0+hotfix"
+      },
+      "dds_service_extensions": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dds_service_extensions",
+          "sha256": "9ac669bef49a4c13ed62073685089be121200fb213800ec59c202e90d569ea44",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.5.0"
+      },
+      "devtools_shared": {
+        "dependency": "direct main",
+        "description": {
+          "name": "devtools_shared",
+          "sha256": "ad58ac3a5df41adf08d0d6f0a4d73349533edcc383ee93a30ac3d0fd0bb6df49",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.24.0"
+      },
+      "dwds": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dwds",
+          "sha256": "b6dad73ae56f00bff7647f531b9db018005f713328e816e7a277b544184e9170",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "19.0.1+1"
+      },
+      "fake_async": {
+        "dependency": "direct main",
+        "description": {
+          "name": "fake_async",
+          "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.3.1"
+      },
+      "file": {
+        "dependency": "direct main",
+        "description": {
+          "name": "file",
+          "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.1.4"
+      },
+      "file_testing": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "file_testing",
+          "sha256": "0aaadb4025bd350403f4308ad6c4cea953278d9407814b8342558e4946840fb5",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.0"
+      },
+      "fixnum": {
+        "dependency": "direct main",
+        "description": {
+          "name": "fixnum",
+          "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.0"
+      },
+      "flutter_template_images": {
+        "dependency": "direct main",
+        "description": {
+          "name": "flutter_template_images",
+          "sha256": "fd3e55af73c577b9e3f88d4080d3e366cb5c8ef3fbd50b94dfeca56bb0235df6",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.2.0"
+      },
+      "frontend_server_client": {
+        "dependency": "direct main",
+        "description": {
+          "name": "frontend_server_client",
+          "sha256": "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.2.0"
+      },
+      "glob": {
+        "dependency": "direct main",
+        "description": {
+          "name": "glob",
+          "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.2"
+      },
+      "html": {
+        "dependency": "direct main",
+        "description": {
+          "name": "html",
+          "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.15.4"
+      },
+      "http": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http",
+          "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.13.6"
+      },
+      "http_multi_server": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http_multi_server",
+          "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.2.1"
+      },
+      "http_parser": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http_parser",
+          "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.0.2"
+      },
+      "intl": {
+        "dependency": "direct main",
+        "description": {
+          "name": "intl",
+          "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.18.1"
+      },
+      "io": {
+        "dependency": "direct main",
+        "description": {
+          "name": "io",
+          "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "js": {
+        "dependency": "direct main",
+        "description": {
+          "name": "js",
+          "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.6.7"
+      },
+      "json_annotation": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "json_annotation",
+          "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.8.1"
+      },
+      "json_rpc_2": {
+        "dependency": "direct main",
+        "description": {
+          "name": "json_rpc_2",
+          "sha256": "5e469bffa23899edacb7b22787780068d650b106a21c76db3c49218ab7ca447e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.2"
+      },
+      "logging": {
+        "dependency": "direct main",
+        "description": {
+          "name": "logging",
+          "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.0"
+      },
+      "matcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "matcher",
+          "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.12.16"
+      },
+      "meta": {
+        "dependency": "direct main",
+        "description": {
+          "name": "meta",
+          "sha256": "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.9.1"
+      },
+      "mime": {
+        "dependency": "direct main",
+        "description": {
+          "name": "mime",
+          "sha256": "e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "multicast_dns": {
+        "dependency": "direct main",
+        "description": {
+          "name": "multicast_dns",
+          "sha256": "80e54aba906a7cc68fdc6a201e76b135af27155e2f8e958181d85e2b73786591",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.3.2+3"
+      },
+      "mustache_template": {
+        "dependency": "direct main",
+        "description": {
+          "name": "mustache_template",
+          "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.0"
+      },
+      "native_stack_traces": {
+        "dependency": "direct main",
+        "description": {
+          "name": "native_stack_traces",
+          "sha256": "c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.5.6"
+      },
+      "node_preamble": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "node_preamble",
+          "sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.2"
+      },
+      "package_config": {
+        "dependency": "direct main",
+        "description": {
+          "name": "package_config",
+          "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.0"
+      },
+      "path": {
+        "dependency": "direct main",
+        "description": {
+          "name": "path",
+          "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.8.3"
+      },
+      "petitparser": {
+        "dependency": "direct main",
+        "description": {
+          "name": "petitparser",
+          "sha256": "cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "5.4.0"
+      },
+      "platform": {
+        "dependency": "direct main",
+        "description": {
+          "name": "platform",
+          "sha256": "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.0"
+      },
+      "pool": {
+        "dependency": "direct main",
+        "description": {
+          "name": "pool",
+          "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.5.1"
+      },
+      "process": {
+        "dependency": "direct main",
+        "description": {
+          "name": "process",
+          "sha256": "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.2.4"
+      },
+      "pub_semver": {
+        "dependency": "direct main",
+        "description": {
+          "name": "pub_semver",
+          "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.4"
+      },
+      "pubspec_parse": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "pubspec_parse",
+          "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.3"
+      },
+      "shelf": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf",
+          "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.4.1"
+      },
+      "shelf_packages_handler": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_packages_handler",
+          "sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.2"
+      },
+      "shelf_proxy": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_proxy",
+          "sha256": "a71d2307f4393211930c590c3d2c00630f6c5a7a77edc1ef6436dfd85a6a7ee3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "shelf_static": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_static",
+          "sha256": "a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.2"
+      },
+      "shelf_web_socket": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_web_socket",
+          "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "source_map_stack_trace": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_map_stack_trace",
+          "sha256": "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.1"
+      },
+      "source_maps": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_maps",
+          "sha256": "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.10.12"
+      },
+      "source_span": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_span",
+          "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.10.0"
+      },
+      "sse": {
+        "dependency": "direct main",
+        "description": {
+          "name": "sse",
+          "sha256": "3ff9088cac3f45aa8b91336f1962e3ea6c81baaba0bbba361c05f8aa7fb59442",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.1.2"
+      },
+      "stack_trace": {
+        "dependency": "direct main",
+        "description": {
+          "name": "stack_trace",
+          "sha256": "c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.11.0"
+      },
+      "standard_message_codec": {
+        "dependency": "direct main",
+        "description": {
+          "name": "standard_message_codec",
+          "sha256": "906e66549f0ea90d87c5320e0b0f04738c5d14bc7fb121a15da31b60e84f5b15",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.0.1+3"
+      },
+      "stream_channel": {
+        "dependency": "direct main",
+        "description": {
+          "name": "stream_channel",
+          "sha256": "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.1"
+      },
+      "string_scanner": {
+        "dependency": "direct main",
+        "description": {
+          "name": "string_scanner",
+          "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.0"
+      },
+      "sync_http": {
+        "dependency": "direct main",
+        "description": {
+          "name": "sync_http",
+          "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.3.1"
+      },
+      "term_glyph": {
+        "dependency": "direct main",
+        "description": {
+          "name": "term_glyph",
+          "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.1"
+      },
+      "test": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "test",
+          "sha256": "13b41f318e2a5751c3169137103b60c584297353d4b1761b66029bae6411fe46",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.24.3"
+      },
+      "test_api": {
+        "dependency": "direct main",
+        "description": {
+          "name": "test_api",
+          "sha256": "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.6.0"
+      },
+      "test_core": {
+        "dependency": "direct main",
+        "description": {
+          "name": "test_core",
+          "sha256": "99806e9e6d95c7b059b7a0fc08f07fc53fabe54a829497f0d9676299f1e8637e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.5.3"
+      },
+      "typed_data": {
+        "dependency": "direct main",
+        "description": {
+          "name": "typed_data",
+          "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.3.2"
+      },
+      "unified_analytics": {
+        "dependency": "direct main",
+        "description": {
+          "name": "unified_analytics",
+          "sha256": "4f9f29e5fd357d68fce270e37c7ad9bb489ee20098529199d6bc786b2b624298",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.0"
+      },
+      "usage": {
+        "dependency": "direct main",
+        "description": {
+          "name": "usage",
+          "sha256": "0bdbde65a6e710343d02a56552eeaefd20b735e04bfb6b3ee025b6b22e8d0e15",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.1.1"
+      },
+      "uuid": {
+        "dependency": "direct main",
+        "description": {
+          "name": "uuid",
+          "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.7"
+      },
+      "vm_service": {
+        "dependency": "direct main",
+        "description": {
+          "name": "vm_service",
+          "sha256": "c620a6f783fa22436da68e42db7ebbf18b8c44b9a46ab911f666ff09ffd9153f",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "11.7.1"
+      },
+      "vm_snapshot_analysis": {
+        "dependency": "direct main",
+        "description": {
+          "name": "vm_snapshot_analysis",
+          "sha256": "5a79b9fbb6be2555090f55b03b23907e75d44c3fd7bdd88da09848aa5a1914c8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.7.6"
+      },
+      "watcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "watcher",
+          "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.0"
+      },
+      "web_socket_channel": {
+        "dependency": "direct main",
+        "description": {
+          "name": "web_socket_channel",
+          "sha256": "d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.4.0"
+      },
+      "webdriver": {
+        "dependency": "direct main",
+        "description": {
+          "name": "webdriver",
+          "sha256": "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.2"
+      },
+      "webkit_inspection_protocol": {
+        "dependency": "direct main",
+        "description": {
+          "name": "webkit_inspection_protocol",
+          "sha256": "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.0"
+      },
+      "xml": {
+        "dependency": "direct main",
+        "description": {
+          "name": "xml",
+          "sha256": "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.3.0"
+      },
+      "yaml": {
+        "dependency": "direct main",
+        "description": {
+          "name": "yaml",
+          "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.2"
+      }
+    },
+    "sdks": {
+      "dart": ">=3.0.0 <4.0.0"
+    }
+  }
+}
diff --git a/nixpkgs/pkgs/development/compilers/flutter/versions/3_13/patches/disable-auto-update-shared.patch b/nixpkgs/pkgs/development/compilers/flutter/versions/3_13/patches/disable-auto-update-shared.patch
new file mode 100644
index 000000000000..be08c419fe1b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/versions/3_13/patches/disable-auto-update-shared.patch
@@ -0,0 +1,13 @@
+diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
+index 3532c23114..25dfcae4c7 100644
+--- a/bin/internal/shared.sh
++++ b/bin/internal/shared.sh
+@@ -229,8 +229,6 @@ function shared::execute() {
+     exit 1
+   fi
+ 
+-  upgrade_flutter 7< "$PROG_NAME"
+-
+   BIN_NAME="$(basename "$PROG_NAME")"
+   case "$BIN_NAME" in
+     flutter*)
diff --git a/nixpkgs/pkgs/development/compilers/flutter/versions/3_16/data.json b/nixpkgs/pkgs/development/compilers/flutter/versions/3_16/data.json
new file mode 100644
index 000000000000..100b2bd427d4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/versions/3_16/data.json
@@ -0,0 +1,951 @@
+{
+  "version": "3.16.7",
+  "engineVersion": "4a585b79294e830fa89c24924d58a27cc8fbf406",
+  "dartVersion": "3.2.4",
+  "dartHash": {
+    "x86_64-linux": "sha256-qslf+wgmNz9r+e45o3Bg9/vDj75GkM9gQE2tb5rbIvw=",
+    "aarch64-linux": "sha256-Wsm8GKi7PR5iGx/lNtp2qBK+lMk2NIHf/RvO5G94QnQ=",
+    "x86_64-darwin": "sha256-8DXMj0yhKpxHdqS0vr5C/RwhQGxvUmvxJA6mOgqBXU8=",
+    "aarch64-darwin": "sha256-ic6txmbhsv4CarUwG+4xqXsaQrMN4AQrWwg8DxsZGps="
+  },
+  "flutterHash": "sha256-j+tc8hMgZMBhju89n4e9tKRrq+CFBGOyeE0y+Z4FtHE=",
+  "artifactHashes": {
+    "android": {
+      "aarch64-linux": "sha256-j8jstEE1RsTVHJbq6f6We0An+CyJz9JH/YClyNA4mwg=",
+      "x86_64-darwin": "sha256-0FBI0CGMcxyttkzrdyjJlkGAjFd/yMuAQS3pDrNXZZw=",
+      "x86_64-linux": "sha256-j8jstEE1RsTVHJbq6f6We0An+CyJz9JH/YClyNA4mwg="
+    },
+    "fuchsia": {
+      "aarch64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=",
+      "x86_64-darwin": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk=",
+      "x86_64-linux": "sha256-eu0BERdz53CkSexbpu3KA7O6Q4g0s9SGD3t1Snsk3Fk="
+    },
+    "ios": {
+      "aarch64-linux": "sha256-V3VXRX8hn45J+NhzKli+NAc3TGiSoeVQRlJte8DDbZw=",
+      "x86_64-darwin": "sha256-V3VXRX8hn45J+NhzKli+NAc3TGiSoeVQRlJte8DDbZw=",
+      "x86_64-linux": "sha256-V3VXRX8hn45J+NhzKli+NAc3TGiSoeVQRlJte8DDbZw="
+    },
+    "linux": {
+      "aarch64-linux": "sha256-LWpou3L7bAWGn8i4nDT/BZez2Uhf/LbqC2C4Z98hCHQ=",
+      "x86_64-darwin": "sha256-BzjmO4F8B9GagYPbdvoT55r+YgZcP4BUaKgJPGZDXOU=",
+      "x86_64-linux": "sha256-BzjmO4F8B9GagYPbdvoT55r+YgZcP4BUaKgJPGZDXOU="
+    },
+    "macos": {
+      "aarch64-linux": "sha256-BMFqhhy1O1hK33Pj2cxnCAzK9wwHkwT4gNbJ1GaLrnk=",
+      "x86_64-darwin": "sha256-BMFqhhy1O1hK33Pj2cxnCAzK9wwHkwT4gNbJ1GaLrnk=",
+      "x86_64-linux": "sha256-BMFqhhy1O1hK33Pj2cxnCAzK9wwHkwT4gNbJ1GaLrnk="
+    },
+    "universal": {
+      "aarch64-linux": "sha256-uB2YZRjioP/koMbPvaBHsezjPO0w5a+BpxZaDuiINIY=",
+      "x86_64-darwin": "sha256-Qwf12gMqrW5nDC9Is08oxWTbKMptRQRAIb58JETq3xA=",
+      "x86_64-linux": "sha256-quSFKx7TZRJpK+4YDt5f9jwr7rZsSsaXMxhJ8vIcczQ="
+    },
+    "web": {
+      "aarch64-linux": "sha256-rQphVm+T4k5B4OYYw0sJwYBOsNvUOC9fu8IuvXN7hVw=",
+      "x86_64-darwin": "sha256-rQphVm+T4k5B4OYYw0sJwYBOsNvUOC9fu8IuvXN7hVw=",
+      "x86_64-linux": "sha256-rQphVm+T4k5B4OYYw0sJwYBOsNvUOC9fu8IuvXN7hVw="
+    },
+    "windows": {
+      "aarch64-linux": "sha256-HL3QLwzze9aO+T/2/xbHqhKV1/ba++MuRnk206hfJdU=",
+      "x86_64-darwin": "sha256-HL3QLwzze9aO+T/2/xbHqhKV1/ba++MuRnk206hfJdU=",
+      "x86_64-linux": "sha256-HL3QLwzze9aO+T/2/xbHqhKV1/ba++MuRnk206hfJdU="
+    }
+  },
+  "pubspecLock": {
+    "packages": {
+      "_fe_analyzer_shared": {
+        "dependency": "direct main",
+        "description": {
+          "name": "_fe_analyzer_shared",
+          "sha256": "eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "64.0.0"
+      },
+      "analyzer": {
+        "dependency": "direct main",
+        "description": {
+          "name": "analyzer",
+          "sha256": "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.2.0"
+      },
+      "archive": {
+        "dependency": "direct main",
+        "description": {
+          "name": "archive",
+          "sha256": "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.3.2"
+      },
+      "args": {
+        "dependency": "direct main",
+        "description": {
+          "name": "args",
+          "sha256": "eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.4.2"
+      },
+      "async": {
+        "dependency": "direct main",
+        "description": {
+          "name": "async",
+          "sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.11.0"
+      },
+      "boolean_selector": {
+        "dependency": "direct main",
+        "description": {
+          "name": "boolean_selector",
+          "sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.1"
+      },
+      "browser_launcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "browser_launcher",
+          "sha256": "6ee4c6b1f68a42e769ef6e663c4f56708522f7bce9d2ab6e308a37b612ffa4ec",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.1"
+      },
+      "built_collection": {
+        "dependency": "direct main",
+        "description": {
+          "name": "built_collection",
+          "sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "5.1.1"
+      },
+      "built_value": {
+        "dependency": "direct main",
+        "description": {
+          "name": "built_value",
+          "sha256": "a8de5955205b4d1dbbbc267daddf2178bd737e4bab8987c04a500478c9651e74",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "8.6.3"
+      },
+      "checked_yaml": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "checked_yaml",
+          "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.3"
+      },
+      "cli_config": {
+        "dependency": "direct main",
+        "description": {
+          "name": "cli_config",
+          "sha256": "76910209e4aee158f5e26721509c98d7cbb97085da637f62b7c461298033752d",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.1.1"
+      },
+      "clock": {
+        "dependency": "direct main",
+        "description": {
+          "name": "clock",
+          "sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.1"
+      },
+      "collection": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "collection",
+          "sha256": "ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.18.0"
+      },
+      "completion": {
+        "dependency": "direct main",
+        "description": {
+          "name": "completion",
+          "sha256": "f11b7a628e6c42b9edc9b0bc3aa490e2d930397546d2f794e8e1325909d11c60",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.1"
+      },
+      "convert": {
+        "dependency": "direct main",
+        "description": {
+          "name": "convert",
+          "sha256": "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.1"
+      },
+      "coverage": {
+        "dependency": "direct main",
+        "description": {
+          "name": "coverage",
+          "sha256": "2fb815080e44a09b85e0f2ca8a820b15053982b2e714b59267719e8a9ff17097",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.6.3"
+      },
+      "crypto": {
+        "dependency": "direct main",
+        "description": {
+          "name": "crypto",
+          "sha256": "ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.3"
+      },
+      "csslib": {
+        "dependency": "direct main",
+        "description": {
+          "name": "csslib",
+          "sha256": "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.0"
+      },
+      "dap": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dap",
+          "sha256": "1dc9a11bc60836b151672d3edb6a56a18383ecf122e56eaf5837b32c81641aeb",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.0"
+      },
+      "dds": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dds",
+          "sha256": "b7c2e57d24edda6b1d37fbd0748aefc1d75d9257a7dd0328d31398754144eac4",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.9.5"
+      },
+      "dds_service_extensions": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dds_service_extensions",
+          "sha256": "609d0a5d928502f7d160e4466f644474352721f4880c840ec9e8d208fff16d95",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.6.0"
+      },
+      "devtools_shared": {
+        "dependency": "direct main",
+        "description": {
+          "name": "devtools_shared",
+          "sha256": "2fc4a90ba419b5cb59c6c7a060e94e9c4fdd993d96ef598910c572cb107f1f42",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.26.1"
+      },
+      "dwds": {
+        "dependency": "direct main",
+        "description": {
+          "name": "dwds",
+          "sha256": "44778de6f92203fad32c550ca0d7a9bd1377e6926272ff7eda7c7a1bdde0cf2b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "21.0.0+1"
+      },
+      "fake_async": {
+        "dependency": "direct main",
+        "description": {
+          "name": "fake_async",
+          "sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.3.1"
+      },
+      "file": {
+        "dependency": "direct main",
+        "description": {
+          "name": "file",
+          "sha256": "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.1.4"
+      },
+      "file_testing": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "file_testing",
+          "sha256": "0aaadb4025bd350403f4308ad6c4cea953278d9407814b8342558e4946840fb5",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.0"
+      },
+      "fixnum": {
+        "dependency": "direct main",
+        "description": {
+          "name": "fixnum",
+          "sha256": "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.0"
+      },
+      "flutter_template_images": {
+        "dependency": "direct main",
+        "description": {
+          "name": "flutter_template_images",
+          "sha256": "fd3e55af73c577b9e3f88d4080d3e366cb5c8ef3fbd50b94dfeca56bb0235df6",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.2.0"
+      },
+      "frontend_server_client": {
+        "dependency": "direct main",
+        "description": {
+          "name": "frontend_server_client",
+          "sha256": "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.2.0"
+      },
+      "glob": {
+        "dependency": "direct main",
+        "description": {
+          "name": "glob",
+          "sha256": "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.2"
+      },
+      "graphs": {
+        "dependency": "direct main",
+        "description": {
+          "name": "graphs",
+          "sha256": "aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.3.1"
+      },
+      "html": {
+        "dependency": "direct main",
+        "description": {
+          "name": "html",
+          "sha256": "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.15.4"
+      },
+      "http": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http",
+          "sha256": "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.13.6"
+      },
+      "http_multi_server": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http_multi_server",
+          "sha256": "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.2.1"
+      },
+      "http_parser": {
+        "dependency": "direct main",
+        "description": {
+          "name": "http_parser",
+          "sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.0.2"
+      },
+      "intl": {
+        "dependency": "direct main",
+        "description": {
+          "name": "intl",
+          "sha256": "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.18.1"
+      },
+      "io": {
+        "dependency": "direct main",
+        "description": {
+          "name": "io",
+          "sha256": "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "js": {
+        "dependency": "direct main",
+        "description": {
+          "name": "js",
+          "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.6.7"
+      },
+      "json_annotation": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "json_annotation",
+          "sha256": "b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.8.1"
+      },
+      "json_rpc_2": {
+        "dependency": "direct main",
+        "description": {
+          "name": "json_rpc_2",
+          "sha256": "5e469bffa23899edacb7b22787780068d650b106a21c76db3c49218ab7ca447e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.2"
+      },
+      "logging": {
+        "dependency": "direct main",
+        "description": {
+          "name": "logging",
+          "sha256": "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.0"
+      },
+      "matcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "matcher",
+          "sha256": "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.12.16"
+      },
+      "meta": {
+        "dependency": "direct main",
+        "description": {
+          "name": "meta",
+          "sha256": "a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.10.0"
+      },
+      "mime": {
+        "dependency": "direct main",
+        "description": {
+          "name": "mime",
+          "sha256": "e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "multicast_dns": {
+        "dependency": "direct main",
+        "description": {
+          "name": "multicast_dns",
+          "sha256": "f4fd1c3365171fac5160afcb1a283001d3413dee5fd41c61d80888952d609379",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.3.2+4"
+      },
+      "mustache_template": {
+        "dependency": "direct main",
+        "description": {
+          "name": "mustache_template",
+          "sha256": "a46e26f91445bfb0b60519be280555b06792460b27b19e2b19ad5b9740df5d1c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.0"
+      },
+      "native_assets_builder": {
+        "dependency": "direct main",
+        "description": {
+          "name": "native_assets_builder",
+          "sha256": "83e92c0f4917cfea0af594aac9ab5ee7d396fbcee1c19839ff33b8e1666cd84e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.2.3"
+      },
+      "native_assets_cli": {
+        "dependency": "direct main",
+        "description": {
+          "name": "native_assets_cli",
+          "sha256": "51d1af3ebc2437f5883ed749f1877cb82d6a569b0712dad02c8370e6e4f2b5e3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.2.0"
+      },
+      "native_stack_traces": {
+        "dependency": "direct main",
+        "description": {
+          "name": "native_stack_traces",
+          "sha256": "c797830b9910d13b0f4e70ddef15cde034214fe3bdb8092c4ea5ffad2f74013f",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.5.6"
+      },
+      "node_preamble": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "node_preamble",
+          "sha256": "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.0.2"
+      },
+      "package_config": {
+        "dependency": "direct main",
+        "description": {
+          "name": "package_config",
+          "sha256": "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.0"
+      },
+      "path": {
+        "dependency": "direct main",
+        "description": {
+          "name": "path",
+          "sha256": "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.8.3"
+      },
+      "petitparser": {
+        "dependency": "direct main",
+        "description": {
+          "name": "petitparser",
+          "sha256": "eeb2d1428ee7f4170e2bd498827296a18d4e7fc462b71727d111c0ac7707cfa6",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.0.1"
+      },
+      "platform": {
+        "dependency": "direct main",
+        "description": {
+          "name": "platform",
+          "sha256": "ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.2"
+      },
+      "pool": {
+        "dependency": "direct main",
+        "description": {
+          "name": "pool",
+          "sha256": "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.5.1"
+      },
+      "process": {
+        "dependency": "direct main",
+        "description": {
+          "name": "process",
+          "sha256": "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.2.4"
+      },
+      "pub_semver": {
+        "dependency": "direct main",
+        "description": {
+          "name": "pub_semver",
+          "sha256": "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.4"
+      },
+      "pubspec_parse": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "pubspec_parse",
+          "sha256": "c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.3"
+      },
+      "shelf": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf",
+          "sha256": "ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.4.1"
+      },
+      "shelf_packages_handler": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_packages_handler",
+          "sha256": "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.2"
+      },
+      "shelf_proxy": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_proxy",
+          "sha256": "a71d2307f4393211930c590c3d2c00630f6c5a7a77edc1ef6436dfd85a6a7ee3",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "shelf_static": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_static",
+          "sha256": "a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.2"
+      },
+      "shelf_web_socket": {
+        "dependency": "direct main",
+        "description": {
+          "name": "shelf_web_socket",
+          "sha256": "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.0.4"
+      },
+      "source_map_stack_trace": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_map_stack_trace",
+          "sha256": "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.1"
+      },
+      "source_maps": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_maps",
+          "sha256": "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.10.12"
+      },
+      "source_span": {
+        "dependency": "direct main",
+        "description": {
+          "name": "source_span",
+          "sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.10.0"
+      },
+      "sse": {
+        "dependency": "direct main",
+        "description": {
+          "name": "sse",
+          "sha256": "3ff9088cac3f45aa8b91336f1962e3ea6c81baaba0bbba361c05f8aa7fb59442",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.1.2"
+      },
+      "stack_trace": {
+        "dependency": "direct main",
+        "description": {
+          "name": "stack_trace",
+          "sha256": "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.11.1"
+      },
+      "standard_message_codec": {
+        "dependency": "direct main",
+        "description": {
+          "name": "standard_message_codec",
+          "sha256": "fc7dd712d191b7e33196a0ecf354c4573492bb95995e7166cb6f73b047f9cae0",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.0.1+4"
+      },
+      "stream_channel": {
+        "dependency": "direct main",
+        "description": {
+          "name": "stream_channel",
+          "sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.2"
+      },
+      "string_scanner": {
+        "dependency": "direct main",
+        "description": {
+          "name": "string_scanner",
+          "sha256": "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.0"
+      },
+      "sync_http": {
+        "dependency": "direct main",
+        "description": {
+          "name": "sync_http",
+          "sha256": "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.3.1"
+      },
+      "term_glyph": {
+        "dependency": "direct main",
+        "description": {
+          "name": "term_glyph",
+          "sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.1"
+      },
+      "test": {
+        "dependency": "direct dev",
+        "description": {
+          "name": "test",
+          "sha256": "9b0dd8e36af4a5b1569029949d50a52cb2a2a2fdaa20cebb96e6603b9ae241f9",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.24.6"
+      },
+      "test_api": {
+        "dependency": "direct main",
+        "description": {
+          "name": "test_api",
+          "sha256": "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.6.1"
+      },
+      "test_core": {
+        "dependency": "direct main",
+        "description": {
+          "name": "test_core",
+          "sha256": "4bef837e56375537055fdbbbf6dd458b1859881f4c7e6da936158f77d61ab265",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.5.6"
+      },
+      "typed_data": {
+        "dependency": "direct main",
+        "description": {
+          "name": "typed_data",
+          "sha256": "facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.3.2"
+      },
+      "unified_analytics": {
+        "dependency": "direct main",
+        "description": {
+          "name": "unified_analytics",
+          "sha256": "fbcb0ad896a15c1ddea7ec45e8bfc92a894490e5792e07b74b2e6e992f4c77f8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "5.8.0"
+      },
+      "usage": {
+        "dependency": "direct main",
+        "description": {
+          "name": "usage",
+          "sha256": "0bdbde65a6e710343d02a56552eeaefd20b735e04bfb6b3ee025b6b22e8d0e15",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "4.1.1"
+      },
+      "uuid": {
+        "dependency": "direct main",
+        "description": {
+          "name": "uuid",
+          "sha256": "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.7"
+      },
+      "vm_service": {
+        "dependency": "direct main",
+        "description": {
+          "name": "vm_service",
+          "sha256": "c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "11.10.0"
+      },
+      "vm_snapshot_analysis": {
+        "dependency": "direct main",
+        "description": {
+          "name": "vm_snapshot_analysis",
+          "sha256": "5a79b9fbb6be2555090f55b03b23907e75d44c3fd7bdd88da09848aa5a1914c8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "0.7.6"
+      },
+      "watcher": {
+        "dependency": "direct main",
+        "description": {
+          "name": "watcher",
+          "sha256": "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.1.0"
+      },
+      "web_socket_channel": {
+        "dependency": "direct main",
+        "description": {
+          "name": "web_socket_channel",
+          "sha256": "d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.4.0"
+      },
+      "webdriver": {
+        "dependency": "direct main",
+        "description": {
+          "name": "webdriver",
+          "sha256": "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.0.2"
+      },
+      "webkit_inspection_protocol": {
+        "dependency": "direct main",
+        "description": {
+          "name": "webkit_inspection_protocol",
+          "sha256": "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "1.2.1"
+      },
+      "xml": {
+        "dependency": "direct main",
+        "description": {
+          "name": "xml",
+          "sha256": "af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "6.4.2"
+      },
+      "yaml": {
+        "dependency": "direct main",
+        "description": {
+          "name": "yaml",
+          "sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "3.1.2"
+      },
+      "yaml_edit": {
+        "dependency": "direct main",
+        "description": {
+          "name": "yaml_edit",
+          "sha256": "1579d4a0340a83cf9e4d580ea51a16329c916973bffd5bd4b45e911b25d46bfd",
+          "url": "https://pub.dev"
+        },
+        "source": "hosted",
+        "version": "2.1.1"
+      }
+    },
+    "sdks": {
+      "dart": ">=3.2.0-36.0.dev <4.0.0"
+    }
+  }
+}
diff --git a/nixpkgs/pkgs/development/compilers/flutter/versions/3_16/patches/disable-auto-update-shared.patch b/nixpkgs/pkgs/development/compilers/flutter/versions/3_16/patches/disable-auto-update-shared.patch
new file mode 100644
index 000000000000..961b41f7327c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/flutter/versions/3_16/patches/disable-auto-update-shared.patch
@@ -0,0 +1,13 @@
+diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
+index 75d9d3013e..657ad3cb78 100644
+--- a/bin/internal/shared.sh
++++ b/bin/internal/shared.sh
+@@ -245,7 +245,7 @@ function shared::execute() {
+   # and will corrupt each others' downloads.
+   #
+   # SHARED_NAME itself is prepared by the caller script.
+-  upgrade_flutter 7< "$SHARED_NAME"
++  # upgrade_flutter 7< "$SHARED_NAME"
+ 
+   BIN_NAME="$(basename "$PROG_NAME")"
+   case "$BIN_NAME" in
diff --git a/nixpkgs/pkgs/development/compilers/flutter/wrapper.nix b/nixpkgs/pkgs/development/compilers/flutter/wrapper.nix
index 38c2eb289310..4a7aedf97d38 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/wrapper.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/wrapper.nix
@@ -3,14 +3,14 @@
 , darwin
 , callPackage
 , flutter
-, supportedTargetPlatforms ? [
+, supportedTargetFlutterPlatforms ? [
     "universal"
     "web"
   ]
   ++ lib.optional stdenv.hostPlatform.isLinux "linux"
   ++ lib.optional (stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isDarwin) "android"
   ++ lib.optionals stdenv.hostPlatform.isDarwin [ "macos" "ios" ]
-, artifactHashes ? (import ./artifacts/hashes.nix).${flutter.version}
+, artifactHashes ? flutter.artifactHashes
 , extraPkgConfigPackages ? [ ]
 , extraLibraries ? [ ]
 , extraIncludes ? [ ]
@@ -44,25 +44,26 @@
 }:
 
 let
-  supportsLinuxDesktopTarget = builtins.elem "linux" supportedTargetPlatforms;
+  supportsLinuxDesktopTarget = builtins.elem "linux" supportedTargetFlutterPlatforms;
 
-  platformArtifacts = lib.genAttrs supportedTargetPlatforms (platform:
+  flutterPlatformArtifacts = lib.genAttrs supportedTargetFlutterPlatforms (flutterPlatform:
     (callPackage ./artifacts/prepare-artifacts.nix {
       src = callPackage ./artifacts/fetch-artifacts.nix {
-        inherit platform;
+        inherit flutterPlatform;
+        systemPlatform = stdenv.hostPlatform.system;
         flutter = callPackage ./wrapper.nix { inherit flutter; };
-        hash = artifactHashes.${platform}.${stdenv.hostPlatform.system} or "";
+        hash = artifactHashes.${flutterPlatform}.${stdenv.hostPlatform.system} or "";
       };
     }));
 
   cacheDir = symlinkJoin rec {
     name = "flutter-cache-dir";
-    paths = builtins.attrValues platformArtifacts;
+    paths = builtins.attrValues flutterPlatformArtifacts;
     postBuild = ''
       mkdir -p "$out/bin/cache"
       ln -s '${flutter}/bin/cache/dart-sdk' "$out/bin/cache"
     '';
-    passthru.platform = platformArtifacts;
+    passthru.flutterPlatform = flutterPlatformArtifacts;
   };
 
   # By default, Flutter stores downloaded files (such as the Pub cache) in the SDK directory.
@@ -127,6 +128,7 @@ in
   passthru = flutter.passthru // {
     inherit (flutter) version;
     unwrapped = flutter;
+    updateScript = ./update/update.py;
     inherit cacheDir;
   };