mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-11-03 20:55:05 +00:00 
			
		
		
		
	Compare commits
	
		
			14 Commits
		
	
	
		
			develop-20
			...
			develop-20
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					c2269fc9a4 | ||
| 
						 | 
					84a1a876e1 | ||
| 
						 | 
					dc675707f9 | ||
| 
						 | 
					d5667c7ef6 | ||
| 
						 | 
					cba1213dd1 | ||
| 
						 | 
					7219c90957 | ||
| 
						 | 
					af13bd991e | ||
| 
						 | 
					48e548eb52 | ||
| 
						 | 
					1a19e27f0e | ||
| 
						 | 
					0cbd22426d | ||
| 
						 | 
					d5e52e99e0 | ||
| 
						 | 
					f52978e71f | ||
| 
						 | 
					3a3358124d | ||
| 
						 | 
					929808c633 | 
							
								
								
									
										120
									
								
								.ci/php-cs-fixer/composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										120
									
								
								.ci/php-cs-fixer/composer.lock
									
									
									
										generated
									
									
									
								
							@@ -1184,16 +1184,16 @@
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "sebastian/diff",
 | 
			
		||||
            "version": "6.0.1",
 | 
			
		||||
            "version": "6.0.2",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/sebastianbergmann/diff.git",
 | 
			
		||||
                "reference": "ab83243ecc233de5655b76f577711de9f842e712"
 | 
			
		||||
                "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ab83243ecc233de5655b76f577711de9f842e712",
 | 
			
		||||
                "reference": "ab83243ecc233de5655b76f577711de9f842e712",
 | 
			
		||||
                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
 | 
			
		||||
                "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -1239,7 +1239,7 @@
 | 
			
		||||
            "support": {
 | 
			
		||||
                "issues": "https://github.com/sebastianbergmann/diff/issues",
 | 
			
		||||
                "security": "https://github.com/sebastianbergmann/diff/security/policy",
 | 
			
		||||
                "source": "https://github.com/sebastianbergmann/diff/tree/6.0.1"
 | 
			
		||||
                "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -1247,20 +1247,20 @@
 | 
			
		||||
                    "type": "github"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-03-02T07:30:33+00:00"
 | 
			
		||||
            "time": "2024-07-03T04:53:05+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/console",
 | 
			
		||||
            "version": "v7.1.1",
 | 
			
		||||
            "version": "v7.1.2",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/console.git",
 | 
			
		||||
                "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3"
 | 
			
		||||
                "reference": "0aa29ca177f432ab68533432db0de059f39c92ae"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/console/zipball/9b008f2d7b21c74ef4d0c3de6077a642bc55ece3",
 | 
			
		||||
                "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/console/zipball/0aa29ca177f432ab68533432db0de059f39c92ae",
 | 
			
		||||
                "reference": "0aa29ca177f432ab68533432db0de059f39c92ae",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -1324,7 +1324,7 @@
 | 
			
		||||
                "terminal"
 | 
			
		||||
            ],
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/console/tree/v7.1.1"
 | 
			
		||||
                "source": "https://github.com/symfony/console/tree/v7.1.2"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -1340,7 +1340,7 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-05-31T14:57:53+00:00"
 | 
			
		||||
            "time": "2024-06-28T10:03:55+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/deprecation-contracts",
 | 
			
		||||
@@ -1567,16 +1567,16 @@
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/filesystem",
 | 
			
		||||
            "version": "v7.1.1",
 | 
			
		||||
            "version": "v7.1.2",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/filesystem.git",
 | 
			
		||||
                "reference": "802e87002f919296c9f606457d9fa327a0b3d6b2"
 | 
			
		||||
                "reference": "92a91985250c251de9b947a14bb2c9390b1a562c"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/filesystem/zipball/802e87002f919296c9f606457d9fa327a0b3d6b2",
 | 
			
		||||
                "reference": "802e87002f919296c9f606457d9fa327a0b3d6b2",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c",
 | 
			
		||||
                "reference": "92a91985250c251de9b947a14bb2c9390b1a562c",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -1613,7 +1613,7 @@
 | 
			
		||||
            "description": "Provides basic utilities for the filesystem",
 | 
			
		||||
            "homepage": "https://symfony.com",
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/filesystem/tree/v7.1.1"
 | 
			
		||||
                "source": "https://github.com/symfony/filesystem/tree/v7.1.2"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -1629,7 +1629,7 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-05-31T14:57:53+00:00"
 | 
			
		||||
            "time": "2024-06-28T10:03:55+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/finder",
 | 
			
		||||
