diff --git a/.gitea/workflows/build-apk.yaml b/.gitea/workflows/build-apk.yaml index 7ea3ad1..c83279e 100644 --- a/.gitea/workflows/build-apk.yaml +++ b/.gitea/workflows/build-apk.yaml @@ -14,6 +14,10 @@ on: - master workflow_dispatch: +env: + # Keep in sync with .github/workflows/build-ios.yaml and pubspec.yaml (environment). + FLUTTER_VERSION: '3.47.4' + jobs: build-android: name: Build Release APKs @@ -21,17 +25,36 @@ jobs: permissions: contents: write container: - image: ghcr.io/cirruslabs/flutter:3.24.5 + # Cirrus Labs stopped publishing Flutter images in May 2026 (last tag: 3.44.0, + # multi-arch amd64/arm64, Ubuntu 24.04, OpenJDK 21, Android SDK 36). The image is + # only used for its JDK + Android SDK; the bundled Flutter SDK is switched to + # FLUTTER_VERSION in the first step. + image: ghcr.io/cirruslabs/flutter:3.44.0 options: --privileged steps: + - name: Switch Flutter SDK to pinned version + run: | + set -euo pipefail + FLUTTER_ROOT="${FLUTTER_ROOT:-/sdks/flutter}" + git config --global --add safe.directory "$FLUTTER_ROOT" + git config --global --add safe.directory '*' + CURRENT="$(git -C "$FLUTTER_ROOT" describe --tags --exact-match 2>/dev/null || true)" + if [ "$CURRENT" != "$FLUTTER_VERSION" ]; then + echo "Switching Flutter SDK from '${CURRENT:-unknown}' to '$FLUTTER_VERSION'" + git -C "$FLUTTER_ROOT" fetch --depth 1 origin "refs/tags/${FLUTTER_VERSION}:refs/tags/${FLUTTER_VERSION}" + git -C "$FLUTTER_ROOT" checkout -q "$FLUTTER_VERSION" + # Drop the cache of the previous version; the Dart SDK and the engine + # artifacts for the new version are downloaded on first use. + rm -rf "$FLUTTER_ROOT/bin/cache" + fi + flutter --version + - name: Setup Node.js 20 & ARM64 Flutter Engine run: | ARCH=$(uname -m) if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then NODE_ARCH="arm64"; else NODE_ARCH="x64"; fi curl -fsSL "https://nodejs.org/dist/v20.18.0/node-v20.18.0-linux-${NODE_ARCH}.tar.gz" | tar -xzf - -C /usr/local --strip-components=1 node --version - git config --global --add safe.directory "$GITHUB_WORKSPACE" - git config --global --add safe.directory '*' # On Linux ARM64, Flutter engine and Android AAPT2 need x86_64 emulation via QEMU. if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then @@ -58,8 +81,10 @@ jobs: done flutter precache --android - for dir in /sdks/flutter/bin/cache/artifacts/engine/android-*; do - if [ -d "$dir/linux-x64" ]; then + # Flutter (still) only ships an x86_64 gen_snapshot for Linux hosts; wrap it + # with QEMU under the linux-arm64 path the tool expects. + for dir in "${FLUTTER_ROOT:-/sdks/flutter}"/bin/cache/artifacts/engine/android-*; do + if [ -d "$dir/linux-x64" ] && [ ! -x "$dir/linux-arm64/gen_snapshot" ]; then mkdir -p "$dir/linux-arm64" printf '#!/bin/sh\nSCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"\nexec %s -L /usr/x86_64-linux-gnu "$SCRIPT_DIR/../linux-x64/gen_snapshot" "$@"\n' "$QEMU_BIN" > "$dir/linux-arm64/gen_snapshot" chmod +x "$dir/linux-arm64/gen_snapshot" diff --git a/.github/workflows/build-ios.yaml b/.github/workflows/build-ios.yaml index b34d644..96b2e81 100644 --- a/.github/workflows/build-ios.yaml +++ b/.github/workflows/build-ios.yaml @@ -10,49 +10,63 @@ on: - 'latest' workflow_dispatch: +# Only the newest push per branch/tag is built. +concurrency: + group: build-ios-${{ github.ref }} + cancel-in-progress: true + +env: + # Keep in sync with .gitea/workflows/build-apk.yaml and pubspec.yaml (environment). + FLUTTER_VERSION: '3.47.4' + jobs: build-ios: name: Build iOS IPA - runs-on: macos-15 + # macOS 26 (arm64) ships Xcode 26 by default; Flutter 3.47 needs Xcode >= 16. + runs-on: macos-26 + timeout-minutes: 60 if: github.server_url == 'https://github.com' steps: - name: Checkout Repository uses: actions/checkout@v4 - - name: Select Xcode Version - run: | - sudo xcode-select -s /Applications/Xcode.app/Contents/Developer - xcodebuild -version - - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: '3.24.5' + flutter-version: ${{ env.FLUTTER_VERSION }} + channel: stable cache: true + - name: Configure Flutter + run: | + # All plugins of this project are integrated via CocoaPods. Turning + # off the (default-on) Swift Package Manager integration keeps the + # build on that single, deterministic path. + flutter config --no-enable-swift-package-manager + - name: Inspect Environment run: | - flutter --version + xcodebuild -version pod --version + flutter --version + flutter doctor -v - name: Fetch Flutter Dependencies run: flutter pub get - - name: Clean Stale Podfile Lock - run: | - rm -rf ios/Pods ios/Podfile.lock + - name: Build iOS (Unsigned) + run: flutter build ios --release --no-codesign - - name: Build iOS (Unsigned IPA) + - name: Package IPA run: | - flutter build ios --release --no-codesign - - rm -rf build/ios/iphoneos/Payload build/ios/iphoneos/oggauer-gemeindetrommler.ipa - mkdir -p build/ios/iphoneos/Payload - cp -r build/ios/iphoneos/Runner.app build/ios/iphoneos/Payload/ + set -euo pipefail cd build/ios/iphoneos - zip -r oggauer-gemeindetrommler.ipa Payload - + rm -rf Payload oggauer-gemeindetrommler.ipa + mkdir Payload + cp -R Runner.app Payload/ + zip -qry oggauer-gemeindetrommler.ipa Payload + ls -lh oggauer-gemeindetrommler.ipa - name: Upload IPA Artifact uses: actions/upload-artifact@v4 @@ -60,3 +74,16 @@ jobs: name: oggauer-gemeindetrommler-ios path: build/ios/iphoneos/oggauer-gemeindetrommler.ipa retention-days: 7 + if-no-files-found: error + + - name: Upload Xcode Logs (on failure) + if: failure() + uses: actions/upload-artifact@v4 + with: + name: ios-build-logs + path: | + ~/Library/Logs/DiagnosticReports/*.ips + build/ios/**/*.log + ios/Podfile.lock + if-no-files-found: ignore + retention-days: 3 diff --git a/README.md b/README.md index 9fd155f..3071fcd 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ Die Sicherheit und Integrität der Bürgerdaten wird durch ein mehrstufiges Sich ## 🏗️ Technische Architektur & Tech-Stack ### Verwendete Technologien: -- **Framework:** [Flutter](https://flutter.dev) (Dart SDK `>=3.0.0`) +- **Framework:** [Flutter](https://flutter.dev) `3.47.x` (Dart SDK `>=3.11`), Android `minSdk 23`, iOS `>= 15.0` - **Backend & Cloud Services (Google Firebase):** - `firebase_core` (Initialisierung) - `firebase_auth` (E-Mail & Passwort Authentifizierung, Gast-Modus) @@ -117,7 +117,7 @@ Die Sicherheit und Integrität der Bürgerdaten wird durch ein mehrstufiges Sich - `pdf`, `printing` (PDF-Generierung, In-App Vorschau & Druck) - `url_launcher` (System-Browser, Telefon- und E-Mail-Intents) - **Bildverarbeitung:** - - `image_picker`, `image_cropper`, `cached_network_image`, `image` + - `image_picker`, `cached_network_image`, `image` - **State Management:** - `provider` (`MultiProvider` Architektur) @@ -150,25 +150,34 @@ lib/ --- -## 🤖 CI/CD Pipeline (Gitea Actions) +## 🤖 CI/CD Pipeline -Die App verfügt über eine vollautomatische Build-Pipeline für **Gitea Actions** (`.gitea/workflows/build-apk.yaml`): +Die Flutter-Version ist zentral gepinnt (`FLUTTER_VERSION` in beiden Workflows, `environment` in `pubspec.yaml`) und muss bei einem Upgrade an allen drei Stellen gemeinsam angehoben werden. -- **Build-Container:** `ghcr.io/cirruslabs/flutter:3.24.5` mit vorkonfiguriertem Android SDK und Java 17. +### Android (Gitea Actions, `.gitea/workflows/build-apk.yaml`) + +- **Build-Container:** `ghcr.io/cirruslabs/flutter:3.44.0` (letztes von Cirrus Labs veröffentlichtes Image, liefert JDK 21 + Android SDK 36). Das darin enthaltene Flutter-SDK wird im ersten Schritt per `git checkout` auf `FLUTTER_VERSION` umgeschaltet. +- **Runner:** Oracle Cloud ARM64 – x86_64-Werkzeuge (AAPT2, `gen_snapshot`) laufen über QEMU (`scripts/ci/qemu_intercept.c`). - **Automatisierte Qualitätskontrolle:** Führt vor jedem Build `flutter analyze` und `flutter test` aus. - **Erzeugte APK-Pakete:** 1. `oggauer-gemeindetrommler-universal-release.apk` (Universelle Version für alle Android-Smartphones). 2. `oggauer-gemeindetrommler-arm64-v8a.apk` (Optimiert für moderne 64-Bit Geräte). 3. `oggauer-gemeindetrommler-armeabi-v7a.apk` (Für ältere 32-Bit Geräte). 4. `oggauer-gemeindetrommler-x86_64.apk` (Für Emulatoren). -- **Download:** Die gebauten APKs stehen nach jedem Durchlauf als ZIP-Artefakt (`oggauer-gemeindetrommler-apks`) im Gitea-Reiter **Aktionen** zum Download bereit. +- **Download:** Die gebauten APKs stehen nach jedem Durchlauf als Artefakte im Gitea-Reiter **Aktionen** sowie im Release `latest` zum Download bereit. + +### iOS (GitHub Actions, `.github/workflows/build-ios.yaml`) + +- **Runner:** `macos-26` (Xcode 26), Flutter über `subosito/flutter-action`. +- **Plugins:** ausschließlich über CocoaPods (Swift Package Manager ist im Workflow bewusst deaktiviert); `ios/Podfile.lock` wird nicht versioniert, `pod install` läuft bei jedem Build frisch. +- **Ergebnis:** unsigniertes IPA (`flutter build ios --release --no-codesign`) als Artefakt `oggauer-gemeindetrommler-ios` – für die Verteilung muss es nachträglich signiert werden. --- ## 🛠️ Einrichtung & Lokale Ausführung ### Voraussetzungen: -- **Flutter SDK:** `>= 3.19.x` +- **Flutter SDK:** `3.47.x` (stable) – identisch zur in den Workflows gepinnten Version - **Dart SDK:** Im Flutter SDK enthalten - **Android Studio / VS Code / Xcode** mit entsprechenden Emulatoren oder Testgeräten diff --git a/analysis_options.yaml b/analysis_options.yaml index 61b6c4d..95b46dc 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -9,6 +9,12 @@ # packages, and plugins designed to encourage good coding practices. include: package:flutter_lints/flutter.yaml +analyzer: + exclude: + - build/** + - android/** + - ios/** + linter: # The lint rules applied to this project can be customized in the # section below to disable rules from the `package:flutter_lints/flutter.yaml` diff --git a/android/app/build.gradle b/android/app/build.gradle index 20ff4b8..c7b00ab 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,60 +1,34 @@ plugins { id "com.android.application" - id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + // (With android.builtInKotlin=false the Flutter plugin applies kotlin-android itself.) id "dev.flutter.flutter-gradle-plugin" id "com.google.gms.google-services" } -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - android { namespace "com.oggauergemeindetrommler.app" - compileSdkVersion flutter.compileSdkVersion - ndkVersion "26.1.10909125" + compileSdk flutter.compileSdkVersion + ndkVersion flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = '17' - } - buildFeatures { buildConfig = true } - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.oggauergemeindetrommler.app" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. - minSdkVersion 23 - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - multiDexEnabled true + // Flutter 3.47 defaults to 24; 23 (Android 6.0) is still supported and + // is also the minimum required by the current Firebase Android SDKs. + minSdkVersion flutter.minSdkVersion + targetSdk flutter.targetSdkVersion + // Read from pubspec.yaml (via local.properties); defaults to 1 / "1.0". + versionCode flutter.versionCode + versionName flutter.versionName } buildTypes { @@ -66,8 +40,12 @@ android { } } +kotlin { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 + } +} + flutter { source '../..' } - -dependencies {} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index bc3f3f1..d266820 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + /build so the Flutter CLI finds the APKs. +// (Project.buildDir was removed in Gradle 9 -> use layout.buildDirectory.) +def newBuildDir = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - - // Inject namespace into plugins that don't have it (required for AGP 8+) - afterEvaluate { project -> - if (project.hasProperty('android')) { - project.android { - if (namespace == null) { - namespace project.group - } - } - } - } + project.layout.buildDirectory.value(newBuildDir.dir(project.name)) } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { - delete rootProject.buildDir + delete rootProject.layout.buildDirectory } - diff --git a/android/gradle.properties b/android/gradle.properties index 5d7af41..a8c13fa 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,3 +1,11 @@ -org.gradle.jvmargs=-Xmx1536M -Djdk.lang.Process.launchMechanism=vfork +# vfork keeps process spawning cheap under QEMU user-mode emulation (ARM64 CI runner). +org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=1G -XX:+HeapDumpOnOutOfMemoryError -Djdk.lang.Process.launchMechanism=vfork android.useAndroidX=true -android.enableJetifier=true +# Stay on the legacy AGP DSL / external Kotlin plugin until all Flutter plugins +# support the AGP 9 built-in Kotlin (same as the Flutter 3.47 project template). +android.newDsl=false +android.builtInKotlin=false +# Kotlin incremental compilation stores project-relative paths and breaks on Windows +# when the pub cache (C:) and the project live on different drives +# ("this and base files have different roots"). CI builds are clean anyway. +kotlin.incremental=false diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index afa1e8e..a20f2c4 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index 93b261b..1629c76 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -20,11 +20,14 @@ pluginManagement { } } +// Versions follow the Flutter 3.47 project template (see +// packages/flutter_tools/lib/src/android/gradle_utils.dart in the Flutter SDK). +// Flutter refuses to build with AGP < 8.11.1, Kotlin < 2.2.20 or Gradle < 8.14. plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.5.2" apply false - id "org.jetbrains.kotlin.android" version "1.9.22" apply false - id "com.google.gms.google-services" version "4.4.1" apply false + id "com.android.application" version "9.1.0" apply false + id "org.jetbrains.kotlin.android" version "2.4.0" apply false + id "com.google.gms.google-services" version "4.5.0" apply false } include ":app" diff --git a/ios/.gitignore b/ios/.gitignore index 7a7f987..461cf7d 100644 --- a/ios/.gitignore +++ b/ios/.gitignore @@ -32,3 +32,8 @@ Runner/GeneratedPluginRegistrant.* !default.mode2v3 !default.pbxuser !default.perspectivev3 + +# Podfile.lock is intentionally not tracked: development happens on Windows (no +# CocoaPods), and the iOS CI always runs a fresh `pod install`. A stale lock file +# only causes "sandbox is not in sync" / incompatible pod version errors. +Podfile.lock diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index a623005..17ac34b 100644 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -20,7 +20,5 @@ ???? CFBundleVersion 1.0 - MinimumOSVersion - 11.0 diff --git a/ios/Podfile b/ios/Podfile index bda3fca..cb7606e 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,4 +1,5 @@ -platform :ios, '13.0' +# Flutter 3.47+ requires iOS 15.0 as the minimum deployment target. +platform :ios, '15.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' @@ -37,7 +38,10 @@ post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' + # Keep every pod on the same deployment target as the app so old + # podspecs do not drag the minimum back below what Flutter supports. + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0' + # Pods never need to be signed; the CI produces an unsigned IPA. config.build_settings['CODE_SIGNING_REQUIRED'] = 'NO' config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' end diff --git a/ios/Podfile.lock b/ios/Podfile.lock deleted file mode 100644 index f78bd75..0000000 --- a/ios/Podfile.lock +++ /dev/null @@ -1,842 +0,0 @@ -PODS: - - abseil/algorithm (1.20211102.0): - - abseil/algorithm/algorithm (= 1.20211102.0) - - abseil/algorithm/container (= 1.20211102.0) - - abseil/algorithm/algorithm (1.20211102.0): - - abseil/base/config - - abseil/algorithm/container (1.20211102.0): - - abseil/algorithm/algorithm - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/base (1.20211102.0): - - abseil/base/atomic_hook (= 1.20211102.0) - - abseil/base/base (= 1.20211102.0) - - abseil/base/base_internal (= 1.20211102.0) - - abseil/base/config (= 1.20211102.0) - - abseil/base/core_headers (= 1.20211102.0) - - abseil/base/dynamic_annotations (= 1.20211102.0) - - abseil/base/endian (= 1.20211102.0) - - abseil/base/errno_saver (= 1.20211102.0) - - abseil/base/fast_type_id (= 1.20211102.0) - - abseil/base/log_severity (= 1.20211102.0) - - abseil/base/malloc_internal (= 1.20211102.0) - - abseil/base/pretty_function (= 1.20211102.0) - - abseil/base/raw_logging_internal (= 1.20211102.0) - - abseil/base/spinlock_wait (= 1.20211102.0) - - abseil/base/strerror (= 1.20211102.0) - - abseil/base/throw_delegate (= 1.20211102.0) - - abseil/base/atomic_hook (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/base (1.20211102.0): - - abseil/base/atomic_hook - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/log_severity - - abseil/base/raw_logging_internal - - abseil/base/spinlock_wait - - abseil/meta/type_traits - - abseil/base/base_internal (1.20211102.0): - - abseil/base/config - - abseil/meta/type_traits - - abseil/base/config (1.20211102.0) - - abseil/base/core_headers (1.20211102.0): - - abseil/base/config - - abseil/base/dynamic_annotations (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian (1.20211102.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/errno_saver (1.20211102.0): - - abseil/base/config - - abseil/base/fast_type_id (1.20211102.0): - - abseil/base/config - - abseil/base/log_severity (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/malloc_internal (1.20211102.0): - - abseil/base/base - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/raw_logging_internal - - abseil/base/pretty_function (1.20211102.0) - - abseil/base/raw_logging_internal (1.20211102.0): - - abseil/base/atomic_hook - - abseil/base/config - - abseil/base/core_headers - - abseil/base/log_severity - - abseil/base/spinlock_wait (1.20211102.0): - - abseil/base/base_internal - - abseil/base/core_headers - - abseil/base/errno_saver - - abseil/base/strerror (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/errno_saver - - abseil/base/throw_delegate (1.20211102.0): - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/container/common (1.20211102.0): - - abseil/meta/type_traits - - abseil/types/optional - - abseil/container/compressed_tuple (1.20211102.0): - - abseil/utility/utility - - abseil/container/container_memory (1.20211102.0): - - abseil/base/config - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/utility/utility - - abseil/container/fixed_array (1.20211102.0): - - abseil/algorithm/algorithm - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/throw_delegate - - abseil/container/compressed_tuple - - abseil/memory/memory - - abseil/container/flat_hash_map (1.20211102.0): - - abseil/algorithm/container - - abseil/container/container_memory - - abseil/container/hash_function_defaults - - abseil/container/raw_hash_map - - abseil/memory/memory - - abseil/container/hash_function_defaults (1.20211102.0): - - abseil/base/config - - abseil/hash/hash - - abseil/strings/cord - - abseil/strings/strings - - abseil/container/hash_policy_traits (1.20211102.0): - - abseil/meta/type_traits - - abseil/container/hashtable_debug_hooks (1.20211102.0): - - abseil/base/config - - abseil/container/hashtablez_sampler (1.20211102.0): - - abseil/base/base - - abseil/base/core_headers - - abseil/container/have_sse - - abseil/debugging/stacktrace - - abseil/memory/memory - - abseil/profiling/exponential_biased - - abseil/profiling/sample_recorder - - abseil/synchronization/synchronization - - abseil/utility/utility - - abseil/container/have_sse (1.20211102.0) - - abseil/container/inlined_vector (1.20211102.0): - - abseil/algorithm/algorithm - - abseil/base/core_headers - - abseil/base/throw_delegate - - abseil/container/inlined_vector_internal - - abseil/memory/memory - - abseil/container/inlined_vector_internal (1.20211102.0): - - abseil/base/core_headers - - abseil/container/compressed_tuple - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/types/span - - abseil/container/layout (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/strings/strings - - abseil/types/span - - abseil/utility/utility - - abseil/container/raw_hash_map (1.20211102.0): - - abseil/base/throw_delegate - - abseil/container/container_memory - - abseil/container/raw_hash_set - - abseil/container/raw_hash_set (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/container/common - - abseil/container/compressed_tuple - - abseil/container/container_memory - - abseil/container/hash_policy_traits - - abseil/container/hashtable_debug_hooks - - abseil/container/hashtablez_sampler - - abseil/container/have_sse - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/utility/utility - - abseil/debugging/debugging_internal (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/errno_saver - - abseil/base/raw_logging_internal - - abseil/debugging/demangle_internal (1.20211102.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/debugging/stacktrace (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/debugging/debugging_internal - - abseil/debugging/symbolize (1.20211102.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/malloc_internal - - abseil/base/raw_logging_internal - - abseil/debugging/debugging_internal - - abseil/debugging/demangle_internal - - abseil/strings/strings - - abseil/functional/bind_front (1.20211102.0): - - abseil/base/base_internal - - abseil/container/compressed_tuple - - abseil/meta/type_traits - - abseil/utility/utility - - abseil/functional/function_ref (1.20211102.0): - - abseil/base/base_internal - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/hash/city (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/hash/hash (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/container/fixed_array - - abseil/hash/city - - abseil/hash/low_level_hash - - abseil/meta/type_traits - - abseil/numeric/int128 - - abseil/strings/strings - - abseil/types/optional - - abseil/types/variant - - abseil/utility/utility - - abseil/hash/low_level_hash (1.20211102.0): - - abseil/base/config - - abseil/base/endian - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/memory (1.20211102.0): - - abseil/memory/memory (= 1.20211102.0) - - abseil/memory/memory (1.20211102.0): - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/meta (1.20211102.0): - - abseil/meta/type_traits (= 1.20211102.0) - - abseil/meta/type_traits (1.20211102.0): - - abseil/base/config - - abseil/numeric/bits (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/numeric/int128 (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/numeric/bits - - abseil/numeric/representation (1.20211102.0): - - abseil/base/config - - abseil/profiling/exponential_biased (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/profiling/sample_recorder (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/synchronization/synchronization - - abseil/time/time - - abseil/random/distributions (1.20211102.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/random/internal/distribution_caller - - abseil/random/internal/fast_uniform_bits - - abseil/random/internal/fastmath - - abseil/random/internal/generate_real - - abseil/random/internal/iostream_state_saver - - abseil/random/internal/traits - - abseil/random/internal/uniform_helper - - abseil/random/internal/wide_multiply - - abseil/strings/strings - - abseil/random/internal/distribution_caller (1.20211102.0): - - abseil/base/config - - abseil/base/fast_type_id - - abseil/utility/utility - - abseil/random/internal/fast_uniform_bits (1.20211102.0): - - abseil/base/config - - abseil/meta/type_traits - - abseil/random/internal/fastmath (1.20211102.0): - - abseil/numeric/bits - - abseil/random/internal/generate_real (1.20211102.0): - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/random/internal/fastmath - - abseil/random/internal/traits - - abseil/random/internal/iostream_state_saver (1.20211102.0): - - abseil/meta/type_traits - - abseil/numeric/int128 - - abseil/random/internal/nonsecure_base (1.20211102.0): - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/random/internal/pool_urbg - - abseil/random/internal/salted_seed_seq - - abseil/random/internal/seed_material - - abseil/types/optional - - abseil/types/span - - abseil/random/internal/pcg_engine (1.20211102.0): - - abseil/base/config - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/random/internal/fastmath - - abseil/random/internal/iostream_state_saver - - abseil/random/internal/platform (1.20211102.0): - - abseil/base/config - - abseil/random/internal/pool_urbg (1.20211102.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/raw_logging_internal - - abseil/random/internal/randen - - abseil/random/internal/seed_material - - abseil/random/internal/traits - - abseil/random/seed_gen_exception - - abseil/types/span - - abseil/random/internal/randen (1.20211102.0): - - abseil/base/raw_logging_internal - - abseil/random/internal/platform - - abseil/random/internal/randen_hwaes - - abseil/random/internal/randen_slow - - abseil/random/internal/randen_engine (1.20211102.0): - - abseil/base/endian - - abseil/meta/type_traits - - abseil/random/internal/iostream_state_saver - - abseil/random/internal/randen - - abseil/random/internal/randen_hwaes (1.20211102.0): - - abseil/base/config - - abseil/random/internal/platform - - abseil/random/internal/randen_hwaes_impl - - abseil/random/internal/randen_hwaes_impl (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/numeric/int128 - - abseil/random/internal/platform - - abseil/random/internal/randen_slow (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/numeric/int128 - - abseil/random/internal/platform - - abseil/random/internal/salted_seed_seq (1.20211102.0): - - abseil/container/inlined_vector - - abseil/meta/type_traits - - abseil/random/internal/seed_material - - abseil/types/optional - - abseil/types/span - - abseil/random/internal/seed_material (1.20211102.0): - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/raw_logging_internal - - abseil/random/internal/fast_uniform_bits - - abseil/strings/strings - - abseil/types/optional - - abseil/types/span - - abseil/random/internal/traits (1.20211102.0): - - abseil/base/config - - abseil/random/internal/uniform_helper (1.20211102.0): - - abseil/base/config - - abseil/meta/type_traits - - abseil/random/internal/traits - - abseil/random/internal/wide_multiply (1.20211102.0): - - abseil/base/config - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/random/internal/traits - - abseil/random/random (1.20211102.0): - - abseil/random/distributions - - abseil/random/internal/nonsecure_base - - abseil/random/internal/pcg_engine - - abseil/random/internal/pool_urbg - - abseil/random/internal/randen_engine - - abseil/random/seed_sequences - - abseil/random/seed_gen_exception (1.20211102.0): - - abseil/base/config - - abseil/random/seed_sequences (1.20211102.0): - - abseil/container/inlined_vector - - abseil/random/internal/nonsecure_base - - abseil/random/internal/pool_urbg - - abseil/random/internal/salted_seed_seq - - abseil/random/internal/seed_material - - abseil/random/seed_gen_exception - - abseil/types/span - - abseil/status/status (1.20211102.0): - - abseil/base/atomic_hook - - abseil/base/config - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/container/inlined_vector - - abseil/debugging/stacktrace - - abseil/debugging/symbolize - - abseil/functional/function_ref - - abseil/strings/cord - - abseil/strings/str_format - - abseil/strings/strings - - abseil/types/optional - - abseil/status/statusor (1.20211102.0): - - abseil/base/base - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/meta/type_traits - - abseil/status/status - - abseil/strings/strings - - abseil/types/variant - - abseil/utility/utility - - abseil/strings/cord (1.20211102.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/raw_logging_internal - - abseil/container/fixed_array - - abseil/container/inlined_vector - - abseil/functional/function_ref - - abseil/meta/type_traits - - abseil/strings/cord_internal - - abseil/strings/cordz_functions - - abseil/strings/cordz_info - - abseil/strings/cordz_statistics - - abseil/strings/cordz_update_scope - - abseil/strings/cordz_update_tracker - - abseil/strings/internal - - abseil/strings/str_format - - abseil/strings/strings - - abseil/types/optional - - abseil/strings/cord_internal (1.20211102.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/raw_logging_internal - - abseil/base/throw_delegate - - abseil/container/compressed_tuple - - abseil/container/inlined_vector - - abseil/container/layout - - abseil/functional/function_ref - - abseil/meta/type_traits - - abseil/strings/strings - - abseil/types/span - - abseil/strings/cordz_functions (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/profiling/exponential_biased - - abseil/strings/cordz_handle (1.20211102.0): - - abseil/base/base - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/synchronization/synchronization - - abseil/strings/cordz_info (1.20211102.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/container/inlined_vector - - abseil/debugging/stacktrace - - abseil/strings/cord_internal - - abseil/strings/cordz_functions - - abseil/strings/cordz_handle - - abseil/strings/cordz_statistics - - abseil/strings/cordz_update_tracker - - abseil/synchronization/synchronization - - abseil/types/span - - abseil/strings/cordz_statistics (1.20211102.0): - - abseil/base/config - - abseil/strings/cordz_update_tracker - - abseil/strings/cordz_update_scope (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/strings/cord_internal - - abseil/strings/cordz_info - - abseil/strings/cordz_update_tracker - - abseil/strings/cordz_update_tracker (1.20211102.0): - - abseil/base/config - - abseil/strings/internal (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/raw_logging_internal - - abseil/meta/type_traits - - abseil/strings/str_format (1.20211102.0): - - abseil/strings/str_format_internal - - abseil/strings/str_format_internal (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/functional/function_ref - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/numeric/representation - - abseil/strings/strings - - abseil/types/optional - - abseil/types/span - - abseil/strings/strings (1.20211102.0): - - abseil/base/base - - abseil/base/config - - abseil/base/core_headers - - abseil/base/endian - - abseil/base/raw_logging_internal - - abseil/base/throw_delegate - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/numeric/bits - - abseil/numeric/int128 - - abseil/strings/internal - - abseil/synchronization/graphcycles_internal (1.20211102.0): - - abseil/base/base - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/malloc_internal - - abseil/base/raw_logging_internal - - abseil/synchronization/kernel_timeout_internal (1.20211102.0): - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/time/time - - abseil/synchronization/synchronization (1.20211102.0): - - abseil/base/atomic_hook - - abseil/base/base - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/base/dynamic_annotations - - abseil/base/malloc_internal - - abseil/base/raw_logging_internal - - abseil/debugging/stacktrace - - abseil/debugging/symbolize - - abseil/synchronization/graphcycles_internal - - abseil/synchronization/kernel_timeout_internal - - abseil/time/time - - abseil/time (1.20211102.0): - - abseil/time/internal (= 1.20211102.0) - - abseil/time/time (= 1.20211102.0) - - abseil/time/internal (1.20211102.0): - - abseil/time/internal/cctz (= 1.20211102.0) - - abseil/time/internal/cctz (1.20211102.0): - - abseil/time/internal/cctz/civil_time (= 1.20211102.0) - - abseil/time/internal/cctz/time_zone (= 1.20211102.0) - - abseil/time/internal/cctz/civil_time (1.20211102.0): - - abseil/base/config - - abseil/time/internal/cctz/time_zone (1.20211102.0): - - abseil/base/config - - abseil/time/internal/cctz/civil_time - - abseil/time/time (1.20211102.0): - - abseil/base/base - - abseil/base/core_headers - - abseil/base/raw_logging_internal - - abseil/numeric/int128 - - abseil/strings/strings - - abseil/time/internal/cctz/civil_time - - abseil/time/internal/cctz/time_zone - - abseil/types (1.20211102.0): - - abseil/types/any (= 1.20211102.0) - - abseil/types/bad_any_cast (= 1.20211102.0) - - abseil/types/bad_any_cast_impl (= 1.20211102.0) - - abseil/types/bad_optional_access (= 1.20211102.0) - - abseil/types/bad_variant_access (= 1.20211102.0) - - abseil/types/compare (= 1.20211102.0) - - abseil/types/optional (= 1.20211102.0) - - abseil/types/span (= 1.20211102.0) - - abseil/types/variant (= 1.20211102.0) - - abseil/types/any (1.20211102.0): - - abseil/base/config - - abseil/base/core_headers - - abseil/base/fast_type_id - - abseil/meta/type_traits - - abseil/types/bad_any_cast - - abseil/utility/utility - - abseil/types/bad_any_cast (1.20211102.0): - - abseil/base/config - - abseil/types/bad_any_cast_impl - - abseil/types/bad_any_cast_impl (1.20211102.0): - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/types/bad_optional_access (1.20211102.0): - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/types/bad_variant_access (1.20211102.0): - - abseil/base/config - - abseil/base/raw_logging_internal - - abseil/types/compare (1.20211102.0): - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/types/optional (1.20211102.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/memory/memory - - abseil/meta/type_traits - - abseil/types/bad_optional_access - - abseil/utility/utility - - abseil/types/span (1.20211102.0): - - abseil/algorithm/algorithm - - abseil/base/core_headers - - abseil/base/throw_delegate - - abseil/meta/type_traits - - abseil/types/variant (1.20211102.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/base/core_headers - - abseil/meta/type_traits - - abseil/types/bad_variant_access - - abseil/utility/utility - - abseil/utility/utility (1.20211102.0): - - abseil/base/base_internal - - abseil/base/config - - abseil/meta/type_traits - - BoringSSL-GRPC (0.0.24): - - BoringSSL-GRPC/Implementation (= 0.0.24) - - BoringSSL-GRPC/Interface (= 0.0.24) - - BoringSSL-GRPC/Implementation (0.0.24): - - BoringSSL-GRPC/Interface (= 0.0.24) - - BoringSSL-GRPC/Interface (0.0.24) - - cloud_firestore (4.6.0): - - Firebase/Firestore (= 10.7.0) - - firebase_core - - Flutter - - nanopb (< 2.30910.0, >= 2.30908.0) - - Firebase/Auth (10.7.0): - - Firebase/CoreOnly - - FirebaseAuth (~> 10.7.0) - - Firebase/CoreOnly (10.7.0): - - FirebaseCore (= 10.7.0) - - Firebase/Firestore (10.7.0): - - Firebase/CoreOnly - - FirebaseFirestore (~> 10.7.0) - - Firebase/Storage (10.7.0): - - Firebase/CoreOnly - - FirebaseStorage (~> 10.7.0) - - firebase_auth (4.5.0): - - Firebase/Auth (= 10.7.0) - - firebase_core - - Flutter - - firebase_core (2.11.0): - - Firebase/CoreOnly (= 10.7.0) - - Flutter - - firebase_storage (11.1.2): - - Firebase/Storage (= 10.7.0) - - firebase_core - - Flutter - - FirebaseAppCheckInterop (10.9.0) - - FirebaseAuth (10.7.0): - - FirebaseCore (~> 10.0) - - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - - GoogleUtilities/Environment (~> 7.8) - - GTMSessionFetcher/Core (< 4.0, >= 2.1) - - FirebaseAuthInterop (10.9.0) - - FirebaseCore (10.7.0): - - FirebaseCoreInternal (~> 10.0) - - GoogleUtilities/Environment (~> 7.8) - - GoogleUtilities/Logger (~> 7.8) - - FirebaseCoreExtension (10.9.0): - - FirebaseCore (~> 10.0) - - FirebaseCoreInternal (10.9.0): - - "GoogleUtilities/NSData+zlib (~> 7.8)" - - FirebaseFirestore (10.7.0): - - abseil/algorithm (~> 1.20211102.0) - - abseil/base (~> 1.20211102.0) - - abseil/container/flat_hash_map (~> 1.20211102.0) - - abseil/memory (~> 1.20211102.0) - - abseil/meta (~> 1.20211102.0) - - abseil/strings/strings (~> 1.20211102.0) - - abseil/time (~> 1.20211102.0) - - abseil/types (~> 1.20211102.0) - - FirebaseCore (~> 10.0) - - "gRPC-C++ (~> 1.44.0)" - - leveldb-library (~> 1.22) - - nanopb (< 2.30910.0, >= 2.30908.0) - - FirebaseStorage (10.7.0): - - FirebaseAppCheckInterop (~> 10.0) - - FirebaseAuthInterop (~> 10.0) - - FirebaseCore (~> 10.0) - - FirebaseCoreExtension (~> 10.0) - - GTMSessionFetcher/Core (< 4.0, >= 2.1) - - Flutter (1.0.0) - - FMDB (2.7.5): - - FMDB/standard (= 2.7.5) - - FMDB/standard (2.7.5) - - GoogleUtilities/AppDelegateSwizzler (7.11.1): - - GoogleUtilities/Environment - - GoogleUtilities/Logger - - GoogleUtilities/Network - - GoogleUtilities/Environment (7.11.1): - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.11.1): - - GoogleUtilities/Environment - - GoogleUtilities/Network (7.11.1): - - GoogleUtilities/Logger - - "GoogleUtilities/NSData+zlib" - - GoogleUtilities/Reachability - - "GoogleUtilities/NSData+zlib (7.11.1)" - - GoogleUtilities/Reachability (7.11.1): - - GoogleUtilities/Logger - - "gRPC-C++ (1.44.0)": - - "gRPC-C++/Implementation (= 1.44.0)" - - "gRPC-C++/Interface (= 1.44.0)" - - "gRPC-C++/Implementation (1.44.0)": - - abseil/base/base (= 1.20211102.0) - - abseil/base/core_headers (= 1.20211102.0) - - abseil/container/flat_hash_map (= 1.20211102.0) - - abseil/container/inlined_vector (= 1.20211102.0) - - abseil/functional/bind_front (= 1.20211102.0) - - abseil/hash/hash (= 1.20211102.0) - - abseil/memory/memory (= 1.20211102.0) - - abseil/random/random (= 1.20211102.0) - - abseil/status/status (= 1.20211102.0) - - abseil/status/statusor (= 1.20211102.0) - - abseil/strings/cord (= 1.20211102.0) - - abseil/strings/str_format (= 1.20211102.0) - - abseil/strings/strings (= 1.20211102.0) - - abseil/synchronization/synchronization (= 1.20211102.0) - - abseil/time/time (= 1.20211102.0) - - abseil/types/optional (= 1.20211102.0) - - abseil/types/variant (= 1.20211102.0) - - abseil/utility/utility (= 1.20211102.0) - - "gRPC-C++/Interface (= 1.44.0)" - - gRPC-Core (= 1.44.0) - - "gRPC-C++/Interface (1.44.0)" - - gRPC-Core (1.44.0): - - gRPC-Core/Implementation (= 1.44.0) - - gRPC-Core/Interface (= 1.44.0) - - gRPC-Core/Implementation (1.44.0): - - abseil/base/base (= 1.20211102.0) - - abseil/base/core_headers (= 1.20211102.0) - - abseil/container/flat_hash_map (= 1.20211102.0) - - abseil/container/inlined_vector (= 1.20211102.0) - - abseil/functional/bind_front (= 1.20211102.0) - - abseil/hash/hash (= 1.20211102.0) - - abseil/memory/memory (= 1.20211102.0) - - abseil/random/random (= 1.20211102.0) - - abseil/status/status (= 1.20211102.0) - - abseil/status/statusor (= 1.20211102.0) - - abseil/strings/cord (= 1.20211102.0) - - abseil/strings/str_format (= 1.20211102.0) - - abseil/strings/strings (= 1.20211102.0) - - abseil/synchronization/synchronization (= 1.20211102.0) - - abseil/time/time (= 1.20211102.0) - - abseil/types/optional (= 1.20211102.0) - - abseil/types/variant (= 1.20211102.0) - - abseil/utility/utility (= 1.20211102.0) - - BoringSSL-GRPC (= 0.0.24) - - gRPC-Core/Interface (= 1.44.0) - - Libuv-gRPC (= 0.0.10) - - gRPC-Core/Interface (1.44.0) - - GTMSessionFetcher/Core (3.1.1) - - image_picker_ios (0.0.1): - - Flutter - - leveldb-library (1.22.2) - - Libuv-gRPC (0.0.10): - - Libuv-gRPC/Implementation (= 0.0.10) - - Libuv-gRPC/Interface (= 0.0.10) - - Libuv-gRPC/Implementation (0.0.10): - - Libuv-gRPC/Interface (= 0.0.10) - - Libuv-gRPC/Interface (0.0.10) - - nanopb (2.30909.0): - - nanopb/decode (= 2.30909.0) - - nanopb/encode (= 2.30909.0) - - nanopb/decode (2.30909.0) - - nanopb/encode (2.30909.0) - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - - PromisesObjC (2.2.0) - - sqflite (0.0.2): - - Flutter - - FMDB (>= 2.7.5) - -DEPENDENCIES: - - cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`) - - firebase_auth (from `.symlinks/plugins/firebase_auth/ios`) - - firebase_core (from `.symlinks/plugins/firebase_core/ios`) - - firebase_storage (from `.symlinks/plugins/firebase_storage/ios`) - - Flutter (from `Flutter`) - - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`) - - sqflite (from `.symlinks/plugins/sqflite/ios`) - -SPEC REPOS: - trunk: - - abseil - - BoringSSL-GRPC - - Firebase - - FirebaseAppCheckInterop - - FirebaseAuth - - FirebaseAuthInterop - - FirebaseCore - - FirebaseCoreExtension - - FirebaseCoreInternal - - FirebaseFirestore - - FirebaseStorage - - FMDB - - GoogleUtilities - - "gRPC-C++" - - gRPC-Core - - GTMSessionFetcher - - leveldb-library - - Libuv-gRPC - - nanopb - - PromisesObjC - -EXTERNAL SOURCES: - cloud_firestore: - :path: ".symlinks/plugins/cloud_firestore/ios" - firebase_auth: - :path: ".symlinks/plugins/firebase_auth/ios" - firebase_core: - :path: ".symlinks/plugins/firebase_core/ios" - firebase_storage: - :path: ".symlinks/plugins/firebase_storage/ios" - Flutter: - :path: Flutter - image_picker_ios: - :path: ".symlinks/plugins/image_picker_ios/ios" - path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/ios" - sqflite: - :path: ".symlinks/plugins/sqflite/ios" - -SPEC CHECKSUMS: - abseil: ebe5b5529fb05d93a8bdb7951607be08b7fa71bc - BoringSSL-GRPC: 3175b25143e648463a56daeaaa499c6cb86dad33 - cloud_firestore: 3809dfc121ab99b81bba51eb84ac6ca3f9033325 - Firebase: 0219acf760880eeec8ce479895bd7767466d9f81 - firebase_auth: 1eb69de8f57040c5c78bb3267412e9cb395fd08c - firebase_core: dee76ded6c693fdb38b8ea39aef7129e32e587a3 - firebase_storage: f6fb3e54e886182b5ab5cf514da1d9ceb196fa2f - FirebaseAppCheckInterop: e69dde5cd51b88ee1b4339d6766b691272256f9b - FirebaseAuth: dd64c01631df724b09f33e584625775c52f7d71f - FirebaseAuthInterop: e53c08e60a02de17d1ab77c5032db8ae22d3a799 - FirebaseCore: e317665b9d744727a97e623edbbed009320afdd7 - FirebaseCoreExtension: d3e9bba2930a8033042112397cd9f006a1bb203d - FirebaseCoreInternal: d2b4acb827908e72eca47a9fd896767c3053921e - FirebaseFirestore: 3963a6edd1c84b4748dab3e2c62624a29d03eca1 - FirebaseStorage: 4841efa304543e1f9e4ca116c559c7a1ea2a9d0f - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 - FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a - GoogleUtilities: 9aa0ad5a7bc171f8bae016300bfcfa3fb8425749 - "gRPC-C++": 9675f953ace2b3de7c506039d77be1f2e77a8db2 - gRPC-Core: 943e491cb0d45598b0b0eb9e910c88080369290b - GTMSessionFetcher: e8647203b65cee28c5f73d0f473d096653945e72 - image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 - leveldb-library: f03246171cce0484482ec291f88b6d563699ee06 - Libuv-gRPC: 55e51798e14ef436ad9bc45d12d43b77b49df378 - nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 - path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9 - PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef - sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 - -PODFILE CHECKSUM: 7d6b9db9243dbc65e9914f56de22b83205a8e90d - -COCOAPODS: 1.12.1 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 2ee0531..d6faffd 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -160,7 +160,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -348,7 +348,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -369,7 +369,7 @@ DEVELOPMENT_TEAM = 4YF7BFHHRH; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -436,7 +436,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -486,7 +486,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -509,7 +509,7 @@ DEVELOPMENT_TEAM = 4YF7BFHHRH; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -541,7 +541,7 @@ DEVELOPMENT_TEAM = 4YF7BFHHRH; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 70693e4..c30b367 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -1,13 +1,16 @@ -import UIKit import Flutter +import UIKit -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { - GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } } diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000..9da19ea Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index bedccd6..77bcfb2 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -26,6 +26,27 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + FlutterSceneDelegate + UISceneStoryboardFile + Main + + + + UIApplicationSupportsIndirectInputEvents UILaunchStoryboardName diff --git a/lib/main.dart b/lib/main.dart index 49355d5..6ea3e0a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -38,7 +38,7 @@ class MyApp extends StatelessWidget { backgroundColor: Colors.white, foregroundColor: Colors.black87, ), - cardTheme: CardTheme( + cardTheme: CardThemeData( elevation: 1, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), diff --git a/lib/screens/add_issue_screen.dart b/lib/screens/add_issue_screen.dart index 8184a15..1ec5920 100644 --- a/lib/screens/add_issue_screen.dart +++ b/lib/screens/add_issue_screen.dart @@ -215,7 +215,7 @@ class _AddIssueScreenState extends State { ), const SizedBox(height: 16), DropdownButtonFormField( - value: _selectedStreet, + initialValue: _selectedStreet, decoration: const InputDecoration( labelText: 'Straße / Örtlichkeit *', border: OutlineInputBorder(), @@ -232,7 +232,7 @@ class _AddIssueScreenState extends State { ), const SizedBox(height: 16), DropdownButtonFormField( - value: _selectedCategory, + initialValue: _selectedCategory, decoration: const InputDecoration( labelText: 'Grundlage / Kategorie *', border: OutlineInputBorder(), diff --git a/lib/screens/admin_messages_screen.dart b/lib/screens/admin_messages_screen.dart index 34c9ccb..c4972c1 100644 --- a/lib/screens/admin_messages_screen.dart +++ b/lib/screens/admin_messages_screen.dart @@ -284,7 +284,7 @@ class _AdminMessagesScreenState extends State { return Expanded( child: OutlinedButton( style: OutlinedButton.styleFrom( - backgroundColor: isCurrent ? color.withOpacity(0.15) : null, + backgroundColor: isCurrent ? color.withValues(alpha: 0.15) : null, side: BorderSide( color: isCurrent ? color : Colors.grey.shade300, width: isCurrent ? 2 : 1, @@ -332,7 +332,7 @@ class _AdminMessagesScreenState extends State { decoration: BoxDecoration( color: bg, borderRadius: BorderRadius.circular(12), - border: Border.all(color: fg.withOpacity(0.3)), + border: Border.all(color: fg.withValues(alpha: 0.3)), ), child: Text( status, diff --git a/lib/screens/auth_dialog.dart b/lib/screens/auth_dialog.dart index 2b97520..7e36bcd 100644 --- a/lib/screens/auth_dialog.dart +++ b/lib/screens/auth_dialog.dart @@ -291,7 +291,7 @@ class _AuthDialogState extends State child: Image.asset( 'assets/images/logo.png', height: 28, - errorBuilder: (_, __, ___) => const Icon( + errorBuilder: (_, _, _) => const Icon( Icons.campaign, color: Colors.blue, ), diff --git a/lib/screens/pdf_viewer_screen.dart b/lib/screens/pdf_viewer_screen.dart index 1198d16..d4f6bb4 100644 --- a/lib/screens/pdf_viewer_screen.dart +++ b/lib/screens/pdf_viewer_screen.dart @@ -34,14 +34,14 @@ class _PdfViewerScreenState extends State { void _zoomIn() { setState(() { _zoomLevel = (_zoomLevel * 1.3).clamp(0.8, 5.0); - _transformationController.value = Matrix4.identity()..scale(_zoomLevel); + _transformationController.value = Matrix4.diagonal3Values(_zoomLevel, _zoomLevel, _zoomLevel); }); } void _zoomOut() { setState(() { _zoomLevel = (_zoomLevel / 1.3).clamp(0.8, 5.0); - _transformationController.value = Matrix4.identity()..scale(_zoomLevel); + _transformationController.value = Matrix4.diagonal3Values(_zoomLevel, _zoomLevel, _zoomLevel); }); } @@ -196,7 +196,7 @@ class _PdfViewerScreenState extends State { borderRadius: BorderRadius.circular(4), boxShadow: [ BoxShadow( - color: Colors.black.withOpacity(0.15), + color: Colors.black.withValues(alpha: 0.15), blurRadius: 10, offset: const Offset(0, 3), ), @@ -235,7 +235,7 @@ class _PdfViewerScreenState extends State { elevation: 4, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(24)), - color: Colors.white.withOpacity(0.92), + color: Colors.white.withValues(alpha: 0.92), child: Padding( padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 2), child: Column( diff --git a/lib/services/firestore_service.dart b/lib/services/firestore_service.dart index dffa1ca..defd9ec 100644 --- a/lib/services/firestore_service.dart +++ b/lib/services/firestore_service.dart @@ -118,8 +118,8 @@ class FirestoreService { 'firstName': firstName, if (lastName != null && lastName.isNotEmpty) 'lastName': lastName, - if (emailVerified != null) 'emailVerified': emailVerified, - if (isAdmin != null) 'isAdmin': isAdmin, + 'emailVerified': ?emailVerified, + 'isAdmin': ?isAdmin, }; if (!doc.exists) { diff --git a/pubspec.lock b/pubspec.lock index fedb1fc..0662735 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "50e24b769bd1e725732f0aff18b806b8731c1fbcf4e8018ab98e7c4805a2a52f" + sha256: f6966125633a34f82d9be2ee895b755cff3554087b1d00a9eb884e5947f4bca9 url: "https://pub.dev" source: hosted - version: "1.3.57" + version: "1.3.77" archive: dependency: transitive description: @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 url: "https://pub.dev" source: hosted - version: "2.11.0" + version: "2.13.1" barcode: dependency: transitive description: @@ -45,18 +45,18 @@ packages: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" cached_network_image: dependency: "direct main" description: name: cached_network_image - sha256: "4a5d8d2c728b0f3d0245f69f921d7be90cae4c2fd5288f773088672c0893f819" + sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" url: "https://pub.dev" source: hosted - version: "3.4.0" + version: "3.4.1" cached_network_image_platform_interface: dependency: transitive description: @@ -69,106 +69,106 @@ packages: dependency: transitive description: name: cached_network_image_web - sha256: "6322dde7a5ad92202e64df659241104a43db20ed594c41ca18de1014598d7996" + sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" url: "https://pub.dev" source: hosted - version: "1.3.0" - change_app_package_name: - dependency: "direct main" - description: - name: change_app_package_name - sha256: "8e43b754fe960426904d77ed4c62fa8c9834deaf6e293ae40963fa447482c4c5" - url: "https://pub.dev" - source: hosted - version: "1.5.0" + version: "1.3.1" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.1" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + sha256: e51d50bca3217c9a9fa2b41a30e4a38971133f5f9ec7a3d57bae095007f1d28e url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.3" cloud_firestore: dependency: "direct main" description: name: cloud_firestore - sha256: "0af4f1e0b7f82a2082ad2c886b042595d85c7641616688609dd999d33aeef850" + sha256: db785e4d0a995654781835b78a30b8bb203d967e123843bb918df0cdb6a7ec69 url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.10.0" cloud_firestore_platform_interface: dependency: transitive description: name: cloud_firestore_platform_interface - sha256: "6e82bcaf2b8e33f312dfc7c5e5855376fee538467dd6e58dc41bd13996ff5d64" + sha256: ef985a8239846187de0eccce2092a940eaf281a1357c6325e1739ec0b6c230e2 url: "https://pub.dev" source: hosted - version: "6.4.0" + version: "8.0.7" cloud_firestore_web: dependency: transitive description: name: cloud_firestore_web - sha256: "38aec6ed732980dea6eec192a25fb55665137edc5c356603d8dc26ff5971f4d8" + sha256: b30b3b44937345d50b195f85ef328f1d71c2a79965cb1645a479d029d45f636a url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "5.7.3" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: "828110d598123b5ea96c00c9f3c72105bf79f8ee36c20a39b26209ade421ec57" + url: "https://pub.dev" + source: hosted + version: "2.1.0" collection: dependency: transitive description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.1" cross_file: dependency: transitive description: name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + sha256: f141ea4f277af142a0356955707f6556f37b03947d39d55585981a06ca437bd6 url: "https://pub.dev" source: hosted - version: "0.3.4+2" + version: "0.3.5+5" crypto: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.7" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" url: "https://pub.dev" source: hosted - version: "1.0.8" + version: "1.0.9" fake_async: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.3" ffi: dependency: transitive description: name: ffi - sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.2.0" file: dependency: transitive description: @@ -181,106 +181,106 @@ packages: dependency: transitive description: name: file_selector_linux - sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" + sha256: da76400e7872ce7637ffdce12749ec24169c25f6195c28372208e65a24bcd2ab url: "https://pub.dev" source: hosted - version: "0.9.3+2" + version: "0.9.4+1" file_selector_macos: dependency: transitive description: name: file_selector_macos - sha256: "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc" + sha256: d57c62362766b5e7ae739448650b66c6aab7a68ba7ecc65e04018652645ae0f4 url: "https://pub.dev" source: hosted - version: "0.9.4+2" + version: "0.9.5+1" file_selector_platform_interface: dependency: transitive description: name: file_selector_platform_interface - sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b + sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85" url: "https://pub.dev" source: hosted - version: "2.6.2" + version: "2.7.0" file_selector_windows: dependency: transitive description: name: file_selector_windows - sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4" + sha256: fbefc5fb92c6d3cbe8d284a2cd971b593bb07d2cd6da8557b81a862250b4acec url: "https://pub.dev" source: hosted - version: "0.9.3+3" + version: "0.9.3+6" firebase_auth: dependency: "direct main" description: name: firebase_auth - sha256: "6f5792bdc208416bfdfbfe3363b78ce01667b6ebc4c5cb47cfa891f2fca45ab7" + sha256: "144fa22926b629e797ecc757db5d31b145aeedf6018160296dae945d98a98fb5" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "6.7.0" firebase_auth_platform_interface: dependency: transitive description: name: firebase_auth_platform_interface - sha256: "4e8dbb33b0539563c7b528e5f2c6a502fb543206f768358c8dfc9e85d600d7a0" + sha256: "9959a6e7338df4f725707a71fd9f727d8dfafd7c46cbaf59fcf7c8e94fb92d11" url: "https://pub.dev" source: hosted - version: "7.7.1" + version: "9.1.0" firebase_auth_web: dependency: transitive description: name: firebase_auth_web - sha256: "83541e5143d594cff6fb1cde336c33f6d3f759940729be9cc388ababafc6bf19" + sha256: "11861819c667e9f47269fa1e7fca8d0e5229f80d4d3008d44b2108b8c93bfd94" url: "https://pub.dev" source: hosted - version: "5.15.1" + version: "6.3.0" firebase_core: dependency: "direct main" description: name: firebase_core - sha256: "5bba5924139e91d26446fd2601c18a6aa62c1161c768a989bb5e245dcdc20644" + sha256: "5fbbaa2aeb08a52feee559f92a62f5a6b04c9bdff81c8f608636771cf0d7b680" url: "https://pub.dev" source: hosted - version: "3.15.0" + version: "4.15.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: "8bcfad6d7033f5ea951d15b867622a824b13812178bfec0c779b9d81de011bbb" + sha256: "9bfbc85faca09346471ac56fbcee00757ebcfd85887c6f602764eff0001902d8" url: "https://pub.dev" source: hosted - version: "5.4.2" + version: "8.1.1" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: eb3afccfc452b2b2075acbe0c4b27de62dd596802b4e5e19869c1e926cbb20b3 + sha256: "8ed84f5001dbd7a0390e2818d46bc858ceebb970edededdfc8d6552c76fc2f6e" url: "https://pub.dev" source: hosted - version: "2.24.0" + version: "3.12.0" firebase_storage: dependency: "direct main" description: name: firebase_storage - sha256: dfc06d783dbc0b6200a4b936d8cdbd826bd1571c959854d14a70259188d96e85 + sha256: f936f99ea1f49f644d5e83a495ed71bd89b040358e548f9dee14f10458d49ea0 url: "https://pub.dev" source: hosted - version: "12.2.0" + version: "13.6.0" firebase_storage_platform_interface: dependency: transitive description: name: firebase_storage_platform_interface - sha256: ef0fc49be3dc96ebaf6965ec591c124256a1d9f252db31a06ceaa580a72e07a6 + sha256: "249a8cfa965f0bfb5ed6b6e14fa9b63428ba3c71ffe73b0e360da8d2fde2ef92" url: "https://pub.dev" source: hosted - version: "5.2.8" + version: "6.0.7" firebase_storage_web: dependency: transitive description: name: firebase_storage_web - sha256: "0b263674a6b4e9a6eeea95873e63cd96d8e7c2bd5cc7aaa57f46d906f61214cb" + sha256: b8a2e1f8a013d192f7b6e09ad40ec50e13d0bc97d2a3462369b2ba3f368d9c78 url: "https://pub.dev" source: hosted - version: "3.10.15" + version: "3.11.13" fixnum: dependency: transitive description: @@ -298,26 +298,26 @@ packages: dependency: transitive description: name: flutter_cache_manager - sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" + sha256: "911f5f56a586634132c54ef8ae3820c727770d141874ee7ea67998d66046a5f3" url: "https://pub.dev" source: hosted - version: "3.4.1" + version: "3.4.3" flutter_lints: dependency: "direct dev" description: name: flutter_lints - sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "6.0.0" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" + sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785" url: "https://pub.dev" source: hosted - version: "2.0.19" + version: "2.0.35" flutter_test: dependency: "direct dev" description: flutter @@ -328,198 +328,182 @@ packages: description: flutter source: sdk version: "0.0.0" + hooks: + dependency: transitive + description: + name: hooks + sha256: eaac480a35ec0814146c2c48d96aaa829e0e44a7662c88ae84c9edf4bc35651f + url: "https://pub.dev" + source: hosted + version: "2.2.0" http: dependency: "direct main" description: name: http - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.6.0" http_parser: dependency: transitive description: name: http_parser - sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.2" image: dependency: "direct main" description: name: image - sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + sha256: a1e7f4951e538a568e14b856702afc9ae1d2f4b202daced8d22c1b9cd211ce89 url: "https://pub.dev" source: hosted - version: "4.5.4" - image_cropper: - dependency: "direct main" - description: - name: image_cropper - sha256: "7c3a85e54ec591738ee68f3cc9b8849bab0ec8e908bf8970645be959a079e17f" - url: "https://pub.dev" - source: hosted - version: "8.0.1" - image_cropper_for_web: - dependency: transitive - description: - name: image_cropper_for_web - sha256: "65f3f23fb82ff153601f22864e07e2ec14a7859db9e6ee5f643f0cde5243e9f2" - url: "https://pub.dev" - source: hosted - version: "6.0.1" - image_cropper_platform_interface: - dependency: transitive - description: - name: image_cropper_platform_interface - sha256: "2d8db8f4b638e448fa89a1e77cd8f053b4547472bd3ae073169e86626d03afef" - url: "https://pub.dev" - source: hosted - version: "7.2.0" + version: "4.10.1" image_picker: dependency: "direct main" description: name: image_picker - sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" + sha256: d8402284df184bc05f4a2210c6c23983b0720f4cd87cbd05c5390a78af602667 url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.2.3" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: "0f57fee1e8bfadf8cc41818bbcd7f72e53bb768a54d9496355d5e8a5681a19f1" + sha256: "0a55d645a670d6ae11efa948f955ae904afa472f1344fc15a7ddacc20c1e7219" url: "https://pub.dev" source: hosted - version: "0.8.12+1" + version: "0.8.13+23" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "65d94623e15372c5c51bebbcb820848d7bcb323836e12dfdba60b5d3a8b39e50" + sha256: "66257a3191ab360d23a55c8241c91a6e329d31e94efa7be9cf7a212e65850214" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.1.1" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: "4f0568120c6fcc0aaa04511cb9f9f4d29fc3d0139884b1d06be88dcec7641d6b" + sha256: ee3885b6fcd71958fbc79770dd194c63371439d536d69c47b279171a486482ae url: "https://pub.dev" source: hosted - version: "0.8.12+1" + version: "0.8.13+7" image_picker_linux: dependency: transitive description: name: image_picker_linux - sha256: "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa" + sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4" url: "https://pub.dev" source: hosted - version: "0.2.1+1" + version: "0.2.2" image_picker_macos: dependency: transitive description: name: image_picker_macos - sha256: "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62" + sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91" url: "https://pub.dev" source: hosted - version: "0.2.1+1" + version: "0.2.2+1" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface - sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80" + sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.1" image_picker_windows: dependency: transitive description: name: image_picker_windows - sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" + sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae url: "https://pub.dev" source: hosted - version: "0.2.1+1" + version: "0.2.2" intl: dependency: "direct main" description: name: intl - sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5" + sha256: "1ca20c894b1717686a2319b8548763d812bc0aabdac580420a44c5178c57a867" url: "https://pub.dev" source: hosted - version: "0.20.2" + version: "0.20.3" leak_tracker: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "11.0.2" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.10" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" lints: dependency: transitive description: name: lints - sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "6.1.0" logging: - dependency: "direct main" + dependency: transitive description: name: logging - sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" matcher: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd" url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.20" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.13.0" meta: dependency: transitive description: name: meta - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9" url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.19.0" mime: dependency: transitive description: name: mime - sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" + sha256: bd47de35f07e27267e69c8c8b22edf9473bfee170a60d60fcc93730c5144b7f6 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "2.1.0" nested: dependency: transitive description: @@ -528,6 +512,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: ad56fd53a78ff6b1472fa59ff2a4e8b8ccabafc586fc263a1dfad0b99b5553e3 + url: "https://pub.dev" + source: hosted + version: "9.6.0" octo_image: dependency: transitive description: @@ -540,10 +532,10 @@ packages: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" path_parsing: dependency: transitive description: @@ -556,42 +548,42 @@ packages: dependency: transitive description: name: path_provider - sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825 url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.6" path_provider_android: - dependency: transitive + dependency: "direct main" description: name: path_provider_android - sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d + sha256: "149441ca6e4f38193b2e004c0ca6376a3d11f51fa5a77552d8bd4d2b0c0912ba" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.2.23" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.6.0" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + sha256: "58c2005f147315b11e9b4a7bc889cd5203e250cba8e3f012dae259b4972b5c16" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + sha256: "484838772624c3a4b94f1e44a3e19897fee738f2d5c4ce448443b0417f7c9dda" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" path_provider_windows: dependency: transitive description: @@ -604,12 +596,12 @@ packages: dependency: "direct main" description: name: pdf - sha256: "28eacad99bffcce2e05bba24e50153890ad0255294f4dd78a17075a2ba5c8416" + sha256: "517df47af468734a23c8b513c0c6a8a62357403ab1b8ab7fad1606576a9dbdd0" url: "https://pub.dev" source: hosted - version: "3.11.3" + version: "3.13.0" pdf_widget_wrapper: - dependency: "direct main" + dependency: transitive description: name: pdf_widget_wrapper sha256: c930860d987213a3d58c7ec3b7ecf8085c3897f773e8dc23da9cae60a5d6d0f5 @@ -620,18 +612,18 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "7.0.2" platform: dependency: transitive description: name: platform - sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + sha256: a36d119c13416516a7b5913fbe8af8531e11633d784c550b2125f76c758524ec url: "https://pub.dev" source: hosted - version: "3.1.6" + version: "3.2.0" plugin_platform_interface: dependency: transitive description: @@ -652,10 +644,10 @@ packages: dependency: "direct main" description: name: printing - sha256: "689170c9ddb1bda85826466ba80378aa8993486d3c959a71cd7d2d80cb606692" + sha256: f6cd14c768c1352dd37a958a3ee351aa9ce305b398218d3acd86389d5f7ecad1 url: "https://pub.dev" source: hosted - version: "5.14.3" + version: "5.15.0" provider: dependency: "direct main" description: @@ -664,14 +656,30 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.5+1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "261236774e8b1d69cfc6b9eabbc96c40f25e7a2d6b171f3385d4f65d5734fb24" + url: "https://pub.dev" + source: hosted + version: "2.2.1" qr: dependency: transitive description: name: qr - sha256: "64957a3930367bf97cc211a5af99551d630f2f4625e38af10edd6b19131b64b3" + sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" + record_use: + dependency: transitive + description: + name: record_use + sha256: "1cb8564af8d43b464294411db9217f5ec04891c6f22ee2c32d73ae05e88a6bd2" + url: "https://pub.dev" + source: hosted + version: "1.1.1" rxdart: dependency: transitive description: @@ -684,26 +692,26 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.5.5" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" + sha256: "1e12aafe408aa50da80edfd679a2a6bf63ba7ab37c7fa98286da459a757b3399" url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.4.28" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d" + sha256: "2ec3934efa51e46117f23031cc141b8fc878e8525b94ec1ea4f7f586cf1b47ea" url: "https://pub.dev" source: hosted - version: "2.5.3" + version: "2.5.7" shared_preferences_linux: dependency: transitive description: @@ -716,18 +724,18 @@ packages: dependency: transitive description: name: shared_preferences_platform_interface - sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + sha256: "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: "59dc807b94d29d52ddbb1b3c0d3b9d0a67fc535a64e62a5542c8db0513fcb6c2" + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.3" shared_preferences_windows: dependency: transitive description: @@ -740,127 +748,151 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_span: dependency: transitive description: name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.10.2" sqflite: dependency: transitive description: name: sqflite - sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d + sha256: "54ad23e2a79c846b596b6c56cdd9c867ea58c288258402316b602f78df0cbfe0" url: "https://pub.dev" source: hosted - version: "2.3.3+1" + version: "2.4.4" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "805b27c6fa10d8883253795e644818fbd5c87ce665459db84fbe71326cbb5421" + url: "https://pub.dev" + source: hosted + version: "2.4.4" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" + sha256: "077e38e82c099534146a2fb31b608c2a3a4489a0f21d9af6b2f5c87b566a1ea0" url: "https://pub.dev" source: hosted - version: "2.5.4" + version: "2.5.13" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: dbdda396f975f74d611ffd3e6fb280ee3ee4cd2319b89278533f427e0140cf0b + url: "https://pub.dev" + source: hosted + version: "2.4.4" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: c9177b2f3150ed0647b90a94307c28452fe0a5401863044216aed83addd6c7c5 + url: "https://pub.dev" + source: hosted + version: "2.4.2" stack_trace: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "277654b3034d17ac6f9f1cb5595db011b1d5d41e8806866db28e0abaa101c490" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.2" stream_channel: dependency: transitive description: name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.4.1" synchronized: dependency: transitive description: name: synchronized - sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" + sha256: "397b146f97613b83d84bdccb439bc8d0f3aebb6c1d14a9641e6f24201c490b2d" url: "https://pub.dev" source: hosted - version: "3.1.0+1" + version: "3.4.2" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "2a122cbe059f8b610d3a5415f42e255b6c17b1f21eee1d960f31080237fb4f11" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.12" typed_data: dependency: transitive description: name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.4.0" url_launcher: dependency: "direct main" description: name: url_launcher - sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "17cd5e205ea615e2c6ea7a77323a11712dffa0720a8a90540db57a01347f9ad9" + sha256: "611e87fb320b70d1dd721dc46af89c98aceccea9b31fde49e084591414e0c610" url: "https://pub.dev" source: hosted - version: "6.3.2" + version: "6.3.33" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626" + sha256: "8faa1aab294f1ab4040b43660c887b0418d5fa4f0cffef76a484e6aa1092eb4a" url: "https://pub.dev" source: hosted - version: "6.3.2" + version: "6.4.2" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + sha256: "10f86fef4c2c43563fa6c211ff9cf757adf4d3ab762c56bd430664a947d70cd0" url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.3" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" + sha256: "5e835a3b869c2d70325349c81c5a45c28e20791265b67b2669da6b08c5cd5201" url: "https://pub.dev" source: hosted - version: "3.2.2" + version: "3.2.6" url_launcher_platform_interface: dependency: transitive description: @@ -873,18 +905,18 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" + sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.3" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" + sha256: "6c5ad3f22cd4c38e089b81963b3cd7bb83b111b2df5dce008bb066162f42e429" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.6" uuid: dependency: transitive description: @@ -897,18 +929,18 @@ packages: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + sha256: f36f9f3be64c6198714492bb455c11056e33e2f85d9a0b676a48301e44fdcf47 url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.4.2" vm_service: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: "5f37239c4851efcef929cea7824e76df7f2f0970aef85d66bbc430afa40e72f0" url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "15.3.0" web: dependency: transitive description: @@ -929,10 +961,18 @@ packages: dependency: transitive description: name: xml - sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + sha256: "67f0aff7be013d107995e9b75bf4e7f2c3ef2dfdb2c8e68024bba0a7fd5756a4" url: "https://pub.dev" source: hosted - version: "6.5.0" + version: "7.0.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: f67cdd8e07d3c6329146aaef1ba043542b3134c12489f553ca9a7435d1068aea + url: "https://pub.dev" + source: hosted + version: "3.1.4" sdks: - dart: ">=3.4.0 <4.0.0" - flutter: ">=3.22.0" + dart: ">=3.12.0 <4.0.0" + flutter: ">=3.47.0" diff --git a/pubspec.yaml b/pubspec.yaml index 068f6e2..dddbc6c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,110 +1,61 @@ name: oggauergemeindetrommler description: Gemeinde Trommler +# Private app – never publish to pub.dev. +publish_to: 'none' -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev - -# The following defines the version and build number for your application. -# A version number is three numbers separated by dots, like 1.2.43 -# followed by an optional build number separated by a +. -# Both the version and the builder number may be overridden in flutter -# build by specifying --build-name and --build-number, respectively. -# In Android, build-name is used as versionName while build-number used as versionCode. -# Read more about Android versioning at https://developer.android.com/studio/publish/versioning -# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. -# Read more about iOS versioning at -# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -# In Windows, build-name is used as the major, minor, and patch parts -# of the product and file versions while build-number is used as the build suffix. +# Version + build number (build-name+build-number). Can be overridden with +# `flutter build ... --build-name --build-number`. version: 0.0.1 environment: - sdk: '>=3.0.0 <4.0.0' + # Flutter 3.47.x ships Dart 3.13; keep the constraint in sync with the + # Flutter version pinned in the CI workflows (FLUTTER_VERSION). + sdk: ^3.11.0 + flutter: '>=3.47.0' -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter + + # Firebase (Auth, Firestore, Storage) + firebase_core: ^4.15.0 + firebase_auth: ^6.7.0 + cloud_firestore: ^6.10.0 + firebase_storage: ^13.6.0 + + # UI / state + provider: ^6.1.5 + cupertino_icons: ^1.0.8 + cached_network_image: ^3.4.1 intl: ^0.20.2 + # Media + image_picker: ^1.2.3 + image: ^4.5.4 + # PDF export & sharing + pdf: ^3.11.3 + printing: ^5.14.3 - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.2 - image_picker: ^1.1.2 - firebase_core: ^3.4.0 - firebase_auth: ^5.2.0 - firebase_storage: ^12.2.0 - cloud_firestore: ^5.4.0 - change_app_package_name: ^1.1.0 - cached_network_image: ^3.2.3 - image: ^4.0.16 - pdf: ^3.10.1 - printing: ^5.13.2 - pdf_widget_wrapper: ^1.0.4 - image_cropper: ^8.0.1 - logging: ^1.1.1 - provider: ^6.0.5 - http: ^1.2.0 - shared_preferences: ^2.2.2 + # Misc + http: ^1.2.2 + shared_preferences: ^2.5.3 url_launcher: ^6.3.1 + # Transitive (via flutter_cache_manager / printing), pinned on purpose: + # path_provider_android >= 2.3 is implemented with `jni` and compiles native + # code (CMake + NDK). The ARM64 Gitea runner would have to run the x86_64 NDK + # toolchain through QEMU, so stay on the pure-Java implementation for now. + path_provider_android: '>=2.2.0 <2.3.0' dev_dependencies: flutter_test: sdk: flutter + flutter_lints: ^6.0.0 - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. - flutter_lints: ^4.0.0 - -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec - -# The following section is specific to Flutter packages. flutter: - - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. uses-material-design: true assets: - assets/images/ - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/assets-and-images/#resolution-aware - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/assets-and-images/#from-packages - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/custom-fonts/#from-packages