diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index b156e09a..00000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# Contributing to MIH Project
-
-Thank you for your interest in contributing to the MIH Project! To help us maintain a clean, stable, and secure codebase, please review and follow these contribution guidelines.
-
----
-
-## 1. Important Repository Notice (GitHub Users)
-
-> ⚠️ **CRITICAL NOTE:** If you are viewing or found this repository on GitHub, please be aware that this is a **read-only mirror** used strictly for backup purposes.
->
-> **No Pull Requests (PRs) or Issues will be accepted or reviewed on GitHub.**
-
-To contribute, you must use our active development repository hosted on **MIH Git**:
-🔗 [Active MIH Git Repo](https://git.mzansi-innovation-hub.co.za/yaso_meth/mih-project)
-
-Please conduct all development, issue tracking, and collaboration on the MIH Git platform.
-
----
-
-## 2. Branching Strategy & Pull/Merge Request Rules
-
-To ensure production stability, we enforce strict branching rules. Please ensure your contributions align with the following structure:
-
-* **Do NOT target the `main` branch:** Pull or Merge Requests made directly against the `main` branch will be automatically rejected or closed.
-* **Target the Latest Version Branch:** All bug fixes, features, and documentation updates must be made against the active version branch (e.g., branch naming convention follows `v.1.4.0` or later).
-
----
-
-## 3. Recommended Workflow (Fork & Pull)
-
-We use a **Fork-and-Pull** model to manage contributions safely and keep the main repository organized. Please follow these steps to submit your changes:
-
-1. **Fork the Repository:** Log into **MIH Git** and click the **Fork** button on the main [mih-project](https://git.mzansi-innovation-hub.co.za/yaso_meth/mih-project) repository to create a copy under your personal account.
-2. **Clone Your Fork:** Clone your personal fork locally to your machine:
- ```bash
- git clone --depth 1 https://git.mzansi-innovation-hub.co.za/YOUR_USERNAME/mih-project.git
- cd mih-project
- ```
-3. **Checkout the Active Version Branch:** Fetch the latest branches and switch to the current active version branch (e.g., `v.1.4.0`):
- ```bash
- git fetch origin
- git checkout v.1.4.0
- ```
-4. **Create a Feature or Fix Branch:** Create a dedicated branch for your changes stemming directly from that version branch:
- ```bash
- git checkout -b feature/your-feature-name
- ```
- or
- ```bash
- git checkout -b fix/your-fix-name
- ```
-5. **Commit and Push:** Make your changes, commit them with clear descriptive messages, and push the feature branch to your fork:
- ```bash
- git push origin feature/your-feature-name
- ```
- or
- ```bash
- git push origin fix/your-fix-name
- ```
-6. **Open a Pull/Merge Request:** Go to the main repository on MIH Git. You will see a prompt to open a new Pull/Merge Request. Ensure that:
- * The **Source (Head)** is your fork's feature branch (`YOUR_USERNAME/mih-project:feature/your-feature-name`).
- * The **Target (Base)** is the main repository's active version branch (`yaso_meth/mih-project:v.1.4.0`).
-
----
-
-Thank you for your time and effort in helping build and improve the MIH Project!
diff --git a/mih_api_hub/Minio_Storage/minioConnection.py b/mih_api_hub/Minio_Storage/minioConnection.py
index 106d0010..919bccd4 100644
--- a/mih_api_hub/Minio_Storage/minioConnection.py
+++ b/mih_api_hub/Minio_Storage/minioConnection.py
@@ -5,21 +5,13 @@ from dotenv import load_dotenv
load_dotenv()
minioAccess = os.getenv("MINIO_ACCESS_KEY")
minioSecret = os.getenv("MINIO_SECRET_KEY")
+minioEndpoint = os.getenv("MINIO_ENDPOINT", "mih-minio:9000")
+minioSecure = os.getenv("MINIO_SECURE", "False") in ("True")
-def minioConnect(env):
- if(env == "Dev"):
+def minioConnect():
return Minio(
- endpoint="mih-minio:9000",
- # "minio.mzansi-innovation-hub.co.za",
+ endpoint=minioEndpoint,
access_key=minioAccess,
secret_key=minioSecret,
- secure=False
+ secure=minioSecure,
)
- else:
- return Minio(
- # endpoint="mih-minio:9000",
- endpoint="minio.mzansi-innovation-hub.co.za",
- access_key=minioAccess,
- secret_key=minioSecret,
- secure=True
- )
\ No newline at end of file
diff --git a/mih_api_hub/routers/fileStorage.py b/mih_api_hub/routers/fileStorage.py
index 60ddd6a7..23901464 100644
--- a/mih_api_hub/routers/fileStorage.py
+++ b/mih_api_hub/routers/fileStorage.py
@@ -5,7 +5,7 @@ from typing import List
import requests
from fastapi import APIRouter, HTTPException, File, UploadFile, Form
-from fastapi.responses import FileResponse, JSONResponse
+from fastapi.responses import FileResponse, JSONResponse, StreamingResponse
from pydantic import BaseModel
@@ -108,6 +108,26 @@ class claimStatementUploud(BaseModel):
logo_path: str
sig_path: str
+@router.get("/v2/minio/pull/file/{app_id}/{folder}/{file_name}", tags=["Minio"])
+async def pullFileFromMinioV2(app_id: str, folder: str, file_name: str,):
+ object_path = f"{app_id}/{folder}/{file_name}"
+ try:
+ client = Minio_Storage.minioConnection.minioConnect()
+
+ response = client.get_object(bucket_name="mih", object_name=object_path)
+
+ ext = file_name.split(".")[-1].lower()
+ content_type = f"image/{ext}" if ext in ["png", "jpg", "jpeg", "gif", "webp"] else "application/octet-stream"
+
+ return StreamingResponse(
+ io.BytesIO(response.read()),
+ media_type=content_type,
+ headers={"Cache-Control": "public, max-age=31536000"}
+ )
+
+ except Exception as error:
+ raise HTTPException(status_code=404, detail=f"File not found or MinIO connection failed: {str(error)}")
+
@router.get("/minio/pull/file/{env}/{app_id}/{folder}/{file_name}", tags=["Minio"])
async def pull_File_from_user(app_id: str, folder: str, file_name: str, env: str): #, session: SessionContainer = Depends(verify_session())
path = app_id + "/" + folder + "/" + file_name
@@ -116,7 +136,7 @@ async def pull_File_from_user(app_id: str, folder: str, file_name: str, env: str
# print(f"env: {env}")
# uploudFile(app_id, file.filename, extension[1], content)
- client = Minio_Storage.minioConnection.minioConnect(env)
+ client = Minio_Storage.minioConnection.minioConnect()
# buckets = client.list_buckets()
# print("Connected to MinIO successfully!")
# print("Available buckets:", [bucket.name for bucket in buckets])
@@ -168,7 +188,7 @@ async def delete_File_of_user(requestItem: minioDeleteRequest, session: SessionC
path = requestItem.file_path
try:
# uploudFile(app_id, file.filename, extension[1], content)
- client = Minio_Storage.minioConnection.minioConnect(requestItem.env)
+ client = Minio_Storage.minioConnection.minioConnect()
minioError = client.remove_object(
bucket_name="mih",
@@ -202,7 +222,7 @@ async def upload_perscription_to_user(requestItem: claimStatementUploud, session
return {"message": "Successfully Generated File"}
def uploudFile(app_id, env, folder, fileName, extension, content):
- client = Minio_Storage.minioConnection.minioConnect(env)
+ client = Minio_Storage.minioConnection.minioConnect()
found = client.bucket_exists(bucket_name="mih")
if not found:
client.make_bucket(bucket_name="mih")
@@ -218,7 +238,7 @@ def uploudFile(app_id, env, folder, fileName, extension, content):
content_type=f"application/{extension}")
def uploudMedCert(requestItem: medCertUploud):
- client = Minio_Storage.minioConnection.minioConnect(requestItem.env)
+ client = Minio_Storage.minioConnection.minioConnect()
generateMedCertPDF(requestItem)
today = datetime.today().strftime('%Y-%m-%d')
found = client.bucket_exists(bucket_name="mih")
@@ -230,7 +250,7 @@ def uploudMedCert(requestItem: medCertUploud):
client.fput_object("mih", fileName, "temp-med-cert.pdf")
def generateMedCertPDF(requestItem: medCertUploud):
- client = Minio_Storage.minioConnection.minioConnect(requestItem.env)
+ client = Minio_Storage.minioConnection.minioConnect()
new_logo_path = requestItem.logo_path.replace(" ","-")
new_sig_path = requestItem.sig_path.replace(" ","-")
minioLogo = client.get_object("mih", new_logo_path).read()
@@ -295,7 +315,7 @@ def generateMedCertPDF(requestItem: medCertUploud):
myCanvas.save()
def uploudPerscription(requestItem: perscriptionList):
- client = Minio_Storage.minioConnection.minioConnect(requestItem.env)
+ client = Minio_Storage.minioConnection.minioConnect()
generatePerscriptionPDF(requestItem)
today = datetime.today().strftime('%Y-%m-%d')
found = client.bucket_exists(bucket_name="mih")
@@ -307,7 +327,7 @@ def uploudPerscription(requestItem: perscriptionList):
client.fput_object("mih", fileName, "temp-perscription.pdf")
def generatePerscriptionPDF(requestItem: perscriptionList):
- client = Minio_Storage.minioConnection.minioConnect(requestItem.env)
+ client = Minio_Storage.minioConnection.minioConnect()
new_logo_path = requestItem.logo_path.replace(" ","-")
new_sig_path = requestItem.sig_path.replace(" ","-")
minioLogo = client.get_object("mih", new_logo_path).read()
@@ -397,7 +417,7 @@ def generatePerscriptionPDF(requestItem: perscriptionList):
def uploudClaimStatement(requestItem: claimStatementUploud):
try:
- client = Minio_Storage.minioConnection.minioConnect(requestItem.env)
+ client = Minio_Storage.minioConnection.minioConnect()
print("connected")
except Exception:
print("error")
@@ -413,7 +433,7 @@ def uploudClaimStatement(requestItem: claimStatementUploud):
client.fput_object("mih", fileName, "temp-claim-statement.pdf")
def generateClaimStatementPDF(requestItem: claimStatementUploud):
- client = Minio_Storage.minioConnection.minioConnect(requestItem.env)
+ client = Minio_Storage.minioConnection.minioConnect()
# print("buckets: " + client.list_buckets)
new_logo_path = requestItem.logo_path.replace(" ","-")
new_sig_path = requestItem.sig_path.replace(" ","-")
diff --git a/mih_ui/analysis_options.yaml b/mih_ui/analysis_options.yaml
index 0d290213..d73341aa 100644
--- a/mih_ui/analysis_options.yaml
+++ b/mih_ui/analysis_options.yaml
@@ -1,28 +1,9 @@
-# This file configures the analyzer, which statically analyzes Dart code to
-# check for errors, warnings, and lints.
-#
-# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
-# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
-# invoked from the command line by running `flutter analyze`.
+analyzer:
+ exclude:
+ - lib/mih_hive/*.g.dart
+ - lib/mih_hive/hive_registrar.g.dart
-# The following line activates a set of recommended lints for Flutter apps,
-# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
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`
- # included above or to enable additional rules. A list of all available lints
- # and their documentation is published at https://dart.dev/lints.
- #
- # Instead of disabling a lint rule for the entire project in the
- # section below, it can also be suppressed for a single line of code
- # or a specific dart file by using the `// ignore: name_of_lint` and
- # `// ignore_for_file: name_of_lint` syntax on the line or in the file
- # producing the lint.
rules:
- # avoid_print: false # Uncomment to disable the `avoid_print` rule
- # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
-
-# Additional information about this file can be found at
-# https://dart.dev/guides/language/analysis-options
diff --git a/mih_ui/android/app/build.gradle.kts b/mih_ui/android/app/build.gradle.kts
index 8250e847..0c703761 100644
--- a/mih_ui/android/app/build.gradle.kts
+++ b/mih_ui/android/app/build.gradle.kts
@@ -6,7 +6,7 @@ plugins {
// START: FlutterFire Configuration
id("com.google.gms.google-services")
// END: FlutterFire Configuration
- id("kotlin-android")
+ //id("kotlin-android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
}
@@ -20,17 +20,17 @@ if (keystorePropertiesFile.exists()) {
android {
namespace = "za.co.mzansiinnovationhub.mih"
compileSdk = 36
- ndkVersion = "27.0.12077973"
+ ndkVersion = "28.2.13676358"
// ndkVersion = flutter.ndkVersion
compileOptions {
- sourceCompatibility = JavaVersion.VERSION_11
- targetCompatibility = JavaVersion.VERSION_11
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
}
- kotlinOptions {
- jvmTarget = JavaVersion.VERSION_11.toString()
- }
+ //kotlinOptions {
+ // jvmTarget = JavaVersion.VERSION_17.toString()
+ //}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
@@ -67,6 +67,12 @@ android {
}
}
+kotlin {
+ compilerOptions {
+ jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
+ }
+}
+
flutter {
source = "../.."
}
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/CHANGELOG.md b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/CHANGELOG.md
new file mode 100644
index 00000000..ee988ff3
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/CHANGELOG.md
@@ -0,0 +1,576 @@
+## 0.4.5
+
+ - **FEAT**(appcheck): appcheck reCAPTCHA mobile support (gradually rolling out) ([#18261](https://github.com/firebase/flutterfire/issues/18261)). ([036a860a](https://github.com/firebase/flutterfire/commit/036a860a0e66d46b5c57eb3df3a0f9e5846ef00b))
+
+## 0.4.4+2
+
+ - Update a dependency to the latest release.
+
+## 0.4.4+1
+
+ - Update a dependency to the latest release.
+
+## 0.4.4
+
+ - **REFACTOR**: move all packages to workspace ([#18182](https://github.com/firebase/flutterfire/issues/18182)). ([6cdfcb10](https://github.com/firebase/flutterfire/commit/6cdfcb103da7be46ccb190d7e107d8c537aa1ff8))
+ - **FIX**: update core, auth and app-check logic so internal resources on method channels are properly disposed ([#18268](https://github.com/firebase/flutterfire/issues/18268)). ([a0de4ed8](https://github.com/firebase/flutterfire/commit/a0de4ed86b0dff89bb9e557f2a54f38cd2546016))
+ - **FEAT**(core): Add Auth and AppCheck as App's registered service. ([#18237](https://github.com/firebase/flutterfire/issues/18237)). ([7ce191cb](https://github.com/firebase/flutterfire/commit/7ce191cbd598b299cd0ec64b45d1366914367a5d))
+
+## 0.4.3
+
+ - **FEAT**(app_check,windows): add support for AppCheck for Windows ([#18140](https://github.com/firebase/flutterfire/issues/18140)). ([81f30325](https://github.com/firebase/flutterfire/commit/81f30325fc926fe94b630e49f56b795c781a4cbe))
+ - **FEAT**: use local firebase_core instead of remote SPM dependency ([#18141](https://github.com/firebase/flutterfire/issues/18141)). ([995caf40](https://github.com/firebase/flutterfire/commit/995caf400df80c0fde7151c651ccc6c0f756e381))
+
+## 0.4.2
+
+ - **FEAT**(messaging,web): add support for debug tokens on Web ([#18057](https://github.com/firebase/flutterfire/issues/18057)). ([b853386e](https://github.com/firebase/flutterfire/commit/b853386e987d686eab4b8fd9b8dad14eda97479c))
+ - **FEAT**(ios): migrate iOS to UIScene lifecycle ([#18054](https://github.com/firebase/flutterfire/issues/18054)). ([3ffa4110](https://github.com/firebase/flutterfire/commit/3ffa411098132fd5182a84be4e7a226106bc7451))
+
+## 0.4.1+5
+
+ - Update a dependency to the latest release.
+
+## 0.4.1+4
+
+ - Update a dependency to the latest release.
+
+## 0.4.1+3
+
+ - Update a dependency to the latest release.
+
+## 0.4.1+2
+
+ - Update a dependency to the latest release.
+
+## 0.4.1+1
+
+ - **FIX**(app_check): Deprecate androidProvider and appleProvider parameters in activate method ([#17742](https://github.com/firebase/flutterfire/issues/17742)). ([4e7f800e](https://github.com/firebase/flutterfire/commit/4e7f800e94a895c6553bd3c1595b4f06ac69bb81))
+ - **FIX**(app_check): Expose AppleAppAttestProvider without importing platform interface ([#17740](https://github.com/firebase/flutterfire/issues/17740)). ([6c2355a0](https://github.com/firebase/flutterfire/commit/6c2355a05d6bba763768ce3bc09c3cc0528fa900))
+
+## 0.4.1
+
+ - **FEAT**(app-check): Debug token support for the activate method ([#17723](https://github.com/firebase/flutterfire/issues/17723)). ([3c638264](https://github.com/firebase/flutterfire/commit/3c638264565d902ddbe4dff5bb027aef9e1c2140))
+
+## 0.4.0+1
+
+ - **FIX**(app_check,iOS): correctly parse `forceRefresh` argument using `boolValue` ([#17627](https://github.com/firebase/flutterfire/issues/17627)). ([8c0802d0](https://github.com/firebase/flutterfire/commit/8c0802d098c970740a34e83952f56dbe9eb279fd))
+
+## 0.4.0
+
+> Note: This release has breaking changes.
+
+ - **BREAKING** **FEAT**: bump iOS SDK to version 12.0.0 ([#17549](https://github.com/firebase/flutterfire/issues/17549)). ([b2619e68](https://github.com/firebase/flutterfire/commit/b2619e685fec897513483df1d7be347b64f95606))
+ - **BREAKING** **FEAT**(app-check): remove deprecated functions ([#17561](https://github.com/firebase/flutterfire/issues/17561)). ([3e4302c4](https://github.com/firebase/flutterfire/commit/3e4302c4281d1d39c140ff116643d700cd3c5ace))
+ - **BREAKING** **FEAT**: bump Android SDK to version 34.0.0 ([#17554](https://github.com/firebase/flutterfire/issues/17554)). ([a5bdc051](https://github.com/firebase/flutterfire/commit/a5bdc051d40ee44e39cf0b8d2a7801bc6f618b67))
+
+## 0.3.2+10
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+9
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+8
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+7
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+6
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+5
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+4
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+3
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+2
+
+ - Update a dependency to the latest release.
+
+## 0.3.2+1
+
+ - Update a dependency to the latest release.
+
+## 0.3.2
+
+
+ - **FEAT**(app-check): Swift Package Manager support ([#16810](https://github.com/firebase/flutterfire/issues/16810)). ([f2e3f396](https://github.com/firebase/flutterfire/commit/f2e3f3965e83a6bf8c52c1cd9f80509a08907a84))
+
+## 0.3.1+7
+
+ - Update a dependency to the latest release.
+
+## 0.3.1+6
+
+ - Update a dependency to the latest release.
+
+## 0.3.1+5
+
+ - Update a dependency to the latest release.
+
+## 0.3.1+4
+
+ - Update a dependency to the latest release.
+
+## 0.3.1+3
+
+ - **FIX**(all,apple): use modular headers to import ([#13400](https://github.com/firebase/flutterfire/issues/13400)). ([d7d2d4b9](https://github.com/firebase/flutterfire/commit/d7d2d4b93e7c00226027fffde46699f3d5388a41))
+
+## 0.3.1+2
+
+ - Update a dependency to the latest release.
+
+## 0.3.1+1
+
+ - Update a dependency to the latest release.
+
+## 0.3.1
+
+ - **FEAT**(firestore,web): expose `webExperimentalForceLongPolling`, `webExperimentalAutoDetectLongPolling` and `timeoutSeconds` on web ([#13201](https://github.com/firebase/flutterfire/issues/13201)). ([6ec2a103](https://github.com/firebase/flutterfire/commit/6ec2a103a3a325a73550bdfff4c0d524ae7e4068))
+
+## 0.3.0+5
+
+ - **DOCS**: remove reference to flutter.io and firebase.flutter.dev ([#13152](https://github.com/firebase/flutterfire/issues/13152)). ([5f0874b9](https://github.com/firebase/flutterfire/commit/5f0874b91e28a203dd62d37d391e5760c91f5729))
+
+## 0.3.0+4
+
+ - Update a dependency to the latest release.
+
+## 0.3.0+3
+
+ - Update a dependency to the latest release.
+
+## 0.3.0+2
+
+ - Update a dependency to the latest release.
+
+## 0.3.0+1
+
+ - **FIX**(app-check,web): fixed broken `onTokenChanged` and ensured it is properly cleaned up. Streams are also cleaned up on "hot restart" ([#12933](https://github.com/firebase/flutterfire/issues/12933)). ([093b5fef](https://github.com/firebase/flutterfire/commit/093b5fef8c3b8314835dc954ce02daacd1e077f4))
+ - **FIX**(firebase_app_check,ios): Replace angles with quotes in import statement ([#12929](https://github.com/firebase/flutterfire/issues/12929)). ([f2fc902b](https://github.com/firebase/flutterfire/commit/f2fc902b9e954baf9d72bd3863a85bde402d2133))
+ - **FIX**(app-check,ios): update app check to stable release ([#12924](https://github.com/firebase/flutterfire/issues/12924)). ([ced11684](https://github.com/firebase/flutterfire/commit/ced1168482c3b8e8b4746abde13649d212a503fd))
+
+## 0.3.0
+
+> Note: This release has breaking changes.
+
+ - **BREAKING** **REFACTOR**: android plugins require `minSdk 21`, auth requires `minSdk 23` ahead of android BOM `>=33.0.0` ([#12873](https://github.com/firebase/flutterfire/issues/12873)). ([52accfc6](https://github.com/firebase/flutterfire/commit/52accfc6c39d6360d9c0f36efe369ede990b7362))
+ - **BREAKING** **REFACTOR**: bump all iOS deployment targets to iOS 13 ahead of Firebase iOS SDK `v11` breaking change ([#12872](https://github.com/firebase/flutterfire/issues/12872)). ([de0cea2c](https://github.com/firebase/flutterfire/commit/de0cea2c3c36694a76361be784255986fac84a43))
+
+## 0.2.2+7
+
+ - Update a dependency to the latest release.
+
+## 0.2.2+6
+
+ - Update a dependency to the latest release.
+
+## 0.2.2+5
+
+ - Update a dependency to the latest release.
+
+## 0.2.2+4
+
+ - Update a dependency to the latest release.
+
+## 0.2.2+3
+
+ - Update a dependency to the latest release.
+
+## 0.2.2+2
+
+ - Update a dependency to the latest release.
+
+## 0.2.2+1
+
+ - **FIX**(app-check,android): fix unnecessary deprecation warning ([#12578](https://github.com/firebase/flutterfire/issues/12578)). ([805ca028](https://github.com/firebase/flutterfire/commit/805ca028d20c582e93bcebbeca3105deab365edc))
+
+## 0.2.2
+
+ - **FEAT**(android): Bump `compileSdk` version of Android plugins to latest stable (34) ([#12566](https://github.com/firebase/flutterfire/issues/12566)). ([e891fab2](https://github.com/firebase/flutterfire/commit/e891fab291e9beebc223000b133a6097e066a7fc))
+
+## 0.2.1+19
+
+ - **REFACTOR**(app_check,web): small refactor around initialisation of FirebaseAppCheckWeb ([#12474](https://github.com/firebase/flutterfire/issues/12474)). ([83aab7f8](https://github.com/firebase/flutterfire/commit/83aab7f8f6a6dde6e71765826c0e1f9aabc110a0))
+
+## 0.2.1+18
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+17
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+16
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+15
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+14
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+13
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+12
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+11
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+10
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+9
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+8
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+7
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+6
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+5
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+4
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+3
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+2
+
+ - Update a dependency to the latest release.
+
+## 0.2.1+1
+
+ - Update a dependency to the latest release.
+
+## 0.2.1
+
+ - **REFACTOR**(app-check,android): update linting warnings ([#11666](https://github.com/firebase/flutterfire/issues/11666)). ([fa9c8181](https://github.com/firebase/flutterfire/commit/fa9c8181156697a96b2615906b24613f28346175))
+ - **FIX**(firebase_app_check): Allow non-default app for Android debug provider ([#11680](https://github.com/firebase/flutterfire/issues/11680)). ([dd20c0c7](https://github.com/firebase/flutterfire/commit/dd20c0c7413dd9c9cd4c54426afc2572f9438607))
+ - **FEAT**: Full support of AGP 8 ([#11699](https://github.com/firebase/flutterfire/issues/11699)). ([bdb5b270](https://github.com/firebase/flutterfire/commit/bdb5b27084d225809883bdaa6aa5954650551927))
+ - **FEAT**(app_check): Use Android dependencies from Firebase BOM ([#11671](https://github.com/firebase/flutterfire/issues/11671)). ([378fcbdc](https://github.com/firebase/flutterfire/commit/378fcbdc4909e448d47cc204147a2ecd978b4fb7))
+ - **DOCS**: Updated documentation link in firebase_app_check README.md ([#11712](https://github.com/firebase/flutterfire/issues/11712)). ([dd3e56c6](https://github.com/firebase/flutterfire/commit/dd3e56c67a2ddad0a11043f00e9d80544d36355a))
+
+## 0.2.0+1
+
+ - Update a dependency to the latest release.
+
+## 0.2.0
+
+> Note: This release has breaking changes.
+
+ - **BREAKING** **FEAT**(app-check,web): support for `ReCaptchaEnterpriseProvider`. User facing API updated. ([#11573](https://github.com/firebase/flutterfire/issues/11573)). ([09825edd](https://github.com/firebase/flutterfire/commit/09825edd0e1ecd609e2046fdefda439ce4099087))
+
+## 0.1.5+2
+
+ - Update a dependency to the latest release.
+
+## 0.1.5+1
+
+ - Update a dependency to the latest release.
+
+## 0.1.5
+
+ - **FEAT**(app-check): support for `getLimitedUseToken()` API ([#11091](https://github.com/firebase/flutterfire/issues/11091)). ([9db9326f](https://github.com/firebase/flutterfire/commit/9db9326fe503c31299c9685449150e809543974e))
+
+## 0.1.4+3
+
+ - Update a dependency to the latest release.
+
+## 0.1.4+2
+
+ - Update a dependency to the latest release.
+
+## 0.1.4+1
+
+ - Update a dependency to the latest release.
+
+## 0.1.4
+
+ - **FEAT**: update dependency constraints to `sdk: '>=2.18.0 <4.0.0'` `flutter: '>=3.3.0'` ([#10946](https://github.com/firebase/flutterfire/issues/10946)). ([2772d10f](https://github.com/firebase/flutterfire/commit/2772d10fe510dcc28ec2d37a26b266c935699fa6))
+ - **FEAT**: update libraries to be compatible with Flutter 3.10.0 ([#10944](https://github.com/firebase/flutterfire/issues/10944)). ([e1f5a5ea](https://github.com/firebase/flutterfire/commit/e1f5a5ea798c54f19d1d2f7b8f2250f8819f44b7))
+
+## 0.1.3
+
+ - **FIX**: add support for AGP 8.0 ([#10901](https://github.com/firebase/flutterfire/issues/10901)). ([a3b96735](https://github.com/firebase/flutterfire/commit/a3b967354294c295a9be8d699a6adb7f4b1dba7f))
+ - **FEAT**: upgrade to dart 3 compatible dependencies ([#10890](https://github.com/firebase/flutterfire/issues/10890)). ([4bd7e59b](https://github.com/firebase/flutterfire/commit/4bd7e59b1f2b09a2230c49830159342dd4592041))
+
+## 0.1.2+3
+
+ - **FIX**(app-check): use correct `getAppCheckToken()` method. Print out debug token for iOS. ([#10819](https://github.com/firebase/flutterfire/issues/10819)). ([66909a9c](https://github.com/firebase/flutterfire/commit/66909a9c5b10e85f93565cbc308fdbee4ec6f607))
+
+## 0.1.2+2
+
+ - Update a dependency to the latest release.
+
+## 0.1.2+1
+
+ - **FIX**(app-check): fix 'Semantic Issue (Xcode): `new` is unavailable' on XCode 14.3 ([#10734](https://github.com/firebase/flutterfire/issues/10734)). ([cc6d1c28](https://github.com/firebase/flutterfire/commit/cc6d1c28193d5cdaaa564729340c380b5f632982))
+
+## 0.1.2
+
+ - **FEAT**: bump dart sdk constraint to 2.18 ([#10618](https://github.com/firebase/flutterfire/issues/10618)). ([f80948a2](https://github.com/firebase/flutterfire/commit/f80948a28b62eead358bdb900d5a0dfb97cebb33))
+
+## 0.1.1+14
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+13
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+12
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+11
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+10
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+9
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+8
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+7
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+6
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+5
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+4
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+3
+
+ - Update a dependency to the latest release.
+
+## 0.1.1+2
+
+ - **REFACTOR**: add `verify` to `QueryPlatform` and change internal `verifyToken` API to `verify` ([#9711](https://github.com/firebase/flutterfire/issues/9711)). ([c99a842f](https://github.com/firebase/flutterfire/commit/c99a842f3e3f5f10246e73f51530cc58c42b49a3))
+
+## 0.1.1+1
+
+ - Update a dependency to the latest release.
+
+## 0.1.1
+
+- Update a dependency to the latest release.
+
+## 0.1.0
+
+> Note: This release has breaking changes.
+
+ - **BREAKING** **FEAT**: Firebase iOS SDK version: `10.0.0` ([#9708](https://github.com/firebase/flutterfire/issues/9708)). ([9627c56a](https://github.com/firebase/flutterfire/commit/9627c56a37d657d0250b6f6b87d0fec1c31d4ba3))
+
+## 0.0.9+1
+
+ - Update a dependency to the latest release.
+
+## 0.0.9
+
+ - **FEAT**: provide `androidDebugProvider` boolean for android debug provider & update app check example app ([#9412](https://github.com/firebase/flutterfire/issues/9412)). ([f1f26748](https://github.com/firebase/flutterfire/commit/f1f26748615c7c9d406e1d3d605e2987e1134ee7))
+
+## 0.0.8
+
+ - **FEAT**: provide `androidDebugProvider` boolean for android debug provider & update app check example app ([#9412](https://github.com/firebase/flutterfire/issues/9412)). ([f1f26748](https://github.com/firebase/flutterfire/commit/f1f26748615c7c9d406e1d3d605e2987e1134ee7))
+
+## 0.0.7+2
+
+ - Update a dependency to the latest release.
+
+## 0.0.7+1
+
+ - Update a dependency to the latest release.
+
+## 0.0.7
+
+ - **FEAT**: update the example app with webRecaptcha in activate button ([#9373](https://github.com/firebase/flutterfire/issues/9373)). ([1ff76c1b](https://github.com/firebase/flutterfire/commit/1ff76c1b87b623ff21c921d6a6cc2c586cf43ac3))
+ - **REFACTOR**: update deprecated `Tasks.call()` to `TaskCompletionSource` API ([#9404](https://github.com/firebase/flutterfire/pull/9404)). ([837d68ea](https://github.com/firebase/flutterfire/commit/5aa9f665e70297fecb88bd0fda5445753470660f))
+
+## 0.0.6+20
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+19
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+18
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+17
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+16
+
+ - **FIX**: bump `firebase_core_platform_interface` version to fix previous release. ([bea70ea5](https://github.com/firebase/flutterfire/commit/bea70ea5cbbb62cbfd2a7a74ae3a07cb12b3ee5a))
+
+## 0.0.6+15
+
+ - **DOCS**: separate the first sentence of a doc comment into its own paragraph for `getToken()` (#8968). ([4d487ef7](https://github.com/firebase/flutterfire/commit/4d487ef7abdb9a8333735ced9c40438fef9912a3))
+
+## 0.0.6+14
+
+ - **REFACTOR**: use `firebase.google.com` link for `homepage` in `pubspec.yaml` (#8727). ([41a963b3](https://github.com/firebase/flutterfire/commit/41a963b376ae4ec23e1394bc074f8feee6ae16b2))
+ - **REFACTOR**: use "firebase" instead of "FirebaseExtended" as organisation in all links for this repository (#8791). ([d90b8357](https://github.com/firebase/flutterfire/commit/d90b8357db01d65e753021358668f0b129713e6b))
+ - **DOCS**: point to "firebase.google" domain for hyperlinks in the usage section of `README.md` files (for the missing packages) (#8818). ([5bda8c92](https://github.com/firebase/flutterfire/commit/5bda8c92be1651a941d1285d36e885ee0b967b11))
+
+## 0.0.6+13
+
+ - **DOCS**: use camel case style for "FlutterFire" in `README.md` (#8747). ([e2a022d7](https://github.com/firebase/flutterfire/commit/e2a022d7427817002e4114eb7434aa6e53384891))
+
+## 0.0.6+12
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+11
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+10
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+9
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+8
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+7
+
+ - **FIX**: update all Dart SDK version constraints to Dart >= 2.16.0 (#8184). ([df4a5bab](https://github.com/firebase/flutterfire/commit/df4a5bab3c029399b4f257a5dd658d302efe3908))
+
+## 0.0.6+6
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+5
+
+ - **FIX**: workaround iOS build issue when targeting platforms < iOS 11. ([c78e0b79](https://github.com/firebase/flutterfire/commit/c78e0b79bde479e78c558d3df92988c130280e81))
+
+## 0.0.6+4
+
+ - **FIX**: bump Android `compileSdkVersion` to 31 (#7726). ([a9562bac](https://github.com/firebase/flutterfire/commit/a9562bac60ba927fb3664a47a7f7eaceb277dca6))
+
+## 0.0.6+3
+
+ - **REFACTOR**: fix all `unnecessary_import` analyzer issues introduced with Flutter 2.8. ([7f0e82c9](https://github.com/firebase/flutterfire/commit/7f0e82c978a3f5a707dd95c7e9136a3e106ff75e))
+
+## 0.0.6+2
+
+ - Update a dependency to the latest release.
+
+## 0.0.6+1
+
+ - Update a dependency to the latest release.
+
+## 0.0.6
+
+ - **FEAT**: add token apis and documentation (#7419).
+
+## 0.0.5
+
+- **NEW**: Added support for multi-app via the `instanceFor()` method.
+- **NEW**: Added support for getting the current App Check token via the `getToken()` method.
+- **NEW**: Added support for enabling automatic token refreshing via the `setTokenAutoRefreshEnabled()` method.
+- **NEW**: Added support for subscribing to token change events (as a `Stream`) via `onTokenChange`.
+
+## 0.0.4
+
+ - **REFACTOR**: migrate remaining examples & e2e tests to null-safety (#7393).
+ - **FEAT**: automatically inject Firebase JS SDKs (#7359).
+
+## 0.0.3
+
+ - **FEAT**: support initializing default `FirebaseApp` instances from Dart (#6549).
+
+## 0.0.2+4
+
+ - Update a dependency to the latest release.
+
+## 0.0.2+3
+
+ - Update a dependency to the latest release.
+
+## 0.0.2+2
+
+ - Update a dependency to the latest release.
+
+## 0.0.2+1
+
+ - **DOCS**: using for version `0.0.1` the same markdown headline level as the other versions have in the changelog (#6845).
+
+## 0.0.2
+
+ - **STYLE**: enable additional lint rules (#6832).
+ - **FEAT**: lower iOS & macOS deployment targets for relevant plugins (#6757).
+
+## 0.0.1+3
+
+ - Update a dependency to the latest release.
+
+## 0.0.1+2
+
+ - Update a dependency to the latest release.
+
+## 0.0.1+1
+
+ - Update a dependency to the latest release.
+
+## 0.0.1
+
+ - Initial release.
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/LICENSE b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/LICENSE
new file mode 100644
index 00000000..88629004
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/LICENSE
@@ -0,0 +1,27 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/README.md b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/README.md
new file mode 100644
index 00000000..1d0c9574
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/README.md
@@ -0,0 +1,24 @@
+# Firebase App Check for Flutter
+[](https://pub.dev/packages/firebase_app_check)
+
+A Flutter plugin to use the [Firebase App Check API](https://firebase.google.com/docs/app-check/).
+
+To learn more about Firebase App Check, please visit the [Firebase website](https://firebase.google.com/docs/app-check)
+
+## Getting Started
+
+To get started with Firebase App Check for Flutter, please [see the documentation](https://firebase.google.com/docs/app-check/flutter/default-providers).
+
+## Usage
+
+To use this plugin, please visit the [App Check Usage documentation](https://firebase.google.com/docs/app-check/flutter/default-providers#initialize)
+
+## Issues and feedback
+
+Please file FlutterFire specific issues, bugs, or feature requests in our [issue tracker](https://github.com/firebase/flutterfire/issues/new).
+
+Plugin issues that are not specific to FlutterFire can be filed in the [Flutter issue tracker](https://github.com/flutter/flutter/issues/new).
+
+To contribute a change to this plugin,
+please review our [contribution guide](https://github.com/firebase/flutterfire/blob/main/CONTRIBUTING.md)
+and open a [pull request](https://github.com/firebase/flutterfire/pulls).
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/build.gradle b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/build.gradle
new file mode 100644
index 00000000..cc7c342a
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/build.gradle
@@ -0,0 +1,94 @@
+group 'io.flutter.plugins.firebase.appcheck'
+version '1.0-SNAPSHOT'
+
+apply plugin: 'com.android.library'
+apply from: file("local-config.gradle")
+
+buildscript {
+ ext.kotlin_version = "2.0.0"
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+// AGP 9+ has built-in Kotlin support unless Flutter opts out via android.builtInKotlin=false.
+def agpMajor = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0] as int
+def builtInKotlin = providers.gradleProperty("android.builtInKotlin")
+ .map { it.toBoolean() }
+ .orElse(agpMajor >= 9)
+ .get()
+if (agpMajor < 9 || !builtInKotlin) {
+ apply plugin: 'kotlin-android'
+}
+
+def firebaseCoreProject = findProject(':firebase_core')
+if (firebaseCoreProject == null) {
+ throw new GradleException('Could not find the firebase_core FlutterFire plugin, have you added it as a dependency in your pubspec?')
+} else if (!firebaseCoreProject.properties['FirebaseSDKVersion']) {
+ throw new GradleException('A newer version of the firebase_core FlutterFire plugin is required, please update your firebase_core pubspec dependency.')
+}
+
+def getRootProjectExtOrCoreProperty(name, firebaseCoreProject) {
+ if (!rootProject.ext.has('FlutterFire')) return firebaseCoreProject.properties[name]
+ if (!rootProject.ext.get('FlutterFire')[name]) return firebaseCoreProject.properties[name]
+ return rootProject.ext.get('FlutterFire').get(name)
+}
+
+android {
+ // Conditional for compatibility with AGP <4.2.
+ if (project.android.hasProperty("namespace")) {
+ namespace 'io.flutter.plugins.firebase.appcheck'
+ }
+
+ compileSdkVersion project.ext.compileSdk
+
+ defaultConfig {
+ minSdkVersion project.ext.minSdk
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ compileOptions {
+ sourceCompatibility project.ext.javaVersion
+ targetCompatibility project.ext.javaVersion
+ }
+
+ sourceSets {
+ main.java.srcDirs += "src/main/kotlin"
+ test.java.srcDirs += "src/test/kotlin"
+ }
+
+ buildFeatures {
+ buildConfig true
+ }
+
+ lintOptions {
+ disable 'InvalidPackage'
+ }
+
+ dependencies {
+ api firebaseCoreProject
+ implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}")
+ implementation 'com.google.firebase:firebase-appcheck-debug'
+ implementation 'com.google.firebase:firebase-appcheck-playintegrity'
+ implementation 'com.google.firebase:firebase-appcheck-recaptcha'
+ implementation 'androidx.annotation:annotation:1.7.0'
+ }
+}
+
+plugins.withId("org.jetbrains.kotlin.android") {
+ kotlin {
+ compilerOptions {
+ jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.fromTarget(project.ext.javaVersion.toString())
+ }
+ }
+}
+
+apply from: file("./user-agent.gradle")
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/gradle.properties b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/gradle.properties
new file mode 100644
index 00000000..d9cf55df
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/gradle.properties
@@ -0,0 +1,2 @@
+org.gradle.jvmargs=-Xmx1536M
+android.useAndroidX=true
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/gradle/wrapper/gradle-wrapper.properties b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..e411586a
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/local-config.gradle b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/local-config.gradle
new file mode 100644
index 00000000..802b7e1d
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/local-config.gradle
@@ -0,0 +1,7 @@
+ext {
+ compileSdk=34
+ minSdk=23
+ targetSdk=34
+ javaVersion = JavaVersion.toVersion(17)
+ androidGradlePluginVersion = '8.3.0'
+}
\ No newline at end of file
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/settings.gradle b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/settings.gradle
new file mode 100644
index 00000000..11ac1690
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/settings.gradle
@@ -0,0 +1,10 @@
+rootProject.name = 'firebase_app_check'
+
+apply from: file("local-config.gradle")
+
+pluginManagement {
+ plugins {
+ id "com.android.application" version project.ext.androidGradlePluginVersion
+ id "com.android.library" version project.ext.androidGradlePluginVersion
+ }
+}
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/src/main/AndroidManifest.xml b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..18867831
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/src/main/AndroidManifest.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/src/main/kotlin/io/flutter/plugins/firebase/appcheck/FirebaseAppCheckPlugin.kt b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/src/main/kotlin/io/flutter/plugins/firebase/appcheck/FirebaseAppCheckPlugin.kt
new file mode 100644
index 00000000..99aab95e
--- /dev/null
+++ b/mih_ui/android/build/ios/SourcePackages/firebase_app_check-0.4.5/android/src/main/kotlin/io/flutter/plugins/firebase/appcheck/FirebaseAppCheckPlugin.kt
@@ -0,0 +1,161 @@
+// Copyright 2025 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+package io.flutter.plugins.firebase.appcheck
+
+import android.os.Handler
+import android.os.Looper
+import com.google.android.gms.tasks.Task
+import com.google.android.gms.tasks.TaskCompletionSource
+import com.google.firebase.FirebaseApp
+import com.google.firebase.appcheck.FirebaseAppCheck
+import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory
+import com.google.firebase.appcheck.playintegrity.PlayIntegrityAppCheckProviderFactory
+import com.google.firebase.appcheck.recaptcha.RecaptchaAppCheckProviderFactory
+import io.flutter.embedding.engine.plugins.FlutterPlugin
+import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding
+import io.flutter.plugin.common.BinaryMessenger
+import io.flutter.plugin.common.EventChannel
+import io.flutter.plugins.firebase.core.FlutterFirebasePlugin
+import io.flutter.plugins.firebase.core.FlutterFirebasePluginRegistry
+
+class FirebaseAppCheckPlugin : FlutterFirebasePlugin, FlutterPlugin, FirebaseAppCheckHostApi {
+
+ private val streamHandlers: MutableMap = HashMap()
+ private val eventChannels: MutableMap = HashMap()
+ private val mainThreadHandler = Handler(Looper.getMainLooper())
+ private var messenger: BinaryMessenger? = null
+
+ companion object {
+ const val METHOD_CHANNEL = "plugins.flutter.io/firebase_app_check"
+ const val EVENT_CHANNEL_PREFIX = "plugins.flutter.io/firebase_app_check/token/"
+ }
+
+ override fun onAttachedToEngine(binding: FlutterPluginBinding) {
+ messenger = binding.binaryMessenger
+ FirebaseAppCheckHostApi.setUp(binding.binaryMessenger, this)
+ FlutterFirebasePluginRegistry.registerPlugin(METHOD_CHANNEL, this)
+ }
+
+ override fun onDetachedFromEngine(binding: FlutterPluginBinding) {
+ FirebaseAppCheckHostApi.setUp(binding.binaryMessenger, null)
+ messenger = null
+ removeEventListeners()
+ }
+
+ private fun getAppCheck(appName: String): FirebaseAppCheck {
+ val app = FirebaseApp.getInstance(appName)
+ return FirebaseAppCheck.getInstance(app)
+ }
+
+ override fun activate(
+ appName: String,
+ androidProvider: String?,
+ appleProvider: String?,
+ debugToken: String?,
+ callback: (Result) -> Unit
+ ) {
+ try {
+ val firebaseAppCheck = getAppCheck(appName)
+ when (androidProvider) {
+ "debug" -> {
+ FlutterFirebaseAppRegistrar.debugToken = debugToken
+ firebaseAppCheck.installAppCheckProviderFactory(
+ DebugAppCheckProviderFactory.getInstance())
+ }
+ "recaptcha" -> {
+ firebaseAppCheck.installAppCheckProviderFactory(
+ RecaptchaAppCheckProviderFactory.getInstance())
+ }
+ else -> {
+ firebaseAppCheck.installAppCheckProviderFactory(
+ PlayIntegrityAppCheckProviderFactory.getInstance())
+ }
+ }
+ callback(Result.success(Unit))
+ } catch (e: Exception) {
+ callback(Result.failure(FlutterError("unknown", e.message, null)))
+ }
+ }
+
+ override fun getToken(
+ appName: String,
+ forceRefresh: Boolean,
+ callback: (Result) -> Unit
+ ) {
+ val firebaseAppCheck = getAppCheck(appName)
+ firebaseAppCheck.getAppCheckToken(forceRefresh).addOnCompleteListener { task ->
+ if (task.isSuccessful) {
+ callback(Result.success(task.result?.token))
+ } else {
+ callback(Result.failure(FlutterError("firebase_app_check", task.exception?.message, null)))
+ }
+ }
+ }
+
+ override fun setTokenAutoRefreshEnabled(
+ appName: String,
+ isTokenAutoRefreshEnabled: Boolean,
+ callback: (Result) -> Unit
+ ) {
+ try {
+ val firebaseAppCheck = getAppCheck(appName)
+ firebaseAppCheck.setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled)
+ callback(Result.success(Unit))
+ } catch (e: Exception) {
+ callback(Result.failure(FlutterError("unknown", e.message, null)))
+ }
+ }
+
+ override fun registerTokenListener(appName: String, callback: (Result) -> Unit) {
+ try {
+ val firebaseAppCheck = getAppCheck(appName)
+ val name = EVENT_CHANNEL_PREFIX + appName
+
+ val handler = TokenChannelStreamHandler(firebaseAppCheck)
+ val channel = EventChannel(messenger, name)
+ channel.setStreamHandler(handler)
+ eventChannels[name] = channel
+ streamHandlers[name] = handler
+
+ callback(Result.success(name))
+ } catch (e: Exception) {
+ callback(Result.failure(FlutterError("unknown", e.message, null)))
+ }
+ }
+
+ override fun getLimitedUseAppCheckToken(appName: String, callback: (Result) -> Unit) {
+ val firebaseAppCheck = getAppCheck(appName)
+ firebaseAppCheck.limitedUseAppCheckToken.addOnCompleteListener { task ->
+ if (task.isSuccessful) {
+ callback(Result.success(task.result?.token ?: ""))
+ } else {
+ callback(Result.failure(FlutterError("firebase_app_check", task.exception?.message, null)))
+ }
+ }
+ }
+
+ override fun getPluginConstantsForFirebaseApp(firebaseApp: FirebaseApp): Task