@@ -1764,16 +1764,16 @@
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/polyfill-ctype",
 | 
			
		||||
            "version": "v1.29.0",
 | 
			
		||||
            "version": "v1.30.0",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/polyfill-ctype.git",
 | 
			
		||||
                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
 | 
			
		||||
                "reference": "0424dff1c58f028c451efff2045f5d92410bd540"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
 | 
			
		||||
                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540",
 | 
			
		||||
                "reference": "0424dff1c58f028c451efff2045f5d92410bd540",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -1823,7 +1823,7 @@
 | 
			
		||||
                "portable"
 | 
			
		||||
            ],
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -1839,20 +1839,20 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-01-29T20:11:03+00:00"
 | 
			
		||||
            "time": "2024-05-31T15:07:36+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/polyfill-intl-grapheme",
 | 
			
		||||
            "version": "v1.29.0",
 | 
			
		||||
            "version": "v1.30.0",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
 | 
			
		||||
                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
 | 
			
		||||
                "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
 | 
			
		||||
                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a",
 | 
			
		||||
                "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -1901,7 +1901,7 @@
 | 
			
		||||
                "shim"
 | 
			
		||||
            ],
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -1917,20 +1917,20 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-01-29T20:11:03+00:00"
 | 
			
		||||
            "time": "2024-05-31T15:07:36+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/polyfill-intl-normalizer",
 | 
			
		||||
            "version": "v1.29.0",
 | 
			
		||||
            "version": "v1.30.0",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
 | 
			
		||||
                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
 | 
			
		||||
                "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
 | 
			
		||||
                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb",
 | 
			
		||||
                "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -1982,7 +1982,7 @@
 | 
			
		||||
                "shim"
 | 
			
		||||
            ],
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -1998,20 +1998,20 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-01-29T20:11:03+00:00"
 | 
			
		||||
            "time": "2024-05-31T15:07:36+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/polyfill-mbstring",
 | 
			
		||||
            "version": "v1.29.0",
 | 
			
		||||
            "version": "v1.30.0",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/polyfill-mbstring.git",
 | 
			
		||||
                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
 | 
			
		||||
                "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
 | 
			
		||||
                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
 | 
			
		||||
                "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -2062,7 +2062,7 @@
 | 
			
		||||
                "shim"
 | 
			
		||||
            ],
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -2078,20 +2078,20 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-01-29T20:11:03+00:00"
 | 
			
		||||
            "time": "2024-06-19T12:30:46+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/polyfill-php80",
 | 
			
		||||
            "version": "v1.29.0",
 | 
			
		||||
            "version": "v1.30.0",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/polyfill-php80.git",
 | 
			
		||||
                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
 | 
			
		||||
                "reference": "77fa7995ac1b21ab60769b7323d600a991a90433"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
 | 
			
		||||
                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433",
 | 
			
		||||
                "reference": "77fa7995ac1b21ab60769b7323d600a991a90433",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -2142,7 +2142,7 @@
 | 
			
		||||
                "shim"
 | 
			
		||||
            ],
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -2158,20 +2158,20 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-01-29T20:11:03+00:00"
 | 
			
		||||
            "time": "2024-05-31T15:07:36+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/polyfill-php81",
 | 
			
		||||
            "version": "v1.29.0",
 | 
			
		||||
            "version": "v1.30.0",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/polyfill-php81.git",
 | 
			
		||||
                "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d"
 | 
			
		||||
                "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d",
 | 
			
		||||
                "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af",
 | 
			
		||||
                "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -2218,7 +2218,7 @@
 | 
			
		||||
                "shim"
 | 
			
		||||
            ],
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0"
 | 
			
		||||
                "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -2234,7 +2234,7 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-01-29T20:11:03+00:00"
 | 
			
		||||
            "time": "2024-06-19T12:30:46+00:00"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/process",
 | 
			
		||||
@@ -2444,16 +2444,16 @@
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "symfony/string",
 | 
			
		||||
            "version": "v7.1.1",
 | 
			
		||||
            "version": "v7.1.2",
 | 
			
		||||
            "source": {
 | 
			
		||||
                "type": "git",
 | 
			
		||||
                "url": "https://github.com/symfony/string.git",
 | 
			
		||||
                "reference": "60bc311c74e0af215101235aa6f471bcbc032df2"
 | 
			
		||||
                "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8"
 | 
			
		||||
            },
 | 
			
		||||
            "dist": {
 | 
			
		||||
                "type": "zip",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/string/zipball/60bc311c74e0af215101235aa6f471bcbc032df2",
 | 
			
		||||
                "reference": "60bc311c74e0af215101235aa6f471bcbc032df2",
 | 
			
		||||
                "url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8",
 | 
			
		||||
                "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8",
 | 
			
		||||
                "shasum": ""
 | 
			
		||||
            },
 | 
			
		||||
            "require": {
 | 
			
		||||
@@ -2511,7 +2511,7 @@
 | 
			
		||||
                "utf8"
 | 
			
		||||
            ],
 | 
			
		||||
            "support": {
 | 
			
		||||
                "source": "https://github.com/symfony/string/tree/v7.1.1"
 | 
			
		||||
                "source": "https://github.com/symfony/string/tree/v7.1.2"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -2527,7 +2527,7 @@
 | 
			
		||||
                    "type": "tidelift"
 | 
			
		||||
                }
 | 
			
		||||
            ],
 | 
			
		||||
            "time": "2024-06-04T06:40:14+00:00"
 | 
			
		||||
            "time": "2024-06-28T09:27:18+00:00"
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "packages-dev": [],
 | 
			
		||||
 
 | 
			
		||||
