Compare commits
	
		
			1 Commits
		
	
	
		
			1.0.3
			...
			02eedfb98c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 02eedfb98c | 
@@ -6,7 +6,7 @@ name: default
 | 
				
			|||||||
steps:
 | 
					steps:
 | 
				
			||||||
# Frontend
 | 
					# Frontend
 | 
				
			||||||
- name: web_build
 | 
					- name: web_build
 | 
				
			||||||
  image: node:23
 | 
					  image: node:24
 | 
				
			||||||
  volumes:
 | 
					  volumes:
 | 
				
			||||||
    - name: web_app
 | 
					    - name: web_app
 | 
				
			||||||
      path: /tmp/web_build
 | 
					      path: /tmp/web_build
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								moneymgr_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								moneymgr_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							@@ -1100,9 +1100,9 @@ dependencies = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "diesel"
 | 
					name = "diesel"
 | 
				
			||||||
version = "2.2.11"
 | 
					version = "2.2.10"
 | 
				
			||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
checksum = "a917a9209950404d5be011c81d081a2692a822f73c3d6af586f0cab5ff50f614"
 | 
					checksum = "ff3e1edb1f37b4953dd5176916347289ed43d7119cc2e6c7c3f7849ff44ea506"
 | 
				
			||||||
dependencies = [
 | 
					dependencies = [
 | 
				
			||||||
 "bitflags",
 | 
					 "bitflags",
 | 
				
			||||||
 "byteorder",
 | 
					 "byteorder",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,7 @@ edition = "2024"
 | 
				
			|||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
env_logger = "0.11.8"
 | 
					env_logger = "0.11.8"
 | 
				
			||||||
log = "0.4.27"
 | 
					log = "0.4.27"
 | 
				
			||||||
diesel = { version = "2.2.11", features = ["postgres", "r2d2"] }
 | 
					diesel = { version = "2.2.10", features = ["postgres", "r2d2"] }
 | 
				
			||||||
diesel_migrations = "2.2.0"
 | 
					diesel_migrations = "2.2.0"
 | 
				
			||||||
clap = { version = "4.5.40", features = ["env", "derive"] }
 | 
					clap = { version = "4.5.40", features = ["env", "derive"] }
 | 
				
			||||||
actix-web = "4.11.0"
 | 
					actix-web = "4.11.0"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,7 +30,7 @@ pub async fn create_bucket_if_required() -> anyhow::Result<()> {
 | 
				
			|||||||
            log::warn!("The bucket does not seem to exists, trying to create it!")
 | 
					            log::warn!("The bucket does not seem to exists, trying to create it!")
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        Err(e) => {
 | 
					        Err(e) => {
 | 
				
			||||||
            log::error!("Got unexpected error when querying bucket info: {e}");
 | 
					            log::error!("Got unexpected error when querying bucket info: {}", e);
 | 
				
			||||||
            return Err(BucketServiceError::FailedFetchBucketInfo.into());
 | 
					            return Err(BucketServiceError::FailedFetchBucketInfo.into());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,7 +50,7 @@ impl FromRequest for AccountInPath {
 | 
				
			|||||||
            Self::load_account_from_path(&auth, account_id)
 | 
					            Self::load_account_from_path(&auth, account_id)
 | 
				
			||||||
                .await
 | 
					                .await
 | 
				
			||||||
                .map_err(|e| {
 | 
					                .map_err(|e| {
 | 
				
			||||||
                    log::error!("Failed to extract account ID from URL! {e}");
 | 
					                    log::error!("Failed to extract account ID from URL! {}", e);
 | 
				
			||||||
                    actix_web::error::ErrorNotFound("Could not fetch account information!")
 | 
					                    actix_web::error::ErrorNotFound("Could not fetch account information!")
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -165,13 +165,13 @@ impl FromRequest for AuthExtractor {
 | 
				
			|||||||
                // Update last use (if needed)
 | 
					                // Update last use (if needed)
 | 
				
			||||||
                if token.shall_update_time_used() {
 | 
					                if token.shall_update_time_used() {
 | 
				
			||||||
                    if let Err(e) = tokens_service::update_time_used(&token).await {
 | 
					                    if let Err(e) = tokens_service::update_time_used(&token).await {
 | 
				
			||||||
                        log::error!("Failed to refresh last usage of token! {e}");
 | 
					                        log::error!("Failed to refresh last usage of token! {}", e);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // Handle tokens expiration
 | 
					                // Handle tokens expiration
 | 
				
			||||||
                if token.is_expired() {
 | 
					                if token.is_expired() {
 | 
				
			||||||
                    log::error!("Attempted to use expired token! {token:?}");
 | 
					                    log::error!("Attempted to use expired token! {:?}", token);
 | 
				
			||||||
                    return Err(actix_web::error::ErrorBadRequest("Token has expired!"));
 | 
					                    return Err(actix_web::error::ErrorBadRequest("Token has expired!"));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,7 +47,7 @@ impl FromRequest for FileIdExtractor {
 | 
				
			|||||||
            Self::load_file_from_path(&auth, file_id)
 | 
					            Self::load_file_from_path(&auth, file_id)
 | 
				
			||||||
                .await
 | 
					                .await
 | 
				
			||||||
                .map_err(|e| {
 | 
					                .map_err(|e| {
 | 
				
			||||||
                    log::error!("Failed to extract file ID from URL! {e}");
 | 
					                    log::error!("Failed to extract file ID from URL! {}", e);
 | 
				
			||||||
                    actix_web::error::ErrorNotFound("Could not fetch file information!")
 | 
					                    actix_web::error::ErrorNotFound("Could not fetch file information!")
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -50,7 +50,7 @@ impl FromRequest for InboxEntryInPath {
 | 
				
			|||||||
            Self::load_inbox_entry_from_path(&auth, entry_id)
 | 
					            Self::load_inbox_entry_from_path(&auth, entry_id)
 | 
				
			||||||
                .await
 | 
					                .await
 | 
				
			||||||
                .map_err(|e| {
 | 
					                .map_err(|e| {
 | 
				
			||||||
                    log::error!("Failed to extract inbox entry ID from URL! {e}");
 | 
					                    log::error!("Failed to extract inbox entry ID from URL! {}", e);
 | 
				
			||||||
                    actix_web::error::ErrorNotFound("Could not fetch inbox entry information!")
 | 
					                    actix_web::error::ErrorNotFound("Could not fetch inbox entry information!")
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -57,7 +57,7 @@ impl FromRequest for MovementInPath {
 | 
				
			|||||||
            Self::load_movement_from_path(&auth, account_id)
 | 
					            Self::load_movement_from_path(&auth, account_id)
 | 
				
			||||||
                .await
 | 
					                .await
 | 
				
			||||||
                .map_err(|e| {
 | 
					                .map_err(|e| {
 | 
				
			||||||
                    log::error!("Failed to extract movement ID from URL! {e}");
 | 
					                    log::error!("Failed to extract movement ID from URL! {}", e);
 | 
				
			||||||
                    actix_web::error::ErrorNotFound("Could not fetch movement information!")
 | 
					                    actix_web::error::ErrorNotFound("Could not fetch movement information!")
 | 
				
			||||||
                })
 | 
					                })
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										612
									
								
								moneymgr_web/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										612
									
								
								moneymgr_web/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -14,11 +14,11 @@
 | 
				
			|||||||
        "@jsonjoy.com/base64": "^1.1.2",
 | 
					        "@jsonjoy.com/base64": "^1.1.2",
 | 
				
			||||||
        "@mdi/js": "^7.4.47",
 | 
					        "@mdi/js": "^7.4.47",
 | 
				
			||||||
        "@mdi/react": "^1.6.1",
 | 
					        "@mdi/react": "^1.6.1",
 | 
				
			||||||
        "@mui/icons-material": "^7.1.2",
 | 
					        "@mui/icons-material": "^7.1.1",
 | 
				
			||||||
        "@mui/material": "^7.1.2",
 | 
					        "@mui/material": "^7.1.1",
 | 
				
			||||||
        "@mui/x-charts": "^8.5.3",
 | 
					        "@mui/x-charts": "^8.5.2",
 | 
				
			||||||
        "@mui/x-data-grid": "^8.5.3",
 | 
					        "@mui/x-data-grid": "^8.5.2",
 | 
				
			||||||
        "@mui/x-date-pickers": "^8.5.3",
 | 
					        "@mui/x-date-pickers": "^8.3.1",
 | 
				
			||||||
        "date-and-time": "^3.6.0",
 | 
					        "date-and-time": "^3.6.0",
 | 
				
			||||||
        "dayjs": "^1.11.13",
 | 
					        "dayjs": "^1.11.13",
 | 
				
			||||||
        "filesize": "^10.1.6",
 | 
					        "filesize": "^10.1.6",
 | 
				
			||||||
@@ -30,16 +30,16 @@
 | 
				
			|||||||
        "ts-pattern": "^5.7.1"
 | 
					        "ts-pattern": "^5.7.1"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "devDependencies": {
 | 
					      "devDependencies": {
 | 
				
			||||||
        "@eslint/js": "^9.29.0",
 | 
					        "@eslint/js": "^9.28.0",
 | 
				
			||||||
        "@types/react": "^19.1.8",
 | 
					        "@types/react": "^19.1.8",
 | 
				
			||||||
        "@types/react-dom": "^19.1.6",
 | 
					        "@types/react-dom": "^19.1.6",
 | 
				
			||||||
        "@vitejs/plugin-react": "^4.6.0",
 | 
					        "@vitejs/plugin-react": "^4.4.1",
 | 
				
			||||||
        "eslint": "^9.26.0",
 | 
					        "eslint": "^9.26.0",
 | 
				
			||||||
        "eslint-plugin-react-dom": "^1.49.0",
 | 
					        "eslint-plugin-react-dom": "^1.49.0",
 | 
				
			||||||
        "eslint-plugin-react-hooks": "^5.2.0",
 | 
					        "eslint-plugin-react-hooks": "^5.2.0",
 | 
				
			||||||
        "eslint-plugin-react-refresh": "^00.4.20",
 | 
					        "eslint-plugin-react-refresh": "^00.4.20",
 | 
				
			||||||
        "eslint-plugin-react-x": "^1.52.2",
 | 
					        "eslint-plugin-react-x": "^1.49.0",
 | 
				
			||||||
        "globals": "^16.2.0",
 | 
					        "globals": "^16.1.0",
 | 
				
			||||||
        "typescript": "~5.8.3",
 | 
					        "typescript": "~5.8.3",
 | 
				
			||||||
        "typescript-eslint": "^8.32.1",
 | 
					        "typescript-eslint": "^8.32.1",
 | 
				
			||||||
        "vite": "^6.3.5"
 | 
					        "vite": "^6.3.5"
 | 
				
			||||||
@@ -84,22 +84,22 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@babel/core": {
 | 
					    "node_modules/@babel/core": {
 | 
				
			||||||
      "version": "7.27.4",
 | 
					      "version": "7.27.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==",
 | 
					      "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@ampproject/remapping": "^2.2.0",
 | 
					        "@ampproject/remapping": "^2.2.0",
 | 
				
			||||||
        "@babel/code-frame": "^7.27.1",
 | 
					        "@babel/code-frame": "^7.27.1",
 | 
				
			||||||
        "@babel/generator": "^7.27.3",
 | 
					        "@babel/generator": "^7.27.1",
 | 
				
			||||||
        "@babel/helper-compilation-targets": "^7.27.2",
 | 
					        "@babel/helper-compilation-targets": "^7.27.1",
 | 
				
			||||||
        "@babel/helper-module-transforms": "^7.27.3",
 | 
					        "@babel/helper-module-transforms": "^7.27.1",
 | 
				
			||||||
        "@babel/helpers": "^7.27.4",
 | 
					        "@babel/helpers": "^7.27.1",
 | 
				
			||||||
        "@babel/parser": "^7.27.4",
 | 
					        "@babel/parser": "^7.27.1",
 | 
				
			||||||
        "@babel/template": "^7.27.2",
 | 
					        "@babel/template": "^7.27.1",
 | 
				
			||||||
        "@babel/traverse": "^7.27.4",
 | 
					        "@babel/traverse": "^7.27.1",
 | 
				
			||||||
        "@babel/types": "^7.27.3",
 | 
					        "@babel/types": "^7.27.1",
 | 
				
			||||||
        "convert-source-map": "^2.0.0",
 | 
					        "convert-source-map": "^2.0.0",
 | 
				
			||||||
        "debug": "^4.1.0",
 | 
					        "debug": "^4.1.0",
 | 
				
			||||||
        "gensync": "^1.0.0-beta.2",
 | 
					        "gensync": "^1.0.0-beta.2",
 | 
				
			||||||
@@ -122,13 +122,13 @@
 | 
				
			|||||||
      "license": "MIT"
 | 
					      "license": "MIT"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@babel/generator": {
 | 
					    "node_modules/@babel/generator": {
 | 
				
			||||||
      "version": "7.27.5",
 | 
					      "version": "7.27.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==",
 | 
					      "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/parser": "^7.27.5",
 | 
					        "@babel/parser": "^7.27.1",
 | 
				
			||||||
        "@babel/types": "^7.27.3",
 | 
					        "@babel/types": "^7.27.1",
 | 
				
			||||||
        "@jridgewell/gen-mapping": "^0.3.5",
 | 
					        "@jridgewell/gen-mapping": "^0.3.5",
 | 
				
			||||||
        "@jridgewell/trace-mapping": "^0.3.25",
 | 
					        "@jridgewell/trace-mapping": "^0.3.25",
 | 
				
			||||||
        "jsesc": "^3.0.2"
 | 
					        "jsesc": "^3.0.2"
 | 
				
			||||||
@@ -168,15 +168,15 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@babel/helper-module-transforms": {
 | 
					    "node_modules/@babel/helper-module-transforms": {
 | 
				
			||||||
      "version": "7.27.3",
 | 
					      "version": "7.27.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==",
 | 
					      "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/helper-module-imports": "^7.27.1",
 | 
					        "@babel/helper-module-imports": "^7.27.1",
 | 
				
			||||||
        "@babel/helper-validator-identifier": "^7.27.1",
 | 
					        "@babel/helper-validator-identifier": "^7.27.1",
 | 
				
			||||||
        "@babel/traverse": "^7.27.3"
 | 
					        "@babel/traverse": "^7.27.1"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=6.9.0"
 | 
					        "node": ">=6.9.0"
 | 
				
			||||||
@@ -224,26 +224,26 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@babel/helpers": {
 | 
					    "node_modules/@babel/helpers": {
 | 
				
			||||||
      "version": "7.27.6",
 | 
					      "version": "7.27.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==",
 | 
					      "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/template": "^7.27.2",
 | 
					        "@babel/template": "^7.27.1",
 | 
				
			||||||
        "@babel/types": "^7.27.6"
 | 
					        "@babel/types": "^7.27.1"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=6.9.0"
 | 
					        "node": ">=6.9.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@babel/parser": {
 | 
					    "node_modules/@babel/parser": {
 | 
				
			||||||
      "version": "7.27.5",
 | 
					      "version": "7.27.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==",
 | 
					      "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/types": "^7.27.3"
 | 
					        "@babel/types": "^7.27.1"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "bin": {
 | 
					      "bin": {
 | 
				
			||||||
        "parser": "bin/babel-parser.js"
 | 
					        "parser": "bin/babel-parser.js"
 | 
				
			||||||
@@ -308,16 +308,16 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@babel/traverse": {
 | 
					    "node_modules/@babel/traverse": {
 | 
				
			||||||
      "version": "7.27.4",
 | 
					      "version": "7.27.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==",
 | 
					      "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/code-frame": "^7.27.1",
 | 
					        "@babel/code-frame": "^7.27.1",
 | 
				
			||||||
        "@babel/generator": "^7.27.3",
 | 
					        "@babel/generator": "^7.27.1",
 | 
				
			||||||
        "@babel/parser": "^7.27.4",
 | 
					        "@babel/parser": "^7.27.1",
 | 
				
			||||||
        "@babel/template": "^7.27.2",
 | 
					        "@babel/template": "^7.27.1",
 | 
				
			||||||
        "@babel/types": "^7.27.3",
 | 
					        "@babel/types": "^7.27.1",
 | 
				
			||||||
        "debug": "^4.3.1",
 | 
					        "debug": "^4.3.1",
 | 
				
			||||||
        "globals": "^11.1.0"
 | 
					        "globals": "^11.1.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@@ -335,9 +335,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@babel/types": {
 | 
					    "node_modules/@babel/types": {
 | 
				
			||||||
      "version": "7.27.6",
 | 
					      "version": "7.27.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==",
 | 
					      "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/helper-string-parser": "^7.27.1",
 | 
					        "@babel/helper-string-parser": "^7.27.1",
 | 
				
			||||||
@@ -1145,9 +1145,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@eslint/js": {
 | 
					    "node_modules/@eslint/js": {
 | 
				
			||||||
      "version": "9.29.0",
 | 
					      "version": "9.28.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.28.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==",
 | 
					      "integrity": "sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
@@ -1358,9 +1358,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mui/core-downloads-tracker": {
 | 
					    "node_modules/@mui/core-downloads-tracker": {
 | 
				
			||||||
      "version": "7.1.2",
 | 
					      "version": "7.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-0gLO1PvbJwSYe5ji021tGj6HFqrtEPMGKK4L1zWwRbhzrWWUumUJvMvJUsIgWQIYQsgOnhq9k2Fc1BxLGHDsAg==",
 | 
					      "integrity": "sha512-yBckQs4aQ8mqukLnPC6ivIRv6guhaXi8snVl00VtyojBbm+l6VbVhyTSZ68Abcx7Ah8B+GZhrB7BOli+e+9LkQ==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "funding": {
 | 
					      "funding": {
 | 
				
			||||||
        "type": "opencollective",
 | 
					        "type": "opencollective",
 | 
				
			||||||
@@ -1368,9 +1368,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mui/icons-material": {
 | 
					    "node_modules/@mui/icons-material": {
 | 
				
			||||||
      "version": "7.1.2",
 | 
					      "version": "7.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.1.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-slqJByDub7Y1UcokrM17BoMBMvn8n7daXFXVoTv0MEH5k3sHjmsH8ql/Mt3s9vQ20cORDr83UZ448TEGcbrXtw==",
 | 
					      "integrity": "sha512-X37+Yc8QpEnl0sYmz+WcLFy2dWgNRzbswDzLPXG7QU1XDVlP5TPp1HXjdmCupOWLL/I9m1fyhcyZl8/HPpp/Cg==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/runtime": "^7.27.1"
 | 
					        "@babel/runtime": "^7.27.1"
 | 
				
			||||||
@@ -1383,7 +1383,7 @@
 | 
				
			|||||||
        "url": "https://opencollective.com/mui-org"
 | 
					        "url": "https://opencollective.com/mui-org"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "peerDependencies": {
 | 
					      "peerDependencies": {
 | 
				
			||||||
        "@mui/material": "^7.1.2",
 | 
					        "@mui/material": "^7.1.1",
 | 
				
			||||||
        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
 | 
					        "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
 | 
				
			||||||
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
 | 
					        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@@ -1394,13 +1394,13 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mui/material": {
 | 
					    "node_modules/@mui/material": {
 | 
				
			||||||
      "version": "7.1.2",
 | 
					      "version": "7.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.1.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-Z5PYKkA6Kd8vS04zKxJNpwuvt6IoMwqpbidV7RCrRQQKwczIwcNcS8L6GnN4pzFYfEs+N9v6co27DmG07rcnoA==",
 | 
					      "integrity": "sha512-mTpdmdZCaHCGOH3SrYM41+XKvNL0iQfM9KlYgpSjgadXx/fEKhhvOktxm8++Xw6FFeOHoOiV+lzOI8X1rsv71A==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/runtime": "^7.27.1",
 | 
					        "@babel/runtime": "^7.27.1",
 | 
				
			||||||
        "@mui/core-downloads-tracker": "^7.1.2",
 | 
					        "@mui/core-downloads-tracker": "^7.1.1",
 | 
				
			||||||
        "@mui/system": "^7.1.1",
 | 
					        "@mui/system": "^7.1.1",
 | 
				
			||||||
        "@mui/types": "^7.4.3",
 | 
					        "@mui/types": "^7.4.3",
 | 
				
			||||||
        "@mui/utils": "^7.1.1",
 | 
					        "@mui/utils": "^7.1.1",
 | 
				
			||||||
@@ -1591,15 +1591,15 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mui/x-charts": {
 | 
					    "node_modules/@mui/x-charts": {
 | 
				
			||||||
      "version": "8.5.3",
 | 
					      "version": "8.5.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mui/x-charts/-/x-charts-8.5.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mui/x-charts/-/x-charts-8.5.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-aLU3KNA5bfKufxCPxBYx34xOn1mY5xaYGxxImEIQhL1BDnsjdkeF7b7gitL62XHpJe7ceU0nr2PbAr8msU0ZBQ==",
 | 
					      "integrity": "sha512-JLPTtd9m8CWMoIxwHFM9QpPDpfdsetfkCErJUvsyQnj/rC8sBMmQqk0c1olusA+OqTyVT3gGmiqXXFar/0cvkw==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/runtime": "^7.27.6",
 | 
					        "@babel/runtime": "^7.27.6",
 | 
				
			||||||
        "@mui/utils": "^7.1.1",
 | 
					        "@mui/utils": "^7.1.1",
 | 
				
			||||||
        "@mui/x-charts-vendor": "8.5.3",
 | 
					        "@mui/x-charts-vendor": "8.5.2",
 | 
				
			||||||
        "@mui/x-internals": "8.5.3",
 | 
					        "@mui/x-internals": "8.5.2",
 | 
				
			||||||
        "bezier-easing": "^2.1.0",
 | 
					        "bezier-easing": "^2.1.0",
 | 
				
			||||||
        "clsx": "^2.1.1",
 | 
					        "clsx": "^2.1.1",
 | 
				
			||||||
        "prop-types": "^15.8.1",
 | 
					        "prop-types": "^15.8.1",
 | 
				
			||||||
@@ -1627,9 +1627,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mui/x-charts-vendor": {
 | 
					    "node_modules/@mui/x-charts-vendor": {
 | 
				
			||||||
      "version": "8.5.3",
 | 
					      "version": "8.5.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mui/x-charts-vendor/-/x-charts-vendor-8.5.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mui/x-charts-vendor/-/x-charts-vendor-8.5.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-H05cb0c2qfRhWLPcwtiIU8BOcKTrMNvhgmRAvJJXpmlirOA1km8dUlR71VeUvJiCthhVIHKyFkPPzFYKgHAfng==",
 | 
					      "integrity": "sha512-93KFrEpo3Xhr0g2TQsbtPVqGAsbkKBN5J57ykrCM5GxFmq3kDGFU4k9+FpKiaIYYL8ijzgHGNh+jNVbP0pq3rQ==",
 | 
				
			||||||
      "license": "MIT AND ISC",
 | 
					      "license": "MIT AND ISC",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/runtime": "^7.27.6",
 | 
					        "@babel/runtime": "^7.27.6",
 | 
				
			||||||
@@ -1651,15 +1651,37 @@
 | 
				
			|||||||
        "robust-predicates": "^3.0.2"
 | 
					        "robust-predicates": "^3.0.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mui/x-data-grid": {
 | 
					    "node_modules/@mui/x-charts/node_modules/@mui/x-internals": {
 | 
				
			||||||
      "version": "8.5.3",
 | 
					      "version": "8.5.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-8.5.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.5.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-rA+de5yre16KFIGKRBUwb8kYIdn7SPPrZsBy1P3QxisqhC+Wz2AQg/W6WWv71aFHwplmGwsFUjU6d47Fy/wvXg==",
 | 
					      "integrity": "sha512-5YhB2AekK7G8d0YrAjg3WNf0uy3V73JD98WNxJhbIlCraQgl8QOQzr2zNO7MAf/X7mZQtjpjuAsiG3+gI2NVyg==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/runtime": "^7.27.6",
 | 
					        "@babel/runtime": "^7.27.6",
 | 
				
			||||||
        "@mui/utils": "^7.1.1",
 | 
					        "@mui/utils": "^7.1.1",
 | 
				
			||||||
        "@mui/x-internals": "8.5.3",
 | 
					        "reselect": "^5.1.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=14.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "type": "opencollective",
 | 
				
			||||||
 | 
					        "url": "https://opencollective.com/mui-org"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0",
 | 
				
			||||||
 | 
					        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@mui/x-data-grid": {
 | 
				
			||||||
 | 
					      "version": "8.5.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-8.5.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-4KzawLZqRKp3KcGKsTDVz7zkEjACllQD5Zb8ds1QKlA6C3/oIoSU7PsemFLj+RL3rT5aORsLMBl97/egQ5tUhA==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@babel/runtime": "^7.27.6",
 | 
				
			||||||
 | 
					        "@mui/utils": "^7.1.1",
 | 
				
			||||||
 | 
					        "@mui/x-internals": "8.5.2",
 | 
				
			||||||
        "clsx": "^2.1.1",
 | 
					        "clsx": "^2.1.1",
 | 
				
			||||||
        "prop-types": "^15.8.1",
 | 
					        "prop-types": "^15.8.1",
 | 
				
			||||||
        "use-sync-external-store": "^1.5.0"
 | 
					        "use-sync-external-store": "^1.5.0"
 | 
				
			||||||
@@ -1688,15 +1710,37 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mui/x-date-pickers": {
 | 
					    "node_modules/@mui/x-data-grid/node_modules/@mui/x-internals": {
 | 
				
			||||||
      "version": "8.5.3",
 | 
					      "version": "8.5.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-8.5.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.5.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-rToJOgIfVN/mG8QPX5RSPcP7QdnNN4yk+37fBztVUnmR7mhiWdUNSHlazGpnRGRqDdr4lXRkJbTjtJLviWkhKg==",
 | 
					      "integrity": "sha512-5YhB2AekK7G8d0YrAjg3WNf0uy3V73JD98WNxJhbIlCraQgl8QOQzr2zNO7MAf/X7mZQtjpjuAsiG3+gI2NVyg==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/runtime": "^7.27.6",
 | 
					        "@babel/runtime": "^7.27.6",
 | 
				
			||||||
        "@mui/utils": "^7.1.1",
 | 
					        "@mui/utils": "^7.1.1",
 | 
				
			||||||
        "@mui/x-internals": "8.5.3",
 | 
					        "reselect": "^5.1.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=14.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "funding": {
 | 
				
			||||||
 | 
					        "type": "opencollective",
 | 
				
			||||||
 | 
					        "url": "https://opencollective.com/mui-org"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "peerDependencies": {
 | 
				
			||||||
 | 
					        "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0",
 | 
				
			||||||
 | 
					        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@mui/x-date-pickers": {
 | 
				
			||||||
 | 
					      "version": "8.3.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-8.3.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-QokQvtfrKy802mrs6aH3r351Xhl5r/TYjcIVX97dCp32HRMFD7ygQV9S7+hQYqqpEN8iWEH+L5jJPSIottd/5g==",
 | 
				
			||||||
 | 
					      "license": "MIT",
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "@babel/runtime": "^7.27.1",
 | 
				
			||||||
 | 
					        "@mui/utils": "^7.0.2",
 | 
				
			||||||
 | 
					        "@mui/x-internals": "8.3.1",
 | 
				
			||||||
        "@types/react-transition-group": "^4.4.12",
 | 
					        "@types/react-transition-group": "^4.4.12",
 | 
				
			||||||
        "clsx": "^2.1.1",
 | 
					        "clsx": "^2.1.1",
 | 
				
			||||||
        "prop-types": "^15.8.1",
 | 
					        "prop-types": "^15.8.1",
 | 
				
			||||||
@@ -1755,14 +1799,13 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@mui/x-internals": {
 | 
					    "node_modules/@mui/x-internals": {
 | 
				
			||||||
      "version": "8.5.3",
 | 
					      "version": "8.3.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.5.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.3.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-ImCg4E3DT3XoDIZO0pNCbB7iw14N+YCFY3J1V28POwCD7P2f3HSIz4jwzM006oYxI6bqeE6LMfpdPRDW6s6dQw==",
 | 
					      "integrity": "sha512-8kIxT66cea63iEseEIHSWzKju2Wzl7MsWFoAUQEyRvYqOFa2j9Un2Vn/EH2vy9nm/MtMAYpwOE/nt68/KTIA2w==",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/runtime": "^7.27.6",
 | 
					        "@babel/runtime": "^7.27.1",
 | 
				
			||||||
        "@mui/utils": "^7.1.1",
 | 
					        "@mui/utils": "^7.0.2"
 | 
				
			||||||
        "reselect": "^5.1.1"
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "node": ">=14.0.0"
 | 
					        "node": ">=14.0.0"
 | 
				
			||||||
@@ -1772,7 +1815,6 @@
 | 
				
			|||||||
        "url": "https://opencollective.com/mui-org"
 | 
					        "url": "https://opencollective.com/mui-org"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "peerDependencies": {
 | 
					      "peerDependencies": {
 | 
				
			||||||
        "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0",
 | 
					 | 
				
			||||||
        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
 | 
					        "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -1824,13 +1866,6 @@
 | 
				
			|||||||
        "url": "https://opencollective.com/popperjs"
 | 
					        "url": "https://opencollective.com/popperjs"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@rolldown/pluginutils": {
 | 
					 | 
				
			||||||
      "version": "1.0.0-beta.19",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@rollup/rollup-android-arm-eabi": {
 | 
					    "node_modules/@rollup/rollup-android-arm-eabi": {
 | 
				
			||||||
      "version": "4.40.2",
 | 
					      "version": "4.40.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz",
 | 
				
			||||||
@@ -2332,42 +2367,6 @@
 | 
				
			|||||||
        "typescript": ">=4.8.4 <5.9.0"
 | 
					        "typescript": ">=4.8.4 <5.9.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@typescript-eslint/project-service": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@typescript-eslint/tsconfig-utils": "^8.35.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/types": "^8.35.0",
 | 
					 | 
				
			||||||
        "debug": "^4.3.4"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "typescript": ">=4.8.4 <5.9.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@typescript-eslint/scope-manager": {
 | 
					    "node_modules/@typescript-eslint/scope-manager": {
 | 
				
			||||||
      "version": "8.32.1",
 | 
					      "version": "8.32.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.1.tgz",
 | 
				
			||||||
@@ -2386,23 +2385,6 @@
 | 
				
			|||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					        "url": "https://opencollective.com/typescript-eslint"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@typescript-eslint/tsconfig-utils": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "typescript": ">=4.8.4 <5.9.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/@typescript-eslint/type-utils": {
 | 
					    "node_modules/@typescript-eslint/type-utils": {
 | 
				
			||||||
      "version": "8.32.1",
 | 
					      "version": "8.32.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.1.tgz",
 | 
				
			||||||
@@ -2550,16 +2532,15 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@vitejs/plugin-react": {
 | 
					    "node_modules/@vitejs/plugin-react": {
 | 
				
			||||||
      "version": "4.6.0",
 | 
					      "version": "4.4.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==",
 | 
					      "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@babel/core": "^7.27.4",
 | 
					        "@babel/core": "^7.26.10",
 | 
				
			||||||
        "@babel/plugin-transform-react-jsx-self": "^7.27.1",
 | 
					        "@babel/plugin-transform-react-jsx-self": "^7.25.9",
 | 
				
			||||||
        "@babel/plugin-transform-react-jsx-source": "^7.27.1",
 | 
					        "@babel/plugin-transform-react-jsx-source": "^7.25.9",
 | 
				
			||||||
        "@rolldown/pluginutils": "1.0.0-beta.19",
 | 
					 | 
				
			||||||
        "@types/babel__core": "^7.20.5",
 | 
					        "@types/babel__core": "^7.20.5",
 | 
				
			||||||
        "react-refresh": "^0.17.0"
 | 
					        "react-refresh": "^0.17.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@@ -2567,7 +2548,7 @@
 | 
				
			|||||||
        "node": "^14.18.0 || >=16.0.0"
 | 
					        "node": "^14.18.0 || >=16.0.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "peerDependencies": {
 | 
					      "peerDependencies": {
 | 
				
			||||||
        "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0"
 | 
					        "vite": "^4.2.0 || ^5.0.0 || ^6.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/@zod/core": {
 | 
					    "node_modules/@zod/core": {
 | 
				
			||||||
@@ -3487,26 +3468,26 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/eslint-plugin-react-x": {
 | 
					    "node_modules/eslint-plugin-react-x": {
 | 
				
			||||||
      "version": "1.52.2",
 | 
					      "version": "1.49.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-1.52.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/eslint-plugin-react-x/-/eslint-plugin-react-x-1.49.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-Pxpf3YxCUcNgzJVT6blAJ2KvLX32pUxtXndaCZoTdiytFw/H9OZKq4Qczxx/Lpo9Ri5rm4FbIZL3BfL/HGmzBw==",
 | 
					      "integrity": "sha512-yRh5nN8Z1Xoq26dt40Jnbqg8Z3N/svD4v7bT7sAWGslhCpxAGJEnOpj6V0L0xmw4ztz7ZonHt/4ks7mEOpagmQ==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@eslint-react/ast": "1.52.2",
 | 
					        "@eslint-react/ast": "1.49.0",
 | 
				
			||||||
        "@eslint-react/core": "1.52.2",
 | 
					        "@eslint-react/core": "1.49.0",
 | 
				
			||||||
        "@eslint-react/eff": "1.52.2",
 | 
					        "@eslint-react/eff": "1.49.0",
 | 
				
			||||||
        "@eslint-react/kit": "1.52.2",
 | 
					        "@eslint-react/kit": "1.49.0",
 | 
				
			||||||
        "@eslint-react/shared": "1.52.2",
 | 
					        "@eslint-react/shared": "1.49.0",
 | 
				
			||||||
        "@eslint-react/var": "1.52.2",
 | 
					        "@eslint-react/var": "1.49.0",
 | 
				
			||||||
        "@typescript-eslint/scope-manager": "^8.34.0",
 | 
					        "@typescript-eslint/scope-manager": "^8.31.1",
 | 
				
			||||||
        "@typescript-eslint/type-utils": "^8.34.0",
 | 
					        "@typescript-eslint/type-utils": "^8.31.1",
 | 
				
			||||||
        "@typescript-eslint/types": "^8.34.0",
 | 
					        "@typescript-eslint/types": "^8.31.1",
 | 
				
			||||||
        "@typescript-eslint/utils": "^8.34.0",
 | 
					        "@typescript-eslint/utils": "^8.31.1",
 | 
				
			||||||
        "compare-versions": "^6.1.1",
 | 
					        "compare-versions": "^6.1.1",
 | 
				
			||||||
        "is-immutable-type": "^5.0.1",
 | 
					        "is-immutable-type": "^5.0.1",
 | 
				
			||||||
        "string-ts": "^2.2.1",
 | 
					        "string-ts": "^2.2.1",
 | 
				
			||||||
        "ts-pattern": "^5.7.1"
 | 
					        "ts-pattern": "^5.7.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
        "bun": ">=1.0.15",
 | 
					        "bun": ">=1.0.15",
 | 
				
			||||||
@@ -3529,281 +3510,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/ast": {
 | 
					 | 
				
			||||||
      "version": "1.52.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@eslint-react/ast/-/ast-1.52.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-L0Tbbzx5l7JHgkQ1TqPWQuZ4+PsXDcgtt3056FOYqstUrDRG+5ylm7h3gEWu98I3FDdgLS8q9dOzz0PGgwZCTA==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@eslint-react/eff": "1.52.2",
 | 
					 | 
				
			||||||
        "@typescript-eslint/types": "^8.34.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/typescript-estree": "^8.34.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/utils": "^8.34.0",
 | 
					 | 
				
			||||||
        "string-ts": "^2.2.1",
 | 
					 | 
				
			||||||
        "ts-pattern": "^5.7.1"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "bun": ">=1.0.15",
 | 
					 | 
				
			||||||
        "node": ">=18.18.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/core": {
 | 
					 | 
				
			||||||
      "version": "1.52.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@eslint-react/core/-/core-1.52.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-FpxKZJHlf3zXETNL+WQP/SoYuVQNheWm1iDgW68RyHygD8mzk9CnVLDgjMrfmh2n0eaOqnWCL/IC2YzD6VpYOQ==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@eslint-react/ast": "1.52.2",
 | 
					 | 
				
			||||||
        "@eslint-react/eff": "1.52.2",
 | 
					 | 
				
			||||||
        "@eslint-react/kit": "1.52.2",
 | 
					 | 
				
			||||||
        "@eslint-react/shared": "1.52.2",
 | 
					 | 
				
			||||||
        "@eslint-react/var": "1.52.2",
 | 
					 | 
				
			||||||
        "@typescript-eslint/scope-manager": "^8.34.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/type-utils": "^8.34.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/types": "^8.34.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/utils": "^8.34.0",
 | 
					 | 
				
			||||||
        "birecord": "^0.1.1",
 | 
					 | 
				
			||||||
        "ts-pattern": "^5.7.1"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "bun": ">=1.0.15",
 | 
					 | 
				
			||||||
        "node": ">=18.18.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/eff": {
 | 
					 | 
				
			||||||
      "version": "1.52.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@eslint-react/eff/-/eff-1.52.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-YBPE2J1+PfXrR9Ct+9rQsw8uRU06zHopI508cfj0usaIBf3hz18V2GoRTVhsjniP0QbvKQdHzyPmmS/B6uyMZQ==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "bun": ">=1.0.15",
 | 
					 | 
				
			||||||
        "node": ">=18.18.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/kit": {
 | 
					 | 
				
			||||||
      "version": "1.52.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@eslint-react/kit/-/kit-1.52.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-k0cSgFnPlDPI1xyRzHjEWIapLG0zCy7mx1HBLg5wuKf/zzSh3iNFId53xMebR05vM2k9YH63gsvTwRkGx/77Zw==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@eslint-react/eff": "1.52.2",
 | 
					 | 
				
			||||||
        "@typescript-eslint/utils": "^8.34.0",
 | 
					 | 
				
			||||||
        "ts-pattern": "^5.7.1",
 | 
					 | 
				
			||||||
        "zod": "^3.25.63"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "bun": ">=1.0.15",
 | 
					 | 
				
			||||||
        "node": ">=18.18.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/shared": {
 | 
					 | 
				
			||||||
      "version": "1.52.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@eslint-react/shared/-/shared-1.52.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-YHysVcCfmBoxt2+6Ao4HdLPUYNSem70gy+0yzOQvlQFSsGhh+uifQ68SSa/2uJBWfNUm9xQlyDsr2raeO4BlgA==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@eslint-react/eff": "1.52.2",
 | 
					 | 
				
			||||||
        "@eslint-react/kit": "1.52.2",
 | 
					 | 
				
			||||||
        "@typescript-eslint/utils": "^8.34.0",
 | 
					 | 
				
			||||||
        "ts-pattern": "^5.7.1",
 | 
					 | 
				
			||||||
        "zod": "^3.25.63"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "bun": ">=1.0.15",
 | 
					 | 
				
			||||||
        "node": ">=18.18.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@eslint-react/var": {
 | 
					 | 
				
			||||||
      "version": "1.52.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@eslint-react/var/-/var-1.52.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-/7IYMPsmO0tIYqkqAVnkqB4eXeVBvgBL/a9hcGCO2eUSzslYzQHSzNPhIoPLD9HXng+0CWlT+KupOFIqP9a26A==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@eslint-react/ast": "1.52.2",
 | 
					 | 
				
			||||||
        "@eslint-react/eff": "1.52.2",
 | 
					 | 
				
			||||||
        "@typescript-eslint/scope-manager": "^8.34.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/types": "^8.34.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/utils": "^8.34.0",
 | 
					 | 
				
			||||||
        "string-ts": "^2.2.1",
 | 
					 | 
				
			||||||
        "ts-pattern": "^5.7.1"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "bun": ">=1.0.15",
 | 
					 | 
				
			||||||
        "node": ">=18.18.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/scope-manager": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@typescript-eslint/types": "8.35.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/visitor-keys": "8.35.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/type-utils": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-ceNNttjfmSEoM9PW87bWLDEIaLAyR+E6BoYJQ5PfaDau37UGca9Nyq3lBk8Bw2ad0AKvYabz6wxc7DMTO2jnNA==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@typescript-eslint/typescript-estree": "8.35.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/utils": "8.35.0",
 | 
					 | 
				
			||||||
        "debug": "^4.3.4",
 | 
					 | 
				
			||||||
        "ts-api-utils": "^2.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "eslint": "^8.57.0 || ^9.0.0",
 | 
					 | 
				
			||||||
        "typescript": ">=4.8.4 <5.9.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/types": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/typescript-estree": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@typescript-eslint/project-service": "8.35.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/tsconfig-utils": "8.35.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/types": "8.35.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/visitor-keys": "8.35.0",
 | 
					 | 
				
			||||||
        "debug": "^4.3.4",
 | 
					 | 
				
			||||||
        "fast-glob": "^3.3.2",
 | 
					 | 
				
			||||||
        "is-glob": "^4.0.3",
 | 
					 | 
				
			||||||
        "minimatch": "^9.0.4",
 | 
					 | 
				
			||||||
        "semver": "^7.6.0",
 | 
					 | 
				
			||||||
        "ts-api-utils": "^2.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "typescript": ">=4.8.4 <5.9.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/utils": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-nqoMu7WWM7ki5tPgLVsmPM8CkqtoPUG6xXGeefM5t4x3XumOEKMoUZPdi+7F+/EotukN4R9OWdmDxN80fqoZeg==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@eslint-community/eslint-utils": "^4.7.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/scope-manager": "8.35.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/types": "8.35.0",
 | 
					 | 
				
			||||||
        "@typescript-eslint/typescript-estree": "8.35.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "peerDependencies": {
 | 
					 | 
				
			||||||
        "eslint": "^8.57.0 || ^9.0.0",
 | 
					 | 
				
			||||||
        "typescript": ">=4.8.4 <5.9.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/@typescript-eslint/visitor-keys": {
 | 
					 | 
				
			||||||
      "version": "8.35.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "@typescript-eslint/types": "8.35.0",
 | 
					 | 
				
			||||||
        "eslint-visitor-keys": "^4.2.1"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "type": "opencollective",
 | 
					 | 
				
			||||||
        "url": "https://opencollective.com/typescript-eslint"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/brace-expansion": {
 | 
					 | 
				
			||||||
      "version": "2.0.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "MIT",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "balanced-match": "^1.0.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/minimatch": {
 | 
					 | 
				
			||||||
      "version": "9.0.5",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "ISC",
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "brace-expansion": "^2.0.1"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=16 || 14 >=14.17"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "funding": {
 | 
					 | 
				
			||||||
        "url": "https://github.com/sponsors/isaacs"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-plugin-react-x/node_modules/semver": {
 | 
					 | 
				
			||||||
      "version": "7.7.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
 | 
					 | 
				
			||||||
      "dev": true,
 | 
					 | 
				
			||||||
      "license": "ISC",
 | 
					 | 
				
			||||||
      "bin": {
 | 
					 | 
				
			||||||
        "semver": "bin/semver.js"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "engines": {
 | 
					 | 
				
			||||||
        "node": ">=10"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node_modules/eslint-scope": {
 | 
					    "node_modules/eslint-scope": {
 | 
				
			||||||
      "version": "8.3.0",
 | 
					      "version": "8.3.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
 | 
				
			||||||
@@ -3822,9 +3528,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/eslint-visitor-keys": {
 | 
					    "node_modules/eslint-visitor-keys": {
 | 
				
			||||||
      "version": "4.2.1",
 | 
					      "version": "4.2.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
 | 
					      "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "Apache-2.0",
 | 
					      "license": "Apache-2.0",
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
@@ -4265,9 +3971,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/globals": {
 | 
					    "node_modules/globals": {
 | 
				
			||||||
      "version": "16.2.0",
 | 
					      "version": "16.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/globals/-/globals-16.1.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==",
 | 
					      "integrity": "sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "engines": {
 | 
					      "engines": {
 | 
				
			||||||
@@ -6117,9 +5823,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/zod": {
 | 
					    "node_modules/zod": {
 | 
				
			||||||
      "version": "3.25.67",
 | 
					      "version": "3.24.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==",
 | 
					      "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==",
 | 
				
			||||||
      "dev": true,
 | 
					      "dev": true,
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "funding": {
 | 
					      "funding": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,11 +16,11 @@
 | 
				
			|||||||
    "@jsonjoy.com/base64": "^1.1.2",
 | 
					    "@jsonjoy.com/base64": "^1.1.2",
 | 
				
			||||||
    "@mdi/js": "^7.4.47",
 | 
					    "@mdi/js": "^7.4.47",
 | 
				
			||||||
    "@mdi/react": "^1.6.1",
 | 
					    "@mdi/react": "^1.6.1",
 | 
				
			||||||
    "@mui/icons-material": "^7.1.2",
 | 
					    "@mui/icons-material": "^7.1.1",
 | 
				
			||||||
    "@mui/material": "^7.1.2",
 | 
					    "@mui/material": "^7.1.1",
 | 
				
			||||||
    "@mui/x-charts": "^8.5.3",
 | 
					    "@mui/x-charts": "^8.5.2",
 | 
				
			||||||
    "@mui/x-data-grid": "^8.5.3",
 | 
					    "@mui/x-data-grid": "^8.5.2",
 | 
				
			||||||
    "@mui/x-date-pickers": "^8.5.3",
 | 
					    "@mui/x-date-pickers": "^8.3.1",
 | 
				
			||||||
    "date-and-time": "^3.6.0",
 | 
					    "date-and-time": "^3.6.0",
 | 
				
			||||||
    "dayjs": "^1.11.13",
 | 
					    "dayjs": "^1.11.13",
 | 
				
			||||||
    "filesize": "^10.1.6",
 | 
					    "filesize": "^10.1.6",
 | 
				
			||||||
@@ -32,16 +32,16 @@
 | 
				
			|||||||
    "ts-pattern": "^5.7.1"
 | 
					    "ts-pattern": "^5.7.1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "@eslint/js": "^9.29.0",
 | 
					    "@eslint/js": "^9.28.0",
 | 
				
			||||||
    "@types/react": "^19.1.8",
 | 
					    "@types/react": "^19.1.8",
 | 
				
			||||||
    "@types/react-dom": "^19.1.6",
 | 
					    "@types/react-dom": "^19.1.6",
 | 
				
			||||||
    "@vitejs/plugin-react": "^4.6.0",
 | 
					    "@vitejs/plugin-react": "^4.4.1",
 | 
				
			||||||
    "eslint": "^9.26.0",
 | 
					    "eslint": "^9.26.0",
 | 
				
			||||||
    "eslint-plugin-react-dom": "^1.49.0",
 | 
					    "eslint-plugin-react-dom": "^1.49.0",
 | 
				
			||||||
    "eslint-plugin-react-hooks": "^5.2.0",
 | 
					    "eslint-plugin-react-hooks": "^5.2.0",
 | 
				
			||||||
    "eslint-plugin-react-refresh": "^00.4.20",
 | 
					    "eslint-plugin-react-refresh": "^00.4.20",
 | 
				
			||||||
    "eslint-plugin-react-x": "^1.52.2",
 | 
					    "eslint-plugin-react-x": "^1.49.0",
 | 
				
			||||||
    "globals": "^16.2.0",
 | 
					    "globals": "^16.1.0",
 | 
				
			||||||
    "typescript": "~5.8.3",
 | 
					    "typescript": "~5.8.3",
 | 
				
			||||||
    "typescript-eslint": "^8.32.1",
 | 
					    "typescript-eslint": "^8.32.1",
 | 
				
			||||||
    "vite": "^6.3.5"
 | 
					    "vite": "^6.3.5"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,21 +31,12 @@ export class APIClient {
 | 
				
			|||||||
    return URL;
 | 
					    return URL;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					 | 
				
			||||||
   * Get the full URL at which the backend can be contacted
 | 
					 | 
				
			||||||
   */
 | 
					 | 
				
			||||||
  static ActualBackendURL(): string {
 | 
					 | 
				
			||||||
    const backendURL = this.backendURL();
 | 
					 | 
				
			||||||
    if (backendURL.startsWith("/")) return `${location.origin}${backendURL}`;
 | 
					 | 
				
			||||||
    else return backendURL;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
   * Check out whether the backend is accessed through
 | 
					   * Check out whether the backend is accessed through
 | 
				
			||||||
   * HTTPS or not
 | 
					   * HTTPS or not
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  static IsBackendSecure(): boolean {
 | 
					  static IsBackendSecure(): boolean {
 | 
				
			||||||
    return this.ActualBackendURL().startsWith("https");
 | 
					    return this.backendURL().startsWith("https");
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /**
 | 
					  /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -268,7 +268,7 @@ function CreatedToken(p: { token: TokenWithSecret }): React.ReactElement {
 | 
				
			|||||||
          <div style={{ padding: "15px", backgroundColor: "white" }}>
 | 
					          <div style={{ padding: "15px", backgroundColor: "white" }}>
 | 
				
			||||||
            <QRCodeCanvas
 | 
					            <QRCodeCanvas
 | 
				
			||||||
              value={`moneymgr://api=${encodeURIComponent(
 | 
					              value={`moneymgr://api=${encodeURIComponent(
 | 
				
			||||||
                APIClient.ActualBackendURL()
 | 
					                APIClient.backendURL()
 | 
				
			||||||
              )}&id=${p.token.id}&secret=${p.token.token}`}
 | 
					              )}&id=${p.token.id}&secret=${p.token.token}`}
 | 
				
			||||||
            />
 | 
					            />
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user