@@ -717,7 +717,7 @@ trait MetaCollection
 | 
			
		||||
 | 
			
		||||
        $this->joinMetaDataTables();
 | 
			
		||||
        $this->query->where('journal_meta.name', '=', 'internal_reference');
 | 
			
		||||
        $this->query->where('journal_meta.data', 'LIKE', sprintf('%%%s%%', $internalReference));
 | 
			
		||||
        $this->query->where('journal_meta.data', '=', $internalReference);
 | 
			
		||||
 | 
			
		||||
        return $this;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -81,7 +81,12 @@ class RecurrenceController extends Controller
 | 
			
		||||
        $skip                          = $skip < 0 || $skip > 31 ? 0 : $skip;
 | 
			
		||||
        $weekend                       = $weekend < 1 || $weekend > 4 ? 1 : $weekend;
 | 
			
		||||
 | 
			
		||||
        if (null === $start || null === $end || null === $firstDate || null === $endDate) {
 | 
			
		||||
        if (null === $endDate) {
 | 
			
		||||
            // safety catch:
 | 
			
		||||
            $endDate = now()->addYear();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (null === $start || null === $end || null === $firstDate) {
 | 
			
		||||
            return response()->json();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,7 @@ class ShowController extends Controller
 | 
			
		||||
        $transformer->setParameters(new ParameterBag());
 | 
			
		||||
 | 
			
		||||
        $array                 = $transformer->transform($recurrence);
 | 
			
		||||
 | 
			
		||||
        $groups                = $this->recurring->getTransactions($recurrence);
 | 
			
		||||
        $today                 = today(config('app.timezone'));
 | 
			
		||||
        $array['repeat_until'] = null !== $array['repeat_until'] ? new Carbon($array['repeat_until']) : null;
 | 
			
		||||
 
 | 
			
		||||
@@ -361,11 +361,17 @@ class CreateRecurringTransactions implements ShouldQueue
 | 
			
		||||
        // create transaction array and send to factory.
 | 
			
		||||
        $groupTitle              = null;
 | 
			
		||||
        $count                   = $recurrence->recurrenceTransactions->count();
 | 
			
		||||
        if ($count > 1) {
 | 
			
		||||
        // #8844, if there is one recurrence transaction, use the first title as the title.
 | 
			
		||||
        if (1 === $count) {
 | 
			
		||||
            /** @var RecurrenceTransaction $first */
 | 
			
		||||
            $first      = $recurrence->recurrenceTransactions()->first();
 | 
			
		||||
            $groupTitle = $first->description;
 | 
			
		||||
        }
 | 
			
		||||
        // #8844, if there are more, use the recurrence transaction itself.
 | 
			
		||||
        if ($count > 1) {
 | 
			
		||||
            $groupTitle = $recurrence->title;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (0 === $count) {
 | 
			
		||||
            app('log')->error('No transactions to be created in this recurrence. Cannot continue.');
 | 
			
		||||
 | 
			
		||||
@@ -411,12 +417,12 @@ class CreateRecurringTransactions implements ShouldQueue
 | 
			
		||||
        /** @var RecurrenceTransaction $transaction */
 | 
			
		||||
        foreach ($transactions as $index => $transaction) {
 | 
			
		||||
            $single   = [
 | 
			
		||||
                'type'                  => null === $first->transactionType ? strtolower($recurrence->transactionType->type) : strtolower($first->transactionType->type),
 | 
			
		||||
                'type'                  => null === $transaction?->transactionType?->type ? strtolower($recurrence->transactionType->type) : strtolower($transaction->transactionType->type),
 | 
			
		||||
                'date'                  => $date,
 | 
			
		||||
                'user'                  => $recurrence->user_id,
 | 
			
		||||
                'currency_id'           => $transaction->transaction_currency_id,
 | 
			
		||||
                'currency_code'         => null,
 | 
			
		||||
                'description'           => $first->description,
 | 
			
		||||
                'description'           => $transaction->description,
 | 
			
		||||
                'amount'                => $transaction->amount,
 | 
			
		||||
                'budget_id'             => $this->repository->getBudget($transaction),
 | 
			
		||||
                'budget_name'           => null,
 | 
			
		||||
 
 | 
			
		||||
@@ -408,10 +408,16 @@ class RecurringRepository implements RecurringRepositoryInterface
 | 
			
		||||
 | 
			
		||||
    private function filterMaxDate(?Carbon $max, array $occurrences): array
 | 
			
		||||
    {
 | 
			
		||||
        if (null === $max) {
 | 
			
		||||
            return $occurrences;
 | 
			
		||||
        }
 | 
			
		||||
        $filtered = [];
 | 
			
		||||
        if (null === $max) {
 | 
			
		||||
            foreach ($occurrences as $date) {
 | 
			
		||||
                if ($date->gt(today())) {
 | 
			
		||||
                    $filtered[] = $date;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return $filtered;
 | 
			
		||||
        }
 | 
			
		||||
        foreach ($occurrences as $date) {
 | 
			
		||||
            if ($date->lte($max) && $date->gt(today())) {
 | 
			
		||||
                $filtered[] = $date;
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ use FireflyIII\Exceptions\FireflyException;
 | 
			
		||||
use FireflyIII\Models\CurrencyExchangeRate;
 | 
			
		||||
use FireflyIII\Models\TransactionCurrency;
 | 
			
		||||
use FireflyIII\Support\CacheProperties;
 | 
			
		||||
use Illuminate\Support\Facades\Cache;
 | 
			
		||||
use Illuminate\Support\Facades\Log;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -48,7 +49,11 @@ class ExchangeRateConverter
 | 
			
		||||
     */
 | 
			
		||||
    public function convert(TransactionCurrency $from, TransactionCurrency $to, Carbon $date, string $amount): string
 | 
			
		||||
    {
 | 
			
		||||
        Log::debug('convert()');
 | 
			
		||||
        if (false === config('cer.enabled')) {
 | 
			
		||||
            Log::debug('ExchangeRateConverter: disabled, return amount as is.');
 | 
			
		||||
 | 
			
		||||
            return $amount;
 | 
			
		||||
        }
 | 
			
		||||
        $rate = $this->getCurrencyRate($from, $to, $date);
 | 
			
		||||
 | 
			
		||||
        return bcmul($amount, $rate);
 | 
			
		||||
@@ -59,7 +64,11 @@ class ExchangeRateConverter
 | 
			
		||||
     */
 | 
			
		||||
    public function getCurrencyRate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): string
 | 
			
		||||
    {
 | 
			
		||||
        Log::debug('getCurrencyRate()');
 | 
			
		||||
        if (false === config('cer.enabled')) {
 | 
			
		||||
            Log::debug('ExchangeRateConverter: disabled, return "1".');
 | 
			
		||||
 | 
			
		||||
            return '1';
 | 
			
		||||
        }
 | 
			
		||||
        $rate = $this->getRate($from, $to, $date);
 | 
			
		||||
 | 
			
		||||
        return '0' === $rate ? '1' : $rate;
 | 
			
		||||
@@ -70,25 +79,36 @@ class ExchangeRateConverter
 | 
			
		||||
     */
 | 
			
		||||
    private function getRate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): string
 | 
			
		||||
    {
 | 
			
		||||
        Log::debug('getRate()');
 | 
			
		||||
        if ($this->isPrepared && $this->noPreparedRates) {
 | 
			
		||||
            $fallback = $this->fallback[$from->id][$to->id] ?? '0';
 | 
			
		||||
            Log::debug(sprintf('Return fallback rate from #%d to #%d on %s: %s', $from->id, $to->id, $date->format('Y-m-d'), $fallback));
 | 
			
		||||
        $key    = $this->getCacheKey($from, $to, $date);
 | 
			
		||||
        $res    = Cache::get($key, null);
 | 
			
		||||
 | 
			
		||||
            return $fallback;
 | 
			
		||||
        // find in cache
 | 
			
		||||
        if (null !== $res) {
 | 
			
		||||
            Log::debug(sprintf('ExchangeRateConverter: Return cached rate from #%d to #%d on %s.', $from->id, $to->id, $date->format('Y-m-d')));
 | 
			
		||||
 | 
			
		||||
            return $res;
 | 
			
		||||
        }
 | 
			
		||||
        // first attempt:
 | 
			
		||||
 | 
			
		||||
        // find in database
 | 
			
		||||
        $rate   = $this->getFromDB($from->id, $to->id, $date->format('Y-m-d'));
 | 
			
		||||
        if (null !== $rate) {
 | 
			
		||||
            Cache::forever($key, $rate);
 | 
			
		||||
            Log::debug(sprintf('ExchangeRateConverter: Return DB rate from #%d to #%d on %s.', $from->id, $to->id, $date->format('Y-m-d')));
 | 
			
		||||
 | 
			
		||||
            return $rate;
 | 
			
		||||
        }
 | 
			
		||||
        // no result. perhaps the other way around?
 | 
			
		||||
 | 
			
		||||
        // find reverse in database
 | 
			
		||||
        $rate   = $this->getFromDB($to->id, $from->id, $date->format('Y-m-d'));
 | 
			
		||||
        if (null !== $rate) {
 | 
			
		||||
            return bcdiv('1', $rate);
 | 
			
		||||
            $rate = bcdiv('1', $rate);
 | 
			
		||||
            Cache::forever($key, $rate);
 | 
			
		||||
            Log::debug(sprintf('ExchangeRateConverter: Return DB rate from #%d to #%d on %s.', $from->id, $to->id, $date->format('Y-m-d')));
 | 
			
		||||
 | 
			
		||||
            return $rate;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // if nothing in place, fall back on the rate for $from to EUR
 | 
			
		||||
        // fallback scenario.
 | 
			
		||||
        $first  = $this->getEuroRate($from, $date);
 | 
			
		||||
        $second = $this->getEuroRate($to, $date);
 | 
			
		||||
 | 
			
		||||
@@ -96,17 +116,19 @@ class ExchangeRateConverter
 | 
			
		||||
        if (0 === bccomp('0', $first) || 0 === bccomp('0', $second)) {
 | 
			
		||||
            Log::warning(sprintf('$first is "%s" and $second is "%s"', $first, $second));
 | 
			
		||||
 | 
			
		||||
            return '0';
 | 
			
		||||
            return '1';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $second = bcdiv('1', $second);
 | 
			
		||||
        $rate   = bcmul($first, $second);
 | 
			
		||||
        Log::debug(sprintf('ExchangeRateConverter: Return DB rate from #%d to #%d on %s.', $from->id, $to->id, $date->format('Y-m-d')));
 | 
			
		||||
        Cache::forever($key, $rate);
 | 
			
		||||
 | 
			
		||||
        return bcmul($first, $second);
 | 
			
		||||
        return $rate;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function getFromDB(int $from, int $to, string $date): ?string
 | 
			
		||||
    {
 | 
			
		||||
        Log::debug('getFromDB()');
 | 
			
		||||
        if ($from === $to) {
 | 
			
		||||
            return '1';
 | 
			
		||||
        }
 | 
			
		||||
@@ -115,7 +137,7 @@ class ExchangeRateConverter
 | 
			
		||||
        // perhaps the rate has been cached during this particular run
 | 
			
		||||
        $preparedRate = $this->prepared[$date][$from][$to] ?? null;
 | 
			
		||||
        if (null !== $preparedRate && 0 !== bccomp('0', $preparedRate)) {
 | 
			
		||||
            Log::debug(sprintf('Found prepared rate from #%d to #%d on %s.', $from, $to, $date));
 | 
			
		||||
            Log::debug(sprintf('ExchangeRateConverter: Found prepared rate from #%d to #%d on %s.', $from, $to, $date));
 | 
			
		||||
 | 
			
		||||
            return $preparedRate;
 | 
			
		||||
        }
 | 
			
		||||
@@ -127,7 +149,7 @@ class ExchangeRateConverter
 | 
			
		||||
            if ('' === $rate) {
 | 
			
		||||
                return null;
 | 
			
		||||
            }
 | 
			
		||||
            Log::debug(sprintf('Found cached rate from #%d to #%d on %s.', $from, $to, $date));
 | 
			
		||||
            Log::debug(sprintf('ExchangeRateConverter: Found !cached! rate from #%d to #%d on %s.', $from, $to, $date));
 | 
			
		||||
 | 
			
		||||
            return $rate;
 | 
			
		||||
        }
 | 
			
		||||
@@ -142,19 +164,19 @@ class ExchangeRateConverter
 | 
			
		||||
            ->first()
 | 
			
		||||
        ;
 | 
			
		||||
        ++$this->queryCount;
 | 
			
		||||
        $rate         = (string)$result?->rate;
 | 
			
		||||
        $rate         = (string) $result?->rate;
 | 
			
		||||
 | 
			
		||||
        if ('' === $rate) {
 | 
			
		||||
            app('log')->debug(sprintf('Found no rate for #%d->#%d (%s) in the DB.', $from, $to, $date));
 | 
			
		||||
            app('log')->debug(sprintf('ExchangeRateConverter: Found no rate for #%d->#%d (%s) in the DB.', $from, $to, $date));
 | 
			
		||||
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        if (0 === bccomp('0', $rate)) {
 | 
			
		||||
            app('log')->debug(sprintf('Found rate for #%d->#%d (%s) in the DB, but it\'s zero.', $from, $to, $date));
 | 
			
		||||
            app('log')->debug(sprintf('ExchangeRateConverter: Found rate for #%d->#%d (%s) in the DB, but it\'s zero.', $from, $to, $date));
 | 
			
		||||
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        app('log')->debug(sprintf('Found rate for #%d->#%d (%s) in the DB: %s.', $from, $to, $date, $rate));
 | 
			
		||||
        app('log')->debug(sprintf('ExchangeRateConverter: Found rate for #%d->#%d (%s) in the DB: %s.', $from, $to, $date, $rate));
 | 
			
		||||
        $cache->store($rate);
 | 
			
		||||
 | 
			
		||||
        // if the rate has not been cached during this particular run, save it
 | 
			
		||||
@@ -178,7 +200,6 @@ class ExchangeRateConverter
 | 
			
		||||
     */
 | 
			
		||||
    private function getEuroRate(TransactionCurrency $currency, Carbon $date): string
 | 
			
		||||
    {
 | 
			
		||||
        Log::debug('getEuroRate()');
 | 
			
		||||
        $euroId = $this->getEuroId();
 | 
			
		||||
        if ($euroId === $currency->id) {
 | 
			
		||||
            return '1';
 | 
			
		||||
@@ -198,7 +219,7 @@ class ExchangeRateConverter
 | 
			
		||||
        // grab backup values from config file:
 | 
			
		||||
        $backup = config(sprintf('cer.rates.%s', $currency->code));
 | 
			
		||||
        if (null !== $backup) {
 | 
			
		||||
            return bcdiv('1', (string)$backup);
 | 
			
		||||
            return bcdiv('1', (string) $backup);
 | 
			
		||||
            // app('log')->debug(sprintf('Backup rate for %s to EUR is %s.', $currency->code, $backup));
 | 
			
		||||
            // return $backup;
 | 
			
		||||
        }
 | 
			
		||||
@@ -216,7 +237,7 @@ class ExchangeRateConverter
 | 
			
		||||
        $cache = new CacheProperties();
 | 
			
		||||
        $cache->addProperty('cer-euro-id');
 | 
			
		||||
        if ($cache->has()) {
 | 
			
		||||
            return (int)$cache->get();
 | 
			
		||||
            return (int) $cache->get();
 | 
			
		||||
        }
 | 
			
		||||
        $euro  = TransactionCurrency::whereCode('EUR')->first();
 | 
			
		||||
        ++$this->queryCount;
 | 
			
		||||
@@ -233,6 +254,9 @@ class ExchangeRateConverter
 | 
			
		||||
     */
 | 
			
		||||
    public function prepare(TransactionCurrency $from, TransactionCurrency $to, Carbon $start, Carbon $end): void
 | 
			
		||||
    {
 | 
			
		||||
        if (false === config('cer.enabled')) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        Log::debug('prepare()');
 | 
			
		||||
        $start->startOfDay();
 | 
			
		||||
        $end->endOfDay();
 | 
			
		||||
@@ -305,6 +329,14 @@ class ExchangeRateConverter
 | 
			
		||||
 | 
			
		||||
    public function summarize(): void
 | 
			
		||||
    {
 | 
			
		||||
        if (false === config('cer.enabled')) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        Log::debug(sprintf('ExchangeRateConverter ran %d queries.', $this->queryCount));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function getCacheKey(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): string
 | 
			
		||||
    {
 | 
			
		||||
        return sprintf('cer-%d-%d-%s', $from->id, $to->id, $date->format('Y-m-d'));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,7 @@ declare(strict_types=1);
 | 
			
		||||
 | 
			
		||||
namespace FireflyIII\Support\Models;
 | 
			
		||||
 | 
			
		||||
use FireflyIII\Exceptions\FireflyException;
 | 
			
		||||
use FireflyIII\Models\Account;
 | 
			
		||||
use FireflyIII\Models\AccountBalance;
 | 
			
		||||
use FireflyIII\Models\Transaction;
 | 
			
		||||
@@ -122,13 +123,29 @@ class AccountBalanceCalculator
 | 
			
		||||
 | 
			
		||||
            // first create for normal currency:
 | 
			
		||||
            $entry               = $this->getAccountBalanceByAccount($account, $transactionCurrency);
 | 
			
		||||
            $entry->balance      = bcadd((string) $entry->balance, $sumAmount);
 | 
			
		||||
 | 
			
		||||
            try {
 | 
			
		||||
                $entry->balance = bcadd((string) $entry->balance, $sumAmount);
 | 
			
		||||
            } catch (\ValueError $e) {
 | 
			
		||||
                $message = sprintf('[a] Could not add "%s" to "%s": %s', $entry->balance, $sumAmount, $e->getMessage());
 | 
			
		||||
                Log::error($message);
 | 
			
		||||
 | 
			
		||||
                throw new FireflyException($message, 0, $e);
 | 
			
		||||
            }
 | 
			
		||||
            $entry->save();
 | 
			
		||||
 | 
			
		||||
            // then do foreign amount, if present:
 | 
			
		||||
            if ($foreignCurrency > 0) {
 | 
			
		||||
                $entry          = $this->getAccountBalanceByAccount($account, $foreignCurrency);
 | 
			
		||||
                $entry->balance = bcadd((string) $entry->balance, $sumForeignAmount);
 | 
			
		||||
                $entry = $this->getAccountBalanceByAccount($account, $foreignCurrency);
 | 
			
		||||
 | 
			
		||||
                try {
 | 
			
		||||
                    $entry->balance = bcadd((string) $entry->balance, $sumForeignAmount);
 | 
			
		||||
                } catch (\ValueError $e) {
 | 
			
		||||
                    $message = sprintf('[b] Could not add "%s" to "%s": %s', $entry->balance, $sumForeignAmount, $e->getMessage());
 | 
			
		||||
                    Log::error($message);
 | 
			
		||||
 | 
			
		||||
                    throw new FireflyException($message, 0, $e);
 | 
			
		||||
                }
 | 
			
		||||
                $entry->save();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -128,7 +128,8 @@ class RecurrenceTransformer extends AbstractTransformer
 | 
			
		||||
            ];
 | 
			
		||||
 | 
			
		||||
            // get the (future) occurrences for this specific type of repetition:
 | 
			
		||||
            $occurrences     = $this->repository->getXOccurrencesSince($repetition, $fromDate, new Carbon(), 5);
 | 
			
		||||
            $amount          = 'daily' === $repetition->repetition_type ? 9 : 5;
 | 
			
		||||
            $occurrences     = $this->repository->getXOccurrencesSince($repetition, $fromDate, now(), $amount);
 | 
			
		||||
 | 
			
		||||
            /** @var Carbon $carbon */
 | 
			
		||||
            foreach ($occurrences as $carbon) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								changelog.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								changelog.md
									
									
									
									
									
								
							@@ -3,6 +3,17 @@
 | 
			
		||||
All notable changes to this project will be documented in this file.
 | 
			
		||||
This project adheres to [Semantic Versioning](http://semver.org/).
 | 
			
		||||
 | 
			
		||||
## 6.1.18 - 2024-06-19
 | 
			
		||||
 | 
			
		||||
### Fixed
 | 
			
		||||
 | 
			
		||||
- [Issue 8978](https://github.com/firefly-iii/firefly-iii/issues/8978) (Error! Internal Firefly III Exception: bcadd(): Argument #2 ($num2) is not well-formed) reported by @el-rhazi
 | 
			
		||||
- [Issue 8977](https://github.com/firefly-iii/firefly-iii/issues/8977) (Data Importer: "500 Server Error" with Firefly III v6.1.17) reported by @qtdzz
 | 
			
		||||
 | 
			
		||||
### Security
 | 
			
		||||
 | 
			
		||||
- [CVE-2024-37893](https://www.cve.org/CVERecord?id=CVE-2024-37893)
 | 
			
		||||
 | 
			
		||||
## 6.1.17 - 2024-06-16
 | 
			
		||||
 | 
			
		||||
### Added
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										442
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										442
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -117,7 +117,7 @@ return [
 | 
			
		||||
        'expression_engine' => false,
 | 
			
		||||
        // see cer.php for exchange rates feature flag.
 | 
			
		||||
    ],
 | 
			
		||||
    'version'                      => 'develop/2024-06-16',
 | 
			
		||||
    'version'                      => 'develop/2024-07-08',
 | 
			
		||||
    'api_version'                  => '2.1.0',
 | 
			
		||||
    'db_version'                   => 24,
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										168
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										168
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -2754,9 +2754,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@types/express-serve-static-core": {
 | 
			
		||||
            "version": "4.19.3",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz",
 | 
			
		||||
            "integrity": "sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==",
 | 
			
		||||
            "version": "4.19.5",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
 | 
			
		||||
            "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@types/node": "*",
 | 
			
		||||
@@ -2855,9 +2855,9 @@
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@types/node": {
 | 
			
		||||
            "version": "20.14.2",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
 | 
			
		||||
            "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==",
 | 
			
		||||
            "version": "20.14.10",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz",
 | 
			
		||||
            "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "undici-types": "~5.26.4"
 | 
			
		||||
@@ -2951,39 +2951,39 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/compiler-core": {
 | 
			
		||||
            "version": "3.4.29",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz",
 | 
			
		||||
            "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==",
 | 
			
		||||
            "version": "3.4.31",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz",
 | 
			
		||||
            "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@babel/parser": "^7.24.7",
 | 
			
		||||
                "@vue/shared": "3.4.29",
 | 
			
		||||
                "@vue/shared": "3.4.31",
 | 
			
		||||
                "entities": "^4.5.0",
 | 
			
		||||
                "estree-walker": "^2.0.2",
 | 
			
		||||
                "source-map-js": "^1.2.0"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/compiler-dom": {
 | 
			
		||||
            "version": "3.4.29",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz",
 | 
			
		||||
            "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==",
 | 
			
		||||
            "version": "3.4.31",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz",
 | 
			
		||||
            "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/compiler-core": "3.4.29",
 | 
			
		||||
                "@vue/shared": "3.4.29"
 | 
			
		||||
                "@vue/compiler-core": "3.4.31",
 | 
			
		||||
                "@vue/shared": "3.4.31"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/compiler-sfc": {
 | 
			
		||||
            "version": "3.4.29",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz",
 | 
			
		||||
            "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==",
 | 
			
		||||
            "version": "3.4.31",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.31.tgz",
 | 
			
		||||
            "integrity": "sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@babel/parser": "^7.24.7",
 | 
			
		||||
                "@vue/compiler-core": "3.4.29",
 | 
			
		||||
                "@vue/compiler-dom": "3.4.29",
 | 
			
		||||
                "@vue/compiler-ssr": "3.4.29",
 | 
			
		||||
                "@vue/shared": "3.4.29",
 | 
			
		||||
                "@vue/compiler-core": "3.4.31",
 | 
			
		||||
                "@vue/compiler-dom": "3.4.31",
 | 
			
		||||
                "@vue/compiler-ssr": "3.4.31",
 | 
			
		||||
                "@vue/shared": "3.4.31",
 | 
			
		||||
                "estree-walker": "^2.0.2",
 | 
			
		||||
                "magic-string": "^0.30.10",
 | 
			
		||||
                "postcss": "^8.4.38",
 | 
			
		||||
@@ -2991,13 +2991,13 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/compiler-ssr": {
 | 
			
		||||
            "version": "3.4.29",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz",
 | 
			
		||||
            "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==",
 | 
			
		||||
            "version": "3.4.31",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.31.tgz",
 | 
			
		||||
            "integrity": "sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/compiler-dom": "3.4.29",
 | 
			
		||||
                "@vue/shared": "3.4.29"
 | 
			
		||||
                "@vue/compiler-dom": "3.4.31",
 | 
			
		||||
                "@vue/shared": "3.4.31"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/component-compiler-utils": {
 | 
			
		||||
@@ -3072,9 +3072,9 @@
 | 
			
		||||
            "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA=="
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/shared": {
 | 
			
		||||
            "version": "3.4.29",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz",
 | 
			
		||||
            "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==",
 | 
			
		||||
            "version": "3.4.31",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz",
 | 
			
		||||
            "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==",
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@webassemblyjs/ast": {
 | 
			
		||||
@@ -3291,9 +3291,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/acorn": {
 | 
			
		||||
            "version": "8.12.0",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
 | 
			
		||||
            "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
 | 
			
		||||
            "version": "8.12.1",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
 | 
			
		||||
            "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "bin": {
 | 
			
		||||
                "acorn": "bin/acorn"
 | 
			
		||||
@@ -3381,9 +3381,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/alpinejs": {
 | 
			
		||||
            "version": "3.14.0",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.0.tgz",
 | 
			
		||||
            "integrity": "sha512-YCWF95PMJqePe9ll6KMyDt/nLhh2R7RhqBf4loEmLzIskcHque4Br/9UgAa6cw13H0Cm3FM9e1hzDwP5z5wlDA==",
 | 
			
		||||
            "version": "3.14.1",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.1.tgz",
 | 
			
		||||
            "integrity": "sha512-ICar8UsnRZAYvv/fCNfNeKMXNoXGUfwHrjx7LqXd08zIP95G2d9bAOuaL97re+1mgt/HojqHsfdOLo/A5LuWgQ==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/reactivity": "~3.1.1"
 | 
			
		||||
            }
 | 
			
		||||
@@ -3793,9 +3793,9 @@
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/bootstrap5-autocomplete": {
 | 
			
		||||
            "version": "1.1.26",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/bootstrap5-autocomplete/-/bootstrap5-autocomplete-1.1.26.tgz",
 | 
			
		||||
            "integrity": "sha512-9BkwEVcrEXdVl1M7QmwTyG29lXs2S/xtZcrsxivhRLcMe0UJP2q9qxpRs8tQDvR9u6Yb8k3DY3h0XwlHjGoFtg=="
 | 
			
		||||
            "version": "1.1.28",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/bootstrap5-autocomplete/-/bootstrap5-autocomplete-1.1.28.tgz",
 | 
			
		||||
            "integrity": "sha512-9oBGvXilL+/1tH5uVPo8rFlUbQP05n9hdj85YFvGAwjH1NP/bRSYhHcywkBe8aFFmkQHr3oi0Creh5ooz9T4Ag=="
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/bootstrap5-tags": {
 | 
			
		||||
            "version": "1.7.2",
 | 
			
		||||
@@ -4028,9 +4028,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/caniuse-lite": {
 | 
			
		||||
            "version": "1.0.30001635",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001635.tgz",
 | 
			
		||||
            "integrity": "sha512-34NOwyGFZxFoIOFNoLPP08eHzaCN+3wJFKx4Vph0XpidU1tRxB0p3Q2etIbOj0W8TYeuXkYsMCcyjV1+phBzxQ==",
 | 
			
		||||
            "version": "1.0.30001640",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz",
 | 
			
		||||
            "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -5103,9 +5103,9 @@
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/electron-to-chromium": {
 | 
			
		||||
            "version": "1.4.803",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz",
 | 
			
		||||
            "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==",
 | 
			
		||||
            "version": "1.4.818",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.818.tgz",
 | 
			
		||||
            "integrity": "sha512-eGvIk2V0dGImV9gWLq8fDfTTsCAeMDwZqEPMr+jMInxZdnp9Us8UpovYpRCf9NQ7VOFgrN2doNSgvISbsbNpxA==",
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/elliptic": {
 | 
			
		||||
@@ -5221,9 +5221,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/es-module-lexer": {
 | 
			
		||||
            "version": "1.5.3",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz",
 | 
			
		||||
            "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==",
 | 
			
		||||
            "version": "1.5.4",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
 | 
			
		||||
            "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/esbuild": {
 | 
			
		||||
@@ -6541,12 +6541,15 @@
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/is-core-module": {
 | 
			
		||||
            "version": "2.13.1",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
 | 
			
		||||
            "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
 | 
			
		||||
            "version": "2.14.0",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz",
 | 
			
		||||
            "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "hasown": "^2.0.0"
 | 
			
		||||
                "hasown": "^2.0.2"
 | 
			
		||||
            },
 | 
			
		||||
            "engines": {
 | 
			
		||||
                "node": ">= 0.4"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": {
 | 
			
		||||
                "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
@@ -6974,9 +6977,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/launch-editor": {
 | 
			
		||||
            "version": "2.7.0",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.7.0.tgz",
 | 
			
		||||
            "integrity": "sha512-KAc66u6LxWL8MifQ94oG3YGKYWDwz/Gi0T15lN//GaQoZe08vQGFJxrXkPAeu50UXgvJPPaRKVGuP1TRUm/aHQ==",
 | 
			
		||||
            "version": "2.8.0",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz",
 | 
			
		||||
            "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "picocolors": "^1.0.0",
 | 
			
		||||
@@ -7553,10 +7556,13 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/object-inspect": {
 | 
			
		||||
            "version": "1.13.1",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
 | 
			
		||||
            "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
 | 
			
		||||
            "version": "1.13.2",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
 | 
			
		||||
            "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "engines": {
 | 
			
		||||
                "node": ">= 0.4"
 | 
			
		||||
            },
 | 
			
		||||
            "funding": {
 | 
			
		||||
                "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
            }
 | 
			
		||||
@@ -7989,9 +7995,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/postcss": {
 | 
			
		||||
            "version": "8.4.38",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
 | 
			
		||||
            "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
 | 
			
		||||
            "version": "8.4.39",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz",
 | 
			
		||||
            "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -8009,7 +8015,7 @@
 | 
			
		||||
            ],
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "nanoid": "^3.3.7",
 | 
			
		||||
                "picocolors": "^1.0.0",
 | 
			
		||||
                "picocolors": "^1.0.1",
 | 
			
		||||
                "source-map-js": "^1.2.0"
 | 
			
		||||
            },
 | 
			
		||||
            "engines": {
 | 
			
		||||
@@ -8651,9 +8657,9 @@
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/qs": {
 | 
			
		||||
            "version": "6.12.1",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz",
 | 
			
		||||
            "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==",
 | 
			
		||||
            "version": "6.12.2",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.2.tgz",
 | 
			
		||||
            "integrity": "sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "side-channel": "^1.0.6"
 | 
			
		||||
@@ -9085,9 +9091,9 @@
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/sass": {
 | 
			
		||||
            "version": "1.77.5",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.5.tgz",
 | 
			
		||||
            "integrity": "sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==",
 | 
			
		||||
            "version": "1.77.6",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz",
 | 
			
		||||
            "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "chokidar": ">=3.0.0 <4.0.0",
 | 
			
		||||
@@ -9975,9 +9981,9 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/update-browserslist-db": {
 | 
			
		||||
            "version": "1.0.16",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
 | 
			
		||||
            "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
 | 
			
		||||
            "version": "1.1.0",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
 | 
			
		||||
            "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "funding": [
 | 
			
		||||
                {
 | 
			
		||||
@@ -10088,13 +10094,13 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/vite": {
 | 
			
		||||
            "version": "5.3.1",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz",
 | 
			
		||||
            "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==",
 | 
			
		||||
            "version": "5.3.3",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz",
 | 
			
		||||
            "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "esbuild": "^0.21.3",
 | 
			
		||||
                "postcss": "^8.4.38",
 | 
			
		||||
                "postcss": "^8.4.39",
 | 
			
		||||
                "rollup": "^4.13.0"
 | 
			
		||||
            },
 | 
			
		||||
            "bin": {
 | 
			
		||||
@@ -10341,9 +10347,9 @@
 | 
			
		||||
            "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/webpack": {
 | 
			
		||||
            "version": "5.92.0",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.0.tgz",
 | 
			
		||||
            "integrity": "sha512-Bsw2X39MYIgxouNATyVpCNVWBCuUwDgWtN78g6lSdPJRLaQ/PUVm/oXcaRAyY/sMFoKFQrsPeqvTizWtq7QPCA==",
 | 
			
		||||
            "version": "5.92.1",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz",
 | 
			
		||||
            "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@types/eslint-scope": "^3.7.3",
 | 
			
		||||
@@ -10819,9 +10825,9 @@
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/ws": {
 | 
			
		||||
            "version": "8.17.1",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
 | 
			
		||||
            "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
 | 
			
		||||
            "version": "8.18.0",
 | 
			
		||||
            "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
 | 
			
		||||
            "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
 | 
			
		||||
            "dev": true,
 | 
			
		||||
            "engines": {
 | 
			
		||||
                "node": ">=10.0.0"